@tencentcloud/lite-chat 4.2.6 → 4.2.7

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.es.js CHANGED
@@ -1 +1 @@
1
- const e=e=>void 0===e,t=e=>"string"==typeof e,s=e=>{var t;return null===(t=Object.prototype.toString.call(e).match(/^\[object (.*)\]$/))||void 0===t?void 0:t[1].toLowerCase()},n=e=>"function"==typeof Array.isArray?Array.isArray(e):"array"===s(e),o=e=>null!==e&&"object"==typeof e,i=e=>n(e)||o(e),r=e=>{if("string"!=typeof e)return!1;const t=e[0];return!/[^a-zA-Z0-9]/.test(t)},a=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 c(e=99999999){return Math.round(Math.random()*e)}const u=(t,s,n,o)=>{if(!i(t)||!i(s))return 0;let r=0;const a=Object.keys(s);let c;for(let l=0,d=a.length;l<d;l++)if(c=a[l],!(e(s[c])||n&&n.includes(c)))if(i(t[c])&&i(s[c]))r+=u(t[c],s[c],n,o);else{if(o&&o.includes(s[c]))continue;t[c]!==s[c]&&(t[c]=s[c],r+=1)}return r};function l(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 d={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},h=["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 g;!function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.NONE=4]="NONE"}(g||(g={}));const p="LiteChat",_={[g.DEBUG]:console.debug,[g.INFO]:console.info,[g.WARN]:console.warn,[g.ERROR]:console.error},m={[g.INFO]:4,[g.WARN]:5,[g.ERROR]:6},v=1e3,f=2,I=5e3,E=50;var C;!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"}(C||(C={}));var S=Object.freeze({__proto__:null,CONSOLE_METHOD:_,CloudConfigReportLevelMap:m,get ConvModifyPushType(){return C},DEFAULT_GLOBAL_MAX_TOTAL_COUNT:E,DEFAULT_GLOBAL_THROTTLE_TIME:I,DEFAULT_SINGLE_MAX_TOTAL_COUNT:f,DEFAULT_SINGLE_THROTTLE_TIME:v,ENUM_PLATFORM:d,IS_TOPIC_MESSAGE:2,get LogLevel(){return g},NOT_NEED_CRC_SERVCMD:h,SDK_NAME:p});const M="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&("mac"===wx.getSystemInfoSync().platform||"windows"===wx.getSystemInfoSync().platform)&&void 0===wx.getSystemInfoSync().uniPlatform,y="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting)||M,O=y&&"function"==typeof wx.createGamePortal,A="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),T="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),R=T&&"function"==typeof tt.onShow,D="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),b="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),N="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,L="undefined"!=typeof uni&&"undefined"==typeof window&&"function"==typeof uni.requireNativePlugin,P=y&&"object"==typeof wx.miniapp,G="undefined"!=typeof uni,w=T&&"function"==typeof tt.enterChat,U=y||A||T||D||b||L||N,k="undefined"==typeof window&&!U&&"undefined"!=typeof global&&void 0!==global.NativeScriptGlobals,F="undefined"!=typeof global&&(void 0!==global.nativeModuleProxy||void 0!==global.ReactNative),$="undefined"!=typeof wx&&"function"==typeof wx.getAccountInfoSync&&Boolean(wx.getAccountInfoSync().plugin),x="undefined"!=typeof uni?!U:"undefined"!=typeof window&&!U&&!F,q=A?qq:T?tt:D?swan:b?my:y?wx:L?uni:N?jd:{},V=x&&window&&window.navigator&&window.navigator.userAgent||"",B=/(micromessenger|webbrowser)/i.test(V),j=function(){let e="WEB";return B?e="WEB":A?e="QQ_MP":T?e="TT_MP":D?e="BAIDU_MP":b?e="ALI_MP":y?e=P?"DONUT_NATIVE_APP":"WX_MP":L?e="UNI_NATIVE_APP":k?e="NS_NATIVE_APP":F&&(e="RN_NATIVE_APP"),d[e]}(),H=/iPad/i.test(V),K=/iPhone/i.test(V)&&!H,W=/iPod/i.test(V),Y=K||H||W,z=function(){const e=V.match(/OS (\d+)_/i);return e&&e[1]?e[1]:null}(),J=/Android/i.test(V),Q=function(){const e=V.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}(),X=/Firefox/i.test(V),Z=/Edge/i.test(V),ee=!Z&&/Chrome/i.test(V),te=/MSIE/.test(V)||V.indexOf("Trident")>-1&&V.indexOf("rv:11.0")>-1,se=function(){const e=/MSIE\s(\d+)\.\d/.exec(V);let t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(V)&&/rv:11.0/.test(V)&&(t=11),t}(),ne=/Safari/i.test(V)&&!ee&&!J&&!Z,oe=/Windows/i.test(V),ie=/MAC OS X/i.test(V),re=x&&"undefined"!=typeof Worker&&!te,ae=J||Y,ce=function(){if("undefined"==typeof window||void 0===window.navigator)return!1;const{standalone:e}=window.navigator;return!(!Y||e||ne)}();function ue(){let e="unknown";if(ie&&(e="mac"),oe&&(e="windows"),Y&&(e="ios"),J&&(e="android"),U)try{const{platform:t}=q.getSystemInfoSync();void 0!==t&&(e=t)}catch(e){console.error(e)}return e}function le(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 de(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 he=2800,ge=2801,pe=3e3,_e="application/x-www-form-urlencoded;charset=UTF-8";function me(e){return de(this,arguments,void 0,function*({method:e,url:t,data:s,timeout:n=pe}){return new Promise(U?(o,i)=>{q.request({url:t,data:s,method:e,timeout:n,header:{"content-type":_e},success:e=>o(e.data),fail:()=>i(new Error(`{"message":"Network error","code":${he}}`))})}:(o,i)=>{const r=new XMLHttpRequest,a=setTimeout(()=>{r.abort(),i(new Error(`{"message":"Request timeout","code":${ge}}`))},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":${he}}`))},r.open(e,t,!0),r.setRequestHeader("Content-type",_e),r.send(s||null)})})}function ve(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(a(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 fe(e,t){if(null===e||"object"!=typeof e)return e;const s=t||new WeakMap;if(s.has(e))return s.get(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 s.set(e,t),e.forEach((e,n)=>{t.set(fe(n,s),fe(e,s))}),t}if(e instanceof Set){const t=new Set;return s.set(e,t),e.forEach(e=>{t.add(fe(e,s))}),t}if(Array.isArray(e)){const t=[];return s.set(e,t),e.forEach(e=>{t.push(fe(e,s))}),t}const n=Object.getPrototypeOf(e),o=Object.create(n);s.set(e,o);return[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)].forEach(t=>{if("__ob__"===t||"__v_skip"===t||"__v_isRef"===t||"__v_isReadonly"===t)return;const n=Object.getOwnPropertyDescriptor(e,t);n&&(n.get||n.set?Object.defineProperty(o,t,n):o[t]=fe(e[t],s))}),o}function Ie(e,t,s){const n=new WeakSet,o=(e,s)=>{if(t&&(s=t(e,s)),void 0===s)return"undefined";if(null===s)return null;if(Number.isNaN(s))return"NaN";if(s===1/0)return"Infinity";if(s===-1/0)return"-Infinity";if("function"==typeof s)return`[Function: ${s.name||"anonymous"}]`;if("symbol"==typeof s)return s.toString();if("bigint"==typeof s)return`${s.toString()}n`;if("object"==typeof s&&null!==s){if(n.has(s))return"[Circular]";n.add(s)}return s instanceof Date?s.toISOString():s instanceof Error?{name:s.name,message:s.message,stack:s.stack}:s instanceof Map?{dataType:"Map",value:Array.from(s.entries())}:s instanceof Set?{dataType:"Set",value:Array.from(s.values())}:s};try{return JSON.stringify(e,o,s)}catch(e){return console.error("Failed to stringify:",e),""}}function Ee(){let e,t;return{promise:new Promise((s,n)=>{e=s,t=n}),resolve:e,reject:t}}var Ce,Se=Object.freeze({__proto__:null,ANDROID_VERSION:Q,IE_VERSION:se,IN_ALIPAY_MINI_APP:b,IN_BAIDU_MINI_APP:D,IN_BROWSER:x,IN_DONUT_NATIVE_APP:P,IN_FEISHU_MINI_APP:w,IN_JD_MINI_APP:N,IN_MINI_APP:U,IN_NS_NATIVE_APP:k,IN_QQ_MINI_APP:A,IN_RN_APP:F,IN_TT_MINI_APP:T,IN_TT_MINI_GAME:R,IN_UNI_APP:G,IN_UNI_NATIVE_APP:L,IN_WX_MINI_APP:y,IN_WX_MINI_APP_DESK:M,IN_WX_MINI_GAME:O,IN_WX_MINI_PLUGIN:$,IOS_VERSION:z,IS_ANDROID:J,IS_CHROME:ee,IS_EDGE:Z,IS_FIREFOX:X,IS_IE:te,IS_IOS:Y,IS_IPAD:H,IS_IPHONE:K,IS_IPOD:W,IS_MAC:ie,IS_SAFARI:ne,IS_WECHAT:B,IS_WIN:oe,IS_WORKER_AVAILABLE:re,MINI_APP_NAMESPACE:q,USER_AGENT:V,base16EncodeBinaryString:l,deepCopyWithMethods:fe,deepMerge:u,generatePromise:Ee,getPlatformType:ue,getType:s,httpRequest:me,isArray:n,isArrayOrObject:i,isEmpty:ve,isH5:ae,isIOSWebView:ce,isNumber:e=>null!==e&&("number"==typeof e&&!Number.isNaN(e-0)||"object"==typeof e&&e.constructor===Number),isObject:o,isPlainObject:a,isString:t,isUndefined:e,isUniIOSApp:function(){return L&&"ios"===uni.getDeviceInfo().platform.toLocaleLowerCase()},isValidRequestKey:r,platform:j,randomInt:c,randomString:function(){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let s=32;s>0;--s)t+=e[Math.floor(62*Math.random())];return t},safeStringify:Ie});class Me{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(s=>{const{fn:n,context:o}=s;try{n.apply(o,t)}catch(t){console.warn(`Error in event handler for ${e} error: ${Ie(t)}`)}})}once(e,t,s){const n=(...o)=>{t.apply(s,o),this.off(e,n)};this.on(e,n)}}!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",e.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",e.ALL_MESSAGE_READ="all_message_read",e.CONVERSATION_MARK_UPDATED="conversation_mark_updated",e.CONVERSATION_GROUP_ADD="conversation_group_add",e.CONVERSATION_GROUP_DELETED="conversation_group_deleted",e.CONVERSATION_GROUP_UPDATED="conversation_group_updated",e.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",e.TOPIC_AT_TIPS="topic_at_tips",e.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",e.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",e.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",e.TOPIC_LATEST_MESSAGE="topic_latest_message",e.GROUP_MESSAGE_PINNED="group_message_pinned"}(Ce||(Ce={}));const ye=[16,17];function Oe(e){var t;const s=[];return null===(t=null==e?void 0:e.GroupTips)||void 0===t||t.forEach(e=>{var t;2===e.GroupInfo.MillionGroupFlag?s.push(Ce.TOPIC_TIPS_NOTIFICATION):ye.includes(null===(t=null==e?void 0:e.MsgBody)||void 0===t?void 0:t.OpType)?s.push(Ce.GROUP_MESSAGE_PINNED):s.push(Ce.GROUP_TIPS_NOTIFICATION)}),s}const Ae=[{conditions:[{type:"event",value:100}],subType:Ce.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:Ce.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:Ce.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:Ce.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:Ce.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:Ce.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:Ce.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:Ce.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:Ce.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:Ce.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.C2cNotifyMsgArray)||void 0===t||t.forEach(e=>{e.WithdrawC2cMsgNotify&&s.push(Ce.C2C_REVOKED_MESSAGE),e.C2cReadedReceipt&&s.push(Ce.C2C_MESSAGE_PEER_READ),e.ReadC2cMsgNotify&&s.push(Ce.C2C_MESSAGE_READ_SYNC),e.MuteNotificationsSync&&s.push(Ce.C2C_REMIND_TYPE_SYNC)}),s}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:Oe},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.GroupTips)||void 0===t||t.forEach(e=>{Array.isArray(e.MsgBody.GroupWithdrawInfoArray)?s.push(Ce.GROUP_MESSAGE_REVOKED):Array.isArray(e.MsgBody.GroupMsgReceiptList)?s.push(Ce.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(e.MsgBody.GroupReadInfoArray)?e.MsgBody.GroupReadInfoArray[0].TopicId?s.push(Ce.TOPIC_MESSAGE_READ_SYNC):s.push(Ce.GROUP_MESSAGE_READ_SYNC):2===e.GroupInfo.MillionGroupFlag?s.push(Ce.TOPIC_SYSTEM_NOTIFICATION):s.push(Ce.GROUP_SYSTEM_NOTIFICATION)}),s}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:Oe},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.GroupTips)||void 0===t||t.forEach(e=>{const{GroupAtTips:{TopicId:t}}=e;t?s.push(Ce.TOPIC_AT_TIPS):s.push(Ce.GROUP_AT_TIPS)}),s}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.RecentContactMod)||void 0===t||t.forEach(e=>{switch(e.PushType){case C.CONV_MARK_UPDATED:s.push(Ce.CONVERSATION_MARK_UPDATED);break;case C.CONV_GROUP_ADDED:s.push(Ce.CONVERSATION_GROUP_ADD);break;case C.CONV_GROUP_DELETED:s.push(Ce.CONVERSATION_GROUP_DELETED);break;case C.CONV_GROUP_UPDATED:s.push(Ce.CONVERSATION_GROUP_UPDATED);break;default:s.push(Ce.CONV_MODIFIED)}}),s}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:Ce.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:Ce.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:Ce.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:Ce.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:Ce.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:Ce.ALL_MESSAGE_READ}];var Te;function Re(e){var t;const s=Array.isArray(null===(t=null==e?void 0:e.body)||void 0===t?void 0:t.EventArray)?e.body.EventArray:[],n=[];return s.forEach(t=>{t.Flag=e.body.Flag;const s=Ae.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(!s)return null;let o=[];"function"==typeof s.subTypeParser?o=s.subTypeParser(t):s.subType&&(o=s.subType),Array.isArray(o)?o.forEach(e=>{n.push({type:`${Te.SERVER_PUSH_MESSAGE}:${e}`,data:t})}):n.push({type:`${Te.SERVER_PUSH_MESSAGE}:${o}`,data:t})}),n}!function(e){e.SERVER_PUSH_MESSAGE="im_open_push.msg_push",e.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",e.ERROR="error"}(Te||(Te={}));const De={[Te.SERVER_PUSH_MESSAGE]:Re,[Te.SERVER_PUSH_MESSAGE_MULTIPLE]:Re,[Te.ERROR]:function(e){const{errorCode:t}=e;return[{type:`error:${t}`,data:e}]}};const be=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new Me,this._innerEventEmitter=new Me,this.InnerEventSubType=Ce}subscribeInnerEvent(e,t,s,n,o){var i;let r,a,c,u;["string","number"].includes(typeof t)?(c=`${e}:${t}`,u=s,a=n,r=o):(c=e,u=t,a=s,r="function"==typeof n?n:void 0),r?this._subscribeWithFilter(c,u,a,r):null===(i=this._innerEventEmitter)||void 0===i||i.on(c,u,a)}emitInnerEvent(e,t){var s,n;if(null===(s=this._innerEventEmitter)||void 0===s||s.emit(e,t),Object.keys(De).includes(e)){const s=null===(n=De[e])||void 0===n?void 0:n.call(De,t);null==s||s.forEach(e=>{var t;e&&(null===(t=this._innerEventEmitter)||void 0===t||t.emit(e.type,e.data))})}}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)}unSubscribeInnerEvent(e,t,s,n){if(["string","number"].includes(typeof t)){const o=s,i=`${e}:${t}`;this._unsubscribeEvent(i,o,n)}else{const n=t;this._unsubscribeEvent(e,n,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}_subscribeWithFilter(e,t,s,n){var o;const i=e=>{n.call(s,e)&&t.call(s,e)};this._filteredCallbackMap.has(e)||this._filteredCallbackMap.set(e,[]),this._filteredCallbackMap.get(e).push({originalCallback:t,filteredCallback:i,filter:n,context:s}),null===(o=this._innerEventEmitter)||void 0===o||o.on(e,i,s)}_unsubscribeEvent(e,t,s){var n,o;const i=this._filteredCallbackMap.get(e);if(i){const o=i.findIndex(e=>e.originalCallback===t&&e.context===s);if(-1!==o){const{filteredCallback:t}=i[o];return null===(n=this._innerEventEmitter)||void 0===n||n.off(e,t,s),i.splice(o,1),void(0===i.length&&this._filteredCallbackMap.delete(e))}}null===(o=this._innerEventEmitter)||void 0===o||o.off(e,t,s)}};class Ne{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 Le{constructor(e){this._onError=e.onError}connectSocket(e){const t=this;return this._socket=q.connectSocket({url:e,header:{"content-type":"application/json"},complete:()=>{},fail:e=>t._onError(e)}),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&&(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 Pe="CONNECT",Ge="SEND",we="DISCONNECT",Ue="OPEN",ke="MESSAGE",Fe="CLOSE",$e="ERROR",xe="SEND_FAIL";class qe{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:Pe,url:e})}send(e){var t,s;try{null===(t=this._worker)||void 0===t||t.postMessage({type:Ge,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={[Ue]:t,[ke]:s,[Fe]:n,[$e]:o,[xe]: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:we}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}var Ve,Be=new class{constructor(){this._store=new Map}get(e){return this._store.get(e)}getStorage(e){if(U){if(b){return my.getStorageSync({key:e}).data}return q.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){U?b?my.setStorageSync({key:e,data:JSON.stringify(t)}):q.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)}};class je{connectSocket(e){return this._socket=q.connectSocket({url:e,header:{"content-type":"application/json"},multiple:!0,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&&(this._socket.onClose(n),this._socket.onOpen(t),this._socket.onMessage(e=>s(null==e?void 0:e.data)),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)}}!function(e){e[e.CONNECTED=0]="CONNECTED",e[e.CONNECTING=1]="CONNECTING",e[e.DISCONNECTED=2]="DISCONNECTED"}(Ve||(Ve={}));class He{constructor(e){this._url="",this._readyState=Ve.DISCONNECTED,this._url=e,this._id=c(),this._emitter=new Me,y||L||T||A||N||D?this._socket=new Le({onError:this._onError.bind(this)}):b?this._socket=new je:this._canUseWebWorker()?this._socket=new qe:this._socket=new Ne,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[Ve.CONNECTED,Ve.CONNECTING].includes(this._readyState)||(this._readyState=Ve.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(e){this._readyState!==Ve.CONNECTED?this.reconnect():this._socket.send(e)}reconnect(){[Ve.CONNECTED,Ve.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===Ve.CONNECTED}disconnect(){this._readyState=Ve.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(e){this._readyState===Ve.CONNECTING&&(this._readyState=Ve.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:e}))}_onMessage(e){this._emitter.emit("message",e)}_onClose(e){this._readyState=Ve.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:e})}_onError(e){this._readyState=Ve.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:e})}_onSendFail(e){this._readyState=Ve.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 t=Be.get("cloudConfig")||{};return(e(t.isWorkerEnabled)||"1"===t.isWorkerEnabled)&&re}}const Ke="CHINA",We="OVERSEA",Ye="SINGAPORE",ze="KOREA",Je="GERMANY",Qe="IND",Xe="JPN",Ze="USA",et="INDONESIA",st={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",IPV6:"wss://wssv6.im.qcloud.com",BACKUP:"wss://wss.tim.qq.com",BACKUP_WEB_ONLY:"wss://*w4c.my-cpaas.com",BACKUP_CN:"wss://wss.im.tencent.cn",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",IPV6:"wss://wssv6.im.qcloud.com",BACKUP:"wss://wss.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4c.my-cpaas.com",BACKUP_CN:"wss://wss.im.tencent.cn",STAT:"https://api.my-imcloud.com"},SINGAPORE:{INITIAL:"wss://*w4s.my-imcloud.com",DEFAULT:"wss://wsssgp.im.qcloud.com",IPV6:"wss://wsssgpv6.im.qcloud.com",BACKUP:"wss://wsssgp.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4s.my-cpaas.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",IPV6:"wss://wsskrv6.im.qcloud.com",BACKUP:"wss://wsskr.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4k.my-cpaas.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",IPV6:"wss://wssgerv6.im.qcloud.com",BACKUP:"wss://wssger.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4g.my-cpaas.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",IPV6:"wss://wssindv6.im.qcloud.com",BACKUP:"wss://wssind.im.qcloud.com",BACKUP_WEB_ONLY:"wss://*w4i.my-cpaas.com",STAT:"https://apiind.my-imcloud.com",ANYCAST:"wss://162.14.19.46"},JPN:{INITIAL:"wss://*w4j.my-imcloud.com",DEFAULT:"wss://wssjpn.im.qcloud.com",IPV6:"wss://wssjpnv6.im.qcloud.com",BACKUP:"wss://wssjpn.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4j.my-cpaas.com",STAT:"https://apijpn.my-imcloud.com",ANYCAST:"wss://162.14.13.254"},USA:{INITIAL:"wss://*w4u.my-imcloud.com",DEFAULT:"wss://wssusa.im.qcloud.com",IPV6:"wss://wssusav6.im.qcloud.com",BACKUP:"wss://wssusa.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4u.my-cpaas.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",IPV6:"wss://wssidnv6.im.qcloud.com",BACKUP:"wss://wssidn.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4y.my-cpaas.com",STAT:"https://apiidn.my-imcloud.com",ANYCAST:"wss://43.129.34.169"}}},nt={[Ye]:[[2e7,3e7],[172e7,173e7]],[ze]:[[3e7,4e7],[173e7,174e7]],[Je]:[[4e7,5e7],[174e7,175e7]],[Qe]:[[5e7,6e7],[175e7,176e7]],[Xe]:[[6e7,7e7],[176e7,177e7]],[Ze]:[[7e7,8e7],[177e7,178e7]],[et]:[[8e7,9e7],[178e7,179e7]]};function ot(e){var t;if(null===(t=Be.get("instance"))||void 0===t?void 0:t.oversea)return We;for(const t of Object.keys(nt))for(const[s,n]of nt[t])if(e>=s&&e<n)return t;return Ke}var it,rt="4.2.6";!function(e){e.INITIAL="INITIAL",e.DEFAULT="DEFAULT",e.BACKUP="BACKUP",e.BACKUP_WEB_ONLY="BACKUP_WEB_ONLY",e.BACKUP_CN="BACKUP_CN",e.ANYCAST="ANYCAST",e.IPV6="IPV6"}(it||(it={}));let at=it.INITIAL;function ct(){const e=Math.random();return 0===e?ct():e}function ut(e,t){const{isBinary:s=!1}=t||{},n=Be.get("instance"),{sdkAppId:o,instanceId:i}=n,r=ct(),a=ue(),c=function(){const e=ue();let t=-1;"ios"===e?t=z||-1:"android"===e&&(t=Q||-1);return t}(),u=(l={sdkappid:o,instanceid:i,random:r,platform:j,host:a,version:c,sdkversion:rt},Object.keys(l).map(e=>`${e}=${l[e]}`).join("&"));var l;return s?`${e}/binfo?${u}&compress=gzip`:`${e}/info?${u}`}function lt(e){const t=Be.get("instance"),{sdkAppId:s,testEnv:n}=t,o=ot(s);if(n){return ut(st.TEST[o].DEFAULT,{isBinary:e})}const i=st.PRODUCTION[o],r=x&&i.ANYCAST,a=x,c=!!i.BACKUP_CN;return ut({[it.INITIAL]:()=>(at=it.DEFAULT,i.DEFAULT),[it.DEFAULT]:()=>(at=it.IPV6,i.IPV6),[it.IPV6]:()=>(at=it.BACKUP,i.BACKUP),[it.BACKUP]:()=>a?(at=it.BACKUP_WEB_ONLY,function(e){const t=Math.floor(10001*Math.random())+1e4;return e.replace("*",String(t))}(i.BACKUP_WEB_ONLY)):c?(at=it.BACKUP_CN,i.BACKUP_CN):r?(at=it.ANYCAST,i.ANYCAST):i.DEFAULT,[it.BACKUP_WEB_ONLY]:()=>c?(at=it.BACKUP_CN,i.BACKUP_CN):r?(at=it.ANYCAST,i.ANYCAST):i.DEFAULT,[it.BACKUP_CN]:()=>(at=r?it.ANYCAST:it.DEFAULT,i[at]),[it.ANYCAST]:()=>(at=it.DEFAULT,i.ANYCAST="",i.DEFAULT)}[at](),{isBinary:e})}var dt=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 ht=16;var gt=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=ht}=e,r=Math.max(i,ht);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 pt(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 _t(e){const t=Array.isArray(e)?[]:Object.create(null);for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&r(s)&&null!=e[s]&&(null===e[s]||"object"!=typeof e[s]?t[s]=e[s]:t[s]=_t(e[s]));return t}function mt(e,t){if(h.includes(e))return 0;const s=pt(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 vt(e){const{servcmd:t,data:s}=e,n=function(e){const t=Be.get("login")||{},s=Be.get("instance")||{};return{servcmd:e,ver:"v4",platform:j,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:478343027,sdkability_ext:l(""),cappid:s.applicationID||0,tjgID:"",seq:Et(),cs:0}}(t),o=_t(s);return n.cs=mt(t,o),{head:n,body:o}}function ft(e){const{servcmd:t,data:s}=e,n=function(e){const t=Be.get("login")||{},s=Be.get("instance")||{};return{servcmd:e,ver:"v4",platform:j,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:s.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:t.statusInstanceId||0,sdkability:478343027,sdkability_ext:l(""),cappid:s.applicationID||0,seq:Et(),cs:0}}(t),o=_t(s);return n.cs=mt(t,o),{head:n,body:o}}let It=c();function Et(){return It=It<2415919103?It+1:c(),It}function Ct(){var e;const t=Be.get("login")||{},s=Be.get("instance")||{};return{sdk_type:30,sdk_app_id:s.sdkAppId,sdk_version:"4.2.6",tiny_id:Number(t.tinyID),user_id:t.userId||(null===(e=Be.get("webPush"))||void 0===e?void 0:e.userId),platform:j,instance_id:s.instanceId,trace_id:(new Date).getTime()}}var St,Mt=Object.freeze({__proto__:null,calcBodyCRC:mt,filterProtocolDataInvalidFields:_t,generateCosSpecifiedData:function(e){const{servcmd:t,data:s}=e,n=function(e){const t=Be.get("login")||{},s=Be.get("instance")||{};return{servcmd:e,ver:"v4",platform:j,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:478343027,sdkability_ext:l(""),cappid:s.applicationID||0,seq:Et(),cs:0}}(t),o=_t(s);return n.cs=mt(t,o),{head:n,body:o}},generateProtocolData:vt,generateSSOLogProtocolData:ft,generateSequence:Et,getCommonHead:Ct,taskScheduler:gt,timeManager:dt});!function(e){e[e.info=4]="info",e[e.warning=5]="warning",e[e.error=6]="error"}(St||(St={}));const yt={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 Ot{constructor(e){this.level=St.info,this._canSendLog=!0,this._logCreatedAt=dt.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=this._getUiPlatform(),this._sdkEdition=this._getSDKEdition();const{method:t,eventType:s=0,message:n="",costTime:o=0,error:i,uiPlatform:r,moreMessage:a="",code:c=0}=e||{};this.eventType=s,this.method=t,this.message=n,this.costTime=o,this.moreMessage=a,this.code=c,i&&this.setError(i),ve(r)||(this.uiPlatform=r)}setMoreMessage(e){this.moreMessage=`${this.moreMessage} ${e}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=dt.getTimeOffsetWithServer()}end(e=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=dt.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),e&&this._ssoLogModule.uploadSSOLogData())}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=Be.get("netWorkMonitor"))||void 0===t?void 0:t.isNetworkOnline)&&(e.errorCode&&(this.code=e.errorCode),e.errorMessage&&this.setMoreMessage(e.errorMessage)),this.level=St.error,this}setLogInfo(e){return Object.keys(e).forEach(t=>{Object.keys(yt).includes(t)&&(this[t]=e[t])}),this}setSSOLogModule(e){this._ssoLogModule=e}_convertSSOLogDataKeyToServe(){const e={};return Object.keys(this).forEach(t=>{const s=t;yt[s]&&(e[yt[s]]=this[s])}),e}_getUiPlatform(){var e;const t=null===(e=Be.get("instance"))||void 0===e?void 0:e.scene;if("string"==typeof t){const e=Number(t);return isNaN(e)?void 0:e}}_getSDKEdition(){var e;return null===(e=Be.get("instance"))||void 0===e?void 0:e.sdkEdition}}var At;!function(e){e.RECONNECTED="reconnected",e.CLOUD_CONFIG_UPDATE="cloud_config_update",e.SOCKET_DISCONNECTED="socket_disconnected"}(At||(At={}));var Tt=At;const Rt=20,Dt=6e4,bt=[4,5,6],Nt=[],Lt=[],Pt="report-logger";var Gt=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=Rt,this._maxThreshold=100,this._waitingTime=Dt,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=g.DEBUG,this._throttleConfig={global:{throttleTime:I,maxCount:E},single:{throttleTime:v,maxCount:f}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,be.subscribeInnerEvent(Tt.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),gt.addTask({id:Pt,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(e){const{evt_rpt_threshold:t=Rt,evt_rpt_waiting:s=Dt,evt_rpt_level:n=bt,evt_rpt_sdkappid_bl:o=Nt,evt_rpt_tinyid_wl:i=Lt,evt_rpt_global_throttle_time:r=I,evt_rpt_global_throttle_count:a=E,evt_rpt_single_throttle_time:c=v,evt_rpt_single_throttle_count:u=f}=e||{};this._sdkAppIdBlackList=o,this._waitingTime=s,this._minThreshold=t,this._reportLevel=n,this._tinyIdWhiteList=i,this._throttleConfig={global:{throttleTime:r,maxCount:a},single:{throttleTime:c,maxCount:u}}}createSSOLogData(e){const t=new Ot(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())}setLogLevel(e){[g.DEBUG,g.ERROR,g.INFO,g.NONE,g.WARN].includes(e)&&(this._logLevel=e)}debug(e,t="",s){this._log(g.DEBUG,e,t,s)}info(e,t="",s){this._log(g.INFO,e,t,s)}warn(e,t="",s){this._log(g.WARN,e,t,s)}error(e,t="",s){this._log(g.ERROR,e,t,s)}_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 de(this,void 0,void 0,function*(){try{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};ve(s.Header.user_id)||(yield function(e){const t="imopenstat.tim_web_report_v2",s=ft({servcmd:t,data:e}),n=`${s.head.seq}${t}`;return ts.sendPacket(s,{requestId:n})}(s)),this._lastReportAt=Date.now()}catch(e){this.debug("uploadSSOLogData",Ie(e))}})}_savePlatFormInfo(){var e,t;if(y){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;Be.set("instance",{appId:e,envVersion:t})}}else x&&Be.set("instance",{href:window.location.href})}_filterLogs(e){const{tinyID:t}=Be.get("login")||{},{sdkAppId:s}=Be.get("instance")||{};return this._sdkAppIdBlackList.includes(s)&&!this._tinyIdWhiteList.includes(t)?[]:e.filter(e=>this._reportLevel.includes(e.level))}_checkThrottle(e){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(e)}_checkGlobalThrottle(){const e=Date.now();if(e-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=e;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(e){const t=Date.now(),s=this._singleThrottleMap.get(e);return s?t-s.startTime>=this._throttleConfig.single.throttleTime?(s.count=1,s.startTime=t,!1):s.count>=this._throttleConfig.single.maxCount||(s.count++,!1):(this._singleThrottleMap.set(e,{count:1,startTime:t}),!1)}_shouldLog(e){return e>=this._logLevel&&this._logLevel!==g.NONE}_shouldReport(e){return this._reportLevel.includes(m[e])}_formatLog(e,t,s){const n=new Date,o=`${n.getHours()}:${n.getMinutes()}:${n.getSeconds()}:${n.getMilliseconds()}`,i=`<${g[e]}>`;return te||U?[`${p} [${o}] ${i} [${t}] ${s}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",p,"",`[${o}] ${i} [${t}] ${s}`]}_log(e,t,s,n){if(!this._shouldLog(e))return;const o=this._formatLog(e,t,s);if(_[e].apply(console,o),this._shouldReport(e)){const e=this._getThrottleKey(t,s,n);if(!this._checkThrottle(e)){this.createSSOLogData(Object.assign(Object.assign({message:s},n),{method:t})).end()}}}_getThrottleKey(e,t,s){const n=`${e}${t}${Ie(Object.assign(Object.assign({},s),{costTime:""}))}`,o=pt(JSON.stringify(n));let i=4294967295;const{length:r}=o;for(let e=0;e<r;e++){i^=o[e];for(let e=0;e<8;e++)1&~i?i>>>=1:i=i>>>1^3988292384}return`${(4294967295^i)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),gt.removeTask(Pt),be.unSubscribeInnerEvent(Tt.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=Rt,this._maxThreshold=100,this._waitingTime=Dt,this._logQueue=[],this._logLevel=g.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const wt=15e3,Ut="Channel",kt="channel_schedule_task",Ft="channel_reconnect_task",$t="connected",xt="connecting",qt="disconnected",Vt=1e3,Bt="network_status_change",jt="activity_status_change",Ht="send_fail",Kt="reconnect_failed",Wt="socket_error",Yt="socket_close";function zt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Jt(e){return Jt="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},Jt(e)}function Qt(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 Xt,Zt={exports:{}};var es=(Xt||(Xt=1,Zt.exports=function e(t,s,n){function o(r,a){if(!s[r]){if(!t[r]){if(!a&&Qt)return Qt(r);if(i)return i(r,!0);var c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}var u=s[r]={exports:{}};t[r][0].call(u.exports,function(e){return o(t[r][1][e]||e)},u,u.exports,e,t,s,n)}return s[r].exports}for(var i=Qt,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"!=Jt(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,u=new Array(2*a);for(s=n=0;s<a;)if((o=e[s++])<128)u[n++]=o;else if(4<(i=r[o]))u[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?u[n++]=65533:o<65536?u[n++]=o:(o-=65536,u[n++]=55296|o>>10&1023,u[n++]=56320|1023&o)}return c(u,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-1^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,u,l,d,h,g,p,_,m,v,f,I,E,C,S,M,y,O,A;s=e.state,n=e.next_in,O=e.input,o=n+(e.avail_in-5),i=e.next_out,A=e.output,r=i-(t-e.avail_out),a=i+(e.avail_out-257),c=s.dmax,u=s.wsize,l=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>>>=E=I>>>24,p-=E,0==(E=I>>>16&255))A[i++]=65535&I;else{if(!(16&E)){if(!(64&E)){I=_[(65535&I)+(g&(1<<E)-1)];continue t}if(32&E){s.mode=12;break e}e.msg="invalid literal/length code",s.mode=30;break e}C=65535&I,(E&=15)&&(p<E&&(g+=O[n++]<<p,p+=8),C+=g&(1<<E)-1,g>>>=E,p-=E),p<15&&(g+=O[n++]<<p,p+=8,g+=O[n++]<<p,p+=8),I=m[g&f];s:for(;;){if(g>>>=E=I>>>24,p-=E,!(16&(E=I>>>16&255))){if(!(64&E)){I=m[(65535&I)+(g&(1<<E)-1)];continue s}e.msg="invalid distance code",s.mode=30;break e}if(S=65535&I,p<(E&=15)&&(g+=O[n++]<<p,(p+=8)<E&&(g+=O[n++]<<p,p+=8)),c<(S+=g&(1<<E)-1)){e.msg="invalid distance too far back",s.mode=30;break e}if(g>>>=E,p-=E,(E=i-r)<S){if(l<(E=S-E)&&s.sane){e.msg="invalid distance too far back",s.mode=30;break e}if(y=h,(M=0)===d){if(M+=u-E,E<C){for(C-=E;A[i++]=h[M++],--E;);M=i-S,y=A}}else if(d<E){if(M+=u+d-E,(E-=d)<C){for(C-=E;A[i++]=h[M++],--E;);if(M=0,d<C){for(C-=E=d;A[i++]=h[M++],--E;);M=i-S,y=A}}}else if(M+=d-E,E<C){for(C-=E;A[i++]=h[M++],--E;);M=i-S,y=A}for(;2<C;)A[i++]=y[M++],A[i++]=y[M++],A[i++]=y[M++],C-=3;C&&(A[i++]=y[M++],1<C&&(A[i++]=y[M++]))}else{for(M=i-S;A[i++]=A[M++],A[i++]=A[M++],A[i++]=A[M++],2<(C-=3););C&&(A[i++]=A[M++],1<C&&(A[i++]=A[M++]))}break}}break}}while(n<o&&i<a);n-=C=p>>3,g&=(1<<(p-=C<<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,u=2,l=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,l):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 E(e,t){var s,n;return e?(n=new m,(e.state=n).window=null,(s=I(e,t))!==l&&(e.state=null),s):d}var C,S,M=!0;function y(e){if(M){var t;for(C=new n.Buf32(512),S=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,C,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(u,e.lens,0,32,S,0,e.work,{bits:5}),M=!1}e.lencode=C,e.lenbits=9,e.distcode=S,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 E(e,15)},s.inflateInit2=E,s.inflate=function(e,t){var s,g,p,m,v,f,I,E,C,S,M,A,T,R,D,b,N,L,P,G,w,U,k,F,$=0,x=new n.Buf8(4),q=[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,E=s.hold,C=s.bits,S=f,M=I,U=l;e:for(;;)switch(s.mode){case h:if(0===s.wrap){s.mode=13;break}for(;C<16;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(2&s.wrap&&35615===E){x[s.check=0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0),C=E=0,s.mode=2;break}if(s.flags=0,s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&E)<<8)+(E>>8))%31){e.msg="incorrect header check",s.mode=30;break}if(8!=(15&E)){e.msg="unknown compression method",s.mode=30;break}if(C-=4,w=8+(15&(E>>>=4)),0===s.wbits)s.wbits=w;else if(w>s.wbits){e.msg="invalid window size",s.mode=30;break}s.dmax=1<<w,e.adler=s.check=1,s.mode=512&E?10:12,C=E=0;break;case 2:for(;C<16;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(s.flags=E,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=E>>8&1),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0)),C=E=0,s.mode=3;case 3:for(;C<32;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}s.head&&(s.head.time=E),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,x[2]=E>>>16&255,x[3]=E>>>24&255,s.check=i(s.check,x,4,0)),C=E=0,s.mode=4;case 4:for(;C<16;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}s.head&&(s.head.xflags=255&E,s.head.os=E>>8),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0)),C=E=0,s.mode=5;case 5:if(1024&s.flags){for(;C<16;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}s.length=E,s.head&&(s.head.extra_len=E),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0)),C=E=0}else s.head&&(s.head.extra=null);s.mode=6;case 6:if(1024&s.flags&&(f<(A=s.length)&&(A=f),A&&(s.head&&(w=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,A,w)),512&s.flags&&(s.check=i(s.check,g,A,m)),f-=A,m+=A,s.length-=A),s.length))break e;s.length=0,s.mode=7;case 7:if(2048&s.flags){if(0===f)break e;for(A=0;w=g[m+A++],s.head&&w&&s.length<65536&&(s.head.name+=String.fromCharCode(w)),w&&A<f;);if(512&s.flags&&(s.check=i(s.check,g,A,m)),f-=A,m+=A,w)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(A=0;w=g[m+A++],s.head&&w&&s.length<65536&&(s.head.comment+=String.fromCharCode(w)),w&&A<f;);if(512&s.flags&&(s.check=i(s.check,g,A,m)),f-=A,m+=A,w)break e}else s.head&&(s.head.comment=null);s.mode=9;case 9:if(512&s.flags){for(;C<16;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(E!==(65535&s.check)){e.msg="header crc mismatch",s.mode=30;break}C=E=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(;C<32;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}e.adler=s.check=_(E),C=E=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=E,s.bits=C,2;e.adler=s.check=1,s.mode=12;case 12:if(5===t||6===t)break e;case 13:if(s.last){E>>>=7&C,C-=7&C,s.mode=27;break}for(;C<3;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}switch(s.last=1&E,C-=1,3&(E>>>=1)){case 0:s.mode=14;break;case 1:if(y(s),s.mode=20,6!==t)break;E>>>=2,C-=2;break e;case 2:s.mode=17;break;case 3:e.msg="invalid block type",s.mode=30}E>>>=2,C-=2;break;case 14:for(E>>>=7&C,C-=7&C;C<32;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if((65535&E)!=(E>>>16^65535)){e.msg="invalid stored block lengths",s.mode=30;break}if(s.length=65535&E,C=E=0,s.mode=15,6===t)break e;case 15:s.mode=16;case 16:if(A=s.length){if(f<A&&(A=f),I<A&&(A=I),0===A)break e;n.arraySet(p,g,m,A,v),f-=A,m+=A,I-=A,v+=A,s.length-=A;break}s.mode=12;break;case 17:for(;C<14;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(s.nlen=257+(31&E),E>>>=5,C-=5,s.ndist=1+(31&E),E>>>=5,C-=5,s.ncode=4+(15&E),E>>>=4,C-=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(;C<3;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}s.lens[q[s.have++]]=7&E,E>>>=3,C-=3}for(;s.have<19;)s.lens[q[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,k={bits:s.lenbits},U=a(0,s.lens,0,19,s.lencode,0,s.work,k),s.lenbits=k.bits,U){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[E&(1<<s.lenbits)-1])>>>16&255,N=65535&$,!((D=$>>>24)<=C);){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(N<16)E>>>=D,C-=D,s.lens[s.have++]=N;else{if(16===N){for(F=D+2;C<F;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(E>>>=D,C-=D,0===s.have){e.msg="invalid bit length repeat",s.mode=30;break}w=s.lens[s.have-1],A=3+(3&E),E>>>=2,C-=2}else if(17===N){for(F=D+3;C<F;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}C-=D,w=0,A=3+(7&(E>>>=D)),E>>>=3,C-=3}else{for(F=D+7;C<F;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}C-=D,w=0,A=11+(127&(E>>>=D)),E>>>=7,C-=7}if(s.have+A>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=30;break}for(;A--;)s.lens[s.have++]=w}}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},U=a(c,s.lens,0,s.nlen,s.lencode,0,s.work,k),s.lenbits=k.bits,U){e.msg="invalid literal/lengths set",s.mode=30;break}if(s.distbits=6,s.distcode=s.distdyn,k={bits:s.distbits},U=a(u,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,k),s.distbits=k.bits,U){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=E,s.bits=C,r(e,M),v=e.next_out,p=e.output,I=e.avail_out,m=e.next_in,g=e.input,f=e.avail_in,E=s.hold,C=s.bits,12===s.mode&&(s.back=-1);break}for(s.back=0;b=($=s.lencode[E&(1<<s.lenbits)-1])>>>16&255,N=65535&$,!((D=$>>>24)<=C);){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(b&&!(240&b)){for(L=D,P=b,G=N;b=($=s.lencode[G+((E&(1<<L+P)-1)>>L)])>>>16&255,N=65535&$,!(L+(D=$>>>24)<=C);){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}E>>>=L,C-=L,s.back+=L}if(E>>>=D,C-=D,s.back+=D,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;C<F;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}s.length+=E&(1<<s.extra)-1,E>>>=s.extra,C-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=23;case 23:for(;b=($=s.distcode[E&(1<<s.distbits)-1])>>>16&255,N=65535&$,!((D=$>>>24)<=C);){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(!(240&b)){for(L=D,P=b,G=N;b=($=s.distcode[G+((E&(1<<L+P)-1)>>L)])>>>16&255,N=65535&$,!(L+(D=$>>>24)<=C);){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}E>>>=L,C-=L,s.back+=L}if(E>>>=D,C-=D,s.back+=D,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;C<F;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}s.offset+=E&(1<<s.extra)-1,E>>>=s.extra,C-=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(A=M-I,s.offset>A){if((A=s.offset-A)>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=30;break}A>s.wnext?(A-=s.wnext,T=s.wsize-A):T=s.wnext-A,A>s.length&&(A=s.length),R=s.window}else R=p,T=v-s.offset,A=s.length;for(I<A&&(A=I),I-=A,s.length-=A;p[v++]=R[T++],--A;);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(;C<32;){if(0===f)break e;f--,E|=g[m++]<<C,C+=8}if(M-=I,e.total_out+=M,s.total+=M,M&&(e.adler=s.check=s.flags?i(s.check,p,M,v-M):o(s.check,p,M,v-M)),M=I,(s.flags?E:_(E))!==s.check){e.msg="incorrect data check",s.mode=30;break}C=E=0}s.mode=28;case 28:if(s.wrap&&s.flags){for(;C<32;){if(0===f)break e;f--,E+=g[m++]<<C,C+=8}if(E!==(4294967295&s.total)){e.msg="incorrect length check",s.mode=30;break}C=E=0}s.mode=29;case 29:U=1;break e;case 30:U=-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=E,s.bits=C,(s.wsize||M!==e.avail_out&&s.mode<30&&(s.mode<27||4!==t))&&O(e,e.output,e.next_out,M-e.avail_out)?(s.mode=31,-4):(S-=e.avail_in,M-=e.avail_out,e.total_in+=S,e.total_out+=M,s.total+=M,s.wrap&&M&&(e.adler=s.check=s.flags?i(s.check,p,M,e.next_out-M):o(s.check,p,M,e.next_out-M)),e.data_type=s.bits+(s.last?64:0)+(12===s.mode?128:0)+(20===s.mode||15===s.mode?256:0),(0===S&&0===M||4===t)&&U===l&&(U=-5),U)},s.inflateEnd=function(e){if(!e||!e.state)return d;var t=e.state;return t.window&&(t.window=null),e.state=null,l},s.inflateGetHeader=function(e,t){var s;return e&&e.state&&2&(s=e.state).wrap?((s.head=t).done=!1,l):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,l):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,u,l,d,h){var g,p,_,m,v,f,I,E,C,S=h.bits,M=0,y=0,O=0,A=0,T=0,R=0,D=0,b=0,N=0,L=0,P=null,G=0,w=new n.Buf16(16),U=new n.Buf16(16),k=null,F=0;for(M=0;M<=15;M++)w[M]=0;for(y=0;y<c;y++)w[t[s+y]]++;for(T=S,A=15;1<=A&&0===w[A];A--);if(A<T&&(T=A),0===A)return u[l++]=20971520,u[l++]=20971520,h.bits=1,0;for(O=1;O<A&&0===w[O];O++);for(T<O&&(T=O),M=b=1;M<=15;M++)if(b<<=1,(b-=w[M])<0)return-1;if(0<b&&(0===e||1!==A))return-1;for(U[1]=0,M=1;M<15;M++)U[M+1]=U[M]+w[M];for(y=0;y<c;y++)0!==t[s+y]&&(d[U[t[s+y]]++]=y);if(0===e?(P=k=d,f=19):1===e?(P=o,G-=257,k=i,F-=257,f=256):(P=r,k=a,f=-1),M=O,v=l,D=y=L=0,_=-1,m=(N=1<<(R=T))-1,1===e&&852<N||2===e&&592<N)return 1;for(;;){for(I=M-D,d[y]<f?(E=0,C=d[y]):d[y]>f?(E=k[F+d[y]],C=P[G+d[y]]):(E=96,C=0),g=1<<M-D,O=p=1<<R;u[v+(L>>D)+(p-=g)]=I<<24|E<<16|C,0!==p;);for(g=1<<M-1;L&g;)g>>=1;if(0!==g?(L&=g-1,L+=g):L=0,y++,0==--w[M]){if(M===A)break;M=t[s+d[y]]}if(T<M&&(L&m)!==_){for(0===D&&(D=T),v+=O,b=1<<(R=M-D);R+D<A&&!((b-=w[R+D])<=0);)R++,b<<=1;if(N+=1<<R,1===e&&852<N||2===e&&592<N)return 1;u[_=L&m]=T<<24|R<<16|v-l}}return 0!==L&&(u[v+L]=M-D<<24|64<<16),h.bits=T,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"),u=e("./zlib/gzheader"),l=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 u,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.string2buf(t.dictionary):"[object ArrayBuffer]"===l.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,u,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]"===l.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),u=h.next_out-c,d=i.buf2string(h.output,c),h.next_out=u,h.avail_out=g-u,u&&o.arraySet(h.output,h.output,c,u,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")),Zt.exports);var ts=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=Vt,this._currentConnectState=$t,this._beforeSendInterceptors=[]}init(){gt.addTask({id:kt,intervalMs:1e3,callback:this._executeScheduledTaskIfReady,context:this}),this._updateIsBinarySupported(),this._url=function(e){const t=Be.get("instance"),{sdkAppId:s,testEnv:n,disableIndependentDomain:o}=t,i=ot(s);let r="";return n?r=st.TEST[i].DEFAULT:o?(r=st.PRODUCTION[i].DEFAULT,at=it.DEFAULT):r=st.PRODUCTION[i].INITIAL.replace("*",`${s}`),ut(r,{isBinary:e})}(this._isBinarySupported),be.subscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),be.subscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.connect()}sendPacket(e,t){var s;const{requestId:n,timeout:o=wt,canResend:i=!0}=t||{};if(ve(e))return Gt.warn("sendPacket",`${Ut}.sendPacket: packet is empty `),null;this._executeBeforeSendInterceptors(e),this._currentConnectState===qt&&this._handleConnectStateChange({state:qt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ht});const r=JSON.stringify(e);let a=null;if(n){const{resolve:t,reject:s,promise:c}=Ee();a=c,this._pendingRequests.set(n,{resolve:t,reject:s,timestamp:Date.now(),uplinkData:r,timeout:o,canResend:i,requestHead:null==e?void 0:e.head})}const c=this._isBinarySupported?pt(r).buffer:r;return null===(s=this._socketAdapter)||void 0===s||s.send(c),a}connect(){var e;this._socketAdapter=new He(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=`${Ut}.connect isWorkerEnabled: false socketID:${t} url:${this._url}`;this._connectionId=t,this._ssoLog({method:"connect",message:s})}disconnect(){var e,t;const s=null===(e=this._socketAdapter)||void 0===e?void 0:e.getId(),n=`${Ut}.disconnect socketID:${s}`;this._ssoLog({method:"disconnect",message:n}),this._removeEventListeners(),null===(t=this._socketAdapter)||void 0===t||t.disconnect()}getSocketAdapter(){return this._socketAdapter}dispose(){console.log(`${Ut}.dispose`),gt.removeTask(kt),gt.removeTask(Ft),be.unSubscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),be.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=Vt,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===xt&&this._isReconnecting;return!this._socketAdapter||e}reconnect(){return de(this,void 0,void 0,function*(){const e=`${Ut}.reconnect isReconnecting: ${this._isReconnecting} currentConnectState: ${this._currentConnectState}`;if(this._ssoLog({method:"reconnect",message:e}),!this._shouldSkipReconnect()){this._url=lt(this._isBinarySupported);try{this._isReconnecting=!0,this.disconnect(),this.connect()}catch(e){this._isReconnecting=!1,this._handleConnectStateChange({state:qt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Kt}),Gt.warn(`${Ut}.reconnect failed: ${Ie(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=`${Ut}.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}),t===this._connectionId&&this._handleConnectStateChange({state:qt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Yt}),this._isReconnecting&&(this._isReconnecting=!1)}_onError(e){const{socketId:t,error:s}=e||{},n=`${Ut}.onError sourceSocketID: ${t} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${JSON.stringify(s)}`;this._ssoLog({method:"onError",message:n}),t===this._connectionId&&this._handleConnectStateChange({state:qt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Wt}),this._isReconnecting&&(this._isReconnecting=!1)}_onSendFail(e){const{socketId:t,error:s}=e||{},n=`${Ut}.onSendFail sendFailSocketId: ${t} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${Ie(s)}`;this._ssoLog({method:"onSendFail",message:n}),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=es.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=`event.data: ${Ie(e.data)} error: ${Ie(t)}`;return void this._ssoLog({method:"jsonParseError",message:s})}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){var t,s;const{seq:n,servcmd:o}=e.head,{int32_error_code:i,str_error_message:r}=(null==e?void 0:e.body)||{},a=(null===(t=null==e?void 0:e.body)||void 0===t?void 0:t.ErrorCode)||i,c=(null===(s=null==e?void 0:e.body)||void 0===s?void 0:s.ErrorInfo)||r,u=`${n}${o}`,{resolve:l,reject:d,timestamp:h,headSeq:g,requestHead:p}=this._pendingRequests.get(u);if(this._pendingRequests.delete(u),a&&0!==a)return be.emitInnerEvent("error",{errorCode:a,errorInfo:c,requestHead:p}),void d({errorCode:a,errorInfo:c});l(e.body)}_handlePushMessage(e){const{servcmd:t}=e.head,{NeedAck:s,SessionData:n}=e.body;1===s&&this._sendAck(n),be.emitInnerEvent(t,e)}_checkPendingRequestsAndResend(){var e;Gt.debug("_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?pt(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=`${Ut}.onConnect cost:${n} ms. socketID:${t} res:${JSON.stringify(s)}`;if(this._ssoLog({method:"onConnect",message:o}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const e=`${Ut}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:e}),be.emitInnerEvent(Tt.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:$t,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(e){const t=vt({servcmd:"openim.ws_msg_push_ack",data:{SessionData:e}});this.sendPacket(t)}_executeScheduledTaskIfReady(){return de(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 de(this,void 0,void 0,function*(){var e;const t=vt({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=Be.get("netWorkMonitor"))||void 0===e?void 0:e.isNetWorkOnline,n=`${Ut}.sendHeartbeat failed. isNetWorkOnline:${s} error: ${t}`;this._ssoLog({method:"sendHeartbeatError",message:n}),this._handleConnectStateChange({state:qt,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return de(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=L?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(e){const t=`${Ut}.networkStatusChange ${JSON.stringify(e)}`;this._ssoLog({method:"networkStatusChange",message:t});const{isNetworkOnline:s,networkType:n}=e;s&&"none"!==n?this._handleConnectStateChange({state:$t,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Bt}):this._handleConnectStateChange({state:qt,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:Bt})}isPrivateNetWork(){const e=Be.get("instance")||{};return e.proxyServer&&!e.fileDownloadProxy}_handleConnectStateChange(e){const{state:t,shouldAttemptReconnect:s,shouldEmitEvent:n,reason:o}=e,i=`${Ut}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${s} shouldEmitEvent: ${n} reason: ${o}`;this._currentConnectState!==t&&(this._ssoLog({method:"handleConnectStateChange",message:i}),n&&(Gt.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${t}`),be.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:t}}),this._currentConnectState=t,t===qt&&be.emitInnerEvent(Tt.SOCKET_DISCONNECTED)),s&&(this._resetReconnectDelay(),gt.addTask({id:Ft,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=`${Ut}.activityStatusChange ${JSON.stringify(e)} readyState: ${n}`;Gt.debug("activityStatusChange",o),3===n&&this._handleConnectStateChange({state:qt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:jt})}_resetReconnectDelay(){var e;Gt.debug(`${Ut}._resetReconnectDelay`),gt.removeTask(Ft);const t=null===(e=Be.get("activityMonitor"))||void 0===e?void 0:e.isActive;this._intendedDelay=t?Vt:1e3}_scheduleReconnectWithBackoff(){var e;const t=null===(e=Be.get("activityMonitor"))||void 0===e?void 0:e.isActive;this._intendedDelay=t?Math.min(5e3,Math.max(Vt,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const s=(new Date).toTimeString().slice(0,8),n=`${Ut}.scheduleReconnectWithBackoff timeStr: ${s} intendedDelay: ${this._intendedDelay}`;Gt.debug(n),this.reconnect(),gt.updateTaskInterval(Ft,this._intendedDelay)}_ssoLog(e){const{method:t,message:s}=e;Gt.info(t,s)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(e){de(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 me({method:"GET",url:s,data:{}})}catch(e){Gt.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${e.message}`)}})}(this._url),function(e){de(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 me({method:"GET",url:t,data:{}})}catch(e){Gt.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${e.message}`)}})}(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:ge,errorInfo:"NETWORK_TIMEOUT",data:{requestId:e}}))}}_updateIsBinarySupported(){var e;if(null===(e=Be.get("instance"))||void 0===e?void 0:e.devMode)return void(this._isBinarySupported=!1);const t=ue();if((b||y&&"windows"===t||w)&&(this._isBinarySupported=!1),L){const{uniRuntimeVersion:e=""}=q.getSystemInfoSync();(function(e){const t=e.split(".").map(Number),[s=0,n=0,o=0]=t;return s>2||!(s<2)&&(n>2||!(n<2)&&o>=6)})(e)||(this._isBinarySupported=!1)}}_isCompressedData(e){const t=new Uint8Array(e);return 67===t[0]&&79===t[1]&&77===t[2]&&80===t[3]}};const ss={init:function(e){Be.set("instance",e),ts.init()},destroy:function(){ts.dispose(),Be.clear(),gt.dispose()},notificationCenter:be,channel:ts,store:Be,ssoLog:Gt,utils:Se,common:Mt,constants:S};const ns=e=>"function"==typeof e;function os(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]?os(e[n],t[n],s):e[n]===t[n]))}var is;!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",e.SERVER_CONFIG_UPDATED="onServerConfigUpdated",e.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",e.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived"}(is||(is={}));var rs,as=is;!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",e.TOPIC_MESSAGE_DELETED="topic_message_deleted",e.TOPIC_MESSAGE_REVOKED="topic_message_revoked",e.TOPIC_MESSAGE_MODIFIED="topic_message_modified",e.TOPIC_NEW_MESSAGE="topic_new_message",e.QUALITY_STAT="quality_stat",e.SYNC_CONVERSATION_LIST="sync_conversation_list",e.HISTORY_MESSAGE_FETCHED="history_message_fetched"}(rs||(rs={}));var cs,us=rs;!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"}(cs||(cs={}));var ls=cs;const ds=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),hs={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",MSG_STREAM:"TIMStreamElem"};var gs;!function(e){e.UNSENT="unSend",e.SUCCESS="success",e.FAIL="fail"}(gs||(gs={}));const ps={modify:us.MESSAGE_MODIFIED,delete:us.MESSAGE_DELETED,revoke:us.MESSAGE_REVOKED};var _s;!function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(_s||(_s={}));const ms=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},hs),{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:gs,Direction:_s}),vs={[ps.modify]:us.TOPIC_MESSAGE_MODIFIED,[ps.delete]:us.TOPIC_MESSAGE_DELETED,[ps.revoke]:us.TOPIC_MESSAGE_REVOKED},fs={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"},Is=Object.assign({},fs),Es={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},Cs=Object.assign(Object.assign(Object.assign(Object.assign({},Es),{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"}),Ss=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"}),Ms={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},ys={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},Os={JOINED:1,QUITTED:2,KICKED:3,ADMIN_SET:4,ADMIN_CANCELED:5,GROUP_PROFILE_UPDATED:6,GROUP_MEMBER_PROFILE_UPDATED:7,TOPIC_PROFILE_UPDATED:8},As=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Ms),{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:ys,GROUP_TIPS_OPERATION_TYPE:Os}),Ts={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},Rs=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ds),ms),Is),Cs),Ss),As),Ts),{NET_STATE_CONNECTING:"connecting",NET_STATE_DISCONNECTED:"disconnected"}),Ds={NO_SDKAPPID:2e3,NO_TINYID:2022,NO_A2KEY:2023,USER_NOT_LOGGED_IN:2024,REPEAT_LOGIN:2025,MSG_SEND_FAIL:2100,MSG_SEND_FAIL_NOT_IN_AV:2101,MSG_SEND_GRP_WITH_TOPIC_FAIL:2115,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,INVALID_OPERATION:2905,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},bs={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3"},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",RECEIVE_GROUP_TIPS_NOTIFICATION:"receive-group-tips-notification"},Ls={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",CONVERSATION_GROUP_LIST_SYNC:"conversation-group-list-sync",CONVERSATION_GROUP_UPDATE:"conversation-group-update",UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED:"update-topic-after-unread-sync-finished",UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE:"update-topic-by-received-new-message",TOPIC_REQUEST_INFO_RESET:"topic-request-info-reset",QUALITY_REPORT:"quality-report",GROUP_TIPS_RECOVER:"group-tips-recover",HANDLE_GROUP_TIPS_NOTIFICATION:"handle-group-tips-notification",C2C_HISTORY_MESSAGE_RECOVER:"c2c-history-message-recover",FRIEND_APPLICATION_LIST_RECOVER:"friend-application-list-recover"},Ps={[Ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:Ls.USER_STATUS_UPDATE},{stepId:Ls.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:Ls.UNREAD_MESSAGE_SYNC,dependency:Ls.C2C_HISTORY_MESSAGE_RECOVER},{stepId:Ls.CONVERSATION_RECOVER},{stepId:Ls.HISTORY_MESSAGE_RECOVER,dependency:Ls.CONVERSATION_RECOVER},{stepId:Ls.BLACKLIST_RECOVER},{stepId:Ls.FRIEND_RECOVER},{stepId:Ls.FRIEND_APPLICATION_LIST_RECOVER},{stepId:Ls.GROUP_REVOKED_NOTICE_RECOVER,dependency:Ls.HISTORY_MESSAGE_RECOVER},{stepId:Ls.GROUP_TIPS_RECOVER,dependency:Ls.HISTORY_MESSAGE_RECOVER},{stepId:Ls.TOPIC_REQUEST_INFO_RESET},{stepId:Ls.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:Ls.UNREAD_MESSAGE_SYNC},{stepId:Ls.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:Ls.UNREAD_MESSAGE_SYNC},{stepId:Ls.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ls.UNREAD_MESSAGE_SYNC,Ls.CONVERSATION_RECOVER]},{stepId:Ls.EMIT_C2C_MESSAGE_EVENT,dependency:[Ls.UNREAD_MESSAGE_SYNC,Ls.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:Ls.C2C_HISTORY_MESSAGE_RECOVER,dependency:Ls.CONVERSATION_RECOVER}],[Ns.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:Ls.COMMERCIAL_CONFIG_UPDATE},{stepId:Ls.CLOUD_CONFIG_SYNC},{stepId:Ls.USER_PROFILE_SYNC},{stepId:Ls.UNREAD_MESSAGE_SYNC},{stepId:Ls.FRIEND_AND_BLACKLIST_SYNC},{stepId:Ls.GROUP_LIST_SYNC},{stepId:Ls.CONVERSATION_LIST_SYNC},{stepId:Ls.SIGNALING_MESSAGE_RECOVER,dependency:Ls.UNREAD_MESSAGE_SYNC},{stepId:Ls.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ls.UNREAD_MESSAGE_SYNC]},{stepId:Ls.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ls.UNREAD_MESSAGE_SYNC,Ls.CONVERSATION_LIST_SYNC]},{stepId:Ls.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[Ls.GROUP_LIST_SYNC,Ls.CONVERSATION_LIST_SYNC]},{stepId:Ls.CONVERSATION_GROUP_LIST_SYNC},{stepId:Ls.CONVERSATION_GROUP_UPDATE,dependency:[Ls.CONVERSATION_LIST_SYNC,Ls.CONVERSATION_GROUP_LIST_SYNC]},{stepId:Ls.QUALITY_REPORT}],[Ns.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:Ls.HANDLE_C2C_NEW_MESSAGE},{stepId:Ls.UNREAD_MESSAGE_SYNC},{stepId:Ls.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Ls.HANDLE_C2C_NEW_MESSAGE},{stepId:Ls.EMIT_C2C_MESSAGE_EVENT,dependency:[Ls.HANDLE_C2C_NEW_MESSAGE,Ls.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:Ls.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[Ls.UNREAD_MESSAGE_SYNC]}],[Ns.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:Ls.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ls.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Ls.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ls.UPDATE_GROUP_NEXT_SEQUENCE,dependency:Ls.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ls.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:Ls.HANDLE_GROUP_NEW_MESSAGE},{stepId:Ls.EMIT_GROUP_MESSAGE_EVENT,dependency:[Ls.HANDLE_GROUP_NEW_MESSAGE,Ls.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[Ns.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:Ls.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:Ls.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:Ls.HANDLE_GROUP_TIPS_NOTIFICATION}]},Gs={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},ws={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},Us=["login","getMyProfile","getUserProfile","updateMyProfile","setSelfStatus","getUserStatus","subscribeUserStatus","unsubscribeUserStatus","modifyMessage","deleteGroupMember","dismissGroup","getGroupMemberList","getGroupOnlineMemberCount","joinGroup","markGroupMemberList","quitGroup","searchCloudMessages","searchCloudGroups","searchCloudGroupMembers","searchCloudUsers","getMyFollowingList","getMyFollowersList","getMutualFollowersList","followUser","unfollowUser","getUserFollowInfo","checkFollowType","getFriendProfile","addFriend","deleteFriend","updateFriend","checkFriend","setFriendApplicationRead","createFriendGroup","deleteFriendGroup","addToFriendGroup","removeFromFriendGroup","renameFriendGroup","changeGroupOwner","createGroup","dismissGroup","getGroupList","getGroupOnlineMemberCount","getGroupProfile","searchGroupByID","updateGroupProfile","handleGroupApplication","deleteGroupAttributes","getGroupAttributes","initGroupAttributes","setGroupAttributes","addGroupMember","deleteGroupMember","getGroupMemberList","getGroupMemberProfile","setGroupMemberMuteTime","setGroupMemberNameCard","setGroupMemberRole","deleteMessage","revokeMessage","setMessageExtensions","getMessageExtensions","deleteMessageExtensions","getMessageList","addMessageReaction","removeMessageReaction","clearHistoryMessage","sendMessageReadReceipt","getMessageReadReceiptList","getGroupMessageReadMemberList","createMergerMessage","invite","accept","cancel","reject","modifyInvitation","deleteConversation","pinConversation","setMessageRead","setAllMessageRead","getConversationList","getTotalUnreadMessageCount","renameConversationGroup","deleteConversationGroup","markConversation","setConversationCustomData","deleteConversationsFromGroup","addConversationsToGroup","createConversationGroup"];var ks=Object.freeze({__proto__:null,ERROR_CODE:Ds,InnerEvent:us,NEED_LOG_API:Us,OuterConstant:Rs,OuterEvent:as,PUSH:Ts,QUALITY_METRICS:Gs,SDK_EDITION:bs,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:ws,SignalingEvent:ls,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:Ps,WORKFLOW_NAME:Ns,WORKFLOW_STEP:Ls});var Fs,$s,xs;!function(e){e[e.USER_INITIATED=0]="USER_INITIATED",e[e.KICKED_OUT=1]="KICKED_OUT"}(Fs||(Fs={})),function(e){e[e.multipleAccount=1]="multipleAccount",e[e.multipleDevice=2]="multipleDevice",e[e.restApi=3]="restApi"}($s||($s={})),function(e){e[e.multipleDevice=3002]="multipleDevice",e[e.multipleAccount=3003]="multipleAccount",e[e.usersigExpired=70001]="usersigExpired",e[e.restApi=20002]="restApi"}(xs||(xs={}));const qs={[$s.multipleAccount]:"multipleAccount",[$s.multipleDevice]:"multipleDevice",[$s.restApi]:"REST_API_Kick",[xs.multipleAccount]:"multipleAccount",[xs.multipleDevice]:"multipleDevice",[xs.restApi]:"REST_API_Kick",[xs.usersigExpired]:"userSigExpired"},Vs="login_online_presence_task",{ERROR:Bs,DESTROY:js,FORCE_OFFLINE:Hs}=us,{KICKED_OUT_MULT_ACCOUNT:Ks,KICKED_OUT_MULT_DEVICE:Ws,KICKED_OUT_REST_API:Ys,ACCOUNT_A2KEY_EXPIRED:zs,MSG_A2KEY_EXPIRED:Js}=Ds;class Qs{init(){const{notificationCenter:e}=ss;e.subscribeInnerEvent(Hs,this._handleForceOfflineFromServerPush,this),e.subscribeInnerEvent(Bs,Js,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),e.subscribeInnerEvent(Bs,zs,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),e.subscribeInnerEvent(Bs,Ks,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(Bs,Ws,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(Bs,Ys,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(js,this._dispose,this)}_handleForceOfflineFromServerPush(e){var t;if(!0===(null===(t=ss.store.get("login"))||void 0===t?void 0:t.isLoggedIn)){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 de(this,void 0,void 0,function*(){const{kickedOutReasonCode:t}=e,{ssoLog:s,utils:{safeStringify:n}}=ss;try{this._logKickedOutEvent(e),this._shouldLogoutAfterKickedOut(t)&&(yield ss.login.loginAction.logout(Fs.KICKED_OUT))}catch(e){s.debug("_processKickedOutReasonInfo",` fail ${n(e)}`)}finally{ss.notificationCenter.emitOuterEvent(as.KICKED_OUT,{data:{type:qs[t]},name:as.KICKED_OUT})}})}_logKickedOutEvent(e){const{kickedOutReasonCode:t,newInstanceInfo:s={}}=e,n=`type:${qs[t]} newInstanceInfo: ${JSON.stringify(s)}`;ss.ssoLog.warn("kickedOut",n)}_isKickedOut(e){return[$s.multipleAccount,$s.multipleDevice,$s.restApi].includes(e)}_isChatLoginEvent(e){const{requestHead:t}=e||{};return 1!==(null==t?void 0:t.idtype)}_shouldLogoutAfterKickedOut(e){return![xs.usersigExpired,$s.restApi].includes(e)}_dispose(){const{notificationCenter:e}=ss;e.unSubscribeInnerEvent(Hs,this._handleForceOfflineFromServerPush,this),e.unSubscribeInnerEvent(Bs,zs,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(Bs,Js,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(Bs,Ks,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(Bs,Ws,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(Bs,Ys,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(js,this._dispose,this)}}function Xs(e){return de(this,void 0,void 0,function*(){const t="im_open_status.wslogin",s=ss.common.generateProtocolData({servcmd:t,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:e}}),n=`${s.head.seq}${t}`,o=yield ss.channel.sendPacket(s,{timeout:9e4,requestId:n});if(o){const{HelloInterval:e,InstId:t,TinyId:s,TimeStamp:n,CustomStatus:i,PurchaseBits:r,A2Key:a,RichMsgAuthKey:c,ErrorCode:u,ErrorInfo:l,ActionStatus:d}=o;return{helloInterval:e,instanceID:t,tinyID:s,timeStamp:n,customStatus:i,purchaseBits:r,a2Key:a,authKey:c,errorCode:u,errorInfo:l,actionStatus:d}}})}function Zs(e){var t;try{const s=Be.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 u=n[n[c]?c:i]||"";return u&&(r&&(u=u.replace("$replacement1",r)),a&&(u=u.replace("$replacement2",a))),u}catch(e){return console.warn("Error parsing stored error messages:",e),""}}class en extends Error{constructor(e){const{functionName:t="Unknown",code:s,message:n="",data:o="",moreMessage:i=""}=e;let r=n;s&&!n&&(r=Zs(e));let a=s?`${t} failed. error: {"message": ${r}, "code": ${s}}`:`${t} failed. error: {"message": ${r}}`;a=`${a} ${i}`,super(),this.code=s,this.errorCode=s,this.errorMessage=r,this.message=a,this.data=o}}function tn(e,t){var s;if(!e)return;if(!(!0===(null===(s=ss.store.get("login"))||void 0===s?void 0:s.isLoggedIn)))throw new en({code:Ds.USER_NOT_LOGGED_IN,functionName:t})}function sn(e,t,s){if(Array.isArray(e))for(let n=0;n<e.length;n++)nn.call(this,Object.assign(Object.assign({},e[n]),{value:t[n],name:s}));else for(const n in e)nn.call(this,Object.assign(Object.assign({},e[n]),{value:t[0][n],name:s,key:n}))}function nn({required:e,rules:t,range:s,value:n,allowEmpty:o,name:i,key:r,customValidator:a}){if(void 0===n){if(e){throw new en({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 en({functionName:i,message:e})}if(!1===o){if(Array.isArray(n)&&(0===n.length||"string"==typeof n[0]&&""===n[0].trim())){throw new en({functionName:i,message:`${r} can not be empty.`})}if("string"==typeof n&&""===n.trim()){throw new en({functionName:i,message:`${r} can not be empty.`})}}if(a&&"function"==typeof a){const e=a(n);if(!0!==e){throw new en({functionName:i,message:`[${r}] custom validation failed: ${e||"Invalid value"}`})}}}const on=[],rn={},an={};function cn(e,t){tn(rn[e],e),sn(an[e],t,e),function(e){on.forEach(t=>{const{interceptor:s,context:n}=t;s.apply(n,[e])})}(e)}function un(e,t){on.push({interceptor:e,context:t})}function ln(e){const{params:t,auth:s}=e;t&&"object"==typeof t&&Object.assign(an,t),s&&"object"==typeof s&&Object.assign(rn,s)}function dn(e){return ss.store.get("commercialConfig").get(e)}class hn{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),ss.ssoLog.debug("_executeWorkflowStep",`[Workflow ${e}] Step ${t} started at ${new Date(s).toISOString()}`)):(this._workflowStartTimes.set(e,s),ss.ssoLog.debug("_executeWorkflowStep",`[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}`),ss.ssoLog.debug("_executeWorkflowStep",`[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),ss.ssoLog.debug("_executeWorkflowStep",`[Workflow ${e}] completed successfully at ${new Date(s).toISOString()} (${n}ms)`)}},error:(e,t,s)=>{const{ssoLog:n,utils:{safeStringify:o}}=ss,i=Date.now();if(t){const r=this._stepStartTimes.get(`${e}-${t}`),a=r?i-r:0;this._stepStartTimes.delete(`${e}-${t}`),n.error("_executeWorkflowStep",`[Workflow ${e}] Step ${t} failed at ${new Date(i).toISOString()} (${a}ms) ${o(s)}`,{error:s})}else{const t=this._workflowStartTimes.get(e),r=t?i-t:0;this._workflowStartTimes.delete(e),n.error("_executeWorkflowStep",`[Workflow ${e}] failed at ${new Date(i).toISOString()} (${r}ms) ${o(s)}`,{error:s})}}}}static getInstance(){return hn._instance||(hn._instance=new hn),hn._instance}static setInstance(e){hn._instance=e}init(){this._initializeWorkflows()}registerWorkflowStep(e,t,s,n){if(!this._handlers.has(e))return void ss.ssoLog.debug("registerWorkflowStep",`Workflow '${e}' not defined in core`);if(!Ps[e].find(e=>e.stepId===t))return void ss.ssoLog.debug("registerWorkflowStep",`Step '${t}' not defined in workflow '${e}'`);const o=this._handlers.get(e);o.has(t)||o.set(t,n?s.bind(n):s)}executeWorkflow(e,t){return de(this,void 0,void 0,function*(){if(!this._validateWorkflow(e))return;ss.ssoLog.debug("executeWorkflow",`[Workflow ${e}] Started execution at ${(new Date).toISOString()}`);const s=Ps[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&&(ss.ssoLog.debug("executeWorkflow",`Workflow ${e} completed with some steps skipped due to dependency failures`),t())},onError:s,onStepComplete:n})})};n()}),ss.ssoLog.debug("executeWorkflow",`[Workflow ${e}] Completed execution at ${(new Date).toISOString()}`)}catch(t){ss.ssoLog.error("executeWorkflow",`[Workflow ${e}] Failed execution at ${(new Date).toISOString()}`,{error:t})}finally{this._activeWorkflows.delete(e)}})}_executeWorkflowStep(e,s,n){return de(this,void 0,void 0,function*(){const{workflowName:o,runningSteps:i,stepMap:r,stepResults:a,data:c}=s;i.add(e),this._logWorkflowExecution(o,e,"start");try{const n=r.get(e);let i=null;(null==n?void 0:n.dependency)&&(t(n.dependency)?i=a[n.dependency]:Array.isArray(n.dependency)&&(i={},n.dependency.forEach(e=>{i[e]=a[e]})));const u=this._handlers.get(o).get(e);if(u){const t=yield Promise.resolve(u({data:c,result:i}));a[e]=t,this._logWorkflowExecution(o,e,"success")}s.completedSteps.add(e)}catch(t){const s=`[Workflow].${o}.${e}`,{errorCode:i,errorInfo:r=`${s} failed`}=t||{},a=new en({functionName:s,code:i,message:r});ss.ssoLog.error(s,r,{error:a}),this._logWorkflowExecution(o,e,"error",t),n.onError(t)}finally{i.delete(e),s.pendingSteps.delete(e),n.onStepComplete(),n.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(Ps).forEach(e=>{this._handlers.has(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(Ps).forEach(e=>{this._cancelWorkFlow(e)})}_validateWorkflow(e){if(!Ps[e])return!1;return!!this._handlers.get(e)}_getExecutableSteps(e){const{pendingSteps:s,completedSteps:o,stepMap:i,workflowName:r}=e;return Array.from(s).filter(e=>{const s=i.get(e)||{},{dependency:a,skipIfDependencyMissing:c=!0}=s;if(!a)return!0;if(t(a))return this._isStepRegistered({workflowName:r,stepId:a})?o.has(a):!c;if(n(a)){if(a.filter(e=>!this._isStepRegistered({workflowName:r,stepId:e})).length>0&&c)return!1;for(const e of a)if(!o.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)}}const gn=new Map,pn=({type:e,groupID:t})=>e===Rs.GRP_COMMUNITY||`${t}`.startsWith(ys.COMMUNITY)&&!`${t}`.includes(ys.TOPIC),_n=(e="")=>{const t=e.startsWith("GROUP")?e.replace("GROUP",""):e;return t.startsWith(ys.COMMUNITY)&&`${t}`.includes(ys.TOPIC)},mn="openim",vn="million_group_open_http_svc";function fn(e){return de(this,void 0,void 0,function*(){const{servcmd:t,data:s}=function(e){const{data:t}=e;return In(t)||En(t)}(e)?function(e){let{servcmd:t,data:s}=e;if(En(s))return function(e){const{servcmd:t,data:s}=e;let{GroupId:n=""}=s;const o=n;return[n]=o.split(ys.TOPIC),{servcmd:Cn(t),data:Object.assign(Object.assign({},s),{GroupId:n,TopicId:o})}}(e);In(s)&&(t=Cn(t));return{servcmd:t,data:s}}(e):e,n=ss.common.generateProtocolData({servcmd:t,data:s}),o=`${n.head.seq}${t}`;return ss.channel.sendPacket(n,{requestId:o,timeout:e.timeout})})}function In(e){const{Type:t,GroupId:s,GroupIdList:n=[]}=e,o=s||n[0]||"";return pn({type:t,groupID:o})}function En(e){const{GroupId:t=""}=e;return _n(t)}function Cn(e){if(e.includes(mn))return e;const t=e.split(".")[1];return`${vn}.${t}`}function Sn(){var e;return null===(e=ss.store.get("login"))||void 0===e?void 0:e.userId}const Mn=e=>n(e)||o(e),yn=(t,s,n,o)=>{if(!Mn(t)||!Mn(s))return 0;let i=0;const r=Object.keys(s);let a;for(let c=0,u=r.length;c<u;c++)if(a=r[c],!(e(s[a])||n&&n.includes(a)))if(Mn(t[a])&&Mn(s[a]))i+=yn(t[a],s[a],n,o);else{if(o&&o.includes(s[a]))continue;t[a]!==s[a]&&(t[a]=s[a],i+=1)}return i},On=(t,s)=>{if(e(s))return"";switch(t){case Rs.MSG_TEXT:return s.text||"";case Rs.MSG_IMAGE:return"[Image]";case Rs.MSG_LOCATION:return"[Location]";case Rs.MSG_AUDIO:return"[Voice]";case Rs.MSG_VIDEO:return"[Video]";case Rs.MSG_FILE:return"[File]";case Rs.MSG_CUSTOM:return"[Custom Messages]";case Rs.MSG_GRP_TIP:return"[Group Notification]";case Rs.MSG_GRP_SYS_NOTICE:return"[Group System Message]";case Rs.MSG_FACE:return"[Animated Sticker]";case Rs.MSG_MERGER:return"[Chat Record]";case Rs.MSG_STREAM:return"[Stream Message]";default:return""}},An=[{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_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}],Tn="im_sdk_config_mgr.fetch_config",Rn="im_sdk_config_mgr.push_configv2",Dn="cloud-config",bn=2996;const Nn=new class{init(e){this.core=e}};function Ln(e){return de(this,void 0,void 0,function*(){const{sdkAppId:t}=Nn.core.store.get("instance")||{},s=Nn.core.helper.generateProtocolData({servcmd:Tn,data:{uint32_sdkappid:t,uint64_version:e}}),n=`${s.head.seq}${Tn}`;return Nn.core.channel.sendPacket(s,{requestId:n})})}var Pn=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(Rn,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(An),r.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(e){return de(this,void 0,void 0,function*(){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:bn,replacement1:e})}_handlePushedConfig(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;t.info("_handlePushedConfig",s(e)),yield this._updateCloudConfig(e)})}_handleLoginSuccess(){return de(this,void 0,void 0,function*(){const{ssoLog:e,utils:{safeStringify:t}}=this._core;try{if(this._canFetch()){const s=yield Ln(this._version);e.info("_fetchCloudConfigIfLogin",t(s)),yield this._updateCloudConfig(s)}this._core.helper.taskScheduler.addTask({id:Dn,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(s){e.debug("_fetchCloudConfigIfLogin",t(s))}})}_fetchCloudConfigIfReady(){return de(this,void 0,void 0,function*(){const{ssoLog:e,utils:{safeStringify:t}}=this._core;if(this._canFetch())try{const s=yield Ln(this._version);e.info("_fetchCloudConfigIfReady",t(s)),yield this._updateCloudConfig(s)}catch(s){e.error("_fetchCloudConfigIfReady",t(s))}})}_updateCloudConfig(e){return de(this,void 0,void 0,function*(){const t=this._parseCloudConfig(e);t&&(this._core.store.set("cloudConfig",t),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,t),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config: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(){return de(this,void 0,void 0,function*(){var e;let t=null===(e=yield 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(Dn),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(An),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(Rn,this._handlePushedConfig,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this),this._reset()}};class Gn{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 wn={SEARCH_GRP_SNS:new Gn(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new Gn(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new Gn(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new Gn(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new Gn(0,Math.pow(2,6)).toString(),USER_STATUS:new Gn(0,Math.pow(2,7)).toString(),CONV_MARK:new Gn(0,Math.pow(2,9)).toString(),CONV_GROUP:new Gn(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new Gn(0,Math.pow(2,11)).toString(),MSG_EXT:new Gn(0,Math.pow(2,13)).toString(),GRP_COUNTER:new Gn(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new Gn(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new Gn(Math.pow(2,7)).toString(),PLUGIN_CS:new Gn(Math.pow(2,8)).toString(),PLUGIN_PUSH:new Gn(Math.pow(2,9)).toString(),PLUGIN_BOT:new Gn(Math.pow(2,10)).toString(),MSG_REACTION:new Gn(Math.pow(2,16)).toString(),FOLLOW:new Gn(Math.pow(2,20)).toString()},Un="CommercialConfig",kn="commercial-config";var Fn=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}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),e.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(e){return de(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 Gn(0,2**i).toString():new Gn(2**(i-32),0).toString(),!this._featureMap.get(n))){o=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${Un}.isFeatureEnabled decimalNumber:${e} key:${n} ret:${o}`),{code:0,data:{enabled:o}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return de(this,void 0,void 0,function*(){var e;const{ssoLog:t,utils:{safeStringify:s},common:{buildAndSendPacket:n}}=this._core;try{this._isFetching=!0;const t=yield n({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}});(null==t?void 0:t.body)&&(this._parseCommercialConfig(t.body),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(e){t.error("_fetchAndParseCommercialConfig",s(e))}finally{this._isFetching=!1}})}_syncCommercialConfig(e){return de(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:kn,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 de(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(e){const{ssoLog:t}=this._core;if("object"!=typeof e)return;const{int32_error_code:s,str_error_message:n,str_purchase_bits:o,uint32_expired_time:i}=e;0===s?(this._parsePurchaseBits(o),this._expirationTime=Date.now()+1e3*i):void 0===s?(t.warn("_parseCommercialConfig",`${Un}._parseCommercialConfig failed. Invalid message format:`,e),this._expirationTime=Date.now()+36e5):(t.warn("_parseCommercialConfig",`${Un}._parseCommercialConfig errorCode:${s} errorMessage:${n}`),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){const{ssoLog:t,utils:{safeStringify:s}}=this._core;if(this._isValidPurchaseBits(e)){this._purchaseBits=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 Gn(0,2**n).toString():new Gn(2**(n-32),0).toString(),"1"===e[s]){this._featureMap.set(t,!0);const e=this._getKeyByValue(wn,t);e&&this._methodKeyMap.set(e,!0)}else{this._featureMap.set(t,!1);const e=this._getKeyByValue(wn,t);e&&this._methodKeyMap.set(e,!1)}}else t.warn("_parsePurchaseBits",`${Un}.parsePurchaseBits invalid purchases:${s(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(kn),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}};var $n=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 xn=new class{constructor(){this.name="ConfigCenter"}install(e){Nn.init(e),Pn.install(e),Fn.install(e),$n.install(e)}};var qn=new class{constructor(){this.name="ErrorMessage",this._core=null}install(e){return de(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 de(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 Vn(e,t){return de(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:u,MsgTimeStamp:l,SendMsgControl:d,SupportMessageExtension:h,To_Account:g,TinyId:p,MsgCheckResult:_,CloudCustomData:m,IsPeerRead:v,MsgFlagBits:f,MsgVersion:I,EventArray:E}=e;return{from:s,avatar:n,nick:o,needReadReceipt:1===i,readReceiptSentByPeer:v,clientTime:a,messageFlagBits:f,random:c,sequence:u,time:l,messageControlInfo:d,isSupportExtension:h,to:g,tinyID:p,checkResult:_,cloudCustomData:m,messageVersion:I,eventArray:E,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 Bn,jn;!function(e){e[e.START_SYNC=0]="START_SYNC",e[e.SYNCING=1]="SYNCING",e[e.SYNC_COMPLETE=2]="SYNC_COMPLETE"}(Bn||(Bn={})),function(e){e[e.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",e[e.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(jn||(jn={}));var Hn=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}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.SOCKET_DISCONNECTED,this._handleDisconnect,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(e){return de(this,void 0,void 0,function*(){const{isAfterReOnline:t=!1,isAfterNewMessageReceived:s=!1,isAfterLogin:n=!1}=e||{};let o=Bn.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?jn.NEW_MESSAGE_RECEIVED:jn.LOGIN_SUCCESS});if(!e)break;const{unreadMessageList:n=[],revokedMessageList:u=[],overflowUnreadCountList:l,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(...u),this._updateConversationUnreadOptions({unreadCountList:d,overflowUnreadCountList:l,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 de(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(e){return de(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 de(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(this._shouldStoreUnreadMessage(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}}_shouldStoreUnreadMessage(e){var t;const{conversationID:s}=e,{message:n,appStore:o,utils:{isEmpty:i}}=this._core||{},r=Array.from((null===(t=o.conversationStore.getConversationMap())||void 0===t?void 0:t.keys())||[]),a=this._getLocalLastMessageTime(s);return!n.messageDataHandler.isInMessageList(e)&&r.includes(s)&&this._localConversationIDListBeforeDisconnect.includes(s)&&!i(a)}_fetchUnreadDBMessage(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;try{const n="unread-message-synchronizer._fetchUnreadDBMessage";t.debug("_fetchUnreadDBMessage",`${n} options:${s(e)}`);const o=yield Vn(e,this._core);if(!o)return null;const{syncFlag:i,unreadMessageList:r,revokedMessageList:a,cookie:c,unreadCountList:u,overflowUnreadCountList:l,groupTipList:d}=o;return this._parseAndSaveUnreadMessageList(r),{syncFlag:i,cookie:c,unreadMessageList:r,revokedMessageList:a,unreadCountList:u,overflowUnreadCountList:l,groupTipList:d}}catch(e){console.log(e)}})}_canContinueSync({cookie:e,syncFlag:t}){var s;return t===Bn.START_SYNC||t===Bn.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)})}_handleDisconnect(){var e;const{appStore:t}=this._core;this._localConversationIDListBeforeDisconnect=Array.from((null===(e=t.conversationStore.getConversationMap())||void 0===e?void 0:e.keys())||[])}_getLocalLastMessageTime(e){const{message:t}=this._core,s=t.messageDataHandler.getLocalMessageList(e),n=s[s.length-1];return null==n?void 0:n.time}_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 Kn=new class{init(e){var t;this._core=e,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this),null===document||void 0===document||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 Wn=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,t,s,n,o;const{MINI_APP_NAMESPACE:i,IN_TT_MINI_GAME:r,IN_WX_MINI_GAME:a}=(null===(e=this._core)||void 0===e?void 0:e.utils)||{};r||a?(null===(t=null==i?void 0:i.onShow)||void 0===t||t.call(i,()=>{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})}),null===(s=null==i?void 0:i.onHide)||void 0===s||s.call(i,()=>{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})})):(null===(n=null==i?void 0:i.onAppShow)||void 0===n||n.call(i,()=>{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})}),null===(o=null==i?void 0:i.onAppHide)||void 0===o||o.call(i,()=>{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 Yn=new class{init(e){const{IN_MINI_APP:t,IN_WX_MINI_PLUGIN:s}=e.helper;s||(t?Wn.init(e):Kn.init(e))}};const zn="none",Jn="online";var Qn=new class{init(e){this._core=e,this._activateNetworkMonitoring(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return de(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:Jn})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:zn})}_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 Xn=new class{init(e){this._core=e,this._activateNetworkMonitoring(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return de(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:e}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),e.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(e){console.error(e)}})}_deactivateNetworkMonitoring(){if(null!==this._mpNetworkStatusCallback){const{utils:{MINI_APP_NAMESPACE:e}}=this._core;e.offNetworkStatusChange&&e.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 Zn=new class{init(e){const{IN_MINI_APP:t}=e.utils;t?Xn.init(e):Qn.init(e)}};var eo=new class{constructor(){this.name="SystemStateMonitor"}install(e){Yn.init(e),Zn.init(e)}};const to=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.*"]),so="tui_room_svr.*";var no=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=to}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 de(this,void 0,void 0,function*(){const t="transferBusinessCommand";try{const{serviceCommand:s=so}=e||{};if(!this._isValidTransferredCommand(s))throw new this._core.helper.ChatError({code:2995,functionName:t});const n=yield function(e,t){return de(this,void 0,void 0,function*(){const{helper:s,channel:n}=t,{serviceCommand:o=so,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=to}_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 oo=1,io=2,ro=3,ao=4,co=5,uo="TIMCustomElem",lo="C2C",ho="GROUP",go="invite",po="accept",_o="cancel",mo="reject",vo="modifyInvitation",fo="signaling",Io=8010,Eo="signaling-timeout";function Co(e){return e.filter(e=>{if(e.type===uo){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 So(e){const{data:t}=e.payload;try{return JSON.parse(t)}catch(e){return console.error(e),null}}function Mo(e,t){return e.toString(16).padStart(t,"0")}function yo(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 Oo=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=`${fo}.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=`${fo}.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 Ao=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=Oo.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===co&&!!e.match(/excludeTimeoutSignalingFromHistoryMessage/),n=!!e.match(/excludeFromHistoryMessage/)||!!e.match(/excludeOriginalSignalingFromHistoryMessage/);return{excludedFromContentModeration:!0,excludedFromUnreadCount:s||n,excludedFromLastMessage:s||n}}_createInviteSignalingData(e){const t=`${fo}._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:oo,inviter:r,inviteeList:o?i:[s],timeout:n});return console.log(`${t} signalingData:`,a),a}_createAcceptSignalingData(e){const t=`${fo}._createAcceptSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviter:o,groupID:i}=Oo.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:ro,groupID:i,inviter:o,inviteeList:[n]});return console.log(`${t} signalingData:`,r),r}_createCancelSignalingData(e){const t=`${fo}._createCancelSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviteeList:o,groupID:i}=Oo.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:io,groupID:i,inviter:n,inviteeList:o});return console.log(`${t} signalingData:`,r),r}_createRejectSignalingData(e){const t=`${fo}._createRejectSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviter:o,groupID:i}=Oo.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:ao,groupID:i,inviter:o,inviteeList:[n]});return console.log(`${t} signalingData:`,r),r}_createTimeoutSignalingData(e){const t=`${fo}._createTimeoutSignalingData`,{isInviter:s=!1,inviteID:n}=e,{inviteeList:o,inviter:i}=Oo.getSignaling(n),r=this._core.common.getCurrentUserID(),a=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:co,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?ho:lo,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[Mo(yo(32),8),Mo(yo(16),4),Mo(16384|yo(12),4),Mo(32768|yo(14),4),Mo(yo(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 To=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 de(this,void 0,void 0,function*(){var t;try{this._validateBeforeInvite(e);const{signaling:s,signalingData:n,signalingExtensionOptions:o}=Ao.createInviteSignaling(e),i=yield this._sendSignaling(s,o);if(0===(null==i?void 0:i.code)){const{inviteID:e,timeout:o}=n;return Oo.saveSignaling(e,Object.assign(Object.assign({},n),{signaling:s})),o>0&&(null===(t=this._core)||void 0===t||t.helper.taskScheduler.addOnceTask({id:`${Eo}-${e}`,intervalMs:1e3*(o+5),callback:this.handleInvitationExpiryTimer.bind(this,e)})),Object.assign(Object.assign({},i),{inviteID:e})}return i}catch(e){throw e}})}accept(e){return de(this,void 0,void 0,function*(){try{const{inviteID:t}=e;this._validateBeforeAccept(t),this._isProcessingSignaling=!0;const{signaling:s,signalingData:n,signalingExtensionOptions:o}=Ao.createAcceptSignaling(e),i=yield this._sendSignaling(s,o);return 0===(null==i?void 0:i.code)?(Oo.updateSignaling(n),Object.assign(Object.assign({},i),{inviteID:t})):i}catch(e){throw e}finally{this._isProcessingSignaling=!1}})}cancel(e){return de(this,void 0,void 0,function*(){try{const{inviteID:t}=e;this._validateBeforeCancel(t),this._isProcessingSignaling=!0;const{signaling:s,signalingExtensionOptions:n}=Ao.createCancelSignaling(e),o=yield this._sendSignaling(s,n);return 0===(null==o?void 0:o.code)?(Oo.removeSignaling(t),Object.assign(Object.assign({},o),{inviteID:t})):o}catch(e){throw e}finally{this._isProcessingSignaling=!1}})}reject(e){return de(this,void 0,void 0,function*(){try{const{inviteID:t}=e;this._validateBeforeReject(t),this._isProcessingSignaling=!0;const{signaling:s,signalingExtensionOptions:n}=Ao.createRejectSignaling(e),o=yield this._sendSignaling(s,n);return 0===(null==o?void 0:o.code)?(Oo.removeSignaling(t),Object.assign(Object.assign({},o),{inviteID:t})):o}catch(e){throw e}finally{this._isProcessingSignaling=!1}})}modifyInvitation(e){return de(this,void 0,void 0,function*(){var t,s;const{inviteID:n,data:o}=e;let i="";try{this._validateBeforeModifyInvitation(n);const e=Oo.getSignaling(n),{signaling:r}=e,a=le(e,["signaling"]);i=r.payload.data,a.data=o,r.payload.data=JSON.stringify(a);const c=yield null===(s=null===(t=this._core)||void 0===t?void 0:t.message.messageAction)||void 0===s?void 0:s.modifyMessage(r);return Oo.hasSignaling(n)&&Oo.saveSignaling(n,Object.assign(Object.assign({},a),{signaling:r})),c}catch(e){if(i){const{signaling:e}=Oo.getSignaling(n);e.payload.data=i}throw e}})}getSignalingInfo(e){const{ssoLog:t,utils:{safeStringify:s}}=this._core;if(0===Co([e]).length)return;const n=So(e),o={businessID:n.businessID||1,inviteID:n.inviteID,groupID:n.groupID||"",inviter:n.inviter||"",inviteeList:n.inviteeList||[],data:n.data||"",actionType:n.actionType||oo,timeout:n.timeout||0};return t.debug(`${fo} getSignalingInfo ${s(o)}`),o}addSignalingListener(e,t,s){var n,o;e===(null===(n=this._core)||void 0===n?void 0:n.SignalingEvent.NEW_INVITATION_RECEIVED)&&Oo.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)&&Oo.setSignalingListenStatus(!1),null===(o=this._core)||void 0===o||o.notificationCenter.unSubscribeOuterEvent(e,t,s)}handleInvitationExpiryTimer(e){const t=Oo.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 de(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 de(this,void 0,void 0,function*(){var t,s,n;this._core.ssoLog.debug("_sendTimeoutNotice",`${fo}._sendTimeoutNotice params:${JSON.stringify(e)}`);const{isInviter:o,inviteID:i}=e,{signaling:r,signalingData:a,signalingExtensionOptions:c}=Ao.createTimeoutSignaling(e),u=yield this._sendSignaling(r,c);if(0===(null==u?void 0:u.code)){const{data:e,groupID:c,inviteeList:u,inviter:l}=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:u,inviter:l,isSelfTimeout:!0,message:r}}),o?Oo.removeSignaling(i):Oo.updateSignaling(a)}})}_validateInviteId(e,t){if(!Oo.hasSignaling(t))throw new this._core.helper.ChatError({functionName:e,code:Io})}_validateProcessStatus(e){if(this._isProcessingSignaling)throw new this._core.helper.ChatError({functionName:e,message:"processing other signaling operations"})}_validateBeforeInvite(e){const t=go,{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=po;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviteeList:n}=Oo.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=_o;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviter:n}=Oo.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=mo;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviteeList:n}=Oo.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=vo;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 Ro=new class{constructor(){this._actionProcessor=new Map([[oo,this._onNewInvitationReceived.bind(this)],[ao,this._onInviteeRejected.bind(this)],[ro,this._onInviteeAccepted.bind(this)],[io,this._onInvitationCancelled.bind(this)],[co,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=So(e);if(t){const s=this._actionProcessor.get(t.actionType);null==s||s(t,e)}})}_handleMessageReceived(e){if(!Oo.getSignalingListenStatus())return;const t=Co(e.data);0!==t.length&&this.handleActionSignaling(t)}_handleMessageModified(e){if(!Oo.getSignalingListenStatus())return;const t=Co(e.data);t.length>0&&t.forEach(e=>{const t=So(e);t&&this._onInvitationModified(t,e)})}_onNewInvitationReceived(e,t){var s,n;const o=`${fo}._onNewInvitationReceived`,{inviteID:i,inviteeList:r,groupID:a}=e,c=this._core.common.getCurrentUserID();this._core.ssoLog.debug("_onNewInvitationReceived",`${o} signalingData:${JSON.stringify(e)}}`);if(a&&!r.includes(c))return;let{timeout:u}=e;const l=Date.now()/1e3-t.time;u>0&&l>0&&u>l&&(u-=l);const d=Oo.getSignaling(i);d!==e&&(d||Oo.saveSignaling(i,Object.assign(Object.assign({},e),{signaling:t})),u>0&&(null===(s=this._core)||void 0===s||s.helper.taskScheduler.addOnceTask({id:`${Eo}-${i}`,intervalMs:1e3*u,callback:To.handleInvitationExpiryTimer.bind(To,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=`${fo}._onInviteeRejected`,{inviteID:n,inviter:o,groupID:i,inviteeList:r}=e,a=Oo.hasSignaling(n);this._core.ssoLog.debug("_onInviteeRejected",`${s} inviteID:${n} hasInviteID:${a} inviter:${o} groupID:${i}`),a&&(Oo.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=`${fo}._onInviteeAccepted`,{inviteID:n,inviter:o,groupID:i,inviteeList:r}=e,a=Oo.hasSignaling(n);this._core.ssoLog.debug("_onInviteeAccepted",`${s} inviteID:${n} hasInviteID:${a} inviter:${o} groupID:${i}`),a&&(Oo.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=`${fo}._onInvitationCancelled`,{inviteID:n,inviter:o,groupID:i}=e,r=Oo.hasSignaling(n);this._core.ssoLog.debug("_onInvitationCancelled",`${s} inviteID:${n} hasInviteID:${r} inviter:${o} groupID:${i}`),r&&(Oo.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=`${fo}._onInvitationTimeout`,{inviteID:n,inviteeList:o}=e,i=Oo.hasSignaling(n);this._core.ssoLog.debug("_onInvitationTimeout",`${s} inviteID:${n} hasInviteID:${i} data:${e.data}`),i&&(Oo.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=`${fo}._onInvitationModified`,{inviteID:o,data:i}=e,r=Oo.hasSignaling(o);this._core.ssoLog.debug("_onInvitationModified",`${n} inviteID:${o} data:${i}`),r&&(Oo.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 Do=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)&&Oo.getSignalingListenStatus()))return;const s=Co([...t.values()]);if(0!==s.length&&(s.forEach(e=>{this._handleC2CActionType(e)}),this._offlineSignalingMap.size>0)){const e=this._sortOfflineSignalingByTime();Ro.handleActionSignaling(e)}}_handleC2CActionType(e){const t=So(e);if(!t)return;const{actionType:s}=t;s===oo?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 bo={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}}},No={invite:!0,cancel:!0,accept:!0,reject:!0,modifyInvitation:!0};var Lo=new class{constructor(){this.name="Signaling"}install(e){To.init(e),Ro.init(e),Ao.init(e),Oo.init(e),Do.init(e),e.helper.registerValidateConfig({auth:No,params:bo})}};const Po=new class{init(e){this.core=e}};function Go(e){let t;const{message:s}=Po.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 wo(e){return e.map(e=>{const{from:t,to:s,cloudCustomData:n,avatar:o,nick:i,ID:r,clientSequence:a,clientTime:c,messageRandom:u,messageSequence:l,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:u,Random:u,MsgSeq:l,MsgTimeStamp:d,ReceiverId:s,SenderId:t,To_Account:s}})}function Uo(e){var t;const{From_Account:s,From_AccountHeadurl:n,From_AccountNick:o,GroupId:i,MsgClientTime:r,ClientSeq:a,To_Account:c,MsgTimeStamp:u,TinyId:l,MsgRandom:d,MsgSeq:h}=e;return{from:s,avatar:n,nick:o,clientTime:r,time:u,tinyID:l,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 Po.core.message.messageFactory.getElementClass(t).parseServerPushElement(e)})}}var ko,Fo;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem",e.MSG_STREAM="TIMStreamElem"}(ko||(ko={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(Fo||(Fo={}));const $o="MSG_REACTION",xo="MSG_EXT",qo=0,Vo=1,Bo={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},jo="16k_zh",Ho="16k_en",Ko="16k_yue",Wo="16k_ja",Yo="16k_zh-PY",zo={[Bo.ZH_CN]:jo,[Bo.EN_US]:Ho,[Bo.YUE_HK]:Ko,[Bo.JA_JP]:Wo,[Bo.ZH_PY]:Yo},Jo=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,Qo={READ:0,UNREAD:1},Xo=1,Zo=2,ei=3;var ti;!function(e){e.IN="in",e.OUT="out"}(ti||(ti={}));const si=16,ni=17;var oi;!function(e){e[e.DATA=0]="DATA",e[e.REVOKED=1]="REVOKED"}(oi||(oi={}));var ii;!function(e){e[e.NORMAL=0]="NORMAL",e[e.TIMEOUT=1]="TIMEOUT"}(ii||(ii={}));const ri="StreamMsg.PushStreamHttp";var ai=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 de(this,void 0,void 0,function*(){const{OuterConstant:s,ssoLog:n,helper:o}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:i,ID:r,conversationType:a,from:c,to:u,clientSequence:l,random:d,time:h,sequence:g}=e,p=`conversationID:${i} messageID:${r} reactionID:${t}`;try{return this._recordMessageReactedByMe(r,t),a===s.CONV_C2C?yield function(e,t){return de(this,void 0,void 0,function*(){var s;const{from:n,to:o,clientSequence:i,random:r,time:a,reactionID:c}=e,u={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 Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:u})})}({from:c,to:u,clientSequence:l,random:d,time:h,reactionID:t},this._core):a===s.CONV_GROUP&&(yield function(e,t){return de(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 Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:r})})}({to:u,reactionID:t,sequence:g},this._core)),{code:0,successLog:{message:p}}}catch(e){this._removeMyReactionRecord(r,t);const{errorCode:s}=e||{};throw new o.ChatError({functionName:"addMessageReaction",code:s,moreMessage:p})}})}removeMessageReaction(e,t){return de(this,void 0,void 0,function*(){const{OuterConstant:s,helper:n}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:o,ID:i,conversationType:r,from:a,to:c,clientSequence:u,random:l,time:d,sequence:h}=e,g=`conversationID:${o} messageID:${i} reactionID:${t}`;try{return this._removeMyReactionRecord(i,t),r===s.CONV_C2C?yield function(e,t){return de(this,void 0,void 0,function*(){var s;const{from:n,to:o,clientSequence:i,random:r,time:a,reactionID:c}=e,u={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 Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:u})})}({from:a,to:c,clientSequence:u,random:l,time:d,reactionID:t},this._core):r===s.CONV_GROUP&&(yield function(e,t){return de(this,void 0,void 0,function*(){var s;const{to:n,reactionID:o,sequence:i}=e,r={GroupId:n,MsgSeq:i,Reaction:o,Del_Account:[null===(s=t.store.get("login"))||void 0===s?void 0:s.userId]};return Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:r},t)})}({to:c,reactionID:t,sequence:h},this._core)),{code:0,successLog:{message:g}}}catch(e){const{errorCode:t}=e||{};throw new n.ChatError({functionName:"removeMessageReaction",code:t,moreMessage:g})}})}getAllUserListOfMessageReaction(e){return de(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:a,constants:c}=this._core;try{let e=null;if(e=i.startsWith(c.OuterConstant.CONV_C2C)?yield function(e){return de(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:u}=t,l={Reaction:n,NextSeq:s,Count:o,From_Account:i,To_Account:r,MsgKey:`${a}_${c}_${u}`};return Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:l})})}({message:t,reactionID:s,nextSeq:n,count:o}):yield function(e){return de(this,void 0,void 0,function*(){const{message:t,nextSeq:s,reactionID:n,count:o}=e,{sequence:i,to:r}=t,a={Reaction:n,NextSeq:s,GroupId:r,Count:o,MsgSeq:i};return Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:a})})}({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||{};throw new a.ChatError({functionName:"getAllUserListOfMessageReaction",code:t})}})}getMessageReactions(e){return de(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:a,to:c,conversationType:u}=o,l=this._generateMessageKeyList(s,r);u===t.OuterConstant.CONV_C2C?i=yield function(e){return de(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 Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:i})})}({from:a,to:c,messageKeyList:l,maxUserCountPerReaction:n}):u===t.OuterConstant.CONV_GROUP&&(i=yield function(e){return de(this,void 0,void 0,function*(){const{groupId:t,messageSequenceList:s,maxUserCountPerReaction:n}=e,o={GroupId:t,MsgSeqList:s,Count:n};return Po.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:o})})}({groupId:c,messageSequenceList:l,maxUserCountPerReaction:n}));const{Results:d=[]}=i||{},h=this._extractUserIDsFromReactionResults(d),g=yield this._getUserProfileMap(h);return{code:0,data:{resultList:d.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:g}),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 de(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 de(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($o))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=>de(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),u=`${r}-${a}-${c}`,l=this._extractUserIDsFromReactionResults([{ReactionList:i}]),d=yield this._getUserProfileMap(l),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(`${u}-${s}`))||void 0===t?void 0:t.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:u,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:u,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:u=0,MsgRandom:l=0}=Object.assign(Object.assign({},o),i),d=`${c}-${u}-${l}`,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 ci=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 de(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 de(this,void 0,void 0,function*(){const{common:t,constants:s}=Po.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 de(this,void 0,void 0,function*(){const{common:t,constants:s}=Po.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 de(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 de(this,void 0,void 0,function*(){const{common:t,constants:s}=Po.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 de(this,void 0,void 0,function*(){const{constants:t,common:s}=this._core,{message:n,filter:o=Qo.READ,cursor:i=""}=e,{conversationID:r,sequence:a,ID:c}=n,u=r.replace(t.OuterConstant.CONV_GROUP,""),l=e.count>=100?100:e.count;try{const e=yield function(e){return de(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 Po.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:r})})}({groupID:u,sequence:a,filter:o,cursor:i,count:l});if(e){const{Cursor:t,IsFinish:s,UnreadList:n,ReadList:i}=e,r={cursor:t,isCompleted:1===s,messageID:c,unreadUserIDList:[],readUserIDList:[]};return o===Qo.READ?r.readUserIDList=i.map(e=>e.Read_Account):o===Qo.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}`,u=Go({conversationID:a,messageID:c});u&&!u.readReceiptInfo.isPeerRead&&(u.readReceiptInfo.isPeerRead=!0,u.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,u=`${s}-${n}-${r}`,l=Go({conversationID:i,messageID:u}),d={groupID:o,messageID:u,readCount:0,unreadCount:0};l&&("number"==typeof a&&(l.readReceiptInfo.readCount=a,d.readCount=a),"number"==typeof c&&(l.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)}};function ui(e,t,s){return de(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:n}}=Po.core,{from:o,to:i,clientSequence:r,random:a,time:c}=e;return n({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:o,To_Account:i,MsgKey:`${r}_${a}_${c}`,OperateType:s,ExtensionList:t}})})}function li(e,t,s){return de(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:n}}=Po.core,{to:o,sequence:i}=e;return n({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:o,MsgSeq:i,OperateType:s,ExtensionList:t}})})}var di=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(e){this._core=e;const{notificationCenter:t,helper:{registerApi:s},InnerEvent:{MESSAGE_PUSH:n,LOGOUT:o},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:i}}=e;s({apiName:"setMessageExtensions",context:this}),s({apiName:"getMessageExtensions",context:this}),s({apiName:"deleteMessageExtensions",context:this}),t.subscribeInnerEvent(n,i,this._handleMessageExtensionsNotify,this),t.subscribeInnerEvent(o,this.reset,this)}setMessageExtensions(e,t){return de(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");const{constants:{OuterConstant:s},ssoLog:n}=this._core,{ID:o,conversationID:i,sequence:r,time:a,conversationType:c}=e;let u=t;t.length>20&&(u=t.slice(0,20),n.warn("setMessageExtensions","the length of extensions cannot exceed 20"));const l=this._generateServerExtensions(e,u),d=`convID:${i} messageID:${o} sequence:${r} time:${a} count:${u.length}`;try{let t;if(c===s.CONV_C2C?t=yield ui(e,l,Xo):c===s.CONV_GROUP&&(t=yield li(e,l,Xo)),t){const{resultList:s,successCount:n,failureCount:o}=this._handleModifyMessageExtensions(e,t);return{code:0,data:{extensions:s},successLog:{message:`${d} successCount:${n} failCount:${o}`}}}return{code:0,data:{extensions:[]}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:t,moreMessage:d})}})}getMessageExtensions(e){return de(this,void 0,void 0,function*(){const{utils:{isUndefined:t}}=this._core;this._validateMessageExtensionBusinessCapability("getMessageExtensions");const{conversationID:s,ID:n,sequence:o,time:i}=e,r=`convID:${s} messageID:${n} sequence:${o} time:${i}`;try{let s;this._completedFetchExtensions.has(n)&&(s=this._extensionsLatestSequenceMap.get(n));const o=yield this._fetchMessageExtensions(e,s);return t(s)&&o.length>1&&this._completedFetchExtensions.add(n),{code:0,data:{extensions:o},successLog:{message:r}}}catch(e){const{errorCode:t,errorInfo:s=""}=e||{};throw new this._core.common.ChatError({code:t,message:s,moreMessage:r})}})}deleteMessageExtensions(e,t){return de(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");const{utils:{isEmpty:s},constants:{OuterConstant:n}}=this._core,{conversationType:o,conversationID:i,sequence:r,ID:a,time:c}=e;let u=ei;const l=[];s(t)||(u=Zo,null==t||t.forEach(e=>{l.push({key:e,value:"",seq:0})}));const d=`convID:${i} messageID:${a} sequence:${r} time:${c} operateType:${u}`,h=this._generateServerExtensions(e,l);try{let t;if(o===n.CONV_C2C?t=yield ui(e,h,u):o===n.CONV_GROUP&&(t=yield li(e,h,u)),t){const{resultList:s,successCount:n,failureCount:o}=this._handleModifyMessageExtensions(e,t);return{code:0,data:{extensions:s},successLog:{message:`${d}successCount:${n} failCount:${o}`}}}return{code:0,data:{extensions:[]}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:t,moreMessage:d})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t,LOGOUT:s},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:n}}=this._core;e.unSubscribeInnerEvent(t,n,this._handleMessageExtensionsNotify,this),e.subscribeInnerEvent(s,this.reset,this)}_handleModifyMessageExtensions(e,t){const{ID:s}=e,{Seq:n}=t,o=t.ExtensionList||[],i=[];let r=0,a=0,c=[];return o.forEach(e=>{const{ErrorCode:t,Extension:s}=e,{Key:n,Value:o,Seq:u}=s;i.push({code:t,key:n,value:o}),0===t?r++:a++,c.push({key:n,value:o,seq:u})}),this._extensionsLatestSequenceMap.set(s,n),c.length>0&&this._updateLocalExtensions(e.ID,c),{resultList:i,successCount:r,failureCount:a}}_updateLocalExtensions(e,t){this._messageExtensionsMap.has(e)||this._messageExtensionsMap.set(e,new Map);const s=this._messageExtensionsMap.get(e);null==t||t.forEach(e=>{const{key:t,seq:n,value:o=""}=e;null==s||s.set(t,{value:o,seq:n})})}_fetchMessageExtensions(e,t){return de(this,void 0,void 0,function*(){const{constants:{OuterConstant:s},utils:{isEmpty:n}}=this._core;try{let o;const{conversationType:i,ID:r}=e;if(i===s.CONV_C2C?o=yield function(e,t){const{common:{buildAndSendPacket:s}}=Po.core,{from:n,to:o,clientSequence:i,random:r,time:a}=e;return s({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:n,To_Account:o,MsgKey:`${i}_${r}_${a}`,StartSeq:t}})}(e,t):i===s.CONV_GROUP&&(o=yield function(e,t){const{common:{buildAndSendPacket:s}}=Po.core,{to:n,sequence:o}=e;return s({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:n,MsgSeq:o,StartSeq:t}})}(e,t)),o){const{LatestSeq:t,ClearSeq:s,CompleteFlag:i}=o,a=(o.ExtensionList||[]).map(e=>({key:e.Key,value:e.Value,seq:e.Seq}));if(this._updateLocalExtensions(r,a),this._clearLocationExtensions(r,s),this._extensionsLatestSequenceMap.set(r,t),1!==i){const t=a[a.length-1].seq+1;return this._fetchMessageExtensions(e,t)}const c=[];if(this._messageExtensionsMap.has(r)){const e=this._messageExtensionsMap.get(r);null==e||e.forEach((e,t)=>{const{value:s}=e;n(s)||c.push({key:t,value:s})})}return c}}catch(e){throw e}})}_clearLocationExtensions(e,t){if(!(t<=0)&&this._messageExtensionsMap.has(e)){const s=this._messageExtensionsMap.get(e);null==s||s.forEach((e,n)=>{e.seq<=t&&s.delete(n)})}}_generateServerExtensions(e,t){const{ID:s}=e;if(this._messageExtensionsMap.has(s)){const e=this._messageExtensionsMap.get(s);return t.map(t=>{var s;const{key:n,value:o}=t;let i=0;return(null==e?void 0:e.has(n))&&(i=null===(s=e.get(n))||void 0===s?void 0:s.seq),{Key:n,Value:o,Seq:i}})}return t.map(e=>({Key:e.key,Value:e.value,Seq:0}))}_validateMessageExtensionBusinessCapability(e){const{helper:t,constants:s}=this._core;if(!t.checkBusinessCapabilityBits(xo))throw new t.ChatError({functionName:e,code:s.ERROR_CODE.NO_USE,replacement1:e})}_handleMessageExtensionsNotify(e){const{SetKVInfo:t,DeleteKVInfo:s,ClearKVInfo:n,MsgOptType:o,TinyId:i,MsgLastSeq:r,ExtensionC2cMsgInfo:a,ExtensionGroupMsgInfo:c}=(null==e?void 0:e.MsgExtensionNotify)||{},u=a||c||{},{MsgClientTime:l,MsgRandom:d}=u,h=`${i}-${l}-${d}`;this._extensionsLatestSequenceMap.set(h,r),o===Xo?this._handleMessageExtensionsUpdated({messageID:h,updateMessageExtensionsInfo:t}):o===Zo?this._handleMessageExtensionsDeleted({messageID:h,deleteMessageExtensionsInfo:s}):o===ei&&this._handleMessageExtensionsCleared({messageID:h,clearMessageExtensionsInfo:n})}_handleMessageExtensionsUpdated(e){const{notificationCenter:t,OuterEvent:s}=this._core,{messageID:n,updateMessageExtensionsInfo:o=[]}=e,i=[];o.forEach(e=>{const{MsgKeyValue:t=[]}=e,s=t.map(e=>(i.push({key:e.Key,value:e.Value}),{key:e.Key,value:e.Value,seq:e.Seq}));this._updateLocalExtensions(n,s)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_UPDATED,{name:s.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:n,extensions:i}})}_handleMessageExtensionsDeleted(e){const{notificationCenter:t,OuterEvent:s}=this._core,{messageID:n,deleteMessageExtensionsInfo:o=[]}=e,i=[];o.forEach(e=>{const{MsgKeyValue:t=[]}=e,s=t.map(e=>(i.push(e.Key),{key:e.Key,seq:e.Seq}));this._updateLocalExtensions(n,s)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_DELETED,{name:s.MESSAGE_EXTENSIONS_DELETED,data:{messageID:n,keyList:i}})}_handleMessageExtensionsCleared(e){const{notificationCenter:t,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:s},utils:{isEmpty:n}}=this._core,{messageID:o,clearMessageExtensionsInfo:i=[]}=e,r=[];i.forEach(e=>{const{ClearMsgSeq:t}=e;if(this._messageExtensionsMap.has(o)){(this._messageExtensionsMap.get(o)||[]).forEach((e,s)=>{e.seq<=t&&!n(e.value)&&r.push(s)})}this._clearLocationExtensions(o,t)}),t.emitOuterEvent(s,{name:s,data:{messageID:o,keyList:r}})}};const hi={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const{constants:{OuterConstant:t}}=Po.core;return e.status!==t.MessageStatus.SUCCESS?"message is not success":!0===e.isSupportExtension||"message is not support extension"}},gi={setMessageExtensions:[hi,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[hi],deleteMessageExtensions:[hi]},pi=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const t=function(e){var t;if("string"!=typeof(null==e?void 0:e.text)||"string"==typeof e.text&&0===(null===(t=null==e?void 0:e.text)||void 0===t?void 0:t.length))return"payload.text is invalid.";return!0}(e);return!0!==t?t:!((null==e?void 0:e.atUserList)&&!Array.isArray(e.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!(!e.startsWith("C2C")&&!e.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const{utils:{isString:t,isNumber:s}}=Po.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}}}),gi),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),_i=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0});class mi{constructor(e){this._core=e}deleteMessage(e){return de(this,void 0,void 0,function*(){const{to:t,messageIdentifiers:s}=e,n={From_Account:this._core.common.getCurrentUserID(),To_Account:t,MsgKeyList:s};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:n})})}revokeMessage(e){return de(this,void 0,void 0,function*(){const{to:t,from:s,sequence:n,time:o,random:i}=e,r={MsgInfo:{From_Account:s,To_Account:t,MsgSeq:n,MsgRandom:i,MsgTimeStamp:o}};return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:r})})}}class vi{constructor(e){this._core=e}deleteMessage(e){return de(this,void 0,void 0,function*(){const{to:t,messageIdentifiers:s}=e,n={GroupId:t,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:s};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:n})})}revokeMessage(e){return de(this,void 0,void 0,function*(){const{to:t,sequence:s}=e,n={GroupId:t,MsgSeqList:[{MsgSeq:s}]};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:n})})}}const fi=2116;class Ii{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:u}=this._core.message;return c=u.revokeMessage({conversationID:t,sequence:s,random:n,revoker:a}),c||(c={conversationID:t,sequence:s},o&&i&&n&&(c.ID=`${o}-${i}-${n}`)),c.revoker=a,c.revokeReason=r,c.revokerInfo={userID:a,nick:"",avatar:""},c}updateRevokerInfo(e){return de(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)}})}_fetchUserInfos(e){return de(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 Ei=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new vi(e),this._c2cMessageAction=new mi(e),this._messageHelper=new Ii(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 de(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:fi});if(e.forEach(e=>{const{conversationID:i,conversationType:r,status:a,_onlineOnlyFlag:c,sequence:u,random:l,time:d}=e||{};if("success"===a&&i===n&&r===o){if(!c){const e="C2C"===r?`${u}_${l}_${d}`:String(u);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 de(this,void 0,void 0,function*(){var t;const{conversationType:s,isRevoked:n,ID:o,type:i,from:r,to:a}=e;let c=null;const u=`type:${i} from:${r} to:${a} ID:${o}`;if("@TIM#SYSTEM"===s)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(n)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:u});try{if(c="C2C"===s?yield this._c2cMessageAction.revokeMessage(e):yield this._groupMessageAction.revokeMessage(e),c){const{RecallRetList:s}=c,n=(null===(t=null==s?void 0:s[0])||void 0===t?void 0:t.RetCode)||0;if(0!==n)throw new this._core.helper.ChatError({code:n,moreMessage:u});return e.isRevoked=!0,yield this._handleRevokeMessageSuccess(e),{code:0,data:{message:e},successLog:{message:u}}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"revokeMessage",code:t,moreMessage:u})}})}resendMessage(e,t){return de(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){if(0===e.length)return;const{message:{messageDataHandler:t},common:{isTopic:s},notificationCenter:n,InnerEvent:o}=this._core;e.forEach(e=>{e.isDeleted=!0;const s=t.getLocalMessageList(e.conversationID);null==s||s.forEach(t=>{t.ID===e.ID&&(t.isDeleted=!0)})});const{conversationID:i=""}=e[0];s(i)?n.emitInnerEvent(o.TOPIC_MESSAGE_DELETED,i):n.emitInnerEvent(o.MESSAGE_DELETED,i)}_handleRevokeMessageSuccess(e){return de(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 Ci{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Index:s,Data:n}=t;return new Ci({index:s,data:n})}constructor(e){this.type=ko.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 Si{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Desc:s,Longitude:n,Latitude:o}=t;return new Si({description:s,longitude:n,latitude:o})}constructor(e){this.type=ko.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}}}}class Mi{static parseServerPushElement(e){const{MsgContent:t={}}=e,{StreamMsgID:s,CompatibleText:n,Markdown:o,BinaryData:i,ErrorCode:r,ErrorMsg:a}=t;return new Mi({streamMessageID:s,compatibleText:n,markdown:o,binaryData:i,errorCode:r,errorMessage:a})}constructor(e){this.type=ko.MSG_STREAM,this.content={streamMessageID:"",compatibleText:"",errorCode:0,errorMessage:"",isStreamEnded:!1},this._chunks=[],this._latestIndex=0;const{streamMessageID:t,compatibleText:s,markdown:n,binaryData:o,errorCode:i=0,errorMessage:r="",isStreamEnded:a=!1}=e;this.content.streamMessageID=t,this.content.compatibleText=s,this.content.markdown=n,this.content.binaryData=o,this.content.errorCode=i,this.content.errorMessage=r,this.content.isStreamEnded=a}updateChunks(e){if(!e||0===e.length)return;const t=e.sort((e,t)=>e.index-t.index),s=this._getMaxRevokedChunkIndex(t);s>=0&&(this._chunks=[],this._latestIndex=s,this._updateContent());const n=this._getValidChunks(t);if(0!==n.length&&(this._mergeAndSortChunks(n),this._chunks.length>0)){const e=this._chunks[this._chunks.length-1];this._latestIndex=e.index,this._updateContent(),this.content.isStreamEnded=e.isLast}}getLatestIndex(){return this._latestIndex}_filterContinuousChunks(e,t){if(0===e.length)return[];const s=[];let n=t;for(const t of e){if(t.index>n)break;t.index===n&&(s.push(t),n++)}return s}_mergeAndSortChunks(e){const t=new Map;this._chunks.forEach(e=>{t.set(e.index,e)}),e.forEach(e=>{t.set(e.index,e)}),this._chunks=Array.from(t.values()).sort((e,t)=>e.index-t.index)}_updateContent(){this.content.markdown=this._chunks.map(e=>e.markdown).join("");const e=this._chunks.map(e=>e.binaryData).filter(e=>(null==e?void 0:e.length)>0);if(0===e.length)this.content.binaryData=new Uint8Array(0);else if(1===e.length)this.content.binaryData=e[0];else{const t=e.reduce((e,t)=>e+t.length,0),s=new Uint8Array(t);let n=0;for(const t of e)s.set(t,n),n+=t.length;this.content.binaryData=s}}_getMaxRevokedChunkIndex(e){let t=-1;for(let s=0;s<e.length;s++){const n=e[s];n.eventType===oi.REVOKED&&n.index>t&&(t=n.index)}return t}_getValidChunks(e){const t=e.filter(e=>e.eventType===oi.DATA&&e.index>this._latestIndex);return this._filterContinuousChunks(t,this._latestIndex+1)}}var yi=new class{init(e){this._core=e,e.message.messageFactory.registerElementClass(ko.MSG_FACE,Ci),e.message.messageFactory.registerElementClass(ko.MSG_LOCATION,Si),e.message.messageFactory.registerElementClass(ko.MSG_STREAM,Mi),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 Ci({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:qo,GroupAt_Account:t}),o.push(t)):(e.push({GroupAtAllFlag:Vo}),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:u="",isSupportExtension:l=!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:l,cloudCustomData:u,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 Si({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 Oi=class{init(e){this._messageHelper=new Ii(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 de(this,void 0,void 0,function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:t}}=e;yield this._parseAndEmitC2CRevokedMessages(t)}catch(e){console.debug(e)}})}_parseAndEmitC2CRevokedMessages(e){return de(this,void 0,void 0,function*(){const t=[],{notificationCenter:s,OuterEvent:n,common:{getCurrentUserID:o}}=this._core;e.forEach(e=>{var s;const{MsgRand:n,MsgSeq:i,To_Account:r,From_Account:a,RevokerInfo:{Revoker_Account:c,Revoke_Reason:u}}=e,l=o()===a?`C2C${r}`:`C2C${a}`,d=(null===(s=null==e?void 0:e.RevokerInfo)||void 0===s?void 0:s.Reason)||u,h=this._messageHelper.generateRevokeMessage({conversationID:l,sequence:i,random:n,revoker:c,revokeReason:d});t.push(h)}),t.length>0&&(yield this._messageHelper.updateRevokerInfo(t),s.emitOuterEvent(n.MESSAGE_REVOKED,{name:n.MESSAGE_REVOKED,data:t}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(e){return de(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)}},Ai=class{init(e){this._messageHelper=new Ii(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 de(this,void 0,void 0,function*(){try{const{RevokerInfo:t,MsgBody:{GroupWithdrawInfoArray:s},GroupInfo:n}=e,o=[],i=[],{notificationCenter:r,OuterEvent:a,utils:{isEmpty:c},common:{isCommunity:u}}=this._core;let l=!1;n&&(l=u({groupID:n.GroupId})||!c(n.TopicId)),s.forEach(e=>{const{Random:s,MsgSeq:r,GroupId:a,MsgClientTime:c,TinyId:u,TopicId:d,RevokerInfo:{Revoker_Account:h=(null==t?void 0:t.Revoker_Account)||"",Reason:g=(null==t?void 0:t.Reason)||""}}=e,p=d?`GROUP${d}`:`GROUP${a}`,_=this._messageHelper.generateRevokeMessage({conversationID:p,sequence:r,random:s,tinyID:u,clientTime:c,revoker:h,revokeReason:g});l?(_.revokerInfo.nick=n.From_AccountNick,_.revokerInfo.avatar=n.From_AccountHeadurl,o.push(_)):i.push(_)}),i.length>0&&(yield this._messageHelper.updateRevokerInfo(i),o.push(...i)),0!==o.length&&r.emitOuterEvent(a.MESSAGE_REVOKED,{name:a.MESSAGE_REVOKED,data:o})}catch(e){console.debug(e)}})}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}};var Ti=new class{constructor(){this._c2cMessageReceiver=new Oi,this._groupMessageReceiver=new Ai}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};var Ri=new class{constructor(){this._core=null}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"translateText",context:this})}translateText(e){return de(this,void 0,void 0,function*(){try{const{sourceLanguage:t,sourceTextList:s,targetLanguage:n}=e,o=yield function(e,t){return de(this,void 0,void 0,function*(){var s,n;const{sourceTextList:o,sourceLanguage:i,targetLanguage:r}=e,{store:a,common:c}=t,u={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},l=yield c.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:u});if(l){const{CmdErrorCode:e,TargetText:t}=l;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 Di=new class{init(e){this._core=e,e.helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(e){return de(this,void 0,void 0,function*(){var t;const{message:s,language:n=Bo.ZH_PY}=e;let{url:o}=s.payload||{};const i=this._core.common.getCurrentUserID();s.from===i&&"out"===s.flow&&(o=s.payload.remoteAudioUrl),this._validateVoiceFormat(o);const r=(null===(t=Jo.exec(o))||void 0===t?void 0:t[1])||"mp3",a=zo[n]||Yo;try{const e=yield function(e){var t;const{store:s,common:n}=Po.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:o,format:r,serverLanguageType:a});if(e){const{CmdErrorCode:t,BytesResult:s}=e;if(0===t.ErrorCode)return{code:0,data:{result:s}};throw{code:t.ErrorCode,message:t.ErrorInfo}}}catch(e){const{code:t,message:s}=e||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:t,message:s})}})}_validateVoiceFormat(e){if(!Jo.test(e))throw new this._core.common.ChatError({code:2119})}};class bi{constructor(e){const{constants:t,common:s,utils:n}=Po.core,{CONV_C2C:o,CONV_GROUP:i}=t.OuterConstant,{ID:r,tinyID:a,from:c,to:u,clientTime:l=s.timeManager.getServerTimeSeconds()||0,random:d,sequence:h,cloudCustomData:g="",nick:p="",avatar:_="",clientSequence:m,conversationType:v,groupID:f,_elements:I,time:E}=e;this.ID=r||`${a}-${l}-${d}`,this.messageRandom=d,this.from=c,this.messageSender=c,this.time=E,this.messageSequence=h,this.clientSequence=m||h,this.clientTime=l,this.cloudCustomData=g,this.messageReceiver=u,this.avatar=_,this.nick=p;const C=n.deepCopyWithMethods(I);C.forEach(e=>{e.payload=e.content,delete e.content}),this.messageBody=C,r?v.startsWith(o)?this.receiverUserID=u:v.startsWith(i)&&(this.receiverGroupID=u):f?(this.receiverGroupID=f,this.messageReceiver=f):u&&(this.receiverUserID=u,this.messageReceiver=u)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(e=>e.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class Ni{static parseServerPushElement(e){const{MsgContent:t}=e,{MsgList:s=[],CompatibleText:n,AbstractList:o,Title:i,PbMsgKey:r,JsonMsgKey:a}=t||{},c=s.map(e=>Uo(e));return new Ni({messageList:c,title:i,abstractList:o,compatibleText:n,pbDownloadKey:r,downloadKey:a})}constructor(e){this.type=Po.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,u=[];t.forEach(e=>{if(e){const t=new bi(e);u.push(t)}}),this.content={messageList:u,title:s,abstractList:n,compatibleText:o,version:a,downloadKey:r,pbDownloadKey:i,layersOverLimit:c}}validateBeforeSend(){const{isEmpty:e}=Po.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:u,messageList:l}=s;return{MsgType:this.type,MsgContent:{AbstractList:n,CompatibleText:o,JsonMsgKey:i,LayersOverLimit:r,PbMsgKey:a,Title:c,Version:u,MsgList:wo(l)}}}}var Li=new class{init(e){this._core=e;const{message:t,helper:s,constants:{OuterConstant:n}}=e;t.messageFactory.registerElementClass(n.MSG_MERGER,Ni),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 Ni(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 de(this,void 0,void 0,function*(){var s,n,o;try{const i=function(e){let t="utf-8";Po.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,a=null;if(i>11264){r=this._core.utils.deepCopyWithMethods(e);try{const{JsonMsgKey:e,PbMsgKey:t}=yield function(e){return de(this,void 0,void 0,function*(){const{payload:{messageList:t}}=e,s={MsgList:wo(t)};return Po.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:s})})}(r),{payload:s}=r;a=new Ni(Object.assign(Object.assign({},s),{messageList:[],downloadKey:e,pbDownloadKey:t})),r.setElement(a)}catch(e){console.error(e)}}const{data:{message:c}}=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 a&&c.setElement(e._elements),{code:0,data:{message:c}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({code:t})}})}downloadMergerMessage(e){return de(this,void 0,void 0,function*(){const{ssoLog:t}=this._core,s=e.payload,{downloadKey:n,pbDownload:o,type:i,messageList:r}=s,a=le(s,["downloadKey","pbDownload","type","messageList"]);try{const s=yield function(e){return de(this,void 0,void 0,function*(){return Po.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:e}})})}(n),{MsgList:o}=s||{},i=null==o?void 0:o.map(e=>{const t=Uo(e);return new bi(t)});return"function"==typeof e.isOnlineMessage?e.setElement({type:e.type,content:Object.assign({messageList:i},a)}):(e.payload.messageList=i,e.payload.downloadKey="",e.payload.pbDownloadKey=""),t.info("downloadMergerMessage",` success downloadKey:${n}`),e}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:t,moreMessage:n})}})}};var Pi=new class{init(e){this._core=e,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(e){return de(this,void 0,void 0,function*(){const{appStore:t,message:s,common:{getCurrentUserID:n},utils:{isArray:o}}=this._core,{GroupId:i,To_Account:r}=e;e.From_Account=e.From_Account||n();let a=null;if(i){a=this._generateGroupMessage(Object.assign(Object.assign({},e),{ToGroupId:i}));const s=t.userStore.getUserProfile(n());a.level=(null==s?void 0:s.level)||0,o(r)&&r.length>0&&(a._receiverList=r)}else r&&(a=this._generateC2CMessage(e));return s.messageSender.sendMessage(a,e)})}_generateC2CMessage(e){const{message:t,OuterConstant:{CONV_C2C:s}}=this._core,n=s,o=t.messageHelper.parseServerPushMessage(e),i=t.messageFactory.createMessage(Object.assign(Object.assign({},o),{conversationType:n,flow:ti.OUT})),{elements:r}=o;return i.setElement(r),i}_generateGroupMessage(e){const{message:t,OuterConstant:{CONV_GROUP:s}}=this._core,n=s,o=t.messageHelper.parseServerGroupMessage(e),i=t.messageFactory.createMessage(Object.assign(Object.assign({},o),{conversationType:n,flow:ti.OUT})),{elements:r}=o;return i.setElement(r),i}};var Gi=new class{init(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{GROUP_MESSAGE_PINNED:o}}=e;s.subscribeInnerEvent(n,o,this._handleGroupMessagePinned,this),t.registerApi({apiName:"pinGroupMessage",context:this}),t.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,common:{isTopic:s},OuterConstant:{GROUP_ID_PREFIX:n},helper:{ChatError:o}}=this._core;let{groupID:i,message:r,isPinned:a}=e;const{sequence:c}=r;try{return yield function(e){return de(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:t,getCurrentUserID:s}}=Po.core,{groupID:n,sequence:o,isPinned:i}=e,r=s(),a=i?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",c={GroupId:n,MsgSeq:o};return i?c.Pinner_Account=r:c.UnPinner_Account=r,t({servcmd:a,data:c})})}({groupID:i,sequence:c,isPinned:a}),{code:0,data:{}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};throw new o({code:t,message:s})}})}getPinnedGroupMessageList(e){return de(this,void 0,void 0,function*(){let t=[];try{const s=yield function(e){return de(this,void 0,void 0,function*(){const{groupID:t}=e,{common:{buildAndSendPacket:s}}=Po.core;return s({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:t}})})}({groupID:e});if(s){const{PinnedMsgList:n=[]}=s;t=yield this._updatePinnedMessageInfo({serverPinnedMessageList:n,groupID:e})}return{code:0,data:{messageList:t}}}catch(e){throw e}})}_handleGroupMessagePinned(e){const{message:{messageHelper:t,messageFactory:s},notificationCenter:n,OuterEvent:o,OuterConstant:i}=this._core;e.GroupTips.forEach(e=>{const{ToGroupId:r,MsgBody:{PinnedMsg:a,OpType:c,MsgOperatorMemberExtraInfo:u,SdkGroupMessageId:l}}=e,{UserId:d,NickName:h="",ImageUrl:g=""}=u;let p=null,_=!1;if(c===si){_=!0;const e=t.parseServerGroupMessage(a);p=s.createMessage(Object.assign(Object.assign({},e),{conversationType:i.CONV_GROUP,flow:"in"})),p.setElement(e.elements),p.pinnerInfo={userID:d,nick:h,avatar:g}}else if(c===ni){const{ClientTime:e,Random:t,SenderTinyId:s,ServerTime:n,MsgSeq:o}=l;p={ID:`${s}-${e}-${t}`,sequence:o,random:t,time:n,clientTime:e}}p&&n.emitOuterEvent(o.PINNED_GROUP_MESSAGE_UPDATED,{name:o.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:r,message:p,isPinned:_,operatorInfo:{userID:d,nick:h,avatar:g}}})})}_findMessageBySequence(e,t){const{message:{messageDataHandler:s}}=this._core;return[...s.getLocalMessageList(e),...s.getSparseMessageList(e)].find(e=>e.sequence===t)}_updatePinnedMessageInfo(e){return de(this,arguments,void 0,function*({serverPinnedMessageList:e,groupID:t}){const{OuterConstant:{CONV_GROUP:s},utils:{isEmpty:n}}=this._core,o=[],i=[],r=[],a=new Map,c=`${s}${t}`;for(let t=0;t<e.length;t++){const s=e[t],{Pinner_Account:n,MsgSeq:u}=s,l=this._findMessageBySequence(c,u);i.push(n),a.set(u,n),l?o.push(l):r.push(u)}const u=yield this._fetchPinnedMessageInfo({conversationID:c,messageSequenceList:r,pinnerIDList:i});if(u){const{pinnerInfoMap:e,messageList:t}=u;return o.push(...t),o.forEach(t=>{const{sequence:s}=t,n=a.get(s),o=e[n]||{userID:n,nick:"",avatar:""};t.pinnerInfo=o}),o.sort((e,t)=>e.sequence-t.sequence),o}return[]})}_fetchPinnedMessageInfo(e){return de(this,void 0,void 0,function*(){var t,s;const{message:{messageHistory:n},user:{userProfile:o},utils:{isArray:i}}=this._core,{conversationID:r,messageSequenceList:a,pinnerIDList:c}=e,u=yield Promise.all([this._fetchMessageBySequence({conversationID:r,messageSequenceList:a}),null==o?void 0:o.getUserProfile({userIDList:c})]);if(i(u)){const e={};return((null===(t=u[1])||void 0===t?void 0:t.data)||[]).forEach(t=>{const{userID:s,nick:n="",avatar:o=""}=t;e[s]={userID:s,nick:n,avatar:o}}),{messageList:(null===(s=u[0])||void 0===s?void 0:s.messageList)||[],pinnerInfoMap:e}}})}_fetchMessageBySequence(e){return de(this,void 0,void 0,function*(){const{utils:{isEmpty:t},message:{messageHistory:s}}=this._core,{conversationID:n,messageSequenceList:o}=e;return t(o)?[]:s.getGroupRoamingMessagesByAnchor({conversationID:n,messageSequenceList:o,getType:3})})}};class wi{constructor(e){this.eventType=oi.DATA,this.index=0,this.markdown="",this.isLast=!1,this.binaryData=null;const{EventType:t,Index:s,Markdown:n,IsLast:o,BinaryData:i}=e;this.eventType=t,this.index=s,this.markdown=n,this.isLast=o,this.binaryData=i}}var Ui=new class{constructor(){this._messageMap=new Map,this._retryCountMap=new Map}init(e){this._core=e;const{notificationCenter:t,OuterEvent:{MESSAGE_RECEIVED:s},InnerEvent:{HISTORY_MESSAGE_FETCHED:n}}=e;t.subscribeInnerEvent(ri,this._handleStreamMessageChunkPush,this),t.subscribeOuterEvent(s,this._handleMessageReceived,this),t.subscribeInnerEvent(n,this.processHistoryMessage,this)}processHistoryMessage(e){const{utils:{isEmpty:t,safeStringify:s},ssoLog:n}=this._core;try{null==e||e.forEach(e=>{var s;if(this._isValidStreamMessage(e)){const n=null===(s=null==e?void 0:e._elements)||void 0===s?void 0:s[0],{streamMessageID:o,markdown:i,binaryData:r}=(null==n?void 0:n.content)||{};t(i)&&t(r)?(this._messageMap.set(o,e),this._fetchStreamMessageChunks(e)):n.content.isStreamEnded=!0}})}catch(e){n.error("processHistoryMessage.error",s(e))}}_handleMessageReceived(e){const t=e.data;null==t||t.forEach(e=>{var t,s;if(this._isValidStreamMessage(e)){const{streamMessageID:n}=(null===(s=null===(t=null==e?void 0:e._elements)||void 0===t?void 0:t[0])||void 0===s?void 0:s.content)||{};n&&(this._messageMap.set(n,e),this._fetchStreamMessageChunks(e))}})}_isValidStreamMessage(e){var t,s;const{utils:{isEmpty:n}}=this._core,{streamMessageID:o}=(null===(s=null===(t=null==e?void 0:e._elements)||void 0===t?void 0:t[0])||void 0===s?void 0:s.content)||{};return e.type===ko.MSG_STREAM&&!n(o)}_fetchStreamMessageChunks(e){return de(this,void 0,void 0,function*(){var t,s;const{constants:{ERROR_CODE:n},ssoLog:o,utils:{safeStringify:i}}=this._core,r=null===(t=e._elements)||void 0===t?void 0:t[0],a=null===(s=null==r?void 0:r.content)||void 0===s?void 0:s.streamMessageID;try{const{from:t,to:s}=e,n=r.getLatestIndex();if(r.content.isStreamEnded)return;const o=yield function(e){return de(this,void 0,void 0,function*(){const{from:t,to:s,streamMessageID:n,index:o}=e,i={From_Account:t,To_Account:s,StreamMsgID:n,AckIndex:o};return Po.core.common.buildAndSendPacket({servcmd:"StreamMsg.GetStreamHttp",data:i,timeout:5e3})})}({from:t,to:s,streamMessageID:a,index:n});if(o){const{ErrorCode:e,ErrorInfo:t}=o;if(0!==e)throw r.content.errorCode=e,r.content.errorMessage=t,{errorCode:e,errorMessage:t}}}catch(t){if(t.errorCode===n.NETWORK_TIMEOUT&&this._shouldRetryFetch(a)){const s=this._retryCountMap.get(a)||0;o.debug("_fetchStreamMessageChunks.timeout",`error: ${i(t)} retried: ${s}`),this._retryCountMap.set(a,s+1),this._fetchStreamMessageChunks(e)}else o.error("_fetchStreamMessageChunks.error",i(t))}})}_shouldRetryFetch(e){const{utils:{isNumber:t}}=this._core;if(!this._retryCountMap.has(e))return this._retryCountMap.set(e,1),!0;const s=this._retryCountMap.get(e);return!!(t(s)&&s<=3)}_onStreamEnded(e,t,s){const{ssoLog:n}=this._core;s.content.isStreamEnded=!0,s.stopReason=t,this._messageMap.delete(e),n.debug("_onStreamEnded",`streamMessage end, StopReason: ${t}`)}_handleStreamMessageChunkPush(e){var t;const{ssoLog:s}=this._core,{StopReason:n,Chunks:o,StreamID:i}=(null==e?void 0:e.body)||{},r=this._messageMap.get(i);if(!r)return void s.warn(`_handleStreamMessageChunkPush, unfounded message: ${i}`);const a=null===(t=r._elements)||void 0===t?void 0:t[0];if(a&&this._validateExpectedChunk(a,o)){if(o.length>0){const e=o.map(e=>new wi(e));a.updateChunks(e)}this._emitMessageModify(r),function(e,t){de(this,void 0,void 0,function*(){const{common:{generateProtocolData:s},utils:{safeStringify:n},ssoLog:o,channel:i}=Po.core,r={StreamMsgID:e,AckIndex:t};try{const e=s({servcmd:"StreamMsg.AckHttp",data:r});i.sendPacket(e)}catch(e){o.debug("sendStreamChunkAck",n(e))}})}(i,a.getLatestIndex()),a.content.isStreamEnded&&this._onStreamEnded(i,n,a)}}_emitMessageModify(e){const{notificationCenter:t,OuterEvent:{MESSAGE_MODIFIED:s}}=this._core;t.emitOuterEvent(s,{name:s,data:[e]})}_validateExpectedChunk(e,t){const s=e.getLatestIndex()+1;let n=!1;for(let e=0;e<t.length;e++)if(t[e].Index===s){n=!0;break}if(!n){const{ssoLog:e}=this._core;return e.debug("_handleStreamMessageChunkPush",`Ignore push, expected index: ${s}, received: [${t.map(e=>e.Index).join(", ")}]`),!1}return!0}reset(){this._messageMap.clear(),this._retryCountMap.clear()}dispose(){const{notificationCenter:e,OuterEvent:{MESSAGE_RECEIVED:t}}=this._core;this.reset(),e.unSubscribeInnerEvent(ri,this._handleStreamMessageChunkPush,this),e.unSubscribeInnerEvent(t,this._handleMessageReceived,this)}};var ki=new class{constructor(){this.name="MessageEnhancer"}install(e){this._core=e,Po.init(e),Ei.init(e),yi.init(e),Ti.init(e),ai.init(e),Ri.init(e),Di.init(e),ci.init(e),Li.init(e),di.init(e),Pi.init(e),Gi.init(e),Ui.init(e),e.helper.registerValidateConfig({auth:_i,params:pi}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),Ti.dispose(),ci.dispose(),di.dispose(),Ui.dispose()}_reset(){Ui.reset()}};var Fi=new class{constructor(){this._name="WebRequest"}init(e){this._core=e}request(e,t){return de(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:u,dataType:l="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=l;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(u),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 $i=["unknown","image","video","audio","log"];var xi=new class{init(e){this._core=e}request(e,t){var s;const{MINI_APP_NAMESPACE:n,IN_ALIPAY_MINI_APP:o,isUniIOSApp:i}=null===(s=this._core)||void 0===s?void 0:s.utils,{resources:r="",headers:a={},url:c,downloadUrl:u=""}=e;let l=c,d=null;const h=u?u.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/):null;if(!h)return void console.warn("message Invalid download URL format");const g=decodeURIComponent(h[3]),p=g.includes("?")?g.split("?")[0]:g||"",_={key:e.fileKey||p,success_action_status:200,"Content-Type":""},m={};if(i()){const[e,t]=c.split("?sign=");t&&(l=`${e}?sign=${encodeURIComponent(t)}`,m.sign=decodeURIComponent(t),m.signature=decodeURIComponent(t))}let v={url:l,header:a,name:"file",filePath:r,formData:Object.assign(Object.assign({},_),m),timeout:e.timeout||3e5};if(o){const{name:t}=v,s=le(v,["name"]);v=Object.assign(Object.assign({},s),{fileName:"file",fileType:e.fileType?$i[e.fileType]:"image"})}return d=n.uploadFile(Object.assign(Object.assign({},v),{success:e=>{this._handleResponse({response:e,downloadUrl:u,callback:t})},fail:e=>{this._handleResponse({response:e,downloadUrl:u,callback:t})}})),d.onProgressUpdate&&d.onProgressUpdate(t=>{e.onProgress&&e.onProgress({total:t.totalBytesExpectedToSend||0,loaded:t.totalBytesSent||0,percent:t.progress?Math.floor(t.progress)/100:0})}),d}_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 qi(e){return"file"===function(e){return Object.prototype.toString.call(e).match(/^\[object (.*)\]$/)[1].toLowerCase()}(e)}function Vi(e){const t=e||99999999;return Math.round(Math.random()*t)}function Bi(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 ji(e){return`${Array.from({length:8},()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1)).join("")}-${e}`}function Hi(e,t){return Math.round(Number(e)*10**t)/10**t}function Ki(e){if(e<=1048576){return`${Hi(e/1024,1)}KB/s`}return`${Hi(e/1048576,1)}MB/s`}const Wi="TIMImageElem",Yi="TIMSoundElem",zi="TIMFileElem",Ji="TIMVideoFileElem",Qi="RichMediaMessagePlugin",Xi=["rich.my-imcloud.com","imrich.qcloud.com"],Zi=1,er=2,tr=3,sr=255;var nr;!function(e){e.UNSENT="unSend",e.SUCCESS="success",e.FAIL="fail"}(nr||(nr={}));const or={wechat:/^(wxfile:\/\/tmp_|http:\/\/temp\/|cloud:\/\/temp-)/,alipay:/^(https:\/\/resource\/|alipayfile:\/\/tmp\/)/,baidu:/^(http:\/\/tmp\/|swanfile:\/\/tmp_)/,bytedance:/^(ttfile:\/\/tmp_|\/(var|tmp)\/|tttemp:\/\/)/,qq:/^(qqfile:\/\/tmp_|http:\/\/qtemp\/)/},ir=Symbol("isCustomUpload");var rr,ar=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(or).some(t=>t.test(e))}extractFileFromInput(e){const{utils:{isArray:t}}=this._core;return qi(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?t(e.tempFiles)&&e.tempFiles.length>0?e.tempFiles[0]:t(e.files)?e.files[0]:e.tempFile?e.tempFile:null:e instanceof HTMLInputElement&&e.files&&e.files.length>0?e.files[0]:null}probeImageWidthHeight(e){return de(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=Xi;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=Xi}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)}generateURL(e,t){const{needAddAuthToUrl:s=!0}=t||{};return s?this.addAuthToUrl(e):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,IN_WX_MINI_GAME:o}=(null===(e=this._core)||void 0===e?void 0:e.utils)||{};return t||s&&9===n||o}_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})}},cr={exports:{}};var ur=(rr||(rr=1,cr.exports=function(e){var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function s(e,t){var s=e[0],n=e[1],o=e[2],i=e[3];n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[0]-680876936|0)<<7|s>>>25)+n|0)&n|~s&o)+t[1]-389564586|0)<<12|i>>>20)+s|0)&s|~i&n)+t[2]+606105819|0)<<17|o>>>15)+i|0)&i|~o&s)+t[3]-1044525330|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[4]-176418897|0)<<7|s>>>25)+n|0)&n|~s&o)+t[5]+1200080426|0)<<12|i>>>20)+s|0)&s|~i&n)+t[6]-1473231341|0)<<17|o>>>15)+i|0)&i|~o&s)+t[7]-45705983|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[8]+1770035416|0)<<7|s>>>25)+n|0)&n|~s&o)+t[9]-1958414417|0)<<12|i>>>20)+s|0)&s|~i&n)+t[10]-42063|0)<<17|o>>>15)+i|0)&i|~o&s)+t[11]-1990404162|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[12]+1804603682|0)<<7|s>>>25)+n|0)&n|~s&o)+t[13]-40341101|0)<<12|i>>>20)+s|0)&s|~i&n)+t[14]-1502002290|0)<<17|o>>>15)+i|0)&i|~o&s)+t[15]+1236535329|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[1]-165796510|0)<<5|s>>>27)+n|0)&o|n&~o)+t[6]-1069501632|0)<<9|i>>>23)+s|0)&n|s&~n)+t[11]+643717713|0)<<14|o>>>18)+i|0)&s|i&~s)+t[0]-373897302|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[5]-701558691|0)<<5|s>>>27)+n|0)&o|n&~o)+t[10]+38016083|0)<<9|i>>>23)+s|0)&n|s&~n)+t[15]-660478335|0)<<14|o>>>18)+i|0)&s|i&~s)+t[4]-405537848|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[9]+568446438|0)<<5|s>>>27)+n|0)&o|n&~o)+t[14]-1019803690|0)<<9|i>>>23)+s|0)&n|s&~n)+t[3]-187363961|0)<<14|o>>>18)+i|0)&s|i&~s)+t[8]+1163531501|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[13]-1444681467|0)<<5|s>>>27)+n|0)&o|n&~o)+t[2]-51403784|0)<<9|i>>>23)+s|0)&n|s&~n)+t[7]+1735328473|0)<<14|o>>>18)+i|0)&s|i&~s)+t[12]-1926607734|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[5]-378558|0)<<4|s>>>28)+n|0)^n^o)+t[8]-2022574463|0)<<11|i>>>21)+s|0)^s^n)+t[11]+1839030562|0)<<16|o>>>16)+i|0)^i^s)+t[14]-35309556|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[1]-1530992060|0)<<4|s>>>28)+n|0)^n^o)+t[4]+1272893353|0)<<11|i>>>21)+s|0)^s^n)+t[7]-155497632|0)<<16|o>>>16)+i|0)^i^s)+t[10]-1094730640|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[13]+681279174|0)<<4|s>>>28)+n|0)^n^o)+t[0]-358537222|0)<<11|i>>>21)+s|0)^s^n)+t[3]-722521979|0)<<16|o>>>16)+i|0)^i^s)+t[6]+76029189|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[9]-640364487|0)<<4|s>>>28)+n|0)^n^o)+t[12]-421815835|0)<<11|i>>>21)+s|0)^s^n)+t[15]+530742520|0)<<16|o>>>16)+i|0)^i^s)+t[2]-995338651|0)<<23|n>>>9)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[0]-198630844|0)<<6|s>>>26)+n|0)|~o))+t[7]+1126891415|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[14]-1416354905|0)<<15|o>>>17)+i|0)|~s))+t[5]-57434055|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[12]+1700485571|0)<<6|s>>>26)+n|0)|~o))+t[3]-1894986606|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[10]-1051523|0)<<15|o>>>17)+i|0)|~s))+t[1]-2054922799|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[8]+1873313359|0)<<6|s>>>26)+n|0)|~o))+t[15]-30611744|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[6]-1560198380|0)<<15|o>>>17)+i|0)|~s))+t[13]+1309151649|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[4]-145523070|0)<<6|s>>>26)+n|0)|~o))+t[11]-1120210379|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[2]+718787259|0)<<15|o>>>17)+i|0)|~s))+t[9]-343485551|0)<<21|n>>>11)+o|0,e[0]=s+e[0]|0,e[1]=n+e[1]|0,e[2]=o+e[2]|0,e[3]=i+e[3]|0}function n(e){var t,s=[];for(t=0;t<64;t+=4)s[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return s}function o(e){var t,s=[];for(t=0;t<64;t+=4)s[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return s}function i(e){var t,o,i,r,a,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)s(l,n(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<o;t+=1)i[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(s(l,i),t=0;t<16;t+=1)i[t]=0;return r=(r=8*u).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(r[2],16),c=parseInt(r[1],16)||0,i[14]=a,i[15]=c,s(l,i),l}function r(e){var t,n,i,r,a,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)s(l,o(e.subarray(t-64,t)));for(n=(e=t-64<u?e.subarray(t-64):new Uint8Array(0)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<n;t+=1)i[t>>2]|=e[t]<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(s(l,i),t=0;t<16;t+=1)i[t]=0;return r=(r=8*u).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(r[2],16),c=parseInt(r[1],16)||0,i[14]=a,i[15]=c,s(l,i),l}function a(e){var s,n="";for(s=0;s<4;s+=1)n+=t[e>>8*s+4&15]+t[e>>8*s&15];return n}function c(e){var t;for(t=0;t<e.length;t+=1)e[t]=a(e[t]);return e.join("")}function u(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function l(e,t){var s,n=e.length,o=new ArrayBuffer(n),i=new Uint8Array(o);for(s=0;s<n;s+=1)i[s]=e.charCodeAt(s);return t?i:o}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function h(e,t,s){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e)),n.set(new Uint8Array(t),e.byteLength),n}function g(e){var t,s=[],n=e.length;for(t=0;t<n-1;t+=2)s.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,s)}function p(){this.reset()}return c(i("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(s,n){var o,i,r,a,c=this.byteLength,u=t(s,c),l=c;return n!==e&&(l=t(n,c)),u>l?new ArrayBuffer(0):(o=l-u,i=new ArrayBuffer(o),r=new Uint8Array(i),a=new Uint8Array(this,u,o),r.set(a),i)}}(),p.prototype.append=function(e){return this.appendBinary(u(e)),this},p.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t<=o;t+=64)s(this._hash,n(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},p.prototype.end=function(e){var t,s,n=this._buff,o=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<o;t+=1)i[t>>2]|=n.charCodeAt(t)<<(t%4<<3);return this._finish(i,o),s=c(this._hash),e&&(s=g(s)),this.reset(),s},p.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},p.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},p.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},p.prototype._finish=function(e,t){var n,o,i,r=t;if(e[r>>2]|=128<<(r%4<<3),r>55)for(s(this._hash,e),r=0;r<16;r+=1)e[r]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(n[2],16),i=parseInt(n[1],16)||0,e[14]=o,e[15]=i,s(this._hash,e)},p.hash=function(e,t){return p.hashBinary(u(e),t)},p.hashBinary=function(e,t){var s=c(i(e));return t?g(s):s},p.ArrayBuffer=function(){this.reset()},p.ArrayBuffer.prototype.append=function(e){var t,n=h(this._buff.buffer,e),i=n.length;for(this._length+=e.byteLength,t=64;t<=i;t+=64)s(this._hash,o(n.subarray(t-64,t)));return this._buff=t-64<i?new Uint8Array(n.buffer.slice(t-64)):new Uint8Array(0),this},p.ArrayBuffer.prototype.end=function(e){var t,s,n=this._buff,o=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<o;t+=1)i[t>>2]|=n[t]<<(t%4<<3);return this._finish(i,o),s=c(this._hash),e&&(s=g(s)),this.reset(),s},p.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.ArrayBuffer.prototype.getState=function(){var e=p.prototype.getState.call(this);return e.buff=d(e.buff),e},p.ArrayBuffer.prototype.setState=function(e){return e.buff=l(e.buff,!0),p.prototype.setState.call(this,e)},p.ArrayBuffer.prototype.destroy=p.prototype.destroy,p.ArrayBuffer.prototype._finish=p.prototype._finish,p.ArrayBuffer.hash=function(e,t){var s=c(r(new Uint8Array(e)));return t?g(s):s},p}()),cr.exports),lr=zt(ur);var dr=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?xi:Fi,null===(t=this.httpRequest)||void 0===t||t.init(e)}uploadToCOS(e){return de(this,void 0,void 0,function*(){const t=`${Qi} uploadToCOS`,{ssoLog:s,utils:{safeStringify:n}}=this._core,{file:o}=e;this.uploadFileType=e.uploadFileType,s.debug("uploadToCOS",`${t} options:${n(e)}`);try{const n=Date.now(),i=yield this._createCosOptions(e),r=i.fileExistsInCOS?{data:{location:i.downloadUrl}}:yield this._uploadFile(i);this._handleUploadError(r,e);const a=this._createUploadResult(o,r),c=Date.now()-n,u=function(e){const t=1024,s=1048576;return e<t?`${e}B`:e<s?`${Math.floor(e/t)}KB`:`${Math.floor(e/s)}MB`}(o.size),l=`size:${u} time:${c}ms speed:${Ki(1e3*o.size/c)}`;return s.debug("uploadToCOS",`${t} ok. name:${o.name} ${l}`),{uploadOptions:i,response:a}}catch(e){throw s.warn("uploadToCOS",`${t} failed, error:${n(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 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:Bi(Date.now(),!1),uploadSpeed:Ki(1e3*e.size/Bi(Date.now(),!1))}}_createCosOptions(e){return de(this,void 0,void 0,function*(){const{fileName:t,resources:s,uploadMethod:n}=yield 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:u,largeUrl:l,fileKey:d,existFlag:h}=i,g=!ar.isPrivateNetWork()&&i.uploadIP;return{url:this._getRawOrUploadProxyUrl(r),fileType:this.uploadFileType,fileName:t,resources:s,downloadUrl:a,requestSnapshotUrl:c,thumbUrl:u,largeUrl:l,fileKey:d,uploadIP:g||"",fileExistsInCOS:1===h,onProgress:t=>this._handleUploadProgress(t,e)}}catch(e){throw console.error("Failed to create COS pre-signed URL options:",e),e}})}_prepareUploadParams(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s,isEmpty:n}}=this._core;t.debug("_prepareUploadParams",` prepareUploadParams:${s(e)}`);const{file:o}=e,{IN_MINI_APP:i,IN_RN_APP:r}=ar.getPlatformFlags(),a=i||r,c=a&&e.message.type!==zi,{name:u}=o,l=u.slice(u.lastIndexOf(".")),d=`${Vi(999999)}${l}`,h=c?o.name:d,g=yield this._generateHashFileName(o);return{fileName:n(g)?ji(h):`${g}${l}`,resources:a?o.url:o,uploadMethod:a?1:0}})}_generateHashFileName(e){return de(this,void 0,void 0,function*(){const{utils:{IN_MINI_APP:t,IN_BROWSER:s,IN_UNI_NATIVE_APP:n,isArray:o},ssoLog:i}=this._core,r=Date.now();let a="";return s&&(a=yield this._generateHashFileNameInWeb(e)),t&&(o(e.tempFiles)&&(e=e.tempFiles[0]),n||(a=yield this._generateFileNameInMiniProgram(e)),n&&(a=yield this._generateFileNameInUNINativeApp(e))),i.info("_generateHashFileName",`hashFileName:${a} costTime:${Date.now()-r}`),a})}_generateHashFileNameInWeb(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;let n="";try{n=yield new Promise((s,n)=>{const o=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice;o||(t.warn("_generateHashFileNameInWeb","Browser does not support file slicing"),s(""));const i=10485760,r=Math.ceil(e.size/i);let a=0;const c=new lr.ArrayBuffer,u=new FileReader,l=setTimeout(()=>{u.abort(),t.warn("_generateHashFileNameInWeb","File hash generation timeout"),s("")},2e3);function d(){const t=a*i,s=t+i>=e.size?e.size:t+i;u.readAsArrayBuffer(o.call(e,t,s))}u.onload=e=>{t.debug("_generateHashFileNameInWeb",`read chunk nr ${a+1} of ${r}`),c.append(e.target.result),a++,a<r?d():(t.debug("_generateHashFileNameInWeb","finished loading"),clearTimeout(l),s(c.end()))},u.onerror=e=>{clearTimeout(l),n(e)},d()})}catch(e){t.warn("_generateHashFileNameInWeb",s(e))}return n})}_generateFileNameInMiniProgram(e){return de(this,void 0,void 0,function*(){const{utils:{MINI_APP_NAMESPACE:t,safeStringify:s,isEmpty:n},ssoLog:o}=this._core;let i="";if(n(e.url))return o.warn("_generateFileNameInMiniProgram","file.url is empty"),i;if("function"!=typeof(null==t?void 0:t.getFileSystemManager))return o.warn("_generateFileNameInUNINativeApp","getFileSystemManager is not a function"),i;try{i=yield new Promise((s,n)=>{t.getFileSystemManager().getFileInfo({filePath:e.url,success:e=>{s(e.digest)},fail:e=>{n(e)}})})}catch(e){o.warn("_generateFileNameInMiniProgram",s(e))}return i})}_generateFileNameInUNINativeApp(e){return de(this,void 0,void 0,function*(){var t;const{utils:{safeStringify:s,isEmpty:n},ssoLog:o}=this._core;let i="";if(n(e.url))return o.warn("_generateFileNameInUNINativeApp","file.url is empty"),i;if("function"!=typeof(null===(t=null===plus||void 0===plus?void 0:plus.io)||void 0===t?void 0:t.getFileInfo))return o.warn("_generateFileNameInUNINativeApp","plus.io.getFileInfo is not a function"),i;try{i=yield new Promise((t,s)=>{plus.io.getFileInfo({filePath:e.url,success:e=>{t(e.digest)},fail:e=>{s(e)}})})}catch(e){o.warn("_generateFileNameInMiniProgram",s(e))}return i})}_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 de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core,n=ar.isSimpleCos(),o=this._prepareCosRequestData(e),i=n?"im_cos_msg.simple_sig":"im_cos_msg.pre_sig";try{const e=yield function(e,t,s){return de(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}})}(i,o,this._core);this.fetchCosTryCount=0;const r=this._processResponse(e);return t.debug("_fetchCosSignatureUrl",` ok. isSimpleCos:${n} data:${s(r)}`),r||{}}catch(t){if(this.fetchCosTryCount<1)return this.fetchCosTryCount++,this._fetchCosSignatureUrl(e);throw this.fetchCosTryCount=0,t}})}_processResponse(e){var t;const s=ar.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:u}=n;return{uploadUrl:o,downloadUrl:i,requestSnapshotUrl:r,thumbUrl:a,largeUrl:c,fileKey:u}}_prepareCosRequestData(e){return ar.isSimpleCos()?{uint32_upload_method:e.uploadMethod,uint32_platform:ar.getPlatform(),uint32_sdkappid:ar.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 de(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=ar.getFileUploadProxy();let s=e;return t&&(s=e.replace(/^https:\/\/[^/]+/,t)),s}_isC2CConversation(e){return"C2C"===e.slice(0,3)}};const hr=2108,gr=2251,pr=2252,_r=2253,mr=["jpg","jpeg","gif","png","bmp","image","webp"],vr={JPG:1,JPEG:1,GIF:2,PNG:3,BMP:4,UNKNOWN:255};class fr{constructor(e,t){this.instanceID=Vi(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=ar.addAuthToUrl(e.imageUrl||e.url||""),this.url=ar.addAuthToUrl(e.url||t)}setSizeType(e){this.sizeType=e}setType(e){this.type=e}setImageUrl(e){e&&(this.imageUrl=ar.addAuthToUrl(e))}getImageUrl(){return this.imageUrl}}function Ir(e){const{originUrl:t,originWidth:s,originHeight:n,min:o=198}=e,i=parseInt(s)||0,r=parseInt(n)||0,a={url:void 0,width:0,height:0};if((i<=r?i:r)<=o)a.url=t,a.width=i,a.height=r;else{r<=i?(a.width=Math.ceil(i*o/r),a.height=o):(a.width=o,a.height=Math.ceil(r*o/i));const e=t&&t.indexOf("?")>-1?`${t}&`:`${t}?`;a.url=198===o?`${e}imageView2/3/w/198/h/198`:`${e}imageView2/3/w/720/h/720`}if(void 0===t){const{url:e}=a;return le(a,["url"])}return a}class Er{constructor(e){this._imageMemoryURL="",this._percent=0,this.type=Wi;const{uuid:t,file:s,imageFormat:n,imageInfoArray:o=[],isCustomUpload:i=!1}=e;this._imageMemoryURL=this.createImageDataAsURL(s),this.content={imageFormat:n,uuid:t,imageInfoArray:[]},this[ir]=i,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 Er({imageFormat:s,imageInfoArray:i,uuid:o})}createImageDataAsURL(e){let t="";const{IN_MINI_APP:s,IN_RN_APP:n,IN_BROWSER:o}=ar.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 fr(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=vr[e.toUpperCase()]||vr.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],Ir({originWidth:e.width,originHeight:e.height,min:720})))}validateBeforeSend(){if(this[ir])return delete this[ir],{isValid:!0};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:ar.removeAuthToUrl(e.imageUrl)}))}}const Cr=new class{init(e){this.core=e}},Sr={[Zi]:"i",[tr]:"a",[er]:"v",[sr]:"f"};let Mr=null,yr=null;function Or(e){var t;const{store:s,utils:{isNumber:n,safeStringify:o},ssoLog:i}=Cr.core;try{const o=(null===(t=s.get("cloudConfig"))||void 0===t?void 0:t.upload_size_limit)||"";o!==yr&&(yr=o,Mr=JSON.parse(o)||{});const i=null==Mr?void 0:Mr[Sr[e]];if(n(i))return 1024*i*1024}catch(e){i.debug("getCloudControlUploadSizeLimit",o(e))}return null}var Ar=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}),n.registerExperimentalAPI("createImageMessage",this,"createCustomUploadImageMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Wi,Er),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createImageMessage(e){var t,s,n;try{const o=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,i=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:o})),r=this._processImage(e);e.payload.file=r;const a={imageFormat:vr.UNKNOWN,uuid:ar.generateUUID(r),file:r,imageInfoArray:[]},c=new Er(a);return i.setElement(c),this._messageOptionsMap.set(i.clientSequence,e),i}catch(e){throw e}}createCustomUploadImageMessage(e){var t,s,n,o;const{store:i,utils:{isEmpty:r}}=this._core,a=null===(t=i.get("login"))||void 0===t?void 0:t.userId,c=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:a})),{largeImageUuid:u,largeFileSize:l,largeImageWidth:d,largeImageHeight:h,largeImageUrl:g,originImageUuid:p,originFileSize:_,originImageWidth:m,originImageHeight:v,originImageUrl:f,thumbImageUuid:I,thumbFileSize:E,thumbImageWidth:C,thumbImageHeight:S,thumbImageUrl:M}=(null===(o=null==e?void 0:e.payload)||void 0===o?void 0:o.file)||{};if(r(f)||r(p))throw new Error("createImageMessageExperimental originImageUrl or originImageUuid is empty");const y=new Er({imageFormat:vr.UNKNOWN,uuid:p,imageInfoArray:[{instanceID:p,size:_,width:m,height:v,imageUrl:f,url:f},{instanceID:u,size:l,width:d,height:h,imageUrl:g,url:g},{instanceID:I,size:E,width:C,height:S,imageUrl:M,url:M}],isCustomUpload:!0});return c.setElement(y),this._messageOptionsMap.set(c.clientSequence,e),c._skipUpload=!0,c}upload(e){return de(this,void 0,void 0,function*(){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.updateImageFormat(null==n?void 0:n.fileType),t.updateImageInfoArray(o),e})}_performImageUpload(e,t,s){return de(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:Zi,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 dr.uploadToCOS(o);return this._parseResponse(i,r)})}_generateImageInfo(e){const{location:t,fileSize:s,width:n,height:o,smallImageUrl:i,smallImageWidth:r,smallImageHeight:a,largeImageUrl:c,largeImageWidth:u,largeImageHeight:l,imageInfoArray:d}=e,h=ar.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:u,largeImageHeight:l},{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 Ir({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 de(this,void 0,void 0,function*(){try{const{thumbUrl:s,largeUrl:n,downloadUrl:o}=e;s&&n&&(yield this._getImageInfoByUrl(s,t,"thumb"),yield this._getImageInfoByUrl(n,t,"large"));if(ar.isSimpleCos()&&!ar.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 e}})}_extractDomainFromUrl(e){var t;try{const t=e.match(/:\/\/([^\/]+)/);return t?t[1]:null}catch(e){return null===(t=this._core)||void 0===t||t.ssoLog.warn("_extractDomainFromUrl",`Failed to extract domain from URL:${e.message}`),null}}_getImageInfoByUrl(e,t,s){return de(this,void 0,void 0,function*(){var n;try{const n=ar.addAuthToUrl(e),{width:o=0,height:i=0}=yield ar.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){null===(n=this._core)||void 0===n||n.ssoLog.warn("_getImageInfoByUrl",`Failed to get ${s} image info:${e.message}`)}})}_validateBeforeUploadImage(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper;if(!e)throw new s({code:gr});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 e}}_processMiniAppImageFile(e){qi(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=ar.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 de(this,void 0,void 0,function*(){const s=`${Qi} getDownloadIP domainName: ${e}`;try{const n=yield function(e,t){return de(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 de(this,void 0,void 0,function*(){try{const s=yield function(e,t){return de(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(s),t}catch(e){throw t.imageInfoArray=void 0,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)),mr.indexOf(n.toLowerCase())<0)throw new s.ChatError({code:pr})}_checkImageSize(e){const{utils:t,helper:s,store:n}=this._core;let o=0;if(o=(t.IN_MINI_APP,e.size),0===o)throw new s.ChatError({code:hr});if(o>=(Or(Zi)||20971520))throw new s.ChatError({code:_r})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Tr=2108,Rr=2401,Dr=2402,br="2.5.0",Nr="1.18.0";function Lr(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}var Pr;class Gr{constructor(e){this.type=zi,this.uploadProgress=0,this[Pr]=!1;const t=this._getFileInfo(e);this[ir]=e.isCustomUpload||!1,this.content={downloadFlag:2,fileUrl:ar.generateURL(e.url||e.fileUrl,{needAddAuthToUrl:!this[ir]})||"",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 Gr({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(){if(this[ir])return{isValid:!0};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:ar.removeAuthToUrl(i),FileName:r,FileSize:a,UUID:n}}}_getFileInfo(e){const{utils:{IN_UNI_NATIVE_APP:t}}=Cr.core;if(e.fileName&&e.fileSize)return{size:e.fileSize,name:e.fileName};const{file:s}=e;return s?(t&&this._processNativeAppFile(s),{size:s.size,name:s.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=`${Vi(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)}}Pr=ir;var wr=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}),n.registerExperimentalAPI("createFileMessage",this,"createCustomUploadFileMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(zi,Gr),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createFileMessage(e){var t,s,n;try{this._checkVersion();const o=this._processFile(e.payload.file);e.payload.file=o;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={uuid:ar.generateUUID(o),file:o},c=new Gr(a);return r.setElement(c),this._messageOptionsMap.set(r.clientSequence,e),r}catch(e){throw e}}createCustomUploadFileMessage(e){var t,s,n;try{const{store:o,message:i,utils:{isEmpty:r}}=this._core,a=null===(t=o.get("login"))||void 0===t?void 0:t.userId,{url:c,uuid:u,fileSize:l,fileName:d=""}=(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.file)||{};if(r(c))throw new Error("url is required");const h=null===(n=i.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:a})),g=new Gr({url:c,uuid:u,file:{size:l,name:d},isCustomUpload:!0});return h.setElement(g),h}catch(e){throw e}}upload(e){return de(this,void 0,void 0,function*(){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=ar.addAuthToUrl(null==n?void 0:n.location);return s.updateFileUrl(o),e})}_validateBeforeUploadFile(e){const{helper:{ChatError:t}}=this._core;if(!e)throw new t({code:Rr});const s=Or(sr)||104857600;if(e.size>s)throw new t({code:Dr});if(0===e.size)throw new t({code:Tr})}_performFileUpload(e,t,s){return de(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:sr,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 dr.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=ar.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&&Lr(e,br)<0){throw new a({message:`WXChooseMessageFile requires SDK version ${br} or higher`})}if(i&&Lr(e,Nr)<0){throw new a({message:`QQChooseMessageFile requires SDK version ${Nr} or higher`})}}}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Ur=2108,kr=2351,Fr=2352,$r=["mp4","quicktime","mov","video"];var xr;class qr{constructor(e){this.type=Ji,this.uploadProgress=0,this[xr]=!1;const t="number"==typeof(null==e?void 0:e.videoSecond)?null==e?void 0:e.videoSecond:0;this[ir]=e.isCustomUpload||!1,this.content={remoteVideoUrl:ar.addAuthToUrl(e.remoteVideoUrl||e.videoUrl||""),videoFormat:e.videoFormat,videoSecond:parseInt(null==t?void 0:t.toString(),10),videoSize:e.videoSize,videoUrl:ar.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:ar.addAuthToUrl(e.thumbUrl),snapshotUrl:ar.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:u,ThumbWidth:l,SnapshotWidth:d,ThumbHeight:h,SnapshotHeight:g,ThumbSize:p,SnapshotSize:_,ThumbDownloadFlag:m,ThumbUrl:v,SnapshotUrl:f}=t;return new qr({videoUrl:s,videoFormat:n,videoSecond:o,videoSize:i,videoDownloadFlag:r,videoUUID:a,thumbUUID:c,thumbFormat:u,thumbWidth:l,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;ar.isEmpty(t)||(this.content.thumbUrl=this.content.snapshotUrl=t),ar.isEmpty(s)||(this.content.thumbWidth=this.content.snapshotWidth=Number(s)),ar.isEmpty(n)||(this.content.thumbHeight=this.content.snapshotHeight=Number(n))}validateBeforeSend(){if(this[ir])return{isValid:!0};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:u,thumbFormat:l,thumbWidth:d,snapshotWidth:h,thumbHeight:g,snapshotHeight:p,thumbSize:_,snapshotSize:m,thumbDownloadFlag:v,thumbUrl:f,snapshotUrl:I}=s;return{MsgType:this.type,MsgContent:{VideoUrl:ar.removeAuthToUrl(n),VideoFormat:o,VideoSecond:i,VideoSize:r,VideoDownloadFlag:a,VideoUUID:c,ThumbUUID:u,ThumbFormat:l,ThumbWidth:d,SnapshotWidth:h,ThumbHeight:g,SnapshotHeight:p,ThumbSize:_,SnapshotSize:m,ThumbDownloadFlag:v,ThumbUrl:ar.removeAuthToUrl(f),SnapshotUrl:ar.removeAuthToUrl(I)}}}}xr=ir;var Vr,Br=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}),n.registerExperimentalAPI("createVideoMessage",this,"createCustomUploadVideoMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Ji,qr),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createVideoMessage(e){var t,s,n;try{const o=this._processVideo(e);e.payload.file=o;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={videoFormat:o.videoFile.type,videoSecond:Hi(o.videoFile.second,0),videoSize:o.videoFile.size,remoteVideoUrl:"",videoUrl:o.videoFile.url,videoUUID:ar.generateUUID(o.videoFile),thumbUUID:ar.generateUUID(o.videoFile,"jpg"),thumbWidth:o.width||200,thumbHeight:o.height||200,thumbUrl:o.thumbUrl,thumbSize:o.thumbSize,thumbFormat:"jpg"},c=new qr(a);return r.setElement(c),this._messageOptionsMap.set(r.clientSequence,e),r}catch(e){throw e}}createCustomUploadVideoMessage(e){var t,s,n;try{const{store:o,message:i}=this._core;this._validateCustomUploadVideoMessage(e);const r=null===(t=o.get("login"))||void 0===t?void 0:t.userId,{videoUrl:a,videoUuid:c,duration:u,snapshotUrl:l,snapshotUuid:d,videoFileSize:h,videoType:g,snapshotWidth:p,snapshotHeight:_,snapshotFileSize:m,snapshotType:v="jpg"}=(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.file)||{},f=null===(n=i.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),I=new qr({videoFormat:g,videoSecond:u||0,videoSize:h,remoteVideoUrl:a,videoUrl:a,videoUUID:c,thumbUUID:d,thumbWidth:p||200,thumbHeight:_||200,thumbUrl:l,thumbSize:m,thumbFormat:v,isCustomUpload:!0});return f.setElement(I),this._messageOptionsMap.set(f.clientSequence,e),f}catch(e){throw e}}upload(e){return de(this,void 0,void 0,function*(){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=ar.addAuthToUrl(o);return t.updateVideoUrl(r),ar.isEmpty(i)||t.updateSnapshotInfo(i),e})}_validateBeforeUploadVideo(e){const{helper:{ChatError:t}}=this._core,s=Or(er)||104857600;if(e.videoFile.size>s)throw new t({code:kr});if(0===e.videoFile.size)throw new t({code:Ur});if(-1===$r.indexOf(e.videoFile.type))throw new t({code:Fr})}_validateCustomUploadVideoMessage(e){var t;const{utils:{isEmpty:s,isNumber:n}}=this._core,{videoUrl:o,videoUuid:i,duration:r,snapshotUrl:a,snapshotUuid:c}=(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.file)||{};if(s(o)||s(i)||!n(r)||s(a)||s(c))throw new Error("Invalid video message options: missing required fields (videoUrl, videoUuid, duration, snapshotUrl, snapshotUuid)")}_performVideoUpload(e,t,s){return de(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:er,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 dr.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,r.type=a.type),i){const e=ar.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(`${Qi} _processFile error:`,e),e}}_processMiniVideoFile(e){const{utils:{IN_UNI_NATIVE_APP:t},helper:{ChatError:s}}=this._core;if(qi(e))throw new s({message:"FileUnsupportedInMiniApp"});Array.isArray(e.tempFiles)&&(e=e.tempFiles[0]);let n=e.tempFilePath.slice(e.tempFilePath.lastIndexOf(".")+1).toLowerCase();return t&&(n=e.fileType||n),{url:e.tempFilePath,name:e.tempFilePath.slice(e.tempFilePath.lastIndexOf("/")+1),size:e.size||1,second:e.duration||0,type:n}}_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 de(this,void 0,void 0,function*(){const{ssoLog:t}=this._core;try{t.debug("_getSnapshotInfoByUrl",`${Qi} _getSnapshotInfoByUrl url:${e}`);const s={version:1,platform:ar.getPlatform(),cover_name:ji(Vi(99999)),snapshot_url:e},n=yield function(e,t){return de(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}})}(s,this._core),{download_url:o}=n||{};if(t.debug("_getSnapshotInfoByUrl",`${Qi} _getSnapshotInfoByUrl OK snapshotUrl:${o}`),ar.isEmpty(o))return{};const i=ar.addAuthToUrl(o),{width:r=0,height:a=0}=yield ar.probeImageWidthHeight(i);return{snapshotUrl:i,snapshotWidth:r,snapshotHeight:a}}catch(e){throw e}})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};class jr{constructor(e){this.uploadProgress=0,this.type=Yi,this[Vr]=!1,this[ir]=e.isCustomUpload||!1,this.content={downloadFlag:2,second:e.second,size:e.size,url:ar.generateURL(e.url,{needAddAuthToUrl:!this[ir]}),remoteAudioUrl:ar.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 jr({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(){if(this[ir])return{isValid:!0};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:ar.removeAuthToUrl(i),Download_Flag:o,Second:a,Size:r,UUID:n}}}}Vr=ir;const Hr=2108,Kr=2300,Wr=2301;var Yr=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}),n.registerExperimentalAPI("createAudioMessage",this,"createCustomUploadAudioMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Yi,jr),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createAudioMessage(e){var t,s,n;try{let{file:o}=e.payload;o=this._processAudioFile(e.payload.file),e.payload.file=o;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={second:Math.max(1,Math.round((o.duration||o.second)/1e3)),size:o.fileSize||o.size||1,url:o.tempFilePath||o.uri||o.url,uuid:ar.generateUUID(o)},c=new jr(a);return r.setElement(c),this._messageOptionsMap.set(r.clientSequence,e),r}catch(e){throw e}}createCustomUploadAudioMessage(e){var t,s,n;try{this._validateCustomUploadOptions(e);const{store:o,message:i}=this._core,r=null===(t=o.get("login"))||void 0===t?void 0:t.userId,{url:a,uuid:c,duration:u,fileSize:l}=(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.file)||{},d=null===(n=i.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),h=new jr({second:u,size:l||1,url:a,uuid:c,isCustomUpload:!0});return d.setElement(h),this._messageOptionsMap.set(d.clientSequence,e),d}catch(e){throw e}}upload(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;t.debug("upload",`${Qi} uploadAudio message:${s(e)}`);const{file:n}=this._messageOptionsMap.get(e.clientSequence).payload;this._validateBeforeUploadAudio(n);const o=e.getElements()[0],i=yield this._performAudioUpload(o,e,n),r=ar.addAuthToUrl(null==i?void 0:i.location);return o.updateAudioUrl(r),e})}_validateBeforeUploadAudio(e){const{helper:{ChatError:t},store:s}=this._core;if(!e)throw new t({code:Kr});const n=Or(tr)||20971520;if(e.size>n)throw new t({code:Wr});if(0===e.size)throw new t({code:Hr})}_performAudioUpload(e,t,s){return de(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:tr,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 dr.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}_validateCustomUploadOptions(e){var t;const{utils:{isEmpty:s}}=this._core,{url:n,uuid:o,duration:i}=(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.file)||{};if(s(n)||s(o)||s(i))throw new Error("Invalid audio message options")}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const zr={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}},Jr={createImageMessage:zr,createAudioMessage:zr,createVideoMessage:zr,createFileMessage:zr},Qr={createImageMessage:!0,createAudioMessage:!0,createVideoMessage:!0,createFileMessage:!0},Xr={[Wi]:Ar,[zi]:wr,[Ji]:Br,[Yi]:Yr};var Zr=new class{constructor(){this.name="RichMediaMessage"}install(e){this._core=e;const{constants:{OuterConstant:{MSG_AUDIO:t,MSG_FILE:s,MSG_IMAGE:n,MSG_VIDEO:o}}}=e;Cr.init(e),Ar.init(e),wr.init(e),Br.init(e),Yr.init(e),dr.init(e),ar.init(e),e.helper.registerApi({apiName:"sendMessage",context:this,matcher:e=>[t,s,n,o].includes(e[0].type)}),e.helper.registerValidateConfig({auth:Qr,params:Jr})}sendMessage(e,t){return de(this,void 0,void 0,function*(){var s,n,o;try{return this._isCustomUpload(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 e}})}_upload(e){return de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;if(t.debug("_upload",` uploadFile message:${s(e)}`),!0!==e._relayFlag)try{const s=Xr[e.type];s&&(yield s.upload(e),t.info("_upload",` type:${e.type}`))}catch(t){throw e.status=nr.FAIL,t instanceof Error&&(t.data={message:e}),this._core.message.messageDataHandler.storeConversationMessage(e),t}})}_isCustomUpload(e){var t,s;return!0===(null===(s=null===(t=e._elements)||void 0===t?void 0:t[0])||void 0===s?void 0:s[ir])}};const ea=new class{init(e){this.core=e}},ta=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=ea;return s(e)&&e.slice(0,3)===t.CONV_C2C},sa=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=ea;return s(e)&&e.slice(0,5)===t.CONV_GROUP},na=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=ea;return s(e)&&e===t.CONV_SYSTEM},oa=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:ea.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 ia(e){const{OuterConstant:t}=ea.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 ra(e){const{OuterConstant:t}=ea.core;let s;return e.startsWith(t.CONV_C2C)&&(s=e.replace(t.CONV_C2C,"")),"@TLS#ERROR"===s||"@TLS#NOT_FOUND"===s}function aa(e,t){const{helper:s}=ea.core,n=new s.ChatError({functionName:e,code:(null==t?void 0:t.errorCode)||(null==t?void 0:t.code),message:(null==t?void 0:t.errorInfo)||(null==t?void 0:t.message)});throw console.error(`${e} fail:`,n),n}class ca{constructor(e){this.conversationID=e.conversationID||"",this.unreadCount=e.unreadCount||0,this.type=e.type||"",this.lastMessage=oa(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(){var e;const{core:{OuterConstant:t,utils:{isUndefined:s}}}=ea;s(this.userProfile)&&this.type===t.CONV_C2C?this.userProfile={userID:this.conversationID.replace(t.CONV_C2C,"")}:this.type===t.CONV_GROUP&&(!this.subType&&(null===(e=this.groupProfile)||void 0===e?void 0:e.type)&&(this.subType=this.groupProfile.type),s(this.groupProfile)&&(this.groupProfile={groupID:this.conversationID.replace(t.CONV_GROUP,""),selfInfo:{},lastMessage:{},type:this.subType}))}updateUnreadCount(e){var t;const{core:{OuterConstant:s,utils:{isUndefined:n},store:o}}=ea,{nextUnreadCount:i,isFromGetConversations:r,isUnreadC2CMessage:a}=e;if(n(i))return;if(this.subType===s.GRP_AVCHATROOM)return void(this.unreadCount=0);if(r&&this.type===s.CONV_GROUP)return void(this.unreadCount=i);if(a&&this.type===s.CONV_C2C)return void(this.unreadCount=i);const c="1"===(null===(t=o.get("cloudConfig"))||void 0===t?void 0:t.support_unread_count_for_meeting);this.subType!==s.GRP_MEETING||c?this.unreadCount+=i:this.unreadCount=0}updateLastMessage(e){this.lastMessage=oa(e)}reduceUnreadCount(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}isLastMessageRevoked(e){const{core:{OuterConstant:t}}=ea,{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:{common:{updateGroupAtInfo:t}}}=ea;t(e,this.groupAtInfoList)}clearGroupAtInfoList(){this.groupAtInfoList.length=0}getProfileCompleted(){return this._isInfoCompleted}setProfileCompleted(){this._isInfoCompleted=!0}}var ua,la;!function(e){e[e.OFF=0]="OFF",e[e.ON=1]="ON"}(ua||(ua={})),function(e){e[e.ONLY_CONVERSATIONID=1]="ONLY_CONVERSATIONID"}(la||(la={}));var da;!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"}(da||(da={}));const ha=0,ga=1;var pa=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:{SYNC_CONVERSATION_LIST:r,MESSAGE_PUSH:a,NEW_MESSAGE:c,MESSAGE_DELETED:u,MESSAGE_REVOKED:l,MESSAGE_MODIFIED:d,CONVERSATION_UPDATED:h,LOGOUT:g,DESTROY:p},InnerEventSubType:{C2C_MESSAGE_PEER_READ:_}}=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),t.registerWorkflowStep(o.RECEIVE_GROUP_TIPS_NOTIFICATION,i.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this);const{InnerEventSubType:{GROUP_AT_TIPS:m}}=s;s.subscribeInnerEvent(r,this._handleConversationSynced,this),s.subscribeInnerEvent(c,this._handleNewMessage,this),s.subscribeInnerEvent(a,m,this._handleNewGroupAtTips,this),s.subscribeInnerEvent(u,this._handleMessageDeleted,this),s.subscribeInnerEvent(l,this._handleMessageRevoked,this),s.subscribeInnerEvent(d,this._handleMessageModified,this),s.subscribeInnerEvent(h,this._handleConversationUpdated,this),s.subscribeInnerEvent(a,_,this._handleMessageRead,this),s.subscribeInnerEvent(g,this._reset,this),s.subscribeInnerEvent(p,this._dispose,this),e.ssoLog.debug(`${this._name}.init`)}_handleConversationSynced(e){this.updateLocalConversationList({conversationUpdateFieldList:e.conversationUpdateFieldList||[],isFromGetConversations:!0,updateUnreadCount:!0}),this.emitConversationListUpdate()}_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){var t;for(let s=0;s<e.length;s++)if(12===e[s].Event){if(null===(t=e[s].GroupTips[0].MsgBody)||void 0===t?void 0:t.TopicId)continue;this._handleNewGroupAtTips(e[s])}}_handleGroupListSyncFinished(e){var t;const{constants:{WORKFLOW_STEP:s}}=this._core,n=e.result[s.GROUP_LIST_SYNC]||[],{OuterConstant:{CONV_GROUP:o}}=this._core;let i=!1;for(let e=0;e<n.length;e++){const s=n[e],r=`${o}${s.groupID}`;if(!this.hasLocalConversation(r))continue;const a=this.getLocalConversation(r);a.groupProfile=JSON.parse(JSON.stringify(s)),a.lastMessage.lastSequence<s.nextMessageSeq&&(a.lastMessage.lastSequence=s.nextMessageSeq-1),a.subType||(a.subType=s.type),(null===(t=s._groupAtInfoList)||void 0===t?void 0:t.length)>0&&this._handleNewGroupAtTips({GroupTips:s._groupAtInfoList}),i=!0}i&&this.emitConversationListUpdate()}_handleNewMessage(e){const{conversationUpdateFieldList:t=[],isInstantMessage:s=!0,isUnreadC2CMessage:n=!1,updateUnreadCount:o=!0}=e.result||{};if(0===t.length)return;const{common:{isTopic:i}}=this._core;if(i(t[0].conversationID))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,MsgRandom:n,ClientSeq:o}=e;let i={};t?i=this._convertGroupAtTipsKey(t):s?i=Object.assign({},this._convertGroupAtTipsKey(s)):e.groupAtType&&(i=Object.assign({},e)),i.__random=n,i.__sequence=o,this._groupAtTipsList.push(i)}),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(e){this.emitConversationListUpdate(null==e?void 0:e.needSort)}updateLocalConversationList(e){const{isFromGetConversations:t}=e,{newConversationList:s}=this._getTmpConversationListMapping(e);this._sortConversationList(),t||this._updateNewConversationProfile(s),this._core.ssoLog.debug("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 ca(s[e]),{conversationID:u,type:l}=c;if(!ra(u))if(this.hasLocalConversation(u)){const a=this.getLocalConversation(u);if(n){this.setLocalConversation(u,c),l===t.CONV_C2C?c.unreadCount=(null==a?void 0:a.unreadCount)||0:l===t.CONV_GROUP&&(c.groupProfile=JSON.parse(JSON.stringify(null==a?void 0:a.groupProfile)));continue}this._mergeConversationInfo({conversationID:u,tmpConversation:c,lastMessage:s[e].lastMessage,isFromGetConversations:n,isInstantMessage:o}),this._patchLastMessage({conversationID:u,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(u,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:u},common:{deepMerge:l}}=this._core;c(i)&&n&&null===(null==r?void 0:r.lastMessage.payload)&&(r.lastMessage.payload=n.payload),u(null==r?void 0:r.lastMessage.revoker)||(r.lastMessage.revoker=null);l(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){return de(this,void 0,void 0,function*(){const{OuterConstant:{CONV_GROUP:t},appStore:{groupStore:s},utils:{safeStringify:n},ssoLog:o,apiMap:{getGroupProfile:i}}=this._core;let r=!1;try{yield Promise.all(e.map(e=>de(this,void 0,void 0,function*(){const n=s.getGroup(e),o=this.getLocalConversation(`${t}${e}`);n&&o&&(o.groupProfile=n,r=!0),o&&!o.getProfileCompleted()&&"function"==typeof i&&(yield i({groupID:e}))}))),r&&this.emitConversationListUpdate()}catch(e){o.debug("_updateGroupConversation",n(e))}})}_handleMessageRead(e){const{OuterConstant:{CONV_C2C:t}}=this._core,{C2cNotifyMsgArray:s=[]}=e||{};s.forEach(e=>{const{To_Account:s,UinPairReadArray:n=[]}=(null==e?void 0:e.C2cReadedReceipt)||{};null==n||n.forEach(e=>{const{LastReadTime:n}=e,o=`${t}${s}`;this._updateConversationReadInfo({conversationID:o,peerReadTime:n}),this._updateMessageListPeerRead({conversationID:o,peerReadTime:n})})})}_updateConversationReadInfo(e){const{appStore:t,utils:{isEmpty:s},common:{getCurrentUserID:n}}=this._core,{conversationID:o,peerReadTime:i}=e,r=t.conversationStore.getConversationMap();if(r.has(o)){const e=r.get(o);e.peerReadTime=i;const a=null==e?void 0:e.lastMessage;s(a)||a.fromAccount===n()&&a.lastTime<=i&&!a.isPeerRead&&(a.isPeerRead=!0,t.conversationStore.updateConversation(o,{lastMessage:a}))}}_updateMessageListPeerRead(e){const{notificationCenter:t,OuterEvent:s,message:n}=this._core,{conversationID:o,peerReadTime:i}=e,r=n.messageDataHandler.getLocalMessageList(o),a=n.messageDataHandler.getSparseMessageList(o),c=[];r.forEach(e=>{e.time<=i&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,c.push(e))}),a.forEach(e=>{e.time<=i&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,c.push(e))}),t.emitOuterEvent(s.MESSAGE_READ_BY_PEER,{name:s.MESSAGE_READ_BY_PEER,data:c})}_isConversationNeedShow(e){var t,s;const{OuterConstant:{CONV_GROUP:n,GRP_ROOM:o,GRP_LIVE:i},utils:{isUndefined:r}}=this._core,a=this.getLocalConversation(e);if(r(a))return!0;const c=a.type===n&&(null===(t=a.groupProfile)||void 0===t?void 0:t.type)===o,u=a.type===n&&(null===(s=a.groupProfile)||void 0===s?void 0:s.type)===i;return!(c||u)}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){var t,s;e&&this._sortConversationList();const{OuterEvent:{CONVERSATION_LIST_UPDATED:n},conversation:o}=this._core,i=this.getLocalConversationList();this._emitEvent({name:n,data:i,isSyncCompleted:null===(s=null===(t=null==o?void 0:o.syncConversationHandler)||void 0===t?void 0:t.isSyncCompleted)||void 0===s?void 0:s.call(t)}),this._emitTotalUnreadCountUpdate()}_emitTotalUnreadCountUpdate(){var e;const t=this.getTotalUnreadMessageCount();this._totalUnreadCount!==t&&(this._core.ssoLog.debug("_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,utils:{isEmpty:t}}=this._core,s=this.getLocalConversationList();let n=0;return s.forEach(s=>{s.type!==e.CONV_SYSTEM&&(t(s.messageRemindType)||s.messageRemindType===e.MSG_REMIND_ACPT_AND_NOTE)&&(n+=s.unreadCount)}),n}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,SYNC_CONVERSATION_LIST:c}}=this._core,{InnerEventSubType:{GROUP_AT_TIPS:u}}=e;e.unSubscribeInnerEvent(t,this._handleNewMessage,this),e.unSubscribeInnerEvent(t,u,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(c,this._handleConversationSynced,this),e.unSubscribeInnerEvent(r,this._reset,this),e.unSubscribeInnerEvent(a,this._dispose,this)}};var _a=new class{constructor(){this._name="GetConversationList"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getConversationList",context:this})}getConversationList(e){return de(this,void 0,void 0,function*(){return{code:0,data:{conversationList:this._getConversationList(e),isSyncCompleted:this._core.conversation.syncConversationHandler.isSyncCompleted()}}})}_getConversationList(e){const{utils:{isUndefined:t,isArray:s,isPlainObject:n}}=this._core;if(t(e))return pa.getLocalConversationList();if(s(e)){if(0===e.length)return[];return pa.getLocalConversationList().filter(t=>e.includes(t.conversationID))}if(n(e)){const{type:t,markType:s,groupName:n,hasUnreadCount:o,hasGroupAtInfo:i}=e;return pa.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}};var ma=new class{constructor(){this._name="GetC2CMessageRemindType"}init(e){this._core=e}get(e){return de(this,void 0,void 0,function*(){try{const{common:t}=this._core,s=yield function(e,t){return de(this,void 0,void 0,function*(){const{toAccount:s,userIDList:n}=e,o={To_Account:s,Peer_Account:n};return t.common.buildAndSendPacket({servcmd:"openim.get_c2c_peer_mute_notifications",data:o})})}({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=ia(s);pa.patchMessageRemindType([n],o)})}catch(e){console.error(`${this._name}.get fail:`,e)}})}};var va=new class{constructor(){this._name="GetGroupMessageRemindType"}init(e){this._core=e}get(e){return de(this,void 0,void 0,function*(){if(0!==e.length)try{const t=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupIDList:s,responseFilter:n}=e,o={GroupIdList:s,ResponseFilter:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:o})})}({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}`;pa.patchMessageRemindType([i],o)})}catch(e){console.error(`${this._name}.get fail:`,e)}})}};var fa=new class{constructor(){this._name="GetConversationProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getConversationProfile",context:this})}getConversationProfile(e){return de(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=pa.getLocalConversation(e);if(na(e))return r.data.conversation=a,r;let c=!1;const u=ta(e)?t:s;if(i(a)&&(c=!0,a=new ca({conversationID:e,type:u})),console.log(`${this._name}.getConversationProfile conversationID:${e} isNewConversation:${c}`),r.data.conversation=a,null==a?void 0:a.getProfileCompleted())return r;if(u===t){const s=e.replace(t,"");yield this._handleC2CConversation(a,s),c&&(yield ma.get([s]))}if(u===s){const t=e.replace(s,"");if(!o.getGroup(t))return r;yield this._handleGroupConversation(a,t),c&&a.groupProfile.type!==n&&(yield va.get([t]))}return r})}_handleC2CConversation(e,t){return de(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:u}=e,l=yield null===(s=o.userProfile)||void 0===s?void 0:s.getUserProfile({userIDList:[t]});if(0===(null==l?void 0:l.data.length))throw new i.ChatError({code:da.USER_OR_GRP_NOT_FOUND});e.userProfile=null==l?void 0:l.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=pa.hasLocalConversation(u);console.log(`${this._name}._handleC2CConversation conversationID:${u} hasLocalConversation: ${h}`),h?a.updateConversation(u,e):pa.appendToPinnedConversation(e)})}_handleGroupConversation(e,t){return de(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=pa.hasLocalConversation(o);console.log(`${this._name}._handleGroupConversation conversationID:${o} hasLocalConversation: ${r}`),r?n.updateConversation(o,e):pa.appendToPinnedConversation(e)})}};var Ia=new class{init(e){const{helper:t}=e;t.registerApi({apiName:"getTotalUnreadMessageCount",context:this})}getTotalUnreadMessageCount(){return pa.getTotalUnreadMessageCount()}};var Ea=new class{constructor(){this._serverGroupConversationLastReadSeqMap=new Map,this._name="SetMessageRead"}init(e){this._core=e;const{helper:t,common:{isTopic:s},notificationCenter:n,InnerEvent:{MESSAGE_PUSH:o},InnerEventSubType:{ALL_MESSAGE_READ:i}}=e;t.registerApi({apiName:"setMessageRead",context:this,matcher:e=>!s(e[0].conversationID)}),t.registerApi({apiName:"setAllMessageRead",context:this}),n.subscribeInnerEvent(o,i,this._handleAllMessageRead,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}`),pa.markMessageAsRead({conversationID:o,lastReadTime:n}),pa.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}`),pa.markMessageAsRead({conversationID:o,lastReadSequence:n}),pa.updateUnreadCount(o),this._clearGroupAtInfoList(o)})})}setMessageRead(e){return de(this,void 0,void 0,function*(){var t,s;const{OuterConstant:n}=this._core,{conversationID:o}=e,i={code:0,data:{}},r=pa.getLocalConversation(o);let a=`${this._name}.setMessageRead conversationID:${o} unreadCount:${(null==r?void 0:r.unreadCount)||0}`;if(i.successLog={message:a},!r)return i;const c=!(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&&c&&this._deleteGroupAtTips(o),0===r.unreadCount)return i;const{helper:{ChatError:u}}=this._core;try{if(r.type===n.CONV_C2C){const e=this._getLocalMessageMaxTime(r);yield this._setC2CMessageRead(o,e),a+=`lastMessageTime:${e}`}if(r.type===n.CONV_GROUP){const e=this._getLocalMessageMaxSequence(r);yield this._setGroupMessageRead(o,e),a+=`lastMessageSequence:${e}`}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new u({functionName:"setMessageRead",code:t,message:s,moreMessage:a})}return r.type===n.CONV_SYSTEM&&(r.unreadCount=0),pa.emitConversationListUpdate(),Object.assign(Object.assign({},i),{successLog:{message:a}})})}setAllMessageRead(){return de(this,arguments,void 0,function*(e={}){const{OuterConstant:{READ_ALL_MSG:t},utils:{safeStringify:s}}=this._core;let n=`scope:${e.scope}`;e.scope||(e.scope=t);const{scope:o}=e,i=this._generateSetAllMessageReadRequestData(o);if(i.allC2CMessageReadStatus===ha&&0===i.groupMessageReadInfoList.length)return{code:0};try{const e=yield function(e){return de(this,void 0,void 0,function*(){const{allC2CMessageReadStatus:t,groupMessageReadInfoList:s}=e,n={C2CReadAllMsg:t,GroupReadInfo:s};return ea.core.common.buildAndSendPacket({servcmd:"openim.read_all_unread_msg",data:n})})}(i);if(e){const{GroupReadInfoArray:t,C2CReadAllMsg:o}=e,i=this._parseGroupReadInfo(t);this._updateAllConversationReadStatus({allC2CMessageReadStatus:o})>0&&pa.emitConversationListUpdate(),n+=`failureGroupInfoList:${s(i)}`}return{code:0,successLog:{message:n}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"setAllMessageRead",code:t,moreMessage:n})}})}_handleAllMessageRead(e){const{GroupReadInfoArray:t,C2CReadAllMsg:s}=e;this._parseGroupReadInfo(t);this._updateAllConversationReadStatus({allC2CMessageReadStatus:s})>0&&pa.emitConversationListUpdate()}_updateAllConversationReadStatus(e){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s},appStore:n}=this._core,o=n.conversationStore.getConversationMap(),{allC2CMessageReadStatus:i}=e;let r=0;for(const[e,n]of o)if(n.unreadCount>=1){if(i===ga&&n.type===t){const t=this._getLocalMessageMaxTime(n);pa.markMessageAsRead({conversationID:e,lastReadTime:t})}else if(n.type===s){const t=e.replace(s,"");if(this._serverGroupConversationLastReadSeqMap.has(t)){const s=this._serverGroupConversationLastReadSeqMap.get(t);pa.markMessageAsRead({conversationID:e,lastReadSequence:s})}}pa.updateUnreadCount(e,!1)&&(r+=1)}return r}_generateSetAllMessageReadRequestData(e){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s,READ_ALL_C2C_MSG:n},appStore:o}=this._core,i={allC2CMessageReadStatus:ha,groupMessageReadInfoList:[]},r=o.conversationStore.getConversationMap();for(const[,o]of r){const{type:r,unreadCount:a}=o;if(this._shouldSetAllMessageRead({scope:e,type:r,unreadCount:a}))if(r===t&&i.allC2CMessageReadStatus===ha){if(i.allC2CMessageReadStatus=ga,e===n)break}else if(r===s){const e=this._getLocalMessageMaxSequence(o),{groupID:t}=o.groupProfile;i.groupMessageReadInfoList.push({GroupId:t,MsgSeq:e})}}return i}_parseGroupReadInfo(e){const{utils:{isUndefined:t}}=this._core,s=[];return null==e||e.forEach(e=>{const{GroupId:n,MsgSeq:o,RetCode:i,LastReadMsgSeq:r}=e;t(i)?this._serverGroupConversationLastReadSeqMap.set(n,r):(this._serverGroupConversationLastReadSeqMap.set(n,o),0!==i&&s.push(`${n}-${o}-${i}`))}),s}_deleteGroupAtTips(e){return de(this,void 0,void 0,function*(){console.log(`${this._name}._deleteGroupAtTips conversationID:${e}`);const t=pa.getLocalConversation(e);if(!t)return;const s=(null==t?void 0:t.groupAtInfoList)||[];if(0!==s.length)try{const{common:{getCurrentUserID:t,isCommunity:n},OuterConstant:{CONV_GROUP:o,CONV_AT_ALL:i}}=this._core;let r=[...s];if(n({groupID:e.replace(o,"")})&&(r=s.filter(e=>!e.atTypeArray.includes(i)),0===r.length))return void this._clearGroupAtInfoList(e,!1);const a=r.map(e=>({From_Account:e.from,To_Account:t(),MsgSeq:e.__sequence,MsgRandom:e.__random,GroupId:e.groupID}));yield function(e,t){return de(this,void 0,void 0,function*(){const{messageListToDelete:s}=e,n={DelMsgList:s};return t.common.buildAndSendPacket({servcmd:"openim.deletemsg",data:n})})}({messageListToDelete:a},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,t=!0){const s=pa.getLocalConversation(e);s&&(s.groupAtInfoList.length>0&&(s.clearGroupAtInfoList(),console.log(`${this._name}._clearGroupAtInfoList conversationID:${e} needEmitConversationUpdate:${t}`)),t&&pa.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 de(this,void 0,void 0,function*(){try{yield function(e,t){return de(this,void 0,void 0,function*(){return t.common.buildAndSendPacket({servcmd:"openim.msgreaded",data:e})})}({C2CMsgReaded:{Cookie:"",C2CMsgReadedItem:[{To_Account:e.replace("C2C",""),LastedMsgTime:t,Receipt:1}]}},this._core),console.log(`${this._name}._setC2CMessageRead ok, lastReadTime:${t}`),pa.markMessageAsRead({conversationID:e,lastReadTime:t}),pa.updateUnreadCount(e)}catch(e){throw console.warn(`${this._name}._setC2CMessageRead fail:`,e),e}})}_setGroupMessageRead(e,t){return de(this,void 0,void 0,function*(){try{yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,lastMessageSequence:n}=e,o={GroupId:s,MsgReadedSeq:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.msg_read_report",data:o})})}({groupID:e.replace("GROUP",""),lastMessageSequence:t},this._core),console.log(`${this._name}._setGroupMessageRead ok, lastReadSequence:${t}`),pa.markMessageAsRead({conversationID:e,lastReadSequence:t}),pa.updateUnreadCount(e)}catch(e){throw console.warn(`${this._name}._setGroupMessageRead fail:`,e),e}})}_shouldSetAllMessageRead(e){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s,READ_ALL_MSG:n,READ_ALL_C2C_MSG:o,READ_ALL_GROUP_MSG:i}}=this._core,{type:r,scope:a,unreadCount:c}=e;return!(c<=0)&&(!(r!==t||![n,o].includes(a))||!(r!==s||![n,i].includes(a)))}};var Ca=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=pa.getLocalConversation(`${n.CONV_C2C}${i}`):2===s&&(a=pa.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&&pa.emitConversationListUpdate(!0)}pinConversation(e){return de(this,void 0,void 0,function*(){const{OuterConstant:t,common:s,helper:{ChatError:n}}=this._core,{conversationID:o,isPinned:i}=e,r={code:0,data:{conversationID:o}},a=pa.getLocalConversation(o);if(a&&a.isPinned===i)return r;if(na(o))return a&&(a.isPinned=i),pa.emitConversationListUpdate(!0),r;const c=`conversationID:${o} isPinned:${i}`;try{let e=null;ta(o)?e={Type:1,To_Account:o.replace(t.CONV_C2C,"")}:sa(o)&&(e={Type:2,GroupId:o.replace(t.CONV_GROUP,"")});const n=yield function(e,t){return de(this,void 0,void 0,function*(){const{fromAccount:s,operationType:n,itemList:o}=e,i={From_Account:s,OperationType:n,RecentContactItem:o};return t.common.buildAndSendPacket({servcmd:"recentcontact.top",data:i})})}({fromAccount:s.getCurrentUserID(),operationType:!0===i?1:2,itemList:[e]},this._core);if(n){if(a)a.isPinned!==i&&(a.isPinned=i);else{const e=new ca({conversationID:o,type:ta(o)?t.CONV_C2C:t.CONV_GROUP,isPinned:i});pa.setLocalConversation(o,e)}pa.emitConversationListUpdate(!0)}return Object.assign(Object.assign({},r),{successLog:{message:c}})}catch(e){const{errorCode:t,errorInfo:s}=e;throw new n({functionName:"pinConversation",code:t,message:s,moreMessage:c})}})}};var Sa=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 de(this,void 0,void 0,function*(){const{utils:{isString:t}}=this._core;if(t(e))return void(yield this._deleteConversation({conversationIDList:[e],flag:la.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 de(this,void 0,void 0,function*(){const{conversationIDList:t,clearHistoryMessage:s=!0,flag:n=0}=e,{helper:{ChatError:o}}=this._core,i=`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:da.CONV_NOT_FOUND});return{code:0,data:n===la.ONLY_CONVERSATIONID?{conversationID:o[0]}:{conversationIDList:o},successLog:{message:i}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new o({code:t,message:s,moreMessage:i})}})}_deleteConversationFromLocal(e){const{OuterConstant:t}=this._core;return e.filter(e=>{var s;if(!pa.hasLocalConversation(e))return!1;const n=null===(s=pa.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 de(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(pa.hasLocalConversation(e)){const n=(null===(t=pa.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 de(this,void 0,void 0,function*(){const{fromAccount:s,conversationList:n,clearHistoryMessage:o}=e,i={From_Account:s,ContactItem:n,ClearRamble:o};return t.common.buildAndSendPacket({servcmd:"recentcontact.batch_delete",data:i})})}(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=>{pa.hasLocalConversation(e)&&(this._deleteLocalConversation(e,!1),t=!0)}),console.log(`${this._name}._deleteLocalConversationList isUpdate:${t}`),t&&pa.emitConversationListUpdate()}_deleteLocalConversation(e,t=!0){const s=pa.hasLocalConversation(e);console.log(`${this._name}._deleteLocalConversation conversationID:${e} has:${s}`),s&&(pa.deleteLocalConversation(e),this._deleteConversationLocalMessage(e),t&&pa.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),this._core.message.messageHistory.completedHistoryConversations.delete(e)}};var Ma=new class{constructor(){this._name="SetConversationDraft"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setConversationDraft",context:this})}setConversationDraft(e){return de(this,void 0,void 0,function*(){const{conversationID:t,draftText:s}=e;if(console.log(`${this._name} conversationID:${t} draftText:${s}`),!pa.hasLocalConversation(t))throw new this._core.helper.ChatError({code:da.CONV_NOT_FOUND});const n=pa.getLocalConversation(t);return null==n||n.setDraftText(s),pa.emitConversationListUpdate(),{code:0,data:{conversation:n}}})}};var ya=new class{constructor(){this._name="SetC2CMessageRemindType"}init(e){this._core=e}set(e,t){return de(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}=ea.core.OuterConstant;return{[e]:0,[t]:1,[s]:2}}()[t],n=yield function(e,t){return de(this,void 0,void 0,function*(){const{userIDList:s,receiveMessageOption:n}=e,o={Peer_Account:s,Mute_Notifications:n};return t.common.buildAndSendPacket({servcmd:"openim.set_c2c_peer_mute_notifications",data:o})})}({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=[],a=[],{OuterConstant:c}=this._core;return e.forEach(e=>{a.push(`${c.CONV_C2C}${e}`),r.push({userID:e})}),pa.patchMessageRemindType(a,t),{code:0,data:{successUserIDList:r,failureUserIDList:i}}})}};var Oa=new class{constructor(){this._name="SetGroupMessageRemindType"}init(e){this._core=e}set(e,t){return de(this,void 0,void 0,function*(){const{common:{getCurrentUserID:s,isTopic:n},OuterConstant:o}=this._core;if(yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,userID:n,receiveMessageOption:o}=e,i={GroupId:s,Member_Account:n,MsgFlag:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:i})})}({groupID:e,userID:s(),receiveMessageOption:t},this._core),!n(e)){const s=`${o.CONV_GROUP}${e}`;pa.patchMessageRemindType([s],t)}return{code:0,data:{groupID:e,messageRemindType:t}}})}};var Aa=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,ssoLog:n}=this._core;e.forEach(e=>{const{MuteNotificationsSync:o}=e;if(!t(o)){const{To_Account:e,MuteNotifications:t}=o,i=e.map(e=>`${s.CONV_C2C}${e}`),r=ia(t);n.debug(`${this._name}.handleC2CMessageRemindTypeSync conversationIDList:${i} messageRemindType:${r}`),pa.patchMessageRemindType(i,r)}})}setMessageRemindType(e){return de(this,void 0,void 0,function*(){const t="setMessageRemindType",{groupID:s,userIDList:n,messageRemindType:o}=e,{helper:i,utils:{isUndefined:r},ssoLog:a}=this._core;try{if(!r(s)){a.debug(`${this._name}.${t} groupID:${s} messageRemindType:${o}`);return yield Oa.set(s,o)}if(!r(n)){a.debug(`${this._name}.${t} userIDList:${n} messageRemindType:${o}`);return yield ya.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 Ta=new class{init(e){e.ssoLog.debug("ConversationAction.init"),this._core=e,_a.init(e),fa.init(e),Ia.init(e),Ea.init(e),Ca.init(e),Sa.init(e),Ma.init(e),Aa.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)}_onConversationModified(e){const{constants:{ConvModifyPushType:t}}=this._core,{RecentContactMod:s=[]}=e;s.forEach(e=>{const{PushType:s}=e;if(s===t.CONV_DELETED){const{RecentContactList:t}=e.RecentContactDeleteItem;Sa.handleConversationDeleted(t)}if(s===t.CONV_PINED){const{RecentContactList:t}=e.RecentContactTopItem;Ca.handleConversationPinned(t,!0)}if(s===t.CONV_UNPINED){const{RecentContactList:t}=e.RecentContactTopItem;Ca.handleConversationPinned(t,!1)}})}_onC2CMessageReadSync(e){const{C2cNotifyMsgArray:t=[]}=e;Ea.handleC2CMessageReadSync(t)}_onC2CMessageRemindTypeSync(e){const{C2cNotifyMsgArray:t=[]}=e;Aa.handleC2CMessageRemindTypeSync(t)}_onGroupMessageReadSync(e){const{GroupTips:t=[]}=e;Ea.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 Ra=new class{init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setAllReceiveMessageOpt",context:this})}setAllReceiveMessageOpt(e){return de(this,void 0,void 0,function*(){try{const{OuterConstant:{MSG_REMIND_ACPT_NOT_NOTE:t}}=this._core,{messageRemindType:s=t,isRepeated:n=!0}=e,{startTime:o=0,endTime:i=0}=this._calcStartAndEndTime(e),r=yield function(e){return de(this,void 0,void 0,function*(){const{common:t}=ea.core,{startTime:s,endTime:n,isRepeated:o,messageRemindType:i}=e,r={StartTime:s,EndTime:n,IsRepeated:o,Level:i};return t.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_set_do_not_disturb",data:r})})}({messageRemindType:this._getType(s),startTime:o,endTime:i,isRepeated:n?ua.ON:ua.OFF});return{code:0,data:{errorCode:r.ErrorCode,errorInfo:r.ErrorInfo}}}catch(e){aa("setAllReceiveMessageOpt",e)}})}_calcStartAndEndTime(e){const{startHour:t=0,startMinute:s=0,startSecond:n=0,duration:o=0,isRepeated:i=!0}=e,r=new Date,a=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,s,n),c=Math.round(a.getTime()/1e3);let u=c+o;return i&&o>=86400&&(u=c+86400),{startTime:c,endTime:u}}_getType(e){const{OuterConstant:t}=this._core;return{[t.MSG_REMIND_ACPT_AND_NOTE]:0,[t.MSG_REMIND_DISCARD]:1,[t.MSG_REMIND_ACPT_NOT_NOTE]:2}[e]}};var Da=new class{init(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:n}=e;t.registerApi({apiName:"getAllReceiveMessageOpt",context:this}),s.subscribeInnerEvent(n.MESSAGE_PUSH,s.InnerEventSubType.ALL_RECEIVE_MESSAGE_OPTION,this.onAllReceiveMsgOptionNotify,this)}onAllReceiveMsgOptionNotify(e){const t=this._handleResult(e),{notificationCenter:s,OuterEvent:{ALL_RECEIVE_MESSAGE_OPT_UPDATED:n}}=this._core;s.emitOuterEvent(n,{name:n,data:t})}getAllReceiveMessageOpt(){return de(this,void 0,void 0,function*(){try{const e=yield function(){return de(this,void 0,void 0,function*(){const{common:e}=ea.core,t={To_Account:e.getCurrentUserID()};return e.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_get_do_not_disturb",data:t})})}();return{code:0,data:this._handleResult(e)}}catch(e){aa("getAllReceiveMessageOpt",e)}})}_handleResult(e){const{OuterConstant:t}=this._core,{MSG_REMIND_ACPT_AND_NOTE:s,MSG_REMIND_DISCARD:n,MSG_REMIND_ACPT_NOT_NOTE:o}=t,i={0:s,1:n,2:o},{Level:r,StartTime:a,EndTime:c,IsRepeated:u}=e;return{messageRemindType:i[r]||s,startTime:a,endTime:c,isRepeated:u===ua.ON}}};var ba=new class{init(e){e.ssoLog.debug("ReceiveMessageOptions.init"),this._core=e,ya.init(e),Oa.init(e),ma.init(e),va.init(e),Ra.init(e),Da.init(e)}};const Na=e=>!ta(e)&&!sa(e)&&!na(e),La={getConversationProfile:[{key:"conversationID",required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!Na(e)||"conversationID is invalid."}],setMessageRead:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!Na(e)||"conversationID is invalid."}},pinConversation:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!Na(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}}}=ea;if(!n(e)&&!s(e))return"options is String or Object.";if(n(e)&&Na(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(Na(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=>!(!ta(e)&&!sa(e))||"conversationID is invalid."},draftText:{required:!0,rules:["string"],allowEmpty:!0}},setAllReceiveMessageOpt:{messageRemindType:{required:!1,rules:["string"],allowEmpty:!0},startHour:{required:!1,rules:["number"],allowEmpty:!0},startMinute:{required:!1,rules:["number"],allowEmpty:!0},startSecond:{required:!1,rules:["number"],allowEmpty:!0},duration:{required:!1,rules:["number"],allowEmpty:!0},isRepeated:{required:!1,rules:["boolean"],allowEmpty:!0}}},Pa={getConversationList:!0,getConversationProfile:!0,getTotalUnreadCount:!0,setMessageRead:!0,pinConversation:!0,deleteConversation:!0,setConversationDraft:!0,setMessageRemindType:!0,getAllReceiveMessageOpt:!0,setAllReceiveMessageOpt:!0};var Ga=new class{constructor(){this.name="Conversation"}install(e){ea.init(e),Ta.init(e),ba.init(e),pa.init(e),e.helper.registerValidateConfig({auth:Pa,params:La})}};const wa=new class{init(e){this.core=e}},Ua="AVChatRoom",ka="AV_HISTORY_MSG",Fa="GRP_COUNTER",$a="Set",xa="Increase",qa="Decrease",Va=0,Ba=1,ja=2,Ha=["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption","LastRecallTime"],Ka=["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"],Wa=["Role","JoinTime","MsgFlag","MsgSeq"],Ya=["Role","JoinTime","MsgSeq","MsgFlag","NameCard"],za=0,Ja=1,Qa="notStart",Xa="resolved",Za="rejected",ec=10018,tc=11e3,sc=2,nc=["Owner","Admin","Member"],oc=["Role","JoinTime","NameCard","ShutUpUntil","OnlineStatus"],ic=0,rc=1,ac=2,cc=4,uc=1,lc=2,dc=3,hc=4,gc=5,pc=1,_c=0,mc=4,vc=6,fc=400,Ic=300,Ec={from:!0,groupID:!0,groupName:!0,to:!0},Cc={from:!0,groupID:!0,groupName:!0,to:!0,type:!0},Sc=2,Mc=4,yc=5,Oc=7,Ac=8,Tc=15,Rc=20,Dc=21,bc=2600,Nc=2602,Lc=2603,Pc=2620,Gc=2621,wc=2623,Uc=2660,kc=2661,Fc=2681,$c=2683,xc=2684,qc=2685,Vc=2687,Bc=3122,jc=10018,Hc=e=>e===wa.core.OuterConstant.GRP_PUBLIC,Kc=e=>e===wa.core.OuterConstant.GRP_AVCHATROOM,Wc=(e,t)=>{const{isArray:s}=wa.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},Yc=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},zc=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};function Jc(e,t){const{helper:s}=wa.core;if(!s.checkBusinessCapabilityBits(t))throw new s.ChatError({functionName:e,code:Bc,replacement1:e})}function Qc(e,t){const{helper:s}=wa.core,n=new s.ChatError({functionName:e,code:(null==t?void 0:t.errorCode)||(null==t?void 0:t.code),message:(null==t?void 0:t.errorInfo)||(null==t?void 0:t.message)});throw console.error(`${e} fail:`,n),n}const Xc=["groupID","name","avatar","type","introduction","notification","ownerID","selfInfo","createTime","infoSequence","lastInfoTime","lastMessage","nextMessageSeq","memberCount","maxMemberCount","memberList","joinOption","groupCustomField","muteAllMembers","isSupportTopic","inviteOption","_lastRevokedTime","_groupAtInfoList"];class Zc{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._groupAtInfoList=[],this._initGroup(e)}_initGroup(e){const{utils:{isString:t}}=wa.core;for(const s in e)Xc.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}}=wa.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&&Wc(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}}=wa.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 eu=new class{constructor(){this._name="GroupDataHandler"}init(e){this._core=e;const{appStore:{groupStore:t}}=e;this._groupMap=t.getGroupMap()}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 Zc(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(){const{OuterConstant:{GRP_ROOM:e,GRP_LIVE:t}}=this._core;return[...this._groupMap.values()].filter(s=>{const{type:n}=s;return n!==e&&n!==t})}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}`,o=t.getConversation(n);if(o){const s=this.getLocalGroup(e);o.setProfileCompleted(),t.updateConversation(n,{groupProfile:s})}}reset(){this.clearLocalGroup()}};function tu(e,t){return de(this,void 0,void 0,function*(){const{type:s,limit:n,offset:o,supportTopic:i=0,memberAccount:r,responseFilter:a}=e,c={Type:s,Limit:n,Offset:o,Member_Account:r,ResponseFilter:a,SupportTopic:i,NeedAppDefineData:1};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_joined_group_list",data:c})})}const su=function(e,t){return{code:0,data:e||{},successLog:t}};var nu=new class{constructor(){this._name="GetGroupList",this._pagingStatus=Qa,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 de(this,arguments,void 0,function*(e=!1){if(e){const e=[];return yield this._pagingGetJoinedCommunityList({limit:this.PAGING_GRP_COUNT_LIMIT,offset:0,groupList:e}),eu.updateLocalGroup(e),eu.getLocalGroupList()}if(this._core.ssoLog.debug("getGroupList",`${this._name}.getGroupList pagingStatus:${this._pagingStatus}`),this._pagingStatus===Za||this._pagingStatus===Qa)return this._syncGroupList().then(()=>{const e=eu.getLocalGroupList();return su({groupList:e,isSyncCompleted:this._isSyncCompleted()})}).catch(e=>{throw e});const t=eu.getLocalGroupList();return su({groupList:t,isSyncCompleted:this._isSyncCompleted()},{message:`return group count:${t.length}`})})}_syncGroupList(){return de(this,void 0,void 0,function*(){this._pagingStatus===Qa&&eu.clearLocalGroup();const e=this.PAGING_GRP_COUNT_LIMIT,t=[];try{yield this._pagingGetGroupList({limit:e,offset:0,groupList:t}),this._pagingStatus=Xa,this._groupListTreeShaking(t),eu.updateLocalGroup(t);const s=eu.getLocalGroupList();return this._core.ssoLog.debug("_syncGroupList",`${this._name}._syncGroupList ok, count:${s.length}`),eu.emitGroupListUpdate(),s}catch(e){throw this._pagingStatus=Za,e}})}_pagingGetGroupList(e){return de(this,void 0,void 0,function*(){const{ssoLog:t}=this._core,{isCommunityRelay:s=!1,groupList:n}=e;let o,{limit:i,offset:r}=e;const a=[...Ha];s&&(o=this._core.OuterConstant.GRP_COMMUNITY,a.push("AtInfoList"));try{const e=yield tu({type:o,limit:i,offset:r,memberAccount:this._core.store.get("login").userId,responseFilter:{GroupBaseInfoFilter:a,SelfInfoFilter:[...Wa]}},this._core),{GroupIdList:c=[],TotalCount:u=0}=e||{},l=this._convertGroupKey(c);n.push(...l);const d=r+i,h=!(u>d),g=`offset:${r} limit:${i} total:${u} isCompleted:${h} current:${n.length} isCommunityRelay:${s}`;return t.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. ${g}`),s?h?n:(r=d,this._pagingGetGroupList({isCommunityRelay:!0,limit:i,offset:r,groupList:n})):h?(t.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList start to get community list`),r=0,this._pagingGetGroupList({isCommunityRelay:!0,limit:i,offset:r,groupList:n})):(r=d,this._pagingGetGroupList({limit:i,offset:r,groupList:n}))}catch(e){if(e.ErrorCode===ec)return t.warn("_pagingGetGroupList",`${this._name}._pagingGetGroupList response size exceeds the limit, request count:${i}`),i=50,this._pagingGetGroupList({isCommunityRelay:s,limit:i,offset:r,groupList:n});if(s)return e.code===tc&&t.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. community unavailable`),n;throw e}})}_pagingGetJoinedCommunityList(e){return de(this,void 0,void 0,function*(){const{common:{getCurrentUserID:t},OuterConstant:s,ssoLog:n}=this._core,{groupList:o}=e;let{limit:i,offset:r}=e;try{const e=yield tu({limit:i,offset:r,type:s.GRP_COMMUNITY,memberAccount:t(),supportTopic:1,responseFilter:{GroupBaseInfoFilter:[...Ha],SelfInfoFilter:[...Wa]}},this._core),{GroupIdList:a=[],TotalCount:c=0}=e||{},u=this._convertGroupKey(a);o.push(...u);const l=r+i,d=!(c>l),h=`offset:${r} limit:${i} total:${c} isCompleted:${d} current:${o.length}`;return n.debug("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList ok. ${h}`),d?o:(r=l,this._pagingGetJoinedCommunityList({limit:i,offset:r,groupList:o}))}catch(e){if(e.code===jc)return n.warn("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList response size exceeds the limit, request count:${i}`),i=50,this._pagingGetJoinedCommunityList({limit:i,offset:r,groupList:o});throw e}})}_groupListTreeShaking(e){const t=new Map([...eu.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++)eu.deleteLocalGroup(s[e])}_isSyncCompleted(){return this._pagingStatus===Xa}_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:u,LastInfoTime:l,LastMsgTime:d,MemberNum:h,MaxMemberNum:g,MuteAllMember:p,Name:_,NextMsgSeq:m,Notification:v,Owner_Account:f,Type:I,LastRecallTime:E,SelfInfo:C,AtInfoList:S=[],SupportTopic:M}=e[s],y=Yc(n),O=this._convertSelfInfo(C),A=this._convertAtInfoList(a,S);t.push({groupCustomField:y,joinOption:o,createTime:i,avatar:r,groupID:a,introduction:c,inviteOption:u,lastInfoTime:l,lastMsgTime:d,memberCount:h,maxMemberCount:g,muteAllMembers:p,name:_,nextMessageSeq:m,notification:v,ownerID:f,type:I,selfInfo:O,_lastRevokedTime:E,_groupAtInfoList:A,isSupportTopic:M})}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}}_convertAtInfoList(e,t){if(0===t.length)return[];const s=[];return t.forEach(t=>{const{AtFlagList:n,AtMsgSeq:o,From_Account:i}=t;s.push({groupID:e,groupAtType:n,sequence:o,from:i})}),s}};var ou=new class{constructor(){this._name="CreateGroup"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"createGroup",context:this})}createGroup(e){return de(this,void 0,void 0,function*(){var t;this._preCheckParams(e);const{helper:{ChatError:s}}=this._core;try{const{utils:{isEmpty:s},common:{getCurrentUserID:n}}=this._core,o=yield function(e,t){return de(this,void 0,void 0,function*(){const{name:s,type:n,groupID:o,introduction:i,notification:r,avatar:a,maxMemberNum:c,joinOption:u,inviteOption:l,memberList:d,groupCustomField:h,isSupportTopic:g}=e;let p;d&&(p=d.map(e=>{const{userID:t,memberCustomField:s}=e;return{Member_Account:t,AppMemberDefinedData:s?zc(s):void 0}}));const _={Name:s,Type:n,GroupId:o,Introduction:i,Notification:r,FaceUrl:a,MaxMemberCount:c,ApplyJoinOption:u,InviteJoinOption:l,MemberList:p,AppDefinedData:h,SupportTopic:g,webPushFlag:1};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.create_group",data:_})})}(Object.assign(Object.assign({},e),{ownerID:n()}),this._core),{GroupId:i,OverJoinedGroupLimit_Account:r=[]}=o||{},a=`${this._name}.createGroup ok, type:${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))),eu.updateLocalGroup([Object.assign(Object.assign({},e),{groupID:i})]);const c=eu.getLocalGroup(i);return this._notNeedSendCustomMessage(e)||(this._sendCustomMessage(i,e.type),eu.emitGroupListUpdate()),su({group:c},{message:a})}catch(t){const{errorCode:n,errorInfo:o}=t;throw new s({functionName:"createGroup",code:n,message:o,moreMessage:` groupID:${e.groupID}`})}})}_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}=wa.core.OuterConstant;return[e,t,s,n,o]})().includes(t))throw new this._core.helper.ChatError({code:bc});if(!i({type:t})){if(r&&i({groupID:s}))throw new this._core.helper.ChatError({code:Nc});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),i({type:t})){if(r&&!i({groupID:s}))throw new this._core.helper.ChatError({code:Nc});e.isSupportTopic=this._canIUseTopic(e)?1:0}}_canIUseMemberList(e){return!Kc(e)}_canIUseJoinOption(e){return Hc(e)||this._core.common.isCommunity({type:e})}_canIUseTopic(e){const{isSupportTopic:t}=e;return!0===t}_notNeedSendCustomMessage(e){const{type:t,isSupportTopic:s}=e,{OuterConstant:{GRP_AVCHATROOM:n,GRP_COMMUNITY:o}}=this._core;return t===n||t===o&&1===s}_sendCustomMessage(e,t){var s,n,o,i,r,a;const{OuterConstant:c}=this._core;let u="Create Group",l=za;t===c.GRP_COMMUNITY&&(u="Create Community",l=Ja);const d={to:e,conversationType:"GROUP",payload:{data:JSON.stringify({businessID:"group_create",content:u,cmd:l,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 iu=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;this._core.ssoLog.debug("handleGroupAttributesUpdated",`${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}),this._core.ssoLog.debug("initGroupAttributesCache",`${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!==gc&&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),this._core.ssoLog.debug("refreshGroupAttributesCache",`${this._name}.refreshGroupAttributesCache. operation:${o} localMainSequence:${i} serverMainSequence:${s}`)}}_updateGroupAttributesCacheValues(e){const{groupAttributes:t,groupAttributeList:s=[],operation:n}=e;n!==dc?n!==hc?(n===uc&&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);this._core.ssoLog.debug("emitGroupAttributesUpdated",`${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}reset(){this._groupAttributesCache.clear(),this._groupAttributesCacheValuesCopy={}}};var ru=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(Ua)})}dismissGroup(e){return de(this,void 0,void 0,function*(){const{helper:{ChatError:t}}=this._core;try{yield function(e,t){return de(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.destroy_group",data:s})})}(e,this._core);const{type:t}=eu.getLocalGroup(e);return eu.deleteLocalGroup(e),eu.emitGroupListUpdate(),iu.deleteGroupAttributesCache(e),su({groupID:e,type:t},{message:e})}catch(e){const{errorCode:s,errorInfo:n}=e;throw new t({functionName:"dismissGroup",code:s,message:n})}})}};var au=new class{constructor(){this._name="GetGroupProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupProfile",context:this})}getGroupProfile(e){return de(this,void 0,void 0,function*(){const{groupID:t,groupCustomFieldFilter:s}=e,n={groupIDList:[t],responseFilter:{GroupBaseInfoFilter:[...Ha],AppDefinedDataFilter_Group:s,MemberInfoFilter:[...Ya]}},{helper:{ChatError:o}}=this._core;try{const e=yield this.getGroupProfileAdvance(n),{successGroupList:s,failureGroupList:o}=e;if(o.length>0)throw o[0];let i;return!eu.hasLocalGroup(t)&&Kc(s[0].type)?i=new Zc(s[0]):(eu.updateLocalGroup(s),i=eu.getLocalGroup(t)),i.isSupportTopic||eu.updateConversationGroupProfile(t),su({group:i},{message:`groupID:${t}`})}catch(e){const{code:t,message:s}=e;throw new o({functionName:"getGroupProfile",code:t,message:s})}})}getGroupProfileAdvance(e){return de(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 de(this,void 0,void 0,function*(){const{ssoLog:t,utils:{isUndefined:s}}=this._core,{isCommunityProfile:n=!1}=e,o=le(e,["isCommunityProfile"]);if(0===o.groupIDList.length)return{successGroupList:[],failureGroupList:[]};try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupIDList:s,responseFilter:n}=e,o={GroupIdList:s,ResponseFilter:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:o})})}(o,this._core),{GroupInfo:n=[]}=e||{},i=this._convertGroupProfileKey(n),r=i.filter(e=>s(e.errorCode)||0===e.errorCode),a=i.filter(e=>e.errorCode&&0!==e.errorCode).map(e=>({code:e.errorCode,message:e.errorInfo,data:{groupID:e.groupID}}));return t.debug("_getGroupProfileAdvance",`${this._name}._getGroupProfileAdvance ok, groupID:${o.groupIDList.join(",")}`),{successGroupList:r,failureGroupList:a}}catch(e){if(n)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:u,InviteJoinOption:l,LastInfoTime:d,LastMsgTime:h,MaxMemberNum:g,MemberNum:p,MuteAllMember:_,Name:m,NextMsgSeq:v,Notification:f,Owner_Account:I,ShutUpAllMember:E,ShutUpUntil:C,Type:S,MemberList:M,ErrorCode:y,ErrorInfo:O}=e[s],A=Yc(n),T=this._convertMembers(M);t.push({groupCustomField:A,joinOption:o,createTime:i,avatar:r,groupID:a,infoSequence:c,introduction:u,inviteOption:l,lastInfoTime:d,lastMsgTime:h,maxMemberCount:g,memberCount:p,muteAllMembers:_,name:m,nextMessageSeq:v,notification:f,ownerID:I,shutUpAllMember:E,muteUntil:C,type:S,members:T,errorCode:y,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:u}=e[s],l=Yc(n);t.push({memberCustomField:l,joinTime:o,userID:i,messageRemindType:r,sequence:a,nameCard:c,role:u})}return t}};var cu=new class{constructor(){this._groupCountersMap=new Map}init(e){this._core=e}getLocalGroupCounters(e){return this._hasLocalGroupCounters(e)||this.initGroupCountersCache({groupID:e}),this._groupCountersMap.get(e)}updateLocalGroupCounters(e){const{groupID:t,counterList:s=[],groupCounterSeq:n}=e;if(this._hasLocalGroupCounters(t)){const{counters:e,avChatRoomKey:o,groupCounterSeq:i}=this.getLocalGroupCounters(t);if(n>0&&n<i)return;s.forEach(t=>{const{Key:s,Value:n=0}=t;e.set(s,n)}),this._groupCountersMap.set(t,{lastUpdateTime:Date.now(),groupCounterSeq:n,counters:e,avChatRoomKey:o})}}initGroupCountersCache(e){const{groupID:t,avChatRoomKey:s}=e;this._groupCountersMap.set(t,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:s})}getLocalCounters(e,t){const s={};if(!this._hasLocalGroupCounters(e))return s;const{counters:n}=this.getLocalGroupCounters(e);if(t.length>0)t.forEach(e=>{n.has(e)&&(s[e]=n.get(e))});else for(const e of n.keys())s[e]=n.get(e);return s}deleteLocalGroupCounters(e){const{groupID:t,counterList:s=[],groupCounterSeq:n}=e;if(this._hasLocalGroupCounters(t)){const{counters:e,avChatRoomKey:o}=this.getLocalGroupCounters(t);s.forEach(t=>{e.delete(t.key)}),this._groupCountersMap.set(t,{lastUpdateTime:Date.now(),groupCounterSeq:n,counters:e,avChatRoomKey:o})}}setGroupCounters(e,t){if(!this._hasLocalGroupCounters(e))return;const s=this.getLocalGroupCounters(e),{counters:n}=s;let o=!1;Object.entries(t).forEach(([e,t])=>{n.has(e)&&n.get(e)!==t&&(n.set(e,t),o=!0)}),o&&this._groupCountersMap.set(e,Object.assign(Object.assign({},s),{lastUpdateTime:Date.now(),counters:n}))}_hasLocalGroupCounters(e){return this._groupCountersMap.has(e)}reset(){this._groupCountersMap.clear()}};var uu=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(Ua)})}joinGroup(e){return de(this,void 0,void 0,function*(){const{groupID:t}=e,{helper:{ChatError:s},OuterConstant:n,ssoLog:o}=this._core;try{if(eu.hasLocalGroup(t))try{return yield au.getGroupProfile({groupID:t}),su({status:n.JOIN_STATUS_ALREADY_IN_GROUP,group:eu.getLocalGroup(t)},{message:`groupID:${t} joinedStatus:${n.JOIN_STATUS_ALREADY_IN_GROUP}`})}catch(s){o.warn("joinGroup",`${this._name}.joinGroup ${t} was unjoined, start to join!`),eu.deleteLocalGroup(t);return yield this._applyJoinGroup(e)}return yield this._applyJoinGroup(e)}catch(e){const{errorCode:n,errorInfo:o}=e;throw new s({functionName:"joinGroup",code:n,message:o,moreMessage:`groupID:${t}`})}})}_applyJoinGroup(e){return de(this,void 0,void 0,function*(){const{OuterConstant:t,helper:s,ssoLog:n}=this._core,{groupID:o}=e,i=Object.assign({},e),r=s.checkBusinessCapabilityBits(ka);r&&(i.historyMessageFlag=1);const a=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,applyMessage:n,historyMessageFlag:o}=e,i={GroupId:s,ApplyMsg:n,HugeGroupHistoryMsgFlag:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.apply_join_group",data:i})})}(i,this._core),{Type:c,JoinedStatus:u,LongPollingKey:l,StartSeq:d,HugeGroupFlag:h,AVChatRoomKey:g,RspMsgList:p=[]}=a||{},_=`groupID:${o} joinedStatus:${u} longPollingKey:${l} startSeq:${d} avChatRoomFlag:${h} canGetAVChatRoomHistoryMsg:${r}, historyMessageCount:${p.length}`;n.debug("_applyJoinGroup",`${this._name}._applyJoinGroup ok, ${_}`);let m=new Zc({groupID:o,type:c});if(u===t.JOIN_STATUS_WAIT_APPROVAL)return su({status:t.JOIN_STATUS_WAIT_APPROVAL,group:m});if(u===t.JOIN_STATUS_SUCCESS){try{m=(yield au.getGroupProfile({groupID:o})).data.group}catch(e){n.warn("_applyJoinGroup",`${this._name}._applyJoinGroup getGroupProfile failed, groupID: ${o}, errorCode:${null==e?void 0:e.code}`)}return this._handleJoinResult({group:m,avChatRoomFlag:h,longPollingKey:l,startSequence:d,avChatRoomKey:g,historyMessageList:p})}throw new this._core.helper.ChatError({code:Uc})})}_handleJoinResult(e){const{group:t,avChatRoomFlag:s,avChatRoomKey:n}=e;return 1===s?(iu.initGroupAttributesCache({groupID:t.groupID,avChatRoomKey:n}),cu.initGroupCountersCache({groupID:t.groupID,avChatRoomKey:n}),su(e)):(eu.updateLocalGroup([t]),eu.emitGroupListUpdate(),su({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS,group:t},{message:`groupID:${t.groupID}`}))}};var lu=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(Ua)})}quitGroup(e){return de(this,void 0,void 0,function*(){if(!eu.hasLocalGroup(e))throw new this._core.helper.ChatError({code:wc});const{helper:{ChatError:t}}=this._core;try{yield function(e,t){return de(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.quit_group",data:s})})}(e,this._core);const{type:t}=eu.getLocalGroup(e);return eu.deleteLocalGroup(e),eu.emitGroupListUpdate(),iu.deleteGroupAttributesCache(e),su({groupID:e,type:t},{message:`groupID:${e}`})}catch(s){const{errorCode:n,errorInfo:o}=s;throw new t({functionName:"quitGroup",code:n,message:o,moreMessage:`groupID:${e}`})}})}};var du=new class{constructor(){this._name="SearchGroup"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"searchGroupByID",context:this})}searchGroupByID(e){return de(this,void 0,void 0,function*(){try{const t=yield function(e,t){return de(this,void 0,void 0,function*(){const s={GroupIdList:[e],GroupBasePublicInfoFilter:[...Ka]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_public_info",data:s})})}(e,this._core),{GroupInfo:s=[]}=t||{},{AppDefinedData:n=[],ApplyJoinOption:o,CreateTime:i,FaceUrl:r,Introduction:a,InviteJoinOption:c,MaxMemberNum:u,MemberNum:l,Name:d,Owner_Account:h,Type:g,ErrorCode:p,ErrorInfo:_}=s[0];if(0!==p)throw new this._core.helper.ChatError({code:p,message:_});const m=Yc(n),v=new Zc({groupID:e,name:d,avatar:r,introduction:a,joinOption:o,inviteOption:c,maxMemberCount:u,memberCount:l,type:g,ownerID:h,createTime:i,groupCustomField:m});return su({group:v})}catch(e){const{errorCode:t,errorInfo:s}=e;throw new this._core.helper.ChatError({functionName:"searchGroupByID",code:t,message:s})}})}};var hu=new class{constructor(){this._name="UpdateGroupProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"updateGroupProfile",context:this})}updateGroupProfile(e){return de(this,void 0,void 0,function*(){const{groupID:t}=e,{utils:{isUndefined:s},ssoLog:n,helper:o}=this._core;let i=eu.getLocalGroup(t);if(i){const{type:o}=i;this._canIUseJoinOption(o)||s(e.joinOption)||(n.warn("updateGroupProfile",`${this._name}.updateGroupProfile groupID:${t} 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 de(this,void 0,void 0,function*(){const{groupID:s,name:n,avatar:o,introduction:i,notification:r,muteAllMembers:a,joinOption:c,inviteOption:u,groupCustomField:l}=e,d={GroupId:s,Name:n,FaceUrl:o,Introduction:i,Notification:r,ShutUpAllMember:a,ApplyJoinOption:c,InviteJoinOption:u,AppDefinedData:l?zc(l):void 0};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_base_info",data:d})})}(e,this._core),i?(i.updateGroup(e),eu.emitGroupListUpdate()):i=new Zc(e),su({group:i},{message:`groupID:${t}`})}catch(e){const{errorCode:s,errorInfo:n}=e;throw new o.ChatError({code:s,message:n,moreMessage:`groupID:${t}`})}})}_canIUseJoinOption(e){return Hc(e)||this._core.common.isCommunity({type:e})}};var gu=new class{constructor(){this._name="ChangeGroupOwner"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"changeGroupOwner",context:this})}changeGroupOwner(e){return de(this,void 0,void 0,function*(){const t="changeGroupOwner",{groupID:s,newOwnerID:n}=e,o=eu.getLocalGroup(s),{helper:i,OuterConstant:r,common:{getCurrentUserID:a}}=this._core;if((null==o?void 0:o.type)===r.GRP_AVCHATROOM)throw new i.ChatError({functionName:t,code:Pc});if(n===a())throw new i.ChatError({functionName:t,code:Gc});try{return yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,newOwnerID:n}=e,o={GroupId:s,NewOwner_Account:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.change_group_owner",data:o})})}(e,this._core),o.ownerID=n,eu.emitGroupListUpdate(),su({group:o})}catch(e){throw new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var pu=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(Ua)})}getGroupOnlineMemberCount(e){return de(this,void 0,void 0,function*(){const t="getGroupOnlineMemberCount";if(!eu.hasLocalGroup(e))return su({memberCount:0});const s=Date.now();if(this._onlineMemberCountMap.has(e)){const t=this._onlineMemberCountMap.get(e),{lastReqTime:n=0,memberCount:o=0}=t||{};if(s-n<=6e4)return su({memberCount:o})}try{const s=yield function(e,t){return de(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:s})})}(e,this._core),{OnlineMemberNum:n=0}=s||{};this._onlineMemberCountMap.set(e,{lastReqTime:Date.now(),memberCount:n});const o=`${this._name}.${t} ok. groupID:${e} memberCount:${n}`;return su({memberCount:n},{message:o})}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var _u=new class{init(e,t){e.ssoLog.debug("GroupAction.init"),nu.init(e),ou.init(e),ru.init(e,t),uu.init(e,t),lu.init(e,t),du.init(e),au.init(e),hu.init(e),gu.init(e),pu.init(e,t)}dismissGroup(e){return ru.dismissGroup(e)}joinGroup(e){return uu.joinGroup(e)}quitGroup(e){return lu.quitGroup(e)}getGroupOnlineMemberCount(e){return pu.getGroupOnlineMemberCount(e)}};var mu=new class{constructor(){this._name="GetGroupApplicationList"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupApplicationList",context:this})}getGroupApplicationList(){return de(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})]);this._core.ssoLog.debug("getGroupApplicationList",`${this._name}.${e} ok.`);const s=this._handleGroupApplicationResult([...t[0],...t[1]]);return su({applicationList:s})}catch(t){throw new this._core.helper.ChatError({functionName:e,code:null==t?void 0:t.errorCode,message:null==t?void 0:t.errorInfo})}})}_getGroupApplicationList(e){return de(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 de(this,void 0,void 0,function*(){const{type:s,startTime:n,limit:o,handleAccount:i}=e,r={Type:s,StartTime:n,Limit:o,Handle_Account:i};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_pendency",data:r})})}({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:a=[]}=i||{};if(0===r)return a;const c=yield this._getGroupApplicationList(Object.assign(Object.assign({},e),{startTime:r}));return[...a,...c]})}_handleGroupApplicationResult(e){const t=[];return e.forEach(e=>{const s=this._convertApplicationData(e),{handled:n}=s,o=le(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:u,To_Account:l}=e;return{handled:t,messageKey:s,applicant:r,applicantNick:i,groupID:a,groupName:c,authentication:o,applicationType:u,userID:l,note:n}}};var vu=new class{constructor(){this._name="HandleGroupApplication"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"handleGroupApplication",context:this})}handleGroupApplication(e){return de(this,void 0,void 0,function*(){const{application:t}=e,s=this._handleParams(e);try{(null==t?void 0:t.applicationType)===sc?yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,handleAction:n,handleMessage:o,applicant:i,authentication:r,invitee:a}=e,c={GroupId:s,HandleMsg:n,ApprovalMsg:o,Applicant_Account:i,Authentication:r,Invited_Account:a};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_invite_join_permission_group",data:c})})}(s,this._core):yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,handleAction:n,handleMessage:o,applicant:i,authentication:r,messageKey:a}=e,c={GroupId:s,HandleMsg:n,ApprovalMsg:o,Applicant_Account:i,Authentication:r,MsgKey:a};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_apply_join_group",data:c})})}(s,this._core);const e=eu.getLocalGroup(s.groupID);return su({group:e})}catch(e){throw new this._core.helper.ChatError({functionName:"handleGroupApplication",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_handleParams(e){var t;const{handleAction:s,handleMessage:n,message:o,application:i}=e;let r,a,c,u,l;if(o){const{payload:e}=o||{};r=e.operatorID,a=null===(t=e.groupProfile)||void 0===t?void 0:t.groupID,c=e.authentication,u=e.messageKey}else r=(null==i?void 0:i.applicant)||"",a=(null==i?void 0:i.groupID)||"",c=(null==i?void 0:i.authentication)||"",u=(null==i?void 0:i.messageKey)||0;return(null==i?void 0:i.applicationType)===sc&&(l=i.userID),{handleAction:s,handleMessage:n,applicant:r,invitee:l,groupID:a,authentication:c,messageKey:u}}};var fu=new class{init(e){e.ssoLog.debug("GroupApplication.init"),mu.init(e),vu.init(e)}};let Iu=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}}}=wa;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&&Wc(this.memberCustomField,e.memberCustomField),s(this,e,["memberCustomField","marks","onlineStatus","muteTime"],n)}};function Eu(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,userID:n,muteTime:o,role:i,nameCard:r,memberCustomField:a}=e;let c;a&&(c=zc(a));const u={GroupId:s,Member_Account:n,ShutUpTime:o,Role:i,NameCard:r,AppMemberDefinedData:c};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:u})})}var Cu=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(Ua)})}getGroupMemberList(e){return de(this,void 0,void 0,function*(){const t="getGroupMemberList",{groupID:s,offset:n=0,count:o=100,role:i="",filter:r=""}=e,a=eu.getLocalGroup(s),c=o>100?100:o,u={groupID:s,offset:n,limit:c,memberRoleFilter:nc.includes(i)?[i]:void 0,memberInfoFilter:oc};try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{isCommunity:s}=t.common,{groupID:n,offset:o,limit:i,memberRoleFilter:r,memberInfoFilter:a}=e,c={GroupId:n,Limit:i,MemberRoleFilter:r,MemberInfoFilter:a};return s({groupID:n})?c.Next=String(o):c.Offset=o,t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_member_info",data:c})})}(u,this._core),{MemberList:o,MemberNum:i,Next:r}=e||{},l=`${this._name}.${t} ok, totalMemberCount:${i} next:${r}`,{utils:{isArray:d,isEmpty:h},common:{isCommunity:g}}=this._core;if(a&&(a.memberCount=i),!d(o)||0===o.length)return su({memberList:[],offset:0},{message:l});let p=n+c;g({groupID:s})&&(p=h(r)?0:r),o.length<c&&(p=0);let _=this._convertMemberInfo(o);_=yield this._patchAvatarAndNick(_);const m=this._generateGroupMember(_);return su({memberList:m,offset:p},{message:l})}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_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,NameCard:u}=e[s],l=Yc(n);t.push({userID:i,joinTime:o,onlineStatus:r,role:a,muteUntil:c,memberCustomField:l,nameCard:u})}return t}_patchAvatarAndNick(e){return de(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 Iu(e[s]);t.push(n)}return t}};var Su=new class{constructor(){this._name="GetGroupMemberProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupMemberProfile",context:this})}getGroupMemberProfile(e){return de(this,void 0,void 0,function*(){const t="getGroupMemberProfile",{groupID:s,userIDList:n,memberCustomFieldFilter:o}=e,i=eu.getLocalGroup(s),{helper:r,utils:{isArray:a},ssoLog:c}=this._core;if(i&&Kc(i.type))throw new r.ChatError({functionName:t,replacement1:t,code:Vc});n.length>50&&(c.warn("getGroupMemberProfile",`${this._name}.${t} userIDList length:${n.length} exceeds limit 50`),n.splice(50));const u=`userIDList length:${n.length} groupID:${s}`;try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,userIDList:n,memberInfoFilter:o,memberCustomFieldFilter:i}=e,r={GroupId:s,Member_List_Account:n,MemberInfoFilter:o,AppDefinedDataFilter_GroupMember:i};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_specified_group_member_info",data:r})})}({groupID:s,userIDList:n,memberCustomFieldFilter:o,memberInfoFilter:[...oc]},this._core),{MemberList:t}=e||{};if(!a(t)||0===t.length)return su({memberList:[]});let i=this._convertMemberInfo(t);i=yield this._getMemberAvatarAndNick(i);const r=this._generateGroupMember(i);return su({memberList:r},{message:u})}catch(e){throw new r.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:u})}})}_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,NameCard:u}=e[s],l=Yc(n);t.push({userID:i,joinTime:o,onlineStatus:r,role:a,muteUntil:c,memberCustomField:l,nameCard:u})}return t}_getMemberAvatarAndNick(e){return de(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 Iu(e[s]);t.push(n)}return t}};var Mu=new class{constructor(){this._name="AddGroupMember"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"addGroupMember",context:this})}addGroupMember(e){return de(this,void 0,void 0,function*(){const t="addGroupMember",{groupID:s,userIDList:n}=e,o=eu.getLocalGroup(s),{helper:i}=this._core;if(o&&Kc(o.type))throw new i.ChatError({functionName:t,code:kc});const r=n.map(e=>({Member_Account:e}));try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,userIDList:n}=e,o={GroupId:s,MemberList:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.add_group_member",data:o})})}({groupID:s,userIDList:r},this._core),{MemberList:t=[]}=e||{},{failureUserIDList:n,successUserIDList:i,existedUserIDList:a,overLimitUserIDList:c}=this._handleResult(t);return su({failureUserIDList:n,successUserIDList:i,existedUserIDList:a,overLimitUserIDList:c,group:o},{message:` groupID:${s} successUserIDList:${i} failureUserIDList:${n} existedUserIDList:${a} overLimitUserIDList:${c}`})}catch(e){throw new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_handleResult(e){const t=[],s=[],n=[],o=[];return e.forEach(e=>{const{Result:i,Member_Account:r}=e;i===ic?t.push(r):i===rc?s.push(r):i===ac?n.push(r):i===cc&&o.push(r)}),{failureUserIDList:t,successUserIDList:s,existedUserIDList:n,overLimitUserIDList:o}}};var yu=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(Ua)})}deleteGroupMember(e){return de(this,void 0,void 0,function*(){const t="deleteGroupMember",{groupID:s,userIDList:n}=e,o=eu.getLocalGroup(s),{helper:i,utils:{isUndefined:r},ssoLog:a}=this._core;if(r(o))throw new i.ChatError({functionName:t,code:Lc});n.length>20&&(a.warn("deleteGroupMember",`${this._name}.${t} userIDList length:${n.length} exceeds limit 20`),n.splice(20));try{return yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,userIDList:n,reason:o}=e,i={GroupId:s,MemberToDel_Account:n,Reason:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_member",data:i})})}({groupID:s,userIDList:n},this._core),su({group:o,userIDList:n},{message:`groupID:${s} userIDList length:${n.length}`})}catch(e){throw new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var Ou=new class{constructor(){this._name="SetGroupMemberMuteTime"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberMuteTime",context:this})}setGroupMemberMuteTime(e){return de(this,void 0,void 0,function*(){const{helper:t}=this._core,{groupID:s,userID:n,muteTime:o}=e,i=` groupID:${s} userID:${n} muteTime:${o}`;this._preCheckSettingMuteParams(e);try{yield Eu(e,this._core);const t=eu.getLocalGroup(s),r=new Iu({userID:n,muteTime:o});return su({group:t,member:r},{message:i})}catch(e){throw new t.ChatError({functionName:"setGroupMemberMuteTime",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:i})}})}_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:qc})}};var Au=new class{constructor(){this._name="SetGroupMemberRole"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberRole",context:this})}setGroupMemberRole(e){return de(this,void 0,void 0,function*(){const t="setGroupMemberRole",{helper:s}=this._core,{groupID:n,userID:o,role:i}=e,r=`${this._name}.${t} ok, groupID:${n} userID:${o} role:${i}`;this._preCheckSettingRoleParams(e);try{yield Eu(e,this._core);const t=eu.getLocalGroup(n),s=new Iu({userID:o,role:i});return su({group:t,member:s},{message:r})}catch(e){throw new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:r})}})}_preCheckSettingRoleParams(e){var t;const{groupID:s,userID:n,role:o}=e,{store:i,helper:r,OuterConstant:a,common:{isCommunity:c}}=this._core,u=eu.getLocalGroup(s);if((null===(t=null==u?void 0:u.selfInfo)||void 0===t?void 0:t.role)!==a.GRP_MBR_ROLE_OWNER)throw new r.ChatError({functionName:"setGroupMemberRole",code:Fc});if(n===i.get("login").userId)throw new r.ChatError({functionName:"setGroupMemberRole",code:xc});const l=[...nc];if(c({groupID:s})&&l.push(a.GRP_MBR_ROLE_CUSTOM),!l.includes(o))throw new r.ChatError({functionName:"setGroupMemberRole",code:$c})}};var Tu=new class{constructor(){this._name="SetGroupMemberNameCard"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberNameCard",context:this})}setGroupMemberNameCard(e){return de(this,void 0,void 0,function*(){const t="setGroupMemberNameCard",{helper:s,common:{getCurrentUserID:n}}=this._core;this._preCheckSettingNameCardParams(e);try{const{groupID:s,userID:o=n(),nameCard:i}=e,r={groupID:s,userID:o,nameCard:i};yield Eu(r,this._core);const a=`${this._name}.${t} ok, groupID:${s} userID:${o} nameCard:${i}`,c=eu.getLocalGroup(s),u=new Iu({userID:o,nameCard:i});return su({group:c,member:u},{message:a})}catch(e){throw new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:logText})}})}_preCheckSettingNameCardParams(e){const{groupID:t}=e,{helper:s}=this._core,n=eu.getLocalGroup(t);if(Kc(null==n?void 0:n.type))throw new s.ChatError({functionName:"setGroupMemberNameCard",code:Vc})}};var Ru=new class{constructor(){this._name="SetGroupMemberCustomField"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberCustomField",context:this})}setGroupMemberCustomField(e){return de(this,void 0,void 0,function*(){const t="setGroupMemberCustomField",{helper:s,common:{getCurrentUserID:n}}=this._core;this._preCheckSettingCustomFiledParams(e);const{groupID:o,userID:i=n(),memberCustomField:r}=e,a=`${this._name}.${t} ok, groupID:${o}userID:${i} memberCustomField:${JSON.stringify(r)}`;try{const e={groupID:o,userID:i,memberCustomField:r};yield Eu(e,this._core);const t=eu.getLocalGroup(o),s=new Iu({userID:i,memberCustomField:r});return su({group:t,member:s},{message:a})}catch(e){throw new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:a})}})}_preCheckSettingCustomFiledParams(e){const{groupID:t}=e,{helper:s}=this._core,n=eu.getLocalGroup(t);if(Kc(null==n?void 0:n.type))throw new s.ChatError({functionName:"setGroupMemberCustomField",code:Vc})}};var Du=new class{init(e,t){e.ssoLog.debug("GroupMember.init"),Cu.init(e,t),Su.init(e),Mu.init(e),yu.init(e,t),Ou.init(e),Au.init(e),Tu.init(e),Ru.init(e)}getGroupMemberList(e){return Cu.getGroupMemberList(e)}deleteGroupMember(e){return yu.deleteGroupMember(e)}};var bu=new class{init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupCounters",context:this})}getGroupCounters(e){return de(this,void 0,void 0,function*(){const t="getGroupCounters";try{Jc(t,Fa);const{groupID:s,keyList:n=[]}=e,{avChatRoomKey:o,lastUpdateTime:i}=cu.getLocalGroupCounters(s);if(!(Date.now()-i>=this._getExpireTime())){return{code:0,data:{counters:cu.getLocalCounters(s,n)}}}const r=yield function(e){return de(this,void 0,void 0,function*(){const{groupID:t,GroupCounterKeys:s,avChatRoomKey:n}=e,{common:o}=wa.core,i={GroupId:t,keyList:s,BytesKey:n};return o.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_counter",data:i})})}({groupID:s,keyList:n,avChatRoomKey:o}),{GroupCounter:a=[],GroupCounterSeq:c}=r;cu.updateLocalGroupCounters({groupID:s,counterList:a,groupCounterSeq:c});return{code:0,data:{counters:cu.getLocalCounters(s,n)}}}catch(e){Qc(t,e)}})}_getExpireTime(){const{store:e,utils:{isUndefined:t}}=this._core,s=e.get("cloudConfig")||{},{grp_counter_expire_time:n}=s;return t(n)?3e4:Number(n)}};var Nu=new class{init(e){const{helper:t}=e;t.registerApi({apiName:"setGroupCounters",context:this}),t.registerApi({apiName:"increaseGroupCounter",context:this}),t.registerApi({apiName:"decreaseGroupCounter",context:this})}setGroupCounters(e){return de(this,void 0,void 0,function*(){return this._handleCounterOperation($a,e)})}increaseGroupCounter(e){return de(this,void 0,void 0,function*(){return this._handleCounterOperation(xa,e)})}decreaseGroupCounter(e){return de(this,void 0,void 0,function*(){return this._handleCounterOperation(qa,e)})}_handleCounterOperation(e,t){return de(this,void 0,void 0,function*(){const s=`${e}GroupCounter`;try{Jc(s,Fa);const{groupID:n,key:o,value:i=0}=t,{avChatRoomKey:r}=cu.getLocalGroupCounters(n),a=e===$a?this._convertObjectToList(t.counters):[{Key:o,Value:i}],c=yield this._updateGroupCounters({groupID:n,counterList:a,avChatRoomKey:r,mode:e});return cu.setGroupCounters(n,c),{code:0,data:{counters:c}}}catch(e){Qc(s,e)}})}_updateGroupCounters(e){return de(this,void 0,void 0,function*(){const t=yield function(e){const{groupID:t,counterList:s,mode:n,avChatRoomKey:o}=e,{common:i}=wa.core,r={GroupId:t,GroupCounter:s,Mode:n,BytesKey:o};return i.buildAndSendPacket({servcmd:"group_open_http_svc.update_group_counter",data:r})}(e),{GroupCounter:s=[]}=t,n={};return s.forEach(e=>{const{Key:t,Value:s=0}=e;n[t]=s}),n})}_convertObjectToList(e){return Object.entries(e).map(([e,t])=>({Key:e,Value:t||0}))}};var Lu=new class{init(e){this._core=e,bu.init(e),Nu.init(e)}isGroupCounterUpdated(e){const{elements:{groupCounterInfo:t}}=e,{utils:{isEmpty:s}}=this._core;return!s(t)}handleGroupCounterUpdated(e){const{to:t,elements:{groupCounterInfo:s}}=e;s.forEach(e=>{const{type:s,groupCounterSeq:n,counterList:o=[]}=e;s!==Va&&s!==ja||this._processAndNotifyCounterUpdate(t,n,o),s===Ba&&cu.deleteLocalGroupCounters({groupID:t,groupCounterSeq:n,counterList:o})})}_processAndNotifyCounterUpdate(e,t,s){const{OuterEvent:n,notificationCenter:o}=this._core;cu.updateLocalGroupCounters({groupID:e,groupCounterSeq:t,counterList:s}),s.forEach(({Key:t,Value:s=0})=>{o.emitOuterEvent(n.GROUP_COUNTER_UPDATED,{name:n.GROUP_COUNTER_UPDATED,data:{groupID:e,key:t,value:s}})})}reset(){cu.reset()}};var Pu=new class{constructor(){this._name="InitGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"initGroupAttributes",context:this})}initGroupAttributes(e){return de(this,void 0,void 0,function*(){const{groupID:t,groupAttributes:s}=e,{serverMainSequence:n,avChatRoomKey:o}=iu.getGroupAttributesCache(t),i=iu.convertKeyValueMapToList(s);try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e,r={GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.set_group_attr",data:r})})}({groupID:t,avChatRoomKey:o,groupAttributeList:i,mainSequence:n},this._core),{AttrMainSeq:r,GroupAttr:a}=e||{},c=a.map(e=>{const{Key:t,seq:n}=e;return{key:t,value:s[t],sequence:n}});return iu.saveGroupAttributesCacheValuesCopy(t),iu.refreshGroupAttributesCache({groupID:t,serverMainSequence:r,groupAttributeList:c,operation:uc}),iu.emitGroupAttributesUpdated(t),su({groupAttributes:s},{message:` groupID:${t} serverMainSequence:${r}`})}catch(e){throw new this._core.helper.ChatError({functionName:"initGroupAttributes",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var Gu=new class{constructor(){this._name="SetGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupAttributes",context:this})}setGroupAttributes(e){return de(this,void 0,void 0,function*(){const{groupID:t,groupAttributes:s}=e,{serverMainSequence:n,avChatRoomKey:o,values:i}=iu.getGroupAttributesCache(t),r=iu.convertKeyValueMapToList(s).map(e=>{var t;const{key:s,value:n}=e;return{key:s,value:n,seq:(null===(t=i.get(e.key))||void 0===t?void 0:t.sequence)||0}});try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e,r={GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_attr",data:r})})}({groupID:t,avChatRoomKey:o,groupAttributeList:r,mainSequence:n},this._core),{AttrMainSeq:i,GroupAttr:a}=e||{},c=a.map(e=>{const{Key:t,seq:n}=e;return{key:t,value:s[t],sequence:n}});return iu.saveGroupAttributesCacheValuesCopy(t),iu.refreshGroupAttributesCache({groupID:t,serverMainSequence:i,groupAttributeList:c,operation:lc}),iu.emitGroupAttributesUpdated(t),su({groupAttributes:s},{message:` groupID:${t} serverMainSequence:${i}`})}catch(e){throw new this._core.helper.ChatError({functionName:"setGroupAttributes",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var wu=new class{constructor(){this._name="DeleteGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"deleteGroupAttributes",context:this})}deleteGroupAttributes(e){return de(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||{},c=`${this._name}.${t} ok. groupID:${s} operation: ${r}`;return iu.saveGroupAttributesCacheValuesCopy(s),iu.refreshGroupAttributesCache({groupID:s,serverMainSequence:i,groupAttributeList:a,operation:r}),iu.emitGroupAttributesUpdated(s),su({keyList:o},{message:c})}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_deleteGroupAttributes(e,t){return de(this,void 0,void 0,function*(){const{serverMainSequence:s,avChatRoomKey:n,values:o}=iu.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 a=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e,r={GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_attr",data:r})})}({groupID:e,avChatRoomKey:n,groupAttributeList:r,mainSequence:s},this._core),{AttrMainSeq:c}=a||{};return{resultList:i,serverMainSequence:c,groupAttributeList:r,operation:hc}})}_clearGroupAttributes(e){return de(this,void 0,void 0,function*(){const{serverMainSequence:t,avChatRoomKey:s,values:n}=iu.getGroupAttributesCache(e),o=[...n.keys()],i=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,avChatRoomKey:o}=e,i={GroupId:s,AttrMainSeq:n,BytesKey:o,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.clear_group_attr",data:i})})}({groupID:e,avChatRoomKey:s,mainSequence:t},this._core),{AttrMainSeq:r}=i||{};return{resultList:o,serverMainSequence:r,operation:dc}})}};var Uu=new class{constructor(){this._name="GetGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupAttributes",context:this})}getGroupAttributes(e){return de(this,void 0,void 0,function*(){const{groupID:t}=e,{avChatRoomKey:s,lastUpdateTime:n,localMainSequence:o,serverMainSequence:i}=iu.getGroupAttributesCache(t),{helper:{ChatError:r}}=this._core,a=`groupID:${t} localMainSequence:${o} serverMainSequence:${i} keyList:${e.keyList}`;if(Date.now()-n>=3e4||o<i)try{const n=yield this.getGroupAttributesFromServer({groupID:t,avChatRoomKey:s}),o=iu.getGroupAttributesCacheValues(e),{serverGroupAttributeList:i=[]}=n||{};return su({groupAttributes:o},{message:a,moreMessage:`from server, count:${i.length}`})}catch(e){throw new r({functionName:"getGroupAttributes",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}const c=iu.getGroupAttributesCacheValues(e);return su({groupAttributes:c},{message:a,moreMessage:"from cache"})})}getGroupAttributesFromServer(e){return de(this,void 0,void 0,function*(){const{utils:{isUndefined:t},ssoLog:s}=this._core,{groupID:n,avChatRoomKey:o}=e,i=t(o)?_c:pc,r=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,groupType:n,avChatRoomKey:o}=e,i={GroupId:s,GroupType:n,Key:o};return t.common.buildAndSendPacket({servcmd:"group_open_attr_http_svc.get_group_attr",data:i})})}({groupID:n,avChatRoomKey:o,groupType:i},this._core),{AttrMainSeq:a=0,GroupAttrAry:c}=r||{};s.debug("getGroupAttributesFromServer",`${this._name}._getGroupAttributesFromServer ok. groupID:${n} serverMainSequence:${a}`);const u=c.map(e=>{const{key:t,value:s,seq:n}=e;return{key:t,value:s,sequence:n}});return iu.refreshGroupAttributesCache({groupID:n,serverMainSequence:a,groupAttributeList:u,operation:gc}),{serverGroupAttributeList:c}})}};var ku=new class{init(e){e.ssoLog.debug("GroupAttribute.init"),Pu.init(e),Gu.init(e),wu.init(e),Uu.init(e),iu.init(e)}isGroupAttributesUpdated(e){return iu.isGroupAttributesUpdated(e)}handleGroupAttributesUpdated(e){const{to:t,elements:{newGroupProfile:s}}=e,{groupAttributeOption:n}=s,{serverMainSequence:o,withChangedAttributeInfo:i}=n,{localMainSequence:r}=iu.getGroupAttributesCache(t),a=o-r;if(console.log(`GroupAttribute.handleGroupAttributesUpdated groupID:${t} withChangedAttributeInfo:${i} diffSequence:${a}`),0!==a)if(iu.saveGroupAttributesCacheValuesCopy(t),1!==i||1!==a){if(iu.hasGroupAttributesCache(t)){const{avChatRoomKey:e}=iu.getGroupAttributesCache(t);Uu.getGroupAttributesFromServer({groupID:t,avChatRoomKey:e}).then(()=>{iu.emitGroupAttributesUpdated(t)}).catch(()=>{})}}else iu.handleGroupAttributesUpdated({groupID:t,groupAttributeOption:n})}reset(){iu.reset()}};function Fu(e,t="tips"){const{ClientSeq:s,From_Account:n,MsgClientTime:o,MsgPriority:i,MsgRandom:r,MsgSeq:a,MsgTimeStamp:c,TinyId:u,ToGroupId:l,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:u,to:l,groupProfile:g,elements:"tips"===t?$u(h):qu(h)}}function $u(e){const t={};return Object.keys(e).forEach(s=>{var n,o;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=null===(n=e[s])||void 0===n?void 0:n.map(e=>xu(e));break;case"MsgOperatorMemberExtraInfo":t.operatorInfo=xu(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]);break;case"MsgAppDefinedData":t.groupCustomField=e[s]}}),t}(e[s]);break;case"MsgMemberInfo":t.msgMemberInfo=null===(o=e[s])||void 0===o?void 0:o.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]);break;case"GroupCounterInfo":t.groupCounterInfo=function(e){return e.map(e=>{const{GroupCounterSeq:t,GroupCounter:s,Type:n}=e;return{type:n,groupCounterSeq:t,counterList:s}})}(e[s])}}),t}function xu(e){const{ImageUrl:t,NickName:s,Role:n,UserId:o}=e;return{avatar:t,nick:s,role:n,userID:o}}function qu(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];break;case"MuteTime":t.muteTime=e[s]}}),t}class Vu{constructor(e){this.type=wa.core.OuterConstant.MSG_GRP_TIP,this.content={},this._initContent(e)}static parseServerPushElement(e){const t=$u(e);return new Vu(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];Ec[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 Bu=new class{constructor(){this._name="GroupTipsNotification"}init(e){this._core=e;const{common:{workflowManager:t},constants:{WORKFLOW_NAME:s,WORKFLOW_STEP:n}}=e,{message:{messageFactory:o},OuterConstant:i}=e;null==o||o.registerElementClass(i.MSG_GRP_TIP,Vu),t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.GROUP_TIPS_RECOVER,this._handleGroupTipsRecover,this),t.registerWorkflowStep(s.RECEIVE_GROUP_TIPS_NOTIFICATION,n.HANDLE_GROUP_TIPS_NOTIFICATION,this.onNewGroupTips,this)}onNewGroupTips(e){const{data:t}=e||{},{messageList:s,conversationUpdateFieldList:n}=this._handleGroupTips(t),{notificationCenter:o,OuterEvent:i}=this._core;return s.length>0&&(o.emitOuterEvent(i.MESSAGE_RECEIVED,{name:i.MESSAGE_RECEIVED,data:s}),this._handleGroupTipMessage(s)),{conversationUpdateFieldList:n}}_handleGroupTips(e,t=!0){const{Event:s,GroupTips:n}=e,o=new Map,i=[],r=[];for(let e=0,i=n.length;e<i;e++){const i=Fu(n[e],"tips");if(s===vc){if(ku.isGroupAttributesUpdated(i)){ku.handleGroupAttributesUpdated(i);continue}if(Lu.isGroupCounterUpdated(i)){Lu.handleGroupCounterUpdated(i);continue}}const{groupProfile:{groupID:a}}=i;if(!eu.hasLocalGroup(a))continue;const c=this._assembleMessage(i);if(s===vc&&(c._onlineOnlyFlag=!0,r.push(c)),s===mc){if(!this._core.message.messageDataHandler.storeConversationMessage(c)&&t)continue;r.push(c)}this._handleConversationOptions(o,c)}return i.push(...o.values()),{conversationUpdateFieldList:i,messageList:r}}_assembleMessage(e){const{OuterConstant:t,message:{messageFactory:s},common:{setGroupTipsUserInfo:n}}=this._core;e.flow="in",e.conversationType=t.CONV_GROUP;const o=s.createMessage(e);n(e.elements,o);const i=new Vu(Object.assign(Object.assign({},e.elements),{groupProfile:Object.assign({},e.groupProfile)}));return o.setElement(i),o.isSystemMessage=!1,o}_handleConversationOptions(e,t){const{common:{getMessagePreviewText:s},utils:{isObject:n}}=this._core,{conversationID:o,conversationType:i}=t;let r;if(e.has(o))r=e.get(o),"in"===t.flow&&(t._isExcludedFromUnreadCount||t._onlineOnlyFlag||r.unreadCount++),r.type=i,r.lastMessage=t._isExcludedFromLastMessage?"":Object.assign({},t);else{let e=0;"in"===t.flow&&(t._isExcludedFromUnreadCount||t._onlineOnlyFlag||(e=1)),r={conversationID:o,unreadCount:e,type:i,lastMessage:t._isExcludedFromLastMessage?"":Object.assign({},t)}}n(r.lastMessage)&&(r.lastMessage.messageForShow=s(r.lastMessage.type,r.lastMessage.payload)),e.set(o,r)}_handleGroupTipMessage(e){const{OuterConstant:{GROUP_TIPS_OPERATION_TYPE:t}}=this._core;e.forEach(e=>{const{operationType:s}=e.payload;switch(s){case t.JOINED:this._handleNewMemberJoined(e);break;case t.QUITTED:this._handleMemberQuitted(e);break;case t.KICKED:this._handleMemberKicked(e);break;case t.GROUP_PROFILE_UPDATED: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=eu.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])}),eu.emitGroupListUpdate(),eu.updateConversationGroupProfile(i)}_handleGroupOwnerChanged(e,t){const{common:s,OuterConstant:n}=this._core,o=eu.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===fc?n=s.GRP_MBR_ROLE_OWNER:t===Ic&&(n=s.GRP_MBR_ROLE_ADMIN),e.updateSelfInfo({role:n})}_handleGroupMemberCountUpdated(e){const{memberCount:t,groupProfile:{groupID:s}}=e.payload,n=eu.getLocalGroup(s),{utils:{isNumber:o}}=this._core;n&&o(t)&&n.memberCount!==t&&(n.memberCount=t,eu.emitGroupListUpdate(),eu.updateConversationGroupProfile(s))}_handleGroupTipsRecover(e){const{utils:{isArray:t}}=this._core,{groupTipList:s}=(null==e?void 0:e.result)||{};t(s)&&s.forEach(e=>{const{messageList:t}=this._handleGroupTips({Event:e.Event,GroupTips:[e]},!1);this._handleGroupTipMessage(t)})}};class ju{constructor(e){this.type=wa.core.OuterConstant.MSG_GRP_SYS_NOTICE,this.content={},this._initContent(e)}static parseServerPushElement(e){const t=qu(e);return new ju(t)}_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];Cc[n]&&(this.content.groupProfile[n]=e[n])}}}var Hu=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,ju)}onNewGroupSystemNotification(e){const{GroupTips:t=[],isInstantMessage:s=!0}=e;this._core.ssoLog.debug("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=Fu(e[o],"system"),{elements:{operationType:r}}=i;if(r===Tc)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 ju(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 Sc:this._handleGroupJoinResult(e);break;case Mc:this._handleMemberKicked(e);break;case yc:this._handleGroupDismissed(e);break;case Oc:this._handleGroupInvitedResult(e);break;case Ac:this._handleGroupQuitResult(e);break;case Rc:this._handleMessageRemindTypeSynced(e);break;case Dc:this._handleAVChatRoomMemberBanned(e)}})}_handleGroupJoinResult(e){const{groupProfile:t}=e.payload,{groupID:s,type:n}=t,o=eu.hasLocalGroup(s);this._core.ssoLog.debug("_handleGroupJoinResult",` groupID:${s} type:${n} hasLocalGroup:${o}`),o||Kc(n)||(eu.updateLocalGroup([Object.assign({},t)]),eu.emitGroupListUpdate())}_handleMemberKicked(e){const{groupProfile:{groupID:t,type:s}}=e.payload;eu.hasLocalGroup(t)&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleGroupDismissed(e){const{groupProfile:{groupID:t,type:s}}=e.payload;eu.hasLocalGroup(t)&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleGroupInvitedResult(e){const{groupProfile:t}=e.payload,{groupID:s}=t,n=eu.hasLocalGroup(s);this._core.ssoLog.debug("_handleGroupInvitedResult",` groupID:${s} hasLocalGroup:${n}`),n||au.getGroupProfile({groupID:s}).then(e=>{const{data:{group:t}}=e;eu.updateLocalGroup([Object.assign({},t)]),eu.emitGroupListUpdate()})}_handleGroupQuitResult(e){const{groupProfile:{groupID:t,type:s}}=e.payload,n=eu.hasLocalGroup(t);this._core.ssoLog.debug("_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(Kc(t)){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core;t.deleteConversation(`${s}${e}`)}eu.deleteLocalGroup(e),eu.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 Ku=new class{init(e){this._core=e,e.ssoLog.debug("GroupNotificationHandler.init"),Bu.init(e),Hu.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){const{common:{workflowManager:t},constants:{WORKFLOW_NAME:s}}=this._core;t.executeWorkflow(s.RECEIVE_GROUP_TIPS_NOTIFICATION,e)}_onNewGroupSystemNotification(e){Hu.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 Wu={required:!0,rules:["string"],allowEmpty:!1},Yu={required:!0,rules:["number"],allowEmpty:!1},zu={required:!0,rules:["array"],allowEmpty:!1},Ju={required:!0,rules:["object"],allowEmpty:!1},Qu={createGroup:{name:Wu,type:Wu},dismissGroup:[Object.assign({key:"groupID"},Wu)],joinGroup:{groupID:Wu,applyMessage:{required:!1,rules:["string"],allowEmpty:!0}},quitGroup:[Object.assign({key:"groupID"},Wu)],searchGroupByID:[Object.assign({key:"groupID"},Wu)],getGroupProfile:{groupID:Wu,groupCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},updateGroupProfile:{groupID:Wu,muteAllMembers:{required:!1,rules:["boolean"],allowEmpty:!1}},changeGroupOwner:{groupID:Wu,newOwnerID:Wu},getGroupOnlineMemberCount:[Object.assign({key:"groupID"},Wu)],handleGroupApplication:{handleAction:Wu},getGroupMemberList:{groupID:Wu},getGroupMemberProfile:{groupID:Wu,userIDList:zu,memberCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},addGroupMember:{groupID:Wu,userIDList:zu},deleteGroupMember:{groupID:Wu,userIDList:zu},setGroupMemberMuteTime:{groupID:Wu,userID:Wu,muteTime:Object.assign(Object.assign({},Yu),{customValidator:e=>!(e<0)||"muteTime must be a non-negative number."})},setGroupMemberRole:{groupID:Wu,userID:Wu,role:Wu},setGroupMemberNameCard:{groupID:Wu,userID:{required:!1,rules:["string"],allowEmpty:!1},nameCard:Wu},setGroupMemberCustomField:{groupID:Wu,userID:{required:!1,rules:["string"],allowEmpty:!1},memberCustomField:zu},markGroupMemberList:{groupID:Wu,markType:Object.assign(Object.assign({},Yu),{customValidator:e=>!(e<1e3)||"markType must be greater than or equal to 1000."}),enableMark:{required:!0,rules:["boolean"],allowEmpty:!1},userIDList:zu},initGroupAttributes:{groupID:Wu,groupAttributes:Ju},setGroupAttributes:{groupID:Wu,groupAttributes:Ju},deleteGroupAttributes:{groupID:Wu,keyList:Object.assign(Object.assign({},zu),{allowEmpty:!0})},getGroupAttributes:{groupID:Wu,keyList:Object.assign(Object.assign({},zu),{allowEmpty:!0})},getGroupCounters:{groupID:Wu,keyList:{required:!1,rules:["array"],allowEmpty:!0}},setGroupCounters:{groupID:Wu,counters:Ju},increaseGroupCounter:{groupID:Wu,key:Wu,value:Yu},decreaseGroupCounter:{groupID:Wu,key:Wu,value:Yu}},Xu={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,getGroupCounters:!0,setGroupCounters:!0,increaseGroupCounter:!0,decreaseGroupCounter:!0};var Zu=new class{constructor(){this._installedSubPlugins=[],this.groupDataHandler=eu,this.groupAction=_u,this.groupAttribute=ku,this.groupMember=Du,this.groupCounter=Lu,this.name="Group"}install(e,t=[]){this._core=e,wa.init(e),eu.init(e),_u.init(e,this),Du.init(e,this),fu.init(e),Lu.init(e),ku.init(e),Ku.init(e),e.helper.registerValidateConfig({auth:Xu,params:Qu}),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;this._installedSubPlugins.includes(e.name)||(null===(t=e.install)||void 0===t||t.call(e,this._core,this),this._installedSubPlugins.push(e.name))})}_reset(){eu.reset(),ku.reset(),Lu.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 el=new class{init(e){this.core=e}};const tl="AV_MBR_LIST",sl="AV_BAN_MBR",nl={NORMAL_MESSAGE:3,GROUP_TIPS_HAS_ROAMING:4,GROUP_SYSTEM_MESSAGE:5,GROUP_TIPS_HAS_NO_ROAMING:6,BROADCAST_MESSAGE:17,MESSAGE_REVOKED:20,MESSAGE_REACTION:21,LIVE_CUSTOM_DATA:100},ol={GROUP_DISMISSED:5,QUIT_GROUP:8,AVCHATROOM_MEMBER_BANNED:21},il=60,rl=2603,al=2686,cl=2688,ul=3122;class ll{constructor(e){const{core:t,manager:s,groupID:n,getRequestParams:o,onSuccess:i,onFail:r}=e;this._name="Polling",this._core=t,this._manager=s,this._timeoutID=-1,this._isRunning=!1,this._groupID=n,this._getRequestParams=o,this._onSuccess=i,this._onFail=r}start(){this._isRunning=!0,this._request(),console.log(`${this._name}.start pollingInterval:${this._manager.getCurrentPollingInterval(this._groupID)}`)}isRunning(){return this._isRunning}_request(){return de(this,void 0,void 0,function*(){try{const e=this._getRequestParams(this._groupID),t=yield function(e,t){return de(this,void 0,void 0,function*(){const{longPollingKey:s,startSequence:n,startBroadcastSeq:o,simplifiedMessage:i}=e,r={Key:s,StartSeq:n,StartBroadcastSeq:o,DownsizeFlag:i,USP:1,HoldTime:90};return t.common.buildAndSendPacket({servcmd:"group_open_long_polling_http_svc.get_msg",data:r})})}(e,this._core);this._onSuccess(this._groupID,t);const s=this._manager.getCurrentPollingInterval(this._groupID);this._runNextPolling(s)}catch(e){this._onFail(this._groupID,e),this._runNextPolling(2e3)}})}_runNextPolling(e){this.isRunning()&&(this._timeoutID>-1&&clearTimeout(this._timeoutID),this._timeoutID=setTimeout(this._request.bind(this),e))}stop(){console.log(`${this._name}.stop timerID:${this._timeoutID}`),this._timeoutID>-1&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}class dl{constructor(e){this._maxLength=e,this._map=new Map}set(e){var t;if(this._map.size>=this._maxLength){const e=(null===(t=this._map.entries().next().value)||void 0===t?void 0:t[0])||"";this._map.delete(e)}this._map.set(e,1)}has(e){return this._map.has(e)}delete(e){this.has(e)&&this._map.delete(e)}clear(){this._map.clear()}}const hl=e=>e===nl.GROUP_TIPS_HAS_NO_ROAMING||e===nl.GROUP_TIPS_HAS_ROAMING,gl=e=>e===nl.GROUP_SYSTEM_MESSAGE;function pl(e){const t=function(e){const{E:t,MCT:s,MR:n,MP:o,MTS:i,GId:r,MS:a,CCD:c,F_Account:u,IsSys:l,GInf:d,MsgBody:h}=e,g=le(e,["E","MCT","MR","MP","MTS","GId","MS","CCD","F_Account","IsSys","GInf","MsgBody"]);return Object.assign({Event:t,MsgClientTime:s,MsgRandom:n,MsgPriority:o,MsgTimeStamp:i,ToGroupId:r,MsgSeq:a,CloudCustomData:c,From_Account:u,IsSystemMsg:l,GroupInfo:_l(d),MsgBody:ml(h)},g)}(e);return function(e){const{Event:t}=e;(hl(t)||gl(t))&&(e.From_Account=e.From_Account||"@TIM#SYSTEM");s=t,(s===nl.BROADCAST_MESSAGE||(e=>e===nl.NORMAL_MESSAGE)(t))&&function(e){const{core:{OuterConstant:t}}=el;e.CloudCustomData=e.CloudCustomData||"",e.MsgBody=e.MsgBody.map(e=>{if(e.MsgType===t.MSG_CUSTOM){const{content:t={}}=e;e.content=Object.assign({Data:"",Desc:"",Ext:""},t)}return e})}(e);var s;hl(t)&&function(e){const{GroupJoinType:t,MsgOperatorMemberExtraInfo:s={},MsgMemberExtraInfo:n,Operator_Account:o,List_Account:i,OpType:r}=e.MsgBody||{};"number"==typeof t||1!==r&&2!==r||(e.MsgBody.GroupJoinType=2===r?0:1);n||(e.MsgBody.MsgMemberExtraInfo=null==i?void 0:i.map(e=>({UserId:e})));1!==r||n||(e.MsgBody.MsgMemberExtraInfo=[{UserId:s.UserId}]);e.MsgBody.MsgOperatorMemberExtraInfo=Object.assign({Operator_Account:o,ImageUrl:"",NickName:""},s)}(e);gl(t)&&function(e){const{MsgOperatorMemberExtraInfo:t={},Operator_Account:s}=e.MsgBody||{};e.MsgBody.MsgMemberExtraInfo=Object.assign({UserId:s,ImageUrl:"",NickName:""},t),e.MsgBody=Object.assign({Authentication:"",RemarkInfo:"",MsgKey:1e3*e.MsgTimeStamp},e.MsgBody),e.MsgBody=Object.keys(e.MsgBody).filter(e=>"MsgOperatorMemberExtraInfo"!==e).reduce((t,s)=>Object.assign(Object.assign({},t),{[s]:e.MsgBody[s]}),{})}(e)}(t),t}function _l(e){const t=e||{},{GN:s,GT:n,F_Hd:o,F_NN:i,F_Ll:r}=t,a=le(t,["GN","GT","F_Hd","F_NN","F_Ll"]),c=Object.assign({GroupName:s,GroupType:n},a);return o&&(c.From_AccountHeadurl=o),i&&(c.From_AccountNick=i),r&&(c.From_AccountLevel=r),c}function ml(e){let t=e;Array.isArray(e)||(t=[e]);const s=t.map(e=>{const{O_Account:t,Opt:s,L_Account:n,RT:o,UDF:i,OpInf:r,OnlineInf:a,MsgMemberExtraInfo:c}=e,u=le(e,["O_Account","Opt","L_Account","RT","UDF","OpInf","OnlineInf","MsgMemberExtraInfo"]),l=Object.assign({Operator_Account:t,OpType:s,List_Account:n,ReportType:o,UserDefinedField:i},u);return r&&(l.MsgOperatorMemberExtraInfo=function(e){const{Img:t,NN:s}=e,n=le(e,["Img","NN"]);return Object.assign({ImageUrl:t,NickName:s},n)}(r)),c&&(l.MsgMemberExtraInfo=function(e){return null==e?void 0:e.map(e=>{const{Img:t,NN:s}=e,n=le(e,["Img","NN"]);return Object.assign({ImageUrl:t,NickName:s},n)})}(c)),a&&(l.OnlineMemberInfo=function(e){const{ET:t,Num:s}=e;return{ExpireTime:t,OnlineMemberNum:s}}(a)),l});return Array.isArray(e)?s:s[0]}var vl=new class{constructor(){this._name="MessageParser",this._sequenceList=new dl(200),this._messageIDList=new dl(100),this._broadcastMessageIDMap=new Map,this._reportMessageStackedCount=0}init(e,t){this._core=e,this._avChatRoomHandler=t}onMessageReceived(e,t,s=!1){this._sortServerMessageList({groupID:e,serverMessageList:t,isHistoryMessage:s});const n=this._handleMessageList(e,t);if(0===n.length)return;if(!s){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core,o=(e=>{const{core:{common:{getMessagePreviewText:t}}}=el;return{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:t(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}})(n[n.length-1]);t.updateConversation(`${s}${e}`,{lastMessage:o})}this._checkMessageStacked(n);const o=n.filter(e=>!0===e.isModified),i=n.filter(e=>!1===e.isModified),{OuterEvent:{MESSAGE_RECEIVED:r,MESSAGE_MODIFIED:a}}=this._core;o.length>0&&this._emitEvent({name:a,data:o}),i.length>0&&this._emitEvent({name:r,data:i})}_sortServerMessageList(e){const{groupID:t,serverMessageList:s,isHistoryMessage:n}=e;let o=[];this._avChatRoomHandler.isPollingSimplifiedMessage()&&!n?(s.sort((e,t)=>e.MS-t.MS),o=s.map(e=>e.MS)):(s.sort((e,t)=>e.MsgSeq-t.MsgSeq),o=s.map(e=>e.MsgSeq)),console.log(`${this._name}._sortServerMessageList groupID:${t} count:${o.length} sequenceList:${o}`),o.length=0}_handleMessageList(e,t){var s;const{message:{messageDataHandler:n,messageHelper:o}}=this._core,i=this._avChatRoomHandler.isPollingSimplifiedMessage(),r=[],a=t.length;for(let c=0;c<a;c++){let a=t[c];if(i&&(a=pl(a)),gl(a.Event)&&Object.values(ol).includes(a.MsgBody.ReportType)){this._onGroupDismissed(e);break}if(null===this._filterMessageItem(a))continue;this._patchMessageType(a);const u=o.parseServerGroupMessage(a),l=this._createMessage(u);if(l.level=a.GroupInfo.From_AccountLevel,hl(a.Event)){const e=Object.assign(Object.assign({},u),{elements:Object.assign({},(null===(s=null==u?void 0:u.elements)||void 0===s?void 0:s.content)||{})});if(this._avChatRoomHandler.isGroupAttributesUpdated(e)){this._avChatRoomHandler.handleGroupAttributesUpdated(e);continue}if(this._avChatRoomHandler.isGroupCounterUpdated(e)){this._avChatRoomHandler.handleGroupCounterUpdated(e);continue}}null!==this._filterDuplicateMessage(l)&&(n.isMessageSentByCurrentInstance(l)||(1===u.isModified&&(l.isModified=!0),hl(a.Event)&&this._updateLocalOnlineMemberCountFromTips(a),r.push(l)))}return r}_patchMessageType(e){const{OuterConstant:t}=this._core;hl(e.Event)&&(e.MsgBody.MsgType=t.MSG_GRP_TIP),gl(e.Event)&&(e.MsgBody.MsgType=t.MSG_GRP_SYS_NOTICE)}_filterMessageItem(e){const{Event:t}=e;return Object.values(nl).includes(t)?(e=>e===nl.MESSAGE_REVOKED)(t)?(this._handleMessageRevoked(e),null):(e=>e===nl.LIVE_CUSTOM_DATA)(t)?(this._onLiveCustomData(e),null):(e=>e===nl.MESSAGE_REACTION)(t)?null:e:(console.warn(`${this._name}.onMessageReceived unknown event:${t}`),null)}_createMessage(e){const{message:{messageFactory:t},OuterConstant:s}=this._core;let n=s.CONV_GROUP;e.elements.type===s.MSG_GRP_SYS_NOTICE&&(n=s.CONV_SYSTEM);const o=!!e.isSystemMessage,i=t.createMessage(Object.assign(Object.assign({},e),{conversationType:n,isSystemMessage:o,flow:"in"}));return i.setElement(e.elements),i}_filterDuplicateMessage(e){const{common:t}=this._core;if(!t.isUnlimitedAVChatRoom()){if(this._sequenceList.has(e.sequence))return null;this._sequenceList.set(e.sequence)}const s=this._messageIDList.has(e.ID);return s?(console.warn(`${this._name}_filterDuplicateMessageItem ID:${e.ID} has:${s}`),null):(this._messageIDList.set(e.ID),e)}_handleMessageRevoked(e){const{OuterConstant:t,OuterEvent:{MESSAGE_REVOKED:s}}=this._core,{ToGroupId:n,MsgBody:{RevokeMsgList:o},RevokerInfo:{Revoker_Account:i,Reason:r=""}}=e,a=[];o.forEach(e=>{const{TinyId:s,MsgClientTime:o,Random:c,MsgSeq:u}=e,l={conversationID:`${t.CONV_GROUP}${n}`,ID:`${s}-${o}-${c}`,revoker:i,revokeReason:r,revokerInfo:{userID:i,nick:"",avatar:""},sequence:u};a.push(l)}),0!==a.length&&this._emitEvent({name:s,data:a})}_onLiveCustomData(e){const{OuterEvent:{ROOM_CUSTOM_DATA_RECEIVED:t}}=this._core,{ToGroupId:s,MsgSeq:n,MsgTimeStamp:o,MsgBody:i}=e,r=(null==i?void 0:i.Content)||(null==i?void 0:i.MsgContent)||"";this._emitEvent({name:t,data:r}),console.log(`${this._name}._onLiveCustomData groupID:${s} sequence:${n} time:${o} data:${r}`)}_onGroupDismissed(e){this._avChatRoomHandler.reset(e)}_checkMessageStacked(e){const{length:t}=e;if(t>=100&&this._reportMessageStackedCount<5){const e=this._avChatRoomHandler.getJoinedGroups();this._core.ssoLog.info("MessageStacked",`count:${t} groupID:${e.join(",")}`),this._reportMessageStackedCount+=1}}_emitEvent(e){this._core.notificationCenter.emitOuterEvent(e.name,e)}onBroadcastMessageReceived(e){const{message:{messageHelper:t},OuterEvent:{MESSAGE_RECEIVED:s}}=this._core,n=this._avChatRoomHandler.isPollingSimplifiedMessage(),o=[],i=e.length;for(let s=0;s<i;s++){let i=e[s];n&&(i=pl(i));const r=t.parseServerGroupMessage(i);if(!Object.values(nl).includes(i.Event)){console.warn(`${this._name}.onBroadcastMessageReceived unknown event:${i.Event}`);continue}const a=this._createMessage(r);a.isBroadcastMessage=!0,this._broadcastMessageIDMap.has(a.ID)||(o.push(a),this._broadcastMessageIDMap.set(a.ID,1))}o.length>0&&this._emitEvent({name:s,data:o})}_updateLocalOnlineMemberCountFromTips(e){const{utils:{isEmpty:t}}=this._core,{ToGroupId:s,MsgBody:{OnlineMemberInfo:n}}=e;if(t(n))return;const{OnlineMemberNum:o=0,ExpireTime:i=il}=n,r=Date.now();let a=this._avChatRoomHandler.getLocalOnlineMemberCount(s);t(a)?a={lastReqTime:0,lastSyncTime:0,latestUpdateTime:r,memberCount:o,expireTime:i}:(a.latestUpdateTime=r,a.memberCount=o),this._avChatRoomHandler.updateLocalOnlineMemberCount(s,a)}reset(){this._reportMessageStackedCount=0,this._sequenceList.clear(),this._messageIDList.clear(),this._broadcastMessageIDMap.clear()}};const fl=e=>{const{core:{store:t}}=el;return(t.get("cloudConfig")||{})[e]},Il=e=>{const{core:{utils:{isUndefined:t}}}=el;return!t(e)},El=()=>{const e=fl("polling_interval");return Il(e)?parseInt(e,10):300},Cl=()=>{const e=fl("polling_simplified_msg");return Il(e)?parseInt(e,10):0};var Sl=new class{constructor(){this._name="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this._onlineMemberCountMap=new Map,this._pollingIntervalMap=new Map,this._pollingNoMessageCountMap=new Map,this._membersReqInfoMap=new Map,this._startBroadcastSequence=1}init(e,t){this._core=e,this._parentPlugin=t,vl.init(e,this),e.ssoLog.debug("AVChatRoomHandler.init")}onAVChatRoomSystemNotification(e){const{OuterConstant:{GRP_AVCHATROOM:t}}=this._core,{GroupTips:s=[]}=e;for(let e=0;e<s.length;e++){const{MsgBody:n,GroupInfo:{GroupId:o,GroupType:i}}=s[e],r=Object.values(ol).includes(n.ReportType);i===t&&r&&this.reset(o)}}getCurrentPollingInterval(e){return this._pollingIntervalMap.get(e)||El()}isPollingSimplifiedMessage(){return 0!==Cl()}isGroupAttributesUpdated(e){return this._parentPlugin.groupAttribute.isGroupAttributesUpdated(e)}handleGroupAttributesUpdated(e){this._parentPlugin.groupAttribute.handleGroupAttributesUpdated(e)}updateLocalOnlineMemberCount(e,t){this._onlineMemberCountMap.set(e,t)}getLocalOnlineMemberCount(e){return this._onlineMemberCountMap.get(e)||{}}hasPollingInstance(e){return this._pollingInstanceMap.has(e)}getJoinedLiveList(){const{OuterConstant:{GRP_LIVE:e}}=this._core;let t=[];return this._joinedGroupMap.size>0&&(t=[...this._joinedGroupMap.values()].filter(t=>t.type===e)),t}handleJoinGroupResult(e){return de(this,void 0,void 0,function*(){const{utils:{isUndefined:t},OuterConstant:{CONV_GROUP:s},apiMap:{getConversationProfile:n},OuterConstant:o}=this._core,{longPollingKey:i,group:r,historyMessageList:a=[]}=e,{groupID:c}=r;if(yield this._preCheck(r),this._joinedGroupMap.set(c,r),this._parentPlugin.groupDataHandler.updateLocalGroup([r]),this._parentPlugin.groupDataHandler.emitGroupListUpdate(),n(`${s}${c}`),a.length>0&&vl.onMessageReceived(c,a,!0),!t(i)){return{code:0,data:this.startMessageLongPolling(e)}}return{code:0,data:{status:o.JOIN_STATUS_SUCCESS,group:r}}})}isGroupCounterUpdated(e){return this._parentPlugin.groupCounter.isGroupCounterUpdated(e)}handleGroupCounterUpdated(e){this._parentPlugin.groupCounter.handleGroupCounterUpdated(e)}_preCheck(e){return de(this,void 0,void 0,function*(){const{common:t,OuterConstant:s,helper:n,apiMap:{quitGroup:o},ssoLog:i}=this._core;if(t.isUnlimitedAVChatRoom()){if(this._pollingInstanceMap.size>(()=>{const e=fl("polling_count_limit");return Il(e)&&e>0?parseInt(e,10):20})())throw new n.ChatError({code:cl,message:"the count of longPolling exceeds the max limit"});return}if(0===this._joinedAVChatRoomCount())return;if(e.type===s.GRP_LIVE)return;const[r,a]=this._joinedGroupMap.entries().next().value;if(a.selfInfo.role===s.GRP_MBR_ROLE_OWNER)this._parentPlugin.groupDataHandler.deleteLocalGroup(r);else try{yield o(r)}catch(e){i.debug("quitGroup",`${this._name}._preCheck quitGroup failed, groupID:${r} info:`,e)}this.reset(r)})}startMessageLongPolling(e){const{OuterConstant:t}=this._core,{longPollingKey:s,startSequence:n=1,group:o}=e,{groupID:i}=o;return this._pollingRequestInfoMap.set(i,{longPollingKey:s,startSequence:n}),this._pollingIntervalMap.set(i,El()),this._startPolling(i),this._reportLongPollingCount(),{status:t.JOIN_STATUS_SUCCESS,group:o}}_startPolling(e){if(this._core.ssoLog.debug("_startPolling",`${this._name}._startPolling groupID:${e}`),this._pollingInstanceMap.has(e)){const t=this._pollingInstanceMap.get(e);return void((null==t?void 0:t.isRunning())||null==t||t.start())}const t=new ll({core:this._core,manager:this,groupID:e,getRequestParams:this._handleRequestParams.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});t.start(),this._pollingInstanceMap.set(e,t)}_handleRequestParams(e){const{longPollingKey:t,startSequence:s}=this._pollingRequestInfoMap.get(e)||{};return e===[...this._pollingInstanceMap.keys()][0]?{longPollingKey:t,startSequence:s,startBroadcastSeq:this._startBroadcastSequence,simplifiedMessage:Cl()}:{longPollingKey:t,startSequence:s,simplifiedMessage:Cl()}}_handleSuccess(e,t){const{ErrorCode:s}=t;if(0!==s){const{longPollingKey:t,startSequence:n}=this._pollingRequestInfoMap.get(e)||{};return void console.warn(`${this._name}._handleSuccess groupID:${e} key:${t} startSeq:${n} errorCode:${s}`)}this._hasJoinedAVChatRoom(e)&&this._handleResponseData(e,t)}_handleResponseData(e,t){const{Key:s,NextSeq:n,NextBroadcastSeq:o,RspMsgList:i=[],RspBroadcastMsgList:r=[]}=t;if(s&&n&&this._pollingRequestInfoMap.set(e,{longPollingKey:s,startSequence:n}),o&&o>this._startBroadcastSequence&&(this._startBroadcastSequence=o),i.length>0)0!==this._getPollingNoMessageCount(e)&&(this._updatePollingNoMessageCount(e,0),this._pollingIntervalMap.set(e,El())),vl.onMessageReceived(e,i);else{let t=this._getPollingNoMessageCount(e);if(t+=1,this._updatePollingNoMessageCount(e,t),t===(()=>{const e=fl("polling_no_msg_count");return Il(e)?parseInt(e,10):20})()){const t=El()+(()=>{const e=fl("polling_interval_plus");return Il(e)?parseInt(e,10):2e3})();this._pollingIntervalMap.set(e,t)}}r.length>0&&vl.onBroadcastMessageReceived(r)}_handleFailure(e,t){const{ssoLog:s,utils:{safeStringify:n}}=this._core;s.warn("polling",`${this._name}._handleFailure groupID:${e} error: ${n(t)}`)}_joinedAVChatRoomCount(){const{OuterConstant:e}=this._core;let t=[];return this._joinedGroupMap.size>0&&(t=this.getJoinedGroups().filter(t=>t.type===e.GRP_AVCHATROOM)),t.length}_hasJoinedAVChatRoom(e){return this._joinedGroupMap.has(e)}getJoinedGroups(){return[...this._joinedGroupMap.values()]}updateLocalLiveGroup(e,t){this._joinedGroupMap.set(e,t),this._parentPlugin.groupDataHandler.updateLocalGroup([t])}handleLiveHistoryMessages(e,t){vl.onMessageReceived(e,t,!0)}isOverFrequencyLimit(e){if(!this._membersReqInfoMap.has(e))return this._membersReqInfoMap.set(e,{startTime:Date.now(),requestCount:1}),!1;let{startTime:t,requestCount:s}=this._membersReqInfoMap.get(e);const{interval:n,count:o}=(()=>{const e=fl("av_members_freq_limit");if(Il(e)){const{interval:t,count:s}=JSON.parse(e);if(s>0&&t>0)return{interval:t,count:s}}return{interval:30,count:4}})();return Date.now()-t>1e3*n?(this._membersReqInfoMap.set(e,{startTime:Date.now(),requestCount:1}),!1):(s+=1,this._membersReqInfoMap.set(e,{startTime:t,requestCount:s}),s>o)}_stopPolling(e){if(this._core.ssoLog.debug("_stopPolling",`${this._name}._stopPolling groupID:${e}`),e){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core;t.deleteConversation(`${s}${e}`);const n=this._pollingInstanceMap.get(e);return null==n||n.stop(),this._parentPlugin.groupDataHandler.deleteLocalGroup(e),this._pollingInstanceMap.delete(e),this._pollingRequestInfoMap.delete(e),this._joinedGroupMap.delete(e),this._onlineMemberCountMap.delete(e),this._pollingIntervalMap.delete(e),this._pollingNoMessageCountMap.delete(e),void this._membersReqInfoMap.delete(e)}for(const e of this._pollingInstanceMap.values())null==e||e.stop();this._pollingInstanceMap.clear(),this._pollingRequestInfoMap.clear(),this._joinedGroupMap.clear(),this._onlineMemberCountMap.clear(),this._pollingIntervalMap.clear(),this._pollingNoMessageCountMap.clear(),this._membersReqInfoMap.clear()}_updatePollingNoMessageCount(e,t){this._pollingNoMessageCountMap.set(e,t)}_getPollingNoMessageCount(e){return this._pollingNoMessageCountMap.get(e)||0}_reportLongPollingCount(){const e=this._joinedGroupMap.size;if(e>1){const{common:t,OuterConstant:s,ssoLog:n}=this._core,o=t.isUnlimitedAVChatRoom()?1:0,i=[],r=[];this._joinedGroupMap.values().forEach(({groupID:e,type:t})=>{t===s.GRP_LIVE?r.push(e):i.push(e)}),n.info("longPollingCount",String(e),{moreMessage:`av:${i.join(",")} live:${r.join(",")} code: ${o}`,eventType:29})}}reset(e){this._stopPolling(e),this._startBroadcastSequence=1,vl.reset()}};var Ml=new class{init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"joinGroup",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}joinGroup(e){return de(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=yield this._parentPlugin.groupAction.joinGroup(e),{data:{status:n,group:{type:o}}}=s;return o===t.GRP_AVCHATROOM?n===t.JOIN_STATUS_ALREADY_IN_GROUP?s:Sl.handleJoinGroupResult(s.data):s})}};var yl=new class{init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"quitGroup",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}quitGroup(e){return de(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=yield this._parentPlugin.groupAction.quitGroup(e),{data:{type:n}}=s;return n===t.GRP_AVCHATROOM&&Sl.reset(e),s})}};var Ol=new class{init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"dismissGroup",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}dismissGroup(e){return de(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=yield this._parentPlugin.groupAction.dismissGroup(e),{data:{type:n}}=s;return n===t.GRP_AVCHATROOM&&Sl.reset(e),s})}};var Al=new class{constructor(){this._name="GetAVChatRoomMemberList"}init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}getGroupMemberList(e){return de(this,void 0,void 0,function*(){const{appStore:{groupStore:t},helper:s,OuterConstant:n}=this._core,{groupID:o}=e,i=t.getGroup(o);if((null==i?void 0:i.type)===n.GRP_AVCHATROOM){if(s.checkBusinessCapabilityBits(tl)){if(Sl.isOverFrequencyLimit(o)){throw{code:2996,message:`Over frequency limit: get_members-${o}`}}return this._getGroupMemberList(e)}}return this._parentPlugin.groupMember.getGroupMemberList(e)})}_getGroupMemberList(e){return de(this,void 0,void 0,function*(){const t="_getGroupMemberList",{helper:s}=this._core;try{const s=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,offset:n=0}=e,o={GroupId:s,Timestamp:n};return t.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.get_members",data:o})})}(e,this._core),{MemberList:n=[],NextTimestamp:o=0}=s||{},i=this._handleMemberList(n);return console.log(`${this._name}.${t} ok, groupID:${e.groupID} count:${i.length} nextOffset:${o}`),{code:0,data:{memberList:i,offset:o}}}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}})}_handleMemberList(e){return e.map(e=>{const{Member_Account:t,NickName:s="",Avatar:n="",Remark:o="",JoinTime:i=0,Marks:r=[]}=e;return{userID:t,nick:s,avatar:n,remark:o,joinTime:i,marks:r,isOnline:!0}})}};var Tl=new class{constructor(){this._name="GetAVChatRoomOnlineMemberCount"}init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}getGroupOnlineMemberCount(e){return de(this,void 0,void 0,function*(){const{appStore:{groupStore:t},OuterConstant:s}=this._core,n=t.getGroup(e);return n?n.type===s.GRP_AVCHATROOM?this._getOnlineMemberCount(e):this._parentPlugin.groupAction.getGroupOnlineMemberCount(e):{code:0,data:{memberCount:0}}})}_getOnlineMemberCount(e){return de(this,void 0,void 0,function*(){const t="_getOnlineMemberCount",{utils:{isEmpty:s}}=this._core,n=Sl.getLocalOnlineMemberCount(e);if(s(n)||this._isExpired(e)){const{memberCount:s=0}=yield this._getOnlineMemberCountFromServer(e);return console.log(`${this._name}.${t} ok, groupID:${e} memberCount:${s} from server.`),{code:0,data:{memberCount:s}}}return console.log(`${this._name}.${t} ok, groupID:${e} memberCount:${n.memberCount} from local.`),{code:0,data:{memberCount:n.memberCount}}})}_isExpired(e){const t=Sl.getLocalOnlineMemberCount(e),s=Date.now(),n=s-t.lastSyncTime>1e3*t.expireTime,o=s-t.latestUpdateTime>1e4,i=s-t.lastReqTime>3e3;return n&&o&&i}_getOnlineMemberCountFromServer(e){return de(this,void 0,void 0,function*(){const t="_getOnlineMemberCountFromServer";try{const t=yield function(e,t){return de(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:s})})}(e,this._core),{OnlineMemberNum:s=0,ExpireTime:n=il}=t||{},o=Date.now(),i={lastSyncTime:o,latestUpdateTime:o,lastReqTime:o,memberCount:s,expireTime:n};return Sl.updateLocalOnlineMemberCount(e,i),{memberCount:s}}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 Rl=new class{constructor(){this._name="DeleteAVChatRoomMember"}init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}deleteGroupMember(e){return de(this,void 0,void 0,function*(){const t="deleteGroupMember",{appStore:{groupStore:s},utils:{isUndefined:n},helper:o,OuterConstant:i}=this._core,{groupID:r}=e,a=s.getGroup(r);if(n(a))throw new o.ChatError({functionName:t,code:rl});if(a.type===i.GRP_AVCHATROOM){if(o.checkBusinessCapabilityBits(sl))return this._deleteGroupMember(e);throw new o.ChatError({functionName:t,code:ul})}return this._parentPlugin.groupMember.deleteGroupMember(e)})}_deleteGroupMember(e){return de(this,void 0,void 0,function*(){const t="_deleteGroupMember",{appStore:{groupStore:s},helper:n,ssoLog:o}=this._core,{groupID:i,duration:r=0,userIDList:a}=e;if(0===r)throw new n.ChatError({functionName:t,code:al});try{yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,userIDList:n,duration:o,reason:i}=e,r={GroupId:s,Members_Account:n,Duration:o,Description:i};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.ban_group_member",data:r})})}(e,this._core),o.debug(t,`${this._name}.${t} ok, groupID:${i}`);return{code:0,data:{group:s.getGroup(i),userIDList:a}}}catch(e){throw new n.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var Dl=new class{constructor(){this._name="MarkAVChatRoomMember"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"markGroupMemberList",context:this})}markGroupMemberList(e){return de(this,void 0,void 0,function*(){const t="markGroupMemberList",{groupID:s,markType:n,enableMark:o,userIDList:i=[]}=e,r=this._generateRequestData(e);try{const e=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,operationType:n,memberList:o}=e,i={GroupId:s,CommandType:n,MemberList:o};return t.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.modify_user_info",data:i})})}(r,this._core),{MemberList:a=[]}=e||{},{successUserIDList:c,failureUserIDList:u}=this._handleResult(a,i);return{code:0,data:{successUserIDList:c,failureUserIDList:u},successLog:{message:`${this._name}.${t} ok, groupID:${s} markType:${n} enableMark:${o} success:${c.length} fail:${u.length}`}}}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_generateRequestData(e){const{groupID:t,markType:s,enableMark:n,userIDList:o=[]}=e,i=!0===n?1:2,r=[...o];r.length>500&&console.warn(`${this._name}._generateRequestData, the length of userIDList cannot exceed 500`);return{groupID:t,operationType:i,memberList:r.map(e=>({Member_Account:e,Marks:[s]}))}}_handleResult(e,t){const s=[],n=[];return e.length===t.length?(s.push(...t),{successUserIDList:s,failureUserIDList:n}):(t.forEach(t=>{e.find(e=>e.Member_Account===t)?s.push(t):n.push(t)}),{successUserIDList:s,failureUserIDList:n})}};var bl=new class{init(e,t){e.ssoLog.debug("AVChatRoomAction.init"),Ml.init(e,t),yl.init(e,t),Ol.init(e,t),Al.init(e,t),Tl.init(e,t),Rl.init(e,t),Dl.init(e)}};var Nl=new class{constructor(){this._name="LiveHandler"}init(e){this._core=e;const{helper:t,ssoLog:s}=e;t.registerExperimentalAPI("startMessageLongPolling",this),t.registerExperimentalAPI("stopMessageLongPolling",this),s.debug("LiveHandler.init")}startMessageLongPolling(e){const{common:t,utils:{isEmpty:s},OuterConstant:n,ssoLog:o}=this._core,{groupID:i,longPollingKey:r,longPollingSequence:a=1}=e;if(s(r))return o.warn("startMessageLongPolling",`${this._name}.startMessageLongPolling longPollingKey is empty.`),Promise.resolve({});Sl.hasPollingInstance(i)&&this.stopMessageLongPolling({groupID:i});const c=Sl.getJoinedLiveList(),u=t.isUnlimitedAVChatRoom();!u&&c.length>0&&this.stopMessageLongPolling({groupID:c[0].groupID}),o.debug("startMessageLongPolling",`${this._name}.startMessageLongPolling isUnlimited:${u} groupID:${i} longPollingKey:${r} longPollingSequence:${a}`);const l={groupID:i,type:n.GRP_LIVE};return Sl.updateLocalLiveGroup(i,l),this._getLiveHistoryMessages({groupID:i,longPollingKey:r,startSequence:a}),Sl.startMessageLongPolling({group:l,longPollingKey:r,startSequence:a})}stopMessageLongPolling(e){const{groupID:t}=e;return Sl.reset(t),this._core.ssoLog.debug("stopMessageLongPolling",`${this._name}.stopMessageLongPolling ok, groupID:${t}`),Promise.resolve({groupID:t})}_getLiveHistoryMessages(e){return de(this,void 0,void 0,function*(){const{ssoLog:t}=this._core,{groupID:s}=e;try{const n=yield function(e,t){return de(this,void 0,void 0,function*(){const{groupID:s,longPollingKey:n,startSequence:o}=e,i={GroupId:s,LongPollingKey:n,PullPreSeq:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_huge_group_msg",data:i})})}(e,this._core),{RspMsgList:o=[]}=n||{};t.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages ok, groupID:${s} count:${o.length}`),o.length>0&&Sl.handleLiveHistoryMessages(s,o)}catch(e){t.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages failed, groupID:${s} info:${e.message}`)}})}};var Ll=new class{constructor(){this.name="AVChatRoom"}install(e,t){this._core=e,el.init(e),Sl.init(e,t),bl.init(e,t),Nl.init(e);const{notificationCenter:s,InnerEvent:n}=e,{InnerEventSubType:o}=s;s.subscribeInnerEvent(n.MESSAGE_PUSH,o.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),s.subscribeInnerEvent(n.LOGOUT,this._reset,this),s.subscribeInnerEvent(n.DESTROY,this._dispose,this)}_onAVChatRoomSystemNotification(e){Sl.onAVChatRoomSystemNotification(e)}_reset(){Sl.reset()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core,{InnerEventSubType:s}=e;e.unSubscribeInnerEvent(t.MESSAGE_PUSH,s.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Pl=new class{init(e){this.core=e}};const Gl="message",wl="user",Ul={OR:"or",AND:"and"},kl=20,Fl=20,$l=20,xl={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>!e||(!!(Array.isArray(e)&&e.length<=5)||"keywordList should be an array and length <= 5")},ql={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>!e||(!![Ul.OR,Ul.AND].includes(e)||"keywordListMatchType should be OR or AND")},Vl={required:!1,rules:["number"],allowEmpty:!0,customValidator:e=>"number"==typeof e&&e>=1&&e<=100||"count must be a number between 1 and 100"},Bl={required:!1,rules:["string"],allowEmpty:!0},jl={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Pl.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"}},Hl={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Pl.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"}},Kl={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Pl.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"}},Wl=e=>({required:!1,rules:["number"],allowEmpty:!0,customValidator:t=>"number"==typeof t&&t>=0||`${e} should be a number >= 0';`}),Yl={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Pl.core;return!![t.GENDER_FEMALE,t.GENDER_MALE].includes(e)||"gender is invalid"}},zl={searchCloudMessages:{keywordList:xl,keywordListMatchType:ql,cursor:Bl,senderUserIDList:{required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>!!(Array.isArray(e)&&e.length<=5)||"senderUserIDList should be an array and length <= 5"},messageTypeList:Hl,conversationID:Kl,timePosition:Wl("timePosition"),timePeriod:Wl("timePeriod")},searchCloudUsers:{keywordList:xl,keywordListMatchType:ql,cursor:Bl,count:Vl,miniBirthday:Wl("miniBirthday"),maxBirthday:Wl("maxBirthday"),gender:Yl},searchCloudGroupMembers:{keywordList:xl,keywordListMatchType:ql,cursor:Bl,count:Vl,groupTypeList:jl,groupIDList:{required:!1,rules:["array"],allowEmpty:!0}},searchCloudGroups:{keywordList:xl,keywordListMatchType:ql,cursor:Bl,count:Vl,groupTypeList:jl}},Jl={searchCloudMessages:!0,searchCloudUsers:!0,searchCloudGroupMembers:!0,searchCloudGroups:!0};var Ql=new class{constructor(){this.name="CloudSearch"}install(e){this._core=e,Pl.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:Jl,params:zl})}searchCloudMessages(e){return de(this,void 0,void 0,function*(){try{const{OuterConstant:t,helper:s}=this._core,{conversationID:n,timePeriod:o,timePosition:i}=e,r=le(e,["conversationID","timePeriod","timePosition"]),a=Object.assign({count:100},r);n&&(n.startsWith(t.CONV_C2C)?a.account=n.replace(t.CONV_C2C,""):n.startsWith(t.CONV_GROUP)&&(a.groupID=n.replace(t.CONV_GROUP,""))),this._setTimeRangeParams(a,{timePeriod:o,timePosition:i});const c=yield function(e){return de(this,void 0,void 0,function*(){const{count:t,keywordList:s,keywordListMatchType:n,senderUserIDList:o,messageTypeList:i,endTime:r,startTime:a,cursor:c,account:u,groupID:l}=e,d={Count:t,KeywordList:s,MatchType:n,SendUserIDList:o,MsgTypeList:i,EndTime:r,StartTime:a,Cursor:c,PeerAccount:u,GroupID:l};return Pl.core.common.buildAndSendPacket({servcmd:"message_search.query",data:d})})}(a);if(!c)return{code:0,data:{}};const{ErrorCode:u,ErrorInfo:l,TotalCount:d,Cursor:h="",ConversationMsgs:g=[]}=c;if(0!==u)throw{errorCode:u,errorInfo:l};const p=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} res: totalCount:${d}`,_=g.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 u=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:u}});return{code:0,data:{searchResultList:_,cursor:h,totalCount:d},successLog:{message:p}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:Gl,functionName:"searchCloudMessages"})}})}searchCloudUsers(e){return de(this,void 0,void 0,function*(){var t;try{const{keywordListMatchType:s,count:n=Fl}=e,o=le(e,["keywordListMatchType","count"]),i=Object.assign({count:n,keywordListMatchType:s===Ul.AND?1:0},o);this._setBirthdayRangeParams(i,e);const r=yield function(e){return de(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 Pl.core.common.buildAndSendPacket({servcmd:"user_search.query",data:c})})}(i);if(!r)return{error:0,data:{}};const{ErrorCode:a,ErrorInfo:c,TotalCount:u,Cursor:l="",Users:d=[]}=r;if(0!==a)throw{errorCode:a,errorInfo:c};const h=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${u}`,g=[];for(let e=0,s=d.length;e<s;e++){const{UserID:s,ProfileItems:n}=d[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);g.push(i)}return{code:0,data:{searchResultList:g,cursor:l,totalCount:u},successLog:{message:h}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:wl,functionName:"searchCloudUsers"})}})}searchCloudGroupMembers(e){return de(this,void 0,void 0,function*(){try{const{count:t=$l,keywordListMatchType:s}=e,n=le(e,["count","keywordListMatchType"]),o=Object.assign({count:t,keywordListMatchType:s===Ul.AND?1:0},n),i=yield function(e){return de(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 Pl.core.common.buildAndSendPacket({servcmd:"group_member_search.query",data:a})})}(o);if(!i)return{code:0,data:{}};const{ErrorCode:r,ErrorInfo:a,GroupMembers:c=[],Cursor:u,TotalCount:l}=i;if(0!==r)throw{errorCode:r,errorInfo:a};const d=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${l}`,h=new Map;return c.forEach(e=>{const{GroupID:t,GroupName:s,GroupType:n,GroupFaceUrl:o,GroupMemberUserName:i,GroupMemberUserID:r,GroupMemberNameCard:a,GroupMemberAvatar:c=""}=e,u={groupID:t,name:s,type:n,avatar:o},l={userID:r,nick:i,nameCard:a,avatar:c};if(h.has(t)){const e=h.get(t);e.memberList.push(l),h.set(t,e)}else h.set(t,{groupInfo:u,memberList:[l]})}),{code:0,data:{searchResultList:[...h.values()],cursor:u,totalCount:l},successLog:{message:d}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:wl,functionName:"searchCloudGroupMembers"})}})}searchCloudGroups(e){return de(this,void 0,void 0,function*(){try{const{count:t=kl,keywordListMatchType:s}=e,n=le(e,["count","keywordListMatchType"]),o=Object.assign({count:t,keywordListMatchType:s===Ul.AND?1:0},n),i=yield function(e){return de(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 Pl.core.common.buildAndSendPacket({servcmd:"group_search.query",data:r})})}(o);if(!i)return{code:0,data:{}};const{ErrorCode:r,ErrorInfo:a,Groups:c,Cursor:u,TotalCount:l}=i;if(0!==r)throw{errorCode:r,errorInfo:a};const d=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${l}`;return{code:0,data:{searchResultList:(null==c?void 0:c.map(e=>function(e){const{GroupFaceUrl:t,GroupID:s,GroupIntroduction:n,GroupMemberNum:o,GroupName:i,GroupOwnerTinyID:r,GroupOwnerUserID:a,GroupOwnerUserName:c,GroupType:u,GroupAddOption:l,GroupInviteOption:d}=e;return{avatar:t,groupID:s,introduction:n,memberCount:o,name:i,ownerTinyID:r,ownerID:a,ownerNick:c,type:u,joinOption:l,inviteOption:d}}(e)))||[],cursor:u,totalCount:l},successLog:{message:d}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:wl,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}){const{helper:n}=this._core;let o=e;60020===e?o="SearchUnable":s!==Gl&&27003===e?o="SearchParamsError":s!==Gl&&60018===e&&(o="SearchOverLimit");throw new n.ChatError({code:o,message:t})}_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)}};function Xl(e,t){return Math.round(Number(e)*Math.pow(10,t))/Math.pow(10,t)}const Zl="qualityStat",ed="im-ssolog-quality-stat";var td;!function(e){e[e.ONLINE=8]="ONLINE"}(td||(td={}));const sd="networkRTT",nd="messageE2EDelay",od="sendMessageC2C",id="sendMessageGroup",rd="sendMessageGroupAV",ad="sendMessageRichMedia",cd="cosUpload",ud="messageReceivedGroup",ld="messageReceivedGroupAVPush",dd="messageReceivedGroupAVPull",hd={[sd]:2,[nd]:3,[od]:4,[id]:5,[rd]:6,[ad]:7,[ud]:8,[ld]:9,[dd]:10,[cd]:11},gd=[od,id,rd,ad,cd],pd=[ud,ld,dd],_d=[sd,nd,od,id,rd,ad,cd,ud,ld,dd],md={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MSG_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},vd="quality_stat";var fd=new class{constructor(){this._messageStatsMap=new Map,this._userSideErrorCodes=new Set(Object.values(md))}init(e){this._core=e,Object.values(gd).forEach(e=>{this._messageStatsMap.set(e,{totalCount:0,successCount:0,failedCountOfUserSide:0,costSum:0,costCount:0,fileSizeSum:0})})}dispatchSendStats(e){const{name:t,message:s,error:n,startTs:o}=e,{SEND_MESSAGE_STAT:i}=this._core.constants;switch(t){case i.TOTAL_COUNT:this._handleTotalCount(s);break;case i.SUCCESS_COUNT:this._handleSuccessCount(s);break;case i.FAILED_COUNT:this._handleFailedCount(s,n);break;case i.SEND_COST:this._handleSendCost(s,o)}}getStatResult(e){const t=this._messageStatsMap.get(e);if(!t||0===t.totalCount)return null;const{totalCount:s,successCount:n,failedCountOfUserSide:o}=t,i=Xl(n/s*100,2),r=n+o,a=Xl(r/s*100,2),c=this._calcAverageValue(t,e);return this._resetStat(e),{total_count:s,success_count_business:n,percent_business:i,success_count_platform:r,percent_platform:a,average_value:c}}_handleTotalCount(e){const t=this._getSendMessageSpecifiedKey(e),s=t&&this._messageStatsMap.get(t);s&&s.totalCount++}_handleSuccessCount(e){const t=this._getSendMessageSpecifiedKey(e),s=t&&this._messageStatsMap.get(t);s&&s.successCount++}_handleFailedCount(e,t){var s;const n=null!==(s=null==t?void 0:t.code)&&void 0!==s?s:null==t?void 0:t.errorCode;if(this._isUserSideError(n)){const t=this._getSendMessageSpecifiedKey(e),s=t&&this._messageStatsMap.get(t);s&&s.failedCountOfUserSide++}}_handleSendCost(e,t){const s=this._getSendMessageSpecifiedKey(e),n=s&&this._messageStatsMap.get(s);n&&(n.costSum+=Date.now()-t,n.costCount++)}_isUserSideError(e){return this._userSideErrorCodes.has(e)||e>=120001&&e<=13e4||e>=10100&&e<=10200}_getSendMessageSpecifiedKey(e){const{MSG_IMAGE:t,MSG_AUDIO:s,MSG_VIDEO:n,MSG_FILE:o,CONV_C2C:i,CONV_GROUP:r,GRP_AVCHATROOM:a}=this._core.OuterConstant;if([t,s,n,o].includes(e.type))return ad;if(e.conversationType===i)return od;if(e.conversationType===r){const{groupStore:t}=this._core.appStore,s=t.getGroup(e.to);if(!s)return;const{type:n}=s;return n===a?rd:id}}_calcAverageValue(e,t){return 0===e.costCount?0:t===cd?Math.round(1e3*e.fileSizeSum/e.costSum):Math.round(e.costSum/e.costCount)}_resetStat(e){const t=this._messageStatsMap.get(e);t&&(t.totalCount=0,t.successCount=0,t.failedCountOfUserSide=0,t.costSum=0,t.costCount=0,t.fileSizeSum=0)}};var Id=new class{constructor(){this._lastCycleStats=new Map,this._currentCycleStats=new Map}init(e){this._core=e;const{OuterEvent:t,notificationCenter:s}=e;this._initStatsMap(),s.subscribeOuterEvent(t.MESSAGE_RECEIVED,this._onMessageReceived,this)}addMessageSequence(e){const t=this._getReceivedMessageSpecifiedKey(e),{utils:{isUndefined:s},OuterConstant:{CONV_GROUP:n},ssoLog:o}=this._core;if(s(t)||!this._currentCycleStats.has(t))return void o.warn("addMessageSequence",`${Zl}.addMessageSequence invalid key:${t}`);const{conversationID:i,sequence:r}=e,a=i.replace(n,""),c=this._lastCycleStats.get(t);if(0===c.size||!c.has(a))return void this._addToCurrentCycle(t,a,r);const u=c.get(a);r>u.minSeq&&r<u.maxSeq?this._insertToLastCycle(r,u):this._addToCurrentCycle(t,a,r)}getStatResult(e){const t=this._lastCycleStats.get(e);if(!t||0===t.size)return this._transferCycleDataOptimized(e),null;let s=0,n=0;return t.forEach(e=>{const{sortedSequences:t,minSeq:o,maxSeq:i}=e;t.length>0&&(n+=t.length,s+=i-o+1)}),0===s?null:(this._transferCycleDataOptimized(e),{total_count:s,success_count_business:n,percent_business:Xl(n/s*100,2)})}reset(){this._lastCycleStats.clear(),this._currentCycleStats.clear()}dispose(){const{notificationCenter:e,OuterEvent:{MESSAGE_RECEIVED:t}}=this._core;e.unSubscribeOuterEvent(t,this._onMessageReceived,this),this.reset()}_initStatsMap(){Object.values(pd).forEach(e=>{this._lastCycleStats.set(e,new Map),this._currentCycleStats.set(e,new Map)})}_onMessageReceived(e){const{data:t=[]}=e;t.forEach(e=>{this.addMessageSequence(e)})}_transferCycleDataOptimized(e){const t=this._currentCycleStats.get(e);if(!t)return;const s=new Map;t.forEach((e,t)=>{const n=e.dirty?[...e.sortedSequences].sort((e,t)=>e-t):e.sortedSequences;s.set(t,{sortedSequences:n,minSeq:e.minSeq,maxSeq:e.maxSeq,dirty:!1})}),this._lastCycleStats.set(e,s),this._currentCycleStats.set(e,new Map)}_getReceivedMessageSpecifiedKey(e){const{OuterConstant:{CONV_GROUP:t,GRP_AVCHATROOM:s}}=this._core;if(e.conversationType===t&&!0!==(null==e?void 0:e._onlineOnlyFlag)){const{groupStore:t}=this._core.appStore,n=t.getGroup(e.to);if(!n)return null;const{type:o}=n;return o===s?dd:ud}}_insertToLastCycle(e,t){t.dirty&&(t.sortedSequences.sort((e,t)=>e-t),t.dirty=!1);const s=this._findInsertPos(t.sortedSequences,e);t.sortedSequences.splice(s,0,e),t.minSeq=Math.min(t.minSeq,e),t.maxSeq=Math.max(t.maxSeq,e)}_findInsertPos(e,t){let s=0,n=e.length-1;for(;s<=n;){const o=Math.floor((s+n)/2);if(e[o]===t)return o;e[o]<t?s=o+1:n=o-1}return s}_addToCurrentCycle(e,t,s){let n=this._currentCycleStats.get(e).get(t);n?(n.sortedSequences.push(s),n.minSeq=Math.min(n.minSeq,s),n.maxSeq=Math.max(n.maxSeq,s),n.dirty=!0):(n={sortedSequences:[s],minSeq:s,maxSeq:s,dirty:!1},this._currentCycleStats.get(e).set(t,n))}};var Ed=new class{constructor(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}init(e){this._core=e;const{OuterEvent:{MESSAGE_RECEIVED:t},notificationCenter:s}=e;s.subscribeOuterEvent(t,this._onMessageReceived,this)}addMessageDelay(e){const{timeManager:t}=this._core.common,s=t.getServerTimeSeconds()-e;s>0&&(this._totalDelay+=s,this._totalCount++,s<=1?this._countLessThan1s++:s<=3&&this._countLessThan3s++)}getStatResult(){if(0===this._totalCount)return null;const e={total_count:this._totalCount,success_count_business:this._countLessThan1s,success_count_platform:this._countLessThan3s,percent_business:this._calculatePercentage(this._countLessThan1s,this._totalCount),percent_platform:this._calculatePercentage(this._countLessThan3s,this._totalCount),average_value:this._calculateAverageDelay(this._totalCount)};return this.reset(),e}reset(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}dispose(){const{notificationCenter:e,OuterEvent:{MESSAGE_RECEIVED:t}}=this._core;e.unSubscribeOuterEvent(t,this._onMessageReceived,this),this.reset()}_onMessageReceived(e){const{data:t=[]}=e,{OuterConstant:{MSG_GRP_TIP:s,MSG_GRP_SYS_NOTICE:n}}=this._core,o=[s,n];t.forEach(e=>{!o.includes(e.type)&&e.clientTime>0&&this.addMessageDelay(e.clientTime)})}_calculateAverageDelay(e){return 0===e?0:Xl(this._totalDelay/e,1)}_calculatePercentage(e,t){return Xl(e/t*100,2)}};var Cd=new class{init(e){this.core=e}};var Sd=new class{constructor(){this.name="MessageQualityStat",this._reportIndex=0,this._wholePeriod=!1,this._pendingReports=[],this._failedLogsCache=new Map}install(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:{QUALITY_STAT:n,LOGOUT:o,DESTROY:i},constants:{WORKFLOW_NAME:r,WORKFLOW_STEP:a}}=e;Cd.init(e),fd.init(e),Id.init(e),Ed.init(e),t.registerWorkflowStep(r.SYNC_SERVER_INFO_AFTER_LOGIN,a.QUALITY_REPORT,this.handleLoginSuccess,this),s.subscribeInnerEvent(n,this._handleQualityStat,this),s.subscribeInnerEvent(o,this._reset,this),s.subscribeInnerEvent(i,this._dispose,this)}handleLoginSuccess(){const{store:e,helper:t,utils:{isUndefined:s}}=this._core,n=e.get("cloudConfig")||{},{q_rpt_interval:o}=n,i=s(o)?12e4:Number(o);t.taskScheduler.addTask({id:vd,intervalMs:i,callback:this.report,context:this})}report(){this._wholePeriod=!0;const e=[..._d.map(e=>{const t=this._buildQualityReportItem(e);return t?Object.assign(Object.assign({},t),{report_index:this._reportIndex,whole_period:this._wholePeriod}):null}).filter(Boolean),...this._pendingReports];this._pendingReports=[],this._needSkipReport()||this._uploadQualityReports(e)}_handleQualityStat(e){const{constants:{QUALITY_METRICS:t}}=this._core,{label:s,data:n}=e;s===t.MESSAGE_SEND_SUCCESS_RATE&&fd.dispatchSendStats(n)}_needSkipReport(){return this._isSDKAppIDInBlacklist()&&!this._isTinyIDInWhitelist()}_isSDKAppIDInBlacklist(){const{store:e,utils:t}=this._core,s=e.get("cloudConfig")||{},n=e.get("instance")||{},{sdkAppId:o}=n,{q_rpt_sdkappid_bl:i=[]}=s;if(t.isEmpty(i))return;return i.split(",").map(e=>Number(e)).includes(o)}_isTinyIDInWhitelist(){const{store:e,utils:t}=this._core,s=e.get("cloudConfig")||{},n=e.get("login")||{},o=Number(n.tinyID),{q_rpt_tinyid_wl:i=[]}=s;if(!t.isEmpty(i))return i.split(",").includes(o)}_buildQualityReportItem(e){const t=this._getStatResultByKey(e);if(null===t)return null;const s={quality_type:hd[e],timestamp:Date.now(),network_type:td.ONLINE,extension:""};return Object.assign(Object.assign({},s),t)}_getStatResultByKey(e){switch(e){case nd:return Ed.getStatResult();case od:case id:case rd:case ad:case cd:return fd.getStatResult(e);case ud:case ld:case dd:return Id.getStatResult(e);default:return null}}_uploadQualityReports(e){return de(this,void 0,void 0,function*(){try{const t={header:this._core.common.getCommonHead(),quality:e};yield function(e){const{common:t,channel:s}=Cd.core,n="imopenstat.tim_web_report_v2",o=t.generateSSOLogProtocolData({servcmd:n,data:e}),i=`${o.head.seq}${n}`;s.sendPacket(o,{requestId:i})}(t),this._reportIndex++,this._wholePeriod=!1}catch(t){console.warn("doReport failed. error:",t),this._pendingReports=this._pendingReports.concat(e),this._cacheFailedLogs()}})}_cacheFailedLogs(){const e=this._pendingReports,t=`${Zl}._cacheFailedLogs`;let s=[...this._failedLogsCache.get(ed)||[],...e];s.length>10&&(s=s.slice(s.length-10),console.log(`${t} logs overflow, keeping last 10 items`)),this._failedLogsCache.set(ed,s),console.log(`${t} count: ${s.length}`),this._pendingReports=[]}_reset(){const{helper:e}=this._core;e.taskScheduler.removeTask(vd)}_dispose(){const{notificationCenter:e,InnerEvent:{QUALITY_STAT:t,LOGOUT:s,DESTROY:n}}=this._core;e.unSubscribeInnerEvent(t,this._handleQualityStat,this),e.unSubscribeInnerEvent(s,this._reset,this),e.unSubscribeInnerEvent(n,this._dispose,this),this._reset(),Ed.dispose(),Id.dispose()}};const Md=new class{init(e){this.core=e}};function yd(e){return de(this,void 0,void 0,function*(){var t;const{message:s,user:n,appStore:o,constants:{OuterConstant:i}}=Md.core,r=o.conversationStore.getConversationMap();if(r.has(e)){const s=null===(t=r.get(e))||void 0===t?void 0:t.userProfile;if(s&&e.startsWith(i.CONV_C2C)){const{avatar:t,nick:n}=s;Md.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:e,latestAvatar:t,latestNick:n,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 Od(e){return de(this,void 0,void 0,function*(){const t=e.map(e=>e.revoker);try{const s=yield function(e){return de(this,void 0,void 0,function*(){var t,s;const n=yield null===(t=Md.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})}(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)}})}const Ad=1,Td=2,Rd=20,Dd=2500,bd=1,Nd=300;function Ld(e){return de(this,void 0,void 0,function*(){var t,s;const{appStore:n,utils:{isEmpty:o},common:{getCurrentUserID:i},notificationCenter:r,OuterEvent:a,OuterConstant:{CONV_C2C:c}}=Md.core,{messageList:u,conversationID:l}=e,d=n.conversationStore.getConversationMap();let h=null===(t=d.get(l))||void 0===t?void 0:t.peerReadTime;if(!h){const e=l.replace(c,""),t=yield function(e){return de(this,void 0,void 0,function*(){const t={To_Account:e};return Md.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:t})})}([e]);if(t){const{ReadTime:e}=t;h=null==e?void 0:e[0],d.has(l)&&(d.get(l).peerReadTime=h)}}if(d.has(l)){const e=null===(s=d.get(l))||void 0===s?void 0:s.lastMessage;o(e)||e.fromAccount===i()&&e.lastTime<=h&&!e.isPeerRead&&(e.isPeerRead=!0,n.conversationStore.updateConversation(l,{lastMessage:e}))}const g=[];u.forEach(e=>{e.time<=h&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,g.push(e))}),r.emitOuterEvent(a.MESSAGE_READ_BY_PEER,{name:a.MESSAGE_READ_BY_PEER,data:g})})}var Pd=new class{init(e){this._core=e,e.helper.registerApi({apiName:"getMessageList",context:this}),e.helper.registerApi({apiName:"getMessageListHopping",context:this}),e.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(e){return de(this,void 0,void 0,function*(){try{const{message:t,OuterConstant:{Direction:s,CONV_C2C:n,CONV_GROUP:o},InnerEvent:{HISTORY_MESSAGE_FETCHED:i},notificationCenter:r}=this._core,{conversationID:a,nextReqMessageID:c}=e,u=Rd;if("@TIM#SYSTEM"===a)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const l=this._getAvailableLocalMessagesCount({conversationID:a,nextReqMessageID:c});if(this._needFetchHistoryMessageList({conversationID:a,availableLocalMessagesCount:l,targetCount:u})){let e=null;if(a.startsWith(o)?e=yield t.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:a,sequence:Number(c),count:u,direction:s.FORWARD,shouldMarkCompleted:!0}):a.startsWith(n)&&(e=yield t.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:a,messageID:c,count:u,direction:s.FORWARD,shouldMarkCompleted:!0})),e){const{nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:o,messageList:u}=e,d=t.messageDataHandler.prependLocalMessageList({messageList:u,conversationID:a});!function(e){const{appStore:t,message:s,OuterConstant:n}=Md.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)}(a),yield yd(a),a.startsWith(n)&&(yield Ld({messageList:u,conversationID:a}));const h=this._core.message.messageDataHandler.getLocalMessageList(a).slice(0,d.length+l),g=h.filter(e=>e.isRevoked);yield Od(g),r.emitInnerEvent(i,d);const p={nextReqMessageID:o?"":String(s),messageList:h,isCompleted:o},_=h.map(e=>e.sequence);return{code:0,data:p,successLog:{message:`conversationID: ${a} nextReqMessageID: ${c} availableLocalMessagesCount: ${l} sequenceList: ${JSON.stringify(_)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:a,nextReqMessageID:c,count:u}),successLog:{message:`conversationID: ${a} nextReqMessageID: ${c} availableLocalMessagesCount: ${l}}`}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}})}getMessageListHopping(e){return de(this,void 0,void 0,function*(){var t,s;const{OuterConstant:{Direction:n,CONV_C2C:o,CONV_GROUP:i}}=this._core,{conversationID:r,sequence:a,time:c,direction:u=n.FORWARD}=e,{utils:{isEmpty:l},message:d,notificationCenter:h,InnerEvent:{HISTORY_MESSAGE_FETCHED:g}}=this._core;if(![n.BACKWARD,n.FORWARD].includes(u))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:p=Rd}=e;p=p>Rd?Rd:p;let _=null;if(r.startsWith(i)){if(_=yield d.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:r,sequence:a,count:p,direction:u}),_){const{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:o,messageList:i,invisibleSequenceList:r}=_;if(this._core.message.messageDataHandler.storeSparseMessageList(i),h.emitInnerEvent(g,i),u===n.FORWARD){const t=o&&e<1;return{code:0,data:{messageList:i,isCompleted:t,nextMessageSeq:t?"":e}}}if(u===n.BACKWARD){if(l(i)&&l(r))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==r?void 0:r[r.length-1])||void 0===s?void 0:s.sequence)||0;return{code:0,data:{messageList:i.filter(e=>e.sequence>=a),isCompleted:!o,nextMessageSeq:o?Math.max(e,n)+1:""}}}return{code:0,data:_}}}else if(r.startsWith(o)&&(_=yield d.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:r,count:p+1,time:c,direction:u}),_)){const{messageList:e,lastMessageTime:t,hasNoMoreHistoryMessage:s}=_;return h.emitInnerEvent(g,e),s||(u===n.FORWARD?e.shift():e.pop()),d.messageDataHandler.storeSparseMessageList(e),{code:0,data:{messageList:e,isCompleted:s,nextMessageTime:s?"":t}}}})}clearHistoryMessage(e){return de(this,void 0,void 0,function*(){var t;const{appStore:s,common:{ChatError:n,getCurrentUserID:o},OuterConstant:{CONV_C2C:i,CONV_GROUP:r},apiMap:a,message:c}=this._core,u=s.conversationStore.getConversation(e);if(!u)throw new n({code:Dd});const l={fromAccount:o()},{type:d}=u;d===i?(l.type=Ad,l.toAccount=e.replace(i,"")):d===r&&(l.type=Td,l.toGroupID=e.replace(r,""));try{yield null===(t=null==a?void 0:a.setMessageRead)||void 0===t?void 0:t.call(a,{conversationID:e});const s=yield function(e){return de(this,void 0,void 0,function*(){const{fromAccount:t,type:s,toAccount:n,toGroupID:o}=e,i={From_Account:t,Type:s,To_Account:n,ToGroupid:o};return Md.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:i})})}(l);return s&&(c.messageDataHandler.deleteConversationMessageList(e),c.messageHistory.completedHistoryConversations.delete(e),c.messageHistory.clearHistoryMessageListFetchAnchors(e),this._updateConversationLastMessage(e)),{code:0,data:{conversationID:e},successLog:{message:`convID:${e}`}}}catch(t){const{errorCode:s}=t;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:s,moreMessage:`convID:${e}`})}})}_updateConversationLastMessage(e){const{appStore:t}=this._core;t.conversationStore.updateConversation(e,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:t}){const{OuterConstant:{CONV_C2C:s,CONV_GROUP:n}}=this._core,o=this._core.message.messageDataHandler.getLocalMessageList(e),{length:i}=o;if(!t)return i;let r=-1;return(null==e?void 0:e.startsWith(s))?r=o.findIndex(e=>e.ID===t):(null==e?void 0:e.startsWith(n))&&(r=o.findIndex(e=>t.includes("-")?e.ID===t:String(e.sequence)===t)),-1===r?0:r}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:t,targetCount:s}){const{message:n}=this._core;return t<s&&!n.messageHistory.completedHistoryConversations.has(e)}_getMessageListFromMemory(e){return de(this,arguments,void 0,function*({conversationID:e,nextReqMessageID:t,count:s}){const{OuterConstant:{CONV_C2C:n},message:o}=this._core,i=this._core.message.messageDataHandler.getLocalMessageList(e),r=i.length;let a=r,c={isCompleted:!1,nextReqMessageID:"",messageList:[]},u=0,l=r;return t?t&&(l=i.findIndex(s=>e.startsWith(n)?s.ID===t:String(s.sequence)===t),u=l>s?l-s:0,a=l):u=r>s?r-s:0,c.messageList=i.slice(u,l),c.isCompleted=a<=s&&o.messageHistory.completedHistoryConversations.has(e),c.isCompleted?c.nextReqMessageID="":c.nextReqMessageID=this._generateNextReqMessageID({conversationID:e,targetIndex:u}),e.startsWith(n)&&(yield yd(e),yield Ld({messageList:c.messageList,conversationID:e})),c})}_generateNextReqMessageID({conversationID:e,targetIndex:t}){const s=this._core.message.messageDataHandler.getLocalMessageList(e);return e.startsWith("C2C")?s[t].ID:String(s[t].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}};var Gd=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(e){this._core=e;const{common:{workflowManager:t},constants:{WORKFLOW_NAME:s,WORKFLOW_STEP:n,InnerEvent:o}}=e;t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),e.notificationCenter.subscribeInnerEvent(o.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(e){const{conversationList:t}=(null==e?void 0:e.result)||{},{OuterConstant:s,utils:{isArray:n}}=this._core;if(n(t)){const e=t.filter(e=>e.type===s.CONV_GROUP&&e.groupProfile.type!==s.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(e)}}_recoverGroupHistoryMessage(e){return de(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=[],n=[];return yield Promise.all(null==e?void 0:e.map(e=>de(this,void 0,void 0,function*(){const{groupProfile:{groupID:o}={},lastMessage:{lastSequence:i}={}}=e,r=`${t.CONV_GROUP}${o}`;let a=this._getLocalLastMessageSequence(r);this._shouldRecoverHistory({localLastMessageSequence:a,serverLastMessageSequence:i})&&(yield this._recoverGroupHistoryForConversation({conversationID:r,localLastMessageSequence:a,serverLastMessageSequence:i,groupTipList:n})),s.push(r.replace(t.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:s,groupTipList:n}})}_recoverGroupHistoryForConversation(e){return de(this,arguments,void 0,function*({conversationID:e,localLastMessageSequence:t,serverLastMessageSequence:s,groupTipList:n}){try{const{utils:{isArray:o,isObject:i,isEmpty:r},OuterEvent:a,OuterConstant:c,notificationCenter:u,message:l,appStore:d,common:{getMessagePreviewText:h}}=this._core,g=s-t,p=Math.min(20,g),_={},m=yield l.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:e,sequence:t+p,direction:c.Direction.FORWARD,count:p}),{nextReqMessageIDFromServer:v,hasNoMoreHistoryMessage:f,messageList:I,serverGroupTipList:E}=m;o(E)&&n.push(...E);const C=f&&v<0,S=[];if(o(I)&&(I.forEach(e=>{l.messageReceiver.groupMessageReceiver.updateMessageProfile(e),e.from===c.CONV_SYSTEM&&(e.isSystemMessage=!1);l.messageDataHandler.storeConversationMessage(e)&&!r(e.payload)&&(S.push(e),e._isExcludedFromLastMessage||(_.lastMessage=Object.assign({},e)))}),S.length>0&&u.emitOuterEvent(a.MESSAGE_RECEIVED,{name:a.MESSAGE_RECEIVED,data:S})),!C&&I.length>0){const t=I[I.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:e,localLastMessageSequence:t,serverLastMessageSequence:s,groupTipList:n})}i(_.lastMessage)&&(_.lastMessage.messageForShow=h(_.lastMessage.type,_.lastMessage.payload),d.conversationStore.updateConversation(e,_))}catch(t){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${e}`,{error:t})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:e}=this._core,t=e.messageDataHandler.getContinuousMessagesByConversation();for(const[e,s]of t){const t=Array.from(s.values());if((null==t?void 0:t.length)>0){const s=t[t.length-1];e.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(e,s.time):e.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(e,s.sequence)}}}_getLocalLastMessageSequence(e){const{message:t}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const s=t.messageDataHandler.getLocalMessageList(e),n=s[s.length-1];return null==n?void 0:n.sequence}_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>0&&(n>=bd&&n<Nd)}_syncC2COfflineMessage(e){const{conversationList:t}=(null==e?void 0:e.result)||{},{OuterConstant:s,utils:{isArray:n}}=this._core;if(n(t)){const e=[];return t.forEach(t=>{t.type===s.CONV_C2C&&e.push(t)}),this._recoverC2CHistoryMessage(e)}}_recoverC2CHistoryMessage(e){return de(this,void 0,void 0,function*(){yield Promise.all(null==e?void 0:e.map(e=>de(this,void 0,void 0,function*(){const{conversationID:t,lastMessage:{lastTime:s}={}}=e,n=this._getLocalLastMessageTime(t);this._shouldRecoverC2CHistory({localLastMessageTime:n,serverLastMessageTime:s})&&(yield this._recoverHistoryForC2CConversation({conversationID:t,localLastMessageTime:n,serverLastMessageTime:s}))})))})}_shouldRecoverC2CHistory(e){const{localLastMessageTime:t,serverLastMessageTime:s}=e,n=s-t;return t>0&&n>=1&&n<=600}_recoverHistoryForC2CConversation(e){return de(this,void 0,void 0,function*(){var t;const{conversationID:s,localLastMessageTime:n,serverLastMessageTime:o}=e,{utils:{isArray:i,isObject:r,isEmpty:a,safeStringify:c},OuterEvent:u,OuterConstant:l,notificationCenter:d,message:h,appStore:g,common:{getMessagePreviewText:p}}=this._core;try{const e={},c=yield h.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:s,direction:l.Direction.BACKWARD,time:n,count:20});if(a(c))return;const{hasNoMoreHistoryMessage:_,messageList:m}=c,v=[];i(m)&&(m.forEach(t=>{h.messageDataHandler.storeConversationMessage(t)&&!a(t.payload)&&(v.push(t),t._isExcludedFromLastMessage||(e.lastMessage=Object.assign({},t)))}),v.length>0&&d.emitOuterEvent(u.MESSAGE_RECEIVED,{name:u.MESSAGE_RECEIVED,data:v}));const f=null===(t=m[m.length-1])||void 0===t?void 0:t.time;!_&&f>o&&(yield this._recoverHistoryForC2CConversation({conversationID:s,localLastMessageTime:f,serverLastMessageTime:o})),r(e.lastMessage)&&(e.lastMessage.messageForShow=p(e.lastMessage.type,e.lastMessage.payload),g.conversationStore.updateConversation(s,e))}catch(e){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${s} error: ${c(e)}`)}})}_getLocalLastMessageTime(e){const{message:t}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(e))return this._lastMessageTimeMapOnDisconnect.get(e);const s=t.messageDataHandler.getLocalMessageList(e),n=s[s.length-1];return null==n?void 0:n.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}};var wd=new class{constructor(){this.name="HistoryMessage"}install(e){this._core=e,Md.init(e),Pd.init(e),Gd.init(e),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),Gd.dispose()}_reset(){Gd.reset()}};var Ud=new class{init(e){this.core=e}};var kd=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(e){const{helper:{registerExperimentalAPI:t}}=e;this._core=e,t("reportModalView",this),t("reportTUIFeatureUsage",this),t("reportRoomEngineEvent",this)}reportModalView(e){const{ssoLog:t,utils:{safeStringify:s,isString:n}}=this._core;try{if(!n(e))throw new Error("reportModalView data is not a string");t.createSSOLogData({method:"reportModalView",message:e,eventType:30}).end(!0)}catch(e){t.debug(`reportModalView Report failed: ${s(e)}`)}}reportTUIFeatureUsage(e){const{ssoLog:t,utils:{safeStringify:s,isEmpty:n}}=this._core,{atomicStoreID:o}=e;try{n(o)||this._reportedAtomicStoreIDs.has(o)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${e.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:o}),this._reportedAtomicStoreIDs.add(o))}catch(e){t.debug(`reportTUIFeatureUsage Report failed: ${s(e)}`)}}reportRoomEngineEvent(e){const{utils:{safeStringify:t},ssoLog:s}=this._core;try{s.debug(`reportRoomEngineEvent Report: ${t(e)}`);const{eventId:n,eventCode:o,eventResult:i,eventMessage:r,moreMessage:a,extensionMessage:c}=e;s.createSSOLogData({method:c,code:n,message:r,eventType:30,costTime:o,uiPlatform:i,moreMessage:a}).end(!0)}catch(e){s.debug(`reportRoomEngineEvent Report failed: ${t(e)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}};var Fd=new class{constructor(){this.name="DataReport"}install(e){this._core=e;const{notificationCenter:t,InnerEvent:{LOGOUT:s,DESTROY:n}}=e;Ud.init(e),kd.init(e),t.subscribeInnerEvent(s,this._reset,this),t.subscribeInnerEvent(n,this._dispose,this)}_reset(){kd.reset()}_dispose(){const{notificationCenter:e,InnerEvent:{LOGOUT:t,DESTROY:s}}=this._core;e.unSubscribeInnerEvent(t,this._reset,this),e.unSubscribeInnerEvent(s,this._dispose,this),kd.dispose()}};let $d=bs.STANDARD,xd=[];$d=bs.STANDARD,xd=[qn,xn,Hn,eo,no,Sd,wd,Fd,ki,Zr,Ga,Zu,Ll,Ql,Lo];function qd(e,t){const{operationType:s,memberInfoList:n,operatorInfo:o}=e||{};let i={};if(ve(n)?ve(o)||(i=o):s!==Os.JOINED&&s!==Os.KICKED&&s!==Os.ADMIN_SET&&s!==Os.ADMIN_CANCELED||(i=Object.assign({},n[0])),!ve(i)){const{nick:e="",avatar:s=""}=i;t.nick=e,t.avatar=s}}var Vd=Object.freeze({__proto__:null,ChatError:en,WorkflowManager:hn,buildAndSendPacket:fn,get builtInPlugins(){return xd},checkBusinessCapabilityBits:dn,deepMerge:yn,getCurrentUserID:Sn,getErrorMessage:Zs,getMessagePreviewText:On,isC2CConv:e=>t(e)&&e.slice(0,3)===Es.CONV_C2C,isCommunity:pn,isGroupConv:e=>t(e)&&e.slice(0,5)===Es.CONV_GROUP,isTopic:_n,isUnlimitedAVChatRoom:function(){var e;return!!(null===(e=ss.store.get("instance"))||void 0===e?void 0:e.unlimitedAVChatRoom)},liteChatInstanceMap:gn,registerInterceptor:un,registerValidateConfig:ln,requireAuth:tn,get sdkEdition(){return $d},setGroupTipsUserInfo:qd,updateGroupAtInfo:(e,t)=>{const{CONV_AT_ME:s,CONV_AT_ALL:n,CONV_AT_ALL_AT_ME:o}=Rs;if(function(e,t){const{CONV_AT_ME:s,CONV_AT_ALL:n,CONV_AT_ALL_AT_ME:o}=Rs,{groupID:i,sequence:r}=e;let a=!1;if(!pn({groupID:i}))return a;return t.forEach(t=>{t.messageSequence===r&&(t.atTypeArray.includes(s)&&e.groupAtType.includes(n)&&(t.atTypeArray=[o]),t.atTypeArray.includes(n)&&e.groupAtType.includes(s)&&(t.atTypeArray=[o],t.__random=e.__random,t.__sequence=e.__sequence),a=!0)}),a}(e,t))return;let i=[...e.groupAtType];i.includes(s)&&i.includes(n)&&(i=[o]);const r={from:e.from,groupID:e.groupID,topicID:e.topicID,messageSequence:e.sequence,atTypeArray:i,__random:e.__random,__sequence:e.__sequence};t.push(r)},validateAndExecute:cn,validateParameters:sn});class Bd{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return Bd._instance||(Bd._instance=new Bd),Bd._instance}static setInstance(e){Bd._instance=e}installBuiltInPlugin(e){e&&this._installPlugin(e,this._builtInPlugins)}installExternalPlugin(e){e&&this._installPlugin(e,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(e,t){let s=[];s=n(e)?e:[e];const o=s.findIndex(e=>"AVChatRoom"===(null==e?void 0:e.name)),i=o>-1?s.splice(o,1):[];s.forEach(e=>{this._isPluginInstalled(e.name)||(e&&ns(e.install)?(t.add(e.name),ns(e.getInstalledSubPlugins)?e.install(Jd.getInstance().exposeApiForPlugin(),i):e.install(Jd.getInstance().exposeApiForPlugin()),ns(e.handleLoginSuccess)&&this._isLoggedIn()&&e.handleLoginSuccess()):ns(e)?(t.add(e.name),e(Jd.getInstance().exposeApiForPlugin()),ns(e.handleLoginSuccess)&&this._isLoggedIn()&&e.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(e){return this._builtInPlugins.has(e)||this._externalPlugins.has(e)}_isLoggedIn(){var e;return!0===(null===(e=ss.store.get("login"))||void 0===e?void 0:e.isLoggedIn)}}var Hd=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(e){return this._conversationMap.get(e)}updateConversation(e,t,s={emit:!0,needSort:!1}){const{emit:n,needSort:o}=s,i=this._conversationMap.get(e);i&&!ve(t)&&(Object.keys(t).forEach(e=>{i[e]=t[e]}),n&&ss.notificationCenter.emitInnerEvent(us.CONVERSATION_UPDATED,{needSort:o}))}deleteConversation(e){this._conversationMap.has(e)&&(this._conversationMap.delete(e),ss.notificationCenter.emitInnerEvent(us.CONVERSATION_UPDATED))}};var Kd=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&&!ve(t)&&Object.keys(t).forEach(e=>{s[e]=t[e]})}};var Wd=new class{constructor(){this._messagesByConversation=new Map}updateMessage(e,t,s){var n;const{operation:o,updateUnreadCount:i=!0}=s,r=le(s,["operation","updateUnreadCount"]),a=[];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(r).forEach(e=>{t[e]=r[e]}),a.push(t)}return this._emitMessageStoreOperationEvent(o,{conversationID:e,messageList:a,updateUnreadCount:i}),a}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){const{conversationID:s}=t;_n(s)?ss.notificationCenter.emitInnerEvent(vs[e],t):ss.notificationCenter.emitInnerEvent(e,t)}};var Yd=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)}},zd=Object.freeze({__proto__:null,conversationStore:Hd,groupStore:Kd,messageStore:Wd,userStore:Yd});class Jd{static getInstance(){return Jd._instance||(Jd._instance=new Jd),Jd._instance}static setInstance(e){Jd._instance=e}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:ss.notificationCenter.subscribeOuterEvent.bind(ss.notificationCenter),off:ss.notificationCenter.unSubscribeOuterEvent.bind(ss.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:Bd.getInstance().installExternalPlugin.bind(Bd.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(e){ss.ssoLog.debug("registerPlugin",e)}statKeyFeatureUsage(e){ss.ssoLog.debug("statTUIKeyFeatures",e)}setLogLevel(e){ss.ssoLog.debug("setLogLevel",e),ss.ssoLog.setLogLevel(e)}setApplicationID(e){ss.store.set("instance",{applicationID:e})}getApiMap(){return this._apiMap}setApiMap(e){this._apiMap=e}registerApi(e){const{common:{timeManager:t},utils:{safeStringify:s}}=ss,{apiName:n,context:o,methodName:i=n,matcher:r}=e;this._apiHandlersMap[n]||(this._apiHandlersMap[n]=[]),this._apiHandlersMap[n].push({context:o,methodName:i,matcher:r}),this._apiMap[n]&&1!==this._apiHandlersMap[n].length||(this._apiMap[n]=(...e)=>{const o=t.getServerTimeMs();let r=0;"login"===n&&(r=4),Us.includes(n)&&ss.ssoLog.debug(n,`${n} start params: ${s(e)}`),cn(i,e);const a=this._apiHandlersMap[n];for(const s of a)if(!s.matcher||s.matcher(e))try{const t=s.context[s.methodName].bind(s.context)(...e);return this._isPromiseLike(t)?this._handleAsyncResult(t,n,r,o):(this._reportApiSuccessLog({result:t,apiName:n,eventType:r,startTime:o}),t)}catch(e){throw ss.ssoLog.error(n,`${n} fail ${(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message)})`,{error:e,costTime:t.getServerTimeMs()-o,eventType:r,method:n}),e}})}registerExperimentalAPI(e,t,s){const n=s||e;this._experimentalApiMap[e]=t[n].bind(t)}destroy(){return de(this,void 0,void 0,function*(){var e,t;try{(null===(e=ss.store.get("login"))||void 0===e?void 0:e.isLogin)&&(yield this._apiMap.logout()),ss.notificationCenter.emitInnerEvent(us.DESTROY)}catch(e){console.debug("destroy error: ",e)}finally{ss.notificationCenter.emitOuterEvent(as.SDK_DESTROY,{SDKAppID:null===(t=ss.store.get("instance"))||void 0===t?void 0:t.sdkAppId}),gn.clear(),Bd.getInstance().clear(),hn.getInstance().destroy(),ss.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:us,InnerEventSubType:ss.notificationCenter.InnerEventSubType,OuterEvent:as,OuterConstant:Rs,SignalingEvent:ls,helper:Object.assign(Object.assign(Object.assign({},ss.utils),ss.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:un,registerValidateConfig:ln,checkBusinessCapabilityBits:dn,registerWorkflowStep:hn.getInstance().registerWorkflowStep.bind(hn.getInstance()),ChatError:en}),apiMap:this._apiMap},ss),{constants:Object.assign(Object.assign({},ks),ss.constants),common:Object.assign(Object.assign(Object.assign({},Vd),ss.common),{workflowManager:hn.getInstance()}),utils:ss.utils,appStore:zd})}callExperimentalAPI(e,t){return ss.ssoLog.debug(`callExperimentalAPI.${e} start params: ${ss.utils.safeStringify(t)}`),this._experimentalApiMap[e]?this._experimentalApiMap[e](t):(ss.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${e} not found, params: ${ss.utils.safeStringify(t)}`),Promise.reject(new en({code:Ds.INVALID_OPERATION})))}_isPromiseLike(e){return null!==e&&"object"==typeof e&&"function"==typeof e.then}_handleAsyncResult(e,t,s,n){return e.then(e=>(this._reportApiSuccessLog({result:e,apiName:t,eventType:s,startTime:n}),e)).catch(e=>{throw ss.ssoLog.error(t,`${t} fail ${(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message)})`,{error:e,costTime:ss.common.timeManager.getServerTimeMs()-n,eventType:s,method:t}),e})}_reportApiSuccessLog(e){let{result:t,apiName:s,startTime:n,eventType:o}=e;const{timeManager:i}=ss.common,{successLog:{message:r,moreMessage:a}={message:"",moreMessage:""}}=t||{},c=i.getServerTimeMs();"login"===s&&(n+=i.getTimeOffsetWithServer()),Us.includes(s)&&ss.ssoLog.info(s,`${s} success ${r} ${a}`,{costTime:c-n,eventType:o,message:r,moreMessage:a}),(null==t?void 0:t.successLog)&&delete t.successLog}}class Qd{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:e,store:t}=ss;t.set("login",{isReady:!1}),Jd.getInstance().registerApi({apiName:"login",context:this}),Jd.getInstance().registerApi({apiName:"logout",context:this}),Jd.getInstance().registerApi({apiName:"getLoginUser",context:this}),Jd.getInstance().registerApi({apiName:"isReady",context:this}),Jd.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),e.subscribeInnerEvent(us.RECONNECTED,this._reLogin,this),ss.notificationCenter.subscribeInnerEvent(us.DESTROY,this._dispose,this)}login(e){return de(this,void 0,void 0,function*(){var t;const{sdkEdition:s}=ss.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new en({functionName:"login",code:Ds.REPEAT_LOGIN});const n=yield this._performLogin(e);this._validateAfterLogin(n),this._handleLoginSuccess(n),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const o=null===(t=ss.channel.getSocketAdapter())||void 0===t?void 0:t.getId(),{appId:i,href:r}=ss.store.get("instance")||{},{instanceID:a,customStatus:c}=n||{};return{code:0,data:n,successLog:{message:s,moreMessage:`socketID:${o} instanceID:${a} customStatus:${c} href: ${r} appId: ${i}`}}}catch(e){const{errorCode:t}=e;t!==Ds.REPEAT_LOGIN&&(this._latestLoginAt=0);const s=new en({functionName:"login",code:t});throw console.error(s),s}})}_reLogin(){return de(this,void 0,void 0,function*(){var e;try{if(!this._isLoginIn())return;const t=yield Xs(this._customLoginInfo);if(t){const{instanceID:s,customStatus:n}=t;ss.store.set("login",{statusInstanceId:s}),hn.getInstance().executeWorkflow(Ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:n,statusType:fs.USER_STATUS_ONLINE});const o=null===(e=ss.channel.getSocketAdapter())||void 0===e?void 0:e.getId();ss.ssoLog.info("reLogin",`socketId:${o} instanceId:${s}`)}}catch(e){console.warn(e)}})}logout(){return de(this,arguments,void 0,function*(e=Fs.USER_INITIATED){const{ssoLog:t}=ss;t.debug("logout",`logout start logoutReason: ${e}`);try{yield this._performLogout(e),t.info("logout","logout success"),ss.ssoLog.uploadSSOLogData()}catch(e){const{errorCode:t}=e;throw new en({functionName:"logout",code:t})}finally{this._handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?Sn():""}isReady(){var e;return null===(e=ss.store.get("login"))||void 0===e?void 0:e.isReady}setCustomLoginInfo(e=""){this._customLoginInfo=e}_updateAndEmitSDKReady(){ss.store.set("login",{isReady:!0}),setTimeout(()=>{ss.notificationCenter.emitOuterEvent(as.SDK_READY,{name:as.SDK_READY})},1)}_updateAndEmitSDKNotReady(){ss.store.set("login",{isReady:!1}),ss.notificationCenter.emitOuterEvent(as.SDK_NOT_READY,{name:as.SDK_NOT_READY})}_validateAfterLogin(e){const t="login";if(!e)throw new en({functionName:t,message:"login response is empty"});const{tinyID:s,a2Key:n}=e||{};if(!s){throw new en({functionName:t,code:Ds.NO_TINYID})}if(!n){throw new en({functionName:t,code:Ds.NO_A2KEY})}}_createRepeatLoginResponse(){var e;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:Zs({code:"RepeatLogin",replacement1:null===(e=ss.store.get("login"))||void 0===e?void 0:e.userId}),repeatLogin:!0}}}_performLogin(e){return de(this,void 0,void 0,function*(){const{userID:t,userSig:s}=e;return ss.store.set("login",{userId:t,userSig:s}),this._latestLoginAt=Date.now(),Xs(this._customLoginInfo)})}_ensureAsyncComplete(){return de(this,void 0,void 0,function*(){yield new Promise(e=>{setTimeout(()=>e(null),1)})})}_handleLoginSuccess(e){const{timeManager:t}=ss.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),ss.user.userStatus.setCustomStatus(o),hn.getInstance().executeWorkflow(Ns.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:i}),ss.common.taskScheduler.addTask({id:Vs,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(e){return function(e){return de(this,void 0,void 0,function*(){const{logoutReason:t}=e,s="im_open_status.wslogout",n=ss.common.generateProtocolData({servcmd:s,data:{wslogout_type:t,isWebUniapp:0}}),o=`${n.head.seq}${s}`;return yield ss.channel.sendPacket(n,{requestId:o})})}({logoutReason:e})}_handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),hn.getInstance().reset(),ss.notificationCenter.emitInnerEvent("logout")}_updateLoginStore(e){const{a2Key:t,tinyID:s,instanceID:n,authKey:o}=e;ss.store.set("login",{a2Key:t,tinyID:s,statusInstanceId:n,authKey:o,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return de(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const e="im_open_status.wshello",t=ss.common.generateProtocolData({servcmd:e,data:{isWebUniapp:0}}),s=`${t.head.seq}${e}`;return ss.channel.sendPacket(t,{requestId:s})}()}catch(e){ss.ssoLog.warn("_sendOnlinePresenceRequest",` error:${e.message}`)}})}_isLoginIn(){var e;return!0===(null===(e=ss.store.get("login"))||void 0===e?void 0:e.isLoggedIn)}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){ss.common.taskScheduler.removeTask(Vs),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",ss.store.clear("login"),ss.store.set("login",{isReady:!1}),ss.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:e}=ss;e.unSubscribeInnerEvent(us.RECONNECTED,this._reLogin,this),e.unSubscribeInnerEvent(us.DESTROY,this._dispose,this)}}const Xd={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},Zd={logout:!0};class eh{constructor(){this.loginAction=new Qd,this.kickedOutHandler=new Qs,this.loginAction.init(),this.kickedOutHandler.init(),ln({auth:Zd,params:Xd})}}var th,sh,nh;!function(e){e.CONV_C2C="C2C",e.CONV_GROUP="GROUP",e.CONV_TOPIC="TOPIC",e.CONV_SYSTEM="@TIM#SYSTEM"}(th||(th={})),function(e){e.MSG_PRIORITY_HIGH="High",e.MSG_PRIORITY_NORMAL="Normal",e.MSG_PRIORITY_LOW="Low",e.MSG_PRIORITY_LOWEST="Lowest"}(sh||(sh={})),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"}(nh||(nh={}));const oh={1:sh.MSG_PRIORITY_HIGH,2:sh.MSG_PRIORITY_NORMAL,3:sh.MSG_PRIORITY_LOW,4:sh.MSG_PRIORITY_LOWEST},ih=0,rh=1;var ah;!function(e){e.IN="in",e.OUT="out"}(ah||(ah={}));const ch=2,uh={};function lh(e){if(!e)return 0;if(void 0===uh[e]){const t=new Date,s=`3${t.getHours()}`.slice(-2),n=`0${t.getMinutes()}`.slice(-2),o=`0${t.getSeconds()}`.slice(-2);uh[e]=parseInt([s,n,o,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${uh[e]}`)}else uh[e]+=1;return uh[e]}class dh{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=sh.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:t=ss.common.timeManager.getServerTimeSeconds()||0,senderTinyID:s,currentUser:n,needReadReceipt:o,isSupportExtension:i,customModerationConfigurationId:r,to:a,from:c,nick:u="",avatar:l="",time:d,messageControlInfo:h,tinyID:g,cloudCustomData:p="",messageLifeTime:_,messageVersion:m=0,conversationType:v,sequence:f,checkResult:I=0,isPlaceMessage:E=0,messageFlagBits:C,receiverList:S,isSystemMessage:M=!1,status:y=gs.SUCCESS,revokeReason:O="",conversationSubType:A,clientSequence:T,protocol:R="JSON",revokerInfo:D={userID:"",nick:"",avatar:""},readReceiptInfo:b={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:N,groupProfile:L,atUserList:P,flow:G,isRead:w=!1,priority:U=sh.MSG_PRIORITY_NORMAL,onlineOnlyFlag:k=!1}=e;var F;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=u,this.avatar=l,this.protocol=R,this.random=void 0===N?(F=F||99999999,Math.round(Math.random()*F)):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||th.CONV_C2C,this.hasRiskContent=I>1,this.version=m,this.isPlaceMessage=E,this.isRevoked=2===E||8===C,this.isSystemMessage=M,this.readReceiptInfo=b,this.revokeReason=O,this.revokerInfo=D,this._receiverList=S,this.conversationSubType=A,this.revoker=(null==D?void 0:D.revoker)||"",this.clientSequence=T||f||0,this.status=y,this.atUserList=P||[],this.flow=G,this.isRead=w,this.priority=U,this._onlineOnlyFlag=k,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===th.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,GroupType:o}=e,{NameCard:i}=n||{};"string"==typeof t&&(this.nick=t),"string"==typeof s&&(this.avatar=s),"string"==typeof i&&(this.nameCard=i),this.conversationSubType=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!==th.CONV_SYSTEM?(t=s===th.CONV_C2C?e===this.from?this.to:this.from:this.to,this.conversationID=t?`${s}${t}`:null):this.conversationID=th.CONV_SYSTEM}_initSequence(e){0===this.clientSequence&&e&&(this.clientSequence=lh(e)),0===this.sequence&&this.conversationType===th.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===th.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(e){this.isRead=e}}class hh{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Data:s,Ext:n,Desc:o}=t;return new hh({data:s,description:o,extension:n})}constructor(e){this.type=nh.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}=ss.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 gh{static parseServerPushElement(e){const{MsgContent:t={Text:""}}=e,{Text:s}=t;return new gh({text:s})}constructor(e){this.type=hs.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}}}}var ph=new class{constructor(){this._elementClassMap={[nh.MSG_CUSTOM]:hh,[nh.MSG_TEXT]:gh}}init(){Jd.getInstance().registerApi({apiName:"createCustomMessage",context:this}),Jd.getInstance().registerApi({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=ah.OUT}=e,{userId:n}=ss.store.get("login")||{};this._isSendByCurrentInstance({from:t,flow:s,currentUser:n})?this._updateWithSenderInfo(e):this._isMultiEndpointSyncMessage({from:t,flow:s,currentUser:n})&&(e.flow=ah.OUT);const o=Object.assign(Object.assign({},e),{currentUser:n});return new dh(o)}createCustomMessage(e){const t=Sn(),s=this.createMessage(Object.assign(Object.assign({},e),{from:t})),n=this._elementClassMap[nh.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 gh({text:s}),o=Sn(),i=ss.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}=ss.store.get("login")||{},i=Yd.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=gs.UNSENT,e.flow=ah.OUT,e}_isMultiEndpointSyncMessage(e){const{from:t,flow:s,currentUser:n}=e;return t===n&&s===ah.IN}_isSendByCurrentInstance(e){const{from:t,flow:s,currentUser:n}=e;return t===n&&s===ah.OUT}};const _h={PushFlag:0,Title:"",Desc:"",Ext:"",ApnsInfo:{Sound:"",BadgeMode:0,IsVoipPush:void 0,Image:"",InterruptionLevel:"active",ContentAvailable:0},AndroidInfo:{Sound:"",XiaoMiChannelID:"",OPPOChannelID:"",GoogleChannelID:"",VIVOClassification:1,VIVOCategory:"",HuaWeiCategory:"",OPPOCategory:"",HuaWeiImage:"",HonorImage:"",GoogleImage:"",HonorImportance:"",MeizuNotifyType:void 0}},mh={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},vh={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function fh(e,t){return Object.keys(t).forEach(s=>{const{range:n,defaultValue:o}=t[s];e[s]=n.includes(e[s])?e[s]:o}),e}function Ih(e){const t=e.lastIndexOf(".");return-1===t?e:e.slice(0,t)}function Eh(e){const{androidInfo:t={},androidOPPOChannelID:s=""}=e,n=t.OPPOChannelID||s,o=fh(t,mh),{sound:i="",FCMChannelID:r=""}=o,a=le(o,["sound","FCMChannelID"]);return Object.assign(Object.assign({},a),{Sound:Ih(i),OPPOChannelID:n,GoogleChannelID:r})}function Ch(t){const{apnsInfo:s={},ignoreIOSBadge:n=!1,disableVoipPush:o}=t,i=fh(s,vh),{ignoreIOSBadge:r,disableVoipPush:a,enableIOSBackgroundNotification:c}=i,u=le(i,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),l=!0===r||!0===n?1:0;let d;return e(o)||(d=!1===o?1:0),e(a)||(d=!1===a?1:0),Object.assign(Object.assign({},u),{BadgeMode:l,IsVoipPush:d,ContentAvailable:c?1:0})}function Sh(e){return ss.utils.isPlainObject(e)?{PushFlag:!0===e.disablePush?1:0,Title:e.title||"",Desc:e.description||"",Ext:e.extension||"",ApnsInfo:Ch(e),AndroidInfo:Eh(e)}:_h}function Mh(e){const{From_AccountHeadurl:t,From_AccountNick:s,IsNeedReadReceipt:n,IsPeerRead:o,IsSyncMsg:i,MsgBody:r,MsgClientTime:a,MsgLifeTime:c,MsgRandom:u,MsgSeq:l,MsgTimeStamp:d,SendMsgControl:h,SupportMessageExtension:g,TinyId:p,MsgCheckResult:_,CloudCustomData:m,MsgVersion:v,MsgFlagBits:f,RevokerInfo:I}=e;let E,{From_Account:C,To_Account:S}=e;if(1===i){const e=S;S=C,C=e}if(I){const{Reason:e,Revoker_Account:t,Revoker_FromUin:s}=I;E={reason:e,revoker:t,revokerFromUin:s,userID:t}}return{from:C,avatar:t,nick:s,needReadReceipt:1===n,isSyncMessage:i,clientTime:a,messageLifeTime:c,random:u,sequence:l,time:d,messageControlInfo:{excludedFromLastMessage:1===(null==h?void 0:h.NoLastMsg),excludedFromUnreadCount:1===(null==h?void 0:h.NoUnread)},isSupportExtension:g,to:S,tinyID:p,checkResult:_,cloudCustomData:m,revokerInfo:E,messageVersion:v,messageFlagBits:f,readReceiptSentByPeer:o,elements:Th(r),onlineOnlyFlag:0===c}}function yh(e){const{From_Account:t,MsgBody:s,MsgClientTime:n,MsgRandom:o,MsgSeq:i,MsgTimeStamp:r,To_Account:a,MsgVersion:c,CloudCustomData:u,MsgCheckResult:l}=e;return{from:t,clientTime:n,random:o,sequence:i,time:r,to:a,elements:Th(s),messageVersion:c,cloudCustomData:u,checkResult:l}}function Oh(e){const{ClientSeq:t,From_Account:s,GroupInfo:n,MsgBody:o,MsgClientTime:i,MsgRandom:r,MsgSeq:a,MsgTimeStamp:c,SendMsgControl:u,SupportMessageExtension:l,TinyId:d,CloudCustomData:h,MsgVersion:g,MsgCheckResult:p,NeedReadReceipt:_,IsPlaceMsg:m,RevokerInfo:v,GroupAtInfo:f,OnlineOnlyFlag:I}=e;let E,C=sh.MSG_PRIORITY_NORMAL;if(Object.keys(oh).includes(String(e.MsgPriority))&&(C=oh[e.MsgPriority]),v){const{Reason:e,Revoker_Account:t,Revoker_FromUin:s}=v;E={reason:e,revoker:t,revokerFromUin:s,userID:t}}const S=function(e){const t=[];Array.isArray(e)&&e.forEach(e=>{e.GroupAtAllFlag===ih?t.push(e.GroupAt_Account):e.GroupAtAllFlag===rh&&t.push(Rs.MSG_AT_ALL)});return t}(f);return{clientSequence:t,from:s,groupProfile:n,clientTime:i,priority:C,random:r,sequence:a,time:c,messageControlInfo:{excludedFromLastMessage:1===(null==u?void 0:u.NoLastMsg),excludedFromUnreadCount:1===(null==u?void 0:u.NoUnread)},isSupportExtension:l,tinyID:d,cloudCustomData:h,messageVersion:g,checkResult:p,needReadReceipt:_,isPlaceMessage:m,revokerInfo:E,atUserList:S,elements:Th(o),to:Ah(e),onlineOnlyFlag:1===I}}function Ah(e){const{utils:{isEmpty:t},constants:{IS_TOPIC_MESSAGE:s}}=ss,{ToGroupId:n,GroupInfo:{MillionGroupFlag:o=0,TopicId:i}={}}=e;return o!==s||t(i)?n:i}function Th(e){if(!e)return null;if(Array.isArray(e))return e.map(e=>{const t=ss.message.messageFactory.getElementClass(e.MsgType);return null==t?void 0:t.parseServerPushElement(e)});const t=ss.message.messageFactory.getElementClass(e.MsgType);return null==t?void 0:t.parseServerPushElement(e)}function Rh(e){const{From_Account:t,MsgBody:s,MsgClientTime:n,MsgRandom:o,MsgSeq:i,MsgTimeStamp:r,GroupId:a,TopicId:c,MsgVersion:u,CloudCustomData:l,MsgCheckResult:d}=e;return{from:t,clientTime:n,random:o,sequence:i,time:r,groupID:a,topicID:c,elements:Th(s),messageVersion:u,cloudCustomData:l,checkResult:d}}function Dh({conversationUpdateFields:e,message:t}){const{conversationID:s,conversationType:n,conversationSubType:o,flow:i,_isExcludedFromUnreadCount:r,_isExcludedFromLastMessage:a}=t,c=a?"":t,u=!r&&i===ah.IN;e.has(s)?(e.get(s).lastMessage=c,u&&e.get(s).unreadCount++):e.set(s,{conversationID:s,type:n,subType:o,unreadCount:u?1:0,lastMessage:c})}function bh(e){return e.filter(e=>{const t=!ve(null==e?void 0:e._elements),s=1===(null==e?void 0:e.isPlaceMessage);return t||ss.ssoLog.error("emptyMessageBody",`from:${e.from} to:${e.to} sequence:${e.sequence}`),t&&!s})}function Nh(e){const{messageDataHandler:t}=ss.message;return!t.isInMessageList(e)&&!t.isMessageSentByCurrentInstance(e)}var Lh=Object.freeze({__proto__:null,autoIncrementIndex:lh,filterValidMessages:bh,parseServerGroupMessage:Oh,parseServerPushC2CModifyMessage:yh,parseServerPushGroupModifyMessage:Rh,parseServerPushMessage:Mh,parseServerPushMessageElement:Th,shouldStoreMessage:Nh,updateConversationFields:Dh});const{isPlainObject:Ph}=ss.utils;function Gh(e,t={}){const{onlineUserOnly:s,messageControlInfo:n}=t;let{offlinePushInfo:o}=t;e.conversationType===th.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&&Ph(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 wh(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 Uh(e,t){return de(this,void 0,void 0,function*(){const s=e.conversationType===th.CONV_GROUP?function(e,t){var s;const o=Gh(e,t),{onlineUserOnly:i,cloudCustomData:r,messageControlInfo:a,offlinePushInfo:c}=o,u=JSON.parse(JSON.stringify(e.transformElementsToServerFormat()));let l;return n(e._receiverList)&&e._receiverList.length>0&&(l=e._receiverList,e._receiverList.length>50&&(l=e._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:null===(s=ss.store.get("login"))||void 0===s?void 0:s.userId,GroupId:e.to,MsgBody:u,CloudCustomData:r,Random:e.random,MsgPriority:e.priority,ClientSeq:e.clientSequence,GroupAtInfo:e._groupAtInfoList,OnlineOnlyFlag:i?1:0,MsgClientTime:e.clientTime,OfflinePushInfo:Sh(c),SendMsgControl:i?void 0:a,NeedReadReceipt:!0===e.needReadReceipt?1:0,To_Account:l,SupportMessageExtension:!0===e.isSupportExtension?1:0,IsRelayMsg:!0===e._relayFlag?1:0,CustomModerationConfigID:e._cmConfigID,ForbidCallbackControl:wh(t)}}}(e,t):function(e,t){var s;const n=Gh(e,t),{onlineUserOnly:o,cloudCustomData:i,messageControlInfo:r,offlinePushInfo:a}=n,c=!0===o?0:void 0,u=JSON.parse(JSON.stringify(e.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:null===(s=ss.store.get("login"))||void 0===s?void 0:s.userId,To_Account:e.to,MsgBody:u,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:Sh(a),ForbidCallbackControl:wh(t)}}}(e,t),o=yield fn(s);return o?{time:o.MsgTime,messageDropReason:o.MsgDropReason,sequence:o.MsgSeq}:null})}const{isPlainObject:kh}=ss.utils,{MSG_AUDIO:Fh,MSG_FILE:$h,MSG_IMAGE:xh,MSG_VIDEO:qh,MSG_MERGER:Vh}=Rs;class Bh{init(){Jd.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:e=>![Fh,$h,xh,qh,Vh].includes(e[0].type)})}sendMessage(e,t){return de(this,void 0,void 0,function*(){const{TOTAL_COUNT:s,SEND_COST:n,SUCCESS_COUNT:o,FAILED_COUNT:i}=ws;if(!(e instanceof dh))throw new en({code:Ds.MSG_INSTANCE_REQUIRED});const r=e.validateBeforeSend();if(!r.isValid){const{code:e,message:t=""}=r.error||{};throw new en({code:e,message:t})}this._reportMessageSendQuality({name:s,message:e});let a=!1;const{messageDataHandler:c}=ss.message||{};try{const{messageControlInfo:s}=t||{};let i=null;c.addRandomOfSentMessage(e.random);const r=Date.now();if(e.conversationType===th.CONV_C2C?(a=!0===(null==t?void 0:t.onlineUserOnly),i=yield Uh(e,t)):e.conversationType===th.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(e),i=yield Uh(e,t)),i){const{messageDropReason:t,sequence:u,time:l}=i;if(this._updateNickAndAvatarOfSentMessageByMe(e),t&&this._logRateLimitInfo(e,u,t),this._reportMessageSendQuality({name:o,message:e}),this._reportMessageSendQuality({name:n,message:e,startTs:r}),!0===e.isResend){const t=c.findMessage(e.ID);t&&(ss.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${t.ID}`),c.deleteConversationMessage(t))}return e.status=gs.SUCCESS,e.time=l,e.conversationType===th.CONV_GROUP&&(e.sequence=u),a?e._onlineOnlyFlag=!0:(c.storeConversationMessage(e),this._applySentMessageControlInfo(e,s),this._emitOnlineMessageSent(e)),{code:0,data:{message:e}}}}catch(t){e.status=gs.FAIL,c.removeRandomOfSentMessage(e.random);let{errorCode:s}=t||{},n=(null==t?void 0:t.errorInfo)||(null==t?void 0:t.message)||"";this._hasRiskContent(s)&&(e.hasRiskContent=!0),a||this._isRejectedByRestApi(s)||c.storeConversationMessage(e),this._reportMessageSendQuality({name:i,message:e,error:t});throw new en({code:s,message:n,data:{message:e},moreMessage:`type:${e.type} from:${e.from} to:${e.to}`})}})}_hasRiskContent(e){return 80001===e||80004===e}_isRejectedByRestApi(e){return e>=10100&&e<=10200||e>=120001&&e<=13e4}_emitOnlineMessageSent(e){const t=e._isExcludedFromLastMessage?"":e,{conversationID:s,conversationType:n}=e,o=_n(s)?us.TOPIC_NEW_MESSAGE:us.NEW_MESSAGE;ss.notificationCenter.emitInnerEvent(o,{result:{conversationUpdateFieldList:[{conversationID:s,type:n,message:e,lastMessage:t,unreadCount:0}]}})}_applySentMessageControlInfo(e,t){t&&kh(t)&&(!0===t.excludedFromLastMessage&&(e._isExcludedFromLastMessage=!0),!0===t.excludedFromUnreadCount&&(e._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(e,t,s){const n=`from:${e.from} to:${e.to} sequence:${t} messageDropReason:${s}`;ss.ssoLog.warn("messageDropReason",n)}_updateNickAndAvatarOfSentMessageByMe(e){const{messageDataHandler:t}=ss.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})}}_validateBeforeSendGroupMessage(e){return de(this,void 0,void 0,function*(){var t,s,n;const{to:o,from:i}=e;let r=o,a=Kd.getGroup(r);if(pn({groupID:r})&&(null==a?void 0:a.isSupportTopic))throw new en({code:Ds.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(_n(o)&&([r]=o.split(ys.TOPIC),a=Kd.getGroup(r)),!a&&"function"==typeof(null===(t=Jd.getInstance().getApiMap())||void 0===t?void 0:t.getGroupProfile)){const e=yield Jd.getInstance().getApiMap().getGroupProfile({groupID:r});if((null===(n=null===(s=null==e?void 0:e.data)||void 0===s?void 0:s.group)||void 0===n?void 0:n.type)===Rs.GRP_AVCHATROOM){const e=Zs({code:Ds.MSG_SEND_FAIL_NOT_IN_AV,replacement1:i,replacement2:r});throw new en({code:Ds.MSG_SEND_FAIL_NOT_IN_AV,message:e})}}return!0})}_reportMessageSendQuality(e){ss.notificationCenter.emitInnerEvent(us.QUALITY_STAT,{label:Gs.MESSAGE_SEND_SUCCESS_RATE,data:e})}}var jh=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){ss.notificationCenter.subscribeInnerEvent(us.LOGOUT,this._reset,this),ss.notificationCenter.subscribeInnerEvent(us.DESTROY,this._dispose,this)}get _messagesByConversation(){return Wd.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=fe(i);return(null===(s=this._messagesByConversation.get(e))||void 0===s?void 0:s.has(t))?Wd.updateMessage(e,[t],{isModified:!0,version:n,_elements:a,payload:a[0].content,type:a[0].type,cloudCustomData:r,hasRiskContent:c,operation:ps.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 Wd.updateMessage(e,[t],{isRevoked:!0,revoker:n,operation:ps.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:t,sequence:s,random:n}){for(let o=0;o<t.length;o+=1){const i=t[o];if(i.sequence===s&&(e(n)||i.random===n))return i}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.add(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(),ss.notificationCenter.unSubscribeInnerEvent(us.LOGOUT,this._reset,this),ss.notificationCenter.unSubscribeInnerEvent(us.DESTROY,this._dispose,this)}};function Hh(e,t){const s=Hd.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:u,elements:l,cloudCustomData:d}=t;o===a&&i===c&&r!==u&&(n.type=l[0].type,n.payload=l[0].content,n.messageForShow=On(n.type,n.payload),n.cloudCustomData=d,n.version=u,Hd.updateConversation(e,{lastMessage:n}))}}class Kh{init(){Jd.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(e){return de(this,void 0,void 0,function*(){const{to:t,payload:s,sequence:n,conversationType:o,random:i,time:r,from:a,type:c}=e;if(this._canModifyMessageElement(c)){const t=(null==e?void 0:e._elements)||[];t.length>1&&(t[0].type=c,t[0].content=s)}try{let s=null,c=null;if(o===th.CONV_C2C?s=yield function(e){return de(this,void 0,void 0,function*(){const{from:t,to:s,version:n=0,sequence:o,random:i,time:r,type:a,cloudCustomData:c}=e,u={From_Account:t,To_Account:s,MsgVersion:n,MsgSeq:o,MsgRandom:i,MsgTime:r,MsgType:a,MsgBody:e.transformElementsToServerFormat(),CloudCustomData:c},l=yield fn({servcmd:"openim.modify_c2c_msg",data:u});if(l){const{MsgBody:e,MsgVersion:t,CloudCustomData:s}=l;return{elements:Th(e),messageVersion:t,cloudCustomData:s}}})}(e):o===th.CONV_GROUP&&(s=yield function(e){return de(this,void 0,void 0,function*(){const{to:t,version:s=0,sequence:n,cloudCustomData:o}=e,i={GroupId:t,MsgVersion:s,MsgSeq:n,MsgBody:e.transformElementsToServerFormat(),CloudCustomData:o},r=yield fn({servcmd:"openim.modify_group_msg",data:i});if(r){const{MsgBody:e,MsgVersion:t,CloudCustomData:s}=r;return{elements:Th(e),messageVersion:t,cloudCustomData:s}}})}(e)),s){let u=`${o}${t}`;return t===Sn()&&o===th.CONV_C2C&&(u=`${o}${a}`),c={conversationType:o,from:a,to:t,time:r,random:i,sequence:n,elements:null==s?void 0:s.elements,cloudCustomData:null==s?void 0:s.cloudCustomData,messageVersion:null==s?void 0:s.messageVersion,conversationID:u},this._handleModifyMessageSuccess(c),{code:0,data:{message:e},successLog:{message:`to:${t}`}}}}catch(e){const{errorCode:t}=e||{};throw new en({functionName:"modifyMessage",code:t})}})}_handleModifyMessageSuccess(e){const{conversationID:t}=e,{isUpdated:s,message:n}=ss.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&ss.notificationCenter.emitOuterEvent(as.MESSAGE_MODIFIED,{name:as.MESSAGE_MODIFIED,data:[n]}),ss.notificationCenter.emitInnerEvent(us.MESSAGE_MODIFIED,{conversationID:t,message:n}),Hh(t,e)}_canModifyMessageElement(e){return[nh.MSG_TEXT,nh.MSG_CUSTOM,nh.MSG_LOCATION,nh.MSG_FACE].includes(e)}}class Wh{init(){const{notificationCenter:e}=ss,{InnerEventSubType:t}=e;hn.getInstance().registerWorkflowStep(Ns.RECEIVE_C2C_NEW_MESSAGE,Ls.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),hn.getInstance().registerWorkflowStep(Ns.RECEIVE_C2C_NEW_MESSAGE,Ls.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),hn.getInstance().registerWorkflowStep(Ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Ls.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),e.subscribeInnerEvent(us.MESSAGE_PUSH,t.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),e.subscribeInnerEvent(us.MESSAGE_PUSH,t.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),e.subscribeInnerEvent(us.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(e){hn.getInstance().executeWorkflow(Ns.RECEIVE_C2C_NEW_MESSAGE,e)}_handleC2CMessagePush(e){const t=e.data||{},{messageDataHandler:s}=ss.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._onlineOnlyFlag)s.isMessageSentByCurrentInstance(t)||n.push(t);else if(Nh(t)){s.storeConversationMessage(t)&&Dh({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[Ls.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(s)}_emitMessageEventsAfterSyncUnreadMessage(e){var t;const{messages:s=[]}=(null===(t=e.result)||void 0===t?void 0:t[Ls.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&&ss.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&&ss.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:s})}_generateC2CMessage(e){const t=th.CONV_C2C,s=Mh(e),n=ss.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:ah.IN})),{elements:o}=s;return n.setElement(o),n}_updateMessageProfile(s){var n;const{messageDataHandler:o}=ss.message||{},i=null===(n=ss.store.get("login"))||void 0===n?void 0:n.userId,{from:r,nick:a,avatar:c,conversationID:u=""}=s;if(r!==i){const n=o.getLatestMsgSentByPeer(u);if(n){const{nick:i,avatar:r}=n;e(a)||e(c)?(s.nick=t(i)?i:s.nick,s.avatar=t(r)?r:s.avatar):a===i&&c===r||(o.updateNickAndAvatarOfSentMessage({conversationID:u,latestNick:a,latestAvatar:c,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:u,nick:a,avatar:c}))}}else{const e=o.getLatestMsgSentByMe(u);!e||a===e.nick&&c===e.avatar||o.updateNickAndAvatarOfSentMessage({conversationID:u,latestNick:a,latestAvatar:c,isSentByMe:!0})}}_updateConversationUserProfile(e){const{conversationID:t,nick:s,avatar:n}=e,o=Hd.getConversation(t),{userProfile:i={}}=o||{};i.avatar===n&&i.nick===s||Hd.updateConversation(t,{userProfile:Object.assign(Object.assign({},i),{nick:s,avatar:n})})}_updateMessageListDueToModify(e){const{conversationID:t}=e,{isUpdated:s,message:n}=ss.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&ss.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[n]}),ss.notificationCenter.emitInnerEvent("ModifyMessageSuccess",e),Hh(t,e)}_handleC2CMessageModify(e){e.C2cMsgModNotifys.forEach(e=>{var t;const s=th.CONV_C2C;let n=yh(e);const{to:o,from:i}=n;let r=`${s}${o}`;o===(null===(t=ss.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}=ss,{InnerEventSubType:t}=e;ss.notificationCenter.unSubscribeInnerEvent(us.MESSAGE_PUSH,t.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),ss.notificationCenter.unSubscribeInnerEvent(us.MESSAGE_PUSH,t.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),ss.notificationCenter.unSubscribeInnerEvent(us.DESTROY,this._dispose,this)}}class Yh{init(){const{notificationCenter:e}=ss,{InnerEventSubType:t}=e;hn.getInstance().registerWorkflowStep(Ns.RECEIVE_GROUP_NEW_MESSAGE,Ls.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),hn.getInstance().registerWorkflowStep(Ns.RECEIVE_GROUP_NEW_MESSAGE,Ls.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),e.subscribeInnerEvent(us.MESSAGE_PUSH,t.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),e.subscribeInnerEvent(us.MESSAGE_PUSH,t.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),e.subscribeInnerEvent(us.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(e){this._canExecuteReceiverNewMessageWorkFlow(e)&&hn.getInstance().executeWorkflow(Ns.RECEIVE_GROUP_NEW_MESSAGE,e)}_handleGroupMessagePush(e){const t=e.data||{},{messageDataHandler:s}=ss.message,n=[],o=new Map,i=null==t?void 0:t.GroupMsgArray;return null==i||i.forEach(e=>{if(1===e.GroupInfo.NotVisible)return;const t=this._generateGroupMessage(e);this.updateMessageProfile(t);let i=1===t.isModified;if(s.isMessageSentByCurrentInstance(t)?t.isModified=i:i=!1,t._onlineOnlyFlag)s.isMessageSentByCurrentInstance(t)||n.push(t);else if(Nh(t)){s.storeConversationMessage(t)&&(n.push(t),Dh({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[Ls.HANDLE_GROUP_NEW_MESSAGE])||{},n=(null==s?void 0:s.filter(e=>!0===(null==e?void 0:e.isModified)))||[];n.length>0&&ss.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&&ss.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:o})}_generateGroupMessage(e){const t=th.CONV_GROUP,s=Oh(e),n=ss.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:ah.IN})),{elements:o}=s;return n.setElement(o),n}updateMessageProfile(e){var t;const{messageDataHandler:s}=ss.message||{},n=null===(t=ss.store.get("login"))||void 0===t?void 0:t.userId,{from:o,nick:i,avatar:r,conversationID:a="",_elements:c}=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})}else if(o===Rs.CONV_SYSTEM){const{operationType:t,memberInfoList:s,operatorInfo:n}=c;let o={};if(ve(s)?ve(n)||(o=n):[Os.JOINED,Os.KICKED,Os.ADMIN_SET,Os.ADMIN_CANCELED].includes(t)&&(o=Object.assign({},s[0])),!ve(o)){const{nick:t="",avatar:s=""}=o;e.nick=t,e.avatar=s}}}_updateMessageListDueToModify(e){const{conversationID:t}=e,{isUpdated:s,message:n}=ss.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&ss.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[n]}),Hh(t,e)}_handleGroupMessageModify(e){e.GroupMsgModNotifys.forEach(e=>{const t=th.CONV_GROUP;let s=Rh(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}=ss,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:t,GROUP_MESSAGE_MODIFIED:s}}=e;e.unSubscribeInnerEvent(us.MESSAGE_PUSH,t,this._handleGroupMessagePush,this),e.unSubscribeInnerEvent(us.MESSAGE_PUSH,s,this._handleGroupMessageModify,this),e.unSubscribeInnerEvent(us.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(e){var t,s;const{GroupId:n,GroupType:o}=(null===(s=null===(t=null==e?void 0:e.GroupMsgArray)||void 0===t?void 0:t[0])||void 0===s?void 0:s.GroupInfo)||{},i=o===Ms.GRP_AVCHATROOM;return!(!Kd.getGroup(n)&&i)}}var zh=new class{constructor(){this.c2cMessageReceiver=new Wh,this.groupMessageReceiver=new Yh}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const Jh={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 must be a string";return!0}(e)}}};const Qh={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var Xh=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(e){return de(this,void 0,void 0,function*(){try{const{conversationID:t,count:s,direction:o,sequence:i,messageSequenceList:r,shouldMarkCompleted:a=!1,getType:c}=e,u=t.replace(Es.CONV_GROUP,""),l=[];let d=i;if(o===_s.BACKWARD){if("number"!=typeof i)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};d=i+s-1}const h=yield function(e){return de(this,void 0,void 0,function*(){const{groupID:t,count:s,messageSequence:o,messageSequenceList:i,getType:r}=e,a={GroupId:t,ReqMsgNumber:s,WithRecalledMsg:1,Version:1,GetType:r};return o&&(a.ReqMsgSeq=o),n(i)&&i.length>0&&(a.ReqMsgSeqList=i),yield fn({servcmd:"group_open_http_svc.group_msg_get",data:a})})}({groupID:u,count:s,messageSequence:d,messageSequenceList:r,getType:c});if(h){const{RspMsgList:e=[],NextReqMsgSeq:s=0,IsFinished:n,InvisibleMsgSeq:r}=h,c=`groupID:${u} sequence:${i} reqSeq:${d} direction:${o} complete:${n} nextSequence:${s} remoteMsgCount:${e.length} invisibleSequenceList:${r}`,g=[];for(let t=0;t<e.length;t++){const s=e[t];s.From_Account===Rs.CONV_SYSTEM&&l.push(s);const n=this._parseMessage(s);g.push(n)}g.reverse();let p=n===ch;o===_s.BACKWARD&&(p=g[g.length-1].sequence>=i),p&&a&&this.completedHistoryConversations.add(t);const _=bh(g);return ss.ssoLog.info("getGroupRoamingMessagesByAnchor",c),{messageList:_,invisibleSequenceList:r,nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:p,serverGroupTipList:l}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};throw new en({code:t,message:s})}})}clearHistoryMessageListFetchAnchors(e){this._historyMessageListFetchAnchors.delete(e)}isHistoryMessageFetchCompleted(e){return this.completedHistoryConversations.has(e)}_parseMessage(e){var t;const s=Es.CONV_GROUP;4===e.Event&&(e.MsgBody.MsgType=Rs.MSG_GRP_TIP);const n=Oh(e),o=ph.createMessage(Object.assign(Object.assign({},n),{conversationType:s,flow:"in"}));return qd((null===(t=n.elements)||void 0===t?void 0:t.content)||{},o),o.setElement(n.elements),o}getC2CRoamingMessagesByAnchor(e){return de(this,void 0,void 0,function*(){var t;try{const{conversationID:s,count:n,messageID:o,time:i,direction:r,shouldMarkCompleted:a=!1}=e;let c=i,u="";if(!i){const e=o?ss.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,u=e.messageKey}}const l=s.replace(Es.CONV_C2C,""),d=yield function(e){return de(this,void 0,void 0,function*(){const{peerAccount:t,count:s,lastMessageTime:n,messageKey:o,direction:i}=e;return fn({servcmd:"openim.getroammsg",data:{Peer_Account:t,MaxCnt:s,WithRecalledMsg:1,LastMsgTime:n,MsgKey:o,GetDirection:i}})})}({count:n,lastMessageTime:c,messageKey:u,peerAccount:l,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._parseC2CMessage(s);r.push(n)}const c=bh(r),u=null===(t=c[0])||void 0===t?void 0:t.ID,l=1===n;return l&&a&&this.completedHistoryConversations.add(s),{messageList:c,nextReqMessageIDFromServer:u,lastMessageTime:i,hasNoMoreHistoryMessage:l}}}catch(e){throw ss.ssoLog.debug("getC2CRoamingMessagesByAnchor",Ie(e)),e}})}_parseC2CMessage(e){const t=Es.CONV_C2C,s=Mh(e),n=ph.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:"in"}));return n.setElement(s.elements),n}reset(){this._historyMessageListFetchAnchors.clear(),this.completedHistoryConversations.clear()}};class Zh{constructor(){this.messageHelper=Lh,this.messageFactory=ph,this.messageSender=new Bh,this.messageAction=new Kh,this.messageReceiver=zh,this.messageDataHandler=jh,this.messageHistory=Xh,this.messageSender.init(),this.messageFactory.init(),this.messageAction.init(),this.messageReceiver.init(),this.messageDataHandler.init(),ln({auth:Qh,params:Jh}),ss.notificationCenter.subscribeInnerEvent(us.LOGOUT,this._reset,this),ss.notificationCenter.subscribeInnerEvent(us.DESTROY,this._dispose,this)}_reset(){this.messageHistory.reset()}_dispose(){this._reset(),ss.notificationCenter.unSubscribeInnerEvent(us.LOGOUT,this._reset,this),ss.notificationCenter.unSubscribeInnerEvent(us.DESTROY,this._dispose,this)}}const eg="Tag_Profile_IM_",tg={NICK:`${eg}Nick`,GENDER:`${eg}Gender`,BIRTHDAY:`${eg}BirthDay`,LOCATION:`${eg}Location`,SELFSIGNATURE:`${eg}SelfSignature`,ALLOWTYPE:`${eg}AllowType`,LANGUAGE:`${eg}Language`,AVATAR:`${eg}Image`,MESSAGESETTINGS:`${eg}MsgSettings`,ADMINFORBIDTYPE:`${eg}AdminForbidType`,LEVEL:`${eg}Level`,ROLE:`${eg}Role`},sg="Tag_Profile_Custom",ng="profileCustomField",og="USER_STATUS",ig=1,rg=1e3,ag={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:[]},cg=new Map([[tg.NICK,"nick"],[tg.GENDER,"gender"],[tg.BIRTHDAY,"birthday"],[tg.LOCATION,"location"],[tg.SELFSIGNATURE,"selfSignature"],[tg.ALLOWTYPE,"allowType"],[tg.LANGUAGE,"language"],[tg.AVATAR,"avatar"],[tg.MESSAGESETTINGS,"messageSettings"],[tg.ADMINFORBIDTYPE,"adminForbidType"],[tg.LEVEL,"level"],[tg.ROLE,"role"]]);var ug=new class{createProfile(e,t){const s={userID:e,profileCustomField:[]};return t.forEach(e=>{const{tag:t,value:n}=e;t&&t.indexOf(sg)>-1?s.profileCustomField.push({key:t,value:n}):cg.has(t)&&(s[cg.get(t)]=n)}),Object.assign(Object.assign({},ag),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=>{s!==ng&&t.push({tag:tg[s.toUpperCase()],value:e[s]})}),e.profileCustomField&&n(e.profileCustomField)&&e.profileCustomField.forEach(e=>{t.push({tag:e.key,value:e.value})}),t}normalizeProfileFields(e){const t={},s=[];return e.forEach(e=>{const{tag:n,value:o}=e;if(n&&n.indexOf(sg)>-1&&s.push({key:n,value:o}),cg.has(n)&&void 0!==o){const e=cg.get(n);t[e]=o}}),s.length>0&&(t.profileCustomField=s),t}};const{generateProtocolData:lg}=ss.common;function dg(e){return de(this,void 0,void 0,function*(){const t="profile.portrait_get_all",s={From_Account:Sn(),UserItem:[]};e.forEach(e=>{s.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:e})});const n=lg({servcmd:t,data:s}),o=`${n.head.seq}${t}`,i=yield ss.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=ug.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 hg(e){return Yd.getFriendMap().has(e)}const{isEmpty:gg}=ss.utils;class pg{constructor(){this._strangerProfileMap=new Map}init(){Jd.getInstance().registerApi({apiName:"getMyProfile",context:this}),Jd.getInstance().registerApi({apiName:"getUserProfile",context:this}),Jd.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=ug.createProfile.bind(ug);const{notificationCenter:e}=ss;hn.getInstance().registerWorkflowStep(Ns.SYNC_SERVER_INFO_AFTER_LOGIN,Ls.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),e.subscribeInnerEvent(us.MESSAGE_PUSH,e.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),e.subscribeInnerEvent(us.LOGOUT,this._reset,this),e.subscribeInnerEvent(us.DESTROY,this._dispose,this)}getMyProfile(){return de(this,void 0,void 0,function*(){try{const e=Sn(),t=yield dg([e]);if(t){const s=this._handleProfileFormResponse(t)[0];return Yd.getUserProfileMap().set(e,s),{code:0,data:s}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new en({functionName:"getMyProfile",code:t,message:s})}})}getUserProfile(e){return de(this,void 0,void 0,function*(){try{let{userIDList:t}=e;const{userIdListToRequest:s,profileFromCache:o}=this._filterRequestAndCacheUsers(t);if(0===s.length)return{code:0,data:o,successLog:{message:`userIDList.length:${t.length}`}};s.length>rg&&(ss.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),s.length=rg);const{data:i,error:r}=yield this._batchFetchUserProfiles(s),a=s.length,c=i.length,u=a-c;if(0===o.length&&a===u&&!gg(r))throw r;if(n(i)){i.forEach(e=>{hg(e.userID)?Yd.getUserProfileMap().set(e.userID,e):this._strangerProfileMap.set(e.userID,e)});const e=i.concat(o);return{code:0,data:e,successLog:{message:`getUserProfile query:${a} success:${c} fail:${u} from cache:${o.length}`}}}}catch(e){const{errorCode:t}=e;throw new en({functionName:"getUserProfile",code:t})}})}getMyProfileCacheThenServer(){return de(this,void 0,void 0,function*(){const e=Sn(),t=Yd.getUserProfileMap().has(e);return t?{code:0,data:t}:this.getMyProfile()})}updateMyProfile(e){return de(this,void 0,void 0,function*(){const t=Sn(),s={};for(const t in e)void 0!==e[t]&&(s[t]=e[t]);const n=ug.convertParamsToProfile(s);try{const e={From_Account:t,ProfileItem:n};yield function(e){return de(this,void 0,void 0,function*(){const t="profile.portrait_set",s=lg({servcmd:t,data:e}),n=`${s.head.seq}${t}`,o=yield ss.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 o=Yd.getUserProfile(t);let i;i=o?Object.assign(Object.assign({},o),s):ug.createProfile(t,n);const r=!os(o,i,["lastUpdatedTime"]);return i.lastUpdatedTime=Date.now(),Yd.getUserProfileMap().set(t,i),r&&this._emitProfileUpdated(i),{code:0,data:i,successLog:{message:`profileArray: ${ss.utils.safeStringify(n)}`}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new en({functionName:"updateMyProfile",code:t,message:s})}})}updateMyNickAndAvatar(e){return de(this,void 0,void 0,function*(){const t=Sn(),s=Date.now(),n=Yd.getUserProfile(t);let o={};o=n?Object.assign(n,e):ug.createProfile(t,e),o.lastUpdatedTime=s,Yd.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:ug.parseProfileList(n)}}(e.ProfileDataMod[0]);if(gg(t))return;const{isProfileUpdated:s,profile:n}=this._handleProfileModified(t);s&&this._emitProfileUpdated(n)}_emitProfileUpdated(e){ss.notificationCenter.emitInnerEvent(us.PROFILE_UPDATE,{name:us.PROFILE_UPDATE,data:[e]}),ss.notificationCenter.emitOuterEvent(as.PROFILE_UPDATED,{name:as.PROFILE_UPDATED,data:[e]}),Hd.updateConversation(`C2C${null==e?void 0:e.userID}`,{userProfile:e})}_dispose(){const{notificationCenter:e}=ss;e.unSubscribeInnerEvent(us.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(us.MESSAGE_PUSH,e.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),e.unSubscribeInnerEvent(us.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(e){const{userId:t,profileList:s}=e,n=Yd.getUserProfile(t);if(!(Sn()===t||hg(t)&&n))return{isProfileUpdated:!1,profile:null};const o=ug.normalizeProfileFields(s),i=Object.keys(o).some(e=>e===ng?!os(n.profileCustomField,o.profileCustomField):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 Yd.getUserProfileMap().set(t,a),{isProfileUpdated:i,profile:a}}_filterRequestAndCacheUsers(e){const t=[],s=[];return e.forEach(e=>{const n=Yd.getUserProfileMap().has(e);hg(e)&&n?s.push(Yd.getUserProfile(e)):this._isStrangerAndProfileValid(e)?s.push(this._strangerProfileMap.get(e)):t.push(e)}),{userIdListToRequest:t,profileFromCache:s}}_handleProfileFormResponse(e){const{userProfile:t}=e;if(!Array.isArray(t))return[];const s=t.filter(e=>"@TLS#NOT_FOUND"!==e.userId&&""!==e.userId&&!gg(e.profileItem)),n=Date.now();return s.map(e=>{const t=ug.createProfile(e.userId,e.profileItem);return t.lastUpdatedTime=n,t})}_isStrangerAndProfileValid(e){var t;if(!hg(e)){const{lastUpdatedTime:s=0}=this._strangerProfileMap.get(e)||{},n=(null===(t=ss.store.get("cloudConfig"))||void 0===t?void 0:t.stranger_profile_expiration_time)||6e5;return Date.now()-s<=n}return!1}_chunkUserIDList(e,t){return Array.from({length:Math.ceil(e.length/t)},(s,n)=>e.slice(n*t,(n+1)*t))}_batchFetchUserProfiles(e){return de(this,void 0,void 0,function*(){const t=[],s=[];let o={};this._chunkUserIDList(e,100).forEach(e=>{t.push(dg(e))});return(yield Promise.allSettled(t)).forEach(e=>{if("fulfilled"===e.status){const t=e.value,o=this._handleProfileFormResponse(t);n(o)&&s.push(...o)}else if("rejected"===e.status){const{code:t,message:s}=e.reason||{};o={errorCode:t,message:s}}}),{data:s,error:o}})}_reset(){Yd.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const _g=new Map,mg=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let e=0,t=mg.length;e<t;e++)_g.set(e,mg[e]);function vg(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:fg}=ss.utils,{generateProtocolData:Ig}=ss.common;function Eg(e){return de(this,void 0,void 0,function*(){const t="im_open_status.ws_get_user_status",s=Ig({servcmd:t,data:{To_Account:e}}),n=`${s.head.seq}${t}`,o=yield ss.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:vg(n)}}),r=n.map(e=>{const{To_Account:t,Invalid_Account:s,ErrorCode:n,ErrorInfo:o}=e;return{userID:fg(s)?t:s,code:n,message:o}});return{errorCode:t,errorInfo:s,successUserList:i,failureUserList:r}}(o)})}class Cg{constructor(){this._customStatus=""}init(){const{notificationCenter:e}=ss;Jd.getInstance().registerApi({apiName:"getUserStatus",context:this}),Jd.getInstance().registerApi({apiName:"setSelfStatus",context:this}),Jd.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),Jd.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),hn.getInstance().registerWorkflowStep(Ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Ls.USER_STATUS_UPDATE,this._onReOnline,this),e.subscribeInnerEvent(us.MESSAGE_PUSH,e.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),e.subscribeInnerEvent(us.LOGOUT,this._reset,this),e.subscribeInnerEvent(us.DESTROY,this._dispose,this)}setSelfStatus(e){return de(this,void 0,void 0,function*(){const t=Sn(),{customStatus:s}=e;try{return yield function(e){return de(this,void 0,void 0,function*(){const t="im_open_status.ws_set_custom_status",s=Ig({servcmd:t,data:{CustomStatus:e}}),n=`${s.head.seq}${t}`,o=yield ss.channel.sendPacket(s,{requestId:n});if(o){const{ErrorCode:e,ErrorInfo:t}=o;return{errorCode:e,errorInfo:t}}})}(s),this._customStatus=s,{code:0,data:{userID:t,statusType:ig,customStatus:s},successLog:{message:`customStatus: ${s}`}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new en({functionName:"setSelfStatus",code:t,message:s})}})}getUserStatus(e){return de(this,void 0,void 0,function*(){const{userIDList:t=[]}=e;if(this._isOnlyMeInArray(t))return this._getMyStatus();const s=yield this._getUserStatus(t);return Object.assign(Object.assign({},s),{successLog:{message:`userIDList length: ${t.length}`}})})}setCustomStatus(e){const t=vg(e);this._customStatus=t}subscribeUserStatus(e){return de(this,void 0,void 0,function*(){try{const{userIDList:t=[]}=e;this._checkBusinessCapabilityBits("subscribeUserStatus");const s=this._getMaxUserCount("subscribe"),n=this._sliceUserIDList(t,s),o=yield function(e){return de(this,void 0,void 0,function*(){const{channel:t}=ss,s="im_open_status.ws_status_subscribe",n=Ig({servcmd:s,data:{To_Account:e}}),o=`${n.head.seq}${s}`;return yield t.sendPacket(n,{requestId:o})})}(n),i=this._parseResponse(o);return{code:0,data:{failureUserList:i},successLog:{message:`userID length:${t.length} failCount: ${i.length}`}}}catch(e){const{errorCode:t}=e;throw new en({functionName:"subscribeUserStatus",code:t})}})}unsubscribeUserStatus(e){return de(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:t=[]}=e,s=this._getMaxUserCount("unsubscribe"),n=this._sliceUserIDList(t,s),o=yield function(e){return de(this,void 0,void 0,function*(){const{channel:t}=ss,s="im_open_status.ws_status_unsubscribe";let n={};n=0===e.length?{UnsubscribeAll:1}:{To_Account:e};const o=Ig({servcmd:s,data:n}),i=`${o.head.seq}${s}`;return yield t.sendPacket(o,{requestId:i})})}(n),i=this._parseResponse(o);return{code:0,data:{failureUserList:i},successLog:{message:`userID length:${t.length} failCount: ${i.length}`}}}catch(e){const{errorCode:t}=e;throw new en({functionName:"unsubscribeUserStatus",code:t})}})}_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:vg(n)}});this._emitUserStatusUpdatedEvent(s)}_onReOnline(e){const t=vg(e.data.customStatus);if(this._customStatus===t)return;this._customStatus=t;const s={userID:Sn(),statusType:ig,customStatus:t};this._emitUserStatusUpdatedEvent(s)}_emitUserStatusUpdatedEvent(e){ss.notificationCenter.emitOuterEvent(as.USER_STATUS_UPDATED,{name:as.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:ss.utils.isEmpty(s)?t:s,code:n,message:o}})}_checkBusinessCapabilityBits(e){if(!ss.store.get("commercialConfig").get(og))throw new en({functionName:e,code:Ds.NO_USE,replacement1:e})}_getMaxUserCount(e){const t=ss.store.get("cloudConfig")||{},s={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:n,default:o}=s[e],i=t[n]||o;return parseInt(i,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:Sn(),statusType:ig,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(e){return de(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const t=this._getMaxUserCount("query"),s=this._sliceUserIDList(e,t),n=yield Eg(s),{successUserList:o,failureUserList:i}=n||{};return{code:0,data:{successUserList:o,failureUserList:i}}}catch(e){const{errorCode:t}=e;throw new en({functionName:"getUserStatus",code:t})}})}_isOnlyMeInArray(e){const t=Sn();return 1===e.length&&e.indexOf(t)>-1}_dispose(){const{notificationCenter:e}=ss;e.unSubscribeInnerEvent(us.MESSAGE_PUSH,e.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),e.unSubscribeInnerEvent(us.DESTROY,this._dispose,this),e.unSubscribeInnerEvent(us.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const Sg={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,customValidator:function(e){for(const t of e){if("object"!=typeof t)return"Each item in profileCustomField must be an object";if("string"!=typeof(null==t?void 0:t.key))return"Each item.key in profileCustomField must be a string";if(!(null==t?void 0:t.key.startsWith(sg)))return'Each item.key in profileCustomField must start with "Tag_Profile_Custom"'}return!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}}},Mg={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class yg{constructor(){this.userProfile=new pg,this.userStatus=new Cg,this.userProfile.init(),this.userStatus.init(),ln({auth:Mg,params:Sg})}}function Og(e){const 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}var Ag,Tg,Rg;!function(e){e.NOT_START="notStart",e.PENDING="pending",e.RESOLVED="resolved",e.REJECTED="rejected"}(Ag||(Ag={})),function(e){e[e.C2C=1]="C2C",e[e.GROUP=2]="GROUP"}(Tg||(Tg={})),function(e){e[e.C2C=8]="C2C",e[e.GROUP=2]="GROUP"}(Rg||(Rg={}));class Dg{constructor(){this._name="SyncConversationHandler",this._pagingStatus=Ag.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:e}=ss;hn.getInstance().registerWorkflowStep(Ns.SYNC_SERVER_INFO_AFTER_RE_ONLINE,Ls.CONVERSATION_RECOVER,this._syncConversationList,this),hn.getInstance().registerWorkflowStep(Ns.SYNC_SERVER_INFO_AFTER_LOGIN,Ls.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),e.subscribeInnerEvent(us.LOGOUT,this._reset,this),e.subscribeInnerEvent(us.DESTROY,this._dispose,this),ss.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===Ag.RESOLVED}_syncConversationListAfterLogin(){return de(this,void 0,void 0,function*(){return this._pagingStatus=Ag.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return de(this,void 0,void 0,function*(){const{ssoLog:e,utils:{safeStringify:t}}=ss;e.debug("_syncConversationList","start");try{const t=yield this._pagingGetConversationList(!0);this._pagingStatus=Ag.RESOLVED;const{conversationList:s=[]}=t||{};return e.info("_syncConversationList",`success count:${s.length}`),t}catch(s){const{errorCode:n,errorInfo:o}=s,i=new en({code:n,message:o});e.error("_syncConversationList",`fail ${t(s)}`,{error:i})}})}_pagingGetConversationList(e){return de(this,void 0,void 0,function*(){try{const t=[];this._pagingStatus=Ag.PENDING;const s=yield function(e){return de(this,void 0,void 0,function*(){const{fromAccount:t,pagingTimeStamp:s,pagingStartIndex:n,pagingPinnedTimeStamp:o,pagingPinnedStartIndex:i}=e;return fn({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:t,StartIndex:n,TimeStamp:s,TopStartIndex:i,TopTimeStamp:o}})})}({fromAccount:Sn(),pagingTimeStamp:e?this._pagingTimeStamp:0,pagingStartIndex:e?this._pagingStartIndex:0,pagingPinnedTimeStamp:e?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:e?this._pagingPinnedStartIndex:0}),{CompleteFlag:n,SessionItem:o=[],TimeStamp:i,StartIndex:r,TopTimeStamp:a,TopStartIndex:c}=s||{};let u=[];if(1===n&&(this._pagingStatus=Ag.RESOLVED),o.length>0&&(u=this._getConversationOptions(o),t.push(...u)),ss.notificationCenter.emitInnerEvent(us.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:u}),this._pagingTimeStamp=i,this._pagingStartIndex=r,this._pagingPinnedTimeStamp=a,this._pagingPinnedStartIndex=c,1!==n){const{conversationList:s}=yield this._pagingGetConversationList(e);t.push(...s)}return{conversationList:t}}catch(e){throw e}})}_getConversationOptions(e){const{utils:{isUndefined:t}}=ss,s=this._convertConversationKey(e);return this._filterValidConversations(s).map(e=>(t(e.lastMsg)&&(e.lastMsg={elements:[]}),e.type===Tg.C2C?this._assembleC2COption(e):this._assembleGroupOption(e)))}_filterValidConversations(e){return e.filter(({type:e,userID:t})=>e===Tg.C2C&&!function(e){let t;return e.startsWith(Rs.CONV_C2C)&&(t=e.replace(Rs.CONV_C2C,"")),"@TLS#ERROR"===t||"@TLS#NOT_FOUND"===t}(t)||2===e)}_assembleC2COption(e){var t,s,n,o,i,r;const a=this._createUserprofile(e);return{conversationID:`${Rs.CONV_C2C}${e.userID}`,type:Rs.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===Rg.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:a,peerReadTime:e.peerReadTime,isPinned:1===e.isPinned,customData:e.customMark||"",markList:Og(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=ss.user.userProfile)||void 0===t?void 0:t.createProfile(s,i)}_computeIsPeerRead(e){const t=Sn(),{lastC2CMsgFromAccount:s,time:n,c2cPeerReadTime:o}=e;return s===t&&n<=o}_assembleGroupOption(e){var t,s,n;return{conversationID:`${Rs.CONV_GROUP}${e.groupID}`,type:Rs.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===Rg.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:Og(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.C2cPeerReadTime,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;const{utils:{isEmpty:o}}=ss;if(o(e))return null;let i="",r=null;if(!o(e.GroupTips)){const{From_Account:s,GroupName:n}=(null===(t=e.GroupTips)||void 0===t?void 0:t.GroupInfo)||{};i=Rs.MSG_GRP_TIP,r=Object.assign(Object.assign({},this._parseContent(i,e.GroupTips.MsgBody)),{groupProfile:{from:s,groupName:n}})}return e.MsgBody&&(i=null===(s=e.MsgBody[0])||void 0===s?void 0:s.MsgType,r=this._parseContent(i,e.MsgBody[0])),{event:e.Event,elements:[{type:i,content:r,cloudCustomData:e.CloudCustomData}],revokerInfo:{revoker:null===(n=e.RevokerInfo)||void 0===n?void 0:n.Revoker_Account}}}_parseContent(e,t){var s;if(!t)return t;const n=ss.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 le(e,["LayersOverLimit"]).layersOverLimit=1===t,e}_transMsgRemindType(e){let t="";return 0===e?t=Rs.MSG_REMIND_ACPT_AND_NOTE:1===e?t=Rs.MSG_REMIND_DISCARD:2===e?t=Rs.MSG_REMIND_ACPT_NOT_NOTE:3===e&&(t=Rs.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),t}_patchTypeAndPayload(e){var t;const{utils:{isUndefined:s}}=ss,{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:Rs.MSG_GRP_TIP,payload:(null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.content)||{}}}_computeGroupUnreadCount(e){const{unreadCount:t=0,noUnreadCount:s=0}=e,n=t-s;return n>0?n:0}_reset(){this._pagingStatus=Ag.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:e}=ss;e.unSubscribeInnerEvent(us.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(us.DESTROY,this._dispose,this)}}class bg{constructor(){this.syncConversationHandler=new Dg,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${rt}`);var Ng={create:function(e){var t,s;const{SDKAppID:n,testEnv:o=!1,devMode:i=!1,unlimitedAVChatRoom:r=!1,scene:a="",oversea:c=!1,instance:u,disableIndependentDomain:l=!1}=e;let d=n;if(!function(e){if("number"==typeof e)return!0;const t=Number(e);return!Number.isNaN(t)}(d))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(d=Number(d),gn.has(d))return gn.get(d);let h=null;if(u)h=u,h._workflowManager&&hn.setInstance(h._workflowManager),h._pluginManager&&h._pluginManager.installBuiltInPlugin(xd),u.isReady()&&(null===(s=(t=hn.getInstance()).executeWorkflow)||void 0===s||s.call(t,Ns.SYNC_SERVER_INFO_AFTER_LOGIN));else{const e=function(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${e()+e()}${e()}${e()}${e()}${e()}${e()}${e()}`}();ss.init({sdkAppId:d,instanceId:e,testEnv:o,devMode:i,unlimitedAVChatRoom:r,disableIndependentDomain:l,scene:a,oversea:c,sdkEdition:$d,version:rt}),hn.getInstance().init(),ss.message=new Zh,ss.user=new yg,ss.login=new eh,ss.conversation=new bg,Bd.getInstance().installBuiltInPlugin(xd),h=Jd.getInstance().exposeApiForClient(),h._workflowManager=hn.getInstance(),h._pluginManager=Bd.getInstance();const{utils:{IS_WORKER_AVAILABLE:t,USER_AGENT:s,getPlatformType:u,isIOSWebView:g}}=ss,p=`instanceID:${e} SDKAppID:${n} platform:${u()} isIOSWebView:${g} workerAvailable:${t} UserAgent:${s}`;ss.ssoLog.info("sdkConstruct",p)}return gn.set(d,h),h},TSignaling:ls,EVENT:as,VERSION:rt,TYPES:Rs};export{Ng as default};
1
+ const e=e=>void 0===e,t=e=>"string"==typeof e,s=e=>{var t;return null===(t=Object.prototype.toString.call(e).match(/^\[object (.*)\]$/))||void 0===t?void 0:t[1].toLowerCase()},n=e=>"function"==typeof Array.isArray?Array.isArray(e):"array"===s(e),o=e=>null!==e&&"object"==typeof e,i=e=>n(e)||o(e),r=e=>{if("string"!=typeof e)return!1;const t=e[0];return!/[^a-zA-Z0-9]/.test(t)},a=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 c(e=99999999){return Math.round(Math.random()*e)}const u=(t,s,n,o)=>{if(!i(t)||!i(s))return 0;let r=0;const a=Object.keys(s);let c;for(let l=0,d=a.length;l<d;l++)if(c=a[l],!(e(s[c])||n&&n.includes(c)))if(i(t[c])&&i(s[c]))r+=u(t[c],s[c],n,o);else{if(o&&o.includes(s[c]))continue;t[c]!==s[c]&&(t[c]=s[c],r+=1)}return r};function l(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 d={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},h=["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 g;!function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.NONE=4]="NONE"}(g||(g={}));const p="LiteChat",_={[g.DEBUG]:console.debug,[g.INFO]:console.info,[g.WARN]:console.warn,[g.ERROR]:console.error},m={[g.INFO]:4,[g.WARN]:5,[g.ERROR]:6},v=1e3,f=2,I=5e3,E=50,S={CHINA:"CHINA",OVERSEA:"OVERSEA",SINGAPORE:"SINGAPORE",KOREA:"KOREA",GERMANY:"GERMANY",IND:"IND",JPN:"JPN",USA:"USA",INDONESIA:"INDONESIA"},C={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",IPV6:"wss://wssv6.im.qcloud.com",BACKUP:"wss://wss.tim.qq.com",BACKUP_WEB_ONLY:"wss://*w4c.my-cpaas.com",BACKUP_CN:"wss://wss.im.tencent.cn",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",IPV6:"wss://wssv6.im.qcloud.com",BACKUP:"wss://wss.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4c.my-cpaas.com",BACKUP_CN:"wss://wss.im.tencent.cn",STAT:"https://api.my-imcloud.com"},SINGAPORE:{INITIAL:"wss://*w4s.my-imcloud.com",DEFAULT:"wss://wsssgp.im.qcloud.com",IPV6:"wss://wsssgpv6.im.qcloud.com",BACKUP:"wss://wsssgp.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4s.my-cpaas.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",IPV6:"wss://wsskrv6.im.qcloud.com",BACKUP:"wss://wsskr.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4k.my-cpaas.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",IPV6:"wss://wssgerv6.im.qcloud.com",BACKUP:"wss://wssger.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4g.my-cpaas.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",IPV6:"wss://wssindv6.im.qcloud.com",BACKUP:"wss://wssind.im.qcloud.com",BACKUP_WEB_ONLY:"wss://*w4i.my-cpaas.com",STAT:"https://apiind.my-imcloud.com",ANYCAST:"wss://162.14.19.46"},JPN:{INITIAL:"wss://*w4j.my-imcloud.com",DEFAULT:"wss://wssjpn.im.qcloud.com",IPV6:"wss://wssjpnv6.im.qcloud.com",BACKUP:"wss://wssjpn.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4j.my-cpaas.com",STAT:"https://apijpn.my-imcloud.com",ANYCAST:"wss://162.14.13.254"},USA:{INITIAL:"wss://*w4u.my-imcloud.com",DEFAULT:"wss://wssusa.im.qcloud.com",IPV6:"wss://wssusav6.im.qcloud.com",BACKUP:"wss://wssusa.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4u.my-cpaas.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",IPV6:"wss://wssidnv6.im.qcloud.com",BACKUP:"wss://wssidn.my-imcloud.com",BACKUP_WEB_ONLY:"wss://*w4y.my-cpaas.com",STAT:"https://apiidn.my-imcloud.com",ANYCAST:"wss://43.129.34.169"}}};var M;!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"}(M||(M={}));var y=Object.freeze({__proto__:null,ACCESS_ENVIRONMENT:S,CONSOLE_METHOD:_,CloudConfigReportLevelMap:m,get ConvModifyPushType(){return M},DEFAULT_GLOBAL_MAX_TOTAL_COUNT:E,DEFAULT_GLOBAL_THROTTLE_TIME:I,DEFAULT_SINGLE_MAX_TOTAL_COUNT:f,DEFAULT_SINGLE_THROTTLE_TIME:v,ENUM_PLATFORM:d,HOST_CONFIG:C,IS_TOPIC_MESSAGE:2,get LogLevel(){return g},NOT_NEED_CRC_SERVCMD:h,SDK_NAME:p});const O="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&("mac"===wx.getSystemInfoSync().platform||"windows"===wx.getSystemInfoSync().platform)&&void 0===wx.getSystemInfoSync().uniPlatform,A="undefined"!=typeof wx&&"function"==typeof wx.getSystemInfoSync&&Boolean(wx.getSystemInfoSync().fontSizeSetting)||O,T=A&&"function"==typeof wx.createGamePortal,R="undefined"!=typeof qq&&"function"==typeof qq.getSystemInfoSync&&Boolean(qq.getSystemInfoSync().fontSizeSetting),D="undefined"!=typeof tt&&"function"==typeof tt.getSystemInfoSync&&Boolean(tt.getSystemInfoSync().fontSizeSetting),b=D&&"function"==typeof tt.onShow,N="undefined"!=typeof swan&&"function"==typeof swan.getSystemInfoSync&&Boolean(swan.getSystemInfoSync().fontSizeSetting),L="undefined"!=typeof my&&"function"==typeof my.getSystemInfoSync&&Boolean(my.getSystemInfoSync().fontSizeSetting),P="undefined"!=typeof jd&&"function"==typeof jd.getSystemInfoSync,G="undefined"!=typeof uni&&"undefined"==typeof window&&"function"==typeof uni.requireNativePlugin,w=A&&"object"==typeof wx.miniapp,U="undefined"!=typeof uni,k=D&&"function"==typeof tt.enterChat,F=A||R||D||N||L||G||P,$="undefined"==typeof window&&!F&&"undefined"!=typeof global&&void 0!==global.NativeScriptGlobals,x="undefined"!=typeof global&&(void 0!==global.nativeModuleProxy||void 0!==global.ReactNative),q="undefined"!=typeof wx&&"function"==typeof wx.getAccountInfoSync&&Boolean(wx.getAccountInfoSync().plugin),V="undefined"!=typeof uni?!F:"undefined"!=typeof window&&!F&&!x,B=R?qq:D?tt:N?swan:L?my:A?wx:G?uni:P?jd:{},j=V&&window&&window.navigator&&window.navigator.userAgent||"",H=/(micromessenger|webbrowser)/i.test(j),K=function(){let e="WEB";return H?e="WEB":R?e="QQ_MP":D?e="TT_MP":N?e="BAIDU_MP":L?e="ALI_MP":A?e=w?"DONUT_NATIVE_APP":"WX_MP":G?e="UNI_NATIVE_APP":$?e="NS_NATIVE_APP":x&&(e="RN_NATIVE_APP"),d[e]}(),W=/iPad/i.test(j),Y=/iPhone/i.test(j)&&!W,z=/iPod/i.test(j),J=Y||W||z,Q=function(){const e=j.match(/OS (\d+)_/i);return e&&e[1]?e[1]:null}(),X=/Android/i.test(j),Z=function(){const e=j.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}(),ee=/Firefox/i.test(j),te=/Edge/i.test(j),se=!te&&/Chrome/i.test(j),ne=/MSIE/.test(j)||j.indexOf("Trident")>-1&&j.indexOf("rv:11.0")>-1,oe=function(){const e=/MSIE\s(\d+)\.\d/.exec(j);let t=e&&parseFloat(e[1]);return!t&&/Trident\/7.0/i.test(j)&&/rv:11.0/.test(j)&&(t=11),t}(),ie=/Safari/i.test(j)&&!se&&!X&&!te,re=/Windows/i.test(j),ae=/MAC OS X/i.test(j),ce=V&&"undefined"!=typeof Worker&&!ne,ue=X||J,le=function(){if("undefined"==typeof window||void 0===window.navigator)return!1;const{standalone:e}=window.navigator;return!(!J||e||ie)}();function de(){let e="unknown";if(ae&&(e="mac"),re&&(e="windows"),J&&(e="ios"),X&&(e="android"),F)try{const{platform:t}=B.getSystemInfoSync();void 0!==t&&(e=t)}catch(e){console.error(e)}return e}function he(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 ge(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 pe=2800,_e=2801,me=3e3,ve="application/x-www-form-urlencoded;charset=UTF-8";function fe(e){return ge(this,arguments,void 0,function*({method:e,url:t,data:s,timeout:n=me}){return new Promise(F?(o,i)=>{B.request({url:t,data:s,method:e,timeout:n,header:{"content-type":ve},success:e=>o(e.data),fail:()=>i(new Error(`{"message":"Network error","code":${pe}}`))})}:(o,i)=>{const r=new XMLHttpRequest,a=setTimeout(()=>{r.abort(),i(new Error(`{"message":"Request timeout","code":${_e}}`))},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":${pe}}`))},r.open(e,t,!0),r.setRequestHeader("Content-type",ve),r.send(s||null)})})}function Ie(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(a(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 Ee(e,t){if(null===e||"object"!=typeof e)return e;const s=t||new WeakMap;if(s.has(e))return s.get(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 s.set(e,t),e.forEach((e,n)=>{t.set(Ee(n,s),Ee(e,s))}),t}if(e instanceof Set){const t=new Set;return s.set(e,t),e.forEach(e=>{t.add(Ee(e,s))}),t}if(Array.isArray(e)){const t=[];return s.set(e,t),e.forEach(e=>{t.push(Ee(e,s))}),t}const n=Object.getPrototypeOf(e),o=Object.create(n);s.set(e,o);return[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)].forEach(t=>{if("__ob__"===t||"__v_skip"===t||"__v_isRef"===t||"__v_isReadonly"===t)return;const n=Object.getOwnPropertyDescriptor(e,t);n&&(n.get||n.set?Object.defineProperty(o,t,n):o[t]=Ee(e[t],s))}),o}function Se(e,t,s){const n=new WeakSet,o=(e,s)=>{if(t&&(s=t(e,s)),void 0===s)return"undefined";if(null===s)return null;if(Number.isNaN(s))return"NaN";if(s===1/0)return"Infinity";if(s===-1/0)return"-Infinity";if("function"==typeof s)return`[Function: ${s.name||"anonymous"}]`;if("symbol"==typeof s)return s.toString();if("bigint"==typeof s)return`${s.toString()}n`;if("object"==typeof s&&null!==s){if(n.has(s))return"[Circular]";n.add(s)}return s instanceof Date?s.toISOString():s instanceof Error?{name:s.name,message:s.message,stack:s.stack}:s instanceof Map?{dataType:"Map",value:Array.from(s.entries())}:s instanceof Set?{dataType:"Set",value:Array.from(s.values())}:s};try{return JSON.stringify(e,o,s)}catch(e){return console.error("Failed to stringify:",e),""}}function Ce(){let e,t;return{promise:new Promise((s,n)=>{e=s,t=n}),resolve:e,reject:t}}var Me,ye=Object.freeze({__proto__:null,ANDROID_VERSION:Z,IE_VERSION:oe,IN_ALIPAY_MINI_APP:L,IN_BAIDU_MINI_APP:N,IN_BROWSER:V,IN_DONUT_NATIVE_APP:w,IN_FEISHU_MINI_APP:k,IN_JD_MINI_APP:P,IN_MINI_APP:F,IN_NS_NATIVE_APP:$,IN_QQ_MINI_APP:R,IN_RN_APP:x,IN_TT_MINI_APP:D,IN_TT_MINI_GAME:b,IN_UNI_APP:U,IN_UNI_NATIVE_APP:G,IN_WX_MINI_APP:A,IN_WX_MINI_APP_DESK:O,IN_WX_MINI_GAME:T,IN_WX_MINI_PLUGIN:q,IOS_VERSION:Q,IS_ANDROID:X,IS_CHROME:se,IS_EDGE:te,IS_FIREFOX:ee,IS_IE:ne,IS_IOS:J,IS_IPAD:W,IS_IPHONE:Y,IS_IPOD:z,IS_MAC:ae,IS_SAFARI:ie,IS_WECHAT:H,IS_WIN:re,IS_WORKER_AVAILABLE:ce,MINI_APP_NAMESPACE:B,USER_AGENT:j,base16EncodeBinaryString:l,deepCopyWithMethods:Ee,deepMerge:u,generatePromise:Ce,getPlatformType:de,getType:s,httpRequest:fe,isArray:n,isArrayOrObject:i,isEmpty:Ie,isH5:ue,isIOSWebView:le,isNumber:e=>null!==e&&("number"==typeof e&&!Number.isNaN(e-0)||"object"==typeof e&&e.constructor===Number),isObject:o,isPlainObject:a,isString:t,isUndefined:e,isUniIOSApp:function(){return G&&"ios"===uni.getDeviceInfo().platform.toLocaleLowerCase()},isValidRequestKey:r,platform:K,randomInt:c,randomString:function(){const e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";let t="";for(let s=32;s>0;--s)t+=e[Math.floor(62*Math.random())];return t},safeStringify:Se});class Oe{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(s=>{const{fn:n,context:o}=s;try{n.apply(o,t)}catch(t){console.warn(`Error in event handler for ${e} error: ${Se(t)}`)}})}once(e,t,s){const n=(...o)=>{t.apply(s,o),this.off(e,n)};this.on(e,n)}}!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",e.MESSAGE_EXTENSIONS_UPDATED="message_extensions_updated",e.ALL_MESSAGE_READ="all_message_read",e.CONVERSATION_MARK_UPDATED="conversation_mark_updated",e.CONVERSATION_GROUP_ADD="conversation_group_add",e.CONVERSATION_GROUP_DELETED="conversation_group_deleted",e.CONVERSATION_GROUP_UPDATED="conversation_group_updated",e.ALL_RECEIVE_MESSAGE_OPTION="all_receive_message_option",e.TOPIC_AT_TIPS="topic_at_tips",e.TOPIC_TIPS_NOTIFICATION="topic_tips_notification",e.TOPIC_SYSTEM_NOTIFICATION="topic_system_notification",e.TOPIC_MESSAGE_READ_SYNC="topic_message_read_sync",e.TOPIC_LATEST_MESSAGE="topic_latest_message",e.GROUP_MESSAGE_PINNED="group_message_pinned"}(Me||(Me={}));const Ae=[16,17];function Te(e){var t;const s=[];return null===(t=null==e?void 0:e.GroupTips)||void 0===t||t.forEach(e=>{var t;2===e.GroupInfo.MillionGroupFlag?s.push(Me.TOPIC_TIPS_NOTIFICATION):Ae.includes(null===(t=null==e?void 0:e.MsgBody)||void 0===t?void 0:t.OpType)?s.push(Me.GROUP_MESSAGE_PINNED):s.push(Me.GROUP_TIPS_NOTIFICATION)}),s}const Re=[{conditions:[{type:"event",value:100}],subType:Me.BUSINESS_COMMAND},{conditions:[{type:"event",value:24}],subType:Me.ALL_RECEIVE_MESSAGE_OPTION},{conditions:[{type:"event",value:26}],subType:Me.TOPIC_LATEST_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgArray"}],subType:Me.C2C_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"C2cMsgModNotifys"}],subType:Me.C2C_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"ProfileDataMod"}],subType:Me.PROFILE_MODIFIED},{conditions:[{type:"hasKey",value:"UserStatusList"}],subType:Me.USER_STATUS_UPDATE},{conditions:[{type:"hasKey",value:"FriendListMod"}],subType:Me.FRIEND_LIST_MODIFIED},{conditions:[{type:"hasKey",value:"GroupMsgArray"}],subType:Me.GROUP_REALTIME_MESSAGE},{conditions:[{type:"hasKey",value:"GroupMsgModNotifys"}],subType:Me.GROUP_MESSAGE_MODIFIED},{conditions:[{type:"hasKey",value:"C2cNotifyMsgArray"}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.C2cNotifyMsgArray)||void 0===t||t.forEach(e=>{e.WithdrawC2cMsgNotify&&s.push(Me.C2C_REVOKED_MESSAGE),e.C2cReadedReceipt&&s.push(Me.C2C_MESSAGE_PEER_READ),e.ReadC2cMsgNotify&&s.push(Me.C2C_MESSAGE_READ_SYNC),e.MuteNotificationsSync&&s.push(Me.C2C_REMIND_TYPE_SYNC)}),s}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:4}],subTypeParser:Te},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:5}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.GroupTips)||void 0===t||t.forEach(e=>{Array.isArray(e.MsgBody.GroupWithdrawInfoArray)?s.push(Me.GROUP_MESSAGE_REVOKED):Array.isArray(e.MsgBody.GroupMsgReceiptList)?s.push(Me.GROUP_MESSAGE_READ_RECEIPT):Array.isArray(e.MsgBody.GroupReadInfoArray)?e.MsgBody.GroupReadInfoArray[0].TopicId?s.push(Me.TOPIC_MESSAGE_READ_SYNC):s.push(Me.GROUP_MESSAGE_READ_SYNC):2===e.GroupInfo.MillionGroupFlag?s.push(Me.TOPIC_SYSTEM_NOTIFICATION):s.push(Me.GROUP_SYSTEM_NOTIFICATION)}),s}},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:6}],subTypeParser:Te},{conditions:[{type:"hasKey",value:"GroupTips"},{type:"event",value:12}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.GroupTips)||void 0===t||t.forEach(e=>{const{GroupAtTips:{TopicId:t}}=e;t?s.push(Me.TOPIC_AT_TIPS):s.push(Me.GROUP_AT_TIPS)}),s}},{conditions:[{type:"hasKey",value:"RecentContactMod"}],subTypeParser:function(e){var t;const s=[];return null===(t=null==e?void 0:e.RecentContactMod)||void 0===t||t.forEach(e=>{switch(e.PushType){case M.CONV_MARK_UPDATED:s.push(Me.CONVERSATION_MARK_UPDATED);break;case M.CONV_GROUP_ADDED:s.push(Me.CONVERSATION_GROUP_ADD);break;case M.CONV_GROUP_DELETED:s.push(Me.CONVERSATION_GROUP_DELETED);break;case M.CONV_GROUP_UPDATED:s.push(Me.CONVERSATION_GROUP_UPDATED);break;default:s.push(Me.CONV_MODIFIED)}}),s}},{conditions:[{type:"hasKey",value:"MsgReactionNotifyList"}],subType:Me.MESSAGE_REACTION_UPDATED},{conditions:[{type:"hasKey",value:"MsgReactionNotify"}],subType:Me.MESSAGE_REACTION_UPDATED_SYNC},{conditions:[{type:"hasKey",value:"C2cMsgInfo"}],subType:Me.C2C_MESSAGE_READ_RECEIPT},{conditions:[{type:"hasKey",value:"FollowChangeList"}],subType:Me.FOLLOW_LIST_UPDATED},{conditions:[{type:"hasKey",value:"MsgExtensionNotify"}],subType:Me.MESSAGE_EXTENSIONS_UPDATED},{conditions:[{type:"hasKey",value:"C2CReadAllMsg"}],subType:Me.ALL_MESSAGE_READ}];var De;function be(e){var t;const s=Array.isArray(null===(t=null==e?void 0:e.body)||void 0===t?void 0:t.EventArray)?e.body.EventArray:[],n=[];return s.forEach(t=>{t.Flag=e.body.Flag;const s=Re.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(!s)return null;let o=[];"function"==typeof s.subTypeParser?o=s.subTypeParser(t):s.subType&&(o=s.subType),Array.isArray(o)?o.forEach(e=>{n.push({type:`${De.SERVER_PUSH_MESSAGE}:${e}`,data:t})}):n.push({type:`${De.SERVER_PUSH_MESSAGE}:${o}`,data:t})}),n}!function(e){e.SERVER_PUSH_MESSAGE="im_open_push.msg_push",e.SERVER_PUSH_MESSAGE_MULTIPLE="im_open_push.multi_msg_push_ws",e.ERROR="error"}(De||(De={}));const Ne={[De.SERVER_PUSH_MESSAGE]:be,[De.SERVER_PUSH_MESSAGE_MULTIPLE]:be,[De.ERROR]:function(e){const{errorCode:t}=e;return[{type:`error:${t}`,data:e}]}};const Le=new class{constructor(){this._outerEventEmitter=null,this._innerEventEmitter=null,this._filteredCallbackMap=new Map,this._outerEventEmitter=new Oe,this._innerEventEmitter=new Oe,this.InnerEventSubType=Me}subscribeInnerEvent(e,t,s,n,o){var i;let r,a,c,u;["string","number"].includes(typeof t)?(c=`${e}:${t}`,u=s,a=n,r=o):(c=e,u=t,a=s,r="function"==typeof n?n:void 0),r?this._subscribeWithFilter(c,u,a,r):null===(i=this._innerEventEmitter)||void 0===i||i.on(c,u,a)}emitInnerEvent(e,t){var s,n;if(null===(s=this._innerEventEmitter)||void 0===s||s.emit(e,t),Object.keys(Ne).includes(e)){const s=null===(n=Ne[e])||void 0===n?void 0:n.call(Ne,t);null==s||s.forEach(e=>{var t;e&&(null===(t=this._innerEventEmitter)||void 0===t||t.emit(e.type,e.data))})}}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)}unSubscribeInnerEvent(e,t,s,n){if(["string","number"].includes(typeof t)){const o=s,i=`${e}:${t}`;this._unsubscribeEvent(i,o,n)}else{const n=t;this._unsubscribeEvent(e,n,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}_subscribeWithFilter(e,t,s,n){var o;const i=e=>{n.call(s,e)&&t.call(s,e)};this._filteredCallbackMap.has(e)||this._filteredCallbackMap.set(e,[]),this._filteredCallbackMap.get(e).push({originalCallback:t,filteredCallback:i,filter:n,context:s}),null===(o=this._innerEventEmitter)||void 0===o||o.on(e,i,s)}_unsubscribeEvent(e,t,s){var n,o;const i=this._filteredCallbackMap.get(e);if(i){const o=i.findIndex(e=>e.originalCallback===t&&e.context===s);if(-1!==o){const{filteredCallback:t}=i[o];return null===(n=this._innerEventEmitter)||void 0===n||n.off(e,t,s),i.splice(o,1),void(0===i.length&&this._filteredCallbackMap.delete(e))}}null===(o=this._innerEventEmitter)||void 0===o||o.off(e,t,s)}};class Pe{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 Ge{constructor(e){this._onError=e.onError}connectSocket(e){const t=this;return this._socket=B.connectSocket({url:e,header:{"content-type":"application/json"},complete:()=>{},fail:e=>t._onError(e)}),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&&(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 we="CONNECT",Ue="SEND",ke="DISCONNECT",Fe="OPEN",$e="MESSAGE",xe="CLOSE",qe="ERROR",Ve="SEND_FAIL";class Be{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:we,url:e})}send(e){var t,s;try{null===(t=this._worker)||void 0===t||t.postMessage({type:Ue,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={[Fe]:t,[$e]:s,[xe]:n,[qe]:o,[Ve]: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:ke}),this._worker.terminate(),this._worker=null),this._blobUrl&&(URL.revokeObjectURL(this._blobUrl),this._blobUrl=null)}}var je,He=new class{constructor(){this._store=new Map}get(e){return this._store.get(e)}getStorage(e){if(F){if(L){return my.getStorageSync({key:e}).data}return B.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){F?L?my.setStorageSync({key:e,data:JSON.stringify(t)}):B.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)}};class Ke{connectSocket(e){return this._socket=B.connectSocket({url:e,header:{"content-type":"application/json"},multiple:!0,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&&(this._socket.onClose(n),this._socket.onOpen(t),this._socket.onMessage(e=>s(null==e?void 0:e.data)),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)}}!function(e){e[e.CONNECTED=0]="CONNECTED",e[e.CONNECTING=1]="CONNECTING",e[e.DISCONNECTED=2]="DISCONNECTED"}(je||(je={}));class We{constructor(e){this._url="",this._readyState=je.DISCONNECTED,this._url=e,this._id=c(),this._emitter=new Oe,A||G||D||R||P||N?this._socket=new Ge({onError:this._onError.bind(this)}):L?this._socket=new Ke:this._canUseWebWorker()?this._socket=new Be:this._socket=new Pe,this.connect()}connect(){this.doOpen(),this._bindSocketHandlers()}doOpen(){[je.CONNECTED,je.CONNECTING].includes(this._readyState)||(this._readyState=je.CONNECTING,this._ws=this._socket.connectSocket(this._url))}send(e){this._readyState!==je.CONNECTED?this.reconnect():this._socket.send(e)}reconnect(){[je.CONNECTED,je.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===je.CONNECTED}disconnect(){this._readyState=je.DISCONNECTED,this._unbindSocketHandlers(),this._socket.disconnect()}_onOpen(e){this._readyState===je.CONNECTING&&(this._readyState=je.CONNECTED,this._emitter.emit("connect",{socketId:this._id,event:e}))}_onMessage(e){this._emitter.emit("message",e)}_onClose(e){this._readyState=je.DISCONNECTED,this._emitter.emit("close",{socketId:this._id,event:e})}_onError(e){this._readyState=je.DISCONNECTED,this._emitter.emit("error",{socketId:this._id,error:e})}_onSendFail(e){this._readyState=je.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 t=He.get("cloudConfig")||{};return(e(t.isWorkerEnabled)||"1"===t.isWorkerEnabled)&&ce}}const Ye={[S.SINGAPORE]:[[2e7,3e7],[172e7,173e7]],[S.KOREA]:[[3e7,4e7],[173e7,174e7]],[S.GERMANY]:[[4e7,5e7],[174e7,175e7]],[S.IND]:[[5e7,6e7],[175e7,176e7]],[S.JPN]:[[6e7,7e7],[176e7,177e7]],[S.USA]:[[7e7,8e7],[177e7,178e7]],[S.INDONESIA]:[[8e7,9e7],[178e7,179e7]]};function ze(e){var t;if(null===(t=He.get("instance"))||void 0===t?void 0:t.oversea)return S.OVERSEA;for(const t of Object.keys(Ye))for(const[s,n]of Ye[t])if(e>=s&&e<n)return t;return S.CHINA}var Je,Qe="4.2.7";!function(e){e.INITIAL="INITIAL",e.DEFAULT="DEFAULT",e.BACKUP="BACKUP",e.BACKUP_WEB_ONLY="BACKUP_WEB_ONLY",e.BACKUP_CN="BACKUP_CN",e.ANYCAST="ANYCAST",e.IPV6="IPV6"}(Je||(Je={}));let Xe=Je.INITIAL;function Ze(){const e=Math.random();return 0===e?Ze():e}function et(e,t){const{isBinary:s=!1}=t||{},n=He.get("instance"),{sdkAppId:o,instanceId:i}=n,r=Ze(),a=de(),c=function(){const e=de();let t=-1;"ios"===e?t=Q||-1:"android"===e&&(t=Z||-1);return t}(),u=(l={sdkappid:o,instanceid:i,random:r,platform:K,host:a,version:c,sdkversion:Qe},Object.keys(l).map(e=>`${e}=${l[e]}`).join("&"));var l;return s?`${e}/binfo?${u}&compress=gzip`:`${e}/info?${u}`}function st(e){const t=He.get("instance"),{sdkAppId:s,testEnv:n}=t,o=ze(s);if(n){return et(C.TEST[o].DEFAULT,{isBinary:e})}const i=C.PRODUCTION[o],r=V&&i.ANYCAST,a=V,c=!!i.BACKUP_CN;return et({[Je.INITIAL]:()=>(Xe=Je.DEFAULT,i.DEFAULT),[Je.DEFAULT]:()=>(Xe=Je.IPV6,i.IPV6),[Je.IPV6]:()=>(Xe=Je.BACKUP,i.BACKUP),[Je.BACKUP]:()=>a?(Xe=Je.BACKUP_WEB_ONLY,function(e){const t=Math.floor(10001*Math.random())+1e4;return e.replace("*",String(t))}(i.BACKUP_WEB_ONLY)):c?(Xe=Je.BACKUP_CN,i.BACKUP_CN):r?(Xe=Je.ANYCAST,i.ANYCAST):i.DEFAULT,[Je.BACKUP_WEB_ONLY]:()=>c?(Xe=Je.BACKUP_CN,i.BACKUP_CN):r?(Xe=Je.ANYCAST,i.ANYCAST):i.DEFAULT,[Je.BACKUP_CN]:()=>(Xe=r?Je.ANYCAST:Je.DEFAULT,i[Xe]),[Je.ANYCAST]:()=>(Xe=Je.DEFAULT,i.ANYCAST="",i.DEFAULT)}[Xe](),{isBinary:e})}var nt=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 ot=16;var it=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=ot}=e,r=Math.max(i,ot);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 rt(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 at(e){const t=Array.isArray(e)?[]:Object.create(null);for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&r(s)&&null!=e[s]&&(null===e[s]||"object"!=typeof e[s]?t[s]=e[s]:t[s]=at(e[s]));return t}function ct(e,t){if(h.includes(e))return 0;const s=rt(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 ut(e){const{servcmd:t,data:s}=e,n=function(e){const t=He.get("login")||{},s=He.get("instance")||{};return{servcmd:e,ver:"v4",platform:K,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:478343027,sdkability_ext:l(""),cappid:s.applicationID||0,tjgID:"",seq:ht(),cs:0}}(t),o=at(s);return n.cs=ct(t,o),{head:n,body:o}}function lt(e){const{servcmd:t,data:s}=e,n=function(e){const t=He.get("login")||{},s=He.get("instance")||{};return{servcmd:e,ver:"v4",platform:K,websdkappid:537048168,websdkversion:"1.7.3",sdkappid:s.sdkAppId,contenttype:"",reqtime:Math.floor(Date.now()/1e3),identifier:"",usersig:"",status_instid:t.statusInstanceId||0,sdkability:478343027,sdkability_ext:l(""),cappid:s.applicationID||0,seq:ht(),cs:0}}(t),o=at(s);return n.cs=ct(t,o),{head:n,body:o}}let dt=c();function ht(){return dt=dt<2415919103?dt+1:c(),dt}function gt(){var e;const t=He.get("login")||{},s=He.get("instance")||{};return{sdk_type:30,sdk_app_id:s.sdkAppId,sdk_version:"4.2.7",tiny_id:Number(t.tinyID),user_id:t.userId||(null===(e=He.get("webPush"))||void 0===e?void 0:e.userId),platform:K,instance_id:s.instanceId,trace_id:(new Date).getTime()}}var pt,_t=Object.freeze({__proto__:null,calcBodyCRC:ct,filterProtocolDataInvalidFields:at,generateCosSpecifiedData:function(e){const{servcmd:t,data:s}=e,n=function(e){const t=He.get("login")||{},s=He.get("instance")||{};return{servcmd:e,ver:"v4",platform:K,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:478343027,sdkability_ext:l(""),cappid:s.applicationID||0,seq:ht(),cs:0}}(t),o=at(s);return n.cs=ct(t,o),{head:n,body:o}},generateProtocolData:ut,generateSSOLogProtocolData:lt,generateSequence:ht,getCommonHead:gt,getHostSite:ze,taskScheduler:it,timeManager:nt});!function(e){e[e.info=4]="info",e[e.warning=5]="warning",e[e.error=6]="error"}(pt||(pt={}));const mt={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 vt{constructor(e){this.level=pt.info,this._canSendLog=!0,this._logCreatedAt=nt.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=this._getUiPlatform(),this._sdkEdition=this._getSDKEdition();const{method:t,eventType:s=0,message:n="",costTime:o=0,error:i,uiPlatform:r,moreMessage:a="",code:c=0}=e||{};this.eventType=s,this.method=t,this.message=n,this.costTime=o,this.moreMessage=a,this.code=c,i&&this.setError(i),Ie(r)||(this.uiPlatform=r)}setMoreMessage(e){this.moreMessage=`${this.moreMessage} ${e}`}updateLogCreatedAtByTimeOffset(){this._logCreatedAt+=nt.getTimeOffsetWithServer()}end(e=!1){this._canSendLog&&(this._canSendLog=!1,this.timestamp=nt.getServerTimeMs(),this._ssoLogModule.pushToLogQueue(this._convertSSOLogDataKeyToServe()),e&&this._ssoLogModule.uploadSSOLogData())}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=He.get("netWorkMonitor"))||void 0===t?void 0:t.isNetworkOnline)&&(e.errorCode&&(this.code=e.errorCode),e.errorMessage&&this.setMoreMessage(e.errorMessage)),this.level=pt.error,this}setLogInfo(e){return Object.keys(e).forEach(t=>{Object.keys(mt).includes(t)&&(this[t]=e[t])}),this}setSSOLogModule(e){this._ssoLogModule=e}_convertSSOLogDataKeyToServe(){const e={};return Object.keys(this).forEach(t=>{const s=t;mt[s]&&(e[mt[s]]=this[s])}),e}_getUiPlatform(){var e;const t=null===(e=He.get("instance"))||void 0===e?void 0:e.scene;if("string"==typeof t){const e=Number(t);return isNaN(e)?void 0:e}}_getSDKEdition(){var e;return null===(e=He.get("instance"))||void 0===e?void 0:e.sdkEdition}}var ft;!function(e){e.RECONNECTED="reconnected",e.CLOUD_CONFIG_UPDATE="cloud_config_update",e.SOCKET_DISCONNECTED="socket_disconnected"}(ft||(ft={}));var It=ft;const Et=20,St=6e4,Ct=[4,5,6],Mt=[],yt=[],Ot="report-logger";var At=new class{constructor(){this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._reportLevel=[4,5,6],this._minThreshold=Et,this._maxThreshold=100,this._waitingTime=St,this._lastReportAt=Date.now(),this._ssoLogMap=new Map,this._logLevel=g.DEBUG,this._throttleConfig={global:{throttleTime:I,maxCount:E},single:{throttleTime:v,maxCount:f}},this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap=new Map,Le.subscribeInnerEvent(It.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),it.addTask({id:Ot,intervalMs:1e3,callback:this._checkAndReportIfDue,context:this}),this._logQueue=[],this._savePlatFormInfo()}_handleCloudConfigUpdate(e){const{evt_rpt_threshold:t=Et,evt_rpt_waiting:s=St,evt_rpt_level:n=Ct,evt_rpt_sdkappid_bl:o=Mt,evt_rpt_tinyid_wl:i=yt,evt_rpt_global_throttle_time:r=I,evt_rpt_global_throttle_count:a=E,evt_rpt_single_throttle_time:c=v,evt_rpt_single_throttle_count:u=f}=e||{};this._sdkAppIdBlackList=o,this._waitingTime=s,this._minThreshold=t,this._reportLevel=n,this._tinyIdWhiteList=i,this._throttleConfig={global:{throttleTime:r,maxCount:a},single:{throttleTime:c,maxCount:u}}}createSSOLogData(e){const t=new vt(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())}setLogLevel(e){[g.DEBUG,g.ERROR,g.INFO,g.NONE,g.WARN].includes(e)&&(this._logLevel=e)}debug(e,t="",s){this._log(g.DEBUG,e,t,s)}info(e,t="",s){this._log(g.INFO,e,t,s)}warn(e,t="",s){this._log(g.WARN,e,t,s)}error(e,t="",s){this._log(g.ERROR,e,t,s)}_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 ge(this,void 0,void 0,function*(){try{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:gt(),Event:t};Ie(s.Header.user_id)||(yield function(e){const t="imopenstat.tim_web_report_v2",s=lt({servcmd:t,data:e}),n=`${s.head.seq}${t}`;return Wt.sendPacket(s,{requestId:n})}(s)),this._lastReportAt=Date.now()}catch(e){this.debug("uploadSSOLogData",Se(e))}})}_savePlatFormInfo(){var e,t;if(A){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;He.set("instance",{appId:e,envVersion:t})}}else V&&He.set("instance",{href:window.location.href})}_filterLogs(e){const{tinyID:t}=He.get("login")||{},{sdkAppId:s}=He.get("instance")||{};return this._sdkAppIdBlackList.includes(s)&&!this._tinyIdWhiteList.includes(t)?[]:e.filter(e=>this._reportLevel.includes(e.level))}_checkThrottle(e){return!!this._checkGlobalThrottle()||this._checkSingleThrottle(e)}_checkGlobalThrottle(){const e=Date.now();if(e-this._globalThrottle.startTime>=this._throttleConfig.global.throttleTime)this._globalThrottle.count=1,this._globalThrottle.startTime=e;else if(this._globalThrottle.count++,this._globalThrottle.count>this._throttleConfig.global.maxCount)return!0;return!1}_checkSingleThrottle(e){const t=Date.now(),s=this._singleThrottleMap.get(e);return s?t-s.startTime>=this._throttleConfig.single.throttleTime?(s.count=1,s.startTime=t,!1):s.count>=this._throttleConfig.single.maxCount||(s.count++,!1):(this._singleThrottleMap.set(e,{count:1,startTime:t}),!1)}_shouldLog(e){return e>=this._logLevel&&this._logLevel!==g.NONE}_shouldReport(e){return this._reportLevel.includes(m[e])}_formatLog(e,t,s){const n=new Date,o=`${n.getHours()}:${n.getMinutes()}:${n.getSeconds()}:${n.getMilliseconds()}`,i=`<${g[e]}>`;return ne||F?[`${p} [${o}] ${i} [${t}] ${s}`]:["%c%s%c%s","background:#0abf5b; padding:1px; border-radius:3px; color: #fff",p,"",`[${o}] ${i} [${t}] ${s}`]}_log(e,t,s,n){if(!this._shouldLog(e))return;const o=this._formatLog(e,t,s);if(_[e].apply(console,o),this._shouldReport(e)){const e=this._getThrottleKey(t,s,n);if(!this._checkThrottle(e)){this.createSSOLogData(Object.assign(Object.assign({message:s},n),{method:t})).end()}}}_getThrottleKey(e,t,s){const n=`${e}${t}${Se(Object.assign(Object.assign({},s),{costTime:""}))}`,o=rt(JSON.stringify(n));let i=4294967295;const{length:r}=o;for(let e=0;e<r;e++){i^=o[e];for(let e=0;e<8;e++)1&~i?i>>>=1:i=i>>>1^3988292384}return`${(4294967295^i)>>>0}`}reset(){console.log("SSO_LOG_MODULE.reset"),it.removeTask(Ot),Le.unSubscribeInnerEvent(It.CLOUD_CONFIG_UPDATE,this._handleCloudConfigUpdate,this),this._lastReportAt=0,this.uploadSSOLogData(),this._sdkAppIdBlackList=[],this._tinyIdWhiteList=[],this._minThreshold=Et,this._maxThreshold=100,this._waitingTime=St,this._logQueue=[],this._logLevel=g.DEBUG,this._globalThrottle={count:0,startTime:Date.now()},this._singleThrottleMap.clear()}};const Tt=15e3,Rt="Channel",Dt="channel_schedule_task",bt="channel_reconnect_task",Nt="connected",Lt="connecting",Pt="disconnected",Gt=1e3,wt="network_status_change",Ut="activity_status_change",kt="send_fail",Ft="reconnect_failed",$t="socket_error",xt="socket_close";function qt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Vt(e){return Vt="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},Vt(e)}function Bt(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 jt,Ht={exports:{}};var Kt=(jt||(jt=1,Ht.exports=function e(t,s,n){function o(r,a){if(!s[r]){if(!t[r]){if(!a&&Bt)return Bt(r);if(i)return i(r,!0);var c=new Error("Cannot find module '"+r+"'");throw c.code="MODULE_NOT_FOUND",c}var u=s[r]={exports:{}};t[r][0].call(u.exports,function(e){return o(t[r][1][e]||e)},u,u.exports,e,t,s,n)}return s[r].exports}for(var i=Bt,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"!=Vt(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,u=new Array(2*a);for(s=n=0;s<a;)if((o=e[s++])<128)u[n++]=o;else if(4<(i=r[o]))u[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?u[n++]=65533:o<65536?u[n++]=o:(o-=65536,u[n++]=55296|o>>10&1023,u[n++]=56320|1023&o)}return c(u,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-1^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,u,l,d,h,g,p,_,m,v,f,I,E,S,C,M,y,O,A;s=e.state,n=e.next_in,O=e.input,o=n+(e.avail_in-5),i=e.next_out,A=e.output,r=i-(t-e.avail_out),a=i+(e.avail_out-257),c=s.dmax,u=s.wsize,l=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>>>=E=I>>>24,p-=E,0==(E=I>>>16&255))A[i++]=65535&I;else{if(!(16&E)){if(!(64&E)){I=_[(65535&I)+(g&(1<<E)-1)];continue t}if(32&E){s.mode=12;break e}e.msg="invalid literal/length code",s.mode=30;break e}S=65535&I,(E&=15)&&(p<E&&(g+=O[n++]<<p,p+=8),S+=g&(1<<E)-1,g>>>=E,p-=E),p<15&&(g+=O[n++]<<p,p+=8,g+=O[n++]<<p,p+=8),I=m[g&f];s:for(;;){if(g>>>=E=I>>>24,p-=E,!(16&(E=I>>>16&255))){if(!(64&E)){I=m[(65535&I)+(g&(1<<E)-1)];continue s}e.msg="invalid distance code",s.mode=30;break e}if(C=65535&I,p<(E&=15)&&(g+=O[n++]<<p,(p+=8)<E&&(g+=O[n++]<<p,p+=8)),c<(C+=g&(1<<E)-1)){e.msg="invalid distance too far back",s.mode=30;break e}if(g>>>=E,p-=E,(E=i-r)<C){if(l<(E=C-E)&&s.sane){e.msg="invalid distance too far back",s.mode=30;break e}if(y=h,(M=0)===d){if(M+=u-E,E<S){for(S-=E;A[i++]=h[M++],--E;);M=i-C,y=A}}else if(d<E){if(M+=u+d-E,(E-=d)<S){for(S-=E;A[i++]=h[M++],--E;);if(M=0,d<S){for(S-=E=d;A[i++]=h[M++],--E;);M=i-C,y=A}}}else if(M+=d-E,E<S){for(S-=E;A[i++]=h[M++],--E;);M=i-C,y=A}for(;2<S;)A[i++]=y[M++],A[i++]=y[M++],A[i++]=y[M++],S-=3;S&&(A[i++]=y[M++],1<S&&(A[i++]=y[M++]))}else{for(M=i-C;A[i++]=A[M++],A[i++]=A[M++],A[i++]=A[M++],2<(S-=3););S&&(A[i++]=A[M++],1<S&&(A[i++]=A[M++]))}break}}break}}while(n<o&&i<a);n-=S=p>>3,g&=(1<<(p-=S<<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,u=2,l=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,l):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 E(e,t){var s,n;return e?(n=new m,(e.state=n).window=null,(s=I(e,t))!==l&&(e.state=null),s):d}var S,C,M=!0;function y(e){if(M){var t;for(S=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,S,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a(u,e.lens,0,32,C,0,e.work,{bits:5}),M=!1}e.lencode=S,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 E(e,15)},s.inflateInit2=E,s.inflate=function(e,t){var s,g,p,m,v,f,I,E,S,C,M,A,T,R,D,b,N,L,P,G,w,U,k,F,$=0,x=new n.Buf8(4),q=[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,E=s.hold,S=s.bits,C=f,M=I,U=l;e:for(;;)switch(s.mode){case h:if(0===s.wrap){s.mode=13;break}for(;S<16;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(2&s.wrap&&35615===E){x[s.check=0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0),S=E=0,s.mode=2;break}if(s.flags=0,s.head&&(s.head.done=!1),!(1&s.wrap)||(((255&E)<<8)+(E>>8))%31){e.msg="incorrect header check",s.mode=30;break}if(8!=(15&E)){e.msg="unknown compression method",s.mode=30;break}if(S-=4,w=8+(15&(E>>>=4)),0===s.wbits)s.wbits=w;else if(w>s.wbits){e.msg="invalid window size",s.mode=30;break}s.dmax=1<<w,e.adler=s.check=1,s.mode=512&E?10:12,S=E=0;break;case 2:for(;S<16;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(s.flags=E,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=E>>8&1),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0)),S=E=0,s.mode=3;case 3:for(;S<32;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}s.head&&(s.head.time=E),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,x[2]=E>>>16&255,x[3]=E>>>24&255,s.check=i(s.check,x,4,0)),S=E=0,s.mode=4;case 4:for(;S<16;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}s.head&&(s.head.xflags=255&E,s.head.os=E>>8),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0)),S=E=0,s.mode=5;case 5:if(1024&s.flags){for(;S<16;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}s.length=E,s.head&&(s.head.extra_len=E),512&s.flags&&(x[0]=255&E,x[1]=E>>>8&255,s.check=i(s.check,x,2,0)),S=E=0}else s.head&&(s.head.extra=null);s.mode=6;case 6:if(1024&s.flags&&(f<(A=s.length)&&(A=f),A&&(s.head&&(w=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,A,w)),512&s.flags&&(s.check=i(s.check,g,A,m)),f-=A,m+=A,s.length-=A),s.length))break e;s.length=0,s.mode=7;case 7:if(2048&s.flags){if(0===f)break e;for(A=0;w=g[m+A++],s.head&&w&&s.length<65536&&(s.head.name+=String.fromCharCode(w)),w&&A<f;);if(512&s.flags&&(s.check=i(s.check,g,A,m)),f-=A,m+=A,w)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(A=0;w=g[m+A++],s.head&&w&&s.length<65536&&(s.head.comment+=String.fromCharCode(w)),w&&A<f;);if(512&s.flags&&(s.check=i(s.check,g,A,m)),f-=A,m+=A,w)break e}else s.head&&(s.head.comment=null);s.mode=9;case 9:if(512&s.flags){for(;S<16;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(E!==(65535&s.check)){e.msg="header crc mismatch",s.mode=30;break}S=E=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(;S<32;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}e.adler=s.check=_(E),S=E=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=E,s.bits=S,2;e.adler=s.check=1,s.mode=12;case 12:if(5===t||6===t)break e;case 13:if(s.last){E>>>=7&S,S-=7&S,s.mode=27;break}for(;S<3;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}switch(s.last=1&E,S-=1,3&(E>>>=1)){case 0:s.mode=14;break;case 1:if(y(s),s.mode=20,6!==t)break;E>>>=2,S-=2;break e;case 2:s.mode=17;break;case 3:e.msg="invalid block type",s.mode=30}E>>>=2,S-=2;break;case 14:for(E>>>=7&S,S-=7&S;S<32;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if((65535&E)!=(E>>>16^65535)){e.msg="invalid stored block lengths",s.mode=30;break}if(s.length=65535&E,S=E=0,s.mode=15,6===t)break e;case 15:s.mode=16;case 16:if(A=s.length){if(f<A&&(A=f),I<A&&(A=I),0===A)break e;n.arraySet(p,g,m,A,v),f-=A,m+=A,I-=A,v+=A,s.length-=A;break}s.mode=12;break;case 17:for(;S<14;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(s.nlen=257+(31&E),E>>>=5,S-=5,s.ndist=1+(31&E),E>>>=5,S-=5,s.ncode=4+(15&E),E>>>=4,S-=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(;S<3;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}s.lens[q[s.have++]]=7&E,E>>>=3,S-=3}for(;s.have<19;)s.lens[q[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,k={bits:s.lenbits},U=a(0,s.lens,0,19,s.lencode,0,s.work,k),s.lenbits=k.bits,U){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[E&(1<<s.lenbits)-1])>>>16&255,N=65535&$,!((D=$>>>24)<=S);){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(N<16)E>>>=D,S-=D,s.lens[s.have++]=N;else{if(16===N){for(F=D+2;S<F;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(E>>>=D,S-=D,0===s.have){e.msg="invalid bit length repeat",s.mode=30;break}w=s.lens[s.have-1],A=3+(3&E),E>>>=2,S-=2}else if(17===N){for(F=D+3;S<F;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}S-=D,w=0,A=3+(7&(E>>>=D)),E>>>=3,S-=3}else{for(F=D+7;S<F;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}S-=D,w=0,A=11+(127&(E>>>=D)),E>>>=7,S-=7}if(s.have+A>s.nlen+s.ndist){e.msg="invalid bit length repeat",s.mode=30;break}for(;A--;)s.lens[s.have++]=w}}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},U=a(c,s.lens,0,s.nlen,s.lencode,0,s.work,k),s.lenbits=k.bits,U){e.msg="invalid literal/lengths set",s.mode=30;break}if(s.distbits=6,s.distcode=s.distdyn,k={bits:s.distbits},U=a(u,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,k),s.distbits=k.bits,U){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=E,s.bits=S,r(e,M),v=e.next_out,p=e.output,I=e.avail_out,m=e.next_in,g=e.input,f=e.avail_in,E=s.hold,S=s.bits,12===s.mode&&(s.back=-1);break}for(s.back=0;b=($=s.lencode[E&(1<<s.lenbits)-1])>>>16&255,N=65535&$,!((D=$>>>24)<=S);){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(b&&!(240&b)){for(L=D,P=b,G=N;b=($=s.lencode[G+((E&(1<<L+P)-1)>>L)])>>>16&255,N=65535&$,!(L+(D=$>>>24)<=S);){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}E>>>=L,S-=L,s.back+=L}if(E>>>=D,S-=D,s.back+=D,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;S<F;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}s.length+=E&(1<<s.extra)-1,E>>>=s.extra,S-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=23;case 23:for(;b=($=s.distcode[E&(1<<s.distbits)-1])>>>16&255,N=65535&$,!((D=$>>>24)<=S);){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(!(240&b)){for(L=D,P=b,G=N;b=($=s.distcode[G+((E&(1<<L+P)-1)>>L)])>>>16&255,N=65535&$,!(L+(D=$>>>24)<=S);){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}E>>>=L,S-=L,s.back+=L}if(E>>>=D,S-=D,s.back+=D,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;S<F;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}s.offset+=E&(1<<s.extra)-1,E>>>=s.extra,S-=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(A=M-I,s.offset>A){if((A=s.offset-A)>s.whave&&s.sane){e.msg="invalid distance too far back",s.mode=30;break}A>s.wnext?(A-=s.wnext,T=s.wsize-A):T=s.wnext-A,A>s.length&&(A=s.length),R=s.window}else R=p,T=v-s.offset,A=s.length;for(I<A&&(A=I),I-=A,s.length-=A;p[v++]=R[T++],--A;);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(;S<32;){if(0===f)break e;f--,E|=g[m++]<<S,S+=8}if(M-=I,e.total_out+=M,s.total+=M,M&&(e.adler=s.check=s.flags?i(s.check,p,M,v-M):o(s.check,p,M,v-M)),M=I,(s.flags?E:_(E))!==s.check){e.msg="incorrect data check",s.mode=30;break}S=E=0}s.mode=28;case 28:if(s.wrap&&s.flags){for(;S<32;){if(0===f)break e;f--,E+=g[m++]<<S,S+=8}if(E!==(4294967295&s.total)){e.msg="incorrect length check",s.mode=30;break}S=E=0}s.mode=29;case 29:U=1;break e;case 30:U=-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=E,s.bits=S,(s.wsize||M!==e.avail_out&&s.mode<30&&(s.mode<27||4!==t))&&O(e,e.output,e.next_out,M-e.avail_out)?(s.mode=31,-4):(C-=e.avail_in,M-=e.avail_out,e.total_in+=C,e.total_out+=M,s.total+=M,s.wrap&&M&&(e.adler=s.check=s.flags?i(s.check,p,M,e.next_out-M):o(s.check,p,M,e.next_out-M)),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===M||4===t)&&U===l&&(U=-5),U)},s.inflateEnd=function(e){if(!e||!e.state)return d;var t=e.state;return t.window&&(t.window=null),e.state=null,l},s.inflateGetHeader=function(e,t){var s;return e&&e.state&&2&(s=e.state).wrap?((s.head=t).done=!1,l):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,l):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,u,l,d,h){var g,p,_,m,v,f,I,E,S,C=h.bits,M=0,y=0,O=0,A=0,T=0,R=0,D=0,b=0,N=0,L=0,P=null,G=0,w=new n.Buf16(16),U=new n.Buf16(16),k=null,F=0;for(M=0;M<=15;M++)w[M]=0;for(y=0;y<c;y++)w[t[s+y]]++;for(T=C,A=15;1<=A&&0===w[A];A--);if(A<T&&(T=A),0===A)return u[l++]=20971520,u[l++]=20971520,h.bits=1,0;for(O=1;O<A&&0===w[O];O++);for(T<O&&(T=O),M=b=1;M<=15;M++)if(b<<=1,(b-=w[M])<0)return-1;if(0<b&&(0===e||1!==A))return-1;for(U[1]=0,M=1;M<15;M++)U[M+1]=U[M]+w[M];for(y=0;y<c;y++)0!==t[s+y]&&(d[U[t[s+y]]++]=y);if(0===e?(P=k=d,f=19):1===e?(P=o,G-=257,k=i,F-=257,f=256):(P=r,k=a,f=-1),M=O,v=l,D=y=L=0,_=-1,m=(N=1<<(R=T))-1,1===e&&852<N||2===e&&592<N)return 1;for(;;){for(I=M-D,d[y]<f?(E=0,S=d[y]):d[y]>f?(E=k[F+d[y]],S=P[G+d[y]]):(E=96,S=0),g=1<<M-D,O=p=1<<R;u[v+(L>>D)+(p-=g)]=I<<24|E<<16|S,0!==p;);for(g=1<<M-1;L&g;)g>>=1;if(0!==g?(L&=g-1,L+=g):L=0,y++,0==--w[M]){if(M===A)break;M=t[s+d[y]]}if(T<M&&(L&m)!==_){for(0===D&&(D=T),v+=O,b=1<<(R=M-D);R+D<A&&!((b-=w[R+D])<=0);)R++,b<<=1;if(N+=1<<R,1===e&&852<N||2===e&&592<N)return 1;u[_=L&m]=T<<24|R<<16|v-l}}return 0!==L&&(u[v+L]=M-D<<24|64<<16),h.bits=T,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"),u=e("./zlib/gzheader"),l=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 u,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.string2buf(t.dictionary):"[object ArrayBuffer]"===l.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,u,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]"===l.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),u=h.next_out-c,d=i.buf2string(h.output,c),h.next_out=u,h.avail_out=g-u,u&&o.arraySet(h.output,h.output,c,u,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")),Ht.exports);var Wt=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=Gt,this._currentConnectState=Nt,this._beforeSendInterceptors=[]}init(){it.addTask({id:Dt,intervalMs:1e3,callback:this._executeScheduledTaskIfReady,context:this}),this._updateIsBinarySupported(),this._url=function(e){const t=He.get("instance"),{sdkAppId:s,testEnv:n,disableIndependentDomain:o}=t,i=ze(s);let r="";return n?r=C.TEST[i].DEFAULT:o?(r=C.PRODUCTION[i].DEFAULT,Xe=Je.DEFAULT):r=C.PRODUCTION[i].INITIAL.replace("*",`${s}`),et(r,{isBinary:e})}(this._isBinarySupported),Le.subscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),Le.subscribeInnerEvent("activityStatusChange",this._handleActivityStatusChange,this),this.connect()}sendPacket(e,t){var s;const{requestId:n,timeout:o=Tt,canResend:i=!0}=t||{};if(Ie(e))return At.warn("sendPacket",`${Rt}.sendPacket: packet is empty `),null;this._executeBeforeSendInterceptors(e),this._currentConnectState===Pt&&this._handleConnectStateChange({state:Pt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:kt});const r=JSON.stringify(e);let a=null;if(n){const{resolve:t,reject:s,promise:c}=Ce();a=c,this._pendingRequests.set(n,{resolve:t,reject:s,timestamp:Date.now(),uplinkData:r,timeout:o,canResend:i,requestHead:null==e?void 0:e.head})}const c=this._isBinarySupported?rt(r).buffer:r;return null===(s=this._socketAdapter)||void 0===s||s.send(c),a}connect(){var e;this._socketAdapter=new We(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=`${Rt}.connect isWorkerEnabled: false socketID:${t} url:${this._url}`;this._connectionId=t,this._ssoLog({method:"connect",message:s})}disconnect(){var e,t;const s=null===(e=this._socketAdapter)||void 0===e?void 0:e.getId(),n=`${Rt}.disconnect socketID:${s}`;this._ssoLog({method:"disconnect",message:n}),this._removeEventListeners(),null===(t=this._socketAdapter)||void 0===t||t.disconnect()}getSocketAdapter(){return this._socketAdapter}dispose(){console.log(`${Rt}.dispose`),it.removeTask(Dt),it.removeTask(bt),Le.unSubscribeInnerEvent("networkStatusChange",this._handleNetworkStatusChange,this),Le.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=Gt,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===Lt&&this._isReconnecting;return!this._socketAdapter||e}reconnect(){return ge(this,void 0,void 0,function*(){const e=`${Rt}.reconnect isReconnecting: ${this._isReconnecting} currentConnectState: ${this._currentConnectState}`;if(this._ssoLog({method:"reconnect",message:e}),!this._shouldSkipReconnect()){this._url=st(this._isBinarySupported);try{this._isReconnecting=!0,this.disconnect(),this.connect()}catch(e){this._isReconnecting=!1,this._handleConnectStateChange({state:Pt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ft}),At.warn(`${Rt}.reconnect failed: ${Se(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=`${Rt}.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}),t===this._connectionId&&this._handleConnectStateChange({state:Pt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:xt}),this._isReconnecting&&(this._isReconnecting=!1)}_onError(e){const{socketId:t,error:s}=e||{},n=`${Rt}.onError sourceSocketID: ${t} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${JSON.stringify(s)}`;this._ssoLog({method:"onError",message:n}),t===this._connectionId&&this._handleConnectStateChange({state:Pt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:$t}),this._isReconnecting&&(this._isReconnecting=!1)}_onSendFail(e){const{socketId:t,error:s}=e||{},n=`${Rt}.onSendFail sendFailSocketId: ${t} currentSocketID: ${this._connectionId} isReconnecting: ${this._isReconnecting} error: ${Se(s)}`;this._ssoLog({method:"onSendFail",message:n}),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=Kt.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=`event.data: ${Se(e.data)} error: ${Se(t)}`;return void this._ssoLog({method:"jsonParseError",message:s})}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){var t,s;const{seq:n,servcmd:o}=e.head,{int32_error_code:i,str_error_message:r}=(null==e?void 0:e.body)||{},a=(null===(t=null==e?void 0:e.body)||void 0===t?void 0:t.ErrorCode)||i,c=(null===(s=null==e?void 0:e.body)||void 0===s?void 0:s.ErrorInfo)||r,u=`${n}${o}`,{resolve:l,reject:d,timestamp:h,headSeq:g,requestHead:p}=this._pendingRequests.get(u);if(this._pendingRequests.delete(u),a&&0!==a)return Le.emitInnerEvent("error",{errorCode:a,errorInfo:c,requestHead:p}),void d({errorCode:a,errorInfo:c});l(e.body)}_handlePushMessage(e){const{servcmd:t}=e.head,{NeedAck:s,SessionData:n}=e.body;1===s&&this._sendAck(n),Le.emitInnerEvent(t,e)}_checkPendingRequestsAndResend(){var e;At.debug("_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?rt(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=`${Rt}.onConnect cost:${n} ms. socketID:${t} res:${JSON.stringify(s)}`;if(this._ssoLog({method:"onConnect",message:o}),this._checkPendingRequestsAndResend(),this._sendHeartbeatIfReady(),this._isReconnecting){const e=`${Rt}.reconnect success`;this._ssoLog({method:"reconnectSuccess",message:e}),Le.emitInnerEvent(It.RECONNECTED),this._isReconnecting=!1}this._resetReconnectDelay(),this._handleConnectStateChange({state:Nt,shouldEmitEvent:!0,shouldAttemptReconnect:!1})}_sendAck(e){const t=ut({servcmd:"openim.ws_msg_push_ack",data:{SessionData:e}});this.sendPacket(t)}_executeScheduledTaskIfReady(){return ge(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 ge(this,void 0,void 0,function*(){var e;const t=ut({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=He.get("netWorkMonitor"))||void 0===e?void 0:e.isNetWorkOnline,n=`${Rt}.sendHeartbeat failed. isNetWorkOnline:${s} error: ${t}`;this._ssoLog({method:"sendHeartbeatError",message:n}),this._handleConnectStateChange({state:Pt,shouldEmitEvent:!0,shouldAttemptReconnect:!0})}})}_sendHeartbeatIfReady(){return ge(this,void 0,void 0,function*(){this._canSendHeartbeat()&&(this._isHeartbeatInProgress=!0,yield this._sendHeartbeat(),this._isHeartbeatInProgress=!1)})}_updateHeartbeatTime(){this._nextHeartbeatAt=G?Date.now()+5e3:Date.now()+1e4}_handleNetworkStatusChange(e){const t=`${Rt}.networkStatusChange ${JSON.stringify(e)}`;this._ssoLog({method:"networkStatusChange",message:t});const{isNetworkOnline:s,networkType:n}=e;s&&"none"!==n?this._handleConnectStateChange({state:Nt,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:wt}):this._handleConnectStateChange({state:Pt,shouldEmitEvent:!1,shouldAttemptReconnect:!0,reason:wt})}isPrivateNetWork(){const e=He.get("instance")||{};return e.proxyServer&&!e.fileDownloadProxy}_handleConnectStateChange(e){const{state:t,shouldAttemptReconnect:s,shouldEmitEvent:n,reason:o}=e,i=`${Rt}._handleConnectStateChange currentConnectState: ${this._currentConnectState} shouldAttemptReconnect: ${s} shouldEmitEvent: ${n} reason: ${o}`;this._currentConnectState!==t&&(this._ssoLog({method:"handleConnectStateChange",message:i}),n&&(At.info("_handleConnectStateChange",` from ${this._currentConnectState} to ${t}`),Le.emitOuterEvent("netStateChange",{name:"netStateChange",data:{state:t}}),this._currentConnectState=t,t===Pt&&Le.emitInnerEvent(It.SOCKET_DISCONNECTED)),s&&(this._resetReconnectDelay(),it.addTask({id:bt,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=`${Rt}.activityStatusChange ${JSON.stringify(e)} readyState: ${n}`;At.debug("activityStatusChange",o),3===n&&this._handleConnectStateChange({state:Pt,shouldEmitEvent:!0,shouldAttemptReconnect:!0,reason:Ut})}_resetReconnectDelay(){var e;At.debug(`${Rt}._resetReconnectDelay`),it.removeTask(bt);const t=null===(e=He.get("activityMonitor"))||void 0===e?void 0:e.isActive;this._intendedDelay=t?Gt:1e3}_scheduleReconnectWithBackoff(){var e;const t=null===(e=He.get("activityMonitor"))||void 0===e?void 0:e.isActive;this._intendedDelay=t?Math.min(5e3,Math.max(Gt,1.5*this._intendedDelay)):Math.min(3e5,Math.max(1e3,1.5*this._intendedDelay));const s=(new Date).toTimeString().slice(0,8),n=`${Rt}.scheduleReconnectWithBackoff timeStr: ${s} intendedDelay: ${this._intendedDelay}`;At.debug(n),this.reconnect(),it.updateTaskInterval(bt,this._intendedDelay)}_ssoLog(e){const{method:t,message:s}=e;At.info(t,s)}_diagnose(){this.isPrivateNetWork()||(this._lastDiagnoseAt=Date.now(),function(e){ge(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 fe({method:"GET",url:s,data:{}})}catch(e){At.warn("diagnoseBySSO",`diagnoseBySSO failed. error:${e.message}`)}})}(this._url),function(e){ge(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 fe({method:"GET",url:t,data:{}})}catch(e){At.warn(`diagnoseByCDN', 'diagnoseByCDN failed. error:${e.message}`)}})}(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:_e,errorInfo:"NETWORK_TIMEOUT",data:{requestId:e}}))}}_updateIsBinarySupported(){var e;if(null===(e=He.get("instance"))||void 0===e?void 0:e.devMode)return void(this._isBinarySupported=!1);const t=de();if((L||A&&"windows"===t||k)&&(this._isBinarySupported=!1),G){const{uniRuntimeVersion:e=""}=B.getSystemInfoSync();(function(e){const t=e.split(".").map(Number),[s=0,n=0,o=0]=t;return s>2||!(s<2)&&(n>2||!(n<2)&&o>=6)})(e)||(this._isBinarySupported=!1)}}_isCompressedData(e){const t=new Uint8Array(e);return 67===t[0]&&79===t[1]&&77===t[2]&&80===t[3]}};const Yt={init:function(e){He.set("instance",e),Wt.init()},destroy:function(){Wt.dispose(),He.clear(),it.dispose()},notificationCenter:Le,channel:Wt,store:He,ssoLog:At,utils:ye,common:_t,constants:y};const zt=e=>"function"==typeof e;function Jt(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]?Jt(e[n],t[n],s):e[n]===t[n]))}var Qt;!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",e.SERVER_CONFIG_UPDATED="onServerConfigUpdated",e.PINNED_GROUP_MESSAGE_UPDATED="onPinnedGroupMessageUpdated",e.WEB_PUSH_MESSAGE_RECEIVED="onWebPushMessageReceived"}(Qt||(Qt={}));var Xt,Zt=Qt;!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",e.TOPIC_MESSAGE_DELETED="topic_message_deleted",e.TOPIC_MESSAGE_REVOKED="topic_message_revoked",e.TOPIC_MESSAGE_MODIFIED="topic_message_modified",e.TOPIC_NEW_MESSAGE="topic_new_message",e.QUALITY_STAT="quality_stat",e.SYNC_CONVERSATION_LIST="sync_conversation_list",e.HISTORY_MESSAGE_FETCHED="history_message_fetched"}(Xt||(Xt={}));var es,ts=Xt;!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"}(es||(es={}));var ss=es;const ns=Object.assign({},{KICKED_OUT_MULT_ACCOUNT:"multipleAccount",KICKED_OUT_MULT_DEVICE:"multipleDevice",KICKED_OUT_USERSIG_EXPIRED:"userSigExpired",KICKED_OUT_REST_API:"REST_API_Kick"}),os={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",MSG_STREAM:"TIMStreamElem"};var is;!function(e){e.UNSENT="unSend",e.SUCCESS="success",e.FAIL="fail"}(is||(is={}));const rs={modify:ts.MESSAGE_MODIFIED,delete:ts.MESSAGE_DELETED,revoke:ts.MESSAGE_REVOKED};var as;!function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(as||(as={}));const cs=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},os),{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:is,Direction:as}),us={[rs.modify]:ts.TOPIC_MESSAGE_MODIFIED,[rs.delete]:ts.TOPIC_MESSAGE_DELETED,[rs.revoke]:ts.TOPIC_MESSAGE_REVOKED},ls={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"},ds=Object.assign({},ls),hs={CONV_C2C:"C2C",CONV_GROUP:"GROUP",CONV_TOPIC:"TOPIC",CONV_SYSTEM:"@TIM#SYSTEM"},gs=Object.assign(Object.assign(Object.assign(Object.assign({},hs),{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"}),ps=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"}),_s={GRP_WORK:"Private",GRP_PUBLIC:"Public",GRP_MEETING:"ChatRoom",GRP_AVCHATROOM:"AVChatRoom",GRP_COMMUNITY:"Community",GRP_ROOM:"Room",GRP_LIVE:"Live"},ms={COMMUNITY:"@TGS#_",TOPIC:"@TOPIC#_"},vs={JOINED:1,QUITTED:2,KICKED:3,ADMIN_SET:4,ADMIN_CANCELED:5,GROUP_PROFILE_UPDATED:6,GROUP_MEMBER_PROFILE_UPDATED:7,TOPIC_PROFILE_UPDATED:8},fs=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},_s),{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:ms,GROUP_TIPS_OPERATION_TYPE:vs}),Is={IOS_OFFLINE_PUSH_NO_SOUND:"push.no_sound",IOS_OFFLINE_PUSH_DEFAULT_SOUND:"default"},Es=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ns),cs),ds),gs),ps),fs),Is),{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_SEND_FAIL_NOT_IN_AV:2101,MSG_SEND_GRP_WITH_TOPIC_FAIL:2115,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,INVALID_OPERATION:2905,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},Cs={BASIC:"1",STANDARD:"2",PROFESSIONAL:"3"},Ms={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",RECEIVE_GROUP_TIPS_NOTIFICATION:"receive-group-tips-notification"},ys={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",CONVERSATION_GROUP_LIST_SYNC:"conversation-group-list-sync",CONVERSATION_GROUP_UPDATE:"conversation-group-update",UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED:"update-topic-after-unread-sync-finished",UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE:"update-topic-by-received-new-message",TOPIC_REQUEST_INFO_RESET:"topic-request-info-reset",QUALITY_REPORT:"quality-report",GROUP_TIPS_RECOVER:"group-tips-recover",HANDLE_GROUP_TIPS_NOTIFICATION:"handle-group-tips-notification",C2C_HISTORY_MESSAGE_RECOVER:"c2c-history-message-recover",FRIEND_APPLICATION_LIST_RECOVER:"friend-application-list-recover"},Os={[Ms.SYNC_SERVER_INFO_AFTER_RE_ONLINE]:[{stepId:ys.USER_STATUS_UPDATE},{stepId:ys.GROUP_ATTRIBUTE_CACHE_CLEAR},{stepId:ys.UNREAD_MESSAGE_SYNC,dependency:ys.C2C_HISTORY_MESSAGE_RECOVER},{stepId:ys.CONVERSATION_RECOVER},{stepId:ys.HISTORY_MESSAGE_RECOVER,dependency:ys.CONVERSATION_RECOVER},{stepId:ys.BLACKLIST_RECOVER},{stepId:ys.FRIEND_RECOVER},{stepId:ys.FRIEND_APPLICATION_LIST_RECOVER},{stepId:ys.GROUP_REVOKED_NOTICE_RECOVER,dependency:ys.HISTORY_MESSAGE_RECOVER},{stepId:ys.GROUP_TIPS_RECOVER,dependency:ys.HISTORY_MESSAGE_RECOVER},{stepId:ys.TOPIC_REQUEST_INFO_RESET},{stepId:ys.HANDLE_C2C_REVOKED_MESSAGE_FROM_SYNC_UNREAD,dependency:ys.UNREAD_MESSAGE_SYNC},{stepId:ys.HANDLE_GROUP_TIPS_FROM_SYNC_UNREAD,dependency:ys.UNREAD_MESSAGE_SYNC},{stepId:ys.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[ys.UNREAD_MESSAGE_SYNC,ys.CONVERSATION_RECOVER]},{stepId:ys.EMIT_C2C_MESSAGE_EVENT,dependency:[ys.UNREAD_MESSAGE_SYNC,ys.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED],skipIfDependencyMissing:!1},{stepId:ys.C2C_HISTORY_MESSAGE_RECOVER,dependency:ys.CONVERSATION_RECOVER}],[Ms.SYNC_SERVER_INFO_AFTER_LOGIN]:[{stepId:ys.COMMERCIAL_CONFIG_UPDATE},{stepId:ys.CLOUD_CONFIG_SYNC},{stepId:ys.USER_PROFILE_SYNC},{stepId:ys.UNREAD_MESSAGE_SYNC},{stepId:ys.FRIEND_AND_BLACKLIST_SYNC},{stepId:ys.GROUP_LIST_SYNC},{stepId:ys.CONVERSATION_LIST_SYNC},{stepId:ys.SIGNALING_MESSAGE_RECOVER,dependency:ys.UNREAD_MESSAGE_SYNC},{stepId:ys.UPDATE_TOPIC_AFTER_UNREAD_SYNC_FINISHED,dependency:[ys.UNREAD_MESSAGE_SYNC]},{stepId:ys.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[ys.UNREAD_MESSAGE_SYNC,ys.CONVERSATION_LIST_SYNC]},{stepId:ys.CONVERSATION_UPDATE_AFTER_GROUP_LIST_SYNC_FINISHED,dependency:[ys.GROUP_LIST_SYNC,ys.CONVERSATION_LIST_SYNC]},{stepId:ys.CONVERSATION_GROUP_LIST_SYNC},{stepId:ys.CONVERSATION_GROUP_UPDATE,dependency:[ys.CONVERSATION_LIST_SYNC,ys.CONVERSATION_GROUP_LIST_SYNC]},{stepId:ys.QUALITY_REPORT}],[Ms.RECEIVE_C2C_NEW_MESSAGE]:[{stepId:ys.HANDLE_C2C_NEW_MESSAGE},{stepId:ys.UNREAD_MESSAGE_SYNC},{stepId:ys.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:ys.HANDLE_C2C_NEW_MESSAGE},{stepId:ys.EMIT_C2C_MESSAGE_EVENT,dependency:[ys.HANDLE_C2C_NEW_MESSAGE,ys.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1},{stepId:ys.CONVERSATION_UPDATE_AFTER_UNREAD_SYNC_FINISHED,dependency:[ys.UNREAD_MESSAGE_SYNC]}],[Ms.RECEIVE_GROUP_NEW_MESSAGE]:[{stepId:ys.HANDLE_GROUP_NEW_MESSAGE},{stepId:ys.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:ys.HANDLE_GROUP_NEW_MESSAGE},{stepId:ys.UPDATE_GROUP_NEXT_SEQUENCE,dependency:ys.HANDLE_GROUP_NEW_MESSAGE},{stepId:ys.UPDATE_TOPIC_BY_RECEIVE_NEW_MESSAGE,dependency:ys.HANDLE_GROUP_NEW_MESSAGE},{stepId:ys.EMIT_GROUP_MESSAGE_EVENT,dependency:[ys.HANDLE_GROUP_NEW_MESSAGE,ys.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE],skipIfDependencyMissing:!1}],[Ms.RECEIVE_GROUP_TIPS_NOTIFICATION]:[{stepId:ys.HANDLE_GROUP_TIPS_NOTIFICATION},{stepId:ys.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,dependency:ys.HANDLE_GROUP_TIPS_NOTIFICATION}]},As={MESSAGE_SEND_SUCCESS_RATE:"messageSendSuccessRate"},Ts={TOTAL_COUNT:"sendMessageTotalCount",SUCCESS_COUNT:"sendMessageSuccessCount",FAILED_COUNT:"sendMessageFailedCount",SEND_COST:"sendMessageCost"},Rs=["login","getMyProfile","getUserProfile","updateMyProfile","setSelfStatus","getUserStatus","subscribeUserStatus","unsubscribeUserStatus","modifyMessage","deleteGroupMember","dismissGroup","getGroupMemberList","getGroupOnlineMemberCount","joinGroup","markGroupMemberList","quitGroup","searchCloudMessages","searchCloudGroups","searchCloudGroupMembers","searchCloudUsers","getMyFollowingList","getMyFollowersList","getMutualFollowersList","followUser","unfollowUser","getUserFollowInfo","checkFollowType","getFriendProfile","addFriend","deleteFriend","updateFriend","checkFriend","setFriendApplicationRead","createFriendGroup","deleteFriendGroup","addToFriendGroup","removeFromFriendGroup","renameFriendGroup","changeGroupOwner","createGroup","dismissGroup","getGroupList","getGroupOnlineMemberCount","getGroupProfile","searchGroupByID","updateGroupProfile","handleGroupApplication","deleteGroupAttributes","getGroupAttributes","initGroupAttributes","setGroupAttributes","addGroupMember","deleteGroupMember","getGroupMemberList","getGroupMemberProfile","setGroupMemberMuteTime","setGroupMemberNameCard","setGroupMemberRole","deleteMessage","revokeMessage","setMessageExtensions","getMessageExtensions","deleteMessageExtensions","getMessageList","addMessageReaction","removeMessageReaction","clearHistoryMessage","sendMessageReadReceipt","getMessageReadReceiptList","getGroupMessageReadMemberList","createMergerMessage","invite","accept","cancel","reject","modifyInvitation","deleteConversation","pinConversation","setMessageRead","setAllMessageRead","getConversationList","getTotalUnreadMessageCount","renameConversationGroup","deleteConversationGroup","markConversation","setConversationCustomData","deleteConversationsFromGroup","addConversationsToGroup","createConversationGroup"];var Ds=Object.freeze({__proto__:null,ERROR_CODE:Ss,InnerEvent:ts,NEED_LOG_API:Rs,OuterConstant:Es,OuterEvent:Zt,PUSH:Is,QUALITY_METRICS:As,SDK_EDITION:Cs,SDK_INFO:{VERSION:"1.7.3",APPID:537048168},SEND_MESSAGE_STAT:Ts,SignalingEvent:ss,WEB_PUSH_ACCOUNT_TYPE:1,WORKFLOW_DEFINITIONS:Os,WORKFLOW_NAME:Ms,WORKFLOW_STEP:ys});var bs,Ns,Ls;!function(e){e[e.USER_INITIATED=0]="USER_INITIATED",e[e.KICKED_OUT=1]="KICKED_OUT"}(bs||(bs={})),function(e){e[e.multipleAccount=1]="multipleAccount",e[e.multipleDevice=2]="multipleDevice",e[e.restApi=3]="restApi"}(Ns||(Ns={})),function(e){e[e.multipleDevice=3002]="multipleDevice",e[e.multipleAccount=3003]="multipleAccount",e[e.usersigExpired=70001]="usersigExpired",e[e.restApi=20002]="restApi"}(Ls||(Ls={}));const Ps={[Ns.multipleAccount]:"multipleAccount",[Ns.multipleDevice]:"multipleDevice",[Ns.restApi]:"REST_API_Kick",[Ls.multipleAccount]:"multipleAccount",[Ls.multipleDevice]:"multipleDevice",[Ls.restApi]:"REST_API_Kick",[Ls.usersigExpired]:"userSigExpired"},Gs="login_online_presence_task",{ERROR:ws,DESTROY:Us,FORCE_OFFLINE:ks}=ts,{KICKED_OUT_MULT_ACCOUNT:Fs,KICKED_OUT_MULT_DEVICE:$s,KICKED_OUT_REST_API:xs,ACCOUNT_A2KEY_EXPIRED:qs,MSG_A2KEY_EXPIRED:Vs}=Ss;class Bs{init(){const{notificationCenter:e}=Yt;e.subscribeInnerEvent(ks,this._handleForceOfflineFromServerPush,this),e.subscribeInnerEvent(ws,Vs,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),e.subscribeInnerEvent(ws,qs,this._handleForceOfflineFromResponse,this,this._isChatLoginEvent),e.subscribeInnerEvent(ws,Fs,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(ws,$s,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(ws,xs,this._handleForceOfflineFromResponse,this),e.subscribeInnerEvent(Us,this._dispose,this)}_handleForceOfflineFromServerPush(e){var t;if(!0===(null===(t=Yt.store.get("login"))||void 0===t?void 0:t.isLoggedIn)){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 ge(this,void 0,void 0,function*(){const{kickedOutReasonCode:t}=e,{ssoLog:s,utils:{safeStringify:n}}=Yt;try{this._logKickedOutEvent(e),this._shouldLogoutAfterKickedOut(t)&&(yield Yt.login.loginAction.logout(bs.KICKED_OUT))}catch(e){s.debug("_processKickedOutReasonInfo",` fail ${n(e)}`)}finally{Yt.notificationCenter.emitOuterEvent(Zt.KICKED_OUT,{data:{type:Ps[t]},name:Zt.KICKED_OUT})}})}_logKickedOutEvent(e){const{kickedOutReasonCode:t,newInstanceInfo:s={}}=e,n=`type:${Ps[t]} newInstanceInfo: ${JSON.stringify(s)}`;Yt.ssoLog.warn("kickedOut",n)}_isKickedOut(e){return[Ns.multipleAccount,Ns.multipleDevice,Ns.restApi].includes(e)}_isChatLoginEvent(e){const{requestHead:t}=e||{};return 1!==(null==t?void 0:t.idtype)}_shouldLogoutAfterKickedOut(e){return![Ls.usersigExpired,Ns.restApi].includes(e)}_dispose(){const{notificationCenter:e}=Yt;e.unSubscribeInnerEvent(ks,this._handleForceOfflineFromServerPush,this),e.unSubscribeInnerEvent(ws,qs,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(ws,Vs,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(ws,Fs,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(ws,$s,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(ws,xs,this._handleForceOfflineFromResponse,this),e.unSubscribeInnerEvent(Us,this._dispose,this)}}function js(e){return ge(this,void 0,void 0,function*(){const t="im_open_status.wslogin",s=Yt.common.generateProtocolData({servcmd:t,data:{State:"Online",is_web_uniapp:0,InstType:0,CustomInfo:e}}),n=`${s.head.seq}${t}`,o=yield Yt.channel.sendPacket(s,{timeout:9e4,requestId:n});if(o){const{HelloInterval:e,InstId:t,TinyId:s,TimeStamp:n,CustomStatus:i,PurchaseBits:r,A2Key:a,RichMsgAuthKey:c,ErrorCode:u,ErrorInfo:l,ActionStatus:d}=o;return{helloInterval:e,instanceID:t,tinyID:s,timeStamp:n,customStatus:i,purchaseBits:r,a2Key:a,authKey:c,errorCode:u,errorInfo:l,actionStatus:d}}})}function Hs(){const{store:e}=Yt;return ze(e.get("instance").sdkAppId)!==S.CHINA}function Ks(e){var t;try{const s=He.getStorage("errorMessage");if(!e||!s)return"";const n=(null===(t=JSON.parse(s))||void 0===t?void 0:t.errorMessage)||{},{code:o,replacement1:i="",replacement2:r=""}=e;if(!o)return"";const a=Hs()?`${o}_en`:`${o}_cn`;let c=n[n[a]?a:o]||"";return c&&(i&&(c=c.replace("$replacement1",i)),r&&(c=c.replace("$replacement2",r))),c}catch(e){return console.warn("Error parsing stored error messages:",e),""}}class Ws extends Error{constructor(e){const{functionName:t="Unknown",code:s,message:n="",data:o="",moreMessage:i=""}=e;let r=n;s&&!n&&(r=Ks(e));let a=s?`${t} failed. error: {"message": ${r}, "code": ${s}}`:`${t} failed. error: {"message": ${r}}`;a=`${a} ${i}`,super(),this.code=s,this.errorCode=s,this.errorMessage=r,this.message=a,this.data=o}}function Ys(e,t){var s;if(!e)return;if(!(!0===(null===(s=Yt.store.get("login"))||void 0===s?void 0:s.isLoggedIn)))throw new Ws({code:Ss.USER_NOT_LOGGED_IN,functionName:t})}function zs(e,t,s){if(Array.isArray(e))for(let n=0;n<e.length;n++)Js.call(this,Object.assign(Object.assign({},e[n]),{value:t[n],name:s}));else for(const n in e)Js.call(this,Object.assign(Object.assign({},e[n]),{value:t[0][n],name:s,key:n}))}function Js({required:e,rules:t,range:s,value:n,allowEmpty:o,name:i,key:r,customValidator:a}){if(void 0===n){if(e){throw new Ws({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 Ws({functionName:i,message:e})}if(!1===o){if(Array.isArray(n)&&(0===n.length||"string"==typeof n[0]&&""===n[0].trim())){throw new Ws({functionName:i,message:`${r} can not be empty.`})}if("string"==typeof n&&""===n.trim()){throw new Ws({functionName:i,message:`${r} can not be empty.`})}}if(a&&"function"==typeof a){const e=a(n);if(!0!==e){throw new Ws({functionName:i,message:`[${r}] custom validation failed: ${e||"Invalid value"}`})}}}const Qs=[],Xs={},Zs={};function en(e,t){Ys(Xs[e],e),zs(Zs[e],t,e),function(e){Qs.forEach(t=>{const{interceptor:s,context:n}=t;s.apply(n,[e])})}(e)}function tn(e,t){Qs.push({interceptor:e,context:t})}function sn(e){const{params:t,auth:s}=e;t&&"object"==typeof t&&Object.assign(Zs,t),s&&"object"==typeof s&&Object.assign(Xs,s)}function nn(e){return Yt.store.get("commercialConfig").get(e)}class on{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),Yt.ssoLog.debug("_executeWorkflowStep",`[Workflow ${e}] Step ${t} started at ${new Date(s).toISOString()}`)):(this._workflowStartTimes.set(e,s),Yt.ssoLog.debug("_executeWorkflowStep",`[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}`),Yt.ssoLog.debug("_executeWorkflowStep",`[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),Yt.ssoLog.debug("_executeWorkflowStep",`[Workflow ${e}] completed successfully at ${new Date(s).toISOString()} (${n}ms)`)}},error:(e,t,s)=>{const{ssoLog:n,utils:{safeStringify:o}}=Yt,i=Date.now();if(t){const r=this._stepStartTimes.get(`${e}-${t}`),a=r?i-r:0;this._stepStartTimes.delete(`${e}-${t}`),n.error("_executeWorkflowStep",`[Workflow ${e}] Step ${t} failed at ${new Date(i).toISOString()} (${a}ms) ${o(s)}`,{error:s})}else{const t=this._workflowStartTimes.get(e),r=t?i-t:0;this._workflowStartTimes.delete(e),n.error("_executeWorkflowStep",`[Workflow ${e}] failed at ${new Date(i).toISOString()} (${r}ms) ${o(s)}`,{error:s})}}}}static getInstance(){return on._instance||(on._instance=new on),on._instance}static setInstance(e){on._instance=e}init(){this._initializeWorkflows()}registerWorkflowStep(e,t,s,n){if(!this._handlers.has(e))return void Yt.ssoLog.debug("registerWorkflowStep",`Workflow '${e}' not defined in core`);if(!Os[e].find(e=>e.stepId===t))return void Yt.ssoLog.debug("registerWorkflowStep",`Step '${t}' not defined in workflow '${e}'`);const o=this._handlers.get(e);o.has(t)||o.set(t,n?s.bind(n):s)}executeWorkflow(e,t){return ge(this,void 0,void 0,function*(){if(!this._validateWorkflow(e))return;Yt.ssoLog.debug("executeWorkflow",`[Workflow ${e}] Started execution at ${(new Date).toISOString()}`);const s=Os[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&&(Yt.ssoLog.debug("executeWorkflow",`Workflow ${e} completed with some steps skipped due to dependency failures`),t())},onError:s,onStepComplete:n})})};n()}),Yt.ssoLog.debug("executeWorkflow",`[Workflow ${e}] Completed execution at ${(new Date).toISOString()}`)}catch(t){Yt.ssoLog.error("executeWorkflow",`[Workflow ${e}] Failed execution at ${(new Date).toISOString()}`,{error:t})}finally{this._activeWorkflows.delete(e)}})}_executeWorkflowStep(e,s,n){return ge(this,void 0,void 0,function*(){const{workflowName:o,runningSteps:i,stepMap:r,stepResults:a,data:c}=s;i.add(e),this._logWorkflowExecution(o,e,"start");try{const n=r.get(e);let i=null;(null==n?void 0:n.dependency)&&(t(n.dependency)?i=a[n.dependency]:Array.isArray(n.dependency)&&(i={},n.dependency.forEach(e=>{i[e]=a[e]})));const u=this._handlers.get(o).get(e);if(u){const t=yield Promise.resolve(u({data:c,result:i}));a[e]=t,this._logWorkflowExecution(o,e,"success")}s.completedSteps.add(e)}catch(t){const s=`[Workflow].${o}.${e}`,{errorCode:i,errorInfo:r=`${s} failed`}=t||{},a=new Ws({functionName:s,code:i,message:r});Yt.ssoLog.error(s,r,{error:a}),this._logWorkflowExecution(o,e,"error",t),n.onError(t)}finally{i.delete(e),s.pendingSteps.delete(e),n.onStepComplete(),n.onComplete()}})}reset(){this._cancelAllWorkflows()}destroy(){this.reset(),this._handlers.clear()}_initializeWorkflows(){Object.keys(Os).forEach(e=>{this._handlers.has(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(Os).forEach(e=>{this._cancelWorkFlow(e)})}_validateWorkflow(e){if(!Os[e])return!1;return!!this._handlers.get(e)}_getExecutableSteps(e){const{pendingSteps:s,completedSteps:o,stepMap:i,workflowName:r}=e;return Array.from(s).filter(e=>{const s=i.get(e)||{},{dependency:a,skipIfDependencyMissing:c=!0}=s;if(!a)return!0;if(t(a))return this._isStepRegistered({workflowName:r,stepId:a})?o.has(a):!c;if(n(a)){if(a.filter(e=>!this._isStepRegistered({workflowName:r,stepId:e})).length>0&&c)return!1;for(const e of a)if(!o.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)}}const rn=new Map,an=({type:e,groupID:t})=>e===Es.GRP_COMMUNITY||`${t}`.startsWith(ms.COMMUNITY)&&!`${t}`.includes(ms.TOPIC),cn=(e="")=>{const t=e.startsWith("GROUP")?e.replace("GROUP",""):e;return t.startsWith(ms.COMMUNITY)&&`${t}`.includes(ms.TOPIC)},un="openim",ln="million_group_open_http_svc";function dn(e){return ge(this,void 0,void 0,function*(){const{servcmd:t,data:s}=function(e){const{data:t}=e;return hn(t)||gn(t)}(e)?function(e){let{servcmd:t,data:s}=e;if(gn(s))return function(e){const{servcmd:t,data:s}=e;let{GroupId:n=""}=s;const o=n;return[n]=o.split(ms.TOPIC),{servcmd:pn(t),data:Object.assign(Object.assign({},s),{GroupId:n,TopicId:o})}}(e);hn(s)&&(t=pn(t));return{servcmd:t,data:s}}(e):e,n=Yt.common.generateProtocolData({servcmd:t,data:s}),o=`${n.head.seq}${t}`;return Yt.channel.sendPacket(n,{requestId:o,timeout:e.timeout})})}function hn(e){const{Type:t,GroupId:s,GroupIdList:n=[]}=e,o=s||n[0]||"";return an({type:t,groupID:o})}function gn(e){const{GroupId:t=""}=e;return cn(t)}function pn(e){if(e.includes(un))return e;const t=e.split(".")[1];return`${ln}.${t}`}function _n(){var e;return null===(e=Yt.store.get("login"))||void 0===e?void 0:e.userId}const mn=e=>n(e)||o(e),vn=(t,s,n,o)=>{if(!mn(t)||!mn(s))return 0;let i=0;const r=Object.keys(s);let a;for(let c=0,u=r.length;c<u;c++)if(a=r[c],!(e(s[a])||n&&n.includes(a)))if(mn(t[a])&&mn(s[a]))i+=vn(t[a],s[a],n,o);else{if(o&&o.includes(s[a]))continue;t[a]!==s[a]&&(t[a]=s[a],i+=1)}return i},fn={zh:{MSG_IMAGE:"[图片]",MSG_LOCATION:"[位置]",MSG_AUDIO:"[语音]",MSG_VIDEO:"[视频]",MSG_FILE:"[文件]",MSG_CUSTOM:"[自定义消息]",MSG_GRP_TIP:"[群提示消息]",MSG_GRP_SYS_NOTICE:"[群系统通知]",MSG_FACE:"[动画表情]",MSG_MERGER:"[聊天记录]",MSG_STREAM:"[流式消息]",CREATE_GROUP:"创建群组",CREATE_COMMUNITY:"创建社群"},en:{MSG_IMAGE:"[Image]",MSG_LOCATION:"[Location]",MSG_AUDIO:"[Voice]",MSG_VIDEO:"[Video]",MSG_FILE:"[File]",MSG_CUSTOM:"[Custom Messages]",MSG_GRP_TIP:"[Group Notification]",MSG_GRP_SYS_NOTICE:"[Group System Message]",MSG_FACE:"[Animated Sticker]",MSG_MERGER:"[Chat Record]",MSG_STREAM:"[Stream Message]",CREATE_GROUP:"Create Group",CREATE_COMMUNITY:"Create Community"}};function In(e){var t;const s=Hs()?"en":"zh";return(null===(t=fn[s])||void 0===t?void 0:t[e])||e}const En={[Es.MSG_IMAGE]:"MSG_IMAGE",[Es.MSG_LOCATION]:"MSG_LOCATION",[Es.MSG_AUDIO]:"MSG_AUDIO",[Es.MSG_VIDEO]:"MSG_VIDEO",[Es.MSG_FILE]:"MSG_FILE",[Es.MSG_CUSTOM]:"MSG_CUSTOM",[Es.MSG_GRP_TIP]:"MSG_GRP_TIP",[Es.MSG_GRP_SYS_NOTICE]:"MSG_GRP_SYS_NOTICE",[Es.MSG_FACE]:"MSG_FACE",[Es.MSG_MERGER]:"MSG_MERGER",[Es.MSG_STREAM]:"MSG_STREAM"},Sn=(t,s)=>{if(e(s))return"";if(t===Es.MSG_TEXT)return s.text||"";const n=En[t];return n?In(n):""},Cn=[{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_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}],Mn="im_sdk_config_mgr.fetch_config",yn="im_sdk_config_mgr.push_configv2",On="cloud-config",An=2996;const Tn=new class{init(e){this.core=e}};function Rn(e){return ge(this,void 0,void 0,function*(){const{sdkAppId:t}=Tn.core.store.get("instance")||{},s=Tn.core.helper.generateProtocolData({servcmd:Mn,data:{uint32_sdkappid:t,uint64_version:e}}),n=`${s.head.seq}${Mn}`;return Tn.core.channel.sendPacket(s,{requestId:n})})}var Dn=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(yn,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(Cn),r.registerBeforeSendInterceptor(this.checkMethodCallOverLimit,this)}getServerConfig(e){return ge(this,void 0,void 0,function*(){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:An,replacement1:e})}_handlePushedConfig(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;t.info("_handlePushedConfig",s(e)),yield this._updateCloudConfig(e)})}_handleLoginSuccess(){return ge(this,void 0,void 0,function*(){const{ssoLog:e,utils:{safeStringify:t}}=this._core;try{if(this._canFetch()){const s=yield Rn(this._version);e.info("_fetchCloudConfigIfLogin",t(s)),yield this._updateCloudConfig(s)}this._core.helper.taskScheduler.addTask({id:On,intervalMs:1e3,callback:this._fetchCloudConfigIfReady,context:this})}catch(s){e.debug("_fetchCloudConfigIfLogin",t(s))}})}_fetchCloudConfigIfReady(){return ge(this,void 0,void 0,function*(){const{ssoLog:e,utils:{safeStringify:t}}=this._core;if(this._canFetch())try{const s=yield Rn(this._version);e.info("_fetchCloudConfigIfReady",t(s)),yield this._updateCloudConfig(s)}catch(s){e.error("_fetchCloudConfigIfReady",t(s))}})}_updateCloudConfig(e){return ge(this,void 0,void 0,function*(){const t=this._parseCloudConfig(e);t&&(this._core.store.set("cloudConfig",t),yield this._parseCmdFreqLimit(),this._core.notificationCenter.emitInnerEvent(this._core.InnerEvent.CLOUD_CONFIG_UPDATE,t),this._core.notificationCenter.emitOuterEvent(this._core.OuterEvent.SERVER_CONFIG_UPDATED,{name:this._core.OuterEvent.SERVER_CONFIG_UPDATED,data:{config: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(){return ge(this,void 0,void 0,function*(){var e;let t=null===(e=yield 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(On),this._core.store.clear("cloudConfig"),this._updateCmdFreqLimitMap(Cn),this._methodCallFrequencyMap.clear(),this._expirationTime=0,this._version=0,this._isFetching=!1}_dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(yn,this._handlePushedConfig,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this),this._reset()}};class bn{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 Nn={SEARCH_GRP_SNS:new bn(0,Math.pow(2,1)).toString(),AV_HISTORY_MSG:new bn(0,Math.pow(2,2)).toString(),GRP_COMMUNITY:new bn(0,Math.pow(2,3)).toString(),MSG_TO_SPECIFIED_GRP_MBR:new bn(0,Math.pow(2,4)).toString(),AV_MBR_LIST:new bn(0,Math.pow(2,6)).toString(),USER_STATUS:new bn(0,Math.pow(2,7)).toString(),CONV_MARK:new bn(0,Math.pow(2,9)).toString(),CONV_GROUP:new bn(0,Math.pow(2,10)).toString(),AV_BAN_MBR:new bn(0,Math.pow(2,11)).toString(),MSG_EXT:new bn(0,Math.pow(2,13)).toString(),GRP_COUNTER:new bn(0,Math.pow(2,15)).toString(),PLUGIN_TRANSLATE:new bn(Math.pow(2,6)).toString(),PLUGIN_VOICE_TO_TEXT:new bn(Math.pow(2,7)).toString(),PLUGIN_CS:new bn(Math.pow(2,8)).toString(),PLUGIN_PUSH:new bn(Math.pow(2,9)).toString(),PLUGIN_BOT:new bn(Math.pow(2,10)).toString(),MSG_REACTION:new bn(Math.pow(2,16)).toString(),FOLLOW:new bn(Math.pow(2,20)).toString()},Ln="CommercialConfig",Pn="commercial-config";var Gn=new class{constructor(){this._core=null,this._expirationTime=0,this._isFetching=!1,this._featureMap=new Map,this._methodKeyMap=new Map,this._purchaseBits="0"}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),e.helper.registerExperimentalAPI("queryCommercialAbility",this)}isCommercialAbilityEnabled(e){return ge(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 bn(0,2**i).toString():new bn(2**(i-32),0).toString(),!this._featureMap.get(n))){o=!1;break}return this._core.ssoLog.debug("isFeatureEnabled",`${Ln}.isFeatureEnabled decimalNumber:${e} key:${n} ret:${o}`),{code:0,data:{enabled:o}}})}queryCommercialAbility(){return this._purchaseBits}_fetchAndParseCommercialConfig(){return ge(this,void 0,void 0,function*(){var e;const{ssoLog:t,utils:{safeStringify:s},common:{buildAndSendPacket:n}}=this._core;try{this._isFetching=!0;const t=yield n({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}});(null==t?void 0:t.body)&&(this._parseCommercialConfig(t.body),this._core.store.set("commercialConfig",this._methodKeyMap))}catch(e){t.error("_fetchAndParseCommercialConfig",s(e))}finally{this._isFetching=!1}})}_syncCommercialConfig(e){return ge(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:Pn,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 ge(this,void 0,void 0,function*(){this._canFetch()&&(yield this._fetchAndParseCommercialConfig())})}_parseCommercialConfig(e){const{ssoLog:t}=this._core;if("object"!=typeof e)return;const{int32_error_code:s,str_error_message:n,str_purchase_bits:o,uint32_expired_time:i}=e;0===s?(this._parsePurchaseBits(o),this._expirationTime=Date.now()+1e3*i):void 0===s?(t.warn("_parseCommercialConfig",`${Ln}._parseCommercialConfig failed. Invalid message format:`,e),this._expirationTime=Date.now()+36e5):(t.warn("_parseCommercialConfig",`${Ln}._parseCommercialConfig errorCode:${s} errorMessage:${n}`),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){const{ssoLog:t,utils:{safeStringify:s}}=this._core;if(this._isValidPurchaseBits(e)){this._purchaseBits=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 bn(0,2**n).toString():new bn(2**(n-32),0).toString(),"1"===e[s]){this._featureMap.set(t,!0);const e=this._getKeyByValue(Nn,t);e&&this._methodKeyMap.set(e,!0)}else{this._featureMap.set(t,!1);const e=this._getKeyByValue(Nn,t);e&&this._methodKeyMap.set(e,!1)}}else t.warn("_parsePurchaseBits",`${Ln}.parsePurchaseBits invalid purchases:${s(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(Pn),this._core.store.set("commercialConfig",{}),this._expirationTime=0,this._isFetching=!1,this._featureMap.clear(),this._purchaseBits="0"}};var wn=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 Un=new class{constructor(){this.name="ConfigCenter"}install(e){Tn.init(e),Dn.install(e),Gn.install(e),wn.install(e)}};var kn=new class{constructor(){this.name="ErrorMessage",this._core=null}install(e){return ge(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 ge(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 Fn(e,t){return ge(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:u,MsgTimeStamp:l,SendMsgControl:d,SupportMessageExtension:h,To_Account:g,TinyId:p,MsgCheckResult:_,CloudCustomData:m,IsPeerRead:v,MsgFlagBits:f,MsgVersion:I,EventArray:E}=e;return{from:s,avatar:n,nick:o,needReadReceipt:1===i,readReceiptSentByPeer:v,clientTime:a,messageFlagBits:f,random:c,sequence:u,time:l,messageControlInfo:d,isSupportExtension:h,to:g,tinyID:p,checkResult:_,cloudCustomData:m,messageVersion:I,eventArray:E,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 $n,xn;!function(e){e[e.START_SYNC=0]="START_SYNC",e[e.SYNCING=1]="SYNCING",e[e.SYNC_COMPLETE=2]="SYNC_COMPLETE"}($n||($n={})),function(e){e[e.LOGIN_SUCCESS=0]="LOGIN_SUCCESS",e[e.NEW_MESSAGE_RECEIVED=1]="NEW_MESSAGE_RECEIVED"}(xn||(xn={}));var qn=new class{constructor(){this.name="UnreadMessageSynchronizer",this._unreadDBMessageMap=new Map,this._cookie="",this._localConversationIDListBeforeDisconnect=[]}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.SOCKET_DISCONNECTED,this._handleDisconnect,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_syncUnreadMessage(e){return ge(this,void 0,void 0,function*(){const{isAfterReOnline:t=!1,isAfterNewMessageReceived:s=!1,isAfterLogin:n=!1}=e||{};let o=$n.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?xn.NEW_MESSAGE_RECEIVED:xn.LOGIN_SUCCESS});if(!e)break;const{unreadMessageList:n=[],revokedMessageList:u=[],overflowUnreadCountList:l,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(...u),this._updateConversationUnreadOptions({unreadCountList:d,overflowUnreadCountList:l,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 ge(this,void 0,void 0,function*(){return this._cookie="",this._syncUnreadMessage({isAfterLogin:!0})})}_syncUnreadDBMessageAfterNewMessageReceived(e){return ge(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 ge(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(this._shouldStoreUnreadMessage(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}}_shouldStoreUnreadMessage(e){var t;const{conversationID:s}=e,{message:n,appStore:o,utils:{isEmpty:i}}=this._core||{},r=Array.from((null===(t=o.conversationStore.getConversationMap())||void 0===t?void 0:t.keys())||[]),a=this._getLocalLastMessageTime(s);return!n.messageDataHandler.isInMessageList(e)&&r.includes(s)&&this._localConversationIDListBeforeDisconnect.includes(s)&&!i(a)}_fetchUnreadDBMessage(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;try{const n="unread-message-synchronizer._fetchUnreadDBMessage";t.debug("_fetchUnreadDBMessage",`${n} options:${s(e)}`);const o=yield Fn(e,this._core);if(!o)return null;const{syncFlag:i,unreadMessageList:r,revokedMessageList:a,cookie:c,unreadCountList:u,overflowUnreadCountList:l,groupTipList:d}=o;return this._parseAndSaveUnreadMessageList(r),{syncFlag:i,cookie:c,unreadMessageList:r,revokedMessageList:a,unreadCountList:u,overflowUnreadCountList:l,groupTipList:d}}catch(e){console.log(e)}})}_canContinueSync({cookie:e,syncFlag:t}){var s;return t===$n.START_SYNC||t===$n.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)})}_handleDisconnect(){var e;const{appStore:t}=this._core;this._localConversationIDListBeforeDisconnect=Array.from((null===(e=t.conversationStore.getConversationMap())||void 0===e?void 0:e.keys())||[])}_getLocalLastMessageTime(e){const{message:t}=this._core,s=t.messageDataHandler.getLocalMessageList(e),n=s[s.length-1];return null==n?void 0:n.time}_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 Vn=new class{init(e){var t;this._core=e,this._visibilityChangeHandler=this._handleVisibilityChange.bind(this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this),null===document||void 0===document||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 Bn=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,t,s,n,o;const{MINI_APP_NAMESPACE:i,IN_TT_MINI_GAME:r,IN_WX_MINI_GAME:a}=(null===(e=this._core)||void 0===e?void 0:e.utils)||{};r||a?(null===(t=null==i?void 0:i.onShow)||void 0===t||t.call(i,()=>{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})}),null===(s=null==i?void 0:i.onHide)||void 0===s||s.call(i,()=>{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})})):(null===(n=null==i?void 0:i.onAppShow)||void 0===n||n.call(i,()=>{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})}),null===(o=null==i?void 0:i.onAppHide)||void 0===o||o.call(i,()=>{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 jn=new class{init(e){const{IN_MINI_APP:t,IN_WX_MINI_PLUGIN:s}=e.helper;s||(t?Bn.init(e):Vn.init(e))}};const Hn="none",Kn="online";var Wn=new class{init(e){this._core=e,this._activateNetworkMonitoring(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return ge(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:Kn})}_onOffline(){this._onNetworkStatusChange({isConnected:!1,networkType:Hn})}_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 Yn=new class{init(e){this._core=e,this._activateNetworkMonitoring(),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this._dispose,this)}_activateNetworkMonitoring(){return ge(this,void 0,void 0,function*(){try{const{utils:{MINI_APP_NAMESPACE:e}}=this._core;this._mpNetworkStatusCallback=this._onNetworkStatusChange.bind(this),e.onNetworkStatusChange(this._onNetworkStatusChange.bind(this))}catch(e){console.error(e)}})}_deactivateNetworkMonitoring(){if(null!==this._mpNetworkStatusCallback){const{utils:{MINI_APP_NAMESPACE:e}}=this._core;e.offNetworkStatusChange&&e.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 zn=new class{init(e){const{IN_MINI_APP:t}=e.utils;t?Yn.init(e):Wn.init(e)}};var Jn=new class{constructor(){this.name="SystemStateMonitor"}install(e){jn.init(e),zn.init(e)}};const Qn=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.*"]),Xn="tui_room_svr.*";var Zn=new class{constructor(){this.name="BusinessCommandTransfer",this._transferredCommands=Qn}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 ge(this,void 0,void 0,function*(){const t="transferBusinessCommand";try{const{serviceCommand:s=Xn}=e||{};if(!this._isValidTransferredCommand(s))throw new this._core.helper.ChatError({code:2995,functionName:t});const n=yield function(e,t){return ge(this,void 0,void 0,function*(){const{helper:s,channel:n}=t,{serviceCommand:o=Xn,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=Qn}_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 eo=1,to=2,so=3,no=4,oo=5,io="TIMCustomElem",ro="C2C",ao="GROUP",co="invite",uo="accept",lo="cancel",ho="reject",go="modifyInvitation",po="signaling",_o=8010,mo="signaling-timeout";function vo(e){return e.filter(e=>{if(e.type===io){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 fo(e){const{data:t}=e.payload;try{return JSON.parse(t)}catch(e){return console.error(e),null}}function Io(e,t){return e.toString(16).padStart(t,"0")}function Eo(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 So=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=`${po}.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=`${po}.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 Co=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=So.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===oo&&!!e.match(/excludeTimeoutSignalingFromHistoryMessage/),n=!!e.match(/excludeFromHistoryMessage/)||!!e.match(/excludeOriginalSignalingFromHistoryMessage/);return{excludedFromContentModeration:!0,excludedFromUnreadCount:s||n,excludedFromLastMessage:s||n}}_createInviteSignalingData(e){const t=`${po}._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:eo,inviter:r,inviteeList:o?i:[s],timeout:n});return console.log(`${t} signalingData:`,a),a}_createAcceptSignalingData(e){const t=`${po}._createAcceptSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviter:o,groupID:i}=So.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:so,groupID:i,inviter:o,inviteeList:[n]});return console.log(`${t} signalingData:`,r),r}_createCancelSignalingData(e){const t=`${po}._createCancelSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviteeList:o,groupID:i}=So.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:to,groupID:i,inviter:n,inviteeList:o});return console.log(`${t} signalingData:`,r),r}_createRejectSignalingData(e){const t=`${po}._createRejectSignalingData`,{inviteID:s}=e,n=this._core.common.getCurrentUserID(),{inviter:o,groupID:i}=So.getSignaling(s),r=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:no,groupID:i,inviter:o,inviteeList:[n]});return console.log(`${t} signalingData:`,r),r}_createTimeoutSignalingData(e){const t=`${po}._createTimeoutSignalingData`,{isInviter:s=!1,inviteID:n}=e,{inviteeList:o,inviter:i}=So.getSignaling(n),r=this._core.common.getCurrentUserID(),a=Object.assign(Object.assign({},this._generateBaseSignalData(e)),{actionType:oo,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?ao:ro,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[Io(Eo(32),8),Io(Eo(16),4),Io(16384|Eo(12),4),Io(32768|Eo(14),4),Io(Eo(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 Mo=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 ge(this,void 0,void 0,function*(){var t;try{this._validateBeforeInvite(e);const{signaling:s,signalingData:n,signalingExtensionOptions:o}=Co.createInviteSignaling(e),i=yield this._sendSignaling(s,o);if(0===(null==i?void 0:i.code)){const{inviteID:e,timeout:o}=n;return So.saveSignaling(e,Object.assign(Object.assign({},n),{signaling:s})),o>0&&(null===(t=this._core)||void 0===t||t.helper.taskScheduler.addOnceTask({id:`${mo}-${e}`,intervalMs:1e3*(o+5),callback:this.handleInvitationExpiryTimer.bind(this,e)})),Object.assign(Object.assign({},i),{inviteID:e})}return i}catch(e){throw e}})}accept(e){return ge(this,void 0,void 0,function*(){try{const{inviteID:t}=e;this._validateBeforeAccept(t),this._isProcessingSignaling=!0;const{signaling:s,signalingData:n,signalingExtensionOptions:o}=Co.createAcceptSignaling(e),i=yield this._sendSignaling(s,o);return 0===(null==i?void 0:i.code)?(So.updateSignaling(n),Object.assign(Object.assign({},i),{inviteID:t})):i}catch(e){throw e}finally{this._isProcessingSignaling=!1}})}cancel(e){return ge(this,void 0,void 0,function*(){try{const{inviteID:t}=e;this._validateBeforeCancel(t),this._isProcessingSignaling=!0;const{signaling:s,signalingExtensionOptions:n}=Co.createCancelSignaling(e),o=yield this._sendSignaling(s,n);return 0===(null==o?void 0:o.code)?(So.removeSignaling(t),Object.assign(Object.assign({},o),{inviteID:t})):o}catch(e){throw e}finally{this._isProcessingSignaling=!1}})}reject(e){return ge(this,void 0,void 0,function*(){try{const{inviteID:t}=e;this._validateBeforeReject(t),this._isProcessingSignaling=!0;const{signaling:s,signalingExtensionOptions:n}=Co.createRejectSignaling(e),o=yield this._sendSignaling(s,n);return 0===(null==o?void 0:o.code)?(So.removeSignaling(t),Object.assign(Object.assign({},o),{inviteID:t})):o}catch(e){throw e}finally{this._isProcessingSignaling=!1}})}modifyInvitation(e){return ge(this,void 0,void 0,function*(){var t,s;const{inviteID:n,data:o}=e;let i="";try{this._validateBeforeModifyInvitation(n);const e=So.getSignaling(n),{signaling:r}=e,a=he(e,["signaling"]);i=r.payload.data,a.data=o,r.payload.data=JSON.stringify(a);const c=yield null===(s=null===(t=this._core)||void 0===t?void 0:t.message.messageAction)||void 0===s?void 0:s.modifyMessage(r);return So.hasSignaling(n)&&So.saveSignaling(n,Object.assign(Object.assign({},a),{signaling:r})),c}catch(e){if(i){const{signaling:e}=So.getSignaling(n);e.payload.data=i}throw e}})}getSignalingInfo(e){const{ssoLog:t,utils:{safeStringify:s}}=this._core;if(0===vo([e]).length)return;const n=fo(e),o={businessID:n.businessID||1,inviteID:n.inviteID,groupID:n.groupID||"",inviter:n.inviter||"",inviteeList:n.inviteeList||[],data:n.data||"",actionType:n.actionType||eo,timeout:n.timeout||0};return t.debug(`${po} getSignalingInfo ${s(o)}`),o}addSignalingListener(e,t,s){var n,o;e===(null===(n=this._core)||void 0===n?void 0:n.SignalingEvent.NEW_INVITATION_RECEIVED)&&So.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)&&So.setSignalingListenStatus(!1),null===(o=this._core)||void 0===o||o.notificationCenter.unSubscribeOuterEvent(e,t,s)}handleInvitationExpiryTimer(e){const t=So.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 ge(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 ge(this,void 0,void 0,function*(){var t,s,n;this._core.ssoLog.debug("_sendTimeoutNotice",`${po}._sendTimeoutNotice params:${JSON.stringify(e)}`);const{isInviter:o,inviteID:i}=e,{signaling:r,signalingData:a,signalingExtensionOptions:c}=Co.createTimeoutSignaling(e),u=yield this._sendSignaling(r,c);if(0===(null==u?void 0:u.code)){const{data:e,groupID:c,inviteeList:u,inviter:l}=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:u,inviter:l,isSelfTimeout:!0,message:r}}),o?So.removeSignaling(i):So.updateSignaling(a)}})}_validateInviteId(e,t){if(!So.hasSignaling(t))throw new this._core.helper.ChatError({functionName:e,code:_o})}_validateProcessStatus(e){if(this._isProcessingSignaling)throw new this._core.helper.ChatError({functionName:e,message:"processing other signaling operations"})}_validateBeforeInvite(e){const t=co,{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=uo;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviteeList:n}=So.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=lo;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviter:n}=So.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=ho;this._validateInviteId(t,e),this._validateProcessStatus(t);const s=this._core.common.getCurrentUserID(),{inviteeList:n}=So.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=go;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 yo=new class{constructor(){this._actionProcessor=new Map([[eo,this._onNewInvitationReceived.bind(this)],[no,this._onInviteeRejected.bind(this)],[so,this._onInviteeAccepted.bind(this)],[to,this._onInvitationCancelled.bind(this)],[oo,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=fo(e);if(t){const s=this._actionProcessor.get(t.actionType);null==s||s(t,e)}})}_handleMessageReceived(e){if(!So.getSignalingListenStatus())return;const t=vo(e.data);0!==t.length&&this.handleActionSignaling(t)}_handleMessageModified(e){if(!So.getSignalingListenStatus())return;const t=vo(e.data);t.length>0&&t.forEach(e=>{const t=fo(e);t&&this._onInvitationModified(t,e)})}_onNewInvitationReceived(e,t){var s,n;const o=`${po}._onNewInvitationReceived`,{inviteID:i,inviteeList:r,groupID:a}=e,c=this._core.common.getCurrentUserID();this._core.ssoLog.debug("_onNewInvitationReceived",`${o} signalingData:${JSON.stringify(e)}}`);if(a&&!r.includes(c))return;let{timeout:u}=e;const l=Date.now()/1e3-t.time;u>0&&l>0&&u>l&&(u-=l);const d=So.getSignaling(i);d!==e&&(d||So.saveSignaling(i,Object.assign(Object.assign({},e),{signaling:t})),u>0&&(null===(s=this._core)||void 0===s||s.helper.taskScheduler.addOnceTask({id:`${mo}-${i}`,intervalMs:1e3*u,callback:Mo.handleInvitationExpiryTimer.bind(Mo,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=`${po}._onInviteeRejected`,{inviteID:n,inviter:o,groupID:i,inviteeList:r}=e,a=So.hasSignaling(n);this._core.ssoLog.debug("_onInviteeRejected",`${s} inviteID:${n} hasInviteID:${a} inviter:${o} groupID:${i}`),a&&(So.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=`${po}._onInviteeAccepted`,{inviteID:n,inviter:o,groupID:i,inviteeList:r}=e,a=So.hasSignaling(n);this._core.ssoLog.debug("_onInviteeAccepted",`${s} inviteID:${n} hasInviteID:${a} inviter:${o} groupID:${i}`),a&&(So.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=`${po}._onInvitationCancelled`,{inviteID:n,inviter:o,groupID:i}=e,r=So.hasSignaling(n);this._core.ssoLog.debug("_onInvitationCancelled",`${s} inviteID:${n} hasInviteID:${r} inviter:${o} groupID:${i}`),r&&(So.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=`${po}._onInvitationTimeout`,{inviteID:n,inviteeList:o}=e,i=So.hasSignaling(n);this._core.ssoLog.debug("_onInvitationTimeout",`${s} inviteID:${n} hasInviteID:${i} data:${e.data}`),i&&(So.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=`${po}._onInvitationModified`,{inviteID:o,data:i}=e,r=So.hasSignaling(o);this._core.ssoLog.debug("_onInvitationModified",`${n} inviteID:${o} data:${i}`),r&&(So.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 Oo=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)&&So.getSignalingListenStatus()))return;const s=vo([...t.values()]);if(0!==s.length&&(s.forEach(e=>{this._handleC2CActionType(e)}),this._offlineSignalingMap.size>0)){const e=this._sortOfflineSignalingByTime();yo.handleActionSignaling(e)}}_handleC2CActionType(e){const t=fo(e);if(!t)return;const{actionType:s}=t;s===eo?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 Ao={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}}},To={invite:!0,cancel:!0,accept:!0,reject:!0,modifyInvitation:!0};var Ro=new class{constructor(){this.name="Signaling"}install(e){Mo.init(e),yo.init(e),Co.init(e),So.init(e),Oo.init(e),e.helper.registerValidateConfig({auth:To,params:Ao})}};const Do=new class{init(e){this.core=e}};function bo(e){let t;const{message:s}=Do.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 No(e){return e.map(e=>{const{from:t,to:s,cloudCustomData:n,avatar:o,nick:i,ID:r,clientSequence:a,clientTime:c,messageRandom:u,messageSequence:l,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:u,Random:u,MsgSeq:l,MsgTimeStamp:d,ReceiverId:s,SenderId:t,To_Account:s}})}function Lo(e){var t;const{From_Account:s,From_AccountHeadurl:n,From_AccountNick:o,GroupId:i,MsgClientTime:r,ClientSeq:a,To_Account:c,MsgTimeStamp:u,TinyId:l,MsgRandom:d,MsgSeq:h}=e;return{from:s,avatar:n,nick:o,clientTime:r,time:u,tinyID:l,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 Do.core.message.messageFactory.getElementClass(t).parseServerPushElement(e)})}}var Po,Go;!function(e){e.MSG_TEXT="TIMTextElem",e.MSG_CUSTOM="TIMCustomElem",e.MSG_LOCATION="TIMLocationElem",e.MSG_FACE="TIMFaceElem",e.MSG_STREAM="TIMStreamElem"}(Po||(Po={})),function(e){e[e.FORWARD=0]="FORWARD",e[e.BACKWARD=1]="BACKWARD"}(Go||(Go={}));const wo="MSG_REACTION",Uo="MSG_EXT",ko=0,Fo=1,$o={ZH_CN:"zh (cmn-Hans-CN)",EN_US:"en-US",YUE_HK:"yue-Hant-HK",JA_JP:"ja-JP",ZH_PY:"zh-PY"},xo="16k_zh",qo="16k_en",Vo="16k_yue",Bo="16k_ja",jo="16k_zh-PY",Ho={[$o.ZH_CN]:xo,[$o.EN_US]:qo,[$o.YUE_HK]:Vo,[$o.JA_JP]:Bo,[$o.ZH_PY]:jo},Ko=/\.(wav|pcm|ogg-opus|speex|silk|mp3|m4a|aac|amr)/,Wo={READ:0,UNREAD:1},Yo=1,zo=2,Jo=3;var Qo;!function(e){e.IN="in",e.OUT="out"}(Qo||(Qo={}));const Xo=16,Zo=17;var ei;!function(e){e[e.DATA=0]="DATA",e[e.REVOKED=1]="REVOKED"}(ei||(ei={}));var ti;!function(e){e[e.NORMAL=0]="NORMAL",e[e.TIMEOUT=1]="TIMEOUT"}(ti||(ti={}));const si="StreamMsg.PushStreamHttp";var ni=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 ge(this,void 0,void 0,function*(){const{OuterConstant:s,ssoLog:n,helper:o}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:i,ID:r,conversationType:a,from:c,to:u,clientSequence:l,random:d,time:h,sequence:g}=e,p=`conversationID:${i} messageID:${r} reactionID:${t}`;try{return this._recordMessageReactedByMe(r,t),a===s.CONV_C2C?yield function(e,t){return ge(this,void 0,void 0,function*(){var s;const{from:n,to:o,clientSequence:i,random:r,time:a,reactionID:c}=e,u={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 Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_add",data:u})})}({from:c,to:u,clientSequence:l,random:d,time:h,reactionID:t},this._core):a===s.CONV_GROUP&&(yield function(e,t){return ge(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 Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_add",data:r})})}({to:u,reactionID:t,sequence:g},this._core)),{code:0,successLog:{message:p}}}catch(e){this._removeMyReactionRecord(r,t);const{errorCode:s}=e||{};throw new o.ChatError({functionName:"addMessageReaction",code:s,moreMessage:p})}})}removeMessageReaction(e,t){return ge(this,void 0,void 0,function*(){const{OuterConstant:s,helper:n}=this._core;this._validateMessageReactionBusinessCapability();const{conversationID:o,ID:i,conversationType:r,from:a,to:c,clientSequence:u,random:l,time:d,sequence:h}=e,g=`conversationID:${o} messageID:${i} reactionID:${t}`;try{return this._removeMyReactionRecord(i,t),r===s.CONV_C2C?yield function(e,t){return ge(this,void 0,void 0,function*(){var s;const{from:n,to:o,clientSequence:i,random:r,time:a,reactionID:c}=e,u={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 Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_del",data:u})})}({from:a,to:c,clientSequence:u,random:l,time:d,reactionID:t},this._core):r===s.CONV_GROUP&&(yield function(e,t){return ge(this,void 0,void 0,function*(){var s;const{to:n,reactionID:o,sequence:i}=e,r={GroupId:n,MsgSeq:i,Reaction:o,Del_Account:[null===(s=t.store.get("login"))||void 0===s?void 0:s.userId]};return Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_del",data:r},t)})}({to:c,reactionID:t,sequence:h},this._core)),{code:0,successLog:{message:g}}}catch(e){const{errorCode:t}=e||{};throw new n.ChatError({functionName:"removeMessageReaction",code:t,moreMessage:g})}})}getAllUserListOfMessageReaction(e){return ge(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:a,constants:c}=this._core;try{let e=null;if(e=i.startsWith(c.OuterConstant.CONV_C2C)?yield function(e){return ge(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:u}=t,l={Reaction:n,NextSeq:s,Count:o,From_Account:i,To_Account:r,MsgKey:`${a}_${c}_${u}`};return Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_iterate",data:l})})}({message:t,reactionID:s,nextSeq:n,count:o}):yield function(e){return ge(this,void 0,void 0,function*(){const{message:t,nextSeq:s,reactionID:n,count:o}=e,{sequence:i,to:r}=t,a={Reaction:n,NextSeq:s,GroupId:r,Count:o,MsgSeq:i};return Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_iterate",data:a})})}({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||{};throw new a.ChatError({functionName:"getAllUserListOfMessageReaction",code:t})}})}getMessageReactions(e){return ge(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:a,to:c,conversationType:u}=o,l=this._generateMessageKeyList(s,r);u===t.OuterConstant.CONV_C2C?i=yield function(e){return ge(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 Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.reaction_multi_stat",data:i})})}({from:a,to:c,messageKeyList:l,maxUserCountPerReaction:n}):u===t.OuterConstant.CONV_GROUP&&(i=yield function(e){return ge(this,void 0,void 0,function*(){const{groupId:t,messageSequenceList:s,maxUserCountPerReaction:n}=e,o={GroupId:t,MsgSeqList:s,Count:n};return Do.core.common.buildAndSendPacket({servcmd:"openim_msg_ext_http_svc.group_reaction_multi_stat",data:o})})}({groupId:c,messageSequenceList:l,maxUserCountPerReaction:n}));const{Results:d=[]}=i||{},h=this._extractUserIDsFromReactionResults(d),g=yield this._getUserProfileMap(h);return{code:0,data:{resultList:d.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:g}),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 ge(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 ge(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(wo))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=>ge(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),u=`${r}-${a}-${c}`,l=this._extractUserIDsFromReactionResults([{ReactionList:i}]),d=yield this._getUserProfileMap(l),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(`${u}-${s}`))||void 0===t?void 0:t.reactedByMe)||!1;return this._recordMessageReactionInfo({messageID:u,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:u,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:u=0,MsgRandom:l=0}=Object.assign(Object.assign({},o),i),d=`${c}-${u}-${l}`,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 oi=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 ge(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 ge(this,void 0,void 0,function*(){const{common:t,constants:s}=Do.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 ge(this,void 0,void 0,function*(){const{common:t,constants:s}=Do.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 ge(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 ge(this,void 0,void 0,function*(){const{common:t,constants:s}=Do.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 ge(this,void 0,void 0,function*(){const{constants:t,common:s}=this._core,{message:n,filter:o=Wo.READ,cursor:i=""}=e,{conversationID:r,sequence:a,ID:c}=n,u=r.replace(t.OuterConstant.CONV_GROUP,""),l=e.count>=100?100:e.count;try{const e=yield function(e){return ge(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 Do.core.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_msg_receipt_detail",data:r})})}({groupID:u,sequence:a,filter:o,cursor:i,count:l});if(e){const{Cursor:t,IsFinish:s,UnreadList:n,ReadList:i}=e,r={cursor:t,isCompleted:1===s,messageID:c,unreadUserIDList:[],readUserIDList:[]};return o===Wo.READ?r.readUserIDList=i.map(e=>e.Read_Account):o===Wo.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}`,u=bo({conversationID:a,messageID:c});u&&!u.readReceiptInfo.isPeerRead&&(u.readReceiptInfo.isPeerRead=!0,u.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,u=`${s}-${n}-${r}`,l=bo({conversationID:i,messageID:u}),d={groupID:o,messageID:u,readCount:0,unreadCount:0};l&&("number"==typeof a&&(l.readReceiptInfo.readCount=a,d.readCount=a),"number"==typeof c&&(l.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)}};function ii(e,t,s){return ge(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:n}}=Do.core,{from:o,to:i,clientSequence:r,random:a,time:c}=e;return n({servcmd:"openim_msg_ext_http_svc.set_key_values",data:{From_Account:o,To_Account:i,MsgKey:`${r}_${a}_${c}`,OperateType:s,ExtensionList:t}})})}function ri(e,t,s){return ge(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:n}}=Do.core,{to:o,sequence:i}=e;return n({servcmd:"openim_msg_ext_http_svc.group_set_key_values",data:{GroupId:o,MsgSeq:i,OperateType:s,ExtensionList:t}})})}var ai=new class{constructor(){this._messageExtensionsMap=new Map,this._extensionsLatestSequenceMap=new Map,this._completedFetchExtensions=new Set}init(e){this._core=e;const{notificationCenter:t,helper:{registerApi:s},InnerEvent:{MESSAGE_PUSH:n,LOGOUT:o},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:i}}=e;s({apiName:"setMessageExtensions",context:this}),s({apiName:"getMessageExtensions",context:this}),s({apiName:"deleteMessageExtensions",context:this}),t.subscribeInnerEvent(n,i,this._handleMessageExtensionsNotify,this),t.subscribeInnerEvent(o,this.reset,this)}setMessageExtensions(e,t){return ge(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("setMessageExtensions");const{constants:{OuterConstant:s},ssoLog:n}=this._core,{ID:o,conversationID:i,sequence:r,time:a,conversationType:c}=e;let u=t;t.length>20&&(u=t.slice(0,20),n.warn("setMessageExtensions","the length of extensions cannot exceed 20"));const l=this._generateServerExtensions(e,u),d=`convID:${i} messageID:${o} sequence:${r} time:${a} count:${u.length}`;try{let t;if(c===s.CONV_C2C?t=yield ii(e,l,Yo):c===s.CONV_GROUP&&(t=yield ri(e,l,Yo)),t){const{resultList:s,successCount:n,failureCount:o}=this._handleModifyMessageExtensions(e,t);return{code:0,data:{extensions:s},successLog:{message:`${d} successCount:${n} failCount:${o}`}}}return{code:0,data:{extensions:[]}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"setMessageExtensions",code:t,moreMessage:d})}})}getMessageExtensions(e){return ge(this,void 0,void 0,function*(){const{utils:{isUndefined:t}}=this._core;this._validateMessageExtensionBusinessCapability("getMessageExtensions");const{conversationID:s,ID:n,sequence:o,time:i}=e,r=`convID:${s} messageID:${n} sequence:${o} time:${i}`;try{let s;this._completedFetchExtensions.has(n)&&(s=this._extensionsLatestSequenceMap.get(n));const o=yield this._fetchMessageExtensions(e,s);return t(s)&&o.length>1&&this._completedFetchExtensions.add(n),{code:0,data:{extensions:o},successLog:{message:r}}}catch(e){const{errorCode:t,errorInfo:s=""}=e||{};throw new this._core.common.ChatError({code:t,message:s,moreMessage:r})}})}deleteMessageExtensions(e,t){return ge(this,void 0,void 0,function*(){this._validateMessageExtensionBusinessCapability("deleteMessageExtensions");const{utils:{isEmpty:s},constants:{OuterConstant:n}}=this._core,{conversationType:o,conversationID:i,sequence:r,ID:a,time:c}=e;let u=Jo;const l=[];s(t)||(u=zo,null==t||t.forEach(e=>{l.push({key:e,value:"",seq:0})}));const d=`convID:${i} messageID:${a} sequence:${r} time:${c} operateType:${u}`,h=this._generateServerExtensions(e,l);try{let t;if(o===n.CONV_C2C?t=yield ii(e,h,u):o===n.CONV_GROUP&&(t=yield ri(e,h,u)),t){const{resultList:s,successCount:n,failureCount:o}=this._handleModifyMessageExtensions(e,t);return{code:0,data:{extensions:s},successLog:{message:`${d}successCount:${n} failCount:${o}`}}}return{code:0,data:{extensions:[]}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"deleteMessageExtensions",code:t,moreMessage:d})}})}reset(){this._messageExtensionsMap.clear(),this._extensionsLatestSequenceMap.clear(),this._completedFetchExtensions.clear()}dispose(){this.reset();const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t,LOGOUT:s},InnerEventSubType:{MESSAGE_EXTENSIONS_UPDATED:n}}=this._core;e.unSubscribeInnerEvent(t,n,this._handleMessageExtensionsNotify,this),e.subscribeInnerEvent(s,this.reset,this)}_handleModifyMessageExtensions(e,t){const{ID:s}=e,{Seq:n}=t,o=t.ExtensionList||[],i=[];let r=0,a=0,c=[];return o.forEach(e=>{const{ErrorCode:t,Extension:s}=e,{Key:n,Value:o,Seq:u}=s;i.push({code:t,key:n,value:o}),0===t?r++:a++,c.push({key:n,value:o,seq:u})}),this._extensionsLatestSequenceMap.set(s,n),c.length>0&&this._updateLocalExtensions(e.ID,c),{resultList:i,successCount:r,failureCount:a}}_updateLocalExtensions(e,t){this._messageExtensionsMap.has(e)||this._messageExtensionsMap.set(e,new Map);const s=this._messageExtensionsMap.get(e);null==t||t.forEach(e=>{const{key:t,seq:n,value:o=""}=e;null==s||s.set(t,{value:o,seq:n})})}_fetchMessageExtensions(e,t){return ge(this,void 0,void 0,function*(){const{constants:{OuterConstant:s},utils:{isEmpty:n}}=this._core;try{let o;const{conversationType:i,ID:r}=e;if(i===s.CONV_C2C?o=yield function(e,t){const{common:{buildAndSendPacket:s}}=Do.core,{from:n,to:o,clientSequence:i,random:r,time:a}=e;return s({servcmd:"openim_msg_ext_http_svc.get_key_values",data:{From_Account:n,To_Account:o,MsgKey:`${i}_${r}_${a}`,StartSeq:t}})}(e,t):i===s.CONV_GROUP&&(o=yield function(e,t){const{common:{buildAndSendPacket:s}}=Do.core,{to:n,sequence:o}=e;return s({servcmd:"openim_msg_ext_http_svc.group_get_key_values",data:{GroupId:n,MsgSeq:o,StartSeq:t}})}(e,t)),o){const{LatestSeq:t,ClearSeq:s,CompleteFlag:i}=o,a=(o.ExtensionList||[]).map(e=>({key:e.Key,value:e.Value,seq:e.Seq}));if(this._updateLocalExtensions(r,a),this._clearLocationExtensions(r,s),this._extensionsLatestSequenceMap.set(r,t),1!==i){const t=a[a.length-1].seq+1;return this._fetchMessageExtensions(e,t)}const c=[];if(this._messageExtensionsMap.has(r)){const e=this._messageExtensionsMap.get(r);null==e||e.forEach((e,t)=>{const{value:s}=e;n(s)||c.push({key:t,value:s})})}return c}}catch(e){throw e}})}_clearLocationExtensions(e,t){if(!(t<=0)&&this._messageExtensionsMap.has(e)){const s=this._messageExtensionsMap.get(e);null==s||s.forEach((e,n)=>{e.seq<=t&&s.delete(n)})}}_generateServerExtensions(e,t){const{ID:s}=e;if(this._messageExtensionsMap.has(s)){const e=this._messageExtensionsMap.get(s);return t.map(t=>{var s;const{key:n,value:o}=t;let i=0;return(null==e?void 0:e.has(n))&&(i=null===(s=e.get(n))||void 0===s?void 0:s.seq),{Key:n,Value:o,Seq:i}})}return t.map(e=>({Key:e.key,Value:e.value,Seq:0}))}_validateMessageExtensionBusinessCapability(e){const{helper:t,constants:s}=this._core;if(!t.checkBusinessCapabilityBits(Uo))throw new t.ChatError({functionName:e,code:s.ERROR_CODE.NO_USE,replacement1:e})}_handleMessageExtensionsNotify(e){const{SetKVInfo:t,DeleteKVInfo:s,ClearKVInfo:n,MsgOptType:o,TinyId:i,MsgLastSeq:r,ExtensionC2cMsgInfo:a,ExtensionGroupMsgInfo:c}=(null==e?void 0:e.MsgExtensionNotify)||{},u=a||c||{},{MsgClientTime:l,MsgRandom:d}=u,h=`${i}-${l}-${d}`;this._extensionsLatestSequenceMap.set(h,r),o===Yo?this._handleMessageExtensionsUpdated({messageID:h,updateMessageExtensionsInfo:t}):o===zo?this._handleMessageExtensionsDeleted({messageID:h,deleteMessageExtensionsInfo:s}):o===Jo&&this._handleMessageExtensionsCleared({messageID:h,clearMessageExtensionsInfo:n})}_handleMessageExtensionsUpdated(e){const{notificationCenter:t,OuterEvent:s}=this._core,{messageID:n,updateMessageExtensionsInfo:o=[]}=e,i=[];o.forEach(e=>{const{MsgKeyValue:t=[]}=e,s=t.map(e=>(i.push({key:e.Key,value:e.Value}),{key:e.Key,value:e.Value,seq:e.Seq}));this._updateLocalExtensions(n,s)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_UPDATED,{name:s.MESSAGE_EXTENSIONS_UPDATED,data:{messageID:n,extensions:i}})}_handleMessageExtensionsDeleted(e){const{notificationCenter:t,OuterEvent:s}=this._core,{messageID:n,deleteMessageExtensionsInfo:o=[]}=e,i=[];o.forEach(e=>{const{MsgKeyValue:t=[]}=e,s=t.map(e=>(i.push(e.Key),{key:e.Key,seq:e.Seq}));this._updateLocalExtensions(n,s)}),t.emitOuterEvent(s.MESSAGE_EXTENSIONS_DELETED,{name:s.MESSAGE_EXTENSIONS_DELETED,data:{messageID:n,keyList:i}})}_handleMessageExtensionsCleared(e){const{notificationCenter:t,OuterEvent:{MESSAGE_EXTENSIONS_DELETED:s},utils:{isEmpty:n}}=this._core,{messageID:o,clearMessageExtensionsInfo:i=[]}=e,r=[];i.forEach(e=>{const{ClearMsgSeq:t}=e;if(this._messageExtensionsMap.has(o)){(this._messageExtensionsMap.get(o)||[]).forEach((e,s)=>{e.seq<=t&&!n(e.value)&&r.push(s)})}this._clearLocationExtensions(o,t)}),t.emitOuterEvent(s,{name:s,data:{messageID:o,keyList:r}})}};const ci={key:"message",required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const{constants:{OuterConstant:t}}=Do.core;return e.status!==t.MessageStatus.SUCCESS?"message is not success":!0===e.isSupportExtension||"message is not support extension"}},ui={setMessageExtensions:[ci,{key:"extensions",required:!0,rules:["array"],allowEmpty:!1}],getMessageExtensions:[ci],deleteMessageExtensions:[ci]},li=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:[{required:!0,rules:["array"],allowEmpty:!1}],revokeMessage:[{required:!0,rules:["object"],allowEmpty:!1}],resendMessage:[{key:"message",required:!0,rules:["object"],allowEmpty:!1},{key:"options",required:!1,rules:["object"],allowEmpty:!1}],getMessageList:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},nextReqMessageID:{required:!1,rules:["string"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},getMessageListHopping:{conversationID:{required:!0,rules:["string"],allowEmpty:!1},sequence:{required:!1,rules:["number"],allowEmpty:!0},direction:{required:!1,rules:["number"],allowEmpty:!0},count:{required:!1,rules:["number"],allowEmpty:!0}},createTextAtMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const t=function(e){var t;if("string"!=typeof(null==e?void 0:e.text)||"string"==typeof e.text&&0===(null===(t=null==e?void 0:e.text)||void 0===t?void 0:t.length))return"payload.text is invalid.";return!0}(e);return!0!==t?t:!((null==e?void 0:e.atUserList)&&!Array.isArray(e.atUserList))||"atUserList should be an array or undefind."}}},findMessage:[{required:!0,rules:["string"],allowEmpty:!1}],translateText:{sourceTextList:{required:!0,rules:["array"],allowEmpty:!1},sourceLanguage:{required:!0,rules:["string"],allowEmpty:!1},targetLanguage:{required:!0,rules:["string"],allowEmpty:!1}},createForwardMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!(!e.startsWith("C2C")&&!e.startsWith("GROUP"))||"conversationType is invalid."},payload:{required:!0,rules:["object"],allowEmpty:!1}},createLocationMessage:{to:{required:!0,rules:["string"],allowEmpty:!1},conversationType:{required:!0,rules:["string"],allowEmpty:!1},payload:{required:!0,rules:["object"],allowEmpty:!1,customValidator:e=>{const{utils:{isString:t,isNumber:s}}=Do.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}}}),ui),{pinGroupMessage:{groupID:{required:!0,rules:["string"],allowEmpty:!1},message:{required:!0,rules:["object"],allowEmpty:!1},isPinned:{required:!0,rules:["boolean"],allowEmpty:!1}},getPinnedGroupMessageList:[{key:"groupID",required:!0,rules:["string"],allowEmpty:!1}]}),di=Object.assign(Object.assign(Object.assign(Object.assign({deleteMessage:!0,revokeMessage:!0,resendMessage:!0,getMessageList:!0,getMessageListHopping:!0,createTextAtMessage:!0,findMessage:!0,translateText:!0,createForwardMessage:!0,createLocationMessage:!0},{addMessageReaction:!0,removeMessageReaction:!0,getMessageReactions:!0,getAllUserListOfMessageReaction:!0}),{sendMessageReadReceipt:!0,getMessageReadReceiptList:!0,getGroupMessageReadMemberList:!0}),{setMessageExtensions:!0,getMessageExtensions:!0,deleteMessageExtensions:!0}),{pinGroupMessage:!0,getPinnedGroupMessageList:!0});class hi{constructor(e){this._core=e}deleteMessage(e){return ge(this,void 0,void 0,function*(){const{to:t,messageIdentifiers:s}=e,n={From_Account:this._core.common.getCurrentUserID(),To_Account:t,MsgKeyList:s};return this._core.common.buildAndSendPacket({servcmd:"openim.delete_c2c_msg_ramble",data:n})})}revokeMessage(e){return ge(this,void 0,void 0,function*(){const{to:t,from:s,sequence:n,time:o,random:i}=e,r={MsgInfo:{From_Account:s,To_Account:t,MsgSeq:n,MsgRandom:i,MsgTimeStamp:o}};return this._core.common.buildAndSendPacket({servcmd:"openim.msgwithdraw",data:r})})}}class gi{constructor(e){this._core=e}deleteMessage(e){return ge(this,void 0,void 0,function*(){const{to:t,messageIdentifiers:s}=e,n={GroupId:t,Deleter_Account:this._core.common.getCurrentUserID(),Seqs:s};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_ramble_msg_by_seq",data:n})})}revokeMessage(e){return ge(this,void 0,void 0,function*(){const{to:t,sequence:s}=e,n={GroupId:t,MsgSeqList:[{MsgSeq:s}]};return this._core.common.buildAndSendPacket({servcmd:"group_open_http_svc.group_msg_recall",data:n})})}}const pi=2116;class _i{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:u}=this._core.message;return c=u.revokeMessage({conversationID:t,sequence:s,random:n,revoker:a}),c||(c={conversationID:t,sequence:s},o&&i&&n&&(c.ID=`${o}-${i}-${n}`)),c.revoker=a,c.revokeReason=r,c.revokerInfo={userID:a,nick:"",avatar:""},c}updateRevokerInfo(e){return ge(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)}})}_fetchUserInfos(e){return ge(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 mi=new class{constructor(){this._core=null,this._c2cMessageAction=null,this._groupMessageAction=null}init(e){this._core=e,this._groupMessageAction=new gi(e),this._c2cMessageAction=new hi(e),this._messageHelper=new _i(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 ge(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:pi});if(e.forEach(e=>{const{conversationID:i,conversationType:r,status:a,_onlineOnlyFlag:c,sequence:u,random:l,time:d}=e||{};if("success"===a&&i===n&&r===o){if(!c){const e="C2C"===r?`${u}_${l}_${d}`:String(u);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 ge(this,void 0,void 0,function*(){var t;const{conversationType:s,isRevoked:n,ID:o,type:i,from:r,to:a}=e;let c=null;const u=`type:${i} from:${r} to:${a} ID:${o}`;if("@TIM#SYSTEM"===s)throw new this._core.helper.ChatError({message:"system message cannot be revoked"});if(n)throw new this._core.helper.ChatError({message:"message has been revoked",moreMessage:u});try{if(c="C2C"===s?yield this._c2cMessageAction.revokeMessage(e):yield this._groupMessageAction.revokeMessage(e),c){const{RecallRetList:s}=c,n=(null===(t=null==s?void 0:s[0])||void 0===t?void 0:t.RetCode)||0;if(0!==n)throw new this._core.helper.ChatError({code:n,moreMessage:u});return e.isRevoked=!0,yield this._handleRevokeMessageSuccess(e),{code:0,data:{message:e},successLog:{message:u}}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"revokeMessage",code:t,moreMessage:u})}})}resendMessage(e,t){return ge(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){if(0===e.length)return;const{message:{messageDataHandler:t},common:{isTopic:s},notificationCenter:n,InnerEvent:o}=this._core;e.forEach(e=>{e.isDeleted=!0;const s=t.getLocalMessageList(e.conversationID);null==s||s.forEach(t=>{t.ID===e.ID&&(t.isDeleted=!0)})});const{conversationID:i=""}=e[0];s(i)?n.emitInnerEvent(o.TOPIC_MESSAGE_DELETED,i):n.emitInnerEvent(o.MESSAGE_DELETED,i)}_handleRevokeMessageSuccess(e){return ge(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 vi{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Index:s,Data:n}=t;return new vi({index:s,data:n})}constructor(e){this.type=Po.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 fi{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Desc:s,Longitude:n,Latitude:o}=t;return new fi({description:s,longitude:n,latitude:o})}constructor(e){this.type=Po.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}}}}class Ii{static parseServerPushElement(e){const{MsgContent:t={}}=e,{StreamMsgID:s,CompatibleText:n,Markdown:o,BinaryData:i,ErrorCode:r,ErrorMsg:a}=t;return new Ii({streamMessageID:s,compatibleText:n,markdown:o,binaryData:i,errorCode:r,errorMessage:a})}constructor(e){this.type=Po.MSG_STREAM,this.content={streamMessageID:"",compatibleText:"",errorCode:0,errorMessage:"",isStreamEnded:!1},this._chunks=[],this._latestIndex=0;const{streamMessageID:t,compatibleText:s,markdown:n,binaryData:o,errorCode:i=0,errorMessage:r="",isStreamEnded:a=!1}=e;this.content.streamMessageID=t,this.content.compatibleText=s,this.content.markdown=n,this.content.binaryData=o,this.content.errorCode=i,this.content.errorMessage=r,this.content.isStreamEnded=a}updateChunks(e){if(!e||0===e.length)return;const t=e.sort((e,t)=>e.index-t.index),s=this._getMaxRevokedChunkIndex(t);s>=0&&(this._chunks=[],this._latestIndex=s,this._updateContent());const n=this._getValidChunks(t);if(0!==n.length&&(this._mergeAndSortChunks(n),this._chunks.length>0)){const e=this._chunks[this._chunks.length-1];this._latestIndex=e.index,this._updateContent(),this.content.isStreamEnded=e.isLast}}getLatestIndex(){return this._latestIndex}_filterContinuousChunks(e,t){if(0===e.length)return[];const s=[];let n=t;for(const t of e){if(t.index>n)break;t.index===n&&(s.push(t),n++)}return s}_mergeAndSortChunks(e){const t=new Map;this._chunks.forEach(e=>{t.set(e.index,e)}),e.forEach(e=>{t.set(e.index,e)}),this._chunks=Array.from(t.values()).sort((e,t)=>e.index-t.index)}_updateContent(){this.content.markdown=this._chunks.map(e=>e.markdown).join("");const e=this._chunks.map(e=>e.binaryData).filter(e=>(null==e?void 0:e.length)>0);if(0===e.length)this.content.binaryData=new Uint8Array(0);else if(1===e.length)this.content.binaryData=e[0];else{const t=e.reduce((e,t)=>e+t.length,0),s=new Uint8Array(t);let n=0;for(const t of e)s.set(t,n),n+=t.length;this.content.binaryData=s}}_getMaxRevokedChunkIndex(e){let t=-1;for(let s=0;s<e.length;s++){const n=e[s];n.eventType===ei.REVOKED&&n.index>t&&(t=n.index)}return t}_getValidChunks(e){const t=e.filter(e=>e.eventType===ei.DATA&&e.index>this._latestIndex);return this._filterContinuousChunks(t,this._latestIndex+1)}}var Ei=new class{init(e){this._core=e,e.message.messageFactory.registerElementClass(Po.MSG_FACE,vi),e.message.messageFactory.registerElementClass(Po.MSG_LOCATION,fi),e.message.messageFactory.registerElementClass(Po.MSG_STREAM,Ii),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 vi({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:ko,GroupAt_Account:t}),o.push(t)):(e.push({GroupAtAllFlag:Fo}),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:u="",isSupportExtension:l=!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:l,cloudCustomData:u,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 fi({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 Si=class{init(e){this._messageHelper=new _i(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 ge(this,void 0,void 0,function*(){try{const{WithdrawC2cMsgNotify:{C2cWithdrawInfoArray:t}}=e;yield this._parseAndEmitC2CRevokedMessages(t)}catch(e){console.debug(e)}})}_parseAndEmitC2CRevokedMessages(e){return ge(this,void 0,void 0,function*(){const t=[],{notificationCenter:s,OuterEvent:n,common:{getCurrentUserID:o}}=this._core;e.forEach(e=>{var s;const{MsgRand:n,MsgSeq:i,To_Account:r,From_Account:a,RevokerInfo:{Revoker_Account:c,Revoke_Reason:u}}=e,l=o()===a?`C2C${r}`:`C2C${a}`,d=(null===(s=null==e?void 0:e.RevokerInfo)||void 0===s?void 0:s.Reason)||u,h=this._messageHelper.generateRevokeMessage({conversationID:l,sequence:i,random:n,revoker:c,revokeReason:d});t.push(h)}),t.length>0&&(yield this._messageHelper.updateRevokerInfo(t),s.emitOuterEvent(n.MESSAGE_REVOKED,{name:n.MESSAGE_REVOKED,data:t}))})}_handleC2CRevokeMessagesFromUnreadMessageSync(e){return ge(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)}},Ci=class{init(e){this._messageHelper=new _i(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 ge(this,void 0,void 0,function*(){try{const{RevokerInfo:t,MsgBody:{GroupWithdrawInfoArray:s},GroupInfo:n}=e,o=[],i=[],{notificationCenter:r,OuterEvent:a,utils:{isEmpty:c},common:{isCommunity:u}}=this._core;let l=!1;n&&(l=u({groupID:n.GroupId})||!c(n.TopicId)),s.forEach(e=>{const{Random:s,MsgSeq:r,GroupId:a,MsgClientTime:c,TinyId:u,TopicId:d,RevokerInfo:{Revoker_Account:h=(null==t?void 0:t.Revoker_Account)||"",Reason:g=(null==t?void 0:t.Reason)||""}}=e,p=d?`GROUP${d}`:`GROUP${a}`,_=this._messageHelper.generateRevokeMessage({conversationID:p,sequence:r,random:s,tinyID:u,clientTime:c,revoker:h,revokeReason:g});l?(_.revokerInfo.nick=n.From_AccountNick,_.revokerInfo.avatar=n.From_AccountHeadurl,o.push(_)):i.push(_)}),i.length>0&&(yield this._messageHelper.updateRevokerInfo(i),o.push(...i)),0!==o.length&&r.emitOuterEvent(a.MESSAGE_REVOKED,{name:a.MESSAGE_REVOKED,data:o})}catch(e){console.debug(e)}})}dispose(){const{notificationCenter:e,InnerEvent:{MESSAGE_PUSH:t},InnerEventSubType:{GROUP_MESSAGE_REVOKED:s}}=this._core;e.unSubscribeInnerEvent(t,s,this._handleGroupNotifyMessage,this)}};var Mi=new class{constructor(){this._c2cMessageReceiver=new Si,this._groupMessageReceiver=new Ci}init(e){this._c2cMessageReceiver.init(e),this._groupMessageReceiver.init(e)}dispose(){this._c2cMessageReceiver.dispose(),this._groupMessageReceiver.dispose()}};var yi=new class{constructor(){this._core=null}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"translateText",context:this})}translateText(e){return ge(this,void 0,void 0,function*(){try{const{sourceLanguage:t,sourceTextList:s,targetLanguage:n}=e,o=yield function(e,t){return ge(this,void 0,void 0,function*(){var s,n;const{sourceTextList:o,sourceLanguage:i,targetLanguage:r}=e,{store:a,common:c}=t,u={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},l=yield c.buildAndSendPacket({servcmd:"im_open_translate.ws_batch_trans_text",data:u});if(l){const{CmdErrorCode:e,TargetText:t}=l;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 Oi=new class{init(e){this._core=e,e.helper.registerApi({apiName:"convertVoiceToText",context:this})}convertVoiceToText(e){return ge(this,void 0,void 0,function*(){var t;const{message:s,language:n=$o.ZH_PY}=e;let{url:o}=s.payload||{};const i=this._core.common.getCurrentUserID();s.from===i&&"out"===s.flow&&(o=s.payload.remoteAudioUrl),this._validateVoiceFormat(o);const r=(null===(t=Ko.exec(o))||void 0===t?void 0:t[1])||"mp3",a=Ho[n]||jo;try{const e=yield function(e){var t;const{store:s,common:n}=Do.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:o,format:r,serverLanguageType:a});if(e){const{CmdErrorCode:t,BytesResult:s}=e;if(0===t.ErrorCode)return{code:0,data:{result:s}};throw{code:t.ErrorCode,message:t.ErrorInfo}}}catch(e){const{code:t,message:s}=e||{};throw new this._core.common.ChatError({functionName:"convertVoiceToText",code:t,message:s})}})}_validateVoiceFormat(e){if(!Ko.test(e))throw new this._core.common.ChatError({code:2119})}};class Ai{constructor(e){const{constants:t,common:s,utils:n}=Do.core,{CONV_C2C:o,CONV_GROUP:i}=t.OuterConstant,{ID:r,tinyID:a,from:c,to:u,clientTime:l=s.timeManager.getServerTimeSeconds()||0,random:d,sequence:h,cloudCustomData:g="",nick:p="",avatar:_="",clientSequence:m,conversationType:v,groupID:f,_elements:I,time:E}=e;this.ID=r||`${a}-${l}-${d}`,this.messageRandom=d,this.from=c,this.messageSender=c,this.time=E,this.messageSequence=h,this.clientSequence=m||h,this.clientTime=l,this.cloudCustomData=g,this.messageReceiver=u,this.avatar=_,this.nick=p;const S=n.deepCopyWithMethods(I);S.forEach(e=>{e.payload=e.content,delete e.content}),this.messageBody=S,r?v.startsWith(o)?this.receiverUserID=u:v.startsWith(i)&&(this.receiverGroupID=u):f?(this.receiverGroupID=f,this.messageReceiver=f):u&&(this.receiverUserID=u,this.messageReceiver=u)}transformElementsToServerFormat(){return this.messageBody?Array.isArray(this.messageBody)?this.messageBody.map(e=>e.transformToServerFormat({isMergerMessage:!0})):this.messageBody.transformToServerFormat({isMergerMessage:!0}):null}}class Ti{static parseServerPushElement(e){const{MsgContent:t}=e,{MsgList:s=[],CompatibleText:n,AbstractList:o,Title:i,PbMsgKey:r,JsonMsgKey:a}=t||{},c=s.map(e=>Lo(e));return new Ti({messageList:c,title:i,abstractList:o,compatibleText:n,pbDownloadKey:r,downloadKey:a})}constructor(e){this.type=Do.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,u=[];t.forEach(e=>{if(e){const t=new Ai(e);u.push(t)}}),this.content={messageList:u,title:s,abstractList:n,compatibleText:o,version:a,downloadKey:r,pbDownloadKey:i,layersOverLimit:c}}validateBeforeSend(){const{isEmpty:e}=Do.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:u,messageList:l}=s;return{MsgType:this.type,MsgContent:{AbstractList:n,CompatibleText:o,JsonMsgKey:i,LayersOverLimit:r,PbMsgKey:a,Title:c,Version:u,MsgList:No(l)}}}}var Ri=new class{init(e){this._core=e;const{message:t,helper:s,constants:{OuterConstant:n}}=e;t.messageFactory.registerElementClass(n.MSG_MERGER,Ti),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 Ti(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 ge(this,void 0,void 0,function*(){var s,n,o;try{const i=function(e){let t="utf-8";Do.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,a=null;if(i>11264){r=this._core.utils.deepCopyWithMethods(e);try{const{JsonMsgKey:e,PbMsgKey:t}=yield function(e){return ge(this,void 0,void 0,function*(){const{payload:{messageList:t}}=e,s={MsgList:No(t)};return Do.core.common.buildAndSendPacket({servcmd:"im_long_msg.save_relay_json_msg",data:s})})}(r),{payload:s}=r;a=new Ti(Object.assign(Object.assign({},s),{messageList:[],downloadKey:e,pbDownloadKey:t})),r.setElement(a)}catch(e){console.error(e)}}const{data:{message:c}}=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 a&&c.setElement(e._elements),{code:0,data:{message:c}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({code:t})}})}downloadMergerMessage(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t}=this._core,s=e.payload,{downloadKey:n,pbDownload:o,type:i,messageList:r}=s,a=he(s,["downloadKey","pbDownload","type","messageList"]);try{const s=yield function(e){return ge(this,void 0,void 0,function*(){return Do.core.common.buildAndSendPacket({servcmd:"im_long_msg.get_relay_json_msg",data:{JsonMsgKey:e}})})}(n),{MsgList:o}=s||{},i=null==o?void 0:o.map(e=>{const t=Lo(e);return new Ai(t)});return"function"==typeof e.isOnlineMessage?e.setElement({type:e.type,content:Object.assign({messageList:i},a)}):(e.payload.messageList=i,e.payload.downloadKey="",e.payload.pbDownloadKey=""),t.info("downloadMergerMessage",` success downloadKey:${n}`),e}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"downloadMergerMessage",code:t,moreMessage:n})}})}};var Di=new class{init(e){this._core=e,this._core.helper.registerExperimentalAPI("sendComboMessage",this)}sendComboMessage(e){return ge(this,void 0,void 0,function*(){const{appStore:t,message:s,common:{getCurrentUserID:n},utils:{isArray:o}}=this._core,{GroupId:i,To_Account:r}=e;e.From_Account=e.From_Account||n();let a=null;if(i){a=this._generateGroupMessage(Object.assign(Object.assign({},e),{ToGroupId:i}));const s=t.userStore.getUserProfile(n());a.level=(null==s?void 0:s.level)||0,o(r)&&r.length>0&&(a._receiverList=r)}else r&&(a=this._generateC2CMessage(e));return s.messageSender.sendMessage(a,e)})}_generateC2CMessage(e){const{message:t,OuterConstant:{CONV_C2C:s}}=this._core,n=s,o=t.messageHelper.parseServerPushMessage(e),i=t.messageFactory.createMessage(Object.assign(Object.assign({},o),{conversationType:n,flow:Qo.OUT})),{elements:r}=o;return i.setElement(r),i}_generateGroupMessage(e){const{message:t,OuterConstant:{CONV_GROUP:s}}=this._core,n=s,o=t.messageHelper.parseServerGroupMessage(e),i=t.messageFactory.createMessage(Object.assign(Object.assign({},o),{conversationType:n,flow:Qo.OUT})),{elements:r}=o;return i.setElement(r),i}};var bi=new class{init(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:{MESSAGE_PUSH:n},InnerEventSubType:{GROUP_MESSAGE_PINNED:o}}=e;s.subscribeInnerEvent(n,o,this._handleGroupMessagePinned,this),t.registerApi({apiName:"pinGroupMessage",context:this}),t.registerApi({apiName:"getPinnedGroupMessageList",context:this})}pinGroupMessage(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,common:{isTopic:s},OuterConstant:{GROUP_ID_PREFIX:n},helper:{ChatError:o}}=this._core;let{groupID:i,message:r,isPinned:a}=e;const{sequence:c}=r;try{return yield function(e){return ge(this,void 0,void 0,function*(){const{common:{buildAndSendPacket:t,getCurrentUserID:s}}=Do.core,{groupID:n,sequence:o,isPinned:i}=e,r=s(),a=i?"group_open_http_svc.pin_message":"group_open_http_svc.unpin_message",c={GroupId:n,MsgSeq:o};return i?c.Pinner_Account=r:c.UnPinner_Account=r,t({servcmd:a,data:c})})}({groupID:i,sequence:c,isPinned:a}),{code:0,data:{}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};throw new o({code:t,message:s})}})}getPinnedGroupMessageList(e){return ge(this,void 0,void 0,function*(){let t=[];try{const s=yield function(e){return ge(this,void 0,void 0,function*(){const{groupID:t}=e,{common:{buildAndSendPacket:s}}=Do.core;return s({servcmd:"group_open_http_svc.get_pinned_messages",data:{GroupId:t}})})}({groupID:e});if(s){const{PinnedMsgList:n=[]}=s;t=yield this._updatePinnedMessageInfo({serverPinnedMessageList:n,groupID:e})}return{code:0,data:{messageList:t}}}catch(e){throw e}})}_handleGroupMessagePinned(e){const{message:{messageHelper:t,messageFactory:s},notificationCenter:n,OuterEvent:o,OuterConstant:i}=this._core;e.GroupTips.forEach(e=>{const{ToGroupId:r,MsgBody:{PinnedMsg:a,OpType:c,MsgOperatorMemberExtraInfo:u,SdkGroupMessageId:l}}=e,{UserId:d,NickName:h="",ImageUrl:g=""}=u;let p=null,_=!1;if(c===Xo){_=!0;const e=t.parseServerGroupMessage(a);p=s.createMessage(Object.assign(Object.assign({},e),{conversationType:i.CONV_GROUP,flow:"in"})),p.setElement(e.elements),p.pinnerInfo={userID:d,nick:h,avatar:g}}else if(c===Zo){const{ClientTime:e,Random:t,SenderTinyId:s,ServerTime:n,MsgSeq:o}=l;p={ID:`${s}-${e}-${t}`,sequence:o,random:t,time:n,clientTime:e}}p&&n.emitOuterEvent(o.PINNED_GROUP_MESSAGE_UPDATED,{name:o.PINNED_GROUP_MESSAGE_UPDATED,data:{groupID:r,message:p,isPinned:_,operatorInfo:{userID:d,nick:h,avatar:g}}})})}_findMessageBySequence(e,t){const{message:{messageDataHandler:s}}=this._core;return[...s.getLocalMessageList(e),...s.getSparseMessageList(e)].find(e=>e.sequence===t)}_updatePinnedMessageInfo(e){return ge(this,arguments,void 0,function*({serverPinnedMessageList:e,groupID:t}){const{OuterConstant:{CONV_GROUP:s},utils:{isEmpty:n}}=this._core,o=[],i=[],r=[],a=new Map,c=`${s}${t}`;for(let t=0;t<e.length;t++){const s=e[t],{Pinner_Account:n,MsgSeq:u}=s,l=this._findMessageBySequence(c,u);i.push(n),a.set(u,n),l?o.push(l):r.push(u)}const u=yield this._fetchPinnedMessageInfo({conversationID:c,messageSequenceList:r,pinnerIDList:i});if(u){const{pinnerInfoMap:e,messageList:t}=u;return o.push(...t),o.forEach(t=>{const{sequence:s}=t,n=a.get(s),o=e[n]||{userID:n,nick:"",avatar:""};t.pinnerInfo=o}),o.sort((e,t)=>e.sequence-t.sequence),o}return[]})}_fetchPinnedMessageInfo(e){return ge(this,void 0,void 0,function*(){var t,s;const{message:{messageHistory:n},user:{userProfile:o},utils:{isArray:i}}=this._core,{conversationID:r,messageSequenceList:a,pinnerIDList:c}=e,u=yield Promise.all([this._fetchMessageBySequence({conversationID:r,messageSequenceList:a}),null==o?void 0:o.getUserProfile({userIDList:c})]);if(i(u)){const e={};return((null===(t=u[1])||void 0===t?void 0:t.data)||[]).forEach(t=>{const{userID:s,nick:n="",avatar:o=""}=t;e[s]={userID:s,nick:n,avatar:o}}),{messageList:(null===(s=u[0])||void 0===s?void 0:s.messageList)||[],pinnerInfoMap:e}}})}_fetchMessageBySequence(e){return ge(this,void 0,void 0,function*(){const{utils:{isEmpty:t},message:{messageHistory:s}}=this._core,{conversationID:n,messageSequenceList:o}=e;return t(o)?[]:s.getGroupRoamingMessagesByAnchor({conversationID:n,messageSequenceList:o,getType:3})})}};class Ni{constructor(e){this.eventType=ei.DATA,this.index=0,this.markdown="",this.isLast=!1,this.binaryData=null;const{EventType:t,Index:s,Markdown:n,IsLast:o,BinaryData:i}=e;this.eventType=t,this.index=s,this.markdown=n,this.isLast=o,this.binaryData=i}}var Li=new class{constructor(){this._messageMap=new Map,this._retryCountMap=new Map}init(e){this._core=e;const{notificationCenter:t,OuterEvent:{MESSAGE_RECEIVED:s},InnerEvent:{HISTORY_MESSAGE_FETCHED:n}}=e;t.subscribeInnerEvent(si,this._handleStreamMessageChunkPush,this),t.subscribeOuterEvent(s,this._handleMessageReceived,this),t.subscribeInnerEvent(n,this.processHistoryMessage,this)}processHistoryMessage(e){const{utils:{isEmpty:t,safeStringify:s},ssoLog:n}=this._core;try{null==e||e.forEach(e=>{var s;if(this._isValidStreamMessage(e)){const n=null===(s=null==e?void 0:e._elements)||void 0===s?void 0:s[0],{streamMessageID:o,markdown:i,binaryData:r}=(null==n?void 0:n.content)||{};t(i)&&t(r)?(this._messageMap.set(o,e),this._fetchStreamMessageChunks(e)):n.content.isStreamEnded=!0}})}catch(e){n.error("processHistoryMessage.error",s(e))}}_handleMessageReceived(e){const t=e.data;null==t||t.forEach(e=>{var t,s;if(this._isValidStreamMessage(e)){const{streamMessageID:n}=(null===(s=null===(t=null==e?void 0:e._elements)||void 0===t?void 0:t[0])||void 0===s?void 0:s.content)||{};n&&(this._messageMap.set(n,e),this._fetchStreamMessageChunks(e))}})}_isValidStreamMessage(e){var t,s;const{utils:{isEmpty:n}}=this._core,{streamMessageID:o}=(null===(s=null===(t=null==e?void 0:e._elements)||void 0===t?void 0:t[0])||void 0===s?void 0:s.content)||{};return e.type===Po.MSG_STREAM&&!n(o)}_fetchStreamMessageChunks(e){return ge(this,void 0,void 0,function*(){var t,s;const{constants:{ERROR_CODE:n},ssoLog:o,utils:{safeStringify:i}}=this._core,r=null===(t=e._elements)||void 0===t?void 0:t[0],a=null===(s=null==r?void 0:r.content)||void 0===s?void 0:s.streamMessageID;try{const{from:t,to:s}=e,n=r.getLatestIndex();if(r.content.isStreamEnded)return;const o=yield function(e){return ge(this,void 0,void 0,function*(){const{from:t,to:s,streamMessageID:n,index:o}=e,i={From_Account:t,To_Account:s,StreamMsgID:n,AckIndex:o};return Do.core.common.buildAndSendPacket({servcmd:"StreamMsg.GetStreamHttp",data:i,timeout:5e3})})}({from:t,to:s,streamMessageID:a,index:n});if(o){const{ErrorCode:e,ErrorInfo:t}=o;if(0!==e)throw r.content.errorCode=e,r.content.errorMessage=t,{errorCode:e,errorMessage:t}}}catch(t){if(t.errorCode===n.NETWORK_TIMEOUT&&this._shouldRetryFetch(a)){const s=this._retryCountMap.get(a)||0;o.debug("_fetchStreamMessageChunks.timeout",`error: ${i(t)} retried: ${s}`),this._retryCountMap.set(a,s+1),this._fetchStreamMessageChunks(e)}else o.error("_fetchStreamMessageChunks.error",i(t))}})}_shouldRetryFetch(e){const{utils:{isNumber:t}}=this._core;if(!this._retryCountMap.has(e))return this._retryCountMap.set(e,1),!0;const s=this._retryCountMap.get(e);return!!(t(s)&&s<=3)}_onStreamEnded(e,t,s){const{ssoLog:n}=this._core;s.content.isStreamEnded=!0,s.stopReason=t,this._messageMap.delete(e),n.debug("_onStreamEnded",`streamMessage end, StopReason: ${t}`)}_handleStreamMessageChunkPush(e){var t;const{ssoLog:s}=this._core,{StopReason:n,Chunks:o,StreamID:i}=(null==e?void 0:e.body)||{},r=this._messageMap.get(i);if(!r)return void s.warn(`_handleStreamMessageChunkPush, unfounded message: ${i}`);const a=null===(t=r._elements)||void 0===t?void 0:t[0];if(a&&this._validateExpectedChunk(a,o)){if(o.length>0){const e=o.map(e=>new Ni(e));a.updateChunks(e)}this._emitMessageModify(r),function(e,t){ge(this,void 0,void 0,function*(){const{common:{generateProtocolData:s},utils:{safeStringify:n},ssoLog:o,channel:i}=Do.core,r={StreamMsgID:e,AckIndex:t};try{const e=s({servcmd:"StreamMsg.AckHttp",data:r});i.sendPacket(e)}catch(e){o.debug("sendStreamChunkAck",n(e))}})}(i,a.getLatestIndex()),a.content.isStreamEnded&&this._onStreamEnded(i,n,a)}}_emitMessageModify(e){const{notificationCenter:t,OuterEvent:{MESSAGE_MODIFIED:s}}=this._core;t.emitOuterEvent(s,{name:s,data:[e]})}_validateExpectedChunk(e,t){const s=e.getLatestIndex()+1;let n=!1;for(let e=0;e<t.length;e++)if(t[e].Index===s){n=!0;break}if(!n){const{ssoLog:e}=this._core;return e.debug("_handleStreamMessageChunkPush",`Ignore push, expected index: ${s}, received: [${t.map(e=>e.Index).join(", ")}]`),!1}return!0}reset(){this._messageMap.clear(),this._retryCountMap.clear()}dispose(){const{notificationCenter:e,OuterEvent:{MESSAGE_RECEIVED:t}}=this._core;this.reset(),e.unSubscribeInnerEvent(si,this._handleStreamMessageChunkPush,this),e.unSubscribeInnerEvent(t,this._handleMessageReceived,this)}};var Pi=new class{constructor(){this.name="MessageEnhancer"}install(e){this._core=e,Do.init(e),mi.init(e),Ei.init(e),Mi.init(e),ni.init(e),yi.init(e),Oi.init(e),oi.init(e),Ri.init(e),ai.init(e),Di.init(e),bi.init(e),Li.init(e),e.helper.registerValidateConfig({auth:di,params:li}),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),Mi.dispose(),oi.dispose(),ai.dispose(),Li.dispose()}_reset(){Li.reset()}};var Gi=new class{constructor(){this._name="WebRequest"}init(e){this._core=e}request(e,t){return ge(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:u,dataType:l="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=l;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(u),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 wi=["unknown","image","video","audio","log"];var Ui=new class{init(e){this._core=e}request(e,t){var s;const{MINI_APP_NAMESPACE:n,IN_ALIPAY_MINI_APP:o,isUniIOSApp:i}=null===(s=this._core)||void 0===s?void 0:s.utils,{resources:r="",headers:a={},url:c,downloadUrl:u=""}=e;let l=c,d=null;const h=u?u.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/):null;if(!h)return void console.warn("message Invalid download URL format");const g=decodeURIComponent(h[3]),p=g.includes("?")?g.split("?")[0]:g||"",_={key:e.fileKey||p,success_action_status:200,"Content-Type":""},m={};if(i()){const[e,t]=c.split("?sign=");t&&(l=`${e}?sign=${encodeURIComponent(t)}`,m.sign=decodeURIComponent(t),m.signature=decodeURIComponent(t))}let v={url:l,header:a,name:"file",filePath:r,formData:Object.assign(Object.assign({},_),m),timeout:e.timeout||3e5};if(o){const{name:t}=v,s=he(v,["name"]);v=Object.assign(Object.assign({},s),{fileName:"file",fileType:e.fileType?wi[e.fileType]:"image"})}return d=n.uploadFile(Object.assign(Object.assign({},v),{success:e=>{this._handleResponse({response:e,downloadUrl:u,callback:t})},fail:e=>{this._handleResponse({response:e,downloadUrl:u,callback:t})}})),d.onProgressUpdate&&d.onProgressUpdate(t=>{e.onProgress&&e.onProgress({total:t.totalBytesExpectedToSend||0,loaded:t.totalBytesSent||0,percent:t.progress?Math.floor(t.progress)/100:0})}),d}_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 ki(e){return"file"===function(e){return Object.prototype.toString.call(e).match(/^\[object (.*)\]$/)[1].toLowerCase()}(e)}function Fi(e){const t=e||99999999;return Math.round(Math.random()*t)}function $i(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 xi(e){return`${Array.from({length:8},()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1)).join("")}-${e}`}function qi(e,t){return Math.round(Number(e)*10**t)/10**t}function Vi(e){if(e<=1048576){return`${qi(e/1024,1)}KB/s`}return`${qi(e/1048576,1)}MB/s`}const Bi="TIMImageElem",ji="TIMSoundElem",Hi="TIMFileElem",Ki="TIMVideoFileElem",Wi="RichMediaMessagePlugin",Yi=["rich.my-imcloud.com","imrich.qcloud.com"],zi=1,Ji=2,Qi=3,Xi=255;var Zi;!function(e){e.UNSENT="unSend",e.SUCCESS="success",e.FAIL="fail"}(Zi||(Zi={}));const er={wechat:/^(wxfile:\/\/tmp_|http:\/\/temp\/|cloud:\/\/temp-)/,alipay:/^(https:\/\/resource\/|alipayfile:\/\/tmp\/)/,baidu:/^(http:\/\/tmp\/|swanfile:\/\/tmp_)/,bytedance:/^(ttfile:\/\/tmp_|\/(var|tmp)\/|tttemp:\/\/)/,qq:/^(qqfile:\/\/tmp_|http:\/\/qtemp\/)/},tr=Symbol("isCustomUpload");var sr,nr=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(er).some(t=>t.test(e))}extractFileFromInput(e){const{utils:{isArray:t}}=this._core;return ki(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?t(e.tempFiles)&&e.tempFiles.length>0?e.tempFiles[0]:t(e.files)?e.files[0]:e.tempFile?e.tempFile:null:e instanceof HTMLInputElement&&e.files&&e.files.length>0?e.files[0]:null}probeImageWidthHeight(e){return ge(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=Yi;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=Yi}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)}generateURL(e,t){const{needAddAuthToUrl:s=!0}=t||{};return s?this.addAuthToUrl(e):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,IN_WX_MINI_GAME:o}=(null===(e=this._core)||void 0===e?void 0:e.utils)||{};return t||s&&9===n||o}_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})}},or={exports:{}};var ir=(sr||(sr=1,or.exports=function(e){var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function s(e,t){var s=e[0],n=e[1],o=e[2],i=e[3];n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[0]-680876936|0)<<7|s>>>25)+n|0)&n|~s&o)+t[1]-389564586|0)<<12|i>>>20)+s|0)&s|~i&n)+t[2]+606105819|0)<<17|o>>>15)+i|0)&i|~o&s)+t[3]-1044525330|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[4]-176418897|0)<<7|s>>>25)+n|0)&n|~s&o)+t[5]+1200080426|0)<<12|i>>>20)+s|0)&s|~i&n)+t[6]-1473231341|0)<<17|o>>>15)+i|0)&i|~o&s)+t[7]-45705983|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[8]+1770035416|0)<<7|s>>>25)+n|0)&n|~s&o)+t[9]-1958414417|0)<<12|i>>>20)+s|0)&s|~i&n)+t[10]-42063|0)<<17|o>>>15)+i|0)&i|~o&s)+t[11]-1990404162|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&o|~n&i)+t[12]+1804603682|0)<<7|s>>>25)+n|0)&n|~s&o)+t[13]-40341101|0)<<12|i>>>20)+s|0)&s|~i&n)+t[14]-1502002290|0)<<17|o>>>15)+i|0)&i|~o&s)+t[15]+1236535329|0)<<22|n>>>10)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[1]-165796510|0)<<5|s>>>27)+n|0)&o|n&~o)+t[6]-1069501632|0)<<9|i>>>23)+s|0)&n|s&~n)+t[11]+643717713|0)<<14|o>>>18)+i|0)&s|i&~s)+t[0]-373897302|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[5]-701558691|0)<<5|s>>>27)+n|0)&o|n&~o)+t[10]+38016083|0)<<9|i>>>23)+s|0)&n|s&~n)+t[15]-660478335|0)<<14|o>>>18)+i|0)&s|i&~s)+t[4]-405537848|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[9]+568446438|0)<<5|s>>>27)+n|0)&o|n&~o)+t[14]-1019803690|0)<<9|i>>>23)+s|0)&n|s&~n)+t[3]-187363961|0)<<14|o>>>18)+i|0)&s|i&~s)+t[8]+1163531501|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n&i|o&~i)+t[13]-1444681467|0)<<5|s>>>27)+n|0)&o|n&~o)+t[2]-51403784|0)<<9|i>>>23)+s|0)&n|s&~n)+t[7]+1735328473|0)<<14|o>>>18)+i|0)&s|i&~s)+t[12]-1926607734|0)<<20|n>>>12)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[5]-378558|0)<<4|s>>>28)+n|0)^n^o)+t[8]-2022574463|0)<<11|i>>>21)+s|0)^s^n)+t[11]+1839030562|0)<<16|o>>>16)+i|0)^i^s)+t[14]-35309556|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[1]-1530992060|0)<<4|s>>>28)+n|0)^n^o)+t[4]+1272893353|0)<<11|i>>>21)+s|0)^s^n)+t[7]-155497632|0)<<16|o>>>16)+i|0)^i^s)+t[10]-1094730640|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[13]+681279174|0)<<4|s>>>28)+n|0)^n^o)+t[0]-358537222|0)<<11|i>>>21)+s|0)^s^n)+t[3]-722521979|0)<<16|o>>>16)+i|0)^i^s)+t[6]+76029189|0)<<23|n>>>9)+o|0,n=((n+=((o=((o+=((i=((i+=((s=((s+=(n^o^i)+t[9]-640364487|0)<<4|s>>>28)+n|0)^n^o)+t[12]-421815835|0)<<11|i>>>21)+s|0)^s^n)+t[15]+530742520|0)<<16|o>>>16)+i|0)^i^s)+t[2]-995338651|0)<<23|n>>>9)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[0]-198630844|0)<<6|s>>>26)+n|0)|~o))+t[7]+1126891415|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[14]-1416354905|0)<<15|o>>>17)+i|0)|~s))+t[5]-57434055|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[12]+1700485571|0)<<6|s>>>26)+n|0)|~o))+t[3]-1894986606|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[10]-1051523|0)<<15|o>>>17)+i|0)|~s))+t[1]-2054922799|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[8]+1873313359|0)<<6|s>>>26)+n|0)|~o))+t[15]-30611744|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[6]-1560198380|0)<<15|o>>>17)+i|0)|~s))+t[13]+1309151649|0)<<21|n>>>11)+o|0,n=((n+=((i=((i+=(n^((s=((s+=(o^(n|~i))+t[4]-145523070|0)<<6|s>>>26)+n|0)|~o))+t[11]-1120210379|0)<<10|i>>>22)+s|0)^((o=((o+=(s^(i|~n))+t[2]+718787259|0)<<15|o>>>17)+i|0)|~s))+t[9]-343485551|0)<<21|n>>>11)+o|0,e[0]=s+e[0]|0,e[1]=n+e[1]|0,e[2]=o+e[2]|0,e[3]=i+e[3]|0}function n(e){var t,s=[];for(t=0;t<64;t+=4)s[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return s}function o(e){var t,s=[];for(t=0;t<64;t+=4)s[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return s}function i(e){var t,o,i,r,a,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)s(l,n(e.substring(t-64,t)));for(o=(e=e.substring(t-64)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<o;t+=1)i[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(s(l,i),t=0;t<16;t+=1)i[t]=0;return r=(r=8*u).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(r[2],16),c=parseInt(r[1],16)||0,i[14]=a,i[15]=c,s(l,i),l}function r(e){var t,n,i,r,a,c,u=e.length,l=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=u;t+=64)s(l,o(e.subarray(t-64,t)));for(n=(e=t-64<u?e.subarray(t-64):new Uint8Array(0)).length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<n;t+=1)i[t>>2]|=e[t]<<(t%4<<3);if(i[t>>2]|=128<<(t%4<<3),t>55)for(s(l,i),t=0;t<16;t+=1)i[t]=0;return r=(r=8*u).toString(16).match(/(.*?)(.{0,8})$/),a=parseInt(r[2],16),c=parseInt(r[1],16)||0,i[14]=a,i[15]=c,s(l,i),l}function a(e){var s,n="";for(s=0;s<4;s+=1)n+=t[e>>8*s+4&15]+t[e>>8*s&15];return n}function c(e){var t;for(t=0;t<e.length;t+=1)e[t]=a(e[t]);return e.join("")}function u(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function l(e,t){var s,n=e.length,o=new ArrayBuffer(n),i=new Uint8Array(o);for(s=0;s<n;s+=1)i[s]=e.charCodeAt(s);return t?i:o}function d(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function h(e,t,s){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e)),n.set(new Uint8Array(t),e.byteLength),n}function g(e){var t,s=[],n=e.length;for(t=0;t<n-1;t+=2)s.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,s)}function p(){this.reset()}return c(i("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(s,n){var o,i,r,a,c=this.byteLength,u=t(s,c),l=c;return n!==e&&(l=t(n,c)),u>l?new ArrayBuffer(0):(o=l-u,i=new ArrayBuffer(o),r=new Uint8Array(i),a=new Uint8Array(this,u,o),r.set(a),i)}}(),p.prototype.append=function(e){return this.appendBinary(u(e)),this},p.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,o=this._buff.length;for(t=64;t<=o;t+=64)s(this._hash,n(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},p.prototype.end=function(e){var t,s,n=this._buff,o=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<o;t+=1)i[t>>2]|=n.charCodeAt(t)<<(t%4<<3);return this._finish(i,o),s=c(this._hash),e&&(s=g(s)),this.reset(),s},p.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},p.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},p.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},p.prototype._finish=function(e,t){var n,o,i,r=t;if(e[r>>2]|=128<<(r%4<<3),r>55)for(s(this._hash,e),r=0;r<16;r+=1)e[r]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),o=parseInt(n[2],16),i=parseInt(n[1],16)||0,e[14]=o,e[15]=i,s(this._hash,e)},p.hash=function(e,t){return p.hashBinary(u(e),t)},p.hashBinary=function(e,t){var s=c(i(e));return t?g(s):s},p.ArrayBuffer=function(){this.reset()},p.ArrayBuffer.prototype.append=function(e){var t,n=h(this._buff.buffer,e),i=n.length;for(this._length+=e.byteLength,t=64;t<=i;t+=64)s(this._hash,o(n.subarray(t-64,t)));return this._buff=t-64<i?new Uint8Array(n.buffer.slice(t-64)):new Uint8Array(0),this},p.ArrayBuffer.prototype.end=function(e){var t,s,n=this._buff,o=n.length,i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<o;t+=1)i[t>>2]|=n[t]<<(t%4<<3);return this._finish(i,o),s=c(this._hash),e&&(s=g(s)),this.reset(),s},p.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},p.ArrayBuffer.prototype.getState=function(){var e=p.prototype.getState.call(this);return e.buff=d(e.buff),e},p.ArrayBuffer.prototype.setState=function(e){return e.buff=l(e.buff,!0),p.prototype.setState.call(this,e)},p.ArrayBuffer.prototype.destroy=p.prototype.destroy,p.ArrayBuffer.prototype._finish=p.prototype._finish,p.ArrayBuffer.hash=function(e,t){var s=c(r(new Uint8Array(e)));return t?g(s):s},p}()),or.exports),rr=qt(ir);var ar=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?Ui:Gi,null===(t=this.httpRequest)||void 0===t||t.init(e)}uploadToCOS(e){return ge(this,void 0,void 0,function*(){const t=`${Wi} uploadToCOS`,{ssoLog:s,utils:{safeStringify:n}}=this._core,{file:o}=e;this.uploadFileType=e.uploadFileType,s.debug("uploadToCOS",`${t} options:${n(e)}`);try{const n=Date.now(),i=yield this._createCosOptions(e),r=i.fileExistsInCOS?{data:{location:i.downloadUrl}}:yield this._uploadFile(i);this._handleUploadError(r,e);const a=this._createUploadResult(o,r),c=Date.now()-n,u=function(e){const t=1024,s=1048576;return e<t?`${e}B`:e<s?`${Math.floor(e/t)}KB`:`${Math.floor(e/s)}MB`}(o.size),l=`size:${u} time:${c}ms speed:${Vi(1e3*o.size/c)}`;return s.debug("uploadToCOS",`${t} ok. name:${o.name} ${l}`),{uploadOptions:i,response:a}}catch(e){throw s.warn("uploadToCOS",`${t} failed, error:${n(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 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:$i(Date.now(),!1),uploadSpeed:Vi(1e3*e.size/$i(Date.now(),!1))}}_createCosOptions(e){return ge(this,void 0,void 0,function*(){const{fileName:t,resources:s,uploadMethod:n}=yield 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:u,largeUrl:l,fileKey:d,existFlag:h}=i,g=!nr.isPrivateNetWork()&&i.uploadIP;return{url:this._getRawOrUploadProxyUrl(r),fileType:this.uploadFileType,fileName:t,resources:s,downloadUrl:a,requestSnapshotUrl:c,thumbUrl:u,largeUrl:l,fileKey:d,uploadIP:g||"",fileExistsInCOS:1===h,onProgress:t=>this._handleUploadProgress(t,e)}}catch(e){throw console.error("Failed to create COS pre-signed URL options:",e),e}})}_prepareUploadParams(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s,isEmpty:n}}=this._core;t.debug("_prepareUploadParams",` prepareUploadParams:${s(e)}`);const{file:o}=e,{IN_MINI_APP:i,IN_RN_APP:r}=nr.getPlatformFlags(),a=i||r,c=a&&e.message.type!==Hi,{name:u}=o,l=u.slice(u.lastIndexOf(".")),d=`${Fi(999999)}${l}`,h=c?o.name:d,g=yield this._generateHashFileName(o);return{fileName:n(g)?xi(h):`${g}${l}`,resources:a?o.url:o,uploadMethod:a?1:0}})}_generateHashFileName(e){return ge(this,void 0,void 0,function*(){const{utils:{IN_MINI_APP:t,IN_BROWSER:s,IN_UNI_NATIVE_APP:n,isArray:o},ssoLog:i}=this._core,r=Date.now();let a="";return s&&(a=yield this._generateHashFileNameInWeb(e)),t&&(o(e.tempFiles)&&(e=e.tempFiles[0]),n||(a=yield this._generateFileNameInMiniProgram(e)),n&&(a=yield this._generateFileNameInUNINativeApp(e))),i.info("_generateHashFileName",`hashFileName:${a} costTime:${Date.now()-r}`),a})}_generateHashFileNameInWeb(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;let n="";try{n=yield new Promise((s,n)=>{const o=File.prototype.slice||File.prototype.mozSlice||File.prototype.webkitSlice;o||(t.warn("_generateHashFileNameInWeb","Browser does not support file slicing"),s(""));const i=10485760,r=Math.ceil(e.size/i);let a=0;const c=new rr.ArrayBuffer,u=new FileReader,l=setTimeout(()=>{u.abort(),t.warn("_generateHashFileNameInWeb","File hash generation timeout"),s("")},2e3);function d(){const t=a*i,s=t+i>=e.size?e.size:t+i;u.readAsArrayBuffer(o.call(e,t,s))}u.onload=e=>{t.debug("_generateHashFileNameInWeb",`read chunk nr ${a+1} of ${r}`),c.append(e.target.result),a++,a<r?d():(t.debug("_generateHashFileNameInWeb","finished loading"),clearTimeout(l),s(c.end()))},u.onerror=e=>{clearTimeout(l),n(e)},d()})}catch(e){t.warn("_generateHashFileNameInWeb",s(e))}return n})}_generateFileNameInMiniProgram(e){return ge(this,void 0,void 0,function*(){const{utils:{MINI_APP_NAMESPACE:t,safeStringify:s,isEmpty:n},ssoLog:o}=this._core;let i="";if(n(e.url))return o.warn("_generateFileNameInMiniProgram","file.url is empty"),i;if("function"!=typeof(null==t?void 0:t.getFileSystemManager))return o.warn("_generateFileNameInUNINativeApp","getFileSystemManager is not a function"),i;try{i=yield new Promise((s,n)=>{t.getFileSystemManager().getFileInfo({filePath:e.url,success:e=>{s(e.digest)},fail:e=>{n(e)}})})}catch(e){o.warn("_generateFileNameInMiniProgram",s(e))}return i})}_generateFileNameInUNINativeApp(e){return ge(this,void 0,void 0,function*(){var t;const{utils:{safeStringify:s,isEmpty:n},ssoLog:o}=this._core;let i="";if(n(e.url))return o.warn("_generateFileNameInUNINativeApp","file.url is empty"),i;if("function"!=typeof(null===(t=null===plus||void 0===plus?void 0:plus.io)||void 0===t?void 0:t.getFileInfo))return o.warn("_generateFileNameInUNINativeApp","plus.io.getFileInfo is not a function"),i;try{i=yield new Promise((t,s)=>{plus.io.getFileInfo({filePath:e.url,success:e=>{t(e.digest)},fail:e=>{s(e)}})})}catch(e){o.warn("_generateFileNameInMiniProgram",s(e))}return i})}_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 ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core,n=nr.isSimpleCos(),o=this._prepareCosRequestData(e),i=n?"im_cos_msg.simple_sig":"im_cos_msg.pre_sig";try{const e=yield function(e,t,s){return ge(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}})}(i,o,this._core);this.fetchCosTryCount=0;const r=this._processResponse(e);return t.debug("_fetchCosSignatureUrl",` ok. isSimpleCos:${n} data:${s(r)}`),r||{}}catch(t){if(this.fetchCosTryCount<1)return this.fetchCosTryCount++,this._fetchCosSignatureUrl(e);throw this.fetchCosTryCount=0,t}})}_processResponse(e){var t;const s=nr.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:u}=n;return{uploadUrl:o,downloadUrl:i,requestSnapshotUrl:r,thumbUrl:a,largeUrl:c,fileKey:u}}_prepareCosRequestData(e){return nr.isSimpleCos()?{uint32_upload_method:e.uploadMethod,uint32_platform:nr.getPlatform(),uint32_sdkappid:nr.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 ge(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=nr.getFileUploadProxy();let s=e;return t&&(s=e.replace(/^https:\/\/[^/]+/,t)),s}_isC2CConversation(e){return"C2C"===e.slice(0,3)}};const cr=2108,ur=2251,lr=2252,dr=2253,hr=["jpg","jpeg","gif","png","bmp","image","webp"],gr={JPG:1,JPEG:1,GIF:2,PNG:3,BMP:4,UNKNOWN:255};class pr{constructor(e,t){this.instanceID=Fi(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=nr.addAuthToUrl(e.imageUrl||e.url||""),this.url=nr.addAuthToUrl(e.url||t)}setSizeType(e){this.sizeType=e}setType(e){this.type=e}setImageUrl(e){e&&(this.imageUrl=nr.addAuthToUrl(e))}getImageUrl(){return this.imageUrl}}function _r(e){const{originUrl:t,originWidth:s,originHeight:n,min:o=198}=e,i=parseInt(s)||0,r=parseInt(n)||0,a={url:void 0,width:0,height:0};if((i<=r?i:r)<=o)a.url=t,a.width=i,a.height=r;else{r<=i?(a.width=Math.ceil(i*o/r),a.height=o):(a.width=o,a.height=Math.ceil(r*o/i));const e=t&&t.indexOf("?")>-1?`${t}&`:`${t}?`;a.url=198===o?`${e}imageView2/3/w/198/h/198`:`${e}imageView2/3/w/720/h/720`}if(void 0===t){const{url:e}=a;return he(a,["url"])}return a}class mr{constructor(e){this._imageMemoryURL="",this._percent=0,this.type=Bi;const{uuid:t,file:s,imageFormat:n,imageInfoArray:o=[],isCustomUpload:i=!1}=e;this._imageMemoryURL=this.createImageDataAsURL(s),this.content={imageFormat:n,uuid:t,imageInfoArray:[]},this[tr]=i,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 mr({imageFormat:s,imageInfoArray:i,uuid:o})}createImageDataAsURL(e){let t="";const{IN_MINI_APP:s,IN_RN_APP:n,IN_BROWSER:o}=nr.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 pr(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=gr[e.toUpperCase()]||gr.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],_r({originWidth:e.width,originHeight:e.height,min:720})))}validateBeforeSend(){if(this[tr])return delete this[tr],{isValid:!0};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:nr.removeAuthToUrl(e.imageUrl)}))}}const vr=new class{init(e){this.core=e}},fr={[zi]:"i",[Qi]:"a",[Ji]:"v",[Xi]:"f"};let Ir=null,Er=null;function Sr(e){var t;const{store:s,utils:{isNumber:n,safeStringify:o},ssoLog:i}=vr.core;try{const o=(null===(t=s.get("cloudConfig"))||void 0===t?void 0:t.upload_size_limit)||"";o!==Er&&(Er=o,Ir=JSON.parse(o)||{});const i=null==Ir?void 0:Ir[fr[e]];if(n(i))return 1024*i*1024}catch(e){i.debug("getCloudControlUploadSizeLimit",o(e))}return null}var Cr=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}),n.registerExperimentalAPI("createImageMessage",this,"createCustomUploadImageMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Bi,mr),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createImageMessage(e){var t,s,n;try{const o=null===(t=this._core.store.get("login"))||void 0===t?void 0:t.userId,i=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:o})),r=this._processImage(e);e.payload.file=r;const a={imageFormat:gr.UNKNOWN,uuid:nr.generateUUID(r),file:r,imageInfoArray:[]},c=new mr(a);return i.setElement(c),this._messageOptionsMap.set(i.clientSequence,e),i}catch(e){throw e}}createCustomUploadImageMessage(e){var t,s,n,o;const{store:i,utils:{isEmpty:r}}=this._core,a=null===(t=i.get("login"))||void 0===t?void 0:t.userId,c=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:a})),{largeImageUuid:u,largeFileSize:l,largeImageWidth:d,largeImageHeight:h,largeImageUrl:g,originImageUuid:p,originFileSize:_,originImageWidth:m,originImageHeight:v,originImageUrl:f,thumbImageUuid:I,thumbFileSize:E,thumbImageWidth:S,thumbImageHeight:C,thumbImageUrl:M}=(null===(o=null==e?void 0:e.payload)||void 0===o?void 0:o.file)||{};if(r(f)||r(p))throw new Error("createImageMessageExperimental originImageUrl or originImageUuid is empty");const y=new mr({imageFormat:gr.UNKNOWN,uuid:p,imageInfoArray:[{instanceID:p,size:_,width:m,height:v,imageUrl:f,url:f},{instanceID:u,size:l,width:d,height:h,imageUrl:g,url:g},{instanceID:I,size:E,width:S,height:C,imageUrl:M,url:M}],isCustomUpload:!0});return c.setElement(y),this._messageOptionsMap.set(c.clientSequence,e),c._skipUpload=!0,c}upload(e){return ge(this,void 0,void 0,function*(){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.updateImageFormat(null==n?void 0:n.fileType),t.updateImageInfoArray(o),e})}_performImageUpload(e,t,s){return ge(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:zi,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 ar.uploadToCOS(o);return this._parseResponse(i,r)})}_generateImageInfo(e){const{location:t,fileSize:s,width:n,height:o,smallImageUrl:i,smallImageWidth:r,smallImageHeight:a,largeImageUrl:c,largeImageWidth:u,largeImageHeight:l,imageInfoArray:d}=e,h=nr.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:u,largeImageHeight:l},{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 _r({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 ge(this,void 0,void 0,function*(){try{const{thumbUrl:s,largeUrl:n,downloadUrl:o}=e;s&&n&&(yield this._getImageInfoByUrl(s,t,"thumb"),yield this._getImageInfoByUrl(n,t,"large"));if(nr.isSimpleCos()&&!nr.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 e}})}_extractDomainFromUrl(e){var t;try{const t=e.match(/:\/\/([^\/]+)/);return t?t[1]:null}catch(e){return null===(t=this._core)||void 0===t||t.ssoLog.warn("_extractDomainFromUrl",`Failed to extract domain from URL:${e.message}`),null}}_getImageInfoByUrl(e,t,s){return ge(this,void 0,void 0,function*(){var n;try{const n=nr.addAuthToUrl(e),{width:o=0,height:i=0}=yield nr.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){null===(n=this._core)||void 0===n||n.ssoLog.warn("_getImageInfoByUrl",`Failed to get ${s} image info:${e.message}`)}})}_validateBeforeUploadImage(e){var t;const{ChatError:s}=null===(t=this._core)||void 0===t?void 0:t.helper;if(!e)throw new s({code:ur});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 e}}_processMiniAppImageFile(e){ki(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=nr.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 ge(this,void 0,void 0,function*(){const s=`${Wi} getDownloadIP domainName: ${e}`;try{const n=yield function(e,t){return ge(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 ge(this,void 0,void 0,function*(){try{const s=yield function(e,t){return ge(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(s),t}catch(e){throw t.imageInfoArray=void 0,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)),hr.indexOf(n.toLowerCase())<0)throw new s.ChatError({code:lr})}_checkImageSize(e){const{utils:t,helper:s,store:n}=this._core;let o=0;if(o=(t.IN_MINI_APP,e.size),0===o)throw new s.ChatError({code:cr});if(o>=(Sr(zi)||20971520))throw new s.ChatError({code:dr})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Mr=2108,yr=2401,Or=2402,Ar="2.5.0",Tr="1.18.0";function Rr(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}var Dr;class br{constructor(e){this.type=Hi,this.uploadProgress=0,this[Dr]=!1;const t=this._getFileInfo(e);this[tr]=e.isCustomUpload||!1,this.content={downloadFlag:2,fileUrl:nr.generateURL(e.url||e.fileUrl,{needAddAuthToUrl:!this[tr]})||"",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 br({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(){if(this[tr])return{isValid:!0};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:nr.removeAuthToUrl(i),FileName:r,FileSize:a,UUID:n}}}_getFileInfo(e){const{utils:{IN_UNI_NATIVE_APP:t}}=vr.core;if(e.fileName&&e.fileSize)return{size:e.fileSize,name:e.fileName};const{file:s}=e;return s?(t&&this._processNativeAppFile(s),{size:s.size,name:s.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=`${Fi(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)}}Dr=tr;var Nr=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}),n.registerExperimentalAPI("createFileMessage",this,"createCustomUploadFileMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Hi,br),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createFileMessage(e){var t,s,n;try{this._checkVersion();const o=this._processFile(e.payload.file);e.payload.file=o;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={uuid:nr.generateUUID(o),file:o},c=new br(a);return r.setElement(c),this._messageOptionsMap.set(r.clientSequence,e),r}catch(e){throw e}}createCustomUploadFileMessage(e){var t,s,n;try{const{store:o,message:i,utils:{isEmpty:r}}=this._core,a=null===(t=o.get("login"))||void 0===t?void 0:t.userId,{url:c,uuid:u,fileSize:l,fileName:d=""}=(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.file)||{};if(r(c))throw new Error("url is required");const h=null===(n=i.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:a})),g=new br({url:c,uuid:u,file:{size:l,name:d},isCustomUpload:!0});return h.setElement(g),h}catch(e){throw e}}upload(e){return ge(this,void 0,void 0,function*(){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=nr.addAuthToUrl(null==n?void 0:n.location);return s.updateFileUrl(o),e})}_validateBeforeUploadFile(e){const{helper:{ChatError:t}}=this._core;if(!e)throw new t({code:yr});const s=Sr(Xi)||104857600;if(e.size>s)throw new t({code:Or});if(0===e.size)throw new t({code:Mr})}_performFileUpload(e,t,s){return ge(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:Xi,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 ar.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=nr.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&&Rr(e,Ar)<0){throw new a({message:`WXChooseMessageFile requires SDK version ${Ar} or higher`})}if(i&&Rr(e,Tr)<0){throw new a({message:`QQChooseMessageFile requires SDK version ${Tr} or higher`})}}}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Lr=2108,Pr=2351,Gr=2352,wr=["mp4","quicktime","mov","video"];var Ur;class kr{constructor(e){this.type=Ki,this.uploadProgress=0,this[Ur]=!1;const t="number"==typeof(null==e?void 0:e.videoSecond)?null==e?void 0:e.videoSecond:0;this[tr]=e.isCustomUpload||!1,this.content={remoteVideoUrl:nr.addAuthToUrl(e.remoteVideoUrl||e.videoUrl||""),videoFormat:e.videoFormat,videoSecond:parseInt(null==t?void 0:t.toString(),10),videoSize:e.videoSize,videoUrl:nr.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:nr.addAuthToUrl(e.thumbUrl),snapshotUrl:nr.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:u,ThumbWidth:l,SnapshotWidth:d,ThumbHeight:h,SnapshotHeight:g,ThumbSize:p,SnapshotSize:_,ThumbDownloadFlag:m,ThumbUrl:v,SnapshotUrl:f}=t;return new kr({videoUrl:s,videoFormat:n,videoSecond:o,videoSize:i,videoDownloadFlag:r,videoUUID:a,thumbUUID:c,thumbFormat:u,thumbWidth:l,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;nr.isEmpty(t)||(this.content.thumbUrl=this.content.snapshotUrl=t),nr.isEmpty(s)||(this.content.thumbWidth=this.content.snapshotWidth=Number(s)),nr.isEmpty(n)||(this.content.thumbHeight=this.content.snapshotHeight=Number(n))}validateBeforeSend(){if(this[tr])return{isValid:!0};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:u,thumbFormat:l,thumbWidth:d,snapshotWidth:h,thumbHeight:g,snapshotHeight:p,thumbSize:_,snapshotSize:m,thumbDownloadFlag:v,thumbUrl:f,snapshotUrl:I}=s;return{MsgType:this.type,MsgContent:{VideoUrl:nr.removeAuthToUrl(n),VideoFormat:o,VideoSecond:i,VideoSize:r,VideoDownloadFlag:a,VideoUUID:c,ThumbUUID:u,ThumbFormat:l,ThumbWidth:d,SnapshotWidth:h,ThumbHeight:g,SnapshotHeight:p,ThumbSize:_,SnapshotSize:m,ThumbDownloadFlag:v,ThumbUrl:nr.removeAuthToUrl(f),SnapshotUrl:nr.removeAuthToUrl(I)}}}}Ur=tr;var Fr,$r=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}),n.registerExperimentalAPI("createVideoMessage",this,"createCustomUploadVideoMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(Ki,kr),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createVideoMessage(e){var t,s,n;try{const o=this._processVideo(e);e.payload.file=o;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={videoFormat:o.videoFile.type,videoSecond:qi(o.videoFile.second,0),videoSize:o.videoFile.size,remoteVideoUrl:"",videoUrl:o.videoFile.url,videoUUID:nr.generateUUID(o.videoFile),thumbUUID:nr.generateUUID(o.videoFile,"jpg"),thumbWidth:o.width||200,thumbHeight:o.height||200,thumbUrl:o.thumbUrl,thumbSize:o.thumbSize,thumbFormat:"jpg"},c=new kr(a);return r.setElement(c),this._messageOptionsMap.set(r.clientSequence,e),r}catch(e){throw e}}createCustomUploadVideoMessage(e){var t,s,n;try{const{store:o,message:i}=this._core;this._validateCustomUploadVideoMessage(e);const r=null===(t=o.get("login"))||void 0===t?void 0:t.userId,{videoUrl:a,videoUuid:c,duration:u,snapshotUrl:l,snapshotUuid:d,videoFileSize:h,videoType:g,snapshotWidth:p,snapshotHeight:_,snapshotFileSize:m,snapshotType:v="jpg"}=(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.file)||{},f=null===(n=i.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),I=new kr({videoFormat:g,videoSecond:u||0,videoSize:h,remoteVideoUrl:a,videoUrl:a,videoUUID:c,thumbUUID:d,thumbWidth:p||200,thumbHeight:_||200,thumbUrl:l,thumbSize:m,thumbFormat:v,isCustomUpload:!0});return f.setElement(I),this._messageOptionsMap.set(f.clientSequence,e),f}catch(e){throw e}}upload(e){return ge(this,void 0,void 0,function*(){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=nr.addAuthToUrl(o);return t.updateVideoUrl(r),nr.isEmpty(i)||t.updateSnapshotInfo(i),e})}_validateBeforeUploadVideo(e){const{helper:{ChatError:t}}=this._core,s=Sr(Ji)||104857600;if(e.videoFile.size>s)throw new t({code:Pr});if(0===e.videoFile.size)throw new t({code:Lr});if(-1===wr.indexOf(e.videoFile.type))throw new t({code:Gr})}_validateCustomUploadVideoMessage(e){var t;const{utils:{isEmpty:s,isNumber:n}}=this._core,{videoUrl:o,videoUuid:i,duration:r,snapshotUrl:a,snapshotUuid:c}=(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.file)||{};if(s(o)||s(i)||!n(r)||s(a)||s(c))throw new Error("Invalid video message options: missing required fields (videoUrl, videoUuid, duration, snapshotUrl, snapshotUuid)")}_performVideoUpload(e,t,s){return ge(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:Ji,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 ar.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,r.type=a.type),i){const e=nr.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(`${Wi} _processFile error:`,e),e}}_processMiniVideoFile(e){const{utils:{IN_UNI_NATIVE_APP:t},helper:{ChatError:s}}=this._core;if(ki(e))throw new s({message:"FileUnsupportedInMiniApp"});Array.isArray(e.tempFiles)&&(e=e.tempFiles[0]);let n=e.tempFilePath.slice(e.tempFilePath.lastIndexOf(".")+1).toLowerCase();return t&&(n=e.fileType||n),{url:e.tempFilePath,name:e.tempFilePath.slice(e.tempFilePath.lastIndexOf("/")+1),size:e.size||1,second:e.duration||0,type:n}}_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 ge(this,void 0,void 0,function*(){const{ssoLog:t}=this._core;try{t.debug("_getSnapshotInfoByUrl",`${Wi} _getSnapshotInfoByUrl url:${e}`);const s={version:1,platform:nr.getPlatform(),cover_name:xi(Fi(99999)),snapshot_url:e},n=yield function(e,t){return ge(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}})}(s,this._core),{download_url:o}=n||{};if(t.debug("_getSnapshotInfoByUrl",`${Wi} _getSnapshotInfoByUrl OK snapshotUrl:${o}`),nr.isEmpty(o))return{};const i=nr.addAuthToUrl(o),{width:r=0,height:a=0}=yield nr.probeImageWidthHeight(i);return{snapshotUrl:i,snapshotWidth:r,snapshotHeight:a}}catch(e){throw e}})}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};class xr{constructor(e){this.uploadProgress=0,this.type=ji,this[Fr]=!1,this[tr]=e.isCustomUpload||!1,this.content={downloadFlag:2,second:e.second,size:e.size,url:nr.generateURL(e.url,{needAddAuthToUrl:!this[tr]}),remoteAudioUrl:nr.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 xr({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(){if(this[tr])return{isValid:!0};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:nr.removeAuthToUrl(i),Download_Flag:o,Second:a,Size:r,UUID:n}}}}Fr=tr;const qr=2108,Vr=2300,Br=2301;var jr=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}),n.registerExperimentalAPI("createAudioMessage",this,"createCustomUploadAudioMessage"),null===(t=null==i?void 0:i.messageFactory)||void 0===t||t.registerElementClass(ji,xr),s.subscribeInnerEvent(o.DESTROY,this._dispose,this)}createAudioMessage(e){var t,s,n;try{let{file:o}=e.payload;o=this._processAudioFile(e.payload.file),e.payload.file=o;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={second:Math.max(1,Math.round((o.duration||o.second)/1e3)),size:o.fileSize||o.size||1,url:o.tempFilePath||o.uri||o.url,uuid:nr.generateUUID(o)},c=new xr(a);return r.setElement(c),this._messageOptionsMap.set(r.clientSequence,e),r}catch(e){throw e}}createCustomUploadAudioMessage(e){var t,s,n;try{this._validateCustomUploadOptions(e);const{store:o,message:i}=this._core,r=null===(t=o.get("login"))||void 0===t?void 0:t.userId,{url:a,uuid:c,duration:u,fileSize:l}=(null===(s=null==e?void 0:e.payload)||void 0===s?void 0:s.file)||{},d=null===(n=i.messageFactory)||void 0===n?void 0:n.createMessage(Object.assign(Object.assign({},e),{from:r})),h=new xr({second:u,size:l||1,url:a,uuid:c,isCustomUpload:!0});return d.setElement(h),this._messageOptionsMap.set(d.clientSequence,e),d}catch(e){throw e}}upload(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;t.debug("upload",`${Wi} uploadAudio message:${s(e)}`);const{file:n}=this._messageOptionsMap.get(e.clientSequence).payload;this._validateBeforeUploadAudio(n);const o=e.getElements()[0],i=yield this._performAudioUpload(o,e,n),r=nr.addAuthToUrl(null==i?void 0:i.location);return o.updateAudioUrl(r),e})}_validateBeforeUploadAudio(e){const{helper:{ChatError:t},store:s}=this._core;if(!e)throw new t({code:Vr});const n=Sr(Qi)||20971520;if(e.size>n)throw new t({code:Br});if(0===e.size)throw new t({code:qr})}_performAudioUpload(e,t,s){return ge(this,void 0,void 0,function*(){const{to:n}=t,o={uploadFileType:Qi,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 ar.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}_validateCustomUploadOptions(e){var t;const{utils:{isEmpty:s}}=this._core,{url:n,uuid:o,duration:i}=(null===(t=null==e?void 0:e.payload)||void 0===t?void 0:t.file)||{};if(s(n)||s(o)||s(i))throw new Error("Invalid audio message options")}_reset(){this._messageOptionsMap.clear()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Hr={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}},Kr={createImageMessage:Hr,createAudioMessage:Hr,createVideoMessage:Hr,createFileMessage:Hr},Wr={createImageMessage:!0,createAudioMessage:!0,createVideoMessage:!0,createFileMessage:!0},Yr={[Bi]:Cr,[Hi]:Nr,[Ki]:$r,[ji]:jr};var zr=new class{constructor(){this.name="RichMediaMessage"}install(e){this._core=e;const{constants:{OuterConstant:{MSG_AUDIO:t,MSG_FILE:s,MSG_IMAGE:n,MSG_VIDEO:o}}}=e;vr.init(e),Cr.init(e),Nr.init(e),$r.init(e),jr.init(e),ar.init(e),nr.init(e),e.helper.registerApi({apiName:"sendMessage",context:this,matcher:e=>[t,s,n,o].includes(e[0].type)}),e.helper.registerValidateConfig({auth:Wr,params:Kr})}sendMessage(e,t){return ge(this,void 0,void 0,function*(){var s,n,o;try{return this._isCustomUpload(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 e}})}_upload(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{safeStringify:s}}=this._core;if(t.debug("_upload",` uploadFile message:${s(e)}`),!0!==e._relayFlag)try{const s=Yr[e.type];s&&(yield s.upload(e),t.info("_upload",` type:${e.type}`))}catch(t){throw e.status=Zi.FAIL,t instanceof Error&&(t.data={message:e}),this._core.message.messageDataHandler.storeConversationMessage(e),t}})}_isCustomUpload(e){var t,s;return!0===(null===(s=null===(t=e._elements)||void 0===t?void 0:t[0])||void 0===s?void 0:s[tr])}};const Jr=new class{init(e){this.core=e}},Qr=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=Jr;return s(e)&&e.slice(0,3)===t.CONV_C2C},Xr=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=Jr;return s(e)&&e.slice(0,5)===t.CONV_GROUP},Zr=e=>{const{core:{OuterConstant:t,utils:{isString:s}}}=Jr;return s(e)&&e===t.CONV_SYSTEM},ea=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:Jr.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 ta(e){const{OuterConstant:t}=Jr.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 sa(e){const{OuterConstant:t}=Jr.core;let s;return e.startsWith(t.CONV_C2C)&&(s=e.replace(t.CONV_C2C,"")),"@TLS#ERROR"===s||"@TLS#NOT_FOUND"===s}function na(e,t){const{helper:s}=Jr.core,n=new s.ChatError({functionName:e,code:(null==t?void 0:t.errorCode)||(null==t?void 0:t.code),message:(null==t?void 0:t.errorInfo)||(null==t?void 0:t.message)});throw console.error(`${e} fail:`,n),n}class oa{constructor(e){this.conversationID=e.conversationID||"",this.unreadCount=e.unreadCount||0,this.type=e.type||"",this.lastMessage=ea(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(){var e;const{core:{OuterConstant:t,utils:{isUndefined:s}}}=Jr;s(this.userProfile)&&this.type===t.CONV_C2C?this.userProfile={userID:this.conversationID.replace(t.CONV_C2C,"")}:this.type===t.CONV_GROUP&&(!this.subType&&(null===(e=this.groupProfile)||void 0===e?void 0:e.type)&&(this.subType=this.groupProfile.type),s(this.groupProfile)&&(this.groupProfile={groupID:this.conversationID.replace(t.CONV_GROUP,""),selfInfo:{},lastMessage:{},type:this.subType}))}updateUnreadCount(e){var t;const{core:{OuterConstant:s,utils:{isUndefined:n},store:o}}=Jr,{nextUnreadCount:i,isFromGetConversations:r,isUnreadC2CMessage:a}=e;if(n(i))return;if(this.subType===s.GRP_AVCHATROOM)return void(this.unreadCount=0);if(r&&this.type===s.CONV_GROUP)return void(this.unreadCount=i);if(a&&this.type===s.CONV_C2C)return void(this.unreadCount=i);const c="1"===(null===(t=o.get("cloudConfig"))||void 0===t?void 0:t.support_unread_count_for_meeting);this.subType!==s.GRP_MEETING||c?this.unreadCount+=i:this.unreadCount=0}updateLastMessage(e){this.lastMessage=ea(e)}reduceUnreadCount(){return this.unreadCount>=1&&(this.unreadCount-=1,!0)}isLastMessageRevoked(e){const{core:{OuterConstant:t}}=Jr,{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:{common:{updateGroupAtInfo:t}}}=Jr;t(e,this.groupAtInfoList)}clearGroupAtInfoList(){this.groupAtInfoList.length=0}getProfileCompleted(){return this._isInfoCompleted}setProfileCompleted(){this._isInfoCompleted=!0}}var ia,ra;!function(e){e[e.OFF=0]="OFF",e[e.ON=1]="ON"}(ia||(ia={})),function(e){e[e.ONLY_CONVERSATIONID=1]="ONLY_CONVERSATIONID"}(ra||(ra={}));var aa;!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"}(aa||(aa={}));const ca=0,ua=1;var la=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:{SYNC_CONVERSATION_LIST:r,MESSAGE_PUSH:a,NEW_MESSAGE:c,MESSAGE_DELETED:u,MESSAGE_REVOKED:l,MESSAGE_MODIFIED:d,CONVERSATION_UPDATED:h,LOGOUT:g,DESTROY:p},InnerEventSubType:{C2C_MESSAGE_PEER_READ:_}}=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),t.registerWorkflowStep(o.RECEIVE_GROUP_TIPS_NOTIFICATION,i.CREATE_OR_UPDATE_CONVERSATION_BY_RECEIVE_NEW_MESSAGE,this._handleNewMessage,this);const{InnerEventSubType:{GROUP_AT_TIPS:m}}=s;s.subscribeInnerEvent(r,this._handleConversationSynced,this),s.subscribeInnerEvent(c,this._handleNewMessage,this),s.subscribeInnerEvent(a,m,this._handleNewGroupAtTips,this),s.subscribeInnerEvent(u,this._handleMessageDeleted,this),s.subscribeInnerEvent(l,this._handleMessageRevoked,this),s.subscribeInnerEvent(d,this._handleMessageModified,this),s.subscribeInnerEvent(h,this._handleConversationUpdated,this),s.subscribeInnerEvent(a,_,this._handleMessageRead,this),s.subscribeInnerEvent(g,this._reset,this),s.subscribeInnerEvent(p,this._dispose,this),e.ssoLog.debug(`${this._name}.init`)}_handleConversationSynced(e){this.updateLocalConversationList({conversationUpdateFieldList:e.conversationUpdateFieldList||[],isFromGetConversations:!0,updateUnreadCount:!0}),this.emitConversationListUpdate()}_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){var t;for(let s=0;s<e.length;s++)if(12===e[s].Event){if(null===(t=e[s].GroupTips[0].MsgBody)||void 0===t?void 0:t.TopicId)continue;this._handleNewGroupAtTips(e[s])}}_handleGroupListSyncFinished(e){var t;const{constants:{WORKFLOW_STEP:s}}=this._core,n=e.result[s.GROUP_LIST_SYNC]||[],{OuterConstant:{CONV_GROUP:o}}=this._core;let i=!1;for(let e=0;e<n.length;e++){const s=n[e],r=`${o}${s.groupID}`;if(!this.hasLocalConversation(r))continue;const a=this.getLocalConversation(r);a.groupProfile=JSON.parse(JSON.stringify(s)),a.lastMessage.lastSequence<s.nextMessageSeq&&(a.lastMessage.lastSequence=s.nextMessageSeq-1),a.subType||(a.subType=s.type),(null===(t=s._groupAtInfoList)||void 0===t?void 0:t.length)>0&&this._handleNewGroupAtTips({GroupTips:s._groupAtInfoList}),i=!0}i&&this.emitConversationListUpdate()}_handleNewMessage(e){const{conversationUpdateFieldList:t=[],isInstantMessage:s=!0,isUnreadC2CMessage:n=!1,updateUnreadCount:o=!0}=e.result||{};if(0===t.length)return;const{common:{isTopic:i}}=this._core;if(i(t[0].conversationID))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,MsgRandom:n,ClientSeq:o}=e;let i={};t?i=this._convertGroupAtTipsKey(t):s?i=Object.assign({},this._convertGroupAtTipsKey(s)):e.groupAtType&&(i=Object.assign({},e)),i.__random=n,i.__sequence=o,this._groupAtTipsList.push(i)}),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(e){this.emitConversationListUpdate(null==e?void 0:e.needSort)}updateLocalConversationList(e){const{isFromGetConversations:t}=e,{newConversationList:s}=this._getTmpConversationListMapping(e);this._sortConversationList(),t||this._updateNewConversationProfile(s),this._core.ssoLog.debug("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 oa(s[e]),{conversationID:u,type:l}=c;if(!sa(u))if(this.hasLocalConversation(u)){const a=this.getLocalConversation(u);if(n){this.setLocalConversation(u,c),l===t.CONV_C2C?c.unreadCount=(null==a?void 0:a.unreadCount)||0:l===t.CONV_GROUP&&(c.groupProfile=JSON.parse(JSON.stringify(null==a?void 0:a.groupProfile)));continue}this._mergeConversationInfo({conversationID:u,tmpConversation:c,lastMessage:s[e].lastMessage,isFromGetConversations:n,isInstantMessage:o}),this._patchLastMessage({conversationID:u,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(u,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:u},common:{deepMerge:l}}=this._core;c(i)&&n&&null===(null==r?void 0:r.lastMessage.payload)&&(r.lastMessage.payload=n.payload),u(null==r?void 0:r.lastMessage.revoker)||(r.lastMessage.revoker=null);l(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){return ge(this,void 0,void 0,function*(){const{OuterConstant:{CONV_GROUP:t},appStore:{groupStore:s},utils:{safeStringify:n},ssoLog:o,apiMap:{getGroupProfile:i}}=this._core;let r=!1;try{yield Promise.all(e.map(e=>ge(this,void 0,void 0,function*(){const n=s.getGroup(e),o=this.getLocalConversation(`${t}${e}`);n&&o&&(o.groupProfile=n,r=!0),o&&!o.getProfileCompleted()&&"function"==typeof i&&(yield i({groupID:e}))}))),r&&this.emitConversationListUpdate()}catch(e){o.debug("_updateGroupConversation",n(e))}})}_handleMessageRead(e){const{OuterConstant:{CONV_C2C:t}}=this._core,{C2cNotifyMsgArray:s=[]}=e||{};s.forEach(e=>{const{To_Account:s,UinPairReadArray:n=[]}=(null==e?void 0:e.C2cReadedReceipt)||{};null==n||n.forEach(e=>{const{LastReadTime:n}=e,o=`${t}${s}`;this._updateConversationReadInfo({conversationID:o,peerReadTime:n}),this._updateMessageListPeerRead({conversationID:o,peerReadTime:n})})})}_updateConversationReadInfo(e){const{appStore:t,utils:{isEmpty:s},common:{getCurrentUserID:n}}=this._core,{conversationID:o,peerReadTime:i}=e,r=t.conversationStore.getConversationMap();if(r.has(o)){const e=r.get(o);e.peerReadTime=i;const a=null==e?void 0:e.lastMessage;s(a)||a.fromAccount===n()&&a.lastTime<=i&&!a.isPeerRead&&(a.isPeerRead=!0,t.conversationStore.updateConversation(o,{lastMessage:a}))}}_updateMessageListPeerRead(e){const{notificationCenter:t,OuterEvent:s,message:n}=this._core,{conversationID:o,peerReadTime:i}=e,r=n.messageDataHandler.getLocalMessageList(o),a=n.messageDataHandler.getSparseMessageList(o),c=[];r.forEach(e=>{e.time<=i&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,c.push(e))}),a.forEach(e=>{e.time<=i&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,c.push(e))}),t.emitOuterEvent(s.MESSAGE_READ_BY_PEER,{name:s.MESSAGE_READ_BY_PEER,data:c})}_isConversationNeedShow(e){var t,s;const{OuterConstant:{CONV_GROUP:n,GRP_ROOM:o,GRP_LIVE:i},utils:{isUndefined:r}}=this._core,a=this.getLocalConversation(e);if(r(a))return!0;const c=a.type===n&&(null===(t=a.groupProfile)||void 0===t?void 0:t.type)===o,u=a.type===n&&(null===(s=a.groupProfile)||void 0===s?void 0:s.type)===i;return!(c||u)}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){var t,s;e&&this._sortConversationList();const{OuterEvent:{CONVERSATION_LIST_UPDATED:n},conversation:o}=this._core,i=this.getLocalConversationList();this._emitEvent({name:n,data:i,isSyncCompleted:null===(s=null===(t=null==o?void 0:o.syncConversationHandler)||void 0===t?void 0:t.isSyncCompleted)||void 0===s?void 0:s.call(t)}),this._emitTotalUnreadCountUpdate()}_emitTotalUnreadCountUpdate(){var e;const t=this.getTotalUnreadMessageCount();this._totalUnreadCount!==t&&(this._core.ssoLog.debug("_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,utils:{isEmpty:t}}=this._core,s=this.getLocalConversationList();let n=0;return s.forEach(s=>{s.type!==e.CONV_SYSTEM&&(t(s.messageRemindType)||s.messageRemindType===e.MSG_REMIND_ACPT_AND_NOTE)&&(n+=s.unreadCount)}),n}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,SYNC_CONVERSATION_LIST:c}}=this._core,{InnerEventSubType:{GROUP_AT_TIPS:u}}=e;e.unSubscribeInnerEvent(t,this._handleNewMessage,this),e.unSubscribeInnerEvent(t,u,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(c,this._handleConversationSynced,this),e.unSubscribeInnerEvent(r,this._reset,this),e.unSubscribeInnerEvent(a,this._dispose,this)}};var da=new class{constructor(){this._name="GetConversationList"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getConversationList",context:this})}getConversationList(e){return ge(this,void 0,void 0,function*(){return{code:0,data:{conversationList:this._getConversationList(e),isSyncCompleted:this._core.conversation.syncConversationHandler.isSyncCompleted()}}})}_getConversationList(e){const{utils:{isUndefined:t,isArray:s,isPlainObject:n}}=this._core;if(t(e))return la.getLocalConversationList();if(s(e)){if(0===e.length)return[];return la.getLocalConversationList().filter(t=>e.includes(t.conversationID))}if(n(e)){const{type:t,markType:s,groupName:n,hasUnreadCount:o,hasGroupAtInfo:i}=e;return la.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}};var ha=new class{constructor(){this._name="GetC2CMessageRemindType"}init(e){this._core=e}get(e){return ge(this,void 0,void 0,function*(){try{const{common:t}=this._core,s=yield function(e,t){return ge(this,void 0,void 0,function*(){const{toAccount:s,userIDList:n}=e,o={To_Account:s,Peer_Account:n};return t.common.buildAndSendPacket({servcmd:"openim.get_c2c_peer_mute_notifications",data:o})})}({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=ta(s);la.patchMessageRemindType([n],o)})}catch(e){console.error(`${this._name}.get fail:`,e)}})}};var ga=new class{constructor(){this._name="GetGroupMessageRemindType"}init(e){this._core=e}get(e){return ge(this,void 0,void 0,function*(){if(0!==e.length)try{const t=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupIDList:s,responseFilter:n}=e,o={GroupIdList:s,ResponseFilter:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:o})})}({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}`;la.patchMessageRemindType([i],o)})}catch(e){console.error(`${this._name}.get fail:`,e)}})}};var pa=new class{constructor(){this._name="GetConversationProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getConversationProfile",context:this})}getConversationProfile(e){return ge(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=la.getLocalConversation(e);if(Zr(e))return r.data.conversation=a,r;let c=!1;const u=Qr(e)?t:s;if(i(a)&&(c=!0,a=new oa({conversationID:e,type:u})),console.log(`${this._name}.getConversationProfile conversationID:${e} isNewConversation:${c}`),r.data.conversation=a,null==a?void 0:a.getProfileCompleted())return r;if(u===t){const s=e.replace(t,"");yield this._handleC2CConversation(a,s),c&&(yield ha.get([s]))}if(u===s){const t=e.replace(s,"");if(!o.getGroup(t))return r;yield this._handleGroupConversation(a,t),c&&a.groupProfile.type!==n&&(yield ga.get([t]))}return r})}_handleC2CConversation(e,t){return ge(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:u}=e,l=yield null===(s=o.userProfile)||void 0===s?void 0:s.getUserProfile({userIDList:[t]});if(0===(null==l?void 0:l.data.length))throw new i.ChatError({code:aa.USER_OR_GRP_NOT_FOUND});e.userProfile=null==l?void 0:l.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=la.hasLocalConversation(u);console.log(`${this._name}._handleC2CConversation conversationID:${u} hasLocalConversation: ${h}`),h?a.updateConversation(u,e):la.appendToPinnedConversation(e)})}_handleGroupConversation(e,t){return ge(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=la.hasLocalConversation(o);console.log(`${this._name}._handleGroupConversation conversationID:${o} hasLocalConversation: ${r}`),r?n.updateConversation(o,e):la.appendToPinnedConversation(e)})}};var _a=new class{init(e){const{helper:t}=e;t.registerApi({apiName:"getTotalUnreadMessageCount",context:this})}getTotalUnreadMessageCount(){return la.getTotalUnreadMessageCount()}};var ma=new class{constructor(){this._serverGroupConversationLastReadSeqMap=new Map,this._name="SetMessageRead"}init(e){this._core=e;const{helper:t,common:{isTopic:s},notificationCenter:n,InnerEvent:{MESSAGE_PUSH:o},InnerEventSubType:{ALL_MESSAGE_READ:i}}=e;t.registerApi({apiName:"setMessageRead",context:this,matcher:e=>!s(e[0].conversationID)}),t.registerApi({apiName:"setAllMessageRead",context:this}),n.subscribeInnerEvent(o,i,this._handleAllMessageRead,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}`),la.markMessageAsRead({conversationID:o,lastReadTime:n}),la.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}`),la.markMessageAsRead({conversationID:o,lastReadSequence:n}),la.updateUnreadCount(o),this._clearGroupAtInfoList(o)})})}setMessageRead(e){return ge(this,void 0,void 0,function*(){var t,s;const{OuterConstant:n}=this._core,{conversationID:o}=e,i={code:0,data:{}},r=la.getLocalConversation(o);let a=`${this._name}.setMessageRead conversationID:${o} unreadCount:${(null==r?void 0:r.unreadCount)||0}`;if(i.successLog={message:a},!r)return i;const c=!(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&&c&&this._deleteGroupAtTips(o),0===r.unreadCount)return i;const{helper:{ChatError:u}}=this._core;try{if(r.type===n.CONV_C2C){const e=this._getLocalMessageMaxTime(r);yield this._setC2CMessageRead(o,e),a+=`lastMessageTime:${e}`}if(r.type===n.CONV_GROUP){const e=this._getLocalMessageMaxSequence(r);yield this._setGroupMessageRead(o,e),a+=`lastMessageSequence:${e}`}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new u({functionName:"setMessageRead",code:t,message:s,moreMessage:a})}return r.type===n.CONV_SYSTEM&&(r.unreadCount=0),la.emitConversationListUpdate(),Object.assign(Object.assign({},i),{successLog:{message:a}})})}setAllMessageRead(){return ge(this,arguments,void 0,function*(e={}){const{OuterConstant:{READ_ALL_MSG:t},utils:{safeStringify:s}}=this._core;let n=`scope:${e.scope}`;e.scope||(e.scope=t);const{scope:o}=e,i=this._generateSetAllMessageReadRequestData(o);if(i.allC2CMessageReadStatus===ca&&0===i.groupMessageReadInfoList.length)return{code:0};try{const e=yield function(e){return ge(this,void 0,void 0,function*(){const{allC2CMessageReadStatus:t,groupMessageReadInfoList:s}=e,n={C2CReadAllMsg:t,GroupReadInfo:s};return Jr.core.common.buildAndSendPacket({servcmd:"openim.read_all_unread_msg",data:n})})}(i);if(e){const{GroupReadInfoArray:t,C2CReadAllMsg:o}=e,i=this._parseGroupReadInfo(t);this._updateAllConversationReadStatus({allC2CMessageReadStatus:o})>0&&la.emitConversationListUpdate(),n+=`failureGroupInfoList:${s(i)}`}return{code:0,successLog:{message:n}}}catch(e){const{errorCode:t}=e;throw new this._core.helper.ChatError({functionName:"setAllMessageRead",code:t,moreMessage:n})}})}_handleAllMessageRead(e){const{GroupReadInfoArray:t,C2CReadAllMsg:s}=e;this._parseGroupReadInfo(t);this._updateAllConversationReadStatus({allC2CMessageReadStatus:s})>0&&la.emitConversationListUpdate()}_updateAllConversationReadStatus(e){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s},appStore:n}=this._core,o=n.conversationStore.getConversationMap(),{allC2CMessageReadStatus:i}=e;let r=0;for(const[e,n]of o)if(n.unreadCount>=1){if(i===ua&&n.type===t){const t=this._getLocalMessageMaxTime(n);la.markMessageAsRead({conversationID:e,lastReadTime:t})}else if(n.type===s){const t=e.replace(s,"");if(this._serverGroupConversationLastReadSeqMap.has(t)){const s=this._serverGroupConversationLastReadSeqMap.get(t);la.markMessageAsRead({conversationID:e,lastReadSequence:s})}}la.updateUnreadCount(e,!1)&&(r+=1)}return r}_generateSetAllMessageReadRequestData(e){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s,READ_ALL_C2C_MSG:n},appStore:o}=this._core,i={allC2CMessageReadStatus:ca,groupMessageReadInfoList:[]},r=o.conversationStore.getConversationMap();for(const[,o]of r){const{type:r,unreadCount:a}=o;if(this._shouldSetAllMessageRead({scope:e,type:r,unreadCount:a}))if(r===t&&i.allC2CMessageReadStatus===ca){if(i.allC2CMessageReadStatus=ua,e===n)break}else if(r===s){const e=this._getLocalMessageMaxSequence(o),{groupID:t}=o.groupProfile;i.groupMessageReadInfoList.push({GroupId:t,MsgSeq:e})}}return i}_parseGroupReadInfo(e){const{utils:{isUndefined:t}}=this._core,s=[];return null==e||e.forEach(e=>{const{GroupId:n,MsgSeq:o,RetCode:i,LastReadMsgSeq:r}=e;t(i)?this._serverGroupConversationLastReadSeqMap.set(n,r):(this._serverGroupConversationLastReadSeqMap.set(n,o),0!==i&&s.push(`${n}-${o}-${i}`))}),s}_deleteGroupAtTips(e){return ge(this,void 0,void 0,function*(){console.log(`${this._name}._deleteGroupAtTips conversationID:${e}`);const t=la.getLocalConversation(e);if(!t)return;const s=(null==t?void 0:t.groupAtInfoList)||[];if(0!==s.length)try{const{common:{getCurrentUserID:t,isCommunity:n},OuterConstant:{CONV_GROUP:o,CONV_AT_ALL:i}}=this._core;let r=[...s];if(n({groupID:e.replace(o,"")})&&(r=s.filter(e=>!e.atTypeArray.includes(i)),0===r.length))return void this._clearGroupAtInfoList(e,!1);const a=r.map(e=>({From_Account:e.from,To_Account:t(),MsgSeq:e.__sequence,MsgRandom:e.__random,GroupId:e.groupID}));yield function(e,t){return ge(this,void 0,void 0,function*(){const{messageListToDelete:s}=e,n={DelMsgList:s};return t.common.buildAndSendPacket({servcmd:"openim.deletemsg",data:n})})}({messageListToDelete:a},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,t=!0){const s=la.getLocalConversation(e);s&&(s.groupAtInfoList.length>0&&(s.clearGroupAtInfoList(),console.log(`${this._name}._clearGroupAtInfoList conversationID:${e} needEmitConversationUpdate:${t}`)),t&&la.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 ge(this,void 0,void 0,function*(){try{yield function(e,t){return ge(this,void 0,void 0,function*(){return t.common.buildAndSendPacket({servcmd:"openim.msgreaded",data:e})})}({C2CMsgReaded:{Cookie:"",C2CMsgReadedItem:[{To_Account:e.replace("C2C",""),LastedMsgTime:t,Receipt:1}]}},this._core),console.log(`${this._name}._setC2CMessageRead ok, lastReadTime:${t}`),la.markMessageAsRead({conversationID:e,lastReadTime:t}),la.updateUnreadCount(e)}catch(e){throw console.warn(`${this._name}._setC2CMessageRead fail:`,e),e}})}_setGroupMessageRead(e,t){return ge(this,void 0,void 0,function*(){try{yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,lastMessageSequence:n}=e,o={GroupId:s,MsgReadedSeq:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.msg_read_report",data:o})})}({groupID:e.replace("GROUP",""),lastMessageSequence:t},this._core),console.log(`${this._name}._setGroupMessageRead ok, lastReadSequence:${t}`),la.markMessageAsRead({conversationID:e,lastReadSequence:t}),la.updateUnreadCount(e)}catch(e){throw console.warn(`${this._name}._setGroupMessageRead fail:`,e),e}})}_shouldSetAllMessageRead(e){const{OuterConstant:{CONV_C2C:t,CONV_GROUP:s,READ_ALL_MSG:n,READ_ALL_C2C_MSG:o,READ_ALL_GROUP_MSG:i}}=this._core,{type:r,scope:a,unreadCount:c}=e;return!(c<=0)&&(!(r!==t||![n,o].includes(a))||!(r!==s||![n,i].includes(a)))}};var va=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,Peer_Account:i,GroupId:r}=e;let a;1===s?a=la.getLocalConversation(`${n.CONV_C2C}${i}`):2===s&&(a=la.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&&la.emitConversationListUpdate(!0)}pinConversation(e){return ge(this,void 0,void 0,function*(){const{OuterConstant:t,common:s,helper:{ChatError:n}}=this._core,{conversationID:o,isPinned:i}=e,r={code:0,data:{conversationID:o}},a=la.getLocalConversation(o);if(a&&a.isPinned===i)return r;if(Zr(o))return a&&(a.isPinned=i),la.emitConversationListUpdate(!0),r;const c=`conversationID:${o} isPinned:${i}`;try{let e=null;Qr(o)?e={Type:1,To_Account:o.replace(t.CONV_C2C,"")}:Xr(o)&&(e={Type:2,GroupId:o.replace(t.CONV_GROUP,"")});const n=yield function(e,t){return ge(this,void 0,void 0,function*(){const{fromAccount:s,operationType:n,itemList:o}=e,i={From_Account:s,OperationType:n,RecentContactItem:o};return t.common.buildAndSendPacket({servcmd:"recentcontact.top",data:i})})}({fromAccount:s.getCurrentUserID(),operationType:!0===i?1:2,itemList:[e]},this._core);if(n){if(a)a.isPinned!==i&&(a.isPinned=i);else{const e=new oa({conversationID:o,type:Qr(o)?t.CONV_C2C:t.CONV_GROUP,isPinned:i});la.setLocalConversation(o,e)}la.emitConversationListUpdate(!0)}return Object.assign(Object.assign({},r),{successLog:{message:c}})}catch(e){const{errorCode:t,errorInfo:s}=e;throw new n({functionName:"pinConversation",code:t,message:s,moreMessage:c})}})}};var fa=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 ge(this,void 0,void 0,function*(){const{utils:{isString:t}}=this._core;if(t(e))return void(yield this._deleteConversation({conversationIDList:[e],flag:ra.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 ge(this,void 0,void 0,function*(){const{conversationIDList:t,clearHistoryMessage:s=!0,flag:n=0}=e,{helper:{ChatError:o}}=this._core,i=`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:aa.CONV_NOT_FOUND});return{code:0,data:n===ra.ONLY_CONVERSATIONID?{conversationID:o[0]}:{conversationIDList:o},successLog:{message:i}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new o({code:t,message:s,moreMessage:i})}})}_deleteConversationFromLocal(e){const{OuterConstant:t}=this._core;return e.filter(e=>{var s;if(!la.hasLocalConversation(e))return!1;const n=null===(s=la.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 ge(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(la.hasLocalConversation(e)){const n=(null===(t=la.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 ge(this,void 0,void 0,function*(){const{fromAccount:s,conversationList:n,clearHistoryMessage:o}=e,i={From_Account:s,ContactItem:n,ClearRamble:o};return t.common.buildAndSendPacket({servcmd:"recentcontact.batch_delete",data:i})})}(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=>{la.hasLocalConversation(e)&&(this._deleteLocalConversation(e,!1),t=!0)}),console.log(`${this._name}._deleteLocalConversationList isUpdate:${t}`),t&&la.emitConversationListUpdate()}_deleteLocalConversation(e,t=!0){const s=la.hasLocalConversation(e);console.log(`${this._name}._deleteLocalConversation conversationID:${e} has:${s}`),s&&(la.deleteLocalConversation(e),this._deleteConversationLocalMessage(e),t&&la.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),this._core.message.messageHistory.completedHistoryConversations.delete(e)}};var Ia=new class{constructor(){this._name="SetConversationDraft"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setConversationDraft",context:this})}setConversationDraft(e){return ge(this,void 0,void 0,function*(){const{conversationID:t,draftText:s}=e;if(console.log(`${this._name} conversationID:${t} draftText:${s}`),!la.hasLocalConversation(t))throw new this._core.helper.ChatError({code:aa.CONV_NOT_FOUND});const n=la.getLocalConversation(t);return null==n||n.setDraftText(s),la.emitConversationListUpdate(),{code:0,data:{conversation:n}}})}};var Ea=new class{constructor(){this._name="SetC2CMessageRemindType"}init(e){this._core=e}set(e,t){return ge(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}=Jr.core.OuterConstant;return{[e]:0,[t]:1,[s]:2}}()[t],n=yield function(e,t){return ge(this,void 0,void 0,function*(){const{userIDList:s,receiveMessageOption:n}=e,o={Peer_Account:s,Mute_Notifications:n};return t.common.buildAndSendPacket({servcmd:"openim.set_c2c_peer_mute_notifications",data:o})})}({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=[],a=[],{OuterConstant:c}=this._core;return e.forEach(e=>{a.push(`${c.CONV_C2C}${e}`),r.push({userID:e})}),la.patchMessageRemindType(a,t),{code:0,data:{successUserIDList:r,failureUserIDList:i}}})}};var Sa=new class{constructor(){this._name="SetGroupMessageRemindType"}init(e){this._core=e}set(e,t){return ge(this,void 0,void 0,function*(){const{common:{getCurrentUserID:s,isTopic:n},OuterConstant:o}=this._core;if(yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,userID:n,receiveMessageOption:o}=e,i={GroupId:s,Member_Account:n,MsgFlag:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:i})})}({groupID:e,userID:s(),receiveMessageOption:t},this._core),!n(e)){const s=`${o.CONV_GROUP}${e}`;la.patchMessageRemindType([s],t)}return{code:0,data:{groupID:e,messageRemindType:t}}})}};var Ca=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,ssoLog:n}=this._core;e.forEach(e=>{const{MuteNotificationsSync:o}=e;if(!t(o)){const{To_Account:e,MuteNotifications:t}=o,i=e.map(e=>`${s.CONV_C2C}${e}`),r=ta(t);n.debug(`${this._name}.handleC2CMessageRemindTypeSync conversationIDList:${i} messageRemindType:${r}`),la.patchMessageRemindType(i,r)}})}setMessageRemindType(e){return ge(this,void 0,void 0,function*(){const t="setMessageRemindType",{groupID:s,userIDList:n,messageRemindType:o}=e,{helper:i,utils:{isUndefined:r},ssoLog:a}=this._core;try{if(!r(s)){a.debug(`${this._name}.${t} groupID:${s} messageRemindType:${o}`);return yield Sa.set(s,o)}if(!r(n)){a.debug(`${this._name}.${t} userIDList:${n} messageRemindType:${o}`);return yield Ea.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 Ma=new class{init(e){e.ssoLog.debug("ConversationAction.init"),this._core=e,da.init(e),pa.init(e),_a.init(e),ma.init(e),va.init(e),fa.init(e),Ia.init(e),Ca.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)}_onConversationModified(e){const{constants:{ConvModifyPushType:t}}=this._core,{RecentContactMod:s=[]}=e;s.forEach(e=>{const{PushType:s}=e;if(s===t.CONV_DELETED){const{RecentContactList:t}=e.RecentContactDeleteItem;fa.handleConversationDeleted(t)}if(s===t.CONV_PINED){const{RecentContactList:t}=e.RecentContactTopItem;va.handleConversationPinned(t,!0)}if(s===t.CONV_UNPINED){const{RecentContactList:t}=e.RecentContactTopItem;va.handleConversationPinned(t,!1)}})}_onC2CMessageReadSync(e){const{C2cNotifyMsgArray:t=[]}=e;ma.handleC2CMessageReadSync(t)}_onC2CMessageRemindTypeSync(e){const{C2cNotifyMsgArray:t=[]}=e;Ca.handleC2CMessageRemindTypeSync(t)}_onGroupMessageReadSync(e){const{GroupTips:t=[]}=e;ma.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 ya=new class{init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setAllReceiveMessageOpt",context:this})}setAllReceiveMessageOpt(e){return ge(this,void 0,void 0,function*(){try{const{OuterConstant:{MSG_REMIND_ACPT_NOT_NOTE:t}}=this._core,{messageRemindType:s=t,isRepeated:n=!0}=e,{startTime:o=0,endTime:i=0}=this._calcStartAndEndTime(e),r=yield function(e){return ge(this,void 0,void 0,function*(){const{common:t}=Jr.core,{startTime:s,endTime:n,isRepeated:o,messageRemindType:i}=e,r={StartTime:s,EndTime:n,IsRepeated:o,Level:i};return t.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_set_do_not_disturb",data:r})})}({messageRemindType:this._getType(s),startTime:o,endTime:i,isRepeated:n?ia.ON:ia.OFF});return{code:0,data:{errorCode:r.ErrorCode,errorInfo:r.ErrorInfo}}}catch(e){na("setAllReceiveMessageOpt",e)}})}_calcStartAndEndTime(e){const{startHour:t=0,startMinute:s=0,startSecond:n=0,duration:o=0,isRepeated:i=!0}=e,r=new Date,a=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,s,n),c=Math.round(a.getTime()/1e3);let u=c+o;return i&&o>=86400&&(u=c+86400),{startTime:c,endTime:u}}_getType(e){const{OuterConstant:t}=this._core;return{[t.MSG_REMIND_ACPT_AND_NOTE]:0,[t.MSG_REMIND_DISCARD]:1,[t.MSG_REMIND_ACPT_NOT_NOTE]:2}[e]}};var Oa=new class{init(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:n}=e;t.registerApi({apiName:"getAllReceiveMessageOpt",context:this}),s.subscribeInnerEvent(n.MESSAGE_PUSH,s.InnerEventSubType.ALL_RECEIVE_MESSAGE_OPTION,this.onAllReceiveMsgOptionNotify,this)}onAllReceiveMsgOptionNotify(e){const t=this._handleResult(e),{notificationCenter:s,OuterEvent:{ALL_RECEIVE_MESSAGE_OPT_UPDATED:n}}=this._core;s.emitOuterEvent(n,{name:n,data:t})}getAllReceiveMessageOpt(){return ge(this,void 0,void 0,function*(){try{const e=yield function(){return ge(this,void 0,void 0,function*(){const{common:e}=Jr.core,t={To_Account:e.getCurrentUserID()};return e.buildAndSendPacket({servcmd:"im_msg_db_logic.ws_get_do_not_disturb",data:t})})}();return{code:0,data:this._handleResult(e)}}catch(e){na("getAllReceiveMessageOpt",e)}})}_handleResult(e){const{OuterConstant:t}=this._core,{MSG_REMIND_ACPT_AND_NOTE:s,MSG_REMIND_DISCARD:n,MSG_REMIND_ACPT_NOT_NOTE:o}=t,i={0:s,1:n,2:o},{Level:r,StartTime:a,EndTime:c,IsRepeated:u}=e;return{messageRemindType:i[r]||s,startTime:a,endTime:c,isRepeated:u===ia.ON}}};var Aa=new class{init(e){e.ssoLog.debug("ReceiveMessageOptions.init"),this._core=e,Ea.init(e),Sa.init(e),ha.init(e),ga.init(e),ya.init(e),Oa.init(e)}};const Ta=e=>!Qr(e)&&!Xr(e)&&!Zr(e),Ra={getConversationProfile:[{key:"conversationID",required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!Ta(e)||"conversationID is invalid."}],setMessageRead:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!Ta(e)||"conversationID is invalid."}},pinConversation:{conversationID:{required:!0,rules:["string"],allowEmpty:!1,customValidator:e=>!Ta(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}}}=Jr;if(!n(e)&&!s(e))return"options is String or Object.";if(n(e)&&Ta(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(Ta(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=>!(!Qr(e)&&!Xr(e))||"conversationID is invalid."},draftText:{required:!0,rules:["string"],allowEmpty:!0}},setAllReceiveMessageOpt:{messageRemindType:{required:!1,rules:["string"],allowEmpty:!0},startHour:{required:!1,rules:["number"],allowEmpty:!0},startMinute:{required:!1,rules:["number"],allowEmpty:!0},startSecond:{required:!1,rules:["number"],allowEmpty:!0},duration:{required:!1,rules:["number"],allowEmpty:!0},isRepeated:{required:!1,rules:["boolean"],allowEmpty:!0}}},Da={getConversationList:!0,getConversationProfile:!0,getTotalUnreadCount:!0,setMessageRead:!0,pinConversation:!0,deleteConversation:!0,setConversationDraft:!0,setMessageRemindType:!0,getAllReceiveMessageOpt:!0,setAllReceiveMessageOpt:!0};var ba=new class{constructor(){this.name="Conversation"}install(e){Jr.init(e),Ma.init(e),Aa.init(e),la.init(e),e.helper.registerValidateConfig({auth:Da,params:Ra})}};const Na=new class{init(e){this.core=e}},La="AVChatRoom",Pa="AV_HISTORY_MSG",Ga="GRP_COUNTER",wa="Set",Ua="Increase",ka="Decrease",Fa=0,$a=1,xa=2,qa=["Type","Name","Introduction","Notification","FaceUrl","Owner_Account","CreateTime","InfoSeq","LastInfoTime","LastMsgTime","MemberNum","MaxMemberNum","ApplyJoinOption","NextMsgSeq","ShutUpAllMember","InviteJoinOption","LastRecallTime"],Va=["Type","Name","Introduction","Notification","FaceUrl","CreateTime","Owner_Account","LastInfoTime","LastMsgTime","NextMsgSeq","MemberNum","MaxMemberNum","ApplyJoinOption","InviteJoinOption"],Ba=["Role","JoinTime","MsgFlag","MsgSeq"],ja=["Role","JoinTime","MsgSeq","MsgFlag","NameCard"],Ha=0,Ka=1,Wa="notStart",Ya="resolved",za="rejected",Ja=10018,Qa=11e3,Xa=2,Za=["Owner","Admin","Member"],ec=["Role","JoinTime","NameCard","ShutUpUntil","OnlineStatus"],tc=0,sc=1,nc=2,oc=4,ic=1,rc=2,ac=3,cc=4,uc=5,lc=1,dc=0,hc=4,gc=6,pc=400,_c=300,mc={from:!0,groupID:!0,groupName:!0,to:!0},vc={from:!0,groupID:!0,groupName:!0,to:!0,type:!0},fc=2,Ic=4,Ec=5,Sc=7,Cc=8,Mc=15,yc=20,Oc=21,Ac=2600,Tc=2602,Rc=2603,Dc=2620,bc=2621,Nc=2623,Lc=2660,Pc=2661,Gc=2681,wc=2683,Uc=2684,kc=2685,Fc=2687,$c=3122,xc=10018,qc=e=>e===Na.core.OuterConstant.GRP_PUBLIC,Vc=e=>e===Na.core.OuterConstant.GRP_AVCHATROOM,Bc=(e,t)=>{const{isArray:s}=Na.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},jc=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},Hc=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};function Kc(e,t){const{helper:s}=Na.core;if(!s.checkBusinessCapabilityBits(t))throw new s.ChatError({functionName:e,code:$c,replacement1:e})}function Wc(e,t){const{helper:s}=Na.core,n=new s.ChatError({functionName:e,code:(null==t?void 0:t.errorCode)||(null==t?void 0:t.code),message:(null==t?void 0:t.errorInfo)||(null==t?void 0:t.message)});throw console.error(`${e} fail:`,n),n}const Yc=["groupID","name","avatar","type","introduction","notification","ownerID","selfInfo","createTime","infoSequence","lastInfoTime","lastMessage","nextMessageSeq","memberCount","maxMemberCount","memberList","joinOption","groupCustomField","muteAllMembers","isSupportTopic","inviteOption","_lastRevokedTime","_groupAtInfoList"];class zc{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._groupAtInfoList=[],this._initGroup(e)}_initGroup(e){const{utils:{isString:t}}=Na.core;for(const s in e)Yc.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}}=Na.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&&Bc(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}}=Na.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 Jc=new class{constructor(){this._name="GroupDataHandler"}init(e){this._core=e;const{appStore:{groupStore:t}}=e;this._groupMap=t.getGroupMap()}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 zc(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(){const{OuterConstant:{GRP_ROOM:e,GRP_LIVE:t}}=this._core;return[...this._groupMap.values()].filter(s=>{const{type:n}=s;return n!==e&&n!==t})}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}`,o=t.getConversation(n);if(o){const s=this.getLocalGroup(e);o.setProfileCompleted(),t.updateConversation(n,{groupProfile:s})}}reset(){this.clearLocalGroup()}};function Qc(e,t){return ge(this,void 0,void 0,function*(){const{type:s,limit:n,offset:o,supportTopic:i=0,memberAccount:r,responseFilter:a}=e,c={Type:s,Limit:n,Offset:o,Member_Account:r,ResponseFilter:a,SupportTopic:i,NeedAppDefineData:1};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_joined_group_list",data:c})})}const Xc=function(e,t){return{code:0,data:e||{},successLog:t}};var Zc=new class{constructor(){this._name="GetGroupList",this._pagingStatus=Wa,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 ge(this,arguments,void 0,function*(e=!1){if(e){const e=[];return yield this._pagingGetJoinedCommunityList({limit:this.PAGING_GRP_COUNT_LIMIT,offset:0,groupList:e}),Jc.updateLocalGroup(e),Jc.getLocalGroupList()}if(this._core.ssoLog.debug("getGroupList",`${this._name}.getGroupList pagingStatus:${this._pagingStatus}`),this._pagingStatus===za||this._pagingStatus===Wa)return this._syncGroupList().then(()=>{const e=Jc.getLocalGroupList();return Xc({groupList:e,isSyncCompleted:this._isSyncCompleted()})}).catch(e=>{throw e});const t=Jc.getLocalGroupList();return Xc({groupList:t,isSyncCompleted:this._isSyncCompleted()},{message:`return group count:${t.length}`})})}_syncGroupList(){return ge(this,void 0,void 0,function*(){this._pagingStatus===Wa&&Jc.clearLocalGroup();const e=this.PAGING_GRP_COUNT_LIMIT,t=[];try{yield this._pagingGetGroupList({limit:e,offset:0,groupList:t}),this._pagingStatus=Ya,this._groupListTreeShaking(t),Jc.updateLocalGroup(t);const s=Jc.getLocalGroupList();return this._core.ssoLog.debug("_syncGroupList",`${this._name}._syncGroupList ok, count:${s.length}`),Jc.emitGroupListUpdate(),s}catch(e){throw this._pagingStatus=za,e}})}_pagingGetGroupList(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t}=this._core,{isCommunityRelay:s=!1,groupList:n}=e;let o,{limit:i,offset:r}=e;const a=[...qa];s&&(o=this._core.OuterConstant.GRP_COMMUNITY,a.push("AtInfoList"));try{const e=yield Qc({type:o,limit:i,offset:r,memberAccount:this._core.store.get("login").userId,responseFilter:{GroupBaseInfoFilter:a,SelfInfoFilter:[...Ba]}},this._core),{GroupIdList:c=[],TotalCount:u=0}=e||{},l=this._convertGroupKey(c);n.push(...l);const d=r+i,h=!(u>d),g=`offset:${r} limit:${i} total:${u} isCompleted:${h} current:${n.length} isCommunityRelay:${s}`;return t.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. ${g}`),s?h?n:(r=d,this._pagingGetGroupList({isCommunityRelay:!0,limit:i,offset:r,groupList:n})):h?(t.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList start to get community list`),r=0,this._pagingGetGroupList({isCommunityRelay:!0,limit:i,offset:r,groupList:n})):(r=d,this._pagingGetGroupList({limit:i,offset:r,groupList:n}))}catch(e){if(e.ErrorCode===Ja)return t.warn("_pagingGetGroupList",`${this._name}._pagingGetGroupList response size exceeds the limit, request count:${i}`),i=50,this._pagingGetGroupList({isCommunityRelay:s,limit:i,offset:r,groupList:n});if(s)return e.code===Qa&&t.debug("_pagingGetGroupList",`${this._name}._pagingGetGroupList ok. community unavailable`),n;throw e}})}_pagingGetJoinedCommunityList(e){return ge(this,void 0,void 0,function*(){const{common:{getCurrentUserID:t},OuterConstant:s,ssoLog:n}=this._core,{groupList:o}=e;let{limit:i,offset:r}=e;try{const e=yield Qc({limit:i,offset:r,type:s.GRP_COMMUNITY,memberAccount:t(),supportTopic:1,responseFilter:{GroupBaseInfoFilter:[...qa],SelfInfoFilter:[...Ba]}},this._core),{GroupIdList:a=[],TotalCount:c=0}=e||{},u=this._convertGroupKey(a);o.push(...u);const l=r+i,d=!(c>l),h=`offset:${r} limit:${i} total:${c} isCompleted:${d} current:${o.length}`;return n.debug("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList ok. ${h}`),d?o:(r=l,this._pagingGetJoinedCommunityList({limit:i,offset:r,groupList:o}))}catch(e){if(e.code===xc)return n.warn("_pagingGetJoinedCommunityList",`${this._name}._pagingGetJoinedCommunityList response size exceeds the limit, request count:${i}`),i=50,this._pagingGetJoinedCommunityList({limit:i,offset:r,groupList:o});throw e}})}_groupListTreeShaking(e){const t=new Map([...Jc.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++)Jc.deleteLocalGroup(s[e])}_isSyncCompleted(){return this._pagingStatus===Ya}_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:u,LastInfoTime:l,LastMsgTime:d,MemberNum:h,MaxMemberNum:g,MuteAllMember:p,Name:_,NextMsgSeq:m,Notification:v,Owner_Account:f,Type:I,LastRecallTime:E,SelfInfo:S,AtInfoList:C=[],SupportTopic:M}=e[s],y=jc(n),O=this._convertSelfInfo(S),A=this._convertAtInfoList(a,C);t.push({groupCustomField:y,joinOption:o,createTime:i,avatar:r,groupID:a,introduction:c,inviteOption:u,lastInfoTime:l,lastMsgTime:d,memberCount:h,maxMemberCount:g,muteAllMembers:p,name:_,nextMessageSeq:m,notification:v,ownerID:f,type:I,selfInfo:O,_lastRevokedTime:E,_groupAtInfoList:A,isSupportTopic:M})}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}}_convertAtInfoList(e,t){if(0===t.length)return[];const s=[];return t.forEach(t=>{const{AtFlagList:n,AtMsgSeq:o,From_Account:i}=t;s.push({groupID:e,groupAtType:n,sequence:o,from:i})}),s}};var eu=new class{constructor(){this._name="CreateGroup"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"createGroup",context:this})}createGroup(e){return ge(this,void 0,void 0,function*(){var t;this._preCheckParams(e);const{helper:{ChatError:s}}=this._core;try{const{utils:{isEmpty:s},common:{getCurrentUserID:n}}=this._core,o=yield function(e,t){return ge(this,void 0,void 0,function*(){const{name:s,type:n,groupID:o,introduction:i,notification:r,avatar:a,maxMemberNum:c,joinOption:u,inviteOption:l,memberList:d,groupCustomField:h,isSupportTopic:g}=e;let p;d&&(p=d.map(e=>{const{userID:t,memberCustomField:s}=e;return{Member_Account:t,AppMemberDefinedData:s?Hc(s):void 0}}));const _={Name:s,Type:n,GroupId:o,Introduction:i,Notification:r,FaceUrl:a,MaxMemberCount:c,ApplyJoinOption:u,InviteJoinOption:l,MemberList:p,AppDefinedData:h,SupportTopic:g,webPushFlag:1};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.create_group",data:_})})}(Object.assign(Object.assign({},e),{ownerID:n()}),this._core),{GroupId:i,OverJoinedGroupLimit_Account:r=[]}=o||{},a=`${this._name}.createGroup ok, type:${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))),Jc.updateLocalGroup([Object.assign(Object.assign({},e),{groupID:i})]);const c=Jc.getLocalGroup(i);return this._notNeedSendCustomMessage(e)||(this._sendCustomMessage(i,e.type),Jc.emitGroupListUpdate()),Xc({group:c},{message:a})}catch(t){const{errorCode:n,errorInfo:o}=t;throw new s({functionName:"createGroup",code:n,message:o,moreMessage:` groupID:${e.groupID}`})}})}_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}=Na.core.OuterConstant;return[e,t,s,n,o]})().includes(t))throw new this._core.helper.ChatError({code:Ac});if(!i({type:t})){if(r&&i({groupID:s}))throw new this._core.helper.ChatError({code:Tc});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),i({type:t})){if(r&&!i({groupID:s}))throw new this._core.helper.ChatError({code:Tc});e.isSupportTopic=this._canIUseTopic(e)?1:0}}_canIUseMemberList(e){return!Vc(e)}_canIUseJoinOption(e){return qc(e)||this._core.common.isCommunity({type:e})}_canIUseTopic(e){const{isSupportTopic:t}=e;return!0===t}_notNeedSendCustomMessage(e){const{type:t,isSupportTopic:s}=e,{OuterConstant:{GRP_AVCHATROOM:n,GRP_COMMUNITY:o}}=this._core;return t===n||t===o&&1===s}_sendCustomMessage(e,t){var s,n,o,i,r,a;const{OuterConstant:c,common:{t:u}}=this._core;let l=u("CREATE_GROUP"),d=Ha;t===c.GRP_COMMUNITY&&(l=u("CREATE_COMMUNITY"),d=Ka);const h={to:e,conversationType:"GROUP",payload:{data:JSON.stringify({businessID:"group_create",content:l,cmd:d,opUser:this._core.store.get("login").userId,version:4})}},g=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(h);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(g,{})}};var tu=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;this._core.ssoLog.debug("handleGroupAttributesUpdated",`${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}),this._core.ssoLog.debug("initGroupAttributesCache",`${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!==uc&&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),this._core.ssoLog.debug("refreshGroupAttributesCache",`${this._name}.refreshGroupAttributesCache. operation:${o} localMainSequence:${i} serverMainSequence:${s}`)}}_updateGroupAttributesCacheValues(e){const{groupAttributes:t,groupAttributeList:s=[],operation:n}=e;n!==ac?n!==cc?(n===ic&&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);this._core.ssoLog.debug("emitGroupAttributesUpdated",`${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}reset(){this._groupAttributesCache.clear(),this._groupAttributesCacheValuesCopy={}}};var su=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(La)})}dismissGroup(e){return ge(this,void 0,void 0,function*(){const{helper:{ChatError:t}}=this._core;try{yield function(e,t){return ge(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.destroy_group",data:s})})}(e,this._core);const{type:t}=Jc.getLocalGroup(e);return Jc.deleteLocalGroup(e),Jc.emitGroupListUpdate(),tu.deleteGroupAttributesCache(e),Xc({groupID:e,type:t},{message:e})}catch(e){const{errorCode:s,errorInfo:n}=e;throw new t({functionName:"dismissGroup",code:s,message:n})}})}};var nu=new class{constructor(){this._name="GetGroupProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupProfile",context:this})}getGroupProfile(e){return ge(this,void 0,void 0,function*(){const{groupID:t,groupCustomFieldFilter:s}=e,n={groupIDList:[t],responseFilter:{GroupBaseInfoFilter:[...qa],AppDefinedDataFilter_Group:s,MemberInfoFilter:[...ja]}},{helper:{ChatError:o}}=this._core;try{const e=yield this.getGroupProfileAdvance(n),{successGroupList:s,failureGroupList:o}=e;if(o.length>0)throw o[0];let i;return!Jc.hasLocalGroup(t)&&Vc(s[0].type)?i=new zc(s[0]):(Jc.updateLocalGroup(s),i=Jc.getLocalGroup(t)),i.isSupportTopic||Jc.updateConversationGroupProfile(t),Xc({group:i},{message:`groupID:${t}`})}catch(e){const{code:t,message:s}=e;throw new o({functionName:"getGroupProfile",code:t,message:s})}})}getGroupProfileAdvance(e){return ge(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 ge(this,void 0,void 0,function*(){const{ssoLog:t,utils:{isUndefined:s}}=this._core,{isCommunityProfile:n=!1}=e,o=he(e,["isCommunityProfile"]);if(0===o.groupIDList.length)return{successGroupList:[],failureGroupList:[]};try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupIDList:s,responseFilter:n}=e,o={GroupIdList:s,ResponseFilter:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_self_member_info",data:o})})}(o,this._core),{GroupInfo:n=[]}=e||{},i=this._convertGroupProfileKey(n),r=i.filter(e=>s(e.errorCode)||0===e.errorCode),a=i.filter(e=>e.errorCode&&0!==e.errorCode).map(e=>({code:e.errorCode,message:e.errorInfo,data:{groupID:e.groupID}}));return t.debug("_getGroupProfileAdvance",`${this._name}._getGroupProfileAdvance ok, groupID:${o.groupIDList.join(",")}`),{successGroupList:r,failureGroupList:a}}catch(e){if(n)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:u,InviteJoinOption:l,LastInfoTime:d,LastMsgTime:h,MaxMemberNum:g,MemberNum:p,MuteAllMember:_,Name:m,NextMsgSeq:v,Notification:f,Owner_Account:I,ShutUpAllMember:E,ShutUpUntil:S,Type:C,MemberList:M,ErrorCode:y,ErrorInfo:O}=e[s],A=jc(n),T=this._convertMembers(M);t.push({groupCustomField:A,joinOption:o,createTime:i,avatar:r,groupID:a,infoSequence:c,introduction:u,inviteOption:l,lastInfoTime:d,lastMsgTime:h,maxMemberCount:g,memberCount:p,muteAllMembers:_,name:m,nextMessageSeq:v,notification:f,ownerID:I,shutUpAllMember:E,muteUntil:S,type:C,members:T,errorCode:y,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:u}=e[s],l=jc(n);t.push({memberCustomField:l,joinTime:o,userID:i,messageRemindType:r,sequence:a,nameCard:c,role:u})}return t}};var ou=new class{constructor(){this._groupCountersMap=new Map}init(e){this._core=e}getLocalGroupCounters(e){return this._hasLocalGroupCounters(e)||this.initGroupCountersCache({groupID:e}),this._groupCountersMap.get(e)}updateLocalGroupCounters(e){const{groupID:t,counterList:s=[],groupCounterSeq:n}=e;if(this._hasLocalGroupCounters(t)){const{counters:e,avChatRoomKey:o,groupCounterSeq:i}=this.getLocalGroupCounters(t);if(n>0&&n<i)return;s.forEach(t=>{const{Key:s,Value:n=0}=t;e.set(s,n)}),this._groupCountersMap.set(t,{lastUpdateTime:Date.now(),groupCounterSeq:n,counters:e,avChatRoomKey:o})}}initGroupCountersCache(e){const{groupID:t,avChatRoomKey:s}=e;this._groupCountersMap.set(t,{lastUpdateTime:0,groupCounterSeq:0,counters:new Map,avChatRoomKey:s})}getLocalCounters(e,t){const s={};if(!this._hasLocalGroupCounters(e))return s;const{counters:n}=this.getLocalGroupCounters(e);if(t.length>0)t.forEach(e=>{n.has(e)&&(s[e]=n.get(e))});else for(const e of n.keys())s[e]=n.get(e);return s}deleteLocalGroupCounters(e){const{groupID:t,counterList:s=[],groupCounterSeq:n}=e;if(this._hasLocalGroupCounters(t)){const{counters:e,avChatRoomKey:o}=this.getLocalGroupCounters(t);s.forEach(t=>{e.delete(t.key)}),this._groupCountersMap.set(t,{lastUpdateTime:Date.now(),groupCounterSeq:n,counters:e,avChatRoomKey:o})}}setGroupCounters(e,t){if(!this._hasLocalGroupCounters(e))return;const s=this.getLocalGroupCounters(e),{counters:n}=s;let o=!1;Object.entries(t).forEach(([e,t])=>{n.has(e)&&n.get(e)!==t&&(n.set(e,t),o=!0)}),o&&this._groupCountersMap.set(e,Object.assign(Object.assign({},s),{lastUpdateTime:Date.now(),counters:n}))}_hasLocalGroupCounters(e){return this._groupCountersMap.has(e)}reset(){this._groupCountersMap.clear()}};var iu=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(La)})}joinGroup(e){return ge(this,void 0,void 0,function*(){const{groupID:t}=e,{helper:{ChatError:s},OuterConstant:n,ssoLog:o}=this._core;try{if(Jc.hasLocalGroup(t))try{return yield nu.getGroupProfile({groupID:t}),Xc({status:n.JOIN_STATUS_ALREADY_IN_GROUP,group:Jc.getLocalGroup(t)},{message:`groupID:${t} joinedStatus:${n.JOIN_STATUS_ALREADY_IN_GROUP}`})}catch(s){o.warn("joinGroup",`${this._name}.joinGroup ${t} was unjoined, start to join!`),Jc.deleteLocalGroup(t);return yield this._applyJoinGroup(e)}return yield this._applyJoinGroup(e)}catch(e){const{errorCode:n,errorInfo:o}=e;throw new s({functionName:"joinGroup",code:n,message:o,moreMessage:`groupID:${t}`})}})}_applyJoinGroup(e){return ge(this,void 0,void 0,function*(){const{OuterConstant:t,helper:s,ssoLog:n}=this._core,{groupID:o}=e,i=Object.assign({},e),r=s.checkBusinessCapabilityBits(Pa);r&&(i.historyMessageFlag=1);const a=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,applyMessage:n,historyMessageFlag:o}=e,i={GroupId:s,ApplyMsg:n,HugeGroupHistoryMsgFlag:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.apply_join_group",data:i})})}(i,this._core),{Type:c,JoinedStatus:u,LongPollingKey:l,StartSeq:d,HugeGroupFlag:h,AVChatRoomKey:g,RspMsgList:p=[]}=a||{},_=`groupID:${o} joinedStatus:${u} longPollingKey:${l} startSeq:${d} avChatRoomFlag:${h} canGetAVChatRoomHistoryMsg:${r}, historyMessageCount:${p.length}`;n.debug("_applyJoinGroup",`${this._name}._applyJoinGroup ok, ${_}`);let m=new zc({groupID:o,type:c});if(u===t.JOIN_STATUS_WAIT_APPROVAL)return Xc({status:t.JOIN_STATUS_WAIT_APPROVAL,group:m});if(u===t.JOIN_STATUS_SUCCESS){try{m=(yield nu.getGroupProfile({groupID:o})).data.group}catch(e){n.warn("_applyJoinGroup",`${this._name}._applyJoinGroup getGroupProfile failed, groupID: ${o}, errorCode:${null==e?void 0:e.code}`)}return this._handleJoinResult({group:m,avChatRoomFlag:h,longPollingKey:l,startSequence:d,avChatRoomKey:g,historyMessageList:p})}throw new this._core.helper.ChatError({code:Lc})})}_handleJoinResult(e){const{group:t,avChatRoomFlag:s,avChatRoomKey:n}=e;return 1===s?(tu.initGroupAttributesCache({groupID:t.groupID,avChatRoomKey:n}),ou.initGroupCountersCache({groupID:t.groupID,avChatRoomKey:n}),Xc(e)):(Jc.updateLocalGroup([t]),Jc.emitGroupListUpdate(),Xc({status:this._core.OuterConstant.JOIN_STATUS_SUCCESS,group:t},{message:`groupID:${t.groupID}`}))}};var ru=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(La)})}quitGroup(e){return ge(this,void 0,void 0,function*(){if(!Jc.hasLocalGroup(e))throw new this._core.helper.ChatError({code:Nc});const{helper:{ChatError:t}}=this._core;try{yield function(e,t){return ge(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.quit_group",data:s})})}(e,this._core);const{type:t}=Jc.getLocalGroup(e);return Jc.deleteLocalGroup(e),Jc.emitGroupListUpdate(),tu.deleteGroupAttributesCache(e),Xc({groupID:e,type:t},{message:`groupID:${e}`})}catch(s){const{errorCode:n,errorInfo:o}=s;throw new t({functionName:"quitGroup",code:n,message:o,moreMessage:`groupID:${e}`})}})}};var au=new class{constructor(){this._name="SearchGroup"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"searchGroupByID",context:this})}searchGroupByID(e){return ge(this,void 0,void 0,function*(){try{const t=yield function(e,t){return ge(this,void 0,void 0,function*(){const s={GroupIdList:[e],GroupBasePublicInfoFilter:[...Va]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_public_info",data:s})})}(e,this._core),{GroupInfo:s=[]}=t||{},{AppDefinedData:n=[],ApplyJoinOption:o,CreateTime:i,FaceUrl:r,Introduction:a,InviteJoinOption:c,MaxMemberNum:u,MemberNum:l,Name:d,Owner_Account:h,Type:g,ErrorCode:p,ErrorInfo:_}=s[0];if(0!==p)throw new this._core.helper.ChatError({code:p,message:_});const m=jc(n),v=new zc({groupID:e,name:d,avatar:r,introduction:a,joinOption:o,inviteOption:c,maxMemberCount:u,memberCount:l,type:g,ownerID:h,createTime:i,groupCustomField:m});return Xc({group:v})}catch(e){const{errorCode:t,errorInfo:s}=e;throw new this._core.helper.ChatError({functionName:"searchGroupByID",code:t,message:s})}})}};var cu=new class{constructor(){this._name="UpdateGroupProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"updateGroupProfile",context:this})}updateGroupProfile(e){return ge(this,void 0,void 0,function*(){const{groupID:t}=e,{utils:{isUndefined:s},ssoLog:n,helper:o}=this._core;let i=Jc.getLocalGroup(t);if(i){const{type:o}=i;this._canIUseJoinOption(o)||s(e.joinOption)||(n.warn("updateGroupProfile",`${this._name}.updateGroupProfile groupID:${t} 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 ge(this,void 0,void 0,function*(){const{groupID:s,name:n,avatar:o,introduction:i,notification:r,muteAllMembers:a,joinOption:c,inviteOption:u,groupCustomField:l}=e,d={GroupId:s,Name:n,FaceUrl:o,Introduction:i,Notification:r,ShutUpAllMember:a,ApplyJoinOption:c,InviteJoinOption:u,AppDefinedData:l?Hc(l):void 0};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_base_info",data:d})})}(e,this._core),i?(i.updateGroup(e),Jc.emitGroupListUpdate()):i=new zc(e),Xc({group:i},{message:`groupID:${t}`})}catch(e){const{errorCode:s,errorInfo:n}=e;throw new o.ChatError({code:s,message:n,moreMessage:`groupID:${t}`})}})}_canIUseJoinOption(e){return qc(e)||this._core.common.isCommunity({type:e})}};var uu=new class{constructor(){this._name="ChangeGroupOwner"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"changeGroupOwner",context:this})}changeGroupOwner(e){return ge(this,void 0,void 0,function*(){const t="changeGroupOwner",{groupID:s,newOwnerID:n}=e,o=Jc.getLocalGroup(s),{helper:i,OuterConstant:r,common:{getCurrentUserID:a}}=this._core;if((null==o?void 0:o.type)===r.GRP_AVCHATROOM)throw new i.ChatError({functionName:t,code:Dc});if(n===a())throw new i.ChatError({functionName:t,code:bc});try{return yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,newOwnerID:n}=e,o={GroupId:s,NewOwner_Account:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.change_group_owner",data:o})})}(e,this._core),o.ownerID=n,Jc.emitGroupListUpdate(),Xc({group:o})}catch(e){throw new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var lu=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(La)})}getGroupOnlineMemberCount(e){return ge(this,void 0,void 0,function*(){const t="getGroupOnlineMemberCount";if(!Jc.hasLocalGroup(e))return Xc({memberCount:0});const s=Date.now();if(this._onlineMemberCountMap.has(e)){const t=this._onlineMemberCountMap.get(e),{lastReqTime:n=0,memberCount:o=0}=t||{};if(s-n<=6e4)return Xc({memberCount:o})}try{const s=yield function(e,t){return ge(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:s})})}(e,this._core),{OnlineMemberNum:n=0}=s||{};this._onlineMemberCountMap.set(e,{lastReqTime:Date.now(),memberCount:n});const o=`${this._name}.${t} ok. groupID:${e} memberCount:${n}`;return Xc({memberCount:n},{message:o})}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var du=new class{init(e,t){e.ssoLog.debug("GroupAction.init"),Zc.init(e),eu.init(e),su.init(e,t),iu.init(e,t),ru.init(e,t),au.init(e),nu.init(e),cu.init(e),uu.init(e),lu.init(e,t)}dismissGroup(e){return su.dismissGroup(e)}joinGroup(e){return iu.joinGroup(e)}quitGroup(e){return ru.quitGroup(e)}getGroupOnlineMemberCount(e){return lu.getGroupOnlineMemberCount(e)}};var hu=new class{constructor(){this._name="GetGroupApplicationList"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupApplicationList",context:this})}getGroupApplicationList(){return ge(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})]);this._core.ssoLog.debug("getGroupApplicationList",`${this._name}.${e} ok.`);const s=this._handleGroupApplicationResult([...t[0],...t[1]]);return Xc({applicationList:s})}catch(t){throw new this._core.helper.ChatError({functionName:e,code:null==t?void 0:t.errorCode,message:null==t?void 0:t.errorInfo})}})}_getGroupApplicationList(e){return ge(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 ge(this,void 0,void 0,function*(){const{type:s,startTime:n,limit:o,handleAccount:i}=e,r={Type:s,StartTime:n,Limit:o,Handle_Account:i};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_pendency",data:r})})}({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:a=[]}=i||{};if(0===r)return a;const c=yield this._getGroupApplicationList(Object.assign(Object.assign({},e),{startTime:r}));return[...a,...c]})}_handleGroupApplicationResult(e){const t=[];return e.forEach(e=>{const s=this._convertApplicationData(e),{handled:n}=s,o=he(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:u,To_Account:l}=e;return{handled:t,messageKey:s,applicant:r,applicantNick:i,groupID:a,groupName:c,authentication:o,applicationType:u,userID:l,note:n}}};var gu=new class{constructor(){this._name="HandleGroupApplication"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"handleGroupApplication",context:this})}handleGroupApplication(e){return ge(this,void 0,void 0,function*(){const{application:t}=e,s=this._handleParams(e);try{(null==t?void 0:t.applicationType)===Xa?yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,handleAction:n,handleMessage:o,applicant:i,authentication:r,invitee:a}=e,c={GroupId:s,HandleMsg:n,ApprovalMsg:o,Applicant_Account:i,Authentication:r,Invited_Account:a};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_invite_join_permission_group",data:c})})}(s,this._core):yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,handleAction:n,handleMessage:o,applicant:i,authentication:r,messageKey:a}=e,c={GroupId:s,HandleMsg:n,ApprovalMsg:o,Applicant_Account:i,Authentication:r,MsgKey:a};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.handle_apply_join_group",data:c})})}(s,this._core);const e=Jc.getLocalGroup(s.groupID);return Xc({group:e})}catch(e){throw new this._core.helper.ChatError({functionName:"handleGroupApplication",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_handleParams(e){var t;const{handleAction:s,handleMessage:n,message:o,application:i}=e;let r,a,c,u,l;if(o){const{payload:e}=o||{};r=e.operatorID,a=null===(t=e.groupProfile)||void 0===t?void 0:t.groupID,c=e.authentication,u=e.messageKey}else r=(null==i?void 0:i.applicant)||"",a=(null==i?void 0:i.groupID)||"",c=(null==i?void 0:i.authentication)||"",u=(null==i?void 0:i.messageKey)||0;return(null==i?void 0:i.applicationType)===Xa&&(l=i.userID),{handleAction:s,handleMessage:n,applicant:r,invitee:l,groupID:a,authentication:c,messageKey:u}}};var pu=new class{init(e){e.ssoLog.debug("GroupApplication.init"),hu.init(e),gu.init(e)}};let _u=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}}}=Na;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&&Bc(this.memberCustomField,e.memberCustomField),s(this,e,["memberCustomField","marks","onlineStatus","muteTime"],n)}};function mu(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,userID:n,muteTime:o,role:i,nameCard:r,memberCustomField:a}=e;let c;a&&(c=Hc(a));const u={GroupId:s,Member_Account:n,ShutUpTime:o,Role:i,NameCard:r,AppMemberDefinedData:c};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_member_info",data:u})})}var vu=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(La)})}getGroupMemberList(e){return ge(this,void 0,void 0,function*(){const t="getGroupMemberList",{groupID:s,offset:n=0,count:o=100,role:i="",filter:r=""}=e,a=Jc.getLocalGroup(s),c=o>100?100:o,u={groupID:s,offset:n,limit:c,memberRoleFilter:Za.includes(i)?[i]:void 0,memberInfoFilter:ec};try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{isCommunity:s}=t.common,{groupID:n,offset:o,limit:i,memberRoleFilter:r,memberInfoFilter:a}=e,c={GroupId:n,Limit:i,MemberRoleFilter:r,MemberInfoFilter:a};return s({groupID:n})?c.Next=String(o):c.Offset=o,t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_member_info",data:c})})}(u,this._core),{MemberList:o,MemberNum:i,Next:r}=e||{},l=`${this._name}.${t} ok, totalMemberCount:${i} next:${r}`,{utils:{isArray:d,isEmpty:h},common:{isCommunity:g}}=this._core;if(a&&(a.memberCount=i),!d(o)||0===o.length)return Xc({memberList:[],offset:0},{message:l});let p=n+c;g({groupID:s})&&(p=h(r)?0:r),o.length<c&&(p=0);let _=this._convertMemberInfo(o);_=yield this._patchAvatarAndNick(_);const m=this._generateGroupMember(_);return Xc({memberList:m,offset:p},{message:l})}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_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,NameCard:u}=e[s],l=jc(n);t.push({userID:i,joinTime:o,onlineStatus:r,role:a,muteUntil:c,memberCustomField:l,nameCard:u})}return t}_patchAvatarAndNick(e){return ge(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 _u(e[s]);t.push(n)}return t}};var fu=new class{constructor(){this._name="GetGroupMemberProfile"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupMemberProfile",context:this})}getGroupMemberProfile(e){return ge(this,void 0,void 0,function*(){const t="getGroupMemberProfile",{groupID:s,userIDList:n,memberCustomFieldFilter:o}=e,i=Jc.getLocalGroup(s),{helper:r,utils:{isArray:a},ssoLog:c}=this._core;if(i&&Vc(i.type))throw new r.ChatError({functionName:t,replacement1:t,code:Fc});n.length>50&&(c.warn("getGroupMemberProfile",`${this._name}.${t} userIDList length:${n.length} exceeds limit 50`),n.splice(50));const u=`userIDList length:${n.length} groupID:${s}`;try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,userIDList:n,memberInfoFilter:o,memberCustomFieldFilter:i}=e,r={GroupId:s,Member_List_Account:n,MemberInfoFilter:o,AppDefinedDataFilter_GroupMember:i};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_specified_group_member_info",data:r})})}({groupID:s,userIDList:n,memberCustomFieldFilter:o,memberInfoFilter:[...ec]},this._core),{MemberList:t}=e||{};if(!a(t)||0===t.length)return Xc({memberList:[]});let i=this._convertMemberInfo(t);i=yield this._getMemberAvatarAndNick(i);const r=this._generateGroupMember(i);return Xc({memberList:r},{message:u})}catch(e){throw new r.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:u})}})}_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,NameCard:u}=e[s],l=jc(n);t.push({userID:i,joinTime:o,onlineStatus:r,role:a,muteUntil:c,memberCustomField:l,nameCard:u})}return t}_getMemberAvatarAndNick(e){return ge(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 _u(e[s]);t.push(n)}return t}};var Iu=new class{constructor(){this._name="AddGroupMember"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"addGroupMember",context:this})}addGroupMember(e){return ge(this,void 0,void 0,function*(){const t="addGroupMember",{groupID:s,userIDList:n}=e,o=Jc.getLocalGroup(s),{helper:i}=this._core;if(o&&Vc(o.type))throw new i.ChatError({functionName:t,code:Pc});const r=n.map(e=>({Member_Account:e}));try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,userIDList:n}=e,o={GroupId:s,MemberList:n};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.add_group_member",data:o})})}({groupID:s,userIDList:r},this._core),{MemberList:t=[]}=e||{},{failureUserIDList:n,successUserIDList:i,existedUserIDList:a,overLimitUserIDList:c}=this._handleResult(t);return Xc({failureUserIDList:n,successUserIDList:i,existedUserIDList:a,overLimitUserIDList:c,group:o},{message:` groupID:${s} successUserIDList:${i} failureUserIDList:${n} existedUserIDList:${a} overLimitUserIDList:${c}`})}catch(e){throw new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_handleResult(e){const t=[],s=[],n=[],o=[];return e.forEach(e=>{const{Result:i,Member_Account:r}=e;i===tc?t.push(r):i===sc?s.push(r):i===nc?n.push(r):i===oc&&o.push(r)}),{failureUserIDList:t,successUserIDList:s,existedUserIDList:n,overLimitUserIDList:o}}};var Eu=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(La)})}deleteGroupMember(e){return ge(this,void 0,void 0,function*(){const t="deleteGroupMember",{groupID:s,userIDList:n}=e,o=Jc.getLocalGroup(s),{helper:i,utils:{isUndefined:r},ssoLog:a}=this._core;if(r(o))throw new i.ChatError({functionName:t,code:Rc});n.length>20&&(a.warn("deleteGroupMember",`${this._name}.${t} userIDList length:${n.length} exceeds limit 20`),n.splice(20));try{return yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,userIDList:n,reason:o}=e,i={GroupId:s,MemberToDel_Account:n,Reason:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_member",data:i})})}({groupID:s,userIDList:n},this._core),Xc({group:o,userIDList:n},{message:`groupID:${s} userIDList length:${n.length}`})}catch(e){throw new i.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var Su=new class{constructor(){this._name="SetGroupMemberMuteTime"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberMuteTime",context:this})}setGroupMemberMuteTime(e){return ge(this,void 0,void 0,function*(){const{helper:t}=this._core,{groupID:s,userID:n,muteTime:o}=e,i=` groupID:${s} userID:${n} muteTime:${o}`;this._preCheckSettingMuteParams(e);try{yield mu(e,this._core);const t=Jc.getLocalGroup(s),r=new _u({userID:n,muteTime:o});return Xc({group:t,member:r},{message:i})}catch(e){throw new t.ChatError({functionName:"setGroupMemberMuteTime",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:i})}})}_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:kc})}};var Cu=new class{constructor(){this._name="SetGroupMemberRole"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberRole",context:this})}setGroupMemberRole(e){return ge(this,void 0,void 0,function*(){const t="setGroupMemberRole",{helper:s}=this._core,{groupID:n,userID:o,role:i}=e,r=`${this._name}.${t} ok, groupID:${n} userID:${o} role:${i}`;this._preCheckSettingRoleParams(e);try{yield mu(e,this._core);const t=Jc.getLocalGroup(n),s=new _u({userID:o,role:i});return Xc({group:t,member:s},{message:r})}catch(e){throw new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:r})}})}_preCheckSettingRoleParams(e){var t;const{groupID:s,userID:n,role:o}=e,{store:i,helper:r,OuterConstant:a,common:{isCommunity:c}}=this._core,u=Jc.getLocalGroup(s);if((null===(t=null==u?void 0:u.selfInfo)||void 0===t?void 0:t.role)!==a.GRP_MBR_ROLE_OWNER)throw new r.ChatError({functionName:"setGroupMemberRole",code:Gc});if(n===i.get("login").userId)throw new r.ChatError({functionName:"setGroupMemberRole",code:Uc});const l=[...Za];if(c({groupID:s})&&l.push(a.GRP_MBR_ROLE_CUSTOM),!l.includes(o))throw new r.ChatError({functionName:"setGroupMemberRole",code:wc})}};var Mu=new class{constructor(){this._name="SetGroupMemberNameCard"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberNameCard",context:this})}setGroupMemberNameCard(e){return ge(this,void 0,void 0,function*(){const t="setGroupMemberNameCard",{helper:s,common:{getCurrentUserID:n}}=this._core;this._preCheckSettingNameCardParams(e);try{const{groupID:s,userID:o=n(),nameCard:i}=e,r={groupID:s,userID:o,nameCard:i};yield mu(r,this._core);const a=`${this._name}.${t} ok, groupID:${s} userID:${o} nameCard:${i}`,c=Jc.getLocalGroup(s),u=new _u({userID:o,nameCard:i});return Xc({group:c,member:u},{message:a})}catch(e){throw new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:logText})}})}_preCheckSettingNameCardParams(e){const{groupID:t}=e,{helper:s}=this._core,n=Jc.getLocalGroup(t);if(Vc(null==n?void 0:n.type))throw new s.ChatError({functionName:"setGroupMemberNameCard",code:Fc})}};var yu=new class{constructor(){this._name="SetGroupMemberCustomField"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupMemberCustomField",context:this})}setGroupMemberCustomField(e){return ge(this,void 0,void 0,function*(){const t="setGroupMemberCustomField",{helper:s,common:{getCurrentUserID:n}}=this._core;this._preCheckSettingCustomFiledParams(e);const{groupID:o,userID:i=n(),memberCustomField:r}=e,a=`${this._name}.${t} ok, groupID:${o}userID:${i} memberCustomField:${JSON.stringify(r)}`;try{const e={groupID:o,userID:i,memberCustomField:r};yield mu(e,this._core);const t=Jc.getLocalGroup(o),s=new _u({userID:i,memberCustomField:r});return Xc({group:t,member:s},{message:a})}catch(e){throw new s.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo,moreMessage:a})}})}_preCheckSettingCustomFiledParams(e){const{groupID:t}=e,{helper:s}=this._core,n=Jc.getLocalGroup(t);if(Vc(null==n?void 0:n.type))throw new s.ChatError({functionName:"setGroupMemberCustomField",code:Fc})}};var Ou=new class{init(e,t){e.ssoLog.debug("GroupMember.init"),vu.init(e,t),fu.init(e),Iu.init(e),Eu.init(e,t),Su.init(e),Cu.init(e),Mu.init(e),yu.init(e)}getGroupMemberList(e){return vu.getGroupMemberList(e)}deleteGroupMember(e){return Eu.deleteGroupMember(e)}};var Au=new class{init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupCounters",context:this})}getGroupCounters(e){return ge(this,void 0,void 0,function*(){const t="getGroupCounters";try{Kc(t,Ga);const{groupID:s,keyList:n=[]}=e,{avChatRoomKey:o,lastUpdateTime:i}=ou.getLocalGroupCounters(s);if(!(Date.now()-i>=this._getExpireTime())){return{code:0,data:{counters:ou.getLocalCounters(s,n)}}}const r=yield function(e){return ge(this,void 0,void 0,function*(){const{groupID:t,GroupCounterKeys:s,avChatRoomKey:n}=e,{common:o}=Na.core,i={GroupId:t,keyList:s,BytesKey:n};return o.buildAndSendPacket({servcmd:"group_open_http_svc.get_group_counter",data:i})})}({groupID:s,keyList:n,avChatRoomKey:o}),{GroupCounter:a=[],GroupCounterSeq:c}=r;ou.updateLocalGroupCounters({groupID:s,counterList:a,groupCounterSeq:c});return{code:0,data:{counters:ou.getLocalCounters(s,n)}}}catch(e){Wc(t,e)}})}_getExpireTime(){const{store:e,utils:{isUndefined:t}}=this._core,s=e.get("cloudConfig")||{},{grp_counter_expire_time:n}=s;return t(n)?3e4:Number(n)}};var Tu=new class{init(e){const{helper:t}=e;t.registerApi({apiName:"setGroupCounters",context:this}),t.registerApi({apiName:"increaseGroupCounter",context:this}),t.registerApi({apiName:"decreaseGroupCounter",context:this})}setGroupCounters(e){return ge(this,void 0,void 0,function*(){return this._handleCounterOperation(wa,e)})}increaseGroupCounter(e){return ge(this,void 0,void 0,function*(){return this._handleCounterOperation(Ua,e)})}decreaseGroupCounter(e){return ge(this,void 0,void 0,function*(){return this._handleCounterOperation(ka,e)})}_handleCounterOperation(e,t){return ge(this,void 0,void 0,function*(){const s=`${e}GroupCounter`;try{Kc(s,Ga);const{groupID:n,key:o,value:i=0}=t,{avChatRoomKey:r}=ou.getLocalGroupCounters(n),a=e===wa?this._convertObjectToList(t.counters):[{Key:o,Value:i}],c=yield this._updateGroupCounters({groupID:n,counterList:a,avChatRoomKey:r,mode:e});return ou.setGroupCounters(n,c),{code:0,data:{counters:c}}}catch(e){Wc(s,e)}})}_updateGroupCounters(e){return ge(this,void 0,void 0,function*(){const t=yield function(e){const{groupID:t,counterList:s,mode:n,avChatRoomKey:o}=e,{common:i}=Na.core,r={GroupId:t,GroupCounter:s,Mode:n,BytesKey:o};return i.buildAndSendPacket({servcmd:"group_open_http_svc.update_group_counter",data:r})}(e),{GroupCounter:s=[]}=t,n={};return s.forEach(e=>{const{Key:t,Value:s=0}=e;n[t]=s}),n})}_convertObjectToList(e){return Object.entries(e).map(([e,t])=>({Key:e,Value:t||0}))}};var Ru=new class{init(e){this._core=e,Au.init(e),Tu.init(e)}isGroupCounterUpdated(e){const{elements:{groupCounterInfo:t}}=e,{utils:{isEmpty:s}}=this._core;return!s(t)}handleGroupCounterUpdated(e){const{to:t,elements:{groupCounterInfo:s}}=e;s.forEach(e=>{const{type:s,groupCounterSeq:n,counterList:o=[]}=e;s!==Fa&&s!==xa||this._processAndNotifyCounterUpdate(t,n,o),s===$a&&ou.deleteLocalGroupCounters({groupID:t,groupCounterSeq:n,counterList:o})})}_processAndNotifyCounterUpdate(e,t,s){const{OuterEvent:n,notificationCenter:o}=this._core;ou.updateLocalGroupCounters({groupID:e,groupCounterSeq:t,counterList:s}),s.forEach(({Key:t,Value:s=0})=>{o.emitOuterEvent(n.GROUP_COUNTER_UPDATED,{name:n.GROUP_COUNTER_UPDATED,data:{groupID:e,key:t,value:s}})})}reset(){ou.reset()}};var Du=new class{constructor(){this._name="InitGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"initGroupAttributes",context:this})}initGroupAttributes(e){return ge(this,void 0,void 0,function*(){const{groupID:t,groupAttributes:s}=e,{serverMainSequence:n,avChatRoomKey:o}=tu.getGroupAttributesCache(t),i=tu.convertKeyValueMapToList(s);try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e,r={GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.set_group_attr",data:r})})}({groupID:t,avChatRoomKey:o,groupAttributeList:i,mainSequence:n},this._core),{AttrMainSeq:r,GroupAttr:a}=e||{},c=a.map(e=>{const{Key:t,seq:n}=e;return{key:t,value:s[t],sequence:n}});return tu.saveGroupAttributesCacheValuesCopy(t),tu.refreshGroupAttributesCache({groupID:t,serverMainSequence:r,groupAttributeList:c,operation:ic}),tu.emitGroupAttributesUpdated(t),Xc({groupAttributes:s},{message:` groupID:${t} serverMainSequence:${r}`})}catch(e){throw new this._core.helper.ChatError({functionName:"initGroupAttributes",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var bu=new class{constructor(){this._name="SetGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"setGroupAttributes",context:this})}setGroupAttributes(e){return ge(this,void 0,void 0,function*(){const{groupID:t,groupAttributes:s}=e,{serverMainSequence:n,avChatRoomKey:o,values:i}=tu.getGroupAttributesCache(t),r=tu.convertKeyValueMapToList(s).map(e=>{var t;const{key:s,value:n}=e;return{key:s,value:n,seq:(null===(t=i.get(e.key))||void 0===t?void 0:t.sequence)||0}});try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e,r={GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.modify_group_attr",data:r})})}({groupID:t,avChatRoomKey:o,groupAttributeList:r,mainSequence:n},this._core),{AttrMainSeq:i,GroupAttr:a}=e||{},c=a.map(e=>{const{Key:t,seq:n}=e;return{key:t,value:s[t],sequence:n}});return tu.saveGroupAttributesCacheValuesCopy(t),tu.refreshGroupAttributesCache({groupID:t,serverMainSequence:i,groupAttributeList:c,operation:rc}),tu.emitGroupAttributesUpdated(t),Xc({groupAttributes:s},{message:` groupID:${t} serverMainSequence:${i}`})}catch(e){throw new this._core.helper.ChatError({functionName:"setGroupAttributes",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var Nu=new class{constructor(){this._name="DeleteGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"deleteGroupAttributes",context:this})}deleteGroupAttributes(e){return ge(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||{},c=`${this._name}.${t} ok. groupID:${s} operation: ${r}`;return tu.saveGroupAttributesCacheValuesCopy(s),tu.refreshGroupAttributesCache({groupID:s,serverMainSequence:i,groupAttributeList:a,operation:r}),tu.emitGroupAttributesUpdated(s),Xc({keyList:o},{message:c})}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_deleteGroupAttributes(e,t){return ge(this,void 0,void 0,function*(){const{serverMainSequence:s,avChatRoomKey:n,values:o}=tu.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 a=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,groupAttributeList:o,avChatRoomKey:i}=e,r={GroupId:s,AttrMainSeq:n,GroupAttr:o,BytesKey:i,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.delete_group_attr",data:r})})}({groupID:e,avChatRoomKey:n,groupAttributeList:r,mainSequence:s},this._core),{AttrMainSeq:c}=a||{};return{resultList:i,serverMainSequence:c,groupAttributeList:r,operation:cc}})}_clearGroupAttributes(e){return ge(this,void 0,void 0,function*(){const{serverMainSequence:t,avChatRoomKey:s,values:n}=tu.getGroupAttributesCache(e),o=[...n.keys()],i=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,mainSequence:n,avChatRoomKey:o}=e,i={GroupId:s,AttrMainSeq:n,BytesKey:o,AttrControl:["RaceConflict"]};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.clear_group_attr",data:i})})}({groupID:e,avChatRoomKey:s,mainSequence:t},this._core),{AttrMainSeq:r}=i||{};return{resultList:o,serverMainSequence:r,operation:ac}})}};var Lu=new class{constructor(){this._name="GetGroupAttributes"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"getGroupAttributes",context:this})}getGroupAttributes(e){return ge(this,void 0,void 0,function*(){const{groupID:t}=e,{avChatRoomKey:s,lastUpdateTime:n,localMainSequence:o,serverMainSequence:i}=tu.getGroupAttributesCache(t),{helper:{ChatError:r}}=this._core,a=`groupID:${t} localMainSequence:${o} serverMainSequence:${i} keyList:${e.keyList}`;if(Date.now()-n>=3e4||o<i)try{const n=yield this.getGroupAttributesFromServer({groupID:t,avChatRoomKey:s}),o=tu.getGroupAttributesCacheValues(e),{serverGroupAttributeList:i=[]}=n||{};return Xc({groupAttributes:o},{message:a,moreMessage:`from server, count:${i.length}`})}catch(e){throw new r({functionName:"getGroupAttributes",code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}const c=tu.getGroupAttributesCacheValues(e);return Xc({groupAttributes:c},{message:a,moreMessage:"from cache"})})}getGroupAttributesFromServer(e){return ge(this,void 0,void 0,function*(){const{utils:{isUndefined:t},ssoLog:s}=this._core,{groupID:n,avChatRoomKey:o}=e,i=t(o)?dc:lc,r=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,groupType:n,avChatRoomKey:o}=e,i={GroupId:s,GroupType:n,Key:o};return t.common.buildAndSendPacket({servcmd:"group_open_attr_http_svc.get_group_attr",data:i})})}({groupID:n,avChatRoomKey:o,groupType:i},this._core),{AttrMainSeq:a=0,GroupAttrAry:c}=r||{};s.debug("getGroupAttributesFromServer",`${this._name}._getGroupAttributesFromServer ok. groupID:${n} serverMainSequence:${a}`);const u=c.map(e=>{const{key:t,value:s,seq:n}=e;return{key:t,value:s,sequence:n}});return tu.refreshGroupAttributesCache({groupID:n,serverMainSequence:a,groupAttributeList:u,operation:uc}),{serverGroupAttributeList:c}})}};var Pu=new class{init(e){e.ssoLog.debug("GroupAttribute.init"),Du.init(e),bu.init(e),Nu.init(e),Lu.init(e),tu.init(e)}isGroupAttributesUpdated(e){return tu.isGroupAttributesUpdated(e)}handleGroupAttributesUpdated(e){const{to:t,elements:{newGroupProfile:s}}=e,{groupAttributeOption:n}=s,{serverMainSequence:o,withChangedAttributeInfo:i}=n,{localMainSequence:r}=tu.getGroupAttributesCache(t),a=o-r;if(console.log(`GroupAttribute.handleGroupAttributesUpdated groupID:${t} withChangedAttributeInfo:${i} diffSequence:${a}`),0!==a)if(tu.saveGroupAttributesCacheValuesCopy(t),1!==i||1!==a){if(tu.hasGroupAttributesCache(t)){const{avChatRoomKey:e}=tu.getGroupAttributesCache(t);Lu.getGroupAttributesFromServer({groupID:t,avChatRoomKey:e}).then(()=>{tu.emitGroupAttributesUpdated(t)}).catch(()=>{})}}else tu.handleGroupAttributesUpdated({groupID:t,groupAttributeOption:n})}reset(){tu.reset()}};function Gu(e,t="tips"){const{ClientSeq:s,From_Account:n,MsgClientTime:o,MsgPriority:i,MsgRandom:r,MsgSeq:a,MsgTimeStamp:c,TinyId:u,ToGroupId:l,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:u,to:l,groupProfile:g,elements:"tips"===t?wu(h):ku(h)}}function wu(e){const t={};return Object.keys(e).forEach(s=>{var n,o;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=null===(n=e[s])||void 0===n?void 0:n.map(e=>Uu(e));break;case"MsgOperatorMemberExtraInfo":t.operatorInfo=Uu(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]);break;case"MsgAppDefinedData":t.groupCustomField=e[s]}}),t}(e[s]);break;case"MsgMemberInfo":t.msgMemberInfo=null===(o=e[s])||void 0===o?void 0:o.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]);break;case"GroupCounterInfo":t.groupCounterInfo=function(e){return e.map(e=>{const{GroupCounterSeq:t,GroupCounter:s,Type:n}=e;return{type:n,groupCounterSeq:t,counterList:s}})}(e[s])}}),t}function Uu(e){const{ImageUrl:t,NickName:s,Role:n,UserId:o}=e;return{avatar:t,nick:s,role:n,userID:o}}function ku(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];break;case"MuteTime":t.muteTime=e[s];break;case"MsgMemberExtraInfoList":t.inviteeInfoList=null==(n=e[s]||[])?void 0:n.map(e=>{const{UserId:t,ImageUrl:s,NickName:n}=e;return{userID:t,avatar:s,nick:n}});break;case"MemberList_Account":t.inviteeList=e[s]}var n}),t}class Fu{constructor(e){this.type=Na.core.OuterConstant.MSG_GRP_TIP,this.content={},this._initContent(e)}static parseServerPushElement(e){const t=wu(e);return new Fu(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];mc[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 $u=new class{constructor(){this._name="GroupTipsNotification"}init(e){this._core=e;const{common:{workflowManager:t},constants:{WORKFLOW_NAME:s,WORKFLOW_STEP:n}}=e,{message:{messageFactory:o},OuterConstant:i}=e;null==o||o.registerElementClass(i.MSG_GRP_TIP,Fu),t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.GROUP_TIPS_RECOVER,this._handleGroupTipsRecover,this),t.registerWorkflowStep(s.RECEIVE_GROUP_TIPS_NOTIFICATION,n.HANDLE_GROUP_TIPS_NOTIFICATION,this.onNewGroupTips,this)}onNewGroupTips(e){const{data:t}=e||{},{messageList:s,conversationUpdateFieldList:n}=this._handleGroupTips(t),{notificationCenter:o,OuterEvent:i}=this._core;return s.length>0&&(o.emitOuterEvent(i.MESSAGE_RECEIVED,{name:i.MESSAGE_RECEIVED,data:s}),this._handleGroupTipMessage(s)),{conversationUpdateFieldList:n}}_handleGroupTips(e,t=!0){const{Event:s,GroupTips:n}=e,o=new Map,i=[],r=[];for(let e=0,i=n.length;e<i;e++){const i=Gu(n[e],"tips");if(s===gc){if(Pu.isGroupAttributesUpdated(i)){Pu.handleGroupAttributesUpdated(i);continue}if(Ru.isGroupCounterUpdated(i)){Ru.handleGroupCounterUpdated(i);continue}}const{groupProfile:{groupID:a}}=i;if(!Jc.hasLocalGroup(a))continue;const c=this._assembleMessage(i);if(s===gc&&(c._onlineOnlyFlag=!0,r.push(c)),s===hc){if(!this._core.message.messageDataHandler.storeConversationMessage(c)&&t)continue;r.push(c)}this._handleConversationOptions(o,c)}return i.push(...o.values()),{conversationUpdateFieldList:i,messageList:r}}_assembleMessage(e){const{OuterConstant:t,message:{messageFactory:s},common:{setGroupTipsUserInfo:n}}=this._core;e.flow="in",e.conversationType=t.CONV_GROUP;const o=s.createMessage(e);n(e.elements,o);const i=new Fu(Object.assign(Object.assign({},e.elements),{groupProfile:Object.assign({},e.groupProfile)}));return o.setElement(i),o.isSystemMessage=!1,o}_handleConversationOptions(e,t){const{common:{getMessagePreviewText:s},utils:{isObject:n}}=this._core,{conversationID:o,conversationType:i}=t;let r;if(e.has(o))r=e.get(o),"in"===t.flow&&(t._isExcludedFromUnreadCount||t._onlineOnlyFlag||r.unreadCount++),r.type=i,r.lastMessage=t._isExcludedFromLastMessage?"":Object.assign({},t);else{let e=0;"in"===t.flow&&(t._isExcludedFromUnreadCount||t._onlineOnlyFlag||(e=1)),r={conversationID:o,unreadCount:e,type:i,lastMessage:t._isExcludedFromLastMessage?"":Object.assign({},t)}}n(r.lastMessage)&&(r.lastMessage.messageForShow=s(r.lastMessage.type,r.lastMessage.payload)),e.set(o,r)}_handleGroupTipMessage(e){const{OuterConstant:{GROUP_TIPS_OPERATION_TYPE:t}}=this._core;e.forEach(e=>{const{operationType:s}=e.payload;switch(s){case t.JOINED:this._handleNewMemberJoined(e);break;case t.QUITTED:this._handleMemberQuitted(e);break;case t.KICKED:this._handleMemberKicked(e);break;case t.GROUP_PROFILE_UPDATED: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=Jc.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])}),Jc.emitGroupListUpdate(),Jc.updateConversationGroupProfile(i)}_handleGroupOwnerChanged(e,t){const{common:s,OuterConstant:n}=this._core,o=Jc.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===pc?n=s.GRP_MBR_ROLE_OWNER:t===_c&&(n=s.GRP_MBR_ROLE_ADMIN),e.updateSelfInfo({role:n})}_handleGroupMemberCountUpdated(e){const{memberCount:t,groupProfile:{groupID:s}}=e.payload,n=Jc.getLocalGroup(s),{utils:{isNumber:o}}=this._core;n&&o(t)&&n.memberCount!==t&&(n.memberCount=t,Jc.emitGroupListUpdate(),Jc.updateConversationGroupProfile(s))}_handleGroupTipsRecover(e){const{utils:{isArray:t}}=this._core,{groupTipList:s}=(null==e?void 0:e.result)||{};t(s)&&s.forEach(e=>{const{messageList:t}=this._handleGroupTips({Event:e.Event,GroupTips:[e]},!1);this._handleGroupTipMessage(t)})}};class xu{constructor(e){this.type=Na.core.OuterConstant.MSG_GRP_SYS_NOTICE,this.content={},this._initContent(e)}static parseServerPushElement(e){const t=ku(e);return new xu(t)}_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];vc[n]&&(this.content.groupProfile[n]=e[n])}}}var qu=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,xu)}onNewGroupSystemNotification(e){const{GroupTips:t=[],isInstantMessage:s=!0}=e;this._core.ssoLog.debug("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=Gu(e[o],"system"),{elements:{operationType:r}}=i;if(r===Mc)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 xu(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 fc:this._handleGroupJoinResult(e);break;case Ic:this._handleMemberKicked(e);break;case Ec:this._handleGroupDismissed(e);break;case Sc:this._handleGroupInvitedResult(e);break;case Cc:this._handleGroupQuitResult(e);break;case yc:this._handleMessageRemindTypeSynced(e);break;case Oc:this._handleAVChatRoomMemberBanned(e)}})}_handleGroupJoinResult(e){const{groupProfile:t}=e.payload,{groupID:s,type:n}=t,o=Jc.hasLocalGroup(s);this._core.ssoLog.debug("_handleGroupJoinResult",` groupID:${s} type:${n} hasLocalGroup:${o}`),o||Vc(n)||(Jc.updateLocalGroup([Object.assign({},t)]),Jc.emitGroupListUpdate())}_handleMemberKicked(e){const{groupProfile:{groupID:t,type:s}}=e.payload;Jc.hasLocalGroup(t)&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleGroupDismissed(e){const{groupProfile:{groupID:t,type:s}}=e.payload;Jc.hasLocalGroup(t)&&this._deleteLocalGroup(t,s),this._updateConversationProfile(t,{unreadCount:0})}_handleGroupInvitedResult(e){const{groupProfile:t}=e.payload,{groupID:s}=t,n=Jc.hasLocalGroup(s);this._core.ssoLog.debug("_handleGroupInvitedResult",` groupID:${s} hasLocalGroup:${n}`),n||nu.getGroupProfile({groupID:s}).then(e=>{const{data:{group:t}}=e;Jc.updateLocalGroup([Object.assign({},t)]),Jc.emitGroupListUpdate()})}_handleGroupQuitResult(e){const{groupProfile:{groupID:t,type:s}}=e.payload,n=Jc.hasLocalGroup(t);this._core.ssoLog.debug("_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(Vc(t)){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core;t.deleteConversation(`${s}${e}`)}Jc.deleteLocalGroup(e),Jc.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 Vu=new class{init(e){this._core=e,e.ssoLog.debug("GroupNotificationHandler.init"),$u.init(e),qu.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){const{common:{workflowManager:t},constants:{WORKFLOW_NAME:s}}=this._core;t.executeWorkflow(s.RECEIVE_GROUP_TIPS_NOTIFICATION,e)}_onNewGroupSystemNotification(e){qu.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 Bu={required:!0,rules:["string"],allowEmpty:!1},ju={required:!0,rules:["number"],allowEmpty:!1},Hu={required:!0,rules:["array"],allowEmpty:!1},Ku={required:!0,rules:["object"],allowEmpty:!1},Wu={createGroup:{name:Bu,type:Bu},dismissGroup:[Object.assign({key:"groupID"},Bu)],joinGroup:{groupID:Bu,applyMessage:{required:!1,rules:["string"],allowEmpty:!0}},quitGroup:[Object.assign({key:"groupID"},Bu)],searchGroupByID:[Object.assign({key:"groupID"},Bu)],getGroupProfile:{groupID:Bu,groupCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},updateGroupProfile:{groupID:Bu,muteAllMembers:{required:!1,rules:["boolean"],allowEmpty:!1}},changeGroupOwner:{groupID:Bu,newOwnerID:Bu},getGroupOnlineMemberCount:[Object.assign({key:"groupID"},Bu)],handleGroupApplication:{handleAction:Bu},getGroupMemberList:{groupID:Bu},getGroupMemberProfile:{groupID:Bu,userIDList:Hu,memberCustomFieldFilter:{required:!1,rules:["array"],allowEmpty:!0}},addGroupMember:{groupID:Bu,userIDList:Hu},deleteGroupMember:{groupID:Bu,userIDList:Hu},setGroupMemberMuteTime:{groupID:Bu,userID:Bu,muteTime:Object.assign(Object.assign({},ju),{customValidator:e=>!(e<0)||"muteTime must be a non-negative number."})},setGroupMemberRole:{groupID:Bu,userID:Bu,role:Bu},setGroupMemberNameCard:{groupID:Bu,userID:{required:!1,rules:["string"],allowEmpty:!1},nameCard:Bu},setGroupMemberCustomField:{groupID:Bu,userID:{required:!1,rules:["string"],allowEmpty:!1},memberCustomField:Hu},markGroupMemberList:{groupID:Bu,markType:Object.assign(Object.assign({},ju),{customValidator:e=>!(e<1e3)||"markType must be greater than or equal to 1000."}),enableMark:{required:!0,rules:["boolean"],allowEmpty:!1},userIDList:Hu},initGroupAttributes:{groupID:Bu,groupAttributes:Ku},setGroupAttributes:{groupID:Bu,groupAttributes:Ku},deleteGroupAttributes:{groupID:Bu,keyList:Object.assign(Object.assign({},Hu),{allowEmpty:!0})},getGroupAttributes:{groupID:Bu,keyList:Object.assign(Object.assign({},Hu),{allowEmpty:!0})},getGroupCounters:{groupID:Bu,keyList:{required:!1,rules:["array"],allowEmpty:!0}},setGroupCounters:{groupID:Bu,counters:Ku},increaseGroupCounter:{groupID:Bu,key:Bu,value:ju},decreaseGroupCounter:{groupID:Bu,key:Bu,value:ju}},Yu={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,getGroupCounters:!0,setGroupCounters:!0,increaseGroupCounter:!0,decreaseGroupCounter:!0};var zu=new class{constructor(){this._installedSubPlugins=[],this.groupDataHandler=Jc,this.groupAction=du,this.groupAttribute=Pu,this.groupMember=Ou,this.groupCounter=Ru,this.name="Group"}install(e,t=[]){this._core=e,Na.init(e),Jc.init(e),du.init(e,this),Ou.init(e,this),pu.init(e),Ru.init(e),Pu.init(e),Vu.init(e),e.helper.registerValidateConfig({auth:Yu,params:Wu}),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;this._installedSubPlugins.includes(e.name)||(null===(t=e.install)||void 0===t||t.call(e,this._core,this),this._installedSubPlugins.push(e.name))})}_reset(){Jc.reset(),Pu.reset(),Ru.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 Ju=new class{init(e){this.core=e}};const Qu="AV_MBR_LIST",Xu="AV_BAN_MBR",Zu={NORMAL_MESSAGE:3,GROUP_TIPS_HAS_ROAMING:4,GROUP_SYSTEM_MESSAGE:5,GROUP_TIPS_HAS_NO_ROAMING:6,BROADCAST_MESSAGE:17,MESSAGE_REVOKED:20,MESSAGE_REACTION:21,LIVE_CUSTOM_DATA:100},el={GROUP_DISMISSED:5,QUIT_GROUP:8,AVCHATROOM_MEMBER_BANNED:21},tl=60,sl=2603,nl=2686,ol=2688,il=3122;class rl{constructor(e){const{core:t,manager:s,groupID:n,getRequestParams:o,onSuccess:i,onFail:r}=e;this._name="Polling",this._core=t,this._manager=s,this._timeoutID=-1,this._isRunning=!1,this._groupID=n,this._getRequestParams=o,this._onSuccess=i,this._onFail=r}start(){this._isRunning=!0,this._request(),console.log(`${this._name}.start pollingInterval:${this._manager.getCurrentPollingInterval(this._groupID)}`)}isRunning(){return this._isRunning}_request(){return ge(this,void 0,void 0,function*(){try{const e=this._getRequestParams(this._groupID),t=yield function(e,t){return ge(this,void 0,void 0,function*(){const{longPollingKey:s,startSequence:n,startBroadcastSeq:o,simplifiedMessage:i}=e,r={Key:s,StartSeq:n,StartBroadcastSeq:o,DownsizeFlag:i,USP:1,HoldTime:90};return t.common.buildAndSendPacket({servcmd:"group_open_long_polling_http_svc.get_msg",data:r})})}(e,this._core);this._onSuccess(this._groupID,t);const s=this._manager.getCurrentPollingInterval(this._groupID);this._runNextPolling(s)}catch(e){this._onFail(this._groupID,e),this._runNextPolling(2e3)}})}_runNextPolling(e){this.isRunning()&&(this._timeoutID>-1&&clearTimeout(this._timeoutID),this._timeoutID=setTimeout(this._request.bind(this),e))}stop(){console.log(`${this._name}.stop timerID:${this._timeoutID}`),this._timeoutID>-1&&(clearTimeout(this._timeoutID),this._timeoutID=-1),this._isRunning=!1}}class al{constructor(e){this._maxLength=e,this._map=new Map}set(e){var t;if(this._map.size>=this._maxLength){const e=(null===(t=this._map.entries().next().value)||void 0===t?void 0:t[0])||"";this._map.delete(e)}this._map.set(e,1)}has(e){return this._map.has(e)}delete(e){this.has(e)&&this._map.delete(e)}clear(){this._map.clear()}}const cl=e=>e===Zu.GROUP_TIPS_HAS_NO_ROAMING||e===Zu.GROUP_TIPS_HAS_ROAMING,ul=e=>e===Zu.GROUP_SYSTEM_MESSAGE;function ll(e){const t=function(e){const{E:t,MCT:s,MR:n,MP:o,MTS:i,GId:r,MS:a,CCD:c,F_Account:u,IsSys:l,GInf:d,MsgBody:h}=e,g=he(e,["E","MCT","MR","MP","MTS","GId","MS","CCD","F_Account","IsSys","GInf","MsgBody"]);return Object.assign({Event:t,MsgClientTime:s,MsgRandom:n,MsgPriority:o,MsgTimeStamp:i,ToGroupId:r,MsgSeq:a,CloudCustomData:c,From_Account:u,IsSystemMsg:l,GroupInfo:dl(d),MsgBody:hl(h)},g)}(e);return function(e){const{Event:t}=e;(cl(t)||ul(t))&&(e.From_Account=e.From_Account||"@TIM#SYSTEM");s=t,(s===Zu.BROADCAST_MESSAGE||(e=>e===Zu.NORMAL_MESSAGE)(t))&&function(e){const{core:{OuterConstant:t}}=Ju;e.CloudCustomData=e.CloudCustomData||"",e.MsgBody=e.MsgBody.map(e=>{if(e.MsgType===t.MSG_CUSTOM){const{content:t={}}=e;e.content=Object.assign({Data:"",Desc:"",Ext:""},t)}return e})}(e);var s;cl(t)&&function(e){const{GroupJoinType:t,MsgOperatorMemberExtraInfo:s={},MsgMemberExtraInfo:n,Operator_Account:o,List_Account:i,OpType:r}=e.MsgBody||{};"number"==typeof t||1!==r&&2!==r||(e.MsgBody.GroupJoinType=2===r?0:1);n||(e.MsgBody.MsgMemberExtraInfo=null==i?void 0:i.map(e=>({UserId:e})));1!==r||n||(e.MsgBody.MsgMemberExtraInfo=[{UserId:s.UserId}]);e.MsgBody.MsgOperatorMemberExtraInfo=Object.assign({Operator_Account:o,ImageUrl:"",NickName:""},s)}(e);ul(t)&&function(e){const{MsgOperatorMemberExtraInfo:t={},Operator_Account:s}=e.MsgBody||{};e.MsgBody.MsgMemberExtraInfo=Object.assign({UserId:s,ImageUrl:"",NickName:""},t),e.MsgBody=Object.assign({Authentication:"",RemarkInfo:"",MsgKey:1e3*e.MsgTimeStamp},e.MsgBody),e.MsgBody=Object.keys(e.MsgBody).filter(e=>"MsgOperatorMemberExtraInfo"!==e).reduce((t,s)=>Object.assign(Object.assign({},t),{[s]:e.MsgBody[s]}),{})}(e)}(t),t}function dl(e){const t=e||{},{GN:s,GT:n,F_Hd:o,F_NN:i,F_Ll:r}=t,a=he(t,["GN","GT","F_Hd","F_NN","F_Ll"]),c=Object.assign({GroupName:s,GroupType:n},a);return o&&(c.From_AccountHeadurl=o),i&&(c.From_AccountNick=i),r&&(c.From_AccountLevel=r),c}function hl(e){let t=e;Array.isArray(e)||(t=[e]);const s=t.map(e=>{const{O_Account:t,Opt:s,L_Account:n,RT:o,UDF:i,OpInf:r,OnlineInf:a,MsgMemberExtraInfo:c}=e,u=he(e,["O_Account","Opt","L_Account","RT","UDF","OpInf","OnlineInf","MsgMemberExtraInfo"]),l=Object.assign({Operator_Account:t,OpType:s,List_Account:n,ReportType:o,UserDefinedField:i},u);return r&&(l.MsgOperatorMemberExtraInfo=function(e){const{Img:t,NN:s}=e,n=he(e,["Img","NN"]);return Object.assign({ImageUrl:t,NickName:s},n)}(r)),c&&(l.MsgMemberExtraInfo=function(e){return null==e?void 0:e.map(e=>{const{Img:t,NN:s}=e,n=he(e,["Img","NN"]);return Object.assign({ImageUrl:t,NickName:s},n)})}(c)),a&&(l.OnlineMemberInfo=function(e){const{ET:t,Num:s}=e;return{ExpireTime:t,OnlineMemberNum:s}}(a)),l});return Array.isArray(e)?s:s[0]}var gl=new class{constructor(){this._name="MessageParser",this._sequenceList=new al(200),this._messageIDList=new al(100),this._broadcastMessageIDMap=new Map,this._reportMessageStackedCount=0}init(e,t){this._core=e,this._avChatRoomHandler=t}onMessageReceived(e,t,s=!1){this._sortServerMessageList({groupID:e,serverMessageList:t,isHistoryMessage:s});const n=this._handleMessageList(e,t);if(0===n.length)return;if(!s){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core,o=(e=>{const{core:{common:{getMessagePreviewText:t}}}=Ju;return{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:t(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}})(n[n.length-1]);t.updateConversation(`${s}${e}`,{lastMessage:o})}this._checkMessageStacked(n);const o=n.filter(e=>!0===e.isModified),i=n.filter(e=>!1===e.isModified),{OuterEvent:{MESSAGE_RECEIVED:r,MESSAGE_MODIFIED:a}}=this._core;o.length>0&&this._emitEvent({name:a,data:o}),i.length>0&&this._emitEvent({name:r,data:i})}_sortServerMessageList(e){const{groupID:t,serverMessageList:s,isHistoryMessage:n}=e;let o=[];this._avChatRoomHandler.isPollingSimplifiedMessage()&&!n?(s.sort((e,t)=>e.MS-t.MS),o=s.map(e=>e.MS)):(s.sort((e,t)=>e.MsgSeq-t.MsgSeq),o=s.map(e=>e.MsgSeq)),console.log(`${this._name}._sortServerMessageList groupID:${t} count:${o.length} sequenceList:${o}`),o.length=0}_handleMessageList(e,t){var s;const{message:{messageDataHandler:n,messageHelper:o}}=this._core,i=this._avChatRoomHandler.isPollingSimplifiedMessage(),r=[],a=t.length;for(let c=0;c<a;c++){let a=t[c];if(i&&(a=ll(a)),ul(a.Event)&&Object.values(el).includes(a.MsgBody.ReportType)){this._onGroupDismissed(e);break}if(null===this._filterMessageItem(a))continue;this._patchMessageType(a);const u=o.parseServerGroupMessage(a),l=this._createMessage(u);if(l.level=a.GroupInfo.From_AccountLevel,cl(a.Event)){const e=Object.assign(Object.assign({},u),{elements:Object.assign({},(null===(s=null==u?void 0:u.elements)||void 0===s?void 0:s.content)||{})});if(this._avChatRoomHandler.isGroupAttributesUpdated(e)){this._avChatRoomHandler.handleGroupAttributesUpdated(e);continue}if(this._avChatRoomHandler.isGroupCounterUpdated(e)){this._avChatRoomHandler.handleGroupCounterUpdated(e);continue}}null!==this._filterDuplicateMessage(l)&&(n.isMessageSentByCurrentInstance(l)||(1===u.isModified&&(l.isModified=!0),cl(a.Event)&&this._updateLocalOnlineMemberCountFromTips(a),r.push(l)))}return r}_patchMessageType(e){const{OuterConstant:t}=this._core;cl(e.Event)&&(e.MsgBody.MsgType=t.MSG_GRP_TIP),ul(e.Event)&&(e.MsgBody.MsgType=t.MSG_GRP_SYS_NOTICE)}_filterMessageItem(e){const{Event:t}=e;return Object.values(Zu).includes(t)?(e=>e===Zu.MESSAGE_REVOKED)(t)?(this._handleMessageRevoked(e),null):(e=>e===Zu.LIVE_CUSTOM_DATA)(t)?(this._onLiveCustomData(e),null):(e=>e===Zu.MESSAGE_REACTION)(t)?null:e:(console.warn(`${this._name}.onMessageReceived unknown event:${t}`),null)}_createMessage(e){const{message:{messageFactory:t},OuterConstant:s}=this._core;let n=s.CONV_GROUP;e.elements.type===s.MSG_GRP_SYS_NOTICE&&(n=s.CONV_SYSTEM);const o=!!e.isSystemMessage,i=t.createMessage(Object.assign(Object.assign({},e),{conversationType:n,isSystemMessage:o,flow:"in"}));return i.setElement(e.elements),i}_filterDuplicateMessage(e){const{common:t}=this._core;if(!t.isUnlimitedAVChatRoom()){if(this._sequenceList.has(e.sequence))return null;this._sequenceList.set(e.sequence)}const s=this._messageIDList.has(e.ID);return s?(console.warn(`${this._name}_filterDuplicateMessageItem ID:${e.ID} has:${s}`),null):(this._messageIDList.set(e.ID),e)}_handleMessageRevoked(e){const{OuterConstant:t,OuterEvent:{MESSAGE_REVOKED:s}}=this._core,{ToGroupId:n,MsgBody:{RevokeMsgList:o},RevokerInfo:{Revoker_Account:i,Reason:r=""}}=e,a=[];o.forEach(e=>{const{TinyId:s,MsgClientTime:o,Random:c,MsgSeq:u}=e,l={conversationID:`${t.CONV_GROUP}${n}`,ID:`${s}-${o}-${c}`,revoker:i,revokeReason:r,revokerInfo:{userID:i,nick:"",avatar:""},sequence:u};a.push(l)}),0!==a.length&&this._emitEvent({name:s,data:a})}_onLiveCustomData(e){const{OuterEvent:{ROOM_CUSTOM_DATA_RECEIVED:t}}=this._core,{ToGroupId:s,MsgSeq:n,MsgTimeStamp:o,MsgBody:i}=e,r=(null==i?void 0:i.Content)||(null==i?void 0:i.MsgContent)||"";this._emitEvent({name:t,data:r}),console.log(`${this._name}._onLiveCustomData groupID:${s} sequence:${n} time:${o} data:${r}`)}_onGroupDismissed(e){this._avChatRoomHandler.reset(e)}_checkMessageStacked(e){const{length:t}=e;if(t>=100&&this._reportMessageStackedCount<5){const e=this._avChatRoomHandler.getJoinedGroups();this._core.ssoLog.info("MessageStacked",`count:${t} groupID:${e.join(",")}`),this._reportMessageStackedCount+=1}}_emitEvent(e){this._core.notificationCenter.emitOuterEvent(e.name,e)}onBroadcastMessageReceived(e){const{message:{messageHelper:t},OuterEvent:{MESSAGE_RECEIVED:s}}=this._core,n=this._avChatRoomHandler.isPollingSimplifiedMessage(),o=[],i=e.length;for(let s=0;s<i;s++){let i=e[s];n&&(i=ll(i));const r=t.parseServerGroupMessage(i);if(!Object.values(Zu).includes(i.Event)){console.warn(`${this._name}.onBroadcastMessageReceived unknown event:${i.Event}`);continue}const a=this._createMessage(r);a.isBroadcastMessage=!0,this._broadcastMessageIDMap.has(a.ID)||(o.push(a),this._broadcastMessageIDMap.set(a.ID,1))}o.length>0&&this._emitEvent({name:s,data:o})}_updateLocalOnlineMemberCountFromTips(e){const{utils:{isEmpty:t}}=this._core,{ToGroupId:s,MsgBody:{OnlineMemberInfo:n}}=e;if(t(n))return;const{OnlineMemberNum:o=0,ExpireTime:i=tl}=n,r=Date.now();let a=this._avChatRoomHandler.getLocalOnlineMemberCount(s);t(a)?a={lastReqTime:0,lastSyncTime:0,latestUpdateTime:r,memberCount:o,expireTime:i}:(a.latestUpdateTime=r,a.memberCount=o),this._avChatRoomHandler.updateLocalOnlineMemberCount(s,a)}reset(){this._reportMessageStackedCount=0,this._sequenceList.clear(),this._messageIDList.clear(),this._broadcastMessageIDMap.clear()}};const pl=e=>{const{core:{store:t}}=Ju;return(t.get("cloudConfig")||{})[e]},_l=e=>{const{core:{utils:{isUndefined:t}}}=Ju;return!t(e)},ml=()=>{const e=pl("polling_interval");return _l(e)?parseInt(e,10):300},vl=()=>{const e=pl("polling_simplified_msg");return _l(e)?parseInt(e,10):0};var fl=new class{constructor(){this._name="AVChatRoomHandler",this._joinedGroupMap=new Map,this._pollingRequestInfoMap=new Map,this._pollingInstanceMap=new Map,this._onlineMemberCountMap=new Map,this._pollingIntervalMap=new Map,this._pollingNoMessageCountMap=new Map,this._membersReqInfoMap=new Map,this._startBroadcastSequence=1}init(e,t){this._core=e,this._parentPlugin=t,gl.init(e,this),e.ssoLog.debug("AVChatRoomHandler.init")}onAVChatRoomSystemNotification(e){const{OuterConstant:{GRP_AVCHATROOM:t}}=this._core,{GroupTips:s=[]}=e;for(let e=0;e<s.length;e++){const{MsgBody:n,GroupInfo:{GroupId:o,GroupType:i}}=s[e],r=Object.values(el).includes(n.ReportType);i===t&&r&&this.reset(o)}}getCurrentPollingInterval(e){return this._pollingIntervalMap.get(e)||ml()}isPollingSimplifiedMessage(){return 0!==vl()}isGroupAttributesUpdated(e){return this._parentPlugin.groupAttribute.isGroupAttributesUpdated(e)}handleGroupAttributesUpdated(e){this._parentPlugin.groupAttribute.handleGroupAttributesUpdated(e)}updateLocalOnlineMemberCount(e,t){this._onlineMemberCountMap.set(e,t)}getLocalOnlineMemberCount(e){return this._onlineMemberCountMap.get(e)||{}}hasPollingInstance(e){return this._pollingInstanceMap.has(e)}getJoinedLiveList(){const{OuterConstant:{GRP_LIVE:e}}=this._core;let t=[];return this._joinedGroupMap.size>0&&(t=[...this._joinedGroupMap.values()].filter(t=>t.type===e)),t}handleJoinGroupResult(e){return ge(this,void 0,void 0,function*(){const{utils:{isUndefined:t},OuterConstant:{CONV_GROUP:s},apiMap:{getConversationProfile:n},OuterConstant:o}=this._core,{longPollingKey:i,group:r,historyMessageList:a=[]}=e,{groupID:c}=r;if(yield this._preCheck(r),this._joinedGroupMap.set(c,r),this._parentPlugin.groupDataHandler.updateLocalGroup([r]),this._parentPlugin.groupDataHandler.emitGroupListUpdate(),n(`${s}${c}`),a.length>0&&gl.onMessageReceived(c,a,!0),!t(i)){return{code:0,data:this.startMessageLongPolling(e)}}return{code:0,data:{status:o.JOIN_STATUS_SUCCESS,group:r}}})}isGroupCounterUpdated(e){return this._parentPlugin.groupCounter.isGroupCounterUpdated(e)}handleGroupCounterUpdated(e){this._parentPlugin.groupCounter.handleGroupCounterUpdated(e)}_preCheck(e){return ge(this,void 0,void 0,function*(){const{common:t,OuterConstant:s,helper:n,apiMap:{quitGroup:o},ssoLog:i}=this._core;if(t.isUnlimitedAVChatRoom()){if(this._pollingInstanceMap.size>(()=>{const e=pl("polling_count_limit");return _l(e)&&e>0?parseInt(e,10):20})())throw new n.ChatError({code:ol,message:"the count of longPolling exceeds the max limit"});return}if(0===this._joinedAVChatRoomCount())return;if(e.type===s.GRP_LIVE)return;const[r,a]=this._joinedGroupMap.entries().next().value;if(a.selfInfo.role===s.GRP_MBR_ROLE_OWNER)this._parentPlugin.groupDataHandler.deleteLocalGroup(r);else try{yield o(r)}catch(e){i.debug("quitGroup",`${this._name}._preCheck quitGroup failed, groupID:${r} info:`,e)}this.reset(r)})}startMessageLongPolling(e){const{OuterConstant:t}=this._core,{longPollingKey:s,startSequence:n=1,group:o}=e,{groupID:i}=o;return this._pollingRequestInfoMap.set(i,{longPollingKey:s,startSequence:n}),this._pollingIntervalMap.set(i,ml()),this._startPolling(i),this._reportLongPollingCount(),{status:t.JOIN_STATUS_SUCCESS,group:o}}_startPolling(e){if(this._core.ssoLog.debug("_startPolling",`${this._name}._startPolling groupID:${e}`),this._pollingInstanceMap.has(e)){const t=this._pollingInstanceMap.get(e);return void((null==t?void 0:t.isRunning())||null==t||t.start())}const t=new rl({core:this._core,manager:this,groupID:e,getRequestParams:this._handleRequestParams.bind(this),onSuccess:this._handleSuccess.bind(this),onFail:this._handleFailure.bind(this)});t.start(),this._pollingInstanceMap.set(e,t)}_handleRequestParams(e){const{longPollingKey:t,startSequence:s}=this._pollingRequestInfoMap.get(e)||{};return e===[...this._pollingInstanceMap.keys()][0]?{longPollingKey:t,startSequence:s,startBroadcastSeq:this._startBroadcastSequence,simplifiedMessage:vl()}:{longPollingKey:t,startSequence:s,simplifiedMessage:vl()}}_handleSuccess(e,t){const{ErrorCode:s}=t;if(0!==s){const{longPollingKey:t,startSequence:n}=this._pollingRequestInfoMap.get(e)||{};return void console.warn(`${this._name}._handleSuccess groupID:${e} key:${t} startSeq:${n} errorCode:${s}`)}this._hasJoinedAVChatRoom(e)&&this._handleResponseData(e,t)}_handleResponseData(e,t){const{Key:s,NextSeq:n,NextBroadcastSeq:o,RspMsgList:i=[],RspBroadcastMsgList:r=[]}=t;if(s&&n&&this._pollingRequestInfoMap.set(e,{longPollingKey:s,startSequence:n}),o&&o>this._startBroadcastSequence&&(this._startBroadcastSequence=o),i.length>0)0!==this._getPollingNoMessageCount(e)&&(this._updatePollingNoMessageCount(e,0),this._pollingIntervalMap.set(e,ml())),gl.onMessageReceived(e,i);else{let t=this._getPollingNoMessageCount(e);if(t+=1,this._updatePollingNoMessageCount(e,t),t===(()=>{const e=pl("polling_no_msg_count");return _l(e)?parseInt(e,10):20})()){const t=ml()+(()=>{const e=pl("polling_interval_plus");return _l(e)?parseInt(e,10):2e3})();this._pollingIntervalMap.set(e,t)}}r.length>0&&gl.onBroadcastMessageReceived(r)}_handleFailure(e,t){const{ssoLog:s,utils:{safeStringify:n}}=this._core;s.warn("polling",`${this._name}._handleFailure groupID:${e} error: ${n(t)}`)}_joinedAVChatRoomCount(){const{OuterConstant:e}=this._core;let t=[];return this._joinedGroupMap.size>0&&(t=this.getJoinedGroups().filter(t=>t.type===e.GRP_AVCHATROOM)),t.length}_hasJoinedAVChatRoom(e){return this._joinedGroupMap.has(e)}getJoinedGroups(){return[...this._joinedGroupMap.values()]}updateLocalLiveGroup(e,t){this._joinedGroupMap.set(e,t),this._parentPlugin.groupDataHandler.updateLocalGroup([t])}handleLiveHistoryMessages(e,t){gl.onMessageReceived(e,t,!0)}isOverFrequencyLimit(e){if(!this._membersReqInfoMap.has(e))return this._membersReqInfoMap.set(e,{startTime:Date.now(),requestCount:1}),!1;let{startTime:t,requestCount:s}=this._membersReqInfoMap.get(e);const{interval:n,count:o}=(()=>{const e=pl("av_members_freq_limit");if(_l(e)){const{interval:t,count:s}=JSON.parse(e);if(s>0&&t>0)return{interval:t,count:s}}return{interval:30,count:4}})();return Date.now()-t>1e3*n?(this._membersReqInfoMap.set(e,{startTime:Date.now(),requestCount:1}),!1):(s+=1,this._membersReqInfoMap.set(e,{startTime:t,requestCount:s}),s>o)}_stopPolling(e){if(this._core.ssoLog.debug("_stopPolling",`${this._name}._stopPolling groupID:${e}`),e){const{appStore:{conversationStore:t},OuterConstant:{CONV_GROUP:s}}=this._core;t.deleteConversation(`${s}${e}`);const n=this._pollingInstanceMap.get(e);return null==n||n.stop(),this._parentPlugin.groupDataHandler.deleteLocalGroup(e),this._pollingInstanceMap.delete(e),this._pollingRequestInfoMap.delete(e),this._joinedGroupMap.delete(e),this._onlineMemberCountMap.delete(e),this._pollingIntervalMap.delete(e),this._pollingNoMessageCountMap.delete(e),void this._membersReqInfoMap.delete(e)}for(const e of this._pollingInstanceMap.values())null==e||e.stop();this._pollingInstanceMap.clear(),this._pollingRequestInfoMap.clear(),this._joinedGroupMap.clear(),this._onlineMemberCountMap.clear(),this._pollingIntervalMap.clear(),this._pollingNoMessageCountMap.clear(),this._membersReqInfoMap.clear()}_updatePollingNoMessageCount(e,t){this._pollingNoMessageCountMap.set(e,t)}_getPollingNoMessageCount(e){return this._pollingNoMessageCountMap.get(e)||0}_reportLongPollingCount(){const e=this._joinedGroupMap.size;if(e>1){const{common:t,OuterConstant:s,ssoLog:n}=this._core,o=t.isUnlimitedAVChatRoom()?1:0,i=[],r=[];Array.from(this._joinedGroupMap.values()).forEach(({groupID:e,type:t})=>{t===s.GRP_LIVE?r.push(e):i.push(e)}),n.info("longPollingCount",String(e),{moreMessage:`av:${i.join(",")} live:${r.join(",")} code: ${o}`,eventType:29})}}reset(e){this._stopPolling(e),this._startBroadcastSequence=1,gl.reset()}};var Il=new class{init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"joinGroup",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}joinGroup(e){return ge(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=yield this._parentPlugin.groupAction.joinGroup(e),{data:{status:n,group:{type:o}}}=s;return o===t.GRP_AVCHATROOM?n===t.JOIN_STATUS_ALREADY_IN_GROUP?s:fl.handleJoinGroupResult(s.data):s})}};var El=new class{init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"quitGroup",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}quitGroup(e){return ge(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=yield this._parentPlugin.groupAction.quitGroup(e),{data:{type:n}}=s;return n===t.GRP_AVCHATROOM&&fl.reset(e),s})}};var Sl=new class{init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"dismissGroup",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}dismissGroup(e){return ge(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=yield this._parentPlugin.groupAction.dismissGroup(e),{data:{type:n}}=s;return n===t.GRP_AVCHATROOM&&fl.reset(e),s})}};var Cl=new class{constructor(){this._name="GetAVChatRoomMemberList"}init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"getGroupMemberList",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}getGroupMemberList(e){return ge(this,void 0,void 0,function*(){const{appStore:{groupStore:t},helper:s,OuterConstant:n}=this._core,{groupID:o}=e,i=t.getGroup(o);if((null==i?void 0:i.type)===n.GRP_AVCHATROOM){if(s.checkBusinessCapabilityBits(Qu)){if(fl.isOverFrequencyLimit(o)){throw{code:2996,message:`Over frequency limit: get_members-${o}`}}return this._getGroupMemberList(e)}}return this._parentPlugin.groupMember.getGroupMemberList(e)})}_getGroupMemberList(e){return ge(this,void 0,void 0,function*(){const t="_getGroupMemberList",{helper:s}=this._core;try{const s=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,offset:n=0}=e,o={GroupId:s,Timestamp:n};return t.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.get_members",data:o})})}(e,this._core),{MemberList:n=[],NextTimestamp:o=0}=s||{},i=this._handleMemberList(n);return console.log(`${this._name}.${t} ok, groupID:${e.groupID} count:${i.length} nextOffset:${o}`),{code:0,data:{memberList:i,offset:o}}}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}})}_handleMemberList(e){return e.map(e=>{const{Member_Account:t,NickName:s="",Avatar:n="",Remark:o="",JoinTime:i=0,Marks:r=[]}=e;return{userID:t,nick:s,avatar:n,remark:o,joinTime:i,marks:r,isOnline:!0}})}};var Ml=new class{constructor(){this._name="GetAVChatRoomOnlineMemberCount"}init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"getGroupOnlineMemberCount",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}getGroupOnlineMemberCount(e){return ge(this,void 0,void 0,function*(){const{appStore:{groupStore:t},OuterConstant:s}=this._core,n=t.getGroup(e);return n?n.type===s.GRP_AVCHATROOM?this._getOnlineMemberCount(e):this._parentPlugin.groupAction.getGroupOnlineMemberCount(e):{code:0,data:{memberCount:0}}})}_getOnlineMemberCount(e){return ge(this,void 0,void 0,function*(){const t="_getOnlineMemberCount",{utils:{isEmpty:s}}=this._core,n=fl.getLocalOnlineMemberCount(e);if(s(n)||this._isExpired(e)){const{memberCount:s=0}=yield this._getOnlineMemberCountFromServer(e);return console.log(`${this._name}.${t} ok, groupID:${e} memberCount:${s} from server.`),{code:0,data:{memberCount:s}}}return console.log(`${this._name}.${t} ok, groupID:${e} memberCount:${n.memberCount} from local.`),{code:0,data:{memberCount:n.memberCount}}})}_isExpired(e){const t=fl.getLocalOnlineMemberCount(e),s=Date.now(),n=s-t.lastSyncTime>1e3*t.expireTime,o=s-t.latestUpdateTime>1e4,i=s-t.lastReqTime>3e3;return n&&o&&i}_getOnlineMemberCountFromServer(e){return ge(this,void 0,void 0,function*(){const t="_getOnlineMemberCountFromServer";try{const t=yield function(e,t){return ge(this,void 0,void 0,function*(){const s={GroupId:e};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_online_member_num",data:s})})}(e,this._core),{OnlineMemberNum:s=0,ExpireTime:n=tl}=t||{},o=Date.now(),i={lastSyncTime:o,latestUpdateTime:o,lastReqTime:o,memberCount:s,expireTime:n};return fl.updateLocalOnlineMemberCount(e,i),{memberCount:s}}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 yl=new class{constructor(){this._name="DeleteAVChatRoomMember"}init(e,t){this._core=e,this._parentPlugin=t;const{helper:s}=e;s.registerApi({apiName:"deleteGroupMember",context:this,matcher:()=>t.getInstalledSubPlugins().length>0})}deleteGroupMember(e){return ge(this,void 0,void 0,function*(){const t="deleteGroupMember",{appStore:{groupStore:s},utils:{isUndefined:n},helper:o,OuterConstant:i}=this._core,{groupID:r}=e,a=s.getGroup(r);if(n(a))throw new o.ChatError({functionName:t,code:sl});if(a.type===i.GRP_AVCHATROOM){if(o.checkBusinessCapabilityBits(Xu))return this._deleteGroupMember(e);throw new o.ChatError({functionName:t,code:il})}return this._parentPlugin.groupMember.deleteGroupMember(e)})}_deleteGroupMember(e){return ge(this,void 0,void 0,function*(){const t="_deleteGroupMember",{appStore:{groupStore:s},helper:n,ssoLog:o}=this._core,{groupID:i,duration:r=0,userIDList:a}=e;if(0===r)throw new n.ChatError({functionName:t,code:nl});try{yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,userIDList:n,duration:o,reason:i}=e,r={GroupId:s,Members_Account:n,Duration:o,Description:i};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.ban_group_member",data:r})})}(e,this._core),o.debug(t,`${this._name}.${t} ok, groupID:${i}`);return{code:0,data:{group:s.getGroup(i),userIDList:a}}}catch(e){throw new n.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}};var Ol=new class{constructor(){this._name="MarkAVChatRoomMember"}init(e){this._core=e;const{helper:t}=e;t.registerApi({apiName:"markGroupMemberList",context:this})}markGroupMemberList(e){return ge(this,void 0,void 0,function*(){const t="markGroupMemberList",{groupID:s,markType:n,enableMark:o,userIDList:i=[]}=e,r=this._generateRequestData(e);try{const e=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,operationType:n,memberList:o}=e,i={GroupId:s,CommandType:n,MemberList:o};return t.common.buildAndSendPacket({servcmd:"group_open_avchatroom_http_svc.modify_user_info",data:i})})}(r,this._core),{MemberList:a=[]}=e||{},{successUserIDList:c,failureUserIDList:u}=this._handleResult(a,i);return{code:0,data:{successUserIDList:c,failureUserIDList:u},successLog:{message:`${this._name}.${t} ok, groupID:${s} markType:${n} enableMark:${o} success:${c.length} fail:${u.length}`}}}catch(e){throw new this._core.helper.ChatError({functionName:t,code:null==e?void 0:e.errorCode,message:null==e?void 0:e.errorInfo})}})}_generateRequestData(e){const{groupID:t,markType:s,enableMark:n,userIDList:o=[]}=e,i=!0===n?1:2,r=[...o];r.length>500&&console.warn(`${this._name}._generateRequestData, the length of userIDList cannot exceed 500`);return{groupID:t,operationType:i,memberList:r.map(e=>({Member_Account:e,Marks:[s]}))}}_handleResult(e,t){const s=[],n=[];return e.length===t.length?(s.push(...t),{successUserIDList:s,failureUserIDList:n}):(t.forEach(t=>{e.find(e=>e.Member_Account===t)?s.push(t):n.push(t)}),{successUserIDList:s,failureUserIDList:n})}};var Al=new class{init(e,t){e.ssoLog.debug("AVChatRoomAction.init"),Il.init(e,t),El.init(e,t),Sl.init(e,t),Cl.init(e,t),Ml.init(e,t),yl.init(e,t),Ol.init(e)}};var Tl=new class{constructor(){this._name="LiveHandler"}init(e){this._core=e;const{helper:t,ssoLog:s}=e;t.registerExperimentalAPI("startMessageLongPolling",this),t.registerExperimentalAPI("stopMessageLongPolling",this),s.debug("LiveHandler.init")}startMessageLongPolling(e){const{common:t,utils:{isEmpty:s},OuterConstant:n,ssoLog:o}=this._core,{groupID:i,longPollingKey:r,longPollingSequence:a=1}=e;if(s(r))return o.warn("startMessageLongPolling",`${this._name}.startMessageLongPolling longPollingKey is empty.`),Promise.resolve({});fl.hasPollingInstance(i)&&this.stopMessageLongPolling({groupID:i});const c=fl.getJoinedLiveList(),u=t.isUnlimitedAVChatRoom();!u&&c.length>0&&this.stopMessageLongPolling({groupID:c[0].groupID}),o.debug("startMessageLongPolling",`${this._name}.startMessageLongPolling isUnlimited:${u} groupID:${i} longPollingKey:${r} longPollingSequence:${a}`);const l={groupID:i,type:n.GRP_LIVE};return fl.updateLocalLiveGroup(i,l),this._getLiveHistoryMessages({groupID:i,longPollingKey:r,startSequence:a}),fl.startMessageLongPolling({group:l,longPollingKey:r,startSequence:a})}stopMessageLongPolling(e){const{groupID:t}=e;return fl.reset(t),this._core.ssoLog.debug("stopMessageLongPolling",`${this._name}.stopMessageLongPolling ok, groupID:${t}`),Promise.resolve({groupID:t})}_getLiveHistoryMessages(e){return ge(this,void 0,void 0,function*(){const{ssoLog:t}=this._core,{groupID:s}=e;try{const n=yield function(e,t){return ge(this,void 0,void 0,function*(){const{groupID:s,longPollingKey:n,startSequence:o}=e,i={GroupId:s,LongPollingKey:n,PullPreSeq:o};return t.common.buildAndSendPacket({servcmd:"group_open_http_svc.get_huge_group_msg",data:i})})}(e,this._core),{RspMsgList:o=[]}=n||{};t.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages ok, groupID:${s} count:${o.length}`),o.length>0&&fl.handleLiveHistoryMessages(s,o)}catch(e){t.debug("_getLiveHistoryMessages",`${this._name}._getLiveHistoryMessages failed, groupID:${s} info:${e.message}`)}})}};var Rl=new class{constructor(){this.name="AVChatRoom"}install(e,t){this._core=e,Ju.init(e),fl.init(e,t),Al.init(e,t),Tl.init(e);const{notificationCenter:s,InnerEvent:n}=e,{InnerEventSubType:o}=s;s.subscribeInnerEvent(n.MESSAGE_PUSH,o.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),s.subscribeInnerEvent(n.LOGOUT,this._reset,this),s.subscribeInnerEvent(n.DESTROY,this._dispose,this)}_onAVChatRoomSystemNotification(e){fl.onAVChatRoomSystemNotification(e)}_reset(){fl.reset()}_dispose(){this._reset();const{notificationCenter:e,InnerEvent:t}=this._core,{InnerEventSubType:s}=e;e.unSubscribeInnerEvent(t.MESSAGE_PUSH,s.GROUP_SYSTEM_NOTIFICATION,this._onAVChatRoomSystemNotification,this),e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this._dispose,this)}};const Dl=new class{init(e){this.core=e}};const bl="message",Nl="user",Ll={OR:"or",AND:"and"},Pl=20,Gl=20,wl=20,Ul={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>!e||(!!(Array.isArray(e)&&e.length<=5)||"keywordList should be an array and length <= 5")},kl={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>!e||(!![Ll.OR,Ll.AND].includes(e)||"keywordListMatchType should be OR or AND")},Fl={required:!1,rules:["number"],allowEmpty:!0,customValidator:e=>"number"==typeof e&&e>=1&&e<=100||"count must be a number between 1 and 100"},$l={required:!1,rules:["string"],allowEmpty:!0},xl={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dl.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"}},ql={required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dl.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"}},Vl={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dl.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"}},Bl=e=>({required:!1,rules:["number"],allowEmpty:!0,customValidator:t=>"number"==typeof t&&t>=0||`${e} should be a number >= 0';`}),jl={required:!1,rules:["string"],allowEmpty:!0,customValidator:e=>{const{OuterConstant:t}=Dl.core;return!![t.GENDER_FEMALE,t.GENDER_MALE].includes(e)||"gender is invalid"}},Hl={searchCloudMessages:{keywordList:Ul,keywordListMatchType:kl,cursor:$l,senderUserIDList:{required:!1,rules:["array"],allowEmpty:!0,customValidator:e=>!!(Array.isArray(e)&&e.length<=5)||"senderUserIDList should be an array and length <= 5"},messageTypeList:ql,conversationID:Vl,timePosition:Bl("timePosition"),timePeriod:Bl("timePeriod")},searchCloudUsers:{keywordList:Ul,keywordListMatchType:kl,cursor:$l,count:Fl,miniBirthday:Bl("miniBirthday"),maxBirthday:Bl("maxBirthday"),gender:jl},searchCloudGroupMembers:{keywordList:Ul,keywordListMatchType:kl,cursor:$l,count:Fl,groupTypeList:xl,groupIDList:{required:!1,rules:["array"],allowEmpty:!0}},searchCloudGroups:{keywordList:Ul,keywordListMatchType:kl,cursor:$l,count:Fl,groupTypeList:xl}},Kl={searchCloudMessages:!0,searchCloudUsers:!0,searchCloudGroupMembers:!0,searchCloudGroups:!0};var Wl=new class{constructor(){this.name="CloudSearch"}install(e){this._core=e,Dl.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:Kl,params:Hl})}searchCloudMessages(e){return ge(this,void 0,void 0,function*(){try{const{OuterConstant:t,helper:s}=this._core,{conversationID:n,timePeriod:o,timePosition:i}=e,r=he(e,["conversationID","timePeriod","timePosition"]),a=Object.assign({count:100},r);n&&(n.startsWith(t.CONV_C2C)?a.account=n.replace(t.CONV_C2C,""):n.startsWith(t.CONV_GROUP)&&(a.groupID=n.replace(t.CONV_GROUP,""))),this._setTimeRangeParams(a,{timePeriod:o,timePosition:i});const c=yield function(e){return ge(this,void 0,void 0,function*(){const{count:t,keywordList:s,keywordListMatchType:n,senderUserIDList:o,messageTypeList:i,endTime:r,startTime:a,cursor:c,account:u,groupID:l}=e,d={Count:t,KeywordList:s,MatchType:n,SendUserIDList:o,MsgTypeList:i,EndTime:r,StartTime:a,Cursor:c,PeerAccount:u,GroupID:l};return Dl.core.common.buildAndSendPacket({servcmd:"message_search.query",data:d})})}(a);if(!c)return{code:0,data:{}};const{ErrorCode:u,ErrorInfo:l,TotalCount:d,Cursor:h="",ConversationMsgs:g=[]}=c;if(0!==u)throw{errorCode:u,errorInfo:l};const p=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} res: totalCount:${d}`,_=g.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 u=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:u}});return{code:0,data:{searchResultList:_,cursor:h,totalCount:d},successLog:{message:p}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:bl,functionName:"searchCloudMessages"})}})}searchCloudUsers(e){return ge(this,void 0,void 0,function*(){var t;try{const{keywordListMatchType:s,count:n=Gl}=e,o=he(e,["keywordListMatchType","count"]),i=Object.assign({count:n,keywordListMatchType:s===Ll.AND?1:0},o);this._setBirthdayRangeParams(i,e);const r=yield function(e){return ge(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 Dl.core.common.buildAndSendPacket({servcmd:"user_search.query",data:c})})}(i);if(!r)return{error:0,data:{}};const{ErrorCode:a,ErrorInfo:c,TotalCount:u,Cursor:l="",Users:d=[]}=r;if(0!==a)throw{errorCode:a,errorInfo:c};const h=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${u}`,g=[];for(let e=0,s=d.length;e<s;e++){const{UserID:s,ProfileItems:n}=d[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);g.push(i)}return{code:0,data:{searchResultList:g,cursor:l,totalCount:u},successLog:{message:h}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:Nl,functionName:"searchCloudUsers"})}})}searchCloudGroupMembers(e){return ge(this,void 0,void 0,function*(){try{const{count:t=wl,keywordListMatchType:s}=e,n=he(e,["count","keywordListMatchType"]),o=Object.assign({count:t,keywordListMatchType:s===Ll.AND?1:0},n),i=yield function(e){return ge(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 Dl.core.common.buildAndSendPacket({servcmd:"group_member_search.query",data:a})})}(o);if(!i)return{code:0,data:{}};const{ErrorCode:r,ErrorInfo:a,GroupMembers:c=[],Cursor:u,TotalCount:l}=i;if(0!==r)throw{errorCode:r,errorInfo:a};const d=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${l}`,h=new Map;return c.forEach(e=>{const{GroupID:t,GroupName:s,GroupType:n,GroupFaceUrl:o,GroupMemberUserName:i,GroupMemberUserID:r,GroupMemberNameCard:a,GroupMemberAvatar:c=""}=e,u={groupID:t,name:s,type:n,avatar:o},l={userID:r,nick:i,nameCard:a,avatar:c};if(h.has(t)){const e=h.get(t);e.memberList.push(l),h.set(t,e)}else h.set(t,{groupInfo:u,memberList:[l]})}),{code:0,data:{searchResultList:[...h.values()],cursor:u,totalCount:l},successLog:{message:d}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:Nl,functionName:"searchCloudGroupMembers"})}})}searchCloudGroups(e){return ge(this,void 0,void 0,function*(){try{const{count:t=Pl,keywordListMatchType:s}=e,n=he(e,["count","keywordListMatchType"]),o=Object.assign({count:t,keywordListMatchType:s===Ll.AND?1:0},n),i=yield function(e){return ge(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 Dl.core.common.buildAndSendPacket({servcmd:"group_search.query",data:r})})}(o);if(!i)return{code:0,data:{}};const{ErrorCode:r,ErrorInfo:a,Groups:c,Cursor:u,TotalCount:l}=i;if(0!==r)throw{errorCode:r,errorInfo:a};const d=`keywordList:${e.keywordList} keywordListMatchType:${e.keywordListMatchType} cursor:${e.cursor} count:${e.count} res: totalCount:${l}`;return{code:0,data:{searchResultList:(null==c?void 0:c.map(e=>function(e){const{GroupFaceUrl:t,GroupID:s,GroupIntroduction:n,GroupMemberNum:o,GroupName:i,GroupOwnerTinyID:r,GroupOwnerUserID:a,GroupOwnerUserName:c,GroupType:u,GroupAddOption:l,GroupInviteOption:d}=e;return{avatar:t,groupID:s,introduction:n,memberCount:o,name:i,ownerTinyID:r,ownerID:a,ownerNick:c,type:u,joinOption:l,inviteOption:d}}(e)))||[],cursor:u,totalCount:l},successLog:{message:d}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};this._handleError({errorCode:t,errorInfo:s,searchType:Nl,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}){const{helper:n}=this._core;let o=e;60020===e?o="SearchUnable":s!==bl&&27003===e?o="SearchParamsError":s!==bl&&60018===e&&(o="SearchOverLimit");throw new n.ChatError({code:o,message:t})}_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)}};function Yl(e,t){return Math.round(Number(e)*Math.pow(10,t))/Math.pow(10,t)}const zl="qualityStat",Jl="im-ssolog-quality-stat";var Ql;!function(e){e[e.ONLINE=8]="ONLINE"}(Ql||(Ql={}));const Xl="networkRTT",Zl="messageE2EDelay",ed="sendMessageC2C",td="sendMessageGroup",sd="sendMessageGroupAV",nd="sendMessageRichMedia",od="cosUpload",id="messageReceivedGroup",rd="messageReceivedGroupAVPush",ad="messageReceivedGroupAVPull",cd={[Xl]:2,[Zl]:3,[ed]:4,[td]:5,[sd]:6,[nd]:7,[id]:8,[rd]:9,[ad]:10,[od]:11},ud=[ed,td,sd,nd,od],ld=[id,rd,ad],dd=[Xl,Zl,ed,td,sd,nd,od,id,rd,ad],hd={ERR_SVR_COMM_SENSITIVE_TEXT:80001,ERR_SVR_COMM_BODY_SIZE_LIMIT:80002,OPEN_SERVICE_OVERLOAD_ERROR:60022,ERR_SVR_MSG_PKG_PARSE_FAILED:20001,ERR_SVR_MSG_INTERNAL_AUTH_FAILED:20002,ERR_SVR_MSG_INVALID_ID:20003,ERR_SVR_MSG_PUSH_DENY:20006,ERR_SVR_MSG_IN_PEER_BLACKLIST:20007,ERR_SVR_MSG_BOTH_NOT_FRIEND:20009,ERR_SVR_MSG_NOT_PEER_FRIEND:20010,ERR_SVR_MSG_NOT_SELF_FRIEND:20011,ERR_SVR_MSG_SHUTUP_DENY:20012,ERR_SVR_GROUP_INVALID_PARAMETERS:10004,ERR_SVR_GROUP_PERMISSION_DENY:10007,ERR_SVR_GROUP_NOT_FOUND:10010,ERR_SVR_GROUP_INVALID_GROUPID:10015,ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY:10016,ERR_SVR_GROUP_SHUTUP_DENY:10017,MSG_SEND_FAIL:2100,OVER_FREQUENCY_LIMIT:2996},gd="quality_stat";var pd=new class{constructor(){this._messageStatsMap=new Map,this._userSideErrorCodes=new Set(Object.values(hd))}init(e){this._core=e,Object.values(ud).forEach(e=>{this._messageStatsMap.set(e,{totalCount:0,successCount:0,failedCountOfUserSide:0,costSum:0,costCount:0,fileSizeSum:0})})}dispatchSendStats(e){const{name:t,message:s,error:n,startTs:o}=e,{SEND_MESSAGE_STAT:i}=this._core.constants;switch(t){case i.TOTAL_COUNT:this._handleTotalCount(s);break;case i.SUCCESS_COUNT:this._handleSuccessCount(s);break;case i.FAILED_COUNT:this._handleFailedCount(s,n);break;case i.SEND_COST:this._handleSendCost(s,o)}}getStatResult(e){const t=this._messageStatsMap.get(e);if(!t||0===t.totalCount)return null;const{totalCount:s,successCount:n,failedCountOfUserSide:o}=t,i=Yl(n/s*100,2),r=n+o,a=Yl(r/s*100,2),c=this._calcAverageValue(t,e);return this._resetStat(e),{total_count:s,success_count_business:n,percent_business:i,success_count_platform:r,percent_platform:a,average_value:c}}_handleTotalCount(e){const t=this._getSendMessageSpecifiedKey(e),s=t&&this._messageStatsMap.get(t);s&&s.totalCount++}_handleSuccessCount(e){const t=this._getSendMessageSpecifiedKey(e),s=t&&this._messageStatsMap.get(t);s&&s.successCount++}_handleFailedCount(e,t){var s;const n=null!==(s=null==t?void 0:t.code)&&void 0!==s?s:null==t?void 0:t.errorCode;if(this._isUserSideError(n)){const t=this._getSendMessageSpecifiedKey(e),s=t&&this._messageStatsMap.get(t);s&&s.failedCountOfUserSide++}}_handleSendCost(e,t){const s=this._getSendMessageSpecifiedKey(e),n=s&&this._messageStatsMap.get(s);n&&(n.costSum+=Date.now()-t,n.costCount++)}_isUserSideError(e){return this._userSideErrorCodes.has(e)||e>=120001&&e<=13e4||e>=10100&&e<=10200}_getSendMessageSpecifiedKey(e){const{MSG_IMAGE:t,MSG_AUDIO:s,MSG_VIDEO:n,MSG_FILE:o,CONV_C2C:i,CONV_GROUP:r,GRP_AVCHATROOM:a}=this._core.OuterConstant;if([t,s,n,o].includes(e.type))return nd;if(e.conversationType===i)return ed;if(e.conversationType===r){const{groupStore:t}=this._core.appStore,s=t.getGroup(e.to);if(!s)return;const{type:n}=s;return n===a?sd:td}}_calcAverageValue(e,t){return 0===e.costCount?0:t===od?Math.round(1e3*e.fileSizeSum/e.costSum):Math.round(e.costSum/e.costCount)}_resetStat(e){const t=this._messageStatsMap.get(e);t&&(t.totalCount=0,t.successCount=0,t.failedCountOfUserSide=0,t.costSum=0,t.costCount=0,t.fileSizeSum=0)}};var _d=new class{constructor(){this._lastCycleStats=new Map,this._currentCycleStats=new Map}init(e){this._core=e;const{OuterEvent:t,notificationCenter:s}=e;this._initStatsMap(),s.subscribeOuterEvent(t.MESSAGE_RECEIVED,this._onMessageReceived,this)}addMessageSequence(e){const t=this._getReceivedMessageSpecifiedKey(e),{utils:{isUndefined:s},OuterConstant:{CONV_GROUP:n},ssoLog:o}=this._core;if(s(t)||!this._currentCycleStats.has(t))return void o.warn("addMessageSequence",`${zl}.addMessageSequence invalid key:${t}`);const{conversationID:i,sequence:r}=e,a=i.replace(n,""),c=this._lastCycleStats.get(t);if(0===c.size||!c.has(a))return void this._addToCurrentCycle(t,a,r);const u=c.get(a);r>u.minSeq&&r<u.maxSeq?this._insertToLastCycle(r,u):this._addToCurrentCycle(t,a,r)}getStatResult(e){const t=this._lastCycleStats.get(e);if(!t||0===t.size)return this._transferCycleDataOptimized(e),null;let s=0,n=0;return t.forEach(e=>{const{sortedSequences:t,minSeq:o,maxSeq:i}=e;t.length>0&&(n+=t.length,s+=i-o+1)}),0===s?null:(this._transferCycleDataOptimized(e),{total_count:s,success_count_business:n,percent_business:Yl(n/s*100,2)})}reset(){this._lastCycleStats.clear(),this._currentCycleStats.clear()}dispose(){const{notificationCenter:e,OuterEvent:{MESSAGE_RECEIVED:t}}=this._core;e.unSubscribeOuterEvent(t,this._onMessageReceived,this),this.reset()}_initStatsMap(){Object.values(ld).forEach(e=>{this._lastCycleStats.set(e,new Map),this._currentCycleStats.set(e,new Map)})}_onMessageReceived(e){const{data:t=[]}=e;t.forEach(e=>{this.addMessageSequence(e)})}_transferCycleDataOptimized(e){const t=this._currentCycleStats.get(e);if(!t)return;const s=new Map;t.forEach((e,t)=>{const n=e.dirty?[...e.sortedSequences].sort((e,t)=>e-t):e.sortedSequences;s.set(t,{sortedSequences:n,minSeq:e.minSeq,maxSeq:e.maxSeq,dirty:!1})}),this._lastCycleStats.set(e,s),this._currentCycleStats.set(e,new Map)}_getReceivedMessageSpecifiedKey(e){const{OuterConstant:{CONV_GROUP:t,GRP_AVCHATROOM:s}}=this._core;if(e.conversationType===t&&!0!==(null==e?void 0:e._onlineOnlyFlag)){const{groupStore:t}=this._core.appStore,n=t.getGroup(e.to);if(!n)return null;const{type:o}=n;return o===s?ad:id}}_insertToLastCycle(e,t){t.dirty&&(t.sortedSequences.sort((e,t)=>e-t),t.dirty=!1);const s=this._findInsertPos(t.sortedSequences,e);t.sortedSequences.splice(s,0,e),t.minSeq=Math.min(t.minSeq,e),t.maxSeq=Math.max(t.maxSeq,e)}_findInsertPos(e,t){let s=0,n=e.length-1;for(;s<=n;){const o=Math.floor((s+n)/2);if(e[o]===t)return o;e[o]<t?s=o+1:n=o-1}return s}_addToCurrentCycle(e,t,s){let n=this._currentCycleStats.get(e).get(t);n?(n.sortedSequences.push(s),n.minSeq=Math.min(n.minSeq,s),n.maxSeq=Math.max(n.maxSeq,s),n.dirty=!0):(n={sortedSequences:[s],minSeq:s,maxSeq:s,dirty:!1},this._currentCycleStats.get(e).set(t,n))}};var md=new class{constructor(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}init(e){this._core=e;const{OuterEvent:{MESSAGE_RECEIVED:t},notificationCenter:s}=e;s.subscribeOuterEvent(t,this._onMessageReceived,this)}addMessageDelay(e){const{timeManager:t}=this._core.common,s=t.getServerTimeSeconds()-e;s>0&&(this._totalDelay+=s,this._totalCount++,s<=1?this._countLessThan1s++:s<=3&&this._countLessThan3s++)}getStatResult(){if(0===this._totalCount)return null;const e={total_count:this._totalCount,success_count_business:this._countLessThan1s,success_count_platform:this._countLessThan3s,percent_business:this._calculatePercentage(this._countLessThan1s,this._totalCount),percent_platform:this._calculatePercentage(this._countLessThan3s,this._totalCount),average_value:this._calculateAverageDelay(this._totalCount)};return this.reset(),e}reset(){this._totalDelay=0,this._totalCount=0,this._countLessThan1s=0,this._countLessThan3s=0}dispose(){const{notificationCenter:e,OuterEvent:{MESSAGE_RECEIVED:t}}=this._core;e.unSubscribeOuterEvent(t,this._onMessageReceived,this),this.reset()}_onMessageReceived(e){const{data:t=[]}=e,{OuterConstant:{MSG_GRP_TIP:s,MSG_GRP_SYS_NOTICE:n}}=this._core,o=[s,n];t.forEach(e=>{!o.includes(e.type)&&e.clientTime>0&&this.addMessageDelay(e.clientTime)})}_calculateAverageDelay(e){return 0===e?0:Yl(this._totalDelay/e,1)}_calculatePercentage(e,t){return Yl(e/t*100,2)}};var vd=new class{init(e){this.core=e}};var fd=new class{constructor(){this.name="MessageQualityStat",this._reportIndex=0,this._wholePeriod=!1,this._pendingReports=[],this._failedLogsCache=new Map}install(e){this._core=e;const{helper:t,notificationCenter:s,InnerEvent:{QUALITY_STAT:n,LOGOUT:o,DESTROY:i},constants:{WORKFLOW_NAME:r,WORKFLOW_STEP:a}}=e;vd.init(e),pd.init(e),_d.init(e),md.init(e),t.registerWorkflowStep(r.SYNC_SERVER_INFO_AFTER_LOGIN,a.QUALITY_REPORT,this.handleLoginSuccess,this),s.subscribeInnerEvent(n,this._handleQualityStat,this),s.subscribeInnerEvent(o,this._reset,this),s.subscribeInnerEvent(i,this._dispose,this)}handleLoginSuccess(){const{store:e,helper:t,utils:{isUndefined:s}}=this._core,n=e.get("cloudConfig")||{},{q_rpt_interval:o}=n,i=s(o)?12e4:Number(o);t.taskScheduler.addTask({id:gd,intervalMs:i,callback:this.report,context:this})}report(){this._wholePeriod=!0;const e=[...dd.map(e=>{const t=this._buildQualityReportItem(e);return t?Object.assign(Object.assign({},t),{report_index:this._reportIndex,whole_period:this._wholePeriod}):null}).filter(Boolean),...this._pendingReports];this._pendingReports=[],this._needSkipReport()||this._uploadQualityReports(e)}_handleQualityStat(e){const{constants:{QUALITY_METRICS:t}}=this._core,{label:s,data:n}=e;s===t.MESSAGE_SEND_SUCCESS_RATE&&pd.dispatchSendStats(n)}_needSkipReport(){return this._isSDKAppIDInBlacklist()&&!this._isTinyIDInWhitelist()}_isSDKAppIDInBlacklist(){const{store:e,utils:t}=this._core,s=e.get("cloudConfig")||{},n=e.get("instance")||{},{sdkAppId:o}=n,{q_rpt_sdkappid_bl:i=[]}=s;if(t.isEmpty(i))return;return i.split(",").map(e=>Number(e)).includes(o)}_isTinyIDInWhitelist(){const{store:e,utils:t}=this._core,s=e.get("cloudConfig")||{},n=e.get("login")||{},o=Number(n.tinyID),{q_rpt_tinyid_wl:i=[]}=s;if(!t.isEmpty(i))return i.split(",").includes(o)}_buildQualityReportItem(e){const t=this._getStatResultByKey(e);if(null===t)return null;const s={quality_type:cd[e],timestamp:Date.now(),network_type:Ql.ONLINE,extension:""};return Object.assign(Object.assign({},s),t)}_getStatResultByKey(e){switch(e){case Zl:return md.getStatResult();case ed:case td:case sd:case nd:case od:return pd.getStatResult(e);case id:case rd:case ad:return _d.getStatResult(e);default:return null}}_uploadQualityReports(e){return ge(this,void 0,void 0,function*(){try{const t={header:this._core.common.getCommonHead(),quality:e};yield function(e){const{common:t,channel:s}=vd.core,n="imopenstat.tim_web_report_v2",o=t.generateSSOLogProtocolData({servcmd:n,data:e}),i=`${o.head.seq}${n}`;s.sendPacket(o,{requestId:i})}(t),this._reportIndex++,this._wholePeriod=!1}catch(t){console.warn("doReport failed. error:",t),this._pendingReports=this._pendingReports.concat(e),this._cacheFailedLogs()}})}_cacheFailedLogs(){const e=this._pendingReports,t=`${zl}._cacheFailedLogs`;let s=[...this._failedLogsCache.get(Jl)||[],...e];s.length>10&&(s=s.slice(s.length-10),console.log(`${t} logs overflow, keeping last 10 items`)),this._failedLogsCache.set(Jl,s),console.log(`${t} count: ${s.length}`),this._pendingReports=[]}_reset(){const{helper:e}=this._core;e.taskScheduler.removeTask(gd)}_dispose(){const{notificationCenter:e,InnerEvent:{QUALITY_STAT:t,LOGOUT:s,DESTROY:n}}=this._core;e.unSubscribeInnerEvent(t,this._handleQualityStat,this),e.unSubscribeInnerEvent(s,this._reset,this),e.unSubscribeInnerEvent(n,this._dispose,this),this._reset(),md.dispose(),_d.dispose()}};const Id=new class{init(e){this.core=e}};function Ed(e){return ge(this,void 0,void 0,function*(){var t;const{message:s,user:n,appStore:o,constants:{OuterConstant:i}}=Id.core,r=o.conversationStore.getConversationMap();if(r.has(e)){const s=null===(t=r.get(e))||void 0===t?void 0:t.userProfile;if(s&&e.startsWith(i.CONV_C2C)){const{avatar:t,nick:n}=s;Id.core.message.messageDataHandler.updateNickAndAvatarOfSentMessage({conversationID:e,latestAvatar:t,latestNick:n,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 Sd(e){return ge(this,void 0,void 0,function*(){const t=e.map(e=>e.revoker);try{const s=yield function(e){return ge(this,void 0,void 0,function*(){var t,s;const n=yield null===(t=Id.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})}(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)}})}const Cd=1,Md=2,yd=20,Od=2500,Ad=1,Td=300;function Rd(e){return ge(this,void 0,void 0,function*(){var t,s;const{appStore:n,utils:{isEmpty:o},common:{getCurrentUserID:i},notificationCenter:r,OuterEvent:a,OuterConstant:{CONV_C2C:c}}=Id.core,{messageList:u,conversationID:l}=e,d=n.conversationStore.getConversationMap();let h=null===(t=d.get(l))||void 0===t?void 0:t.peerReadTime;if(!h){const e=l.replace(c,""),t=yield function(e){return ge(this,void 0,void 0,function*(){const t={To_Account:e};return Id.core.common.buildAndSendPacket({servcmd:"openim.get_peer_read_time",data:t})})}([e]);if(t){const{ReadTime:e}=t;h=null==e?void 0:e[0],d.has(l)&&(d.get(l).peerReadTime=h)}}if(d.has(l)){const e=null===(s=d.get(l))||void 0===s?void 0:s.lastMessage;o(e)||e.fromAccount===i()&&e.lastTime<=h&&!e.isPeerRead&&(e.isPeerRead=!0,n.conversationStore.updateConversation(l,{lastMessage:e}))}const g=[];u.forEach(e=>{e.time<=h&&!e.isPeerRead&&"out"===e.flow&&(e.isPeerRead=!0,g.push(e))}),g.length>0&&r.emitOuterEvent(a.MESSAGE_READ_BY_PEER,{name:a.MESSAGE_READ_BY_PEER,data:g})})}var Dd=new class{init(e){this._core=e,e.helper.registerApi({apiName:"getMessageList",context:this}),e.helper.registerApi({apiName:"getMessageListHopping",context:this}),e.helper.registerApi({apiName:"clearHistoryMessage",context:this})}getMessageList(e){return ge(this,void 0,void 0,function*(){try{const{message:t,OuterConstant:{Direction:s,CONV_C2C:n,CONV_GROUP:o},InnerEvent:{HISTORY_MESSAGE_FETCHED:i},notificationCenter:r}=this._core,{conversationID:a,nextReqMessageID:c}=e,u=yd;if("@TIM#SYSTEM"===a)return{code:0,data:{messageList:[],isCompleted:!1,nextMessageSeq:""}};const l=this._getAvailableLocalMessagesCount({conversationID:a,nextReqMessageID:c});if(this._needFetchHistoryMessageList({conversationID:a,availableLocalMessagesCount:l,targetCount:u})){let e=null;if(a.startsWith(o)?e=yield t.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:a,sequence:Number(c),count:u,direction:s.FORWARD,shouldMarkCompleted:!0}):a.startsWith(n)&&(e=yield t.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:a,messageID:c,count:u,direction:s.FORWARD,shouldMarkCompleted:!0})),e){const{nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:o,messageList:u}=e,d=t.messageDataHandler.prependLocalMessageList({messageList:u,conversationID:a});!function(e){const{appStore:t,message:s,OuterConstant:n}=Id.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)}(a),yield Ed(a),a.startsWith(n)&&(yield Rd({messageList:u,conversationID:a}));const h=this._core.message.messageDataHandler.getLocalMessageList(a).slice(0,d.length+l),g=h.filter(e=>e.isRevoked);yield Sd(g),r.emitInnerEvent(i,d);const p={nextReqMessageID:o?"":String(s),messageList:h,isCompleted:o},_=h.map(e=>e.sequence);return{code:0,data:p,successLog:{message:`conversationID: ${a} nextReqMessageID: ${c} availableLocalMessagesCount: ${l} sequenceList: ${JSON.stringify(_)}`}}}return{code:0,data:{messageList:[],isCompleted:!1,nextReqMessageID:""}}}return{code:0,data:yield this._getMessageListFromMemory({conversationID:a,nextReqMessageID:c,count:u}),successLog:{message:`conversationID: ${a} nextReqMessageID: ${c} availableLocalMessagesCount: ${l}}`}}}catch(e){throw new this._core.helper.ChatError({code:null==e?void 0:e.code})}})}getMessageListHopping(e){return ge(this,void 0,void 0,function*(){var t,s;const{OuterConstant:{Direction:n,CONV_C2C:o,CONV_GROUP:i}}=this._core,{conversationID:r,sequence:a,time:c,direction:u=n.FORWARD}=e,{utils:{isEmpty:l},message:d,notificationCenter:h,InnerEvent:{HISTORY_MESSAGE_FETCHED:g}}=this._core;if(![n.BACKWARD,n.FORWARD].includes(u))throw new this._core.helper.ChatError({message:"direction must be 0 or 1"});let{count:p=yd}=e;p=p>yd?yd:p;let _=null;if(r.startsWith(i)){if(_=yield d.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:r,sequence:a,count:p,direction:u}),_){const{nextReqMessageIDFromServer:e,hasNoMoreHistoryMessage:o,messageList:i,invisibleSequenceList:r}=_;if(this._core.message.messageDataHandler.storeSparseMessageList(i),h.emitInnerEvent(g,i),u===n.FORWARD){const t=o&&e<1;return{code:0,data:{messageList:i,isCompleted:t,nextMessageSeq:t?"":e}}}if(u===n.BACKWARD){if(l(i)&&l(r))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==r?void 0:r[r.length-1])||void 0===s?void 0:s.sequence)||0;return{code:0,data:{messageList:i.filter(e=>e.sequence>=a),isCompleted:!o,nextMessageSeq:o?Math.max(e,n)+1:""}}}return{code:0,data:_}}}else if(r.startsWith(o)&&(_=yield d.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:r,count:p+1,time:c,direction:u}),_)){const{messageList:e,lastMessageTime:t,hasNoMoreHistoryMessage:s}=_;return h.emitInnerEvent(g,e),s||(u===n.FORWARD?e.shift():e.pop()),d.messageDataHandler.storeSparseMessageList(e),yield Rd({messageList:e,conversationID:r}),{code:0,data:{messageList:e,isCompleted:s,nextMessageTime:s?"":t}}}})}clearHistoryMessage(e){return ge(this,void 0,void 0,function*(){var t;const{appStore:s,common:{ChatError:n,getCurrentUserID:o},OuterConstant:{CONV_C2C:i,CONV_GROUP:r},apiMap:a,message:c}=this._core,u=s.conversationStore.getConversation(e);if(!u)throw new n({code:Od});const l={fromAccount:o()},{type:d}=u;d===i?(l.type=Cd,l.toAccount=e.replace(i,"")):d===r&&(l.type=Md,l.toGroupID=e.replace(r,""));try{yield null===(t=null==a?void 0:a.setMessageRead)||void 0===t?void 0:t.call(a,{conversationID:e});const s=yield function(e){return ge(this,void 0,void 0,function*(){const{fromAccount:t,type:s,toAccount:n,toGroupID:o}=e,i={From_Account:t,Type:s,To_Account:n,ToGroupid:o};return Id.core.common.buildAndSendPacket({servcmd:"recentcontact.clear_msg",data:i})})}(l);return s&&(c.messageDataHandler.deleteConversationMessageList(e),c.messageHistory.completedHistoryConversations.delete(e),c.messageHistory.clearHistoryMessageListFetchAnchors(e),this._updateConversationLastMessage(e)),{code:0,data:{conversationID:e},successLog:{message:`convID:${e}`}}}catch(t){const{errorCode:s}=t;throw new this._core.helper.ChatError({functionName:"clearHistoryMessage",code:s,moreMessage:`convID:${e}`})}})}_updateConversationLastMessage(e){const{appStore:t}=this._core;t.conversationStore.updateConversation(e,{lastMessage:this._generateLastMessage()},{needSort:!0})}_getAvailableLocalMessagesCount({conversationID:e,nextReqMessageID:t}){const{OuterConstant:{CONV_C2C:s,CONV_GROUP:n}}=this._core,o=this._core.message.messageDataHandler.getLocalMessageList(e),{length:i}=o;if(!t)return i;let r=-1;return(null==e?void 0:e.startsWith(s))?r=o.findIndex(e=>e.ID===t):(null==e?void 0:e.startsWith(n))&&(r=o.findIndex(e=>t.includes("-")?e.ID===t:String(e.sequence)===t)),-1===r?0:r}_needFetchHistoryMessageList({conversationID:e,availableLocalMessagesCount:t,targetCount:s}){const{message:n}=this._core;return t<s&&!n.messageHistory.completedHistoryConversations.has(e)}_getMessageListFromMemory(e){return ge(this,arguments,void 0,function*({conversationID:e,nextReqMessageID:t,count:s}){const{OuterConstant:{CONV_C2C:n},message:o}=this._core,i=this._core.message.messageDataHandler.getLocalMessageList(e),r=i.length;let a=r,c={isCompleted:!1,nextReqMessageID:"",messageList:[]},u=0,l=r;return t?t&&(l=i.findIndex(s=>e.startsWith(n)?s.ID===t:String(s.sequence)===t),u=l>s?l-s:0,a=l):u=r>s?r-s:0,c.messageList=i.slice(u,l),c.isCompleted=a<=s&&o.messageHistory.completedHistoryConversations.has(e),c.isCompleted?c.nextReqMessageID="":c.nextReqMessageID=this._generateNextReqMessageID({conversationID:e,targetIndex:u}),e.startsWith(n)&&(yield Ed(e),yield Rd({messageList:c.messageList,conversationID:e})),c})}_generateNextReqMessageID({conversationID:e,targetIndex:t}){const s=this._core.message.messageDataHandler.getLocalMessageList(e);return e.startsWith("C2C")?s[t].ID:String(s[t].sequence)}_generateLastMessage(){return{lastTime:0,lastSequence:0,fromAccount:"",messageForShow:"",payload:null,type:"",isRevoked:!1,cloudCustomData:"",onlineOnlyFlag:!1,nick:"",nameCard:"",version:0,isPeerRead:!1,revoker:null}}};var bd=new class{constructor(){this._lastMessageSequenceMapOnDisconnect=new Map,this._lastMessageTimeMapOnDisconnect=new Map}init(e){this._core=e;const{common:{workflowManager:t},constants:{WORKFLOW_NAME:s,WORKFLOW_STEP:n,InnerEvent:o}}=e;t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.HISTORY_MESSAGE_RECOVER,this._syncGroupOfflineMessage,this),t.registerWorkflowStep(s.SYNC_SERVER_INFO_AFTER_RE_ONLINE,n.C2C_HISTORY_MESSAGE_RECOVER,this._syncC2COfflineMessage,this),e.notificationCenter.subscribeInnerEvent(o.SOCKET_DISCONNECTED,this._updateLastMessageSequenceMapOnDisconnect,this)}_syncGroupOfflineMessage(e){const{conversationList:t}=(null==e?void 0:e.result)||{},{OuterConstant:s,utils:{isArray:n}}=this._core;if(n(t)){const e=t.filter(e=>e.type===s.CONV_GROUP&&e.groupProfile.type!==s.GRP_AVCHATROOM);return this._recoverGroupHistoryMessage(e)}}_recoverGroupHistoryMessage(e){return ge(this,void 0,void 0,function*(){const{OuterConstant:t}=this._core,s=[],n=[];return yield Promise.all(null==e?void 0:e.map(e=>ge(this,void 0,void 0,function*(){const{groupProfile:{groupID:o}={},lastMessage:{lastSequence:i}={}}=e,r=`${t.CONV_GROUP}${o}`;let a=this._getLocalLastMessageSequence(r);this._shouldRecoverHistory({localLastMessageSequence:a,serverLastMessageSequence:i})&&(yield this._recoverGroupHistoryForConversation({conversationID:r,localLastMessageSequence:a,serverLastMessageSequence:i,groupTipList:n})),s.push(r.replace(t.CONV_GROUP,""))}))),{recoverRevokeNoticeGroupIDList:s,groupTipList:n}})}_recoverGroupHistoryForConversation(e){return ge(this,arguments,void 0,function*({conversationID:e,localLastMessageSequence:t,serverLastMessageSequence:s,groupTipList:n}){try{const{utils:{isArray:o,isObject:i,isEmpty:r},OuterEvent:a,OuterConstant:c,notificationCenter:u,message:l,appStore:d,common:{getMessagePreviewText:h}}=this._core,g=s-t,p=Math.min(20,g),_={},m=yield l.messageHistory.getGroupRoamingMessagesByAnchor({conversationID:e,sequence:t+p,direction:c.Direction.FORWARD,count:p}),{nextReqMessageIDFromServer:v,hasNoMoreHistoryMessage:f,messageList:I,serverGroupTipList:E}=m;o(E)&&n.push(...E);const S=f&&v<0,C=[];if(o(I)&&(I.forEach(e=>{l.messageReceiver.groupMessageReceiver.updateMessageProfile(e),e.from===c.CONV_SYSTEM&&(e.isSystemMessage=!1);l.messageDataHandler.storeConversationMessage(e)&&!r(e.payload)&&(C.push(e),e._isExcludedFromLastMessage||(_.lastMessage=Object.assign({},e)))}),C.length>0&&u.emitOuterEvent(a.MESSAGE_RECEIVED,{name:a.MESSAGE_RECEIVED,data:C})),!S&&I.length>0){const t=I[I.length-1].sequence;yield this._recoverGroupHistoryForConversation({conversationID:e,localLastMessageSequence:t,serverLastMessageSequence:s,groupTipList:n})}i(_.lastMessage)&&(_.lastMessage.messageForShow=h(_.lastMessage.type,_.lastMessage.payload),d.conversationStore.updateConversation(e,_))}catch(t){this._core.ssoLog.error("_recoverGroupHistoryForConversation",`Recovery failed for conversation:${e}`,{error:t})}})}_updateLastMessageSequenceMapOnDisconnect(){const{message:e}=this._core,t=e.messageDataHandler.getContinuousMessagesByConversation();for(const[e,s]of t){const t=Array.from(s.values());if((null==t?void 0:t.length)>0){const s=t[t.length-1];e.startsWith("C2C")?this._lastMessageTimeMapOnDisconnect.set(e,s.time):e.startsWith("GROUP")&&this._lastMessageSequenceMapOnDisconnect.set(e,s.sequence)}}}_getLocalLastMessageSequence(e){const{message:t}=this._core;if(this._lastMessageSequenceMapOnDisconnect.has(e))return this._lastMessageSequenceMapOnDisconnect.get(e);const s=t.messageDataHandler.getLocalMessageList(e),n=s[s.length-1];return null==n?void 0:n.sequence}_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>0&&(n>=Ad&&n<Td)}_syncC2COfflineMessage(e){const{conversationList:t}=(null==e?void 0:e.result)||{},{OuterConstant:s,utils:{isArray:n}}=this._core;if(n(t)){const e=[];return t.forEach(t=>{t.type===s.CONV_C2C&&e.push(t)}),this._recoverC2CHistoryMessage(e)}}_recoverC2CHistoryMessage(e){return ge(this,void 0,void 0,function*(){yield Promise.all(null==e?void 0:e.map(e=>ge(this,void 0,void 0,function*(){const{conversationID:t,lastMessage:{lastTime:s}={}}=e,n=this._getLocalLastMessageTime(t);this._shouldRecoverC2CHistory({localLastMessageTime:n,serverLastMessageTime:s})&&(yield this._recoverHistoryForC2CConversation({conversationID:t,localLastMessageTime:n,serverLastMessageTime:s}))})))})}_shouldRecoverC2CHistory(e){const{localLastMessageTime:t,serverLastMessageTime:s}=e,n=s-t;return t>0&&n>=1&&n<=600}_recoverHistoryForC2CConversation(e){return ge(this,void 0,void 0,function*(){var t;const{conversationID:s,localLastMessageTime:n,serverLastMessageTime:o}=e,{utils:{isArray:i,isObject:r,isEmpty:a,safeStringify:c},OuterEvent:u,OuterConstant:l,notificationCenter:d,message:h,appStore:g,common:{getMessagePreviewText:p}}=this._core;try{const e={},c=yield h.messageHistory.getC2CRoamingMessagesByAnchor({conversationID:s,direction:l.Direction.BACKWARD,time:n,count:20});if(a(c))return;const{hasNoMoreHistoryMessage:_,messageList:m}=c,v=[];i(m)&&(m.forEach(t=>{h.messageDataHandler.storeConversationMessage(t)&&!a(t.payload)&&(v.push(t),t._isExcludedFromLastMessage||(e.lastMessage=Object.assign({},t)))}),v.length>0&&d.emitOuterEvent(u.MESSAGE_RECEIVED,{name:u.MESSAGE_RECEIVED,data:v}));const f=null===(t=m[m.length-1])||void 0===t?void 0:t.time;!_&&f>o&&(yield this._recoverHistoryForC2CConversation({conversationID:s,localLastMessageTime:f,serverLastMessageTime:o})),r(e.lastMessage)&&(e.lastMessage.messageForShow=p(e.lastMessage.type,e.lastMessage.payload),g.conversationStore.updateConversation(s,e))}catch(e){this._core.ssoLog.error("_recoverHistoryForC2CConversation",`Recovery failed for conversation:${s} error: ${c(e)}`)}})}_getLocalLastMessageTime(e){const{message:t}=this._core;if(this._lastMessageTimeMapOnDisconnect.has(e))return this._lastMessageTimeMapOnDisconnect.get(e);const s=t.messageDataHandler.getLocalMessageList(e),n=s[s.length-1];return null==n?void 0:n.time}reset(){this._lastMessageSequenceMapOnDisconnect.clear(),this._lastMessageTimeMapOnDisconnect.clear()}dispose(){this.reset()}};var Nd=new class{constructor(){this.name="HistoryMessage"}install(e){this._core=e,Id.init(e),Dd.init(e),bd.init(e),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.LOGOUT,this._reset,this),e.notificationCenter.subscribeInnerEvent(e.InnerEvent.DESTROY,this.dispose,this)}dispose(){const{notificationCenter:e,InnerEvent:t}=this._core;e.unSubscribeInnerEvent(t.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(t.DESTROY,this.dispose,this),bd.dispose()}_reset(){bd.reset()}};var Ld=new class{init(e){this.core=e}};var Pd=new class{constructor(){this._reportedAtomicStoreIDs=new Set}init(e){const{helper:{registerExperimentalAPI:t}}=e;this._core=e,t("reportModalView",this),t("reportTUIFeatureUsage",this),t("reportRoomEngineEvent",this)}reportModalView(e){const{ssoLog:t,utils:{safeStringify:s,isString:n}}=this._core;try{if(!n(e))throw new Error("reportModalView data is not a string");t.createSSOLogData({method:"reportModalView",message:e,eventType:30}).end(!0)}catch(e){t.debug(`reportModalView Report failed: ${s(e)}`)}}reportTUIFeatureUsage(e){const{ssoLog:t,utils:{safeStringify:s,isEmpty:n}}=this._core,{atomicStoreID:o}=e;try{n(o)||this._reportedAtomicStoreIDs.has(o)||(this._core.ssoLog.info("reportTUIFeatureUsage",`atomicStoreID: ${e.atomicStoreID}`,{method:"reportTUIFeatureUsage",eventType:31,code:o}),this._reportedAtomicStoreIDs.add(o))}catch(e){t.debug(`reportTUIFeatureUsage Report failed: ${s(e)}`)}}reportRoomEngineEvent(e){const{utils:{safeStringify:t},ssoLog:s}=this._core;try{s.debug(`reportRoomEngineEvent Report: ${t(e)}`);const{eventId:n,eventCode:o,eventResult:i,eventMessage:r,moreMessage:a,extensionMessage:c}=e;s.createSSOLogData({method:c,code:n,message:r,eventType:30,costTime:o,uiPlatform:i,moreMessage:a}).end(!0)}catch(e){s.debug(`reportRoomEngineEvent Report failed: ${t(e)}`)}}reset(){this._reportedAtomicStoreIDs.clear()}dispose(){this.reset()}};var Gd=new class{constructor(){this.name="DataReport"}install(e){this._core=e;const{notificationCenter:t,InnerEvent:{LOGOUT:s,DESTROY:n}}=e;Ld.init(e),Pd.init(e),t.subscribeInnerEvent(s,this._reset,this),t.subscribeInnerEvent(n,this._dispose,this)}_reset(){Pd.reset()}_dispose(){const{notificationCenter:e,InnerEvent:{LOGOUT:t,DESTROY:s}}=this._core;e.unSubscribeInnerEvent(t,this._reset,this),e.unSubscribeInnerEvent(s,this._dispose,this),Pd.dispose()}};let wd=Cs.STANDARD,Ud=[];wd=Cs.STANDARD,Ud=[kn,Un,qn,Jn,Zn,fd,Nd,Gd,Pi,zr,ba,zu,Rl,Wl,Ro];function kd(e,t){const{operationType:s,memberInfoList:n,operatorInfo:o}=e||{};let i={};if(Ie(n)?Ie(o)||(i=o):s!==vs.JOINED&&s!==vs.KICKED&&s!==vs.ADMIN_SET&&s!==vs.ADMIN_CANCELED||(i=Object.assign({},n[0])),!Ie(i)){const{nick:e="",avatar:s=""}=i;t.nick=e,t.avatar=s}}var Fd=Object.freeze({__proto__:null,ChatError:Ws,WorkflowManager:on,buildAndSendPacket:dn,get builtInPlugins(){return Ud},checkBusinessCapabilityBits:nn,deepMerge:vn,getCurrentUserID:_n,getErrorMessage:Ks,getMessagePreviewText:Sn,isC2CConv:e=>t(e)&&e.slice(0,3)===hs.CONV_C2C,isCommunity:an,isGroupConv:e=>t(e)&&e.slice(0,5)===hs.CONV_GROUP,isInternational:Hs,isTopic:cn,isUnlimitedAVChatRoom:function(){var e;return!!(null===(e=Yt.store.get("instance"))||void 0===e?void 0:e.unlimitedAVChatRoom)},liteChatInstanceMap:rn,registerInterceptor:tn,registerValidateConfig:sn,requireAuth:Ys,get sdkEdition(){return wd},setGroupTipsUserInfo:kd,t:In,updateGroupAtInfo:(e,t)=>{const{CONV_AT_ME:s,CONV_AT_ALL:n,CONV_AT_ALL_AT_ME:o}=Es;if(function(e,t){const{CONV_AT_ME:s,CONV_AT_ALL:n,CONV_AT_ALL_AT_ME:o}=Es,{groupID:i,sequence:r}=e;let a=!1;if(!an({groupID:i}))return a;return t.forEach(t=>{t.messageSequence===r&&(t.atTypeArray.includes(s)&&e.groupAtType.includes(n)&&(t.atTypeArray=[o]),t.atTypeArray.includes(n)&&e.groupAtType.includes(s)&&(t.atTypeArray=[o],t.__random=e.__random,t.__sequence=e.__sequence),a=!0)}),a}(e,t))return;let i=[...e.groupAtType];i.includes(s)&&i.includes(n)&&(i=[o]);const r={from:e.from,groupID:e.groupID,topicID:e.topicID,messageSequence:e.sequence,atTypeArray:i,__random:e.__random,__sequence:e.__sequence};t.push(r)},validateAndExecute:en,validateParameters:zs});class $d{constructor(){this._builtInPlugins=new Set,this._externalPlugins=new Set}static getInstance(){return $d._instance||($d._instance=new $d),$d._instance}static setInstance(e){$d._instance=e}installBuiltInPlugin(e){e&&this._installPlugin(e,this._builtInPlugins)}installExternalPlugin(e){e&&this._installPlugin(e,this._externalPlugins)}clear(){this._builtInPlugins=new Set,this._externalPlugins=new Set}_installPlugin(e,t){let s=[];s=n(e)?e:[e];const o=s.findIndex(e=>"AVChatRoom"===(null==e?void 0:e.name)),i=o>-1?s.splice(o,1):[];s.forEach(e=>{this._isPluginInstalled(e.name)||(e&&zt(e.install)?(t.add(e.name),zt(e.getInstalledSubPlugins)?e.install(Kd.getInstance().exposeApiForPlugin(),i):e.install(Kd.getInstance().exposeApiForPlugin()),zt(e.handleLoginSuccess)&&this._isLoggedIn()&&e.handleLoginSuccess()):zt(e)?(t.add(e.name),e(Kd.getInstance().exposeApiForPlugin()),zt(e.handleLoginSuccess)&&this._isLoggedIn()&&e.handleLoginSuccess()):console.warn('A plugin must either be a function or an object with an "install" function.'))})}_isPluginInstalled(e){return this._builtInPlugins.has(e)||this._externalPlugins.has(e)}_isLoggedIn(){var e;return!0===(null===(e=Yt.store.get("login"))||void 0===e?void 0:e.isLoggedIn)}}var xd=new class{constructor(){this._conversationMap=new Map}getConversationMap(){return this._conversationMap}getConversation(e){return this._conversationMap.get(e)}updateConversation(e,t,s={emit:!0,needSort:!1}){const{emit:n,needSort:o}=s,i=this._conversationMap.get(e);i&&!Ie(t)&&(Object.keys(t).forEach(e=>{i[e]=t[e]}),n&&Yt.notificationCenter.emitInnerEvent(ts.CONVERSATION_UPDATED,{needSort:o}))}deleteConversation(e){this._conversationMap.has(e)&&(this._conversationMap.delete(e),Yt.notificationCenter.emitInnerEvent(ts.CONVERSATION_UPDATED))}};var qd=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&&!Ie(t)&&Object.keys(t).forEach(e=>{s[e]=t[e]})}};var Vd=new class{constructor(){this._messagesByConversation=new Map}updateMessage(e,t,s){var n;const{operation:o,updateUnreadCount:i=!0}=s,r=he(s,["operation","updateUnreadCount"]),a=[];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(r).forEach(e=>{t[e]=r[e]}),a.push(t)}return this._emitMessageStoreOperationEvent(o,{conversationID:e,messageList:a,updateUnreadCount:i}),a}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){const{conversationID:s}=t;cn(s)?Yt.notificationCenter.emitInnerEvent(us[e],t):Yt.notificationCenter.emitInnerEvent(e,t)}};var Bd=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)}},Hd=Object.freeze({__proto__:null,conversationStore:xd,groupStore:qd,messageStore:Vd,userStore:Bd});class Kd{static getInstance(){return Kd._instance||(Kd._instance=new Kd),Kd._instance}static setInstance(e){Kd._instance=e}constructor(){this._experimentalApiMap={statTUIKeyFeatures:this.statKeyFeatureUsage.bind(this),setApplicationID:this.setApplicationID.bind(this)},this._apiHandlersMap={},this._apiMap={on:Yt.notificationCenter.subscribeOuterEvent.bind(Yt.notificationCenter),off:Yt.notificationCenter.unSubscribeOuterEvent.bind(Yt.notificationCenter),destroy:this.destroy.bind(this),callExperimentalAPI:this.callExperimentalAPI.bind(this),use:$d.getInstance().installExternalPlugin.bind($d.getInstance()),registerPlugin:this.registerPlugin.bind(this),setLogLevel:this.setLogLevel.bind(this)}}registerPlugin(e){Yt.ssoLog.debug("registerPlugin",e)}statKeyFeatureUsage(e){Yt.ssoLog.debug("statTUIKeyFeatures",e)}setLogLevel(e){Yt.ssoLog.debug("setLogLevel",e),Yt.ssoLog.setLogLevel(e)}setApplicationID(e){Yt.store.set("instance",{applicationID:e})}getApiMap(){return this._apiMap}setApiMap(e){this._apiMap=e}registerApi(e){const{common:{timeManager:t},utils:{safeStringify:s}}=Yt,{apiName:n,context:o,methodName:i=n,matcher:r}=e;this._apiHandlersMap[n]||(this._apiHandlersMap[n]=[]),this._apiHandlersMap[n].push({context:o,methodName:i,matcher:r}),this._apiMap[n]&&1!==this._apiHandlersMap[n].length||(this._apiMap[n]=(...e)=>{const o=t.getServerTimeMs();let r=0;"login"===n&&(r=4),Rs.includes(n)&&Yt.ssoLog.debug(n,`${n} start params: ${s(e)}`),en(i,e);const a=this._apiHandlersMap[n];for(const s of a)if(!s.matcher||s.matcher(e))try{const t=s.context[s.methodName].bind(s.context)(...e);return this._isPromiseLike(t)?this._handleAsyncResult(t,n,r,o):(this._reportApiSuccessLog({result:t,apiName:n,eventType:r,startTime:o}),t)}catch(e){throw Yt.ssoLog.error(n,`${n} fail ${(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message)})`,{error:e,costTime:t.getServerTimeMs()-o,eventType:r,method:n}),e}})}registerExperimentalAPI(e,t,s){const n=s||e;this._experimentalApiMap[e]=t[n].bind(t)}destroy(){return ge(this,void 0,void 0,function*(){var e,t;try{(null===(e=Yt.store.get("login"))||void 0===e?void 0:e.isLogin)&&(yield this._apiMap.logout()),Yt.notificationCenter.emitInnerEvent(ts.DESTROY)}catch(e){console.debug("destroy error: ",e)}finally{Yt.notificationCenter.emitOuterEvent(Zt.SDK_DESTROY,{SDKAppID:null===(t=Yt.store.get("instance"))||void 0===t?void 0:t.sdkAppId}),rn.clear(),$d.getInstance().clear(),on.getInstance().destroy(),Yt.destroy()}})}exposeApiForClient(){return this._apiMap}exposeApiForPlugin(){return Object.assign(Object.assign({InnerEvent:ts,InnerEventSubType:Yt.notificationCenter.InnerEventSubType,OuterEvent:Zt,OuterConstant:Es,SignalingEvent:ss,helper:Object.assign(Object.assign(Object.assign({},Yt.utils),Yt.common),{registerApi:this.registerApi.bind(this),registerExperimentalAPI:this.registerExperimentalAPI.bind(this),registerInterceptor:tn,registerValidateConfig:sn,checkBusinessCapabilityBits:nn,registerWorkflowStep:on.getInstance().registerWorkflowStep.bind(on.getInstance()),ChatError:Ws}),apiMap:this._apiMap},Yt),{constants:Object.assign(Object.assign({},Ds),Yt.constants),common:Object.assign(Object.assign(Object.assign({},Fd),Yt.common),{workflowManager:on.getInstance()}),utils:Yt.utils,appStore:Hd})}callExperimentalAPI(e,t){return Yt.ssoLog.debug(`callExperimentalAPI.${e} start params: ${Yt.utils.safeStringify(t)}`),this._experimentalApiMap[e]?this._experimentalApiMap[e](t):(Yt.ssoLog.error("callExperimentalAPI",`callExperimentalAPI.${e} not found, params: ${Yt.utils.safeStringify(t)}`),Promise.reject(new Ws({code:Ss.INVALID_OPERATION})))}_isPromiseLike(e){return null!==e&&"object"==typeof e&&"function"==typeof e.then}_handleAsyncResult(e,t,s,n){return e.then(e=>(this._reportApiSuccessLog({result:e,apiName:t,eventType:s,startTime:n}),e)).catch(e=>{throw Yt.ssoLog.error(t,`${t} fail ${(null==e?void 0:e.errorMessage)||(null==e?void 0:e.message)})`,{error:e,costTime:Yt.common.timeManager.getServerTimeMs()-n,eventType:s,method:t}),e})}_reportApiSuccessLog(e){let{result:t,apiName:s,startTime:n,eventType:o}=e;const{timeManager:i}=Yt.common,{successLog:{message:r,moreMessage:a}={message:"",moreMessage:""}}=t||{},c=i.getServerTimeMs();"login"===s&&(n+=i.getTimeOffsetWithServer()),Rs.includes(s)&&Yt.ssoLog.info(s,`${s} success ${r} ${a}`,{costTime:c-n,eventType:o,message:r,moreMessage:a}),(null==t?void 0:t.successLog)&&delete t.successLog}}class Wd{constructor(){this._latestLoginAt=0,this._latestSendOnlinePresenceRequestTime=0,this._helloInterval=120,this._customLoginInfo=""}init(){const{notificationCenter:e,store:t}=Yt;t.set("login",{isReady:!1}),Kd.getInstance().registerApi({apiName:"login",context:this}),Kd.getInstance().registerApi({apiName:"logout",context:this}),Kd.getInstance().registerApi({apiName:"getLoginUser",context:this}),Kd.getInstance().registerApi({apiName:"isReady",context:this}),Kd.getInstance().registerExperimentalAPI("setCustomLoginInfo",this),e.subscribeInnerEvent(ts.RECONNECTED,this._reLogin,this),Yt.notificationCenter.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}login(e){return ge(this,void 0,void 0,function*(){var t;const{sdkEdition:s}=Yt.store.get("instance")||{};try{if(this._isLoginIn())return this._createRepeatLoginResponse();if(this._isLoginFrequencyExceeded())throw new Ws({functionName:"login",code:Ss.REPEAT_LOGIN});const n=yield this._performLogin(e);this._validateAfterLogin(n),this._handleLoginSuccess(n),yield this._ensureAsyncComplete(),this._updateAndEmitSDKReady(),this._latestLoginAt=0;const o=null===(t=Yt.channel.getSocketAdapter())||void 0===t?void 0:t.getId(),{appId:i,href:r}=Yt.store.get("instance")||{},{instanceID:a,customStatus:c}=n||{};return{code:0,data:n,successLog:{message:s,moreMessage:`socketID:${o} instanceID:${a} customStatus:${c} href: ${r} appId: ${i}`}}}catch(e){const{errorCode:t}=e;t!==Ss.REPEAT_LOGIN&&(this._latestLoginAt=0);const s=new Ws({functionName:"login",code:t});throw console.error(s),s}})}_reLogin(){return ge(this,void 0,void 0,function*(){var e;try{if(!this._isLoginIn())return;const t=yield js(this._customLoginInfo);if(t){const{instanceID:s,customStatus:n}=t;Yt.store.set("login",{statusInstanceId:s}),on.getInstance().executeWorkflow(Ms.SYNC_SERVER_INFO_AFTER_RE_ONLINE,{customStatus:n,statusType:ls.USER_STATUS_ONLINE});const o=null===(e=Yt.channel.getSocketAdapter())||void 0===e?void 0:e.getId();Yt.ssoLog.info("reLogin",`socketId:${o} instanceId:${s}`)}}catch(e){console.warn(e)}})}logout(){return ge(this,arguments,void 0,function*(e=bs.USER_INITIATED){const{ssoLog:t}=Yt;t.debug("logout",`logout start logoutReason: ${e}`);try{yield this._performLogout(e),t.info("logout","logout success"),Yt.ssoLog.uploadSSOLogData()}catch(e){const{errorCode:t}=e;throw new Ws({functionName:"logout",code:t})}finally{this._handleLogoutCompleted()}return{code:0,data:{}}})}getLoginUser(){return this._isLoginIn()?_n():""}isReady(){var e;return null===(e=Yt.store.get("login"))||void 0===e?void 0:e.isReady}setCustomLoginInfo(e=""){this._customLoginInfo=e}_updateAndEmitSDKReady(){Yt.store.set("login",{isReady:!0}),setTimeout(()=>{Yt.notificationCenter.emitOuterEvent(Zt.SDK_READY,{name:Zt.SDK_READY})},1)}_updateAndEmitSDKNotReady(){Yt.store.set("login",{isReady:!1}),Yt.notificationCenter.emitOuterEvent(Zt.SDK_NOT_READY,{name:Zt.SDK_NOT_READY})}_validateAfterLogin(e){const t="login";if(!e)throw new Ws({functionName:t,message:"login response is empty"});const{tinyID:s,a2Key:n}=e||{};if(!s){throw new Ws({functionName:t,code:Ss.NO_TINYID})}if(!n){throw new Ws({functionName:t,code:Ss.NO_A2KEY})}}_createRepeatLoginResponse(){var e;return{code:0,data:{actionStatus:"OK",errorCode:0,errorInfo:Ks({code:"RepeatLogin",replacement1:null===(e=Yt.store.get("login"))||void 0===e?void 0:e.userId}),repeatLogin:!0}}}_performLogin(e){return ge(this,void 0,void 0,function*(){const{userID:t,userSig:s}=e;return Yt.store.set("login",{userId:t,userSig:s}),this._latestLoginAt=Date.now(),js(this._customLoginInfo)})}_ensureAsyncComplete(){return ge(this,void 0,void 0,function*(){yield new Promise(e=>{setTimeout(()=>e(null),1)})})}_handleLoginSuccess(e){const{timeManager:t}=Yt.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),Yt.user.userStatus.setCustomStatus(o),on.getInstance().executeWorkflow(Ms.SYNC_SERVER_INFO_AFTER_LOGIN,{purchaseBits:i}),Yt.common.taskScheduler.addTask({id:Gs,intervalMs:1e3*this._helloInterval,callback:this._sendOnlinePresenceRequest,context:this})}_performLogout(e){return function(e){return ge(this,void 0,void 0,function*(){const{logoutReason:t}=e,s="im_open_status.wslogout",n=Yt.common.generateProtocolData({servcmd:s,data:{wslogout_type:t,isWebUniapp:0}}),o=`${n.head.seq}${s}`;return yield Yt.channel.sendPacket(n,{requestId:o})})}({logoutReason:e})}_handleLogoutCompleted(){this._updateAndEmitSDKNotReady(),this._reset(),on.getInstance().reset(),Yt.notificationCenter.emitInnerEvent("logout")}_updateLoginStore(e){const{a2Key:t,tinyID:s,instanceID:n,authKey:o}=e;Yt.store.set("login",{a2Key:t,tinyID:s,statusInstanceId:n,authKey:o,isLoggedIn:!0})}_sendOnlinePresenceRequest(){return ge(this,void 0,void 0,function*(){this._latestSendOnlinePresenceRequestTime=Date.now();try{yield function(){const e="im_open_status.wshello",t=Yt.common.generateProtocolData({servcmd:e,data:{isWebUniapp:0}}),s=`${t.head.seq}${e}`;return Yt.channel.sendPacket(t,{requestId:s})}()}catch(e){Yt.ssoLog.warn("_sendOnlinePresenceRequest",` error:${e.message}`)}})}_isLoginIn(){var e;return!0===(null===(e=Yt.store.get("login"))||void 0===e?void 0:e.isLoggedIn)}_isLoginFrequencyExceeded(){return Date.now()-this._latestLoginAt<=15e3}_reset(){Yt.common.taskScheduler.removeTask(Gs),this._helloInterval=120,this._latestSendOnlinePresenceRequestTime=0,this._latestLoginAt=0,this._customLoginInfo="",Yt.store.clear("login"),Yt.store.set("login",{isReady:!1}),Yt.store.set("instance",{applicationID:0})}_dispose(){this._reset();const{notificationCenter:e}=Yt;e.unSubscribeInnerEvent(ts.RECONNECTED,this._reLogin,this),e.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this)}}const Yd={login:{userID:{required:!0,rules:["string"],allowEmpty:!1},userSig:{required:!0,rules:["string"],allowEmpty:!1}}},zd={logout:!0};class Jd{constructor(){this.loginAction=new Wd,this.kickedOutHandler=new Bs,this.loginAction.init(),this.kickedOutHandler.init(),sn({auth:zd,params:Yd})}}var Qd,Xd,Zd;!function(e){e.CONV_C2C="C2C",e.CONV_GROUP="GROUP",e.CONV_TOPIC="TOPIC",e.CONV_SYSTEM="@TIM#SYSTEM"}(Qd||(Qd={})),function(e){e.MSG_PRIORITY_HIGH="High",e.MSG_PRIORITY_NORMAL="Normal",e.MSG_PRIORITY_LOW="Low",e.MSG_PRIORITY_LOWEST="Lowest"}(Xd||(Xd={})),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"}(Zd||(Zd={}));const eh={1:Xd.MSG_PRIORITY_HIGH,2:Xd.MSG_PRIORITY_NORMAL,3:Xd.MSG_PRIORITY_LOW,4:Xd.MSG_PRIORITY_LOWEST},th=0,sh=1;var nh;!function(e){e.IN="in",e.OUT="out"}(nh||(nh={}));const oh=2,ih={};function rh(e){if(!e)return 0;if(void 0===ih[e]){const t=new Date,s=`3${t.getHours()}`.slice(-2),n=`0${t.getMinutes()}`.slice(-2),o=`0${t.getSeconds()}`.slice(-2);ih[e]=parseInt([s,n,o,"0001"].join(""),10),console.log(`autoIncrementIndex start index:${ih[e]}`)}else ih[e]+=1;return ih[e]}class ah{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=Xd.MSG_PRIORITY_NORMAL,this._relayFlag=!1;const{clientTime:t=Yt.common.timeManager.getServerTimeSeconds()||0,senderTinyID:s,currentUser:n,needReadReceipt:o,isSupportExtension:i,customModerationConfigurationId:r,to:a,from:c,nick:u="",avatar:l="",time:d,messageControlInfo:h,tinyID:g,cloudCustomData:p="",messageLifeTime:_,messageVersion:m=0,conversationType:v,sequence:f,checkResult:I=0,isPlaceMessage:E=0,messageFlagBits:S,receiverList:C,isSystemMessage:M=!1,status:y=is.SUCCESS,revokeReason:O="",conversationSubType:A,clientSequence:T,protocol:R="JSON",revokerInfo:D={userID:"",nick:"",avatar:""},readReceiptInfo:b={readCount:void 0,unreadCount:void 0,isPeerRead:void 0,timestamp:0},random:N,groupProfile:L,atUserList:P,flow:G,isRead:w=!1,priority:U=Xd.MSG_PRIORITY_NORMAL,onlineOnlyFlag:k=!1}=e;var F;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=u,this.avatar=l,this.protocol=R,this.random=void 0===N?(F=F||99999999,Math.round(Math.random()*F)):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||Qd.CONV_C2C,this.hasRiskContent=I>1,this.version=m,this.isPlaceMessage=E,this.isRevoked=2===E||8===S,this.isSystemMessage=M,this.readReceiptInfo=b,this.revokeReason=O,this.revokerInfo=D,this._receiverList=C,this.conversationSubType=A,this.revoker=(null==D?void 0:D.revoker)||"",this.clientSequence=T||f||0,this.status=y,this.atUserList=P||[],this.flow=G,this.isRead=w,this.priority=U,this._onlineOnlyFlag=k,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===Qd.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,GroupType:o}=e,{NameCard:i}=n||{};"string"==typeof t&&(this.nick=t),"string"==typeof s&&(this.avatar=s),"string"==typeof i&&(this.nameCard=i),this.conversationSubType=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!==Qd.CONV_SYSTEM?(t=s===Qd.CONV_C2C?e===this.from?this.to:this.from:this.to,this.conversationID=t?`${s}${t}`:null):this.conversationID=Qd.CONV_SYSTEM}_initSequence(e){0===this.clientSequence&&e&&(this.clientSequence=rh(e)),0===this.sequence&&this.conversationType===Qd.CONV_C2C&&(this.sequence=this.clientSequence)}generateMessageID(){this.from===Qd.CONV_SYSTEM&&(this.senderTinyID="144115198244471703"),this.ID=`${this.senderTinyID}-${this.clientTime}-${this.random}`}setIsRead(e){this.isRead=e}}class ch{static parseServerPushElement(e){const{MsgContent:t={}}=e,{Data:s,Ext:n,Desc:o}=t;return new ch({data:s,description:o,extension:n})}constructor(e){this.type=Zd.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}=Yt.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 uh{static parseServerPushElement(e){const{MsgContent:t={Text:""}}=e,{Text:s}=t;return new uh({text:s})}constructor(e){this.type=os.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}}}}var lh=new class{constructor(){this._elementClassMap={[Zd.MSG_CUSTOM]:ch,[Zd.MSG_TEXT]:uh}}init(){Kd.getInstance().registerApi({apiName:"createCustomMessage",context:this}),Kd.getInstance().registerApi({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=nh.OUT}=e,{userId:n}=Yt.store.get("login")||{};this._isSendByCurrentInstance({from:t,flow:s,currentUser:n})?this._updateWithSenderInfo(e):this._isMultiEndpointSyncMessage({from:t,flow:s,currentUser:n})&&(e.flow=nh.OUT);const o=Object.assign(Object.assign({},e),{currentUser:n});return new ah(o)}createCustomMessage(e){const t=_n(),s=this.createMessage(Object.assign(Object.assign({},e),{from:t})),n=this._elementClassMap[Zd.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 uh({text:s}),o=_n(),i=Yt.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}=Yt.store.get("login")||{},i=Bd.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=is.UNSENT,e.flow=nh.OUT,e}_isMultiEndpointSyncMessage(e){const{from:t,flow:s,currentUser:n}=e;return t===n&&s===nh.IN}_isSendByCurrentInstance(e){const{from:t,flow:s,currentUser:n}=e;return t===n&&s===nh.OUT}};const dh={PushFlag:0,Title:"",Desc:"",Ext:"",ApnsInfo:{Sound:"",BadgeMode:0,IsVoipPush:void 0,Image:"",InterruptionLevel:"active",ContentAvailable:0},AndroidInfo:{Sound:"",XiaoMiChannelID:"",OPPOChannelID:"",GoogleChannelID:"",VIVOClassification:1,VIVOCategory:"",HuaWeiCategory:"",OPPOCategory:"",HuaWeiImage:"",HonorImage:"",GoogleImage:"",HonorImportance:"",MeizuNotifyType:void 0}},hh={HonorImportance:{range:["LOW","NORMAL"],defaultValue:void 0},MeizuNotifyType:{range:[0,1],defaultValue:void 0}},gh={enableIOSBackgroundNotification:{range:[!0,!1],defaultValue:!1},interruptionLevel:{range:["passive","active","time-sensitive","critical"],defaultValue:"active"}};function ph(e,t){return Object.keys(t).forEach(s=>{const{range:n,defaultValue:o}=t[s];e[s]=n.includes(e[s])?e[s]:o}),e}function _h(e){const t=e.lastIndexOf(".");return-1===t?e:e.slice(0,t)}function mh(e){const{androidInfo:t={},androidOPPOChannelID:s=""}=e,n=t.OPPOChannelID||s,o=ph(t,hh),{sound:i="",FCMChannelID:r=""}=o,a=he(o,["sound","FCMChannelID"]);return Object.assign(Object.assign({},a),{Sound:_h(i),OPPOChannelID:n,GoogleChannelID:r})}function vh(t){const{apnsInfo:s={},ignoreIOSBadge:n=!1,disableVoipPush:o}=t,i=ph(s,gh),{ignoreIOSBadge:r,disableVoipPush:a,enableIOSBackgroundNotification:c}=i,u=he(i,["ignoreIOSBadge","disableVoipPush","enableIOSBackgroundNotification"]),l=!0===r||!0===n?1:0;let d;return e(o)||(d=!1===o?1:0),e(a)||(d=!1===a?1:0),Object.assign(Object.assign({},u),{BadgeMode:l,IsVoipPush:d,ContentAvailable:c?1:0})}function fh(e){return Yt.utils.isPlainObject(e)?{PushFlag:!0===e.disablePush?1:0,Title:e.title||"",Desc:e.description||"",Ext:e.extension||"",ApnsInfo:vh(e),AndroidInfo:mh(e)}:dh}function Ih(e){const{From_AccountHeadurl:t,From_AccountNick:s,IsNeedReadReceipt:n,IsPeerRead:o,IsSyncMsg:i,MsgBody:r,MsgClientTime:a,MsgLifeTime:c,MsgRandom:u,MsgSeq:l,MsgTimeStamp:d,SendMsgControl:h,SupportMessageExtension:g,TinyId:p,MsgCheckResult:_,CloudCustomData:m,MsgVersion:v,MsgFlagBits:f,RevokerInfo:I}=e;let E,{From_Account:S,To_Account:C}=e;if(1===i){const e=C;C=S,S=e}if(I){const{Reason:e,Revoker_Account:t,Revoker_FromUin:s}=I;E={reason:e,revoker:t,revokerFromUin:s,userID:t}}return{from:S,avatar:t,nick:s,needReadReceipt:1===n,isSyncMessage:i,clientTime:a,messageLifeTime:c,random:u,sequence:l,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:E,messageVersion:v,messageFlagBits:f,readReceiptSentByPeer:o,elements:Mh(r),onlineOnlyFlag:0===c}}function Eh(e){const{From_Account:t,MsgBody:s,MsgClientTime:n,MsgRandom:o,MsgSeq:i,MsgTimeStamp:r,To_Account:a,MsgVersion:c,CloudCustomData:u,MsgCheckResult:l}=e;return{from:t,clientTime:n,random:o,sequence:i,time:r,to:a,elements:Mh(s),messageVersion:c,cloudCustomData:u,checkResult:l}}function Sh(e){const{ClientSeq:t,From_Account:s,GroupInfo:n,MsgBody:o,MsgClientTime:i,MsgRandom:r,MsgSeq:a,MsgTimeStamp:c,SendMsgControl:u,SupportMessageExtension:l,TinyId:d,CloudCustomData:h,MsgVersion:g,MsgCheckResult:p,NeedReadReceipt:_,IsPlaceMsg:m,RevokerInfo:v,GroupAtInfo:f,OnlineOnlyFlag:I}=e;let E,S=Xd.MSG_PRIORITY_NORMAL;if(Object.keys(eh).includes(String(e.MsgPriority))&&(S=eh[e.MsgPriority]),v){const{Reason:e,Revoker_Account:t,Revoker_FromUin:s}=v;E={reason:e,revoker:t,revokerFromUin:s,userID:t}}const C=function(e){const t=[];Array.isArray(e)&&e.forEach(e=>{e.GroupAtAllFlag===th?t.push(e.GroupAt_Account):e.GroupAtAllFlag===sh&&t.push(Es.MSG_AT_ALL)});return t}(f);return{clientSequence:t,from:s,groupProfile:n,clientTime:i,priority:S,random:r,sequence:a,time:c,messageControlInfo:{excludedFromLastMessage:1===(null==u?void 0:u.NoLastMsg),excludedFromUnreadCount:1===(null==u?void 0:u.NoUnread)},isSupportExtension:l,tinyID:d,cloudCustomData:h,messageVersion:g,checkResult:p,needReadReceipt:_,isPlaceMessage:m,revokerInfo:E,atUserList:C,elements:Mh(o),to:Ch(e),onlineOnlyFlag:1===I}}function Ch(e){const{utils:{isEmpty:t},constants:{IS_TOPIC_MESSAGE:s}}=Yt,{ToGroupId:n,GroupInfo:{MillionGroupFlag:o=0,TopicId:i}={}}=e;return o!==s||t(i)?n:i}function Mh(e){if(!e)return null;if(Array.isArray(e))return e.map(e=>{const t=Yt.message.messageFactory.getElementClass(e.MsgType);return null==t?void 0:t.parseServerPushElement(e)});const t=Yt.message.messageFactory.getElementClass(e.MsgType);return null==t?void 0:t.parseServerPushElement(e)}function yh(e){const{From_Account:t,MsgBody:s,MsgClientTime:n,MsgRandom:o,MsgSeq:i,MsgTimeStamp:r,GroupId:a,TopicId:c,MsgVersion:u,CloudCustomData:l,MsgCheckResult:d}=e;return{from:t,clientTime:n,random:o,sequence:i,time:r,groupID:a,topicID:c,elements:Mh(s),messageVersion:u,cloudCustomData:l,checkResult:d}}function Oh({conversationUpdateFields:e,message:t}){const{conversationID:s,conversationType:n,conversationSubType:o,flow:i,_isExcludedFromUnreadCount:r,_isExcludedFromLastMessage:a}=t,c=a?"":t,u=!r&&i===nh.IN;e.has(s)?(e.get(s).lastMessage=c,u&&e.get(s).unreadCount++):e.set(s,{conversationID:s,type:n,subType:o,unreadCount:u?1:0,lastMessage:c})}function Ah(e){return e.filter(e=>{const t=!Ie(null==e?void 0:e._elements),s=1===(null==e?void 0:e.isPlaceMessage);return t||Yt.ssoLog.error("emptyMessageBody",`from:${e.from} to:${e.to} sequence:${e.sequence}`),t&&!s})}function Th(e){const{messageDataHandler:t}=Yt.message;return!t.isInMessageList(e)&&!t.isMessageSentByCurrentInstance(e)}var Rh=Object.freeze({__proto__:null,autoIncrementIndex:rh,filterValidMessages:Ah,parseServerGroupMessage:Sh,parseServerPushC2CModifyMessage:Eh,parseServerPushGroupModifyMessage:yh,parseServerPushMessage:Ih,parseServerPushMessageElement:Mh,shouldStoreMessage:Th,updateConversationFields:Oh});const{isPlainObject:Dh}=Yt.utils;function bh(e,t={}){const{onlineUserOnly:s,messageControlInfo:n}=t;let{offlinePushInfo:o}=t;e.conversationType===Qd.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&&Dh(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 Nh(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 Lh(e,t){return ge(this,void 0,void 0,function*(){const s=e.conversationType===Qd.CONV_GROUP?function(e,t){var s;const o=bh(e,t),{onlineUserOnly:i,cloudCustomData:r,messageControlInfo:a,offlinePushInfo:c}=o,u=JSON.parse(JSON.stringify(e.transformElementsToServerFormat()));let l;return n(e._receiverList)&&e._receiverList.length>0&&(l=e._receiverList,e._receiverList.length>50&&(l=e._receiverList.slice(0,50),console.warn("ReceiverListLimit"))),{servcmd:"group_open_http_svc.send_group_msg",data:{From_Account:null===(s=Yt.store.get("login"))||void 0===s?void 0:s.userId,GroupId:e.to,MsgBody:u,CloudCustomData:r,Random:e.random,MsgPriority:e.priority,ClientSeq:e.clientSequence,GroupAtInfo:e._groupAtInfoList,OnlineOnlyFlag:i?1:0,MsgClientTime:e.clientTime,OfflinePushInfo:fh(c),SendMsgControl:i?void 0:a,NeedReadReceipt:!0===e.needReadReceipt?1:0,To_Account:l,SupportMessageExtension:!0===e.isSupportExtension?1:0,IsRelayMsg:!0===e._relayFlag?1:0,CustomModerationConfigID:e._cmConfigID,ForbidCallbackControl:Nh(t)}}}(e,t):function(e,t){var s;const n=bh(e,t),{onlineUserOnly:o,cloudCustomData:i,messageControlInfo:r,offlinePushInfo:a}=n,c=!0===o?0:void 0,u=JSON.parse(JSON.stringify(e.transformElementsToServerFormat()));return{servcmd:"openim.sendmsg",data:{From_Account:null===(s=Yt.store.get("login"))||void 0===s?void 0:s.userId,To_Account:e.to,MsgBody:u,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:fh(a),ForbidCallbackControl:Nh(t)}}}(e,t),o=yield dn(s);return o?{time:o.MsgTime,messageDropReason:o.MsgDropReason,sequence:o.MsgSeq}:null})}const{isPlainObject:Ph}=Yt.utils,{MSG_AUDIO:Gh,MSG_FILE:wh,MSG_IMAGE:Uh,MSG_VIDEO:kh,MSG_MERGER:Fh}=Es;class $h{init(){Kd.getInstance().registerApi({apiName:"sendMessage",context:this,matcher:e=>![Gh,wh,Uh,kh,Fh].includes(e[0].type)})}sendMessage(e,t){return ge(this,void 0,void 0,function*(){const{TOTAL_COUNT:s,SEND_COST:n,SUCCESS_COUNT:o,FAILED_COUNT:i}=Ts;if(!(e instanceof ah))throw new Ws({code:Ss.MSG_INSTANCE_REQUIRED});const r=e.validateBeforeSend();if(!r.isValid){const{code:e,message:t=""}=r.error||{};throw new Ws({code:e,message:t})}this._reportMessageSendQuality({name:s,message:e});let a=!1;const{messageDataHandler:c}=Yt.message||{};try{const{messageControlInfo:s}=t||{};let i=null;c.addRandomOfSentMessage(e.random);const r=Date.now();if(e.conversationType===Qd.CONV_C2C?(a=!0===(null==t?void 0:t.onlineUserOnly),i=yield Lh(e,t)):e.conversationType===Qd.CONV_GROUP&&(yield this._validateBeforeSendGroupMessage(e),i=yield Lh(e,t)),i){const{messageDropReason:t,sequence:u,time:l}=i;if(this._updateNickAndAvatarOfSentMessageByMe(e),t&&this._logRateLimitInfo(e,u,t),this._reportMessageSendQuality({name:o,message:e}),this._reportMessageSendQuality({name:n,message:e,startTs:r}),!0===e.isResend){const t=c.findMessage(e.ID);t&&(Yt.ssoLog.debug("sendMessage",`sendMessage resend ok. ID:${t.ID}`),c.deleteConversationMessage(t))}return e.status=is.SUCCESS,e.time=l,e.conversationType===Qd.CONV_GROUP&&(e.sequence=u),a?e._onlineOnlyFlag=!0:(c.storeConversationMessage(e),this._applySentMessageControlInfo(e,s),this._emitOnlineMessageSent(e)),{code:0,data:{message:e}}}}catch(t){e.status=is.FAIL,c.removeRandomOfSentMessage(e.random);let{errorCode:s}=t||{},n=(null==t?void 0:t.errorInfo)||(null==t?void 0:t.message)||"";this._hasRiskContent(s)&&(e.hasRiskContent=!0),a||this._isRejectedByRestApi(s)||c.storeConversationMessage(e),this._reportMessageSendQuality({name:i,message:e,error:t});throw new Ws({code:s,message:n,data:{message:e},moreMessage:`type:${e.type} from:${e.from} to:${e.to}`})}})}_hasRiskContent(e){return 80001===e||80004===e}_isRejectedByRestApi(e){return e>=10100&&e<=10200||e>=120001&&e<=13e4}_emitOnlineMessageSent(e){const t=e._isExcludedFromLastMessage?"":e,{conversationID:s,conversationType:n}=e,o=cn(s)?ts.TOPIC_NEW_MESSAGE:ts.NEW_MESSAGE;Yt.notificationCenter.emitInnerEvent(o,{result:{conversationUpdateFieldList:[{conversationID:s,type:n,message:e,lastMessage:t,unreadCount:0}]}})}_applySentMessageControlInfo(e,t){t&&Ph(t)&&(!0===t.excludedFromLastMessage&&(e._isExcludedFromLastMessage=!0),!0===t.excludedFromUnreadCount&&(e._isExcludedFromUnreadCount=!0))}_logRateLimitInfo(e,t,s){const n=`from:${e.from} to:${e.to} sequence:${t} messageDropReason:${s}`;Yt.ssoLog.warn("messageDropReason",n)}_updateNickAndAvatarOfSentMessageByMe(e){const{messageDataHandler:t}=Yt.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})}}_validateBeforeSendGroupMessage(e){return ge(this,void 0,void 0,function*(){var t,s,n;const{to:o,from:i}=e;let r=o,a=qd.getGroup(r);if(an({groupID:r})&&(null==a?void 0:a.isSupportTopic))throw new Ws({code:Ss.MSG_SEND_GRP_WITH_TOPIC_FAIL});if(cn(o)&&([r]=o.split(ms.TOPIC),a=qd.getGroup(r)),!a&&"function"==typeof(null===(t=Kd.getInstance().getApiMap())||void 0===t?void 0:t.getGroupProfile)){const e=yield Kd.getInstance().getApiMap().getGroupProfile({groupID:r});if((null===(n=null===(s=null==e?void 0:e.data)||void 0===s?void 0:s.group)||void 0===n?void 0:n.type)===Es.GRP_AVCHATROOM){const e=Ks({code:Ss.MSG_SEND_FAIL_NOT_IN_AV,replacement1:i,replacement2:r});throw new Ws({code:Ss.MSG_SEND_FAIL_NOT_IN_AV,message:e})}}return!0})}_reportMessageSendQuality(e){Yt.notificationCenter.emitInnerEvent(ts.QUALITY_STAT,{label:As.MESSAGE_SEND_SUCCESS_RATE,data:e})}}var xh=new class{constructor(){this._sparseMessagesByConversation=new Map,this._latestMessageSentByPeerMap=new Map,this._latestMessageSentByMeMap=new Map,this._randomOfSentMessageList=new Set}init(){Yt.notificationCenter.subscribeInnerEvent(ts.LOGOUT,this._reset,this),Yt.notificationCenter.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}get _messagesByConversation(){return Vd.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=Ee(i);return(null===(s=this._messagesByConversation.get(e))||void 0===s?void 0:s.has(t))?Vd.updateMessage(e,[t],{isModified:!0,version:n,_elements:a,payload:a[0].content,type:a[0].type,cloudCustomData:r,hasRiskContent:c,operation:rs.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 Vd.updateMessage(e,[t],{isRevoked:!0,revoker:n,operation:rs.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:t,sequence:s,random:n}){for(let o=0;o<t.length;o+=1){const i=t[o];if(i.sequence===s&&(e(n)||i.random===n))return i}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.add(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(),Yt.notificationCenter.unSubscribeInnerEvent(ts.LOGOUT,this._reset,this),Yt.notificationCenter.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this)}};function qh(e,t){const s=xd.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:u,elements:l,cloudCustomData:d}=t;o===a&&i===c&&r!==u&&(n.type=l[0].type,n.payload=l[0].content,n.messageForShow=Sn(n.type,n.payload),n.cloudCustomData=d,n.version=u,xd.updateConversation(e,{lastMessage:n}))}}class Vh{init(){Kd.getInstance().registerApi({apiName:"modifyMessage",context:this})}modifyMessage(e){return ge(this,void 0,void 0,function*(){const{to:t,payload:s,sequence:n,conversationType:o,random:i,time:r,from:a,type:c}=e;if(this._canModifyMessageElement(c)){const t=(null==e?void 0:e._elements)||[];t.length>1&&(t[0].type=c,t[0].content=s)}try{let s=null,c=null;if(o===Qd.CONV_C2C?s=yield function(e){return ge(this,void 0,void 0,function*(){const{from:t,to:s,version:n=0,sequence:o,random:i,time:r,type:a,cloudCustomData:c}=e,u={From_Account:t,To_Account:s,MsgVersion:n,MsgSeq:o,MsgRandom:i,MsgTime:r,MsgType:a,MsgBody:e.transformElementsToServerFormat(),CloudCustomData:c},l=yield dn({servcmd:"openim.modify_c2c_msg",data:u});if(l){const{MsgBody:e,MsgVersion:t,CloudCustomData:s}=l;return{elements:Mh(e),messageVersion:t,cloudCustomData:s}}})}(e):o===Qd.CONV_GROUP&&(s=yield function(e){return ge(this,void 0,void 0,function*(){const{to:t,version:s=0,sequence:n,cloudCustomData:o}=e,i={GroupId:t,MsgVersion:s,MsgSeq:n,MsgBody:e.transformElementsToServerFormat(),CloudCustomData:o},r=yield dn({servcmd:"openim.modify_group_msg",data:i});if(r){const{MsgBody:e,MsgVersion:t,CloudCustomData:s}=r;return{elements:Mh(e),messageVersion:t,cloudCustomData:s}}})}(e)),s){let u=`${o}${t}`;return t===_n()&&o===Qd.CONV_C2C&&(u=`${o}${a}`),c={conversationType:o,from:a,to:t,time:r,random:i,sequence:n,elements:null==s?void 0:s.elements,cloudCustomData:null==s?void 0:s.cloudCustomData,messageVersion:null==s?void 0:s.messageVersion,conversationID:u},this._handleModifyMessageSuccess(c),{code:0,data:{message:e},successLog:{message:`to:${t}`}}}}catch(e){const{errorCode:t}=e||{};throw new Ws({functionName:"modifyMessage",code:t})}})}_handleModifyMessageSuccess(e){const{conversationID:t}=e,{isUpdated:s,message:n}=Yt.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&Yt.notificationCenter.emitOuterEvent(Zt.MESSAGE_MODIFIED,{name:Zt.MESSAGE_MODIFIED,data:[n]}),Yt.notificationCenter.emitInnerEvent(ts.MESSAGE_MODIFIED,{conversationID:t,message:n}),qh(t,e)}_canModifyMessageElement(e){return[Zd.MSG_TEXT,Zd.MSG_CUSTOM,Zd.MSG_LOCATION,Zd.MSG_FACE].includes(e)}}class Bh{init(){const{notificationCenter:e}=Yt,{InnerEventSubType:t}=e;on.getInstance().registerWorkflowStep(Ms.RECEIVE_C2C_NEW_MESSAGE,ys.HANDLE_C2C_NEW_MESSAGE,this._handleC2CMessagePush,this),on.getInstance().registerWorkflowStep(Ms.RECEIVE_C2C_NEW_MESSAGE,ys.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterReceiveNewMessage,this),on.getInstance().registerWorkflowStep(Ms.SYNC_SERVER_INFO_AFTER_RE_ONLINE,ys.EMIT_C2C_MESSAGE_EVENT,this._emitMessageEventsAfterSyncUnreadMessage,this),e.subscribeInnerEvent(ts.MESSAGE_PUSH,t.C2C_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),e.subscribeInnerEvent(ts.MESSAGE_PUSH,t.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),e.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(e){on.getInstance().executeWorkflow(Ms.RECEIVE_C2C_NEW_MESSAGE,e)}_handleC2CMessagePush(e){const t=e.data||{},{messageDataHandler:s}=Yt.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._onlineOnlyFlag)s.isMessageSentByCurrentInstance(t)||n.push(t);else if(Th(t)){s.storeConversationMessage(t)&&Oh({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[ys.HANDLE_C2C_NEW_MESSAGE])||{};this._emitMessageEvents(s)}_emitMessageEventsAfterSyncUnreadMessage(e){var t;const{messages:s=[]}=(null===(t=e.result)||void 0===t?void 0:t[ys.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&&Yt.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&&Yt.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:s})}_generateC2CMessage(e){const t=Qd.CONV_C2C,s=Ih(e),n=Yt.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:nh.IN})),{elements:o}=s;return n.setElement(o),n}_updateMessageProfile(s){var n;const{messageDataHandler:o}=Yt.message||{},i=null===(n=Yt.store.get("login"))||void 0===n?void 0:n.userId,{from:r,nick:a,avatar:c,conversationID:u=""}=s;if(r!==i){const n=o.getLatestMsgSentByPeer(u);if(n){const{nick:i,avatar:r}=n;e(a)||e(c)?(s.nick=t(i)?i:s.nick,s.avatar=t(r)?r:s.avatar):a===i&&c===r||(o.updateNickAndAvatarOfSentMessage({conversationID:u,latestNick:a,latestAvatar:c,isSentByMe:!1}),this._updateConversationUserProfile({conversationID:u,nick:a,avatar:c}))}}else{const e=o.getLatestMsgSentByMe(u);!e||a===e.nick&&c===e.avatar||o.updateNickAndAvatarOfSentMessage({conversationID:u,latestNick:a,latestAvatar:c,isSentByMe:!0})}}_updateConversationUserProfile(e){const{conversationID:t,nick:s,avatar:n}=e,o=xd.getConversation(t),{userProfile:i={}}=o||{};i.avatar===n&&i.nick===s||xd.updateConversation(t,{userProfile:Object.assign(Object.assign({},i),{nick:s,avatar:n})})}_updateMessageListDueToModify(e){const{conversationID:t}=e,{isUpdated:s,message:n}=Yt.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&Yt.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[n]}),Yt.notificationCenter.emitInnerEvent("ModifyMessageSuccess",e),qh(t,e)}_handleC2CMessageModify(e){e.C2cMsgModNotifys.forEach(e=>{var t;const s=Qd.CONV_C2C;let n=Eh(e);const{to:o,from:i}=n;let r=`${s}${o}`;o===(null===(t=Yt.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}=Yt,{InnerEventSubType:t}=e;Yt.notificationCenter.unSubscribeInnerEvent(ts.MESSAGE_PUSH,t.C2C_REALTIME_MESSAGE,this._handleC2CMessagePush,this),Yt.notificationCenter.unSubscribeInnerEvent(ts.MESSAGE_PUSH,t.C2C_MESSAGE_MODIFIED,this._handleC2CMessageModify,this),Yt.notificationCenter.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this)}}class jh{init(){const{notificationCenter:e}=Yt,{InnerEventSubType:t}=e;on.getInstance().registerWorkflowStep(Ms.RECEIVE_GROUP_NEW_MESSAGE,ys.HANDLE_GROUP_NEW_MESSAGE,this._handleGroupMessagePush,this),on.getInstance().registerWorkflowStep(Ms.RECEIVE_GROUP_NEW_MESSAGE,ys.EMIT_GROUP_MESSAGE_EVENT,this._emitMessageEvents,this),e.subscribeInnerEvent(ts.MESSAGE_PUSH,t.GROUP_REALTIME_MESSAGE,this._executeReceiverNewMessageWorkFlow,this),e.subscribeInnerEvent(ts.MESSAGE_PUSH,t.GROUP_MESSAGE_MODIFIED,this._handleGroupMessageModify,this),e.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}_executeReceiverNewMessageWorkFlow(e){this._canExecuteReceiverNewMessageWorkFlow(e)&&on.getInstance().executeWorkflow(Ms.RECEIVE_GROUP_NEW_MESSAGE,e)}_handleGroupMessagePush(e){const t=e.data||{},{messageDataHandler:s}=Yt.message,n=[],o=new Map,i=null==t?void 0:t.GroupMsgArray;return null==i||i.forEach(e=>{if(1===e.GroupInfo.NotVisible)return;const t=this._generateGroupMessage(e);this.updateMessageProfile(t);let i=1===t.isModified;if(s.isMessageSentByCurrentInstance(t)?t.isModified=i:i=!1,t._onlineOnlyFlag)s.isMessageSentByCurrentInstance(t)||n.push(t);else if(Th(t)){s.storeConversationMessage(t)&&(n.push(t),Oh({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[ys.HANDLE_GROUP_NEW_MESSAGE])||{},n=(null==s?void 0:s.filter(e=>!0===(null==e?void 0:e.isModified)))||[];n.length>0&&Yt.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&&Yt.notificationCenter.emitOuterEvent("onMessageReceived",{name:"onMessageReceived",data:o})}_generateGroupMessage(e){const t=Qd.CONV_GROUP,s=Sh(e),n=Yt.message.messageFactory.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:nh.IN})),{elements:o}=s;return n.setElement(o),n}updateMessageProfile(e){var t;const{messageDataHandler:s}=Yt.message||{},n=null===(t=Yt.store.get("login"))||void 0===t?void 0:t.userId,{from:o,nick:i,avatar:r,conversationID:a="",_elements:c}=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})}else if(o===Es.CONV_SYSTEM){const{operationType:t,memberInfoList:s,operatorInfo:n}=c;let o={};if(Ie(s)?Ie(n)||(o=n):[vs.JOINED,vs.KICKED,vs.ADMIN_SET,vs.ADMIN_CANCELED].includes(t)&&(o=Object.assign({},s[0])),!Ie(o)){const{nick:t="",avatar:s=""}=o;e.nick=t,e.avatar=s}}}_updateMessageListDueToModify(e){const{conversationID:t}=e,{isUpdated:s,message:n}=Yt.message.messageDataHandler.modifyConversationMessage(t,e);!0===s&&Yt.notificationCenter.emitOuterEvent("onMessageModified",{name:"onMessageModified",data:[n]}),qh(t,e)}_handleGroupMessageModify(e){e.GroupMsgModNotifys.forEach(e=>{const t=Qd.CONV_GROUP;let s=yh(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}=Yt,{InnerEventSubType:{GROUP_REALTIME_MESSAGE:t,GROUP_MESSAGE_MODIFIED:s}}=e;e.unSubscribeInnerEvent(ts.MESSAGE_PUSH,t,this._handleGroupMessagePush,this),e.unSubscribeInnerEvent(ts.MESSAGE_PUSH,s,this._handleGroupMessageModify,this),e.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this)}_canExecuteReceiverNewMessageWorkFlow(e){var t,s;const{GroupId:n,GroupType:o}=(null===(s=null===(t=null==e?void 0:e.GroupMsgArray)||void 0===t?void 0:t[0])||void 0===s?void 0:s.GroupInfo)||{},i=o===_s.GRP_AVCHATROOM;return!(!qd.getGroup(n)&&i)}}var Hh=new class{constructor(){this.c2cMessageReceiver=new Bh,this.groupMessageReceiver=new jh}init(){this.c2cMessageReceiver.init(),this.groupMessageReceiver.init()}};const Kh={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 must be a string";return!0}(e)}}};const Wh={createCustomMessage:!0,sendMessage:!0,modifyMessage:!0};var Yh=new class{constructor(){this._historyMessageListFetchAnchors=new Map,this.completedHistoryConversations=new Set}getGroupRoamingMessagesByAnchor(e){return ge(this,void 0,void 0,function*(){try{const{conversationID:t,count:s,direction:o,sequence:i,messageSequenceList:r,shouldMarkCompleted:a=!1,getType:c}=e,u=t.replace(hs.CONV_GROUP,""),l=[];let d=i;if(o===as.BACKWARD){if("number"!=typeof i)return{messageList:[],hasNoMoreHistoryMessage:!1,nextReqMessageIDFromServer:""};d=i+s-1}const h=yield function(e){return ge(this,void 0,void 0,function*(){const{groupID:t,count:s,messageSequence:o,messageSequenceList:i,getType:r}=e,a={GroupId:t,ReqMsgNumber:s,WithRecalledMsg:1,Version:1,GetType:r};return o&&(a.ReqMsgSeq=o),n(i)&&i.length>0&&(a.ReqMsgSeqList=i),yield dn({servcmd:"group_open_http_svc.group_msg_get",data:a})})}({groupID:u,count:s,messageSequence:d,messageSequenceList:r,getType:c});if(h){const{RspMsgList:e=[],NextReqMsgSeq:s=0,IsFinished:n,InvisibleMsgSeq:r}=h,c=`groupID:${u} sequence:${i} reqSeq:${d} direction:${o} complete:${n} nextSequence:${s} remoteMsgCount:${e.length} invisibleSequenceList:${r}`,g=[];for(let t=0;t<e.length;t++){const s=e[t];s.From_Account===Es.CONV_SYSTEM&&l.push(s);const n=this._parseMessage(s);g.push(n)}g.reverse();let p=n===oh;o===as.BACKWARD&&(p=g[g.length-1].sequence>=i),p&&a&&this.completedHistoryConversations.add(t);const _=Ah(g);return Yt.ssoLog.info("getGroupRoamingMessagesByAnchor",c),{messageList:_,invisibleSequenceList:r,nextReqMessageIDFromServer:s,hasNoMoreHistoryMessage:p,serverGroupTipList:l}}}catch(e){const{errorCode:t,errorInfo:s}=e||{};throw new Ws({code:t,message:s})}})}clearHistoryMessageListFetchAnchors(e){this._historyMessageListFetchAnchors.delete(e)}isHistoryMessageFetchCompleted(e){return this.completedHistoryConversations.has(e)}_parseMessage(e){var t;const s=hs.CONV_GROUP;4===e.Event&&(e.MsgBody.MsgType=Es.MSG_GRP_TIP);const n=Sh(e),o=lh.createMessage(Object.assign(Object.assign({},n),{conversationType:s,flow:"in"}));return kd((null===(t=n.elements)||void 0===t?void 0:t.content)||{},o),o.setElement(n.elements),o}getC2CRoamingMessagesByAnchor(e){return ge(this,void 0,void 0,function*(){var t;try{const{conversationID:s,count:n,messageID:o,time:i,direction:r,shouldMarkCompleted:a=!1}=e;let c=i,u="";if(!i){const e=o?Yt.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,u=e.messageKey}}const l=s.replace(hs.CONV_C2C,""),d=yield function(e){return ge(this,void 0,void 0,function*(){const{peerAccount:t,count:s,lastMessageTime:n,messageKey:o,direction:i}=e;return dn({servcmd:"openim.getroammsg",data:{Peer_Account:t,MaxCnt:s,WithRecalledMsg:1,LastMsgTime:n,MsgKey:o,GetDirection:i}})})}({count:n,lastMessageTime:c,messageKey:u,peerAccount:l,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._parseC2CMessage(s);r.push(n)}const c=Ah(r),u=null===(t=c[0])||void 0===t?void 0:t.ID,l=1===n;return l&&a&&this.completedHistoryConversations.add(s),{messageList:c,nextReqMessageIDFromServer:u,lastMessageTime:i,hasNoMoreHistoryMessage:l}}}catch(e){throw Yt.ssoLog.debug("getC2CRoamingMessagesByAnchor",Se(e)),e}})}_parseC2CMessage(e){const t=hs.CONV_C2C,s=Ih(e),n=lh.createMessage(Object.assign(Object.assign({},s),{conversationType:t,flow:"in"}));return n.setElement(s.elements),n}reset(){this._historyMessageListFetchAnchors.clear(),this.completedHistoryConversations.clear()}};class zh{constructor(){this.messageHelper=Rh,this.messageFactory=lh,this.messageSender=new $h,this.messageAction=new Vh,this.messageReceiver=Hh,this.messageDataHandler=xh,this.messageHistory=Yh,this.messageSender.init(),this.messageFactory.init(),this.messageAction.init(),this.messageReceiver.init(),this.messageDataHandler.init(),sn({auth:Wh,params:Kh}),Yt.notificationCenter.subscribeInnerEvent(ts.LOGOUT,this._reset,this),Yt.notificationCenter.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}_reset(){this.messageHistory.reset()}_dispose(){this._reset(),Yt.notificationCenter.unSubscribeInnerEvent(ts.LOGOUT,this._reset,this),Yt.notificationCenter.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this)}}const Jh="Tag_Profile_IM_",Qh={NICK:`${Jh}Nick`,GENDER:`${Jh}Gender`,BIRTHDAY:`${Jh}BirthDay`,LOCATION:`${Jh}Location`,SELFSIGNATURE:`${Jh}SelfSignature`,ALLOWTYPE:`${Jh}AllowType`,LANGUAGE:`${Jh}Language`,AVATAR:`${Jh}Image`,MESSAGESETTINGS:`${Jh}MsgSettings`,ADMINFORBIDTYPE:`${Jh}AdminForbidType`,LEVEL:`${Jh}Level`,ROLE:`${Jh}Role`},Xh="Tag_Profile_Custom",Zh="profileCustomField",eg="USER_STATUS",tg=1,sg=1e3,ng={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:[]},og=new Map([[Qh.NICK,"nick"],[Qh.GENDER,"gender"],[Qh.BIRTHDAY,"birthday"],[Qh.LOCATION,"location"],[Qh.SELFSIGNATURE,"selfSignature"],[Qh.ALLOWTYPE,"allowType"],[Qh.LANGUAGE,"language"],[Qh.AVATAR,"avatar"],[Qh.MESSAGESETTINGS,"messageSettings"],[Qh.ADMINFORBIDTYPE,"adminForbidType"],[Qh.LEVEL,"level"],[Qh.ROLE,"role"]]);var ig=new class{createProfile(e,t){const s={userID:e,profileCustomField:[]};return t.forEach(e=>{const{tag:t,value:n}=e;t&&t.indexOf(Xh)>-1?s.profileCustomField.push({key:t,value:n}):og.has(t)&&(s[og.get(t)]=n)}),Object.assign(Object.assign({},ng),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=>{s!==Zh&&t.push({tag:Qh[s.toUpperCase()],value:e[s]})}),e.profileCustomField&&n(e.profileCustomField)&&e.profileCustomField.forEach(e=>{t.push({tag:e.key,value:e.value})}),t}normalizeProfileFields(e){const t={},s=[];return e.forEach(e=>{const{tag:n,value:o}=e;if(n&&n.indexOf(Xh)>-1&&s.push({key:n,value:o}),og.has(n)&&void 0!==o){const e=og.get(n);t[e]=o}}),s.length>0&&(t.profileCustomField=s),t}};const{generateProtocolData:rg}=Yt.common;function ag(e){return ge(this,void 0,void 0,function*(){const t="profile.portrait_get_all",s={From_Account:_n(),UserItem:[]};e.forEach(e=>{s.UserItem.push({CustomSequence:0,StandardSequence:0,To_Account:e})});const n=rg({servcmd:t,data:s}),o=`${n.head.seq}${t}`,i=yield Yt.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=ig.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 cg(e){return Bd.getFriendMap().has(e)}const{isEmpty:ug}=Yt.utils;class lg{constructor(){this._strangerProfileMap=new Map}init(){Kd.getInstance().registerApi({apiName:"getMyProfile",context:this}),Kd.getInstance().registerApi({apiName:"getUserProfile",context:this}),Kd.getInstance().registerApi({apiName:"updateMyProfile",context:this}),this.createProfile=ig.createProfile.bind(ig);const{notificationCenter:e}=Yt;on.getInstance().registerWorkflowStep(Ms.SYNC_SERVER_INFO_AFTER_LOGIN,ys.USER_PROFILE_SYNC,this.getMyProfileCacheThenServer,this),e.subscribeInnerEvent(ts.MESSAGE_PUSH,e.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),e.subscribeInnerEvent(ts.LOGOUT,this._reset,this),e.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}getMyProfile(){return ge(this,void 0,void 0,function*(){try{const e=_n(),t=yield ag([e]);if(t){const s=this._handleProfileFormResponse(t)[0];return Bd.getUserProfileMap().set(e,s),{code:0,data:s}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new Ws({functionName:"getMyProfile",code:t,message:s})}})}getUserProfile(e){return ge(this,void 0,void 0,function*(){try{let{userIDList:t}=e;const{userIdListToRequest:s,profileFromCache:o}=this._filterRequestAndCacheUsers(t);if(0===s.length)return{code:0,data:o,successLog:{message:`userIDList.length:${t.length}`}};s.length>sg&&(Yt.ssoLog.warn("getUserProfile","userIdListToRequest.length > 1000"),s.length=sg);const{data:i,error:r}=yield this._batchFetchUserProfiles(s),a=s.length,c=i.length,u=a-c;if(0===o.length&&a===u&&!ug(r))throw r;if(n(i)){i.forEach(e=>{cg(e.userID)?Bd.getUserProfileMap().set(e.userID,e):this._strangerProfileMap.set(e.userID,e)});const e=i.concat(o);return{code:0,data:e,successLog:{message:`getUserProfile query:${a} success:${c} fail:${u} from cache:${o.length}`}}}}catch(e){const{errorCode:t}=e;throw new Ws({functionName:"getUserProfile",code:t})}})}getMyProfileCacheThenServer(){return ge(this,void 0,void 0,function*(){const e=_n(),t=Bd.getUserProfileMap().has(e);return t?{code:0,data:t}:this.getMyProfile()})}updateMyProfile(e){return ge(this,void 0,void 0,function*(){const t=_n(),s={};for(const t in e)void 0!==e[t]&&(s[t]=e[t]);const n=ig.convertParamsToProfile(s);try{const e={From_Account:t,ProfileItem:n};yield function(e){return ge(this,void 0,void 0,function*(){const t="profile.portrait_set",s=rg({servcmd:t,data:e}),n=`${s.head.seq}${t}`,o=yield Yt.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 o=Bd.getUserProfile(t);let i;i=o?Object.assign(Object.assign({},o),s):ig.createProfile(t,n);const r=!Jt(o,i,["lastUpdatedTime"]);return i.lastUpdatedTime=Date.now(),Bd.getUserProfileMap().set(t,i),r&&this._emitProfileUpdated(i),{code:0,data:i,successLog:{message:`profileArray: ${Yt.utils.safeStringify(n)}`}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new Ws({functionName:"updateMyProfile",code:t,message:s})}})}updateMyNickAndAvatar(e){return ge(this,void 0,void 0,function*(){const t=_n(),s=Date.now(),n=Bd.getUserProfile(t);let o={};o=n?Object.assign(n,e):ig.createProfile(t,e),o.lastUpdatedTime=s,Bd.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:ig.parseProfileList(n)}}(e.ProfileDataMod[0]);if(ug(t))return;const{isProfileUpdated:s,profile:n}=this._handleProfileModified(t);s&&this._emitProfileUpdated(n)}_emitProfileUpdated(e){Yt.notificationCenter.emitInnerEvent(ts.PROFILE_UPDATE,{name:ts.PROFILE_UPDATE,data:[e]}),Yt.notificationCenter.emitOuterEvent(Zt.PROFILE_UPDATED,{name:Zt.PROFILE_UPDATED,data:[e]}),xd.updateConversation(`C2C${null==e?void 0:e.userID}`,{userProfile:e})}_dispose(){const{notificationCenter:e}=Yt;e.unSubscribeInnerEvent(ts.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(ts.MESSAGE_PUSH,e.InnerEventSubType.PROFILE_MODIFIED,this._onProfileDataModify,this),e.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this),this._reset()}_handleProfileModified(e){const{userId:t,profileList:s}=e,n=Bd.getUserProfile(t);if(!(_n()===t||cg(t)&&n))return{isProfileUpdated:!1,profile:null};const o=ig.normalizeProfileFields(s),i=Object.keys(o).some(e=>e===Zh?!Jt(n.profileCustomField,o.profileCustomField):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 Bd.getUserProfileMap().set(t,a),{isProfileUpdated:i,profile:a}}_filterRequestAndCacheUsers(e){const t=[],s=[];return e.forEach(e=>{const n=Bd.getUserProfileMap().has(e);cg(e)&&n?s.push(Bd.getUserProfile(e)):this._isStrangerAndProfileValid(e)?s.push(this._strangerProfileMap.get(e)):t.push(e)}),{userIdListToRequest:t,profileFromCache:s}}_handleProfileFormResponse(e){const{userProfile:t}=e;if(!Array.isArray(t))return[];const s=t.filter(e=>"@TLS#NOT_FOUND"!==e.userId&&""!==e.userId&&!ug(e.profileItem)),n=Date.now();return s.map(e=>{const t=ig.createProfile(e.userId,e.profileItem);return t.lastUpdatedTime=n,t})}_isStrangerAndProfileValid(e){var t;if(!cg(e)){const{lastUpdatedTime:s=0}=this._strangerProfileMap.get(e)||{},n=(null===(t=Yt.store.get("cloudConfig"))||void 0===t?void 0:t.stranger_profile_expiration_time)||6e5;return Date.now()-s<=n}return!1}_chunkUserIDList(e,t){return Array.from({length:Math.ceil(e.length/t)},(s,n)=>e.slice(n*t,(n+1)*t))}_batchFetchUserProfiles(e){return ge(this,void 0,void 0,function*(){const t=[],s=[];let o={};this._chunkUserIDList(e,100).forEach(e=>{t.push(ag(e))});return(yield Promise.allSettled(t)).forEach(e=>{if("fulfilled"===e.status){const t=e.value,o=this._handleProfileFormResponse(t);n(o)&&s.push(...o)}else if("rejected"===e.status){const{code:t,message:s}=e.reason||{};o={errorCode:t,message:s}}}),{data:s,error:o}})}_reset(){Bd.getUserProfileMap().clear(),this._strangerProfileMap.clear()}}const dg=new Map,hg=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];for(let e=0,t=hg.length;e<t;e++)dg.set(e,hg[e]);function gg(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:pg}=Yt.utils,{generateProtocolData:_g}=Yt.common;function mg(e){return ge(this,void 0,void 0,function*(){const t="im_open_status.ws_get_user_status",s=_g({servcmd:t,data:{To_Account:e}}),n=`${s.head.seq}${t}`,o=yield Yt.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:gg(n)}}),r=n.map(e=>{const{To_Account:t,Invalid_Account:s,ErrorCode:n,ErrorInfo:o}=e;return{userID:pg(s)?t:s,code:n,message:o}});return{errorCode:t,errorInfo:s,successUserList:i,failureUserList:r}}(o)})}class vg{constructor(){this._customStatus=""}init(){const{notificationCenter:e}=Yt;Kd.getInstance().registerApi({apiName:"getUserStatus",context:this}),Kd.getInstance().registerApi({apiName:"setSelfStatus",context:this}),Kd.getInstance().registerApi({apiName:"subscribeUserStatus",context:this}),Kd.getInstance().registerApi({apiName:"unsubscribeUserStatus",context:this}),on.getInstance().registerWorkflowStep(Ms.SYNC_SERVER_INFO_AFTER_RE_ONLINE,ys.USER_STATUS_UPDATE,this._onReOnline,this),e.subscribeInnerEvent(ts.MESSAGE_PUSH,e.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),e.subscribeInnerEvent(ts.LOGOUT,this._reset,this),e.subscribeInnerEvent(ts.DESTROY,this._dispose,this)}setSelfStatus(e){return ge(this,void 0,void 0,function*(){const t=_n(),{customStatus:s}=e;try{return yield function(e){return ge(this,void 0,void 0,function*(){const t="im_open_status.ws_set_custom_status",s=_g({servcmd:t,data:{CustomStatus:e}}),n=`${s.head.seq}${t}`,o=yield Yt.channel.sendPacket(s,{requestId:n});if(o){const{ErrorCode:e,ErrorInfo:t}=o;return{errorCode:e,errorInfo:t}}})}(s),this._customStatus=s,{code:0,data:{userID:t,statusType:tg,customStatus:s},successLog:{message:`customStatus: ${s}`}}}catch(e){const{errorCode:t,errorInfo:s}=e;throw new Ws({functionName:"setSelfStatus",code:t,message:s})}})}getUserStatus(e){return ge(this,void 0,void 0,function*(){const{userIDList:t=[]}=e;if(this._isOnlyMeInArray(t))return this._getMyStatus();const s=yield this._getUserStatus(t);return Object.assign(Object.assign({},s),{successLog:{message:`userIDList length: ${t.length}`}})})}setCustomStatus(e){const t=gg(e);this._customStatus=t}subscribeUserStatus(e){return ge(this,void 0,void 0,function*(){try{const{userIDList:t=[]}=e;this._checkBusinessCapabilityBits("subscribeUserStatus");const s=this._getMaxUserCount("subscribe"),n=this._sliceUserIDList(t,s),o=yield function(e){return ge(this,void 0,void 0,function*(){const{channel:t}=Yt,s="im_open_status.ws_status_subscribe",n=_g({servcmd:s,data:{To_Account:e}}),o=`${n.head.seq}${s}`;return yield t.sendPacket(n,{requestId:o})})}(n),i=this._parseResponse(o);return{code:0,data:{failureUserList:i},successLog:{message:`userID length:${t.length} failCount: ${i.length}`}}}catch(e){const{errorCode:t}=e;throw new Ws({functionName:"subscribeUserStatus",code:t})}})}unsubscribeUserStatus(e){return ge(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("unsubscribeUserStatus");const{userIDList:t=[]}=e,s=this._getMaxUserCount("unsubscribe"),n=this._sliceUserIDList(t,s),o=yield function(e){return ge(this,void 0,void 0,function*(){const{channel:t}=Yt,s="im_open_status.ws_status_unsubscribe";let n={};n=0===e.length?{UnsubscribeAll:1}:{To_Account:e};const o=_g({servcmd:s,data:n}),i=`${o.head.seq}${s}`;return yield t.sendPacket(o,{requestId:i})})}(n),i=this._parseResponse(o);return{code:0,data:{failureUserList:i},successLog:{message:`userID length:${t.length} failCount: ${i.length}`}}}catch(e){const{errorCode:t}=e;throw new Ws({functionName:"unsubscribeUserStatus",code:t})}})}_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:gg(n)}});this._emitUserStatusUpdatedEvent(s)}_onReOnline(e){const t=gg(e.data.customStatus);if(this._customStatus===t)return;this._customStatus=t;const s={userID:_n(),statusType:tg,customStatus:t};this._emitUserStatusUpdatedEvent(s)}_emitUserStatusUpdatedEvent(e){Yt.notificationCenter.emitOuterEvent(Zt.USER_STATUS_UPDATED,{name:Zt.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:Yt.utils.isEmpty(s)?t:s,code:n,message:o}})}_checkBusinessCapabilityBits(e){if(!Yt.store.get("commercialConfig").get(eg))throw new Ws({functionName:e,code:Ss.NO_USE,replacement1:e})}_getMaxUserCount(e){const t=Yt.store.get("cloudConfig")||{},s={query:{key:"status_query_count",default:500},subscribe:{key:"status_sub_count",default:100},unsubscribe:{key:"status_unsub_count",default:100}},{key:n,default:o}=s[e],i=t[n]||o;return parseInt(i,10)}_getMyStatus(){return{code:0,data:{successUserList:[{userID:_n(),statusType:tg,customStatus:this._customStatus}],failureUserList:[]}}}_getUserStatus(e){return ge(this,void 0,void 0,function*(){try{this._checkBusinessCapabilityBits("getUserStatus");const t=this._getMaxUserCount("query"),s=this._sliceUserIDList(e,t),n=yield mg(s),{successUserList:o,failureUserList:i}=n||{};return{code:0,data:{successUserList:o,failureUserList:i}}}catch(e){const{errorCode:t}=e;throw new Ws({functionName:"getUserStatus",code:t})}})}_isOnlyMeInArray(e){const t=_n();return 1===e.length&&e.indexOf(t)>-1}_dispose(){const{notificationCenter:e}=Yt;e.unSubscribeInnerEvent(ts.MESSAGE_PUSH,e.InnerEventSubType.USER_STATUS_UPDATE,this._onUserStatusUpdate,this),e.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this),e.unSubscribeInnerEvent(ts.LOGOUT,this._reset,this),this._reset()}_reset(){this._customStatus=""}}const fg={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,customValidator:function(e){for(const t of e){if("object"!=typeof t)return"Each item in profileCustomField must be an object";if("string"!=typeof(null==t?void 0:t.key))return"Each item.key in profileCustomField must be a string";if(!(null==t?void 0:t.key.startsWith(Xh)))return'Each item.key in profileCustomField must start with "Tag_Profile_Custom"'}return!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}}},Ig={getMyProfile:!0,getUserProfile:!0,updateMyProfile:!0,setSelfStatus:!0,getUserStatus:!0,subscribeUserStatus:!0,unsubscribeUserStatus:!0};class Eg{constructor(){this.userProfile=new lg,this.userStatus=new vg,this.userProfile.init(),this.userStatus.init(),sn({auth:Ig,params:fg})}}function Sg(e){const 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}var Cg,Mg,yg;!function(e){e.NOT_START="notStart",e.PENDING="pending",e.RESOLVED="resolved",e.REJECTED="rejected"}(Cg||(Cg={})),function(e){e[e.C2C=1]="C2C",e[e.GROUP=2]="GROUP"}(Mg||(Mg={})),function(e){e[e.C2C=8]="C2C",e[e.GROUP=2]="GROUP"}(yg||(yg={}));class Og{constructor(){this._name="SyncConversationHandler",this._pagingStatus=Cg.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}init(){const{notificationCenter:e}=Yt;on.getInstance().registerWorkflowStep(Ms.SYNC_SERVER_INFO_AFTER_RE_ONLINE,ys.CONVERSATION_RECOVER,this._syncConversationList,this),on.getInstance().registerWorkflowStep(Ms.SYNC_SERVER_INFO_AFTER_LOGIN,ys.CONVERSATION_LIST_SYNC,this._syncConversationListAfterLogin,this),e.subscribeInnerEvent(ts.LOGOUT,this._reset,this),e.subscribeInnerEvent(ts.DESTROY,this._dispose,this),Yt.ssoLog.debug(`${this._name}.init`)}isSyncCompleted(){return this._pagingStatus===Cg.RESOLVED}_syncConversationListAfterLogin(){return ge(this,void 0,void 0,function*(){return this._pagingStatus=Cg.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0,this._syncConversationList()})}_syncConversationList(){return ge(this,void 0,void 0,function*(){const{ssoLog:e,utils:{safeStringify:t}}=Yt;e.debug("_syncConversationList","start");try{const t=yield this._pagingGetConversationList(!0);this._pagingStatus=Cg.RESOLVED;const{conversationList:s=[]}=t||{};return e.info("_syncConversationList",`success count:${s.length}`),t}catch(s){const{errorCode:n,errorInfo:o}=s,i=new Ws({code:n,message:o});e.error("_syncConversationList",`fail ${t(s)}`,{error:i})}})}_pagingGetConversationList(e){return ge(this,void 0,void 0,function*(){try{const t=[];this._pagingStatus=Cg.PENDING;const s=yield function(e){return ge(this,void 0,void 0,function*(){const{fromAccount:t,pagingTimeStamp:s,pagingStartIndex:n,pagingPinnedTimeStamp:o,pagingPinnedStartIndex:i}=e;return dn({servcmd:"recentcontact.page_get",data:{AssistFlags:31,MsgAssistFlags:15,OrderType:1,From_Account:t,StartIndex:n,TimeStamp:s,TopStartIndex:i,TopTimeStamp:o}})})}({fromAccount:_n(),pagingTimeStamp:e?this._pagingTimeStamp:0,pagingStartIndex:e?this._pagingStartIndex:0,pagingPinnedTimeStamp:e?this._pagingPinnedTimeStamp:0,pagingPinnedStartIndex:e?this._pagingPinnedStartIndex:0}),{CompleteFlag:n,SessionItem:o=[],TimeStamp:i,StartIndex:r,TopTimeStamp:a,TopStartIndex:c}=s||{};let u=[];if(1===n&&(this._pagingStatus=Cg.RESOLVED),o.length>0&&(u=this._getConversationOptions(o),t.push(...u)),Yt.notificationCenter.emitInnerEvent(ts.SYNC_CONVERSATION_LIST,{conversationUpdateFieldList:u}),this._pagingTimeStamp=i,this._pagingStartIndex=r,this._pagingPinnedTimeStamp=a,this._pagingPinnedStartIndex=c,1!==n){const{conversationList:s}=yield this._pagingGetConversationList(e);t.push(...s)}return{conversationList:t}}catch(e){throw e}})}_getConversationOptions(e){const{utils:{isUndefined:t}}=Yt,s=this._convertConversationKey(e);return this._filterValidConversations(s).map(e=>(t(e.lastMsg)&&(e.lastMsg={elements:[]}),e.type===Mg.C2C?this._assembleC2COption(e):this._assembleGroupOption(e)))}_filterValidConversations(e){return e.filter(({type:e,userID:t})=>e===Mg.C2C&&!function(e){let t;return e.startsWith(Es.CONV_C2C)&&(t=e.replace(Es.CONV_C2C,"")),"@TLS#ERROR"===t||"@TLS#NOT_FOUND"===t}(t)||2===e)}_assembleC2COption(e){var t,s,n,o,i,r;const a=this._createUserprofile(e);return{conversationID:`${Es.CONV_C2C}${e.userID}`,type:Es.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===yg.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:a,peerReadTime:e.peerReadTime,isPinned:1===e.isPinned,customData:e.customMark||"",markList:Sg(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=Yt.user.userProfile)||void 0===t?void 0:t.createProfile(s,i)}_computeIsPeerRead(e){const t=_n(),{lastC2CMsgFromAccount:s,time:n,c2cPeerReadTime:o}=e;return s===t&&n<=o}_assembleGroupOption(e){var t,s,n;return{conversationID:`${Es.CONV_GROUP}${e.groupID}`,type:Es.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===yg.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:Sg(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.C2cPeerReadTime,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;const{utils:{isEmpty:o}}=Yt;if(o(e))return null;let i="",r=null;if(!o(e.GroupTips)){const{From_Account:s,GroupName:n}=(null===(t=e.GroupTips)||void 0===t?void 0:t.GroupInfo)||{};i=Es.MSG_GRP_TIP,r=Object.assign(Object.assign({},this._parseContent(i,e.GroupTips.MsgBody)),{groupProfile:{from:s,groupName:n}})}return e.MsgBody&&(i=null===(s=e.MsgBody[0])||void 0===s?void 0:s.MsgType,r=this._parseContent(i,e.MsgBody[0])),{event:e.Event,elements:[{type:i,content:r,cloudCustomData:e.CloudCustomData}],revokerInfo:{revoker:null===(n=e.RevokerInfo)||void 0===n?void 0:n.Revoker_Account}}}_parseContent(e,t){var s;if(!t)return t;const n=Yt.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 he(e,["LayersOverLimit"]).layersOverLimit=1===t,e}_transMsgRemindType(e){let t="";return 0===e?t=Es.MSG_REMIND_ACPT_AND_NOTE:1===e?t=Es.MSG_REMIND_DISCARD:2===e?t=Es.MSG_REMIND_ACPT_NOT_NOTE:3===e&&(t=Es.NOT_RECEIVE_OFFLINE_PUSH_EXCEPT_AT),t}_patchTypeAndPayload(e){var t;const{utils:{isUndefined:s}}=Yt,{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:Es.MSG_GRP_TIP,payload:(null===(t=null==o?void 0:o[0])||void 0===t?void 0:t.content)||{}}}_computeGroupUnreadCount(e){const{unreadCount:t=0,noUnreadCount:s=0}=e,n=t-s;return n>0?n:0}_reset(){this._pagingStatus=Cg.NOT_START,this._pagingTimeStamp=0,this._pagingStartIndex=0,this._pagingPinnedTimeStamp=0,this._pagingPinnedStartIndex=0}_dispose(){this._reset();const{notificationCenter:e}=Yt;e.unSubscribeInnerEvent(ts.LOGOUT,this._reset,this),e.unSubscribeInnerEvent(ts.DESTROY,this._dispose,this)}}class Ag{constructor(){this.syncConversationHandler=new Og,this.syncConversationHandler.init()}}console.log(`TencentCloudLiteChat.VERSION:${Qe}`);var Tg={create:function(e){var t,s;const{SDKAppID:n,testEnv:o=!1,devMode:i=!1,unlimitedAVChatRoom:r=!1,scene:a="",oversea:c=!1,instance:u,disableIndependentDomain:l=!1}=e;let d=n;if(!function(e){if("number"==typeof e)return!0;const t=Number(e);return!Number.isNaN(t)}(d))return console.error("Create SDK instance failed. Failed to parse the SDKAppID, please check the arguments"),null;if(d=Number(d),rn.has(d))return rn.get(d);let h=null;if(u)h=u,h._workflowManager&&on.setInstance(h._workflowManager),h._pluginManager&&h._pluginManager.installBuiltInPlugin(Ud),u.isReady()&&(null===(s=(t=on.getInstance()).executeWorkflow)||void 0===s||s.call(t,Ms.SYNC_SERVER_INFO_AFTER_LOGIN));else{const e=function(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return`${e()+e()}${e()}${e()}${e()}${e()}${e()}${e()}`}();Yt.init({sdkAppId:d,instanceId:e,testEnv:o,devMode:i,unlimitedAVChatRoom:r,disableIndependentDomain:l,scene:a,oversea:c,sdkEdition:wd,version:Qe}),on.getInstance().init(),Yt.message=new zh,Yt.user=new Eg,Yt.login=new Jd,Yt.conversation=new Ag,$d.getInstance().installBuiltInPlugin(Ud),h=Kd.getInstance().exposeApiForClient(),h._workflowManager=on.getInstance(),h._pluginManager=$d.getInstance();const{utils:{IS_WORKER_AVAILABLE:t,USER_AGENT:s,getPlatformType:u,isIOSWebView:g}}=Yt,p=`instanceID:${e} SDKAppID:${n} platform:${u()} isIOSWebView:${g} workerAvailable:${t} UserAgent:${s}`;Yt.ssoLog.info("sdkConstruct",p)}return rn.set(d,h),h},TSignaling:ss,EVENT:Zt,VERSION:Qe,TYPES:Es};export{Tg as default};