/*! For license information please see nim.js.LICENSE.txt */ var e={d:(t,i)=>{for(var r in i)e.o(i,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:i[r]})}};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e.g?e.g:"undefined"!=typeof self?self:{};function i(e){var t={exports:{}};return e(t,t.exports),t.exports}var r,s,n,o,a,c,d,l,h,p,u,m,g,v,f,_,I,y,E,M,T,S,N,C,A,O,R,b,k,L,V,P,D,w,U,x,F,B,j,G,$,H,Y,q,K,W,J,z,X,Q,Z,ee,te,ie,re,se,ne=i(function(e){var t=Object.prototype.hasOwnProperty,i="~";function r(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function n(e,t,r,n,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new s(r,n||e,o),c=i?i+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],a]:e._events[c].push(a):(e._events[c]=a,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(i?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s=0;--s){var n=this.tryEntries[s],o=n.completion;if("root"===n.tryLoc)return i("end");if(n.tryLoc<=this.prev){var a=r.call(n,"catchLoc"),c=r.call(n,"finallyLoc");if(a&&c){if(this.prev=0;--i){var s=this.tryEntries[i];if(s.tryLoc<=this.prev&&r.call(s,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),T(i),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var r=i.completion;if("throw"===r.type){var s=r.arg;T(i)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:N(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=void 0),h}},t}function t(e){return t="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},t(e)}function i(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:{};if(i.priority||(i.priority=this.getEventPriority(e,t)),this.reportConfig.isDataReportEnable&&e){if("login"===e&&!1===t.succeed&&t.process_id){var s=t.extension&&t.extension.find(function(e){return"TCP"===e.operation_type}),n=s&&s.target||"",o=t.process_id+n,a=this.lastFailLogin[o]||0;if(t.start_time-athis.reportConfig.msgListMaxSize&&this.highPriorityMsgList.shift(),this.msgList.length>this.reportConfig.msgListMaxSize&&this.msgList.shift(),this.lowPriorityMsgList.length>this.reportConfig.msgListMaxSize&&this.lowPriorityMsgList.shift(),this.doReport()}}},{key:"reportTraceStart",value:function(e,t){if(this.reportConfig.isDataReportEnable&&e&&!this.traceMsgCache[e]){var i=Object.assign(Object.assign({start_time:Date.now()},t),{extension:[]});this.traceMsgCache[e]=i}}},{key:"reportTraceUpdate",value:function(e){}},{key:"reportTraceUpdateV2",value:function(e,t,i){var r,s=this;if(this.reportConfig.isDataReportEnable&&this.traceMsgCache[e]){var n=this.traceMsgCache[e].extension,o=n.length,a=(new Date).getTime();0===o?t.duration=a-this.traceMsgCache[e].start_time:n[o-1].end_time?t.duration=a-n[o-1].end_time:t.duration=a-this.traceMsgCache[e].start_time,n.push(Object.assign({end_time:a},t));var c=n.length-1;(null==i?void 0:i.asyncParams)&&((r=this.traceMsgCache[e]).asyncPromiseArray||(r.asyncPromiseArray=[]),this.traceMsgCache[e].asyncPromiseArray.push(i.asyncParams.then(function(t){s.traceMsgCache[e]&&s.traceMsgCache[e].extension[c]&&Object.assign(s.traceMsgCache[e].extension[c],t)})))}}},{key:"reportTraceEnd",value:function(e){var t,i=this,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.reportConfig.isDataReportEnable&&this.traceMsgCache[e])if("nos"!==e||!1===r){"boolean"==typeof r?this.traceMsgCache[e].succeed=!!r:this.traceMsgCache[e].state=r,this.traceMsgCache[e].duration=Date.now()-this.traceMsgCache[e].start_time,this.traceMsgCache[e].extension.forEach(function(e){delete e.end_time});var s=this.traceMsgCache[e];if(this.traceMsgCache[e]=null,s.asyncPromiseArray){(t=this.endedAsyncMsgByModule)[e]||(t[e]=[]),this.endedAsyncMsgByModule[e].push(s);var n=function(){i.endedAsyncMsgByModule[e]&&i.endedAsyncMsgByModule[e].includes(s)&&(delete s.asyncPromiseArray,i.report(e,s,{priority:i.getEventPriority(e,s)}))};Promise.all(s.asyncPromiseArray).then(n).catch(n)}else this.report(e,s,{priority:this.getEventPriority(e,s)})}else this.traceMsgCache[e]=null}},{key:"getEventPriority",value:function(e,t){if("exceptions"===e){if(0===t.action)return"HIGH";if(2===t.action)return"HIGH";if(1===t.action&&0!==t.exception_service)return"HIGH"}else{if("msgReceive"===e)return"LOW";if("nim_api_trace"===e)return"LOW"}return"NORMAL"}},{key:"reportTraceCancel",value:function(e){this.reportConfig.isDataReportEnable&&(this.endedAsyncMsgByModule[e]=[],this.traceMsgCache[e]=null)}},{key:"pause",value:function(){this.reportConfig.isDataReportEnable&&(this.isUploadEnable=!1)}},{key:"restore",value:function(){this.reportConfig.isDataReportEnable&&(this.isUploadEnable=!0,this.initConfigLoaded||this.initUploadConfig())}},{key:"destroy",value:function(){var e=this;this.reportConfig.isDataReportEnable&&(Object.keys(this.traceMsgCache).forEach(function(t){e.reportTraceEnd(t,1)}),null!==this.timer&&clearTimeout(this.timer),this.setConfig=s,this.report=s,this.reportTraceStart=s,this.reportTraceUpdate=s,this.reportTraceEnd=s,this.pause=s,this.restore=s,this.destroy=s,this.reqRetryCount=0,this.cacheMsgList=[],this.traceMsgCache={},this.lowPriorityMsgList=[],this.msgList=[],this.highPriorityMsgList=[],this.reportConfig={},this.isDestroyed=!0)}},{key:"initUploadConfig",value:function(){var i,r;return function(e,t,i,r){function s(e){return e instanceof i?e:new i(function(t){t(e)})}return new(i||(i=Promise))(function(t,i){function n(e){try{a(r.next(e))}catch(e){i(e)}}function o(e){try{a(r.throw(e))}catch(e){i(e)}}function a(e){e.done?t(e.value):s(e.value).then(n,o)}a((r=r.apply(e,[])).next())})}(this,0,void 0,e().mark(function s(){var n,o,a,c,d,l=this;return e().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:if(!this.loading){s.next=2;break}return s.abrupt("return");case 2:this.loading=!0,n=this.reportConfig.common||{},o=this.reportConfig.compassDataEndpoint.split(",").map(function(e){return"".concat(e,"/").concat(l.configPath)}),a=e().mark(function t(s){return e().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!l.initConfigLoaded&&!l.isDestroyed){e.next=2;break}return e.abrupt("return","break");case 2:return e.prev=2,e.next=5,l.reportConfig.request(o[s],{method:"GET",dataType:"json",params:{deviceId:n.dev_id,sdkVer:n.sdk_ver,platform:n.platform,hostEnv:n.host_env,appkey:n.app_key},timeout:l.reportConfig.timeout}).then(function(e){var t,i;if(!l.isDestroyed){if(200===e.status&&e.data&&200===e.data.code){l.initConfigLoaded=!0;var r=e.data.data||{};l.reportConfig.maxSize=r.maxSize>1e3?1e3:r.maxSize,l.reportConfig.maxInterval=r.maxInterval>1e4?1e4:r.maxInterval,l.reportConfig.maxInterval=r.maxInterval<10?10:r.maxInterval,l.reportConfig.minInterval=r.minInterval<2?2:r.minInterval,l.reportConfig.maxDelay=r.maxDelay||300,l.reportConfig.maxInterval=1e3*l.reportConfig.maxInterval,l.reportConfig.minInterval=1e3*l.reportConfig.minInterval,l.reportConfig.maxDelay=1e3*l.reportConfig.maxDelay,r.endpoint?l.dataReportEndpoint=r.endpoint:l.dataReportEndpoint=o[s],l.serverAllowUpload=!0,l.loading=!1,l.reportHeartBeat()}else 200===e.status&&(l.initConfigLoaded=!0);null===(i=null===(t=l.reportConfig)||void 0===t?void 0:t.logger)||void 0===i||i.log("Get reporter upload config success")}}).catch(function(e){var t,i;l.isDestroyed||(l.loading=!1,null===(i=null===(t=l.reportConfig)||void 0===t?void 0:t.logger)||void 0===i||i.error("Get reporter upload config failed",e),l.reqRetryCount<12&&(l.reqRetryCount++,setTimeout(function(){l.isDestroyed||l.initUploadConfig()},8e3)))});case 5:e.next=14;break;case 7:if(e.prev=7,e.t0=e.catch(2),!l.isDestroyed){e.next=11;break}return e.abrupt("return",{v:void 0});case 11:l.loading=!1,null===(r=null===(i=l.reportConfig)||void 0===i?void 0:i.logger)||void 0===r||r.error("Exec reporter request failed",e.t0),l.reqRetryCount<12&&(l.reqRetryCount++,setTimeout(function(){l.isDestroyed||l.initUploadConfig()},8e3));case 14:case"end":return e.stop()}},t,null,[[2,7]])}),c=0;case 7:if(!(c2*this.reportConfig.maxSize?this.reportConfig.minInterval:this.reportConfig.maxInterval;Date.now()-this.lastReportTime>=e&&this.upload()}}},{key:"getUploadMsg",value:function(){var e=this,t={},i=Date.now();this.highPriorityMsgList=this.highPriorityMsgList.filter(function(t){return i-t.createTime{var o=e[n].type,a=i?`In ${i}, `:"";if(null==t){var c=`${a}param is null or undefined`;throw r?new me({detail:{reason:c,data:{key:n},rules:"required"}}):new ue(c,{key:n},"required")}if(void 0===t[n]){if(!1===e[n].required)return void(s[n]=t[n]);var d=`${a}param '${n}' is required`;throw r?new me({detail:{reason:d,data:{key:n},rules:"required"}}):new ue(d,{key:n},"required")}var l=Ie[o];if(l&&!l(t,n,e[n],r)){var h=`${a}param '${n}' unexpected`,p={key:n,value:t[n]};throw r?new me({detail:{reason:h,data:p,rules:JSON.stringify(e[n],fe)}}):new ue(h,p,JSON.stringify(e[n],fe))}s[n]=t[n]}),s}var Ie={string:function(e,t,i){var{allowEmpty:r,max:s,min:n,regExp:o}=i,a=e[t];return!("string"!=typeof a||!1===r&&""===a||"number"==typeof s&&a.length>s||"number"==typeof n&&a.lengths)},boolean:function(e,t){return"boolean"==typeof e[t]},file:function(e,t){return!0},enum:function(e,t,i){var{values:r}=i,s=e[t];return!r||r.indexOf(s)>-1},jsonstr:function(e,t){try{var i=JSON.parse(e[t]);return"object"==typeof i&&null!==i}catch(e){return!1}},func:function(e,t){return"function"==typeof e[t]},array:function(e,t,i,r=!1){var{itemType:s,itemRules:n,rules:o,min:a,max:c,values:d}=i,l=e[t];if(!Array.isArray(l))return!1;if("number"==typeof c&&l.length>c)return!1;if("number"==typeof a&&l.length{_e({[i]:n},{[i]:e},`${t}[${i}]`,r)});else if(o)l.forEach((e,i)=>_e(o,e,`${t}[${i}]`,r));else if("enum"===s){if(d&&function(e,t){return t=t||[],(e=e||[]).filter(e=>-1===t.indexOf(e))}(l,d).length)return!1}else if(s&&!l.every(e=>typeof e===s))return!1;return!0},object:function(e,t,i,r=!1){var{rules:s,allowEmpty:n}=i,o=e[t];if("object"!=typeof o||null===o)return!1;if(s){var a=Object.keys(s),c=Object.keys(o).filter(e=>a.indexOf(e)>-1);if(!1===n&&0===c.length)return!1;_e(s,o,t,r)}return!0}};function ye(e,t){if(!e)throw new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE});_e({conversationId:{type:"string",allowEmpty:!1,regExp:new RegExp(`^${e}\\|[1-3]\\|`)}},{conversationId:t},"",!0)}class Ee{constructor(){this.timerList=[],this.id=1,this.timer=null,this.timeout=0}addTimer(e,t=0,i=1){var r=(new Date).getTime(),s=this.id;return this.timerList.push({id:s,loop:i,count:0,timeout:r+t,interval:t,callback:e}),this.id++,this.checkTimer(r),s}checkTimer(e=(new Date).getTime()){if(this.removeFinished(),0!==this.timerList.length||null==this.timer){var t=0;for(var i of this.timerList)(0===t||t>i.timeout)&&(t=i.timeout);0!==this.timerList.length&&(null===this.timer||t=t.timeout&&(t.callback(),t.count++,t.timeout=e+t.interval);this.clerTime(),this.checkTimer(e)}clerTime(){null!==this.timer&&(clearTimeout(this.timer),this.timer=null)}deleteTimer(e){for(var t=this.timerList.length-1;t>=0;t--)this.timerList[t].id===e&&this.timerList.splice(t,1)}removeFinished(){for(var e=this.timerList.length-1;e>=0;e--){var t=this.timerList[e];t.loop>=0&&t.count>=t.loop&&this.timerList.splice(e,1)}}destroy(){this.clerTime(),this.timerList=[],this.id=1,this.timer=null}}function Me(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(e);sPromise.resolve({net_type:0,net_connect:!0}),onNetworkStatusChange(e){},offNetworkStatusChange(){}},Ae={isActive:()=>!0,getStatus:()=>0,setStatus(e){},destroy(){}},Oe={setLogger:function(e){throw new Error("setLogger not implemented.")},platform:"",WebSocket:class{constructor(e,t){throw this.CONNECTING=0,this.OPEN=1,this.CLOSING=2,this.CLOSED=3,this.binaryType="",new Error("Method not implemented.")}close(e,t){throw new Error("Method not implemented.")}send(e){throw new Error("Method not implemented.")}onclose(e){throw new Error("Method not implemented.")}onerror(e){throw new Error("Method not implemented.")}onmessage(e){throw new Error("Method not implemented.")}onopen(e){throw new Error("Method not implemented.")}},localStorage:{},request:function(e,t){throw new Error("request not implemented.")},uploadFile:function(e){throw new Error("uploadFile not implemented.")},getSystemInfo:function(){throw new Error("getSystemInfo not implemented.")},getFileUploadInformation(e){throw new Error("getFileUploadInformation not implemented.")},envPayload:{},net:Ce,powerMonitor:Ae,logStorage:class{constructor(e){}open(){return Promise.resolve()}close(){}addLogs(e){return Promise.resolve()}extractLogs(){return Promise.resolve()}afterUpload(){return Promise.resolve()}}},Re=["error","warn","log","debug"],be=function(){},ke=["off","error","warn","log","debug"];class Le{constructor(e,t={}){this.storageArr=[],this.debugLevel="off",this.timer=0,this.strategies={debug:{name:"debg",func:console.log},log:{name:"info",func:console.log},warn:{name:"warn",func:console.warn},error:{name:"erro",func:console.error}},this.debug=be,this.log=be,this.warn=be,this.error=be,this.iid=Math.round(1e3*Math.random()),this.debugLevel=ke.includes(e)?e:"off",t.debugLevel&&(this.debugLevel=ke.includes(t.debugLevel)?t.debugLevel:this.debugLevel),this.logStorage=!1===t.storageEnable?null:new Oe.logStorage(null==t?void 0:t.storageName),this.setOptions(t),this.setLogFunc(this.debugLevel),this.setTimer(),Oe.setLogger(this),this.open()}getDebugMode(){return"debug"===this.debugLevel}open(){this.logStorage&&this.logStorage.open().then(()=>{this.log("Logger::open success")}).catch(e=>{this.warn("Logger::open failed",e)})}setOptions(e){if(e&&e.logFunc){var t=e.logFunc;for(var i in t){var r=i,s=t[r];s&&(this.strategies[r].func=s)}}}setLogFunc(e,t="log"){var i=Re.findIndex(t=>t===e),r=Re.findIndex(e=>e===t);Re.forEach((e,t)=>{this[e]=function(){if(!(t>i&&t>r)){var s=Array.prototype.slice.call(arguments),n=this.strategies[e],o=this.formatArgs(s,n.name);t<=r&&this.logStorage&&this.prepareSaveLog(o,e),t<=i&&n.func(o)}}})}extractLogs(){var e;return this.logStorage?null===(e=this.logStorage)||void 0===e?void 0:e.extractLogs():Promise.resolve("")}afterUpload(){var e;return this.logStorage?null===(e=this.logStorage)||void 0===e?void 0:e.afterUpload():Promise.resolve("")}prepareSaveLog(e,t){this.storageArr.push({text:e,level:t,time:Date.now(),iid:this.iid}),this.timer||this.setTimer(),this.storageArr.length>=100&&(this.triggerTimer(),this.storageArr=[])}saveLogs(){return Te(this,void 0,void 0,function*(){if(this.logStorage){var e=this.storageArr;this.storageArr=[];try{yield this.logStorage.addLogs(e)}catch(e){}}})}clearTimer(){this.timer&&clearTimeout(this.timer),this.timer=0}setTimer(){this.clearTimer(),this.timer=setTimeout(this.triggerTimer.bind(this),5e3)}triggerTimer(){this.clearTimer(),this.saveLogs()}formatArgs(e,t){var i=new Date;return`[NIM ${this.iid} ${t} ${i.getMonth()+1}-${i.getDate()} ${i.getHours()}:${i.getMinutes()}:${i.getSeconds()}:${i.getMilliseconds()}] `+e.map(e=>e instanceof pe?e.toString():e instanceof Error?e&&e.message?e.message:e:"object"==typeof e?JSON.stringify(e):e).join(" ")}destroy(){this.debug=be,this.log=be,this.warn=be,this.error=be,this.saveLogs(),this.clearTimer(),this.storageArr=[],this.logStorage&&this.logStorage.close()}}function Ve(e,t){if("object"!=typeof e||null===e)return e;for(var i=(t=t||"").split("."),r=0;r{}),t=t||{}){var n=r(e[s],t[s]);e[s]=void 0===n?t[s]:n}for(var o in i){var a=r(e[o],i[o]);e[o]=void 0===a?i[o]:a}return e}({},e,t,function(e,t){return void 0===t?e:t})}function xe(){return Promise.resolve()}function Fe(){}function Be(e){var t=e.lastIndexOf("."),i=t>-1?e.slice(t+1):"";return/^\d+$/.test(i.trim())&&(i=""),i}function je(e,t,i){return 0===e.length||e[0][t]<=i?0:e[e.length-1][t]>i?e.length:e.findIndex((r,s)=>{if(e[s-1]&&e[s-1][t]>i&&i>=r[t])return!0})}function Ge(e,t,i,r){var s="number"==typeof Ve(e,"raw.r[0]")?`${e.raw.r[0]}`:void 0;return t[i]=t[i]||s||r,t}class $e{constructor(e){this.lastSuccUploadHost="",this.core=e}getFileUploadInformation(e){return Oe.getFileUploadInformation(e)}request(e,t,i){var r=(new Date).getTime(),s=(null==i?void 0:i.exception_service)||0;return Oe.request(e,t).catch(i=>{var n,o,a,c,d=i;throw this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account||(null===(o=null===(n=this.core)||void 0===n?void 0:n.auth)||void 0===o?void 0:o.account),trace_id:null===(c=null===(a=this.core.clientSocket)||void 0===a?void 0:a.socket)||void 0===c?void 0:c.sessionId,start_time:r,action:1,exception_service:s}),this.core.reporter.reportTraceUpdateV2("exceptions",{code:"number"==typeof d.code?d.code:0,description:d.message||`${d.code}`,operation_type:0,target:e,context:t?JSON.stringify(t):""},{asyncParams:Oe.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("exceptions",1),i})}uploadFile(e,t){var i,r,s,n;return Te(this,void 0,void 0,function*(){for(var o="BROWSER"===Oe.platform,a=o?e.chunkUploadHostBackupList:e.commonUploadHostBackupList,c=o?e.chunkUploadHost:e.commonUploadHost,d=a.indexOf(c),l=-1===d?[c,...a]:[c,...a.slice(0,d),...a.slice(d+1)],h=Math.max(l.indexOf(this.lastSuccUploadHost),0),p=null,u=0;u200||e.errCode>200))throw e}}var He="https://abt-online.netease.im/v1/api/abt/client/getExperimentInfo";class Ye{constructor(e,t){this.abtInfo={},this.core=e,this.config=Ue({isAbtestEnable:!0,abtestUrl:He,abtestProjectKey:"imElite_sdk_abtest_web"},t)}setOptions(e){this.config=Ue(this.config,e)}abtRequest(){var e,t;return Te(this,void 0,void 0,function*(){if(this.config.isAbtestEnable&&!this.abtInfo.experiments&&this.config.abtestUrl){var i;try{i=yield this.core.adapters.request(this.config.abtestUrl,{method:"POST",dataType:"json",headers:{sdktype:"ABTest"},data:{clientInfo:{projectKey:this.config.abtestProjectKey,appKey:this.core.options.appkey,osType:"Web",sdkVersion:"10.9.50",deviceId:this.core.config.deviceId},useLocalCache:!0}},{exception_service:7})}catch(e){this.core.logger.warn("ABTest request failed")}this.abtInfo=(null===(t=null===(e=null==i?void 0:i.data)||void 0===e?void 0:e.data)||void 0===t?void 0:t.abtInfo)||{}}})}}class qe{constructor(){this.abortFns=[]}add(e){var t=function(e){var t={},i=new Promise(function(e,i){t.abort=i});return t.promise=Promise.race([e,i]),t}(e);return this.abortFns.push(t.abort),t.promise}clear(e){this.abortFns.forEach(t=>t(e||new pe({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:"Aborted"}}))),this.abortFns=[]}destroy(){this.clear()}}var Ke={tolerantRTT:3e3,bestRTT:100,maxChances:5,enable:!0},We={timestamp:0,rtt:0,baseClock:0,baseTime:0};class Je{constructor(e,t,i="getServerTime"){this.serverOrigin=We,this.config=Ke,this.isSettingNTP=!1,this.currentChance=0,this.failedDelay=2e3,this.successDelay=3e5,this.timer=0,this.cmdName="getServerTime",this.core=e,this.logger=e.logger,this.promiseManager=new qe,this.cmdName=i,t&&this.setOptions(t)}setOptions(e){this.config=Object.assign({},Ke,this.config,e)}reset(){this.timer&&clearTimeout(this.timer),this.promiseManager.clear(),this.serverOrigin=We,this.currentChance=0}setOriginTimetick(){return Te(this,void 0,void 0,function*(){if(this.config.enable&&!(this.isSettingNTP||this.currentChance>=this.config.maxChances)){var e=Ve(this.core,"auth.status"),t=Ve(this.core,"status"),i=Ve(this.core,"V2NIMLoginService.lifeCycle.loginStatus");if("logined"===e||"logined"===t||1===i){this.isSettingNTP=!0,this.currentChance++,this.timer&&clearTimeout(this.timer),this.timer=0;var r,s="TimeOrigin::setOriginTimetick:",n=Date.now();this.core.logger.debug(`${s} getServerTime start, times ${this.currentChance}`);try{r=Ve(yield this.promiseManager.add(this.core.sendCmd(this.cmdName)),"content.time"),this.isSettingNTP=!1}catch(e){var o=e;return this.isSettingNTP=!1,this.logger.warn(`${s} Calculate Delay time, getServerTime error`,o),void(o.code!==de.V2NIM_ERROR_CODE_CANCELLED&&(clearTimeout(this.timer),this.timer=setTimeout(this.setOriginTimetick.bind(this),this.failedDelay)))}if(!r)return this.core.logger.warn(`${s} Calculate Delay time incorrect format`),void(this.config.enable=!1);var a=Date.now()-n;this.doSet(r,a)}}})}doSet(e,t){var i="TimeOrigin::setOriginTimetick:";t>this.config.tolerantRTT?(this.logger.warn(`${i} denied RTT:${t}`),clearTimeout(this.timer),this.timer=setTimeout(this.setOriginTimetick.bind(this),this.failedDelay)):t>this.config.bestRTT?(this.serverOrigin.rtt&&t>=this.serverOrigin.rtt?this.logger.warn(`${i} ignore RTT:${t}`):(this.setServerOrigin(t,e),this.logger.log(`${i} accept reluctantly RTT:${t}`)),clearTimeout(this.timer),this.timer=setTimeout(this.setOriginTimetick.bind(this),this.failedDelay)):(this.setServerOrigin(t,e),this.logger.debug(`${i} accept best RTT:${t}`),this.currentChance=0,clearTimeout(this.timer),this.timer=setTimeout(this.setOriginTimetick.bind(this),this.successDelay))}getNTPTime(e){if(void 0===e&&(e=this.getTimeNode()),this.checkNodeReliable(e)){var t=Math.floor(e.time-this.serverOrigin.baseTime);return this.serverOrigin.timestamp+t}return Date.now()}checkNodeReliable(e){if(void 0===e&&(e=this.getTimeNode()),this.serverOrigin.timestamp){if(0===this.serverOrigin.baseClock)return!0;var t=e.clock-this.serverOrigin.baseClock,i=e.time-this.serverOrigin.baseTime;return Math.abs(i-t)<500}return!1}checkPerformance(){return"BROWSER"===Oe.platform&&!("undefined"==typeof performance||!performance.now)}static checkPerformance(){return"BROWSER"===Oe.platform&&!("undefined"==typeof performance||!performance.now)}getTimeNode(){return{clock:this.checkPerformance()?performance.now():0,time:Date.now()}}static getTimeNode(){return{clock:Je.checkPerformance()?performance.now():0,time:Date.now()}}setServerOrigin(e,t){this.serverOrigin={timestamp:t+Math.floor(e/2),rtt:e,baseClock:this.checkPerformance()?performance.now():0,baseTime:Date.now()}}}var ze={user_id:"",trace_id:"",action:7,exception_service:6,duration:0,start_time:0,state:1,extension:[]};class Xe{constructor(e,t){this.traceData=ze,this.core=e,this.traceData=Object.assign({},ze,t),this.traceData.extension=[]}reset(){this.traceData=Object.assign({},ze),this.traceData.extension=[]}start(){var e,t;this.reset(),this.traceData.user_id=this.core.account,this.traceData.trace_id=(null===(t=null===(e=this.core.clientSocket)||void 0===e?void 0:e.socket)||void 0===t?void 0:t.sessionId)||"",this.traceData.start_time=(new Date).getTime()}update(e){return Te(this,void 0,void 0,function*(){var{net_type:t,net_connect:i}=yield Oe.net.getNetworkStatus();this.traceData.extension.push(Object.assign({code:0,foreground:!0,foreg_backg_switch:!1,net_type:t,net_connect:i},e))})}end(e){var t=this.traceData.extension[0],i=this.traceData.extension[1];if(t&&0===t.operation_type&&i&&1===i.operation_type){var r=t.net_type!==i.net_type||t.net_connect!==i.net_connect;if(e||!r)return this.traceData.duration=(new Date).getTime()-this.traceData.start_time,this.core.reporter.report("exceptions",this.traceData),void this.reset();this.reset()}else this.reset()}}var Qe={user_id:"",trace_id:"",net_connect:!0,net_type:0,duration:0,start_time:0,history:[],succeed:!1};class Ze{constructor(e){this.traceData=Qe,this.core=e,this.reset()}reset(){this.traceData=Object.assign({},Qe),this.traceData.history=[]}start(e){this.reset(),this.traceData.user_id=e,this.traceData.start_time=Date.now()}updateBegin(e){this.traceData.history.push(Object.assign({head:"",body:"",start_time:Date.now(),httpdns:!1,index:0},e))}updateComplete(e){this.traceData.history.forEach(t=>{t.target===e.target&&(Object.assign(t,e),t.duration=Date.now()-t.start_time)})}end(e){return Te(this,void 0,void 0,function*(){if(this.traceData.succeed=e,this.traceData.history=this.traceData.history.filter(e=>void 0!==e.code),0!==this.traceData.history.length){this.traceData.duration=Date.now()-this.traceData.start_time;var{net_type:t,net_connect:i}=yield Oe.net.getNetworkStatus();this.traceData.net_type=t,this.traceData.net_connect=i,this.core.reporter.report("nim_sdk_lbs_records",this.traceData),this.reset()}else this.reset()})}}function et(e){var t,i,r=!0;return"boolean"==typeof(null===(t=null==e?void 0:e.reporterConfig)||void 0===t?void 0:t.enableCompass)?r=e.reporterConfig.enableCompass:"boolean"==typeof(null===(i=null==e?void 0:e.reporterConfig)||void 0===i?void 0:i.isDataReportEnable)&&(r=e.reporterConfig.isDataReportEnable),r}var it={},rt={},st={},nt={apiVersion:"v1",debugLevel:"off",needReconnect:!0,reconnectionAttempts:Number.MAX_SAFE_INTEGER,lbsUrls:["https://lbs.netease.im/lbs/webconf.jsp"],linkUrl:"weblink.netease.im:443",abtestUrl:He,isAbtestEnable:!0};class ot extends ne{constructor(e,t={}){if(super(),this.instanceName="NIM",this.pluginMap={},this.eventBus=new ne,this.options={},this.V2NIMConversationIdUtil={},this.V2NIMMessageCreator={},this.V2NIMMessageAttachmentCreator={},this.V2NIMClientAntispamUtil={},this.DataStructureConverter={},this.V2NIMMessageConverter={},this.V2NIMMessageLogUtil={},this.V2NIMMessageExtendUtil={},this.V2NIMStorageUtil={},this.V2NIMNotificationService={},this.V2NIMStorageService={},this.auth={},this.V1NIMLoginService={},this.V2NIMLoginService={},this.clientSocket={},this.V2NIMSyncService={},this.V2NIMLocalConversationService={},this.V2NIMConversationService={},this.V2NIMConversationGroupService={},this.V2NIMMessageService={},this.V2NIMTeamService={},this.V2NIMUserService={},this.V2NIMFriendService={},this.V2NIMSettingService={},this.V2NIMAIService={},this.V2NIMSignallingService={},this.V2NIMSubscriptionService={},this.V2NIMPassthroughService={},this.YSFService={},this.offlinePush={},this.sync={},this.msg={},this.msgLog={},this.session={},this.cloudSession={},this.misc={},this.user={},this.friend={},this.systemMessage={},this.team={},this.event={},this.msgExtend={},this.cloudStorage={},this.passThrough={},this.superTeam={},this.plugin={},this.signaling={},this.qchatChannel={},this.qchatMedia={},this.qchatMsg={},this.qchatRole={},this.qchatServer={},this.pluginMap=st,this.logger=new Le(e.debugLevel,t.loggerConfig),t.privateConf){var{authConfig:i,cloudStorageConfig:r,reporterConfig:s}=this.getConfigFromPrivate(t.privateConf);Object.assign(e,i),this.setInitOptions(e),this.otherOptions=Object.assign(Object.assign({},t),{cloudStorageConfig:Object.assign(Object.assign({storageKeyPrefix:"NIM"},t.cloudStorageConfig),r),reporterConfig:Object.assign(Object.assign({},t.reporterConfig),s),V1NIMLoginServiceConfig:Object.assign(Object.assign(Object.assign({},e),t.V1NIMLoginServiceConfig),i),V2NIMLoginServiceConfig:Object.assign(Object.assign({},t.V2NIMLoginServiceConfig),i)})}else this.setInitOptions(e),this.otherOptions=Object.assign(Object.assign({},t),{V1NIMLoginServiceConfig:Object.assign(Object.assign({},e),t.V1NIMLoginServiceConfig),cloudStorageConfig:Object.assign({storageKeyPrefix:"NIM"},t.cloudStorageConfig)});this.timerManager=new Ee,this.timeOrigin=new Je(this),this.adapters=new $e(this),this.abtest=new Ye(this,Object.assign(Object.assign({isAbtestEnable:this.options.isAbtestEnable,abtestUrl:this.options.abtestUrl},this.otherOptions.abtestConfig),{abtestProjectKey:"imElite_sdk_abtest_web"}));var n=Oe.getSystemInfo(),o=function(e,t){var i,r,s=null===(i=null==t?void 0:t.reporterConfig)||void 0===i?void 0:i.compassDataEndpoint,n=null===(r=null==t?void 0:t.reporterConfig)||void 0===r?void 0:r.reportConfigUrl;if(s)return s;if(n){var o=n.match(/^https:\/\/([^/]+)\/*/);if(Array.isArray(o)&&o.length>=1)return`https://${o[1]}`;e.error(`Invalid reportConfigUrl: ${n}`)}return we()?"https://statistic.live.126.net":"https://statistic.live.126.net,https://statistic-overseas.yunxinfw.com"}(this.logger,this.otherOptions);this.reporter=new oe(Object.assign(Object.assign({},o?{compassDataEndpoint:o}:{}),{isDataReportEnable:et(this.otherOptions),common:{app_key:e.appkey,dev_id:"",platform:"Web",sdk_ver:"10.9.50",env:"online",os_name:n.os,os_ver:n.osVer,lib_env:n.libEnv,host_env:n.hostEnv,host_env_ver:n.hostEnvVer,manufactor:n.manufactor,model:n.model,v2:"v1"!==this.options.apiVersion},request:Oe.request,logger:this.logger,autoStart:!0})),this.reporterHookLinkKeep=new Xe(this),this.reporterHookLBS=new Ze(this),this.getServiceKeys(Object.keys(it)).forEach(e=>{if(!this[e]||!this[e].name){var t=it[e];this[e]=new t(this)}}),Object.keys(it).forEach(e=>{this.callSetOptions(e)}),Object.keys(rt).forEach(e=>{var t=rt[e];void 0!==t&&(this[e]=new t(this))}),ot.instance=this,this.logger.log(`NIM init, version:10.9.50, sdk version:100950, appkey:${e.appkey}`)}getServiceKeys(e){var t=e.findIndex(e=>"V1NIMLoginService"===e);if(t>-1){var i=e[t];e.splice(t,1),"v1"===this.options.apiVersion&&e.unshift(i)}var r=e.findIndex(e=>"V2NIMLoginService"===e);if(r>-1){var s=e[r];e.splice(r,1),"v2"===this.options.apiVersion&&e.unshift(s)}var n=e.findIndex(e=>"sync"===e);if(n>-1){var o=e[n];e.splice(n,1),"v1"===this.options.apiVersion&&e.push(o)}var a=e.findIndex(e=>"V2NIMSyncService"===e);if(a>-1){var c=e[a];e.splice(a,1),"v2"===this.options.apiVersion&&e.push(c)}return e}static getInstance(e,t){if(!ot.instance){if(e)return new ot(e,t);throw new Error("Instance not exist, please input options")}if(e){if(ot.instance.options.account===e.account&&ot.instance.options.appkey===e.appkey)return ot.instance.setOptions(e),ot.instance;throw new Error("Unexpected login")}return ot.instance}setInitOptions(e){_e({appkey:{type:"string"},apiVersion:{type:"enum",values:["v1","v2"],required:!1},binaryWebsocket:{type:"boolean",required:!1},needReconnect:{type:"boolean",required:!1},reconnectionAttempts:{type:"number",required:!1},customClientType:{type:"number",min:1,required:!1},authType:{type:"number",min:0,max:2,required:!1},lbsUrls:{type:"array",itemType:"string",min:1,required:!1},linkUrl:{type:"string",allowEmpty:!1,required:!1}},e),this.options=Object.assign(Object.assign({},nt),e)}getConfigFromPrivate(e){var t;return e?{authConfig:JSON.parse(JSON.stringify({appkey:e.appkey||void 0,lbsUrls:e.weblbsUrl?[e.weblbsUrl]:void 0,linkUrl:e.link_web||void 0,linkSSL:null!==(t=e.websdkSsl)&&void 0!==t?t:void 0})),cloudStorageConfig:JSON.parse(JSON.stringify({chunkUploadHost:e.nos_uploader||void 0,commonUploadHost:e.nos_uploader||void 0,commonUploadHostBackupList:e.nos_uploader?[e.nos_uploader]:void 0,chunkUploadHostBackupList:e.nos_uploader?[e.nos_uploader]:void 0,uploadReplaceFormat:e.nos_downloader_v2?`${e.nosSsl?"https://":"http://"}${e.nos_downloader_v2}`:void 0,downloadUrl:void 0!==e.nos_accelerate?e.nos_accelerate:void 0,downloadHostList:""===e.nos_accelerate_host?[]:"string"==typeof e.nos_accelerate_host?[e.nos_accelerate_host]:Array.isArray(e.nos_accelerate_host)?e.nos_accelerate_host:void 0})),reporterConfig:JSON.parse(JSON.stringify({enableCompass:"boolean"==typeof e.enableCompass?e.enableCompass:void 0,compassDataEndpoint:e.compassDataEndpoint||void 0}))}:{authConfig:{},cloudStorageConfig:{},reporterConfig:{}}}connect(e={}){return this.V1NIMLoginService.login(e)}setOptions(e){if("object"==typeof e&&null!==e){if(Object.prototype.hasOwnProperty.call(e,"account")&&e.account!==this.options.account||Object.prototype.hasOwnProperty.call(e,"appkey")&&e.appkey!==this.options.appkey)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"NIM::setOptions account and appkey is not allowed to reset"}});if(Object.prototype.hasOwnProperty.call(e,"apiVersion")&&e.apiVersion!==this.options.apiVersion)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"NIM::setOptions apiVersion is not allowed to reset"}});if(Object.prototype.hasOwnProperty.call(e,"binaryWebsocket")&&e.binaryWebsocket!==this.options.binaryWebsocket)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"NIM::setOptions binaryWebsocket is not allowed to reset"}});_e({token:{type:"string",required:!1},needReconnect:{type:"boolean",required:!1},reconnectionAttempts:{type:"number",required:!1},customClientType:{type:"number",min:1,required:!1},authType:{type:"number",min:0,max:2,required:!1},lbsUrls:{type:"array",itemType:"string",min:1,required:!1},linkUrl:{type:"string",allowEmpty:!1,required:!1}},e),this.logger.log("NIM::setOptions options is",e),this.options=Object.assign(Object.assign({},this.options),e),this.V1NIMLoginService.setOptions&&this.V1NIMLoginService.setOptions(this.options)}}getOptions(){return this.options}disconnect(){return this.V1NIMLoginService.logout()}_disconnect(){return"v1"===this.options.apiVersion?this.V1NIMLoginService.logout():"v2"===this.options.apiVersion?0===Ve(this.V2NIMLoginService,"lifeCycle.connectStatus")&&0===Ve(this.V2NIMLoginService,"lifeCycle.loginStatus")?Promise.resolve():this.V2NIMLoginService.logout():Promise.resolve()}destroy(){return ot.instance=void 0,this._disconnect().then(()=>{this.status="destroyed",this.removeAllListeners(),this.eventBus.removeAllListeners(),this.logger.destroy(),this.reporter.destroy(),this.timerManager.destroy(),this._clearModuleData("destroy"),this._removeAllModuleListeners(),this.connect=xe,this.disconnect=xe,this._disconnect=xe,this.destroy=xe})}_clearModuleData(e="logout"){Object.values(this).forEach(t=>{t&&"function"==typeof t.reset&&t.reset(e)})}_removeAllModuleListeners(){Object.values(this).forEach(e=>{e&&"function"==typeof e.removeAllListeners&&e.removeAllListeners()})}kick(e){return this.V1NIMLoginService.kick(e)}sendCmd(e,t,i){return this.clientSocket.sendCmd(e,t,i)}emit(e,...t){try{var i=Date.now(),r=super.emit(e,...t),s=Date.now()-i;return s>=10&&this.logger.warn(`Core::emit event: ${e} process takes: ${s}ms`),r}catch(t){return this.logger.error(`Core::emit event: ${e}. Error: ${t}`),setTimeout(()=>{throw this.logger.error(`Core::emit throw error in setTimeout. event: ${e}. Error: ${t}`),t},0),!1}}get account(){return this.auth.account}get status(){return this.V1NIMLoginService.status}set status(e){this.V1NIMLoginService.status=e}get config(){return{timeout:8e3,deviceId:this.auth.deviceId}}_registerDep(e,t){this[t]&&this[t].name||(this[t]=new e(this),this.callSetOptions(t))}callSetOptions(e){var t=`${e}Config`,i=`${e}Options`,r=this.otherOptions[t]||this.otherOptions[i]||{},s=Ve(this,`${e}.setOptions`);"function"==typeof s&&("cloudStorage"===e&&(r=this.otherOptions[t]||this.otherOptions.serverConfig||{}),s.call(this[e],r))}static registerService(e,t){it[t]=e}static registerPrivateService(e,t){rt[t]=e}static registerPlugin(e,t){st[t]=e}}ot.sdkVersion=100950,ot.sdkVersionFormat="10.9.50";var at={},ct={};function dt(e,t,i,r){var s=at[e];if(!s)return i.error("createCmd:: can not find cmd config: ",e),null;var n={SER:t,SID:s.sid,CID:s.cid,Q:[]};return s.params&&r&&s.params.forEach(function(e){var t=r[e.name];if(null!=t){var i=e.type,{reflectMapper:s,select:o}=e;switch(e.type){case"PropertyArray":i="ArrayMable",t=t.map(e=>({t:"Property",v:s?pt(e,s,o):e}));break;case"Property":t=s?pt(t,s,o):t;break;case"Bool":t=t?"true":"false"}n.Q.push({t:i,v:t})}}),{packet:n,hasPacketResponse:"boolean"!=typeof s.hasPacketResponse||s.hasPacketResponse,hasPacketTimer:"boolean"!=typeof s.hasPacketTimer||s.hasPacketTimer}}function lt(e,t){var i;try{i=JSON.parse(e)}catch(i){return void t.error(`Parse command error:"${e}"`)}var r=i.sid+"_"+i.cid,s=i.r;if(["4_1","4_2","4_10","4_11"].includes(r)){var n=i.r[1].headerPacket;r=`${n.sid}_${n.cid}`,i.sid=n.sid,i.cid=n.cid,s=i.r[1].body}var o=ct[r],a=[];if(o&&o.length>0){for(var c of o)a.push(ht(i,c.config,c.cmd,s,t));return a}t.error("parseCmd:: mapper not exist",r,i.code)}function ht(e,t,i,r,s){var n,o={cmd:i,raw:e,error:null,service:null==t?void 0:t.service,content:{},__receiveTimeNode:Je.getTimeNode()};(18===t.sid||t.sid>=26&&t.sid<100)&&(e.code=function(e){if("number"!=typeof e||e!=e)throw new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"Read code failed",rawData:`${e}`}});if(e<0||e>=0&&e<1e3||e>=2e4&&e<=20099)return e;var t=(65535&e)>>9;return 1e5+1e3*(t-=t<=38?1:2)+(511&e)}(e.code));var a=function(e,t){var i=le[e],r=ve[e];return null===r?null:new pe({code:e,desc:i||r||e,detail:{cmd:t,timetag:Date.now()}})}(e.code,i);if(o.error=a,o.error){if(o.error.detail.cmd=i,!(null===(n=null==t?void 0:t.ignoreErrCodes)||void 0===n?void 0:n.includes(e.code)))return o;s.warn("parseCmd:: ignore error ",o.error),o.error.detail.ignore=!0}return t.response&&t.response.forEach((e,t)=>{var i=r[t],s=e.type,n=e.name,a=e.reflectMapper;if(void 0!==i)switch(s){case"Property":o.content[n]=a?ut(i,a):i;break;case"PropertyArray":o.content[n]=i.map(e=>a?ut(e,a):e);break;case"Int":case"Long":case"Byte":o.content[n]=+i;break;case"Bool":o.content[n]="true"===i||!0===i||1===i;break;default:o.content[n]=i}}),o}function pt(e,t,i){var r={};for(var s in e=function(e,t){var i={};for(var r in t){var s=t[r],n="number"==typeof s?r:s.access?s.access:r,o=n.split("."),a=e;for(var c of o){if(void 0===a[c]||null===a[c]){a=void 0;break}a=a[c]}void 0!==a&&(i[n]=a)}return i}(e,t),t){var n=t[s],o="number"==typeof n?s:n.access?n.access:s;if(!i||i.includes(s))if(o in e){if("number"==typeof n)r[n]=e[o];else if("object"==typeof n)if(n.converter){var a=n.converter(e[o],e);void 0!==a&&(r[n.id]=a)}else r[n.id]=e[o]}else"object"==typeof n&&n.def&&("function"==typeof n.def?r[n.id]=n.def(e):r[n.id]=n.def)}return r}function ut(e,t){var i={};for(var r in e){var s=t[r];if("string"==typeof s)i[s]=e[r];else if("object"==typeof s&&"prop"in s){var n=s.access?s.access:s.prop;if(s.converter){var o=s.converter(e[r],e);void 0!==o&&(i[n]=o)}else s.type&&"number"===s.type?i[n]=+e[r]:s.type&&"boolean"===s.type?i[n]=!("0"===e[r]||!e[r]):i[n]=e[r]}}for(var a in t){var c=t[a];if(c&&void 0!==c.def){var d=c.access?c.access:c.prop;d in i||("function"==typeof c.def?i[d]=c.def(e):i[d]=c.def)}}return i=function(e){var t={},i=function(i){var r=i.split(".");r.reduce(function(t,s,n){return t[s]||(t[s]=isNaN(Number(r[n+1]))?r.length-1==n?e[i]:{}:[])},t)};for(var r in e)i(r);return t}(i),i}function mt(e){for(var t in Object.assign(at,e.cmdConfig),e.cmdMap){var i=e.cmdMap[t],r=e.cmdConfig[i];if(r)if(Array.isArray(ct[t])){var s=!1;for(var n of ct[t])if(n.cmd===i&&n.config.service===r.service){s=!0;break}s||ct[t].push({config:r,cmd:i})}else ct[t]=[{config:r,cmd:i}]}}function gt(e){var t={};for(var i in e){var r=e[i];"number"==typeof r?t[r]=i:"object"==typeof r&&(t[r.id]={prop:i,type:r.retType,access:r.retAccess?r.retAccess:r.access?r.access:i,def:r.retDef,converter:r.retConverter})}return t}function vt(e){return e?1:0}function ft(e){if(e&&"object"==typeof e)try{return JSON.stringify(e)}catch(e){return}}function _t(e){if(e&&"string"==typeof e)try{return JSON.parse(e)}catch(e){return}}function It(e,t){if(!Se(t))return{};var i=JSON.parse(JSON.stringify(t)),r=yt(e,i);return JSON.parse(JSON.stringify(Object.assign(Object.assign({},i),r)))}function yt(e,t){if(!Se(t))return{};var i={};return Object.keys(e).forEach(r=>{var s=e[r].type;if("string"!=typeof s){var n=yt(e[r],t);Object.keys(n).length>0&&(i[r]=n)}else{var o=e[r],a=o.rawKey||r,c=Et[s](t,a,o);void 0!==c&&(t[a]=void 0,i[r]=c)}}),i}var Et={number:function(e,t){if(void 0!==e[t])return+e[t]},string:function(e,t){if(void 0!==e[t])return e[t]},boolean:function(e,t){return+e[t]>0||0!=+e[t]&&void 0},enum:function(e,t,i){return i.values[e[t]]},object:function(e,t){if(void 0!==e[t])try{return JSON.parse(e[t])}catch(e){return{}}}};function Mt(e){return It({type:{type:"number"},port:{type:"number"},customClientType:{type:"number"},timestamp:{type:"number"},loginType:{type:"number"}},e)}var Tt={"26_3":"v2Login","26_5":"v2Logout","26_8":"v2KickOffline","26_9":"v2BeKicked","26_10":"v2LoginClientChange","36_1":"v2GetChatroomLinkAddress"},St={"1_2":"heartbeat","2_7":"nimLoginClientChange","24_8":"qchatLoginClientChange"},Nt={webLoginReqTag:{clientType:3,os:4,sdkVersion:6,appLogin:8,protocolVersion:9,pushTokenName:10,pushToken:11,clientId:13,appkey:18,account:19,browser:24,clientSession:26,deviceInfo:32,isReactNative:112,customTag:38,customClientType:39,sdkHumanVersion:40,hostEnv:41,userAgent:42,libEnv:44,authType:115,thirdPartyExtension:116,env:119,isRoutable:120,token:1e3},mixAuthRepTag:{clientId:1,consid:2,clientIP:3,port:4,type:5,customClientType:6,timestamp:7,customTag:8,os:9,pushType:10,hasTokenPreviously:11,loginType:12},nimAuthRepTag:{type:3,os:4,mac:5,clientId:13,account:19,deviceInfo:32,customTag:38,customClientType:39,consid:102,clientIP:103,port:104,timestamp:109,pushType:110,hasTokenPreviously:111},qchatAuthRepTag:{clientId:8,consid:102,clientIP:103,port:104,type:6,customClientType:13,timestamp:105,os:30,pushType:100,hasTokenPreviously:101}},Ct={v2Login:{sid:26,cid:3,service:"auth",params:[{type:"Property",name:"tag",reflectMapper:Nt.webLoginReqTag}],response:[{type:"Property",name:"data",reflectMapper:gt(Nt.mixAuthRepTag)},{type:"PropertyArray",name:"loginClients",reflectMapper:gt(Nt.mixAuthRepTag)}]},v2Logout:{sid:26,cid:5,service:"auth"},v2KickOffline:{sid:26,cid:8,service:"auth",params:[{type:"StrArray",name:"clientIds"}],response:[{type:"StrArray",name:"clientIds"}]},v2BeKicked:{sid:26,cid:9,service:"auth",response:[{type:"Int",name:"clientType"},{type:"Int",name:"reason"},{type:"String",name:"reasonDesc"},{type:"Int",name:"customClientType"}]},v2LoginClientChange:{sid:26,cid:10,service:"auth",response:[{type:"Byte",name:"state"},{type:"PropertyArray",name:"datas",reflectMapper:gt(Nt.mixAuthRepTag)}]},v2GetChatroomLinkAddress:{sid:36,cid:1,service:"auth",params:[{type:"Long",name:"roomId"},{type:"Bool",name:"miniProgram"}],response:[{type:"StrArray",name:"linkAddress"}]}},At={heartbeat:{sid:1,cid:2,service:"auth"},nimLoginClientChange:{sid:2,cid:7,service:"auth",response:[{type:"Byte",name:"state"},{type:"PropertyArray",name:"datas",reflectMapper:gt(Nt.nimAuthRepTag)}]},qchatLoginClientChange:{sid:24,cid:8,service:"auth",response:[{type:"Byte",name:"state"},{type:"Property",name:"data",reflectMapper:gt(Nt.qchatAuthRepTag)}]}},Ot=Rt;function Rt(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}Rt.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),i=Math.floor(t*this.jitter*e);e=1&Math.floor(10*t)?e+i:e-i}return 0|Math.min(e,this.max)},Rt.prototype.reset=function(){this.attempts=0},Rt.prototype.setMin=function(e){this.ms=e},Rt.prototype.setMax=function(e){this.max=e},Rt.prototype.setJitter=function(e){this.jitter=e};var bt=function(e){var t;if(void 0!==e)return(t=Pt(e)).sign=1,t},kt=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lt=function(e){return["number"==typeof e,"string"==typeof e&&e.length>0,kt(e)&&e.length>0,e instanceof Pt].some(function(e){return!0===e})},Vt="Invalid Number";function Pt(e){var t;if(!(this instanceof Pt))return new Pt(e);if(this.number=[],this.sign=1,this.rest=0,Lt(e)){if(kt(e)){for((e.length&&"-"===e[0]||"+"===e[0])&&(this.sign="+"===e[0]?1:-1,e.shift(0)),t=e.length-1;t>=0;t--)if(!this.addDigit(e[t]))return}else for("-"!==(e=e.toString()).charAt(0)&&"+"!==e.charAt(0)||(this.sign="+"===e.charAt(0)?1:-1,e=e.substring(1)),t=e.length-1;t>=0;t--)if(!this.addDigit(parseInt(e.charAt(t),10)))return}else this.number=Vt}Pt.prototype.addDigit=function(e){return function(e){return/^\d$/.test(e)}(e)?(this.number.push(e),this):(this.number=Vt,!1)},Pt.prototype._compare=function(e){var t,i;if(!Lt(e))return null;if(t=Pt(e),this.sign!==t.sign)return this.sign;if(this.number.length>t.number.length)return this.sign;if(this.number.length=0;i--){if(this.number[i]>t.number[i])return this.sign;if(this.number[i]0},Pt.prototype.gte=function(e){return this._compare(e)>=0},Pt.prototype.equals=function(e){return 0===this._compare(e)},Pt.prototype.lte=function(e){return this._compare(e)<=0},Pt.prototype.lt=function(e){return this._compare(e)<0},Pt.prototype.subtract=function(e){var t;return void 0===e?this:(t=Pt(e),this.sign!==t.sign?(this.number=Pt._add(this,t),this):(this.sign=this.lt(t)?-1:1,this.number=bt(this).lt(bt(t))?Pt._subtract(t,this):Pt._subtract(this,t),this))},Pt._add=function(e,t){var i,r=0,s=Math.max(e.number.length,t.number.length);for(i=0;i0;i++)e.number[i]=(r+=(e.number[i]||0)+(t.number[i]||0))%10,r=Math.floor(r/10);return e.number},Pt._subtract=function(e,t){var i,r=0,s=e.number.length;for(i=0;i0;)i++;return i>0&&e.number.splice(-i),e.number},Pt.prototype.multiply=function(e){if(void 0===e)return this;var t,i,r=Pt(e),s=0,n=[];if(this.isZero()||r.isZero())return Pt(0);for(this.sign*=r.sign,t=0;t0;i++)n[t+i]=(s+=(n[t+i]||0)+this.number[t]*(r.number[i]||0))%10,s=Math.floor(s/10);return this.number=n,this},Pt.prototype.divide=function(e){if(void 0===e)return this;var t,i,r=Pt(e),s=[],n=Pt(0);if(r.isZero())return this.number="Invalid Number - Division By Zero",this;if(this.isZero())return this.rest=Pt(0),this;if(this.sign*=r.sign,r.sign=1,1===r.number.length&&1===r.number[0])return this.rest=Pt(0),this;for(t=this.number.length-1;t>=0;t--)for(n.multiply(10),n.number[0]=this.number[t],s[t]=0;r.lte(n);)s[t]++,n.subtract(r);for(t=0,i=s.length-1;0===s[i-t]&&i-t>0;)t++;return t>0&&s.splice(-t),this.rest=n,this.number=s,this},Pt.prototype.mod=function(e){return this.divide(e).rest},Pt.prototype.isZero=function(){var e;for(e=0;e=0;e--)t+=this.number[e];return this.sign>0?t:"-"+t};var Dt,wt=Math.pow(2,32);function Ut(e){for(var t=new Uint8Array(5),i=new DataView(t.buffer),r=0;4294967168&e;)i.setUint8(r++,127&e|128),e>>>=7;return i.setUint8(r++,127&e),t.slice(0,r)}class xt{constructor(e){this.offset=0,this.buffer=new Uint8Array(e),this.view=new DataView(e)}checkBufferBoundaryAccess(){return this.offset>=this.buffer.byteLength}length(){var e;return(null===(e=this.view)||void 0===e?void 0:e.byteLength)||0}getBuffer(){return this.view.buffer}getOffset(){return this.offset}popRaw(e){try{var t=this.buffer.slice(this.offset,this.offset+e);return this.offset+=e,t}catch(e){throw new Error(`UnpackException raw ${e&&e.message}`)}}popByte(){try{var e=this.view.getUint8(this.offset);return this.offset+=1,e}catch(e){throw new Error(`UnpackException byte ${e&&e.message}`)}}popVarbin(){return this.popRaw(this.popVarInt())}popString(){try{return function(e){return"function"==typeof TextDecoder?new TextDecoder("utf-8").decode(e):function(e){for(var t="",i=0;i0)for(var o=0;o5)throw new Error("Variable length quantity is too long")}while(128&i);return t}popLong(){try{var e=function(e,t=!1){var i=new DataView(e.buffer),[r,s]=t?[4,0]:[0,4],n=i.getUint32(r,t),o=i.getUint32(s,t);return n>0?n*wt+o:o}(this.buffer.slice(this.offset,this.offset+8),!0);return this.offset+=8,Number(e)}catch(e){throw new Error(`UnpackException long ${e&&e.message}`)}}popShort(){try{var e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}catch(e){throw new Error(`UnpackException short ${e&&e.message}`)}}popBoolean(){return this.popByte()>0}toString(){return Array.from(new Uint8Array(this.buffer)).toString()}reset(){this.offset=0,this.buffer=null,this.view=null}}class Ft{constructor(e){this.packetLength=0,this.serviceId=0,this.commandId=0,this.serialId=0,this.tag=0,this.resCode=200,this.innerHeader=null,this.msgId=0,this.bodyArr=[],this.unpack=new xt(e)}reset(){this.innerHeader=null,this.bodyArr=[],this.unpack.reset()}getBodyDetail(){return this.bodyArr.join("")}unmarshalHeader(){var e=this._unmarshalHeader();this.packetLength=e.packetLength,this.serviceId=e.serviceId,this.commandId=e.commandId,this.serialId=e.serialId,this.tag=e.tag,this.resCode=e.resCode,4===e.serviceId&&[1,2,10,11].includes(e.commandId)&&(this.msgId=this.unmarshalLong(),this.innerHeader=this._unmarshalHeader())}_unmarshalHeader(){var e=this.unpack.popVarInt(),t=this.unpack.popByte(),i=this.unpack.popByte(),r=this.unpack.popShort(),s=this.unpack.popByte(),n=200;return this.hasRescode(s)&&(n=this.unpack.popShort()),{packetLength:e,serviceId:t,commandId:i,serialId:r,tag:s,resCode:n}}hasRescode(e){return 0!=((e=e||this.tag)&Ft.RES_CODE)}getHeader(){return{packetLength:this.packetLength,sid:this.serviceId,cid:this.commandId,ser:this.serialId,code:this.resCode}}getInnerHeader(){return this.innerHeader?{sid:this.innerHeader.serviceId,cid:this.innerHeader.commandId}:null}unmarshalProperty(){var e=this.unpack.popVarInt(),t={};this.bodyArr.push(`\nProperty(${e}) {`);for(var i=0;i0&&this.packetLength>this.unpack.length())throw new Error(`UnpackException packetLength(${this.packetLength}) greater than bufferLength(${this.unpack.length()})`);var i=[];return e&&e.forEach(e=>{if(!this.unpack.checkBufferBoundaryAccess())switch(e.type){case"PropertyArray":i.push(this.unmarshalPropertyArray());break;case"Property":i.push(this.unmarshalProperty());break;case"Byte":i.push(this.unpack.popByte());break;case"Int":i.push(this.unpack.popInt());break;case"Bool":i.push(this.unpack.popBoolean());break;case"Long":i.push(this.unmarshalLong());break;case"LongArray":i.push(this.unmarshalLongArray());break;case"String":i.push(this.unpack.popString());break;case"StrArray":i.push(this.unmarshalStrArray());break;case"StrStrMap":i.push(this.unmarshalStrStrMap());break;case"StrLongMap":i.push(this.unmarshalStrLongMap());break;case"LongLongMap":i.push(this.unmarshalLongLongMap());break;case"KVArray":i.push(this.unmarshalKVArray())}}),this.innerHeader?t.r[1].body=i:t.r=i,JSON.stringify(t)}}Ft.RES_CODE=2;class Bt{constructor(){this.offset=0,this.pageSize=1024,this.capacity=1048576,this.buffer=new Uint8Array(this.pageSize),this.view=new DataView(this.buffer.buffer)}reset(){this.offset=0,this.buffer=null,this.view=null}size(){return this.offset}getBuffer(){return this.buffer.slice(0,this.offset).buffer}ensureCapacity(e){var t=this.offset+e;if(t>this.capacity)throw new Error("PackException over limit");if(t>this.buffer.byteLength){var i=Math.ceil(t/this.pageSize)*this.pageSize,r=new Uint8Array(i);r.set(this.buffer),this.buffer=r,this.view=new DataView(this.buffer.buffer)}}putRaw(e){this.ensureCapacity(e.length);try{this.buffer.set(e,this.offset),this.offset+=e.length}catch(e){throw new Error("PackException raw")}}putByte(e){this.ensureCapacity(1);try{this.view.setUint8(this.offset++,e)}catch(e){throw new Error("PackException byte")}}putString(e){try{var t=function(e){if("function"==typeof TextEncoder)return(new TextEncoder).encode(e);var t=function(e){for(var t=[],i=e.length,r=0;r>n),n-=6;n>=0;)t.push(128|s>>n&63),n-=6;r+=s>=65536?2:1}return t}(e);return new Uint8Array(t)}(e);this.putVarbin(t)}catch(e){throw new Error("PackException string")}}putInt(e){this.ensureCapacity(4);try{this.view.setInt32(this.offset,e,!0),this.offset+=4}catch(e){throw new Error("PackException int")}}putVarInt(e){var t=Ut(e);this.putRaw(t)}putBoolean(e){this.ensureCapacity(1);try{this.view.setUint8(this.offset++,e?1:0)}catch(e){throw new Error("PackException boolean")}}putLong(e){this.ensureCapacity(8);try{var t=function(e,t=!1){var i=new Uint8Array(8),r=new DataView(i.buffer),s=Number(e>wt-1?e/wt:0),n=Number(4294967295&e),[o,a]=t?[4,0]:[0,4];return r.setUint32(o,s,t),r.setUint32(a,n,t),i}(e,!0);this.buffer.set(t,this.offset),this.offset+=8}catch(e){throw new Error("PackException long")}}putStringAsLong(e){this.ensureCapacity(8);try{var t=function(e,t=!1){var i=new Uint8Array(8),r=new DataView(i.buffer),s=Pt(e).divide(wt).number.reverse().join(""),n=Pt(e).mod(wt).number.reverse().join(""),o=Number(s),a=Number(n),[c,d]=t?[4,0]:[0,4];return r.setUint32(c,o,t),r.setUint32(d,a,t),i}(e,!0);this.buffer.set(t,this.offset),this.offset+=8}catch(e){throw new Error("PackException stringAsLong")}}putShort(e){this.ensureCapacity(2);try{this.view.setInt16(this.offset,e,!0),this.offset+=2}catch(e){throw new Error("PackException short")}}putVarbin(e){if(!e)return this.ensureCapacity(1),this.putVarInt(0);if(e.byteLength>Math.pow(2,31)-2)throw new Error("PackException varbin. too long");var t=Ut(e.length);this.ensureCapacity(t.length+e.length);try{this.buffer.set(t,this.offset),this.offset+=t.length,this.buffer.set(e,this.offset),this.offset+=e.length}catch(e){throw new Error("PackException varbin")}}}function jt(e){if("number"!=typeof e){if(null==e)return!1;e=Number(e)}if(isNaN(e))throw new Error("Number type conversion error");return!0}function Gt(e){return null==e}class $t{constructor(e,t,i){this.pack=new Bt,this.packetLength=0,this.serviceId=0,this.commandId=0,this.serialId=0,this.tag=0,this.serviceId=e,this.commandId=t,this.serialId=i}marshalHeader(){this.pack.putVarInt(this.packetLength),this.pack.putByte(this.serviceId),this.pack.putByte(this.commandId),this.pack.putShort(this.serialId),this.pack.putByte(this.tag)}marshalProperty(e){var t=Object.keys(e).filter(e=>!Gt(e));this.pack.putVarInt(t.length),t.forEach(t=>{this.pack.putVarInt(Number(t)),Array.isArray(e[t])||"[object Object]"===Object.prototype.toString.call(e[t])?this.pack.putString(JSON.stringify(e[t])):this.pack.putString(String(e[t]))})}marshalPropertyArray(e){var t=e.length;this.pack.putVarInt(t),e.forEach(e=>{this.marshalProperty(null==e?void 0:e.v)})}marshalStrArray(e){var t=e.filter(e=>!Gt(e)),i=t.length;this.pack.putVarInt(i),t.forEach(e=>{this.pack.putString(String(e))})}marshalLongArray(e){var t=e.filter(e=>jt(e)),i=t.length;this.pack.putVarInt(i),t.forEach(e=>{this.putLong(e)})}marshalStrStrMap(e){var t=Object.keys(e).filter(t=>!Gt(e[t])&&!Gt(t));this.pack.putVarInt(t.length),t.forEach(t=>{this.pack.putString(String(t)),this.pack.putString(String(e[t]))})}marshalStrLongMap(e){var t=Object.keys(e).filter(t=>jt(e[t])&&!Gt(t));this.pack.putVarInt(t.length),t.forEach(t=>{this.pack.putString(String(t)),this.putLong(e[t])})}marshalLongLongMap(e){var t=Object.keys(e).filter(t=>{var i=Number(t);return jt(i)&&jt(e[i])});this.pack.putVarInt(t.length),t.forEach(t=>{var i=Number(t);this.putLong(i),this.putLong(e[i])})}marshalKVArray(e){var t=e.length;this.pack.putVarInt(t),e.forEach(e=>{this.marshalStrStrMap(e)})}putLong(e){"string"==typeof e&&e.length>15?this.pack.putStringAsLong(e):this.pack.putLong(Number(e))}marshal(e,t){return this.marshalHeader(),t&&t.forEach((t,i)=>{var r,s=t.type,n=null===(r=e[i])||void 0===r?void 0:r.v;if(!Gt(n))switch(s){case"PropertyArray":this.marshalPropertyArray(n);break;case"Property":this.marshalProperty(n);break;case"Byte":if(!jt(n))return;this.pack.putByte(Number(n));break;case"Int":if(!jt(n))return;this.pack.putInt(Number(n));break;case"Bool":"false"===n?n=!1:"true"===n&&(n=!0),this.pack.putBoolean(n);break;case"Long":if(!jt(n))return;this.putLong(n);break;case"LongArray":this.marshalLongArray(n);break;case"String":this.pack.putString(String(n));break;case"StrArray":this.marshalStrArray(n);break;case"StrStrMap":this.marshalStrStrMap(n);break;case"StrLongMap":this.marshalStrLongMap(n);break;case"LongLongMap":this.marshalLongLongMap(n);break;case"KVArray":this.marshalKVArray(n)}}),this.pack.getBuffer()}reset(){this.pack.reset()}}class Ht extends ne{constructor(e,t,i){super(),this.websocket=null,this.socketConnectTimer=0,this.linkSSL=!0,this.url="",this.core=e,this.url=t,this.linkSSL=i,this.status="disconnected",this.logger=e.logger,this.connect()}connect(){"connecting"!==this.status&&"connected"!==this.status?(this.status="connecting",this._createWebsocket(`${this.linkSSL?"wss":"ws"}://${this.url}/websocket`)):this.logger.warn("imsocket::socket is connecting or connected",this.status)}close(){if(this.status="disconnected",this.websocket){this.logger.log("imsocket:: close websocket");try{this.websocket.close()}catch(e){this.logger.warn("imsocket::attempt to close websocket error",e)}this.clean(),this.emit("disconnect")}}clean(){this.status="disconnected",clearTimeout(this.socketConnectTimer),this.websocket&&(this.socketUrl=void 0,this.websocket.onmessage=null,this.websocket.onopen=null,this.websocket.onerror=null,this.websocket.onclose=null,this.websocket=null)}onConnect(){this.status="connected",this.emit("connect"),clearTimeout(this.socketConnectTimer)}_createWebsocket(e){this.socketConnectTimer=setTimeout(()=>{this.logger.error("imsocket::Websocket connect timeout. url: ",e),this.emit("connectFailed",new pe({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CONNECT_TIMEOUT:415,detail:{reason:`imsocket::Websocket connect timeout. url: ${e}`}}))},this.core.options.socketConnectTimeout||8e3),this.socketUrl=e,this.websocket=new Oe.WebSocket(e),this.websocket.binaryType="arraybuffer",this.websocket.onmessage=this.onMessage.bind(this),this.websocket.onclose=e=>{e=e||{},this.logger.log(`imsocket::Websocket onclose done ${e.wasClean}/${e.code}/${e.reason}`),"connected"===this.status?(this.clean(),this.emit("disconnect")):(this.clean(),this.emit("connectFailed",new pe({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CONNECT_FAILED:414,detail:{reason:"imsocket::Websocket onclose done"}})))},this.websocket.onerror=e=>{this.logger.error("imsocket::Websocket onerror",e),"connected"===this.status?(this.clean(),this.emit("disconnect")):(this.clean(),this.emit("connectFailed",new pe({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CONNECT_FAILED:414,detail:{reason:"imsocket::Websocket onerror."}})))},this.websocket.onopen=()=>{this.onConnect()}}onMessage(e){if(e.data){var t=new Ft(e.data),i={sid:-1,cid:-1,ser:-1,packetLength:-1},r=null;try{t.unmarshalHeader(),i=t.getHeader(),r=t.getInnerHeader()}catch(t){this.reportBinaryError({err:t,sid:r?r.sid:null==i?void 0:i.sid,cid:r?r.cid:null==i?void 0:i.cid,rawBuf:e.data,type:"decode"})}var s=r?r.sid:i.sid,n=r?r.cid:i.cid,o=`${s}_${n}`,a=ct[o];if(a&&a.length>0){var c,d=a[0].config;try{c=t.unmarshal(d.response)}catch(r){var l=t.getBodyDetail();this.reportBinaryError({err:r,rawBuf:e.data,sid:s,cid:n,parseDetail:l,type:"decode"}),t.reset();var h=Object.assign(Object.assign({},i),{sid:s,cid:n,code:de.V2NIM_ERROR_CODE_UNPACK_ERROR});return this.logger.error(`imsocket::onMessage "${h.sid}_${h.cid}", ser ${h.ser}, packetLength ${h.packetLength} unmarshal error. ${l} \n`,r),void this.emit("message",JSON.stringify(h))}this.emit("message",c)}else this.core.logger.warn("imsocket::onMessage cmd not found",o);t.reset()}}send(e,t,i,r,s){var n,o,a=new $t(e,t,i),c=at[r],d="";try{d=JSON.stringify(s),o=a.marshal(JSON.parse(d),c.params)}catch(r){throw this.reportBinaryError({err:r,sid:e,cid:t,rawStr:d,type:"encode"}),a.reset(),new pe({code:de.V2NIM_ERROR_CODE_PACK_ERROR,detail:{reason:`${e}-${t}, ser ${i} marshal error`,rawError:r}})}null===(n=this.websocket)||void 0===n||n.send(o),a.reset()}reportBinaryError(e){var t,i,r,{err:s,rawStr:n,sid:o,cid:a,type:c,parseDetail:d}=e,l=e.rawBuf;if(l){try{r=function(e){if("function"!=typeof btoa)return"";for(var t="",i=new Uint8Array(e),r=i.byteLength,s=0;s{this.isReconnect=!0})}setSessionId(e){this.socket&&(this.socket.sessionId=e)}setLinkSSL(e){this.linkSSL=e}connect(e,t=!1){var i,r;return Te(this,void 0,void 0,function*(){this.isReconnect=t;var s=this.core.auth.getConnectStatus();if(1===s){var n=`clientSocket::connect status is ${s}, and would not repeat connect`,o=new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:n}});return this.logger.warn(n),Promise.reject(o)}this.auth.lifeCycle.processEvent("connect");try{yield this.auth.doLoginStepsManager.add(this.doConnect(e)),this.logger.log(`clientSocketV2:: connect success with link url: ${e}, isReconnect: ${t}`),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:e,code:200,mixlink:!0,succeed:!0},{asyncParams:Oe.net.getNetworkStatus()}),this.auth.lifeCycle.processEvent("connectSucc")}catch(t){var a=t;if(this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:e,code:a.code||0,description:`connectFailed:${a.message}`,mixlink:!0,succeed:!1},{asyncParams:Oe.net.getNetworkStatus()}),a.code===de.V2NIM_ERROR_CODE_CANCELLED||a.code===de.V2NIM_ERROR_CODE_TIMEOUT)throw null===(i=this.socket)||void 0===i||i.close(),null===(r=this.socket)||void 0===r||r.removeAllListeners(),this.socket=void 0,t;throw this.logger.warn(`clientSocketV2::connect failed with link url: ${e}`,a),this.auth.lifeCycle.processEvent("connectFail",a),t}})}doConnect(e){var t=!1;return new Promise((i,r)=>{this.socket=new Ht(this.core,e,this.linkSSL),this.socket.on("connect",()=>{this.logger.log("clientSocketV2::socket on connect",e),this.core.reporterHookLinkKeep.start(),this.core.reporterHookLinkKeep.update({code:0,description:"connection begin",operation_type:0,target:e}),t=!0,i()}),this.socket.on("message",this.onMessage.bind(this)),this.socket.on("disconnect",i=>Te(this,void 0,void 0,function*(){t=!0,this.logger.log(`clientSocketV2::socket on disconnect ${e}`,i),yield this.core.reporterHookLinkKeep.update({code:(null==i?void 0:i.code)||0,description:(null==i?void 0:i.reason)||"socket on disconnect",operation_type:1,target:e}),this.core.reporterHookLinkKeep.end(!1),this.doDisconnect(Dt.OFFLINE,"SocketOnDisconnect")})),this.socket.on("connectFailed",i=>{t?this.ping():(this.logger.error(`clientSocketV2::connectFailed:${e}, reason:${i&&i.message}`),this.cleanSocket()),t=!0,r(i)})})}cleanSocket(){this.socket&&("function"==typeof this.socket.removeAllListeners&&this.socket.removeAllListeners(),"function"==typeof this.socket.close&&this.socket.close(),this.socket=void 0)}resetSocketConfig(){this.backoff.reset(),this.initOnlineListener()}doDisconnect(e,t){if(this.logger.log(`clientSocketV2::doDisconnect:type:${e},reason:`,t),0!==this.core.auth.getConnectStatus()){var i={1:"close",2:"kicked",3:"broken"}[e]||"";this.markAllCmdInvaild(new pe({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"Packet timeout due to instance disconnect",disconnect_reason:i}})),this.timerManager.destroy(),clearTimeout(this.pingTimer),this.cleanSocket(),e===Dt.ACTIVE||e===Dt.KICKED?this.destroyOnlineListener():e===Dt.OFFLINE&&(this.auth.lifeCycle.processEvent("connectionBroken",new pe({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"connection broken due to internal reasons"}})),this.logger.log(`clientSocketV2::doDisconnect: pending reconnect ${this.isReconnect}`),this.isReconnect&&this.auth.lifeCycle.processEvent("waiting"))}else this.logger.warn("clientSocketV2::doDisconnect:already disconnected")}sendCmd(e,t,i){var r=this.core.auth.getLoginStatus(),s={cmd:e};if(1!==r&&!["v2Login","login","chatroomLogin","v2ChatroomLogin"].includes(e))return this.logger.warn(`clientSocketV2::NIM login status is ${r}, so can not sendCmd ${e}`),Promise.reject(new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:Object.assign({reason:"Can not sendCmd due to no logined"},s)}));var n="heartbeat"!==e,o=n?this.packetSer++:0,a=dt(e,o,this.logger,t);if(!a){var c=new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:Object.assign(Object.assign({},s),{reason:`SendCmd::createCmd error: ${o} ${e}`})});return this.logger.error(c),Promise.reject(c)}var{packet:d,hasPacketResponse:l,hasPacketTimer:h}=a,p=JSON.stringify(d);n&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${o}`,p):this.logger.log(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${o}`));var u=(new Date).getTime();return new Promise((r,n)=>{l&&this.sendingCmdMap.set(o,{cmd:e,params:t,callback:[r,n],timer:h?setTimeout(()=>{var t=new pe({code:de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,detail:Object.assign({ser:o,reason:`Packet Timeout: ser ${o} cmd ${e}`,timetag:(new Date).getTime()},s)});this.markCmdInvalid(o,t,e)},i&&i.timeout?i.timeout:this.packetTimeout):null});try{this.socket.send(d.SID,d.CID,o,e,d.Q),l||r(d)}catch(t){var a=new pe({code:de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED,detail:Object.assign({ser:o,reason:"Unable to send packet"+(t&&t.message?": "+t.message:""),timetag:(new Date).getTime(),rawError:t},s)});this.markCmdInvalid(o,a,e),n(a)}}).catch(e=>Te(this,void 0,void 0,function*(){var t=e;return[de.V2NIM_ERROR_CODE_DISCONNECT,de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED].includes(t.code)?(this.reportSendCmdFailed(t,{sid:d.SID,cid:d.CID,ser:o},u),Promise.reject(t)):Promise.reject(t)}))}reportSendCmdFailed(e,t,i){var r;this.reporter.reportTraceStart("exceptions",{user_id:this.core.auth.getLoginUser(),trace_id:null===(r=this.socket)||void 0===r?void 0:r.sessionId,start_time:i,action:2,exception_service:6});var s=Ve(e,"detail.disconnect_reason")||"",n=e.code===de.V2NIM_ERROR_CODE_DISCONNECT?JSON.stringify({disconnect_reason:s}):e.detail.reason;this.reporter.reportTraceUpdateV2("exceptions",{code:e.code,description:n,operation_type:1,target:`${t.sid}-${t.cid}`,context:`${t.ser}`},{asyncParams:Oe.net.getNetworkStatus()}),this.reporter.reportTraceEnd("exceptions",1)}onMessage(e){var t=lt(e,this.logger);if(t&&t.length>0){var i=t[0],r=i.raw.ser;for(var s of(i.error&&(this.logger.error("clientSocketV2::onMessage packet error",`${i.raw.sid}_${i.raw.cid}, ser:${r},`,i.error),i.error.code===de.V2NIM_ERROR_CODE_UNPACK_ERROR&&this.core.eventBus.emit("BinaryClientSocket/unpackError")),"heartbeat"!==i.cmd&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::recvCmd ${i.raw.sid}_${i.raw.cid},${i.cmd},ser:${r}`,e):this.logger.log(`clientSocketV2::recvCmd ${i.raw.sid}_${i.raw.cid},${i.cmd},ser:${r},code:${i.raw.code}`)),t))this.packetHandler(s)}}packetHandler(e){var t,i,r,s;if(e){var n=e.raw.ser,o=this.sendingCmdMap.get(n);if(o&&o.cmd===e.cmd){var{callback:a,timer:c,params:d}=o;if(clearTimeout(c),e.params=d,this.sendingCmdMap.delete(n),"heartbeat"===e.cmd)return void a[0]();var l=null===(i=null===(t=this.core[e.service])||void 0===t?void 0:t.process)||void 0===i?void 0:i.call(t,e);l&&"function"==typeof l.then?l.then(e=>{a[0](e)}).catch(e=>{a[1](e)}):(this.logger.log("clientSocketV2::handlerFn without promise",e.service,e.cmd),a[0](e))}else{var h=null===(s=null===(r=this.core[e.service])||void 0===r?void 0:r.process)||void 0===s?void 0:s.call(r,e);h&&"function"==typeof h.then&&h.catch(e=>{this.logger.error("clientSocketV2::no obj cache, no process handler",e)})}}}markCmdInvalid(e,t,i){var r=this.sendingCmdMap.get(e);if(r){var{callback:s,timer:n}=r;n&&clearTimeout(n),this.sendingCmdMap.delete(e),this.logger.warn(`clientSocketV2::packet ${e}, ${i} is invalid:`,t),s[1](t)}}markAllCmdInvaild(e){this.logger.log("markAllCmdInvaild",e),this.sendingCmdMap.forEach(t=>{var{callback:i,timer:r,cmd:s}=t;this.logger.log(`clientSocketV2::markAllCmdInvaild:cmd ${s}`),r&&clearTimeout(r),i[1](e)}),this.sendingCmdMap.clear()}ping(){var e;return Te(this,void 0,void 0,function*(){clearTimeout(this.pingTimer);try{yield this.sendCmd("heartbeat")}catch(t){if(t.code===de.V2NIM_ERROR_CODE_DISCONNECT)return;if(yield this.testHeartBeat5Timeout())return yield this.core.reporterHookLinkKeep.update({code:0,description:"Heartbeat-discovered link failure",operation_type:1,target:null===(e=this.socket)||void 0===e?void 0:e.url}),this.core.reporterHookLinkKeep.end(!0),void this.doDisconnect(Dt.OFFLINE,"PingError")}this.pingTimer=setTimeout(()=>{this.ping()},3e4)})}testHeartBeat5Timeout(){return Te(this,void 0,void 0,function*(){clearTimeout(this.pingTimer);for(var e=0;e<5;e++)try{return yield this.sendCmd("heartbeat",{},{timeout:3e3}),!1}catch(t){this.logger.log(`clientSocketV2::test heartbeat ${e} Timeout`)}return!0})}initOnlineListener(){this.hasNetworkListener||(this.logger.log("clientSocketV2::onlineListener:init"),this.hasNetworkListener=!0,Oe.net.onNetworkStatusChange(e=>{this.logger.log("clientSocketV2::onlineListener:network change",e);var t=this.auth.getLoginStatus();e.isConnected&&1===t?this.ping():e.isConnected&&3===t?(this.logger.log("clientSocketV2::onlineListener:online and connectStatus is waiting, do reLogin"),this.auth.reconnect.clearReconnectTimer(),this.auth.reconnect.doReLogin()):e.isConnected||this.doDisconnect(Dt.OFFLINE,"OfflineListener")}))}destroyOnlineListener(){this.logger.log("clientSocketV2::onlineListener:destroy"),Oe.net.offNetworkStatusChange(),this.hasNetworkListener=!1}}var qt,Kt=["disconnect","connect","heartbeat","message","json","event","ack","error","noop"],Wt=["transport not supported","client not handshaken","unauthorized"],Jt=["reconnect"];class zt extends ne{constructor(e,t,i){super(),this.websocket=null,this.socketConnectTimer=0,this.url="",this.linkSSL=!0,this.core=e,this.url=t,this.linkSSL=i,this.status="disconnected",this.logger=e.logger,this.connect()}connect(){"connecting"!==this.status&&"connected"!==this.status?(this.status="connecting",this.core.adapters.request(`${this.linkSSL?"https":"http"}://${this.url}/socket.io/1/?t=${Date.now()}`,{method:"GET",dataType:"text",timeout:this.core.options.xhrConnectTimeout||8e3},{exception_service:6}).then(e=>{if("connecting"===this.status){var[t,i]=e.data.split(":");return this.sessionId=t,this.logger.log(`imsocket::XHR success. status ${this.status}, ${"connecting"===this.status?"continue websocket connection":"stop websocket connection"}`),this._createWebsocket(`${this.linkSSL?"wss":"ws"}://${this.url}/socket.io/1/websocket/${t}`)}}).catch(e=>{if("connecting"===this.status){var t=`imsocket::XHR fail. raw message: "${(e=e||{}).message}", code: "${e.code}"`,i=e.code;i="v2"===Ve(this.core,"options.apiVersion")?e.code===de.V2NIM_ERROR_CODE_CONNECT_TIMEOUT?de.V2NIM_ERROR_CODE_CONNECT_TIMEOUT:de.V2NIM_ERROR_CODE_CONNECT_FAILED:408===e.code?408:415;var r=new pe({code:i,detail:{reason:t,rawError:e}});this.logger.error(t),this.status="disconnected",this.emit("handshakeFailed",r)}})):this.logger.warn("imsocket::socket is connecting or connected",this.status)}close(){if(this.status="disconnected",this.websocket){this.logger.log("imsocket:: close websocket");try{this.websocket.send(this.encodePacket({type:"disconnect"}))}catch(e){this.logger.warn("imsocket::attempt to send encodePacket error",e)}try{this.websocket.close()}catch(e){this.logger.warn("imsocket::attempt to close websocket error",e)}this.clean(),this.emit("disconnect",{code:0,reason:"Active close websocket"})}}clean(){this.status="disconnected",clearTimeout(this.socketConnectTimer),this.websocket&&(this.socketUrl=void 0,this.websocket.onmessage=null,this.websocket.onopen=null,this.websocket.onerror=null,this.websocket.onclose=null,this.websocket=null)}onConnect(){this.status="connected",this.emit("connect"),clearTimeout(this.socketConnectTimer)}_createWebsocket(e){this.socketConnectTimer=setTimeout(()=>{this.logger.error("imsocket::Websocket connect timeout. url: ",this.socketUrl),this.emit("handshakeFailed",new pe({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CONNECT_TIMEOUT:415,detail:{reason:`imsocket::Websocket connect timeout. url: ${this.socketUrl}`}}))},this.core.options.socketConnectTimeout||8e3),this.socketUrl=e,this.websocket=new Oe.WebSocket(e),this.websocket.onmessage=this.onMessage.bind(this),this.websocket.onclose=e=>{e=e||{},this.logger.log(`imsocket::Websocket onclose done ${e.wasClean}/${e.code}/${e.reason}`),this.clean(),this.emit("disconnect",{code:e.code||0,reason:e.reason})},this.websocket.onerror=e=>{this.logger.error("imsocket::Websocket onerror",e),"logined"===this.core.status&&this.core.clientSocket.ping()}}onMessage(e){var t,i=this.decodePacket(e.data);if(i)switch(i.type){case"connect":this.onConnect();break;case"disconnect":this.close(),this.emit("disconnect",{code:0,reason:"MessageEvent type disconnect"});break;case"message":case"json":this.emit("message",i.data);break;case"event":i.name&&this.emit(i.name,i.args);break;case"error":"unauthorized"===i.reason?this.emit("connect_failed",i.reason):this.emit("error",i.reason),this.logger.error("imsocket::Websocket connect failed, onmessage type error. url: ",this.socketUrl),clearTimeout(this.socketConnectTimer),this.emit("handshakeFailed",new pe({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CONNECT_FAILED:408,detail:{reason:`imsocket::Websocket connect failed, onMessage socket error. url: ${this.socketUrl}`}}));break;case"heartbeat":null===(t=this.websocket)||void 0===t||t.send(this.encodePacket({type:"heartbeat"}));break;default:this.logger.warn("imsocket::Websocket no handler type",i.type)}}encodePacket(e){var t,i,{type:r,id:s="",endpoint:n="",ack:o}=e,a=null;if(!r)return"";switch(r){case"error":t=e.reason?Wt.indexOf(e.reason):"",i=e.advice?Jt.indexOf(e.advice):"",""===t&&""===i||(a=t+(""!==i?"+"+i:""));break;case"message":""!==e.data&&(a=e.data);break;case"event":t={name:e.name},t=e.args&&e.args.length?{name:e.name,args:e.args}:{name:e.name},a=JSON.stringify(t);break;case"json":a=JSON.stringify(e.data);break;case"connect":e.qs&&(a=e.qs);break;case"ack":a=e.ackId+(e.args&&e.args.length?"+"+JSON.stringify(e.args):"")}var c=[Kt.indexOf(r),s+("data"===o?"+":""),n];return null!=a&&c.push(a),c.join(":")}decodePacket(e){if(e)if("�"!=e.charAt(0)){var t=e.match(/([^:]+):([0-9]+)?(\+)?:([^:]+)?:?([\s\S]*)?/);if(t){var i,[,r,s,n,o,a]=t,c={type:Kt[+r],endpoint:o};switch(s&&(c.id=s,c.ack=!n||"data"),c.type){case"error":i=a.split("+"),c.reason=Wt[+i[0]]||"";break;case"message":c.data=a||"";break;case"connect":c.qs=a||"";break;case"event":try{var d=JSON.parse(a);c.name=d.name,c.args=d.args}catch(e){this.logger.error("imsocket::parseData::type::event error",e)}c.args=c.args||[];break;case"json":try{c.data=JSON.parse(a)}catch(e){this.logger.error("imsocket::parseData::type::json error",e)}break;case"ack":if((i=a.match(/^([0-9]+)(\+)?(.*)/))&&(c.ackId=i[1],c.args=[],i[3]))try{c.args=i[3]?JSON.parse(i[3]):[]}catch(e){this.logger.error("imsocket::parseData::type::ack error",e)}}return c}}else this.logger.error("imsocket::unrecognize dataStr",e.slice(0,20))}send(e){var t,i={data:e,type:"message",endpoint:""};null===(t=this.websocket)||void 0===t||t.send(this.encodePacket(i))}}!function(e){e[e.ACTIVE=1]="ACTIVE",e[e.KICKED=2]="KICKED",e[e.OFFLINE=3]="OFFLINE"}(qt||(qt={}));class Xt{constructor(e){this.isReconnect=!1,this.packetTimeout=8e3,this.linkSSL=!0,this.packetSer=1,this.backoff=new Ot({max:8e3,min:1600,jitter:.01}),this.sendingCmdMap=new Map,this.pingTimer=0,this.hasNetworkListener=!1,this.core=e,this.auth=e.auth,this.logger=e.logger,this.reporter=e.reporter,this.timerManager=e.timerManager,this.eventBus=e.eventBus,this.setListener()}setListener(){this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",()=>{this.isReconnect=!0})}setSessionId(e){this.socket&&(this.socket.sessionId=e)}setLinkSSL(e){this.linkSSL=e}connect(e,t=!1){var i,r;return Te(this,void 0,void 0,function*(){this.isReconnect=t;var s=this.core.auth.getConnectStatus();if(1===s){var n=`clientSocket::connect status is ${s}, and would not repeat connect`,o=new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:n}});return this.logger.warn(n),Promise.reject(o)}this.auth.lifeCycle.processEvent("connect");try{yield this.auth.doLoginStepsManager.add(this.doConnect(e)),this.logger.log(`clientSocketV2:: connect success with link url: ${e}, isReconnect: ${t}`),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:e,code:200,mixlink:!0,succeed:!0},{asyncParams:Oe.net.getNetworkStatus()}),this.auth.lifeCycle.processEvent("connectSucc")}catch(t){var a=t;if(this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:e,code:a.code||0,description:`connectFailed:${a.message}`,mixlink:!0,succeed:!1},{asyncParams:Oe.net.getNetworkStatus()}),a.code===de.V2NIM_ERROR_CODE_CANCELLED||a.code===de.V2NIM_ERROR_CODE_TIMEOUT)throw null===(i=this.socket)||void 0===i||i.close(),null===(r=this.socket)||void 0===r||r.removeAllListeners(),this.socket=void 0,t;throw this.logger.warn(`clientSocketV2::connect failed with link url: ${e}`,a),this.auth.lifeCycle.processEvent("connectFail",a),t}})}doConnect(e){var t=!1;return new Promise((i,r)=>{this.socket=new zt(this.core,e,this.linkSSL),this.socket.on("connect",()=>{this.logger.log("clientSocketV2::socket on connect",e),this.core.reporterHookLinkKeep.start(),this.core.reporterHookLinkKeep.update({code:0,description:"connection begin",operation_type:0,target:e}),t=!0,i()}),this.socket.on("message",this.onMessage.bind(this)),this.socket.on("disconnect",i=>Te(this,void 0,void 0,function*(){t=!0,this.logger.log("clientSocketV2::socket on disconnect",i),yield this.core.reporterHookLinkKeep.update({code:(null==i?void 0:i.code)||0,description:(null==i?void 0:i.reason)||"socket on disconnect",operation_type:1,target:e}),this.core.reporterHookLinkKeep.end(!1),this.doDisconnect(qt.OFFLINE,"SocketOnDisconnect")})),this.socket.on("handshakeFailed",e=>{t?this.ping():(this.logger.error(`clientSocketV2::handshake failed: "${e&&e.message}"`),this.cleanSocket()),t=!0,r(e)})})}cleanSocket(){this.socket&&("function"==typeof this.socket.removeAllListeners&&this.socket.removeAllListeners(),"function"==typeof this.socket.close&&this.socket.close(),this.socket=void 0)}resetSocketConfig(){this.backoff.reset(),this.initOnlineListener()}doDisconnect(e,t){if(this.logger.log(`clientSocketV2::doDisconnect:type:${e},reason:`,t),0!==this.core.auth.getConnectStatus()){var i={1:"close",2:"kicked",3:"broken"}[e]||"";this.markAllCmdInvaild(new pe({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"Packet timeout due to instance disconnect",disconnect_reason:i}})),this.timerManager.destroy(),clearTimeout(this.pingTimer),this.cleanSocket(),e===qt.ACTIVE||e===qt.KICKED?this.destroyOnlineListener():e===qt.OFFLINE&&(this.auth.lifeCycle.processEvent("connectionBroken",new pe({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"connection broken due to internal reasons"}})),this.logger.log(`clientSocketV2::doDisconnect: pending reconnect ${this.isReconnect}`),this.isReconnect&&this.auth.lifeCycle.processEvent("waiting"))}else this.logger.warn("clientSocketV2::doDisconnect:already disconnected")}sendCmd(e,t,i){var r=this.core.auth.getLoginStatus(),s={cmd:e};if(1!==r&&!["v2Login","login","chatroomLogin","v2ChatroomLogin"].includes(e))return this.logger.warn(`clientSocketV2::NIM login status is ${r}, so can not sendCmd ${e}`),Promise.reject(new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:Object.assign({reason:"Can not sendCmd due to no logined"},s)}));var n="heartbeat"!==e,o=n?this.packetSer++:0,a=dt(e,o,this.logger,t);if(!a){var c=new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:Object.assign(Object.assign({},s),{reason:`SendCmd::createCmd error: ${o} ${e}`})});return this.logger.error(c),Promise.reject(c)}var{packet:d,hasPacketResponse:l,hasPacketTimer:h}=a,p=JSON.stringify(d);n&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${o}`,p):this.logger.log(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${o}`));var u=(new Date).getTime();return new Promise((r,n)=>{l&&this.sendingCmdMap.set(o,{cmd:e,params:t,callback:[r,n],timer:h?setTimeout(()=>{var t=new pe({code:de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,detail:Object.assign({ser:o,reason:`Packet Timeout: ser ${o} cmd ${e}`,timetag:(new Date).getTime()},s)});this.markCmdInvalid(o,t,e)},i&&i.timeout?i.timeout:this.packetTimeout):null});try{this.socket.send(p),l||r(d)}catch(t){var a=new pe({code:de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED,detail:Object.assign({ser:o,reason:"Unable to send packet"+(t&&t.message?": "+t.message:""),timetag:(new Date).getTime(),rawError:t},s)});this.markCmdInvalid(o,a,e),n(a)}}).catch(e=>Te(this,void 0,void 0,function*(){var t,i=e;if(![de.V2NIM_ERROR_CODE_DISCONNECT,de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED].includes(i.code))return Promise.reject(i);this.reporter.reportTraceStart("exceptions",{user_id:this.core.auth.getLoginUser(),trace_id:null===(t=this.socket)||void 0===t?void 0:t.sessionId,start_time:u,action:2,exception_service:6});var r=Ve(i,"detail.disconnect_reason")||"",s=i.code===de.V2NIM_ERROR_CODE_DISCONNECT?JSON.stringify({disconnect_reason:r}):i.detail.reason;return this.reporter.reportTraceUpdateV2("exceptions",{code:i.code,description:s,operation_type:1,target:`${d.SID}-${d.CID}`,context:`${d.SER}`},{asyncParams:Oe.net.getNetworkStatus()}),this.reporter.reportTraceEnd("exceptions",1),Promise.reject(i)}))}onMessage(e){var t=lt(e,this.logger);if(t&&t.length>0){var i=t[0],r=i.raw.ser;for(var s of(i.error&&this.logger.error("clientSocketV2::onMessage packet error",`${i.raw.sid}_${i.raw.cid}, ser:${r},`,i.error),"heartbeat"!==i.cmd&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::recvCmd ${i.raw.sid}_${i.raw.cid},${i.cmd},ser:${r}`,i.content):this.logger.log(`clientSocketV2::recvCmd ${i.raw.sid}_${i.raw.cid},${i.cmd},ser:${r};code:${i.raw.code}`)),t))this.packetHandler(s)}}packetHandler(e){var t,i,r,s;if(e){var n=e.raw.ser,o=this.sendingCmdMap.get(n);if(o&&o.cmd===e.cmd){var{callback:a,timer:c,params:d}=o;if(clearTimeout(c),e.params=d,this.sendingCmdMap.delete(n),"heartbeat"===e.cmd)return void a[0]();var l=null===(i=null===(t=this.core[e.service])||void 0===t?void 0:t.process)||void 0===i?void 0:i.call(t,e);l&&"function"==typeof l.then?l.then(e=>{a[0](e)}).catch(e=>{a[1](e)}):(this.logger.log("clientSocketV2::handlerFn without promise",e.service,e.cmd),a[0](e))}else{var h=null===(s=null===(r=this.core[e.service])||void 0===r?void 0:r.process)||void 0===s?void 0:s.call(r,e);h&&"function"==typeof h.then&&h.catch(e=>{this.logger.error("clientSocketV2::no obj cache, no process handler",e)})}}}markCmdInvalid(e,t,i){var r=this.sendingCmdMap.get(e);if(r){var{callback:s,timer:n}=r;n&&clearTimeout(n),this.sendingCmdMap.delete(e),this.logger.warn(`clientSocketV2::packet ${e}, ${i} is invalid:`,t),s[1](t)}}markAllCmdInvaild(e){this.logger.log("markAllCmdInvaild",e),this.sendingCmdMap.forEach(t=>{var{callback:i,timer:r,cmd:s}=t;this.logger.log(`clientSocketV2::markAllCmdInvaild:cmd ${s}`),r&&clearTimeout(r),i[1](e)}),this.sendingCmdMap.clear()}ping(){var e;return Te(this,void 0,void 0,function*(){clearTimeout(this.pingTimer);try{yield this.sendCmd("heartbeat")}catch(t){if(t.code===de.V2NIM_ERROR_CODE_DISCONNECT)return;if(yield this.testHeartBeat5Timeout())return yield this.core.reporterHookLinkKeep.update({code:0,description:"Heartbeat-discovered link failure",operation_type:1,target:null===(e=this.socket)||void 0===e?void 0:e.url}),this.core.reporterHookLinkKeep.end(!0),void this.doDisconnect(qt.OFFLINE,"PingError")}this.pingTimer=setTimeout(()=>{this.ping()},3e4)})}testHeartBeat5Timeout(){return Te(this,void 0,void 0,function*(){clearTimeout(this.pingTimer);for(var e=0;e<5;e++)try{return yield this.sendCmd("heartbeat",{},{timeout:3e3}),!1}catch(t){this.logger.log(`clientSocketV2::test heartbeat ${e} Timeout`)}return!0})}initOnlineListener(){this.hasNetworkListener||(this.logger.log("clientSocketV2::onlineListener:init"),this.hasNetworkListener=!0,Oe.net.onNetworkStatusChange(e=>{this.logger.log("clientSocketV2::onlineListener:network change",e);var t=this.auth.getConnectStatus(),i=this.auth.getLoginStatus();e.isConnected&&1===i?this.ping():e.isConnected&&3===t?(this.logger.log("clientSocketV2::onlineListener:online and connectStatus is waiting, do reLogin"),this.auth.reconnect.clearReconnectTimer(),this.auth.reconnect.doReLogin()):e.isConnected||this.doDisconnect(qt.OFFLINE,"OfflineListener")}))}destroyOnlineListener(){this.logger.log("clientSocketV2::onlineListener:destroy"),Oe.net.offNetworkStatusChange(),this.hasNetworkListener=!1}}class Qt{constructor(e){var t,i;this.currenRetryCount=0,this.backoff=new Ot({max:8e3,min:1600,jitter:.01}),this.reconnectTimer=0,this.core=e,this.auth=e.V2NIMLoginService,null===(i=(t=Oe.powerMonitor).on)||void 0===i||i.call(t,"onPowerMonitorTurnActive",()=>{this.core.logger.debug("reconnect::powerMonitor turn active"),3===this.auth.getLoginStatus()&&(this.core.logger.log("reconnect::powerMonitor turn active, try to reconnect"),this.auth.reconnect.clearReconnectTimer(),this.auth.reconnect.doReLogin())})}reset(){this.currenRetryCount=0,this.backoff.reset(),this.reconnectTimer&&clearTimeout(this.reconnectTimer)}destroy(){var e,t;this.currenRetryCount=0,this.backoff.reset(),this.reconnectTimer&&clearTimeout(this.reconnectTimer),Oe.powerMonitor.destroy(),null===(t=(e=Oe.powerMonitor).off)||void 0===t||t.call(e,"onPowerMonitorTurnActive")}clearReconnectTimer(){this.reconnectTimer&&clearTimeout(this.reconnectTimer)}attempToReLogin(){var e=this.backoff.duration();if("function"==typeof this.reconnectDelayProvider)try{var t=this.reconnectDelayProvider(e);"number"==typeof t&&t>=0&&(e=t>=1e3?t:t+200+Math.ceil(300*Math.random()))}catch(e){this.core.logger.error("reconnect::connectDelayProvider excute failed,",e)}return this.currenRetryCount++,this.core.logger.log(`reconnect::reconnect timer is about to be set, delay ${e} ms, current retry count is ${this.currenRetryCount}`),this.core.reporter.reportTraceStart("login",{user_id:this.auth.getLoginUser(),action:"auto_login",binary_websocket:this.auth.binaryWebsocket}),this.clearReconnectTimer(),this.reconnectTimer=setTimeout(()=>{this.core.logger.log("reconnect::reconnect timer is now triggered");var e=this.auth.getConnectStatus();3===e?this.doReLogin():this.core.logger.warn(`reconnect::reconnect timer is over because connect status now is ${e}`)},e),!0}doReLogin(){if(!Oe.powerMonitor.isActive())return this.core.logger.log("reconnect::reLogin skip, cause app powerMonitor is not active"),void this.auth.lifeCycle.processEvent("waiting");this.auth.loginOption.forceMode=!1,this.auth.originLoginPromise=this.auth.doLogin(!0);var e=this.auth.previousLoginManager.add(this.auth.originLoginPromise);return e.then(()=>{this.core.reporter.reportTraceEnd("login",!0)}).catch(e=>{var t=e;if(this.core.logger.warn("reconnect::try login but failed due to",t),this.core.reporter.reportTraceEnd("login",!1),this.auth.checkLoginTerminalCode(t&&t.code))return this.auth.clientSocket.doDisconnect(Dt.ACTIVE,"ReloginTerminated"),void this.auth.lifeCycle.processEvent("exited",t);t&&399===t.code&&this.auth.lbs.reset(),this.auth.lifeCycle.processEvent("waiting")}),e}_setReconnectDelayProvider(e){this.reconnectDelayProvider=e}}function Zt(e){e=e||[];for(var t=[],i=0;i0){var e=this.socketLinkUrls.shift();return this.core.logger.log("V2NIMLoginService::getLbsInfos:use cache link",e),Promise.resolve(e)}this.auth.lifeCycle.processEvent("addressing"),this.core.reporterHookLBS.start(this.core.account);var t=Zt(this.auth.config.lbsUrls);try{var i=yield this.ladderLoad(t);if(200!==i.status||!i.data)throw this.core.logger.error("V1NIMLoginService::getLbsInfos:error status",i.status,i),new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:`V2NIMLoginService::getLbsInfos failed, status ${i.status}`}});this.success(i)}catch(e){var r=e;if(this.core.logger.error(`V2NIMLoginService::lbs getLbsInfos error, use default link: ${this.auth.config.linkUrl}. error:`,e),this.reportForFail(t[0],r.code,r.message),this.checkTerminator(r.code))throw e;this.socketLinkUrls=[this.auth.config.linkUrl]}return this.socketLinkUrls.shift()})}checkTerminator(e){return e===de.V2NIM_ERROR_CODE_CANCELLED||e===de.V2NIM_ERROR_CODE_TIMEOUT}generateUrl(e){var t=(e=this.processLbsUrl(e)).indexOf("?")>-1?"&":"?";return e+t+"k="+this.core.options.appkey+"&id="+this.core.auth.getLoginUser()+"&sv=180&pv=1&networkType=0&lv=1"}processLbsUrl(e){return we()?e.replace("/webconf","/wxwebconf"):e}requstLbs(e){return this.auth.doLoginStepsManager.add(this.core.adapters.request(this.generateUrl(e),{method:"GET",dataType:"json",timeout:8e3}))}setLadderTimer(e,t,i,r){this.timer&&clearTimeout(this.timer);var s=e[t];this.timer=setTimeout(()=>{s&&(this.setLadderTimer(e,t+1,i,r),this.core.logger.log(`V2NIMLoginService::getLbsInfos ${t}:`,this.processLbsUrl(s)),this.reportForLbsStart(s,t),this.requstLbs(s).then(e=>{this.reset(),i(Object.assign(Object.assign({},e),{url:s}))}).catch(i=>{var n;if(this.core.logger.warn(`V2NIMLoginService::getLbsInfos ${t} failed:`,i),this.failedCount+=1,this.reportForFailOnce(s,i.code,(null===(n=i.detail)||void 0===n?void 0:n.reason)||i.message),this.failedCount>=e.length||this.checkTerminator(i.code))return this.reset(),void r(i)}))},2e3)}ladderLoad(e){return new Promise((t,i)=>{e.length>1&&this.setLadderTimer(e,1,t,i);var r=e[0];this.core.logger.log("V2NIMLoginService::getLbsInfos 0:",r),this.reportForLbsStart(r,0),this.requstLbs(r).then(e=>{this.reset(),t(Object.assign(Object.assign({},e),{url:r}))}).catch(t=>{var s;this.failedCount+=1,this.core.logger.warn("V2NIMLoginService::getLbsInfos 0 failed:",t),this.reportForFailOnce(r,t.code,(null===(s=t.detail)||void 0===s?void 0:s.reason)||t.message),(this.failedCount>=e.length||this.checkTerminator(t.code))&&(this.reset(),i(t))})})}success(e){var t,i,r=e.data.common,s=r["mix.link"]||[],n=r["link.default"]||[];this.socketLinkUrls=s.concat(n).concat(this.auth.config.linkUrl),e.data["nos-chunk"]&&(null===(t=this.core.cloudStorage)||void 0===t?void 0:t.setOptions)&&(this.core.logger.log("getLbsInfos success. lbs.nos-chunk",e.data["nos-chunk"]),this.core.cloudStorage.setOptions({chunkUploadHost:e.data["nos-chunk"]})),Array.isArray(e.data.nosup)&&e.data.nosup.length>0&&(null===(i=this.core.cloudStorage)||void 0===i?void 0:i.setOptions)&&(this.core.logger.log("getLbsInfos success. lbs.nosup",e.data.nosup),this.core.cloudStorage.setOptions({commonUploadHostBackupList:e.data.nosup,commonUploadHost:e.data.nosup[0]})),this.core.logger.log("V2NIMLoginService::getLbsInfos success, socket link:",this.socketLinkUrls.slice(0),"chunkUploadHost: ",e.data["nos-chunk"]),this.reportForLbsSuccess(e.url,e.data)}reportForLbsStart(e,t){this.core.reporterHookLBS.updateBegin({target:e,index:t})}reportForLbsSuccess(e,t){this.core.reporterHookLBS.updateComplete({target:e,code:200,body:JSON.stringify(t)}),this.core.reporterHookLBS.end(!0),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"HTTP",target:e,code:200,succeed:!0},{asyncParams:Oe.net.getNetworkStatus()})}reportForFailOnce(e,t,i){this.core.reporterHookLBS.updateComplete({target:e,code:t,body:i})}reportForFail(e,t,i){this.core.reporterHookLBS.end(!1),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"HTTP",target:e,description:i,code:t,succeed:!1},{asyncParams:Oe.net.getNetworkStatus()})}reset(){this.socketLinkUrls=[],this.failedCount=0,clearTimeout(this.timer)}}class ti{constructor(e){this.lastLoginClientKey="__NIM_LAST_LOGIN_CLIENT__",this.loginClients=[],this.loginClientOfThisConnection={},this.core=e,this.auth=e.V2NIMLoginService}verifyAuthentication(e){var t,i;return Te(this,void 0,void 0,function*(){var r=yield this.auth.doLoginStepsManager.add(this.refreshLoginToken(this.auth.account)),s=yield this.auth.doLoginStepsManager.add(this.refreshThirdPartyExt(this.auth.account));this.auth.token=r;var n,o=Oe.getSystemInfo(),a={appkey:this.core.options.appkey,account:this.auth.account,token:r,authType:this.auth.loginOption.authType,appLogin:e?0:1,clientType:16,clientSession:this.auth.clientSession,clientId:this.auth.deviceId,sdkVersion:100950,userAgent:this.core.options.loginSDKTypeParamCompat?"Native/10.9.50":o.userAgent.replace("{{appkey}}",this.core.options.appkey).slice(0,299),libEnv:this.core.options.flutterSdkVersion?"FLUTTER":this.core.options.loginSDKTypeParamCompat?void 0:o.libEnv,hostEnv:this.core.options.flutterSdkVersion?4:this.core.options.loginSDKTypeParamCompat?0:o.hostEnvEnum,sdkHumanVersion:this.core.options.flutterSdkVersion||"10.9.50",os:o.os,browser:o.browser,protocolVersion:1,customClientType:this.auth.config.customClientType,customTag:this.auth.config.customTag,thirdPartyExtension:s,isRoutable:!1===(null===(t=this.auth.loginOption.routeConfig)||void 0===t?void 0:t.routeEnabled)?0:1,env:null===(i=this.auth.loginOption.routeConfig)||void 0===i?void 0:i.routeEnvironment},c=o.os.toLowerCase(),d=110===o.hostEnvEnum;"UNIAPP"===Oe.platform&&d?(a.isReactNative=1,a.clientType="ios"===c?2:"android"===c?1:65,o.pushDeviceInfo&&o.pushDeviceInfo.MANUFACTURER&&(a.deviceInfo=JSON.stringify(Object.assign({IS_SUPPORT_HONOR:!0},o.pushDeviceInfo)))):"React Native"===Oe.platform&&(this.core.logger.log("V2NIMLoginService deviceInfo",this.core.V2NIMLoginService.deviceInfo,"os",c),a.isReactNative=1,a.clientType="ios"===c?2:1,a.deviceInfo=JSON.stringify(Object.assign({IS_SUPPORT_HONOR:!0},this.core.V2NIMLoginService.deviceInfo))),this.core.logger.log(`V2NIMLoginService::do login,accid:${a.account};clientSession:${a.clientSession};appLogin:${a.appLogin}`);try{n=yield this.auth.doLoginStepsManager.add(this.auth.clientSocket.sendCmd("v2Login",{tag:a}))}catch(e){var l=e;if(this.core.reporter.reportTraceUpdateV2("login",{operation_type:"protocol",target:"26-3",code:l.code||0,succeed:!1,description:l.message},{asyncParams:Oe.net.getNetworkStatus()}),l.code===de.V2NIM_ERROR_CODE_CANCELLED||l.code===de.V2NIM_ERROR_CODE_TIMEOUT)throw l;throw this.processLoginFailed(l),l}var{data:h,loginClients:p}=n.content;return this.changeLoginClient(1,p),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"protocol",target:"26-3",code:200,succeed:!0},{asyncParams:Oe.net.getNetworkStatus()}),this.loginClientOfThisConnection=Mt(h),this.core.clientSocket.setSessionId(h.consid),Oe.localStorage.setItem(this.lastLoginClientKey,JSON.stringify(Object.assign({account:this.auth.account},this.loginClientOfThisConnection))),this.loginClientOfThisConnection})}refreshLoginToken(e){return Te(this,void 0,void 0,function*(){if(0===this.auth.loginOption.authType)return this.auth.token;if("function"!=typeof this.auth.loginOption.tokenProvider)return this.auth.token;try{var t=yield this.auth.loginOption.tokenProvider(e);if("string"==typeof t)return t;throw this.core.logger.error("V2NIMLoginService::excute tokenProvider complete but got Unexpected value:",t),new pe({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,detail:{reason:"Excute tokenProvider complete but got Unexpected value",rawData:t}})}catch(e){var i=e,r=i;throw i.code!==de.V2NIM_ERROR_CODE_CALLBACK_FAILED&&(this.core.logger.error("V2NIMLoginService::excute tokenProvider error:",i),r=new pe({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,desc:"Excute tokenProvider error",detail:{rawError:e}})),this.processLoginFailed(i),r}})}refreshThirdPartyExt(e){return Te(this,void 0,void 0,function*(){if("function"!=typeof this.auth.loginOption.loginExtensionProvider)return"";try{var t=yield this.auth.loginOption.loginExtensionProvider(e);if("string"==typeof t)return t;throw this.core.logger.error("V2NIMLoginService::excute loginExtensionProvider complete but got Unexpected value:",t),new pe({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,detail:{reason:"Excute loginExtensionProvider complete but got Unexpected value",rawData:t}})}catch(e){var i=e,r=i;if(i.code!==de.V2NIM_ERROR_CODE_CALLBACK_FAILED&&(this.core.logger.error("V2NIMLoginService::excute loginExtensionProvider error:",i),r=new pe({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,detail:{reason:"Excute loginExtensionProvider error",rawError:e}})),2===this.auth.loginOption.authType)throw this.processLoginFailed(i),r;return""}})}processLoginFailed(e){this.auth.clientSocket.doDisconnect(Dt.ACTIVE,e),this.checkLoginTerminalCode(e.code)&&(this.auth.authenticator.reset(),this.auth.authenticator.clearLastLoginClient()),this.auth.lifeCycle.processEvent("loginFail",e)}changeLoginClient(e,t){var i=t.map(e=>Mt(e));if(1===e)this.loginClients=i,this.auth.emit("onLoginClientChanged",e,this.loginClients);else if(2===e){var r=i.filter(e=>{var t=this.loginClients.filter(t=>t.clientId===e.clientId);return this.loginClients.push(e),0===t.length});r.length>0&&this.auth.emit("onLoginClientChanged",e,r)}else if(3===e){var s=i.filter(e=>(function(e,t){t=t||(()=>!0);for(var i=[],r=(e=e||[]).length,s=0,n=0;nt.clientId===e.clientId&&t.consid===e.consid),0===this.loginClients.filter(t=>t.clientId===e.clientId).length));s.length>0&&this.auth.emit("onLoginClientChanged",e,s)}}checkAutoLogin(e){if(e)return!1;var t=Oe.localStorage.getItem(this.lastLoginClientKey);if(!t)return!1;var i="",r="";try{var s=JSON.parse(t);i=Ve(s,"clientId"),r=Ve(s,"account")}catch(e){return!1}return i===this.auth.deviceId&&r===this.auth.account}checkLoginTerminalCode(e){return[de.V2NIM_ERROR_CODE_CANCELLED,de.V2NIM_ERROR_CODE_TIMEOUT,de.V2NIM_ERROR_CODE_HANDSHAKE,302,317,de.V2NIM_ERROR_CODE_FORBIDDEN,de.V2NIM_ERROR_CODE_NOT_FOUND,de.V2NIM_ERROR_CODE_PARAMETER_ERROR,de.V2NIM_ERROR_CODE_MULTI_LOGIN_FORBIDDEN,422,de.V2NIM_ERROR_CODE_IM_DISABLED,de.V2NIM_ERROR_CODE_APPKEY_NOT_EXIST,de.V2NIM_ERROR_CODE_BUNDLEID_CHECK_FAILED,de.V2NIM_ERROR_CODE_APPKEY_BLOCKED,de.V2NIM_ERROR_CODE_INVALID_TOKEN,de.V2NIM_ERROR_CODE_ROBOT_NOT_ALLOWED,de.V2NIM_ERROR_CODE_ACCOUNT_NOT_EXIST,de.V2NIM_ERROR_CODE_ACCOUNT_BANNED,de.V2NIM_ERROR_CODE_USER_PROFILE_NOT_EXIST].includes(e)}reset(){this.loginClients=[],this.loginClientOfThisConnection={}}clearLastLoginClient(){Oe.localStorage.removeItem(this.lastLoginClientKey)}}class ii extends ne{constructor(e,t){super(),this.name=e,this.logger=t.logger,this.core=t}checkV2(){var e=this.core.options.apiVersion;if("v2"===e)return!0;throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`The version "${e}" of client is not supported.`}})}checkLogin(){if(0===this.core.V2NIMLoginService.getLoginStatus())throw new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:"Client logout."}})}emit(e,...t){this.logger.debug(`${this.name}::emit event: '${e.toString()}',`,void 0!==t[0]?t[0]:"",void 0!==t[1]?t[1]:"",void 0!==t[2]?t[2]:"");try{return super.emit(e,...t)}catch(t){return setTimeout(()=>{throw this.logger.error(`${this.name}::emit throw error in setTimeout. event: ${e.toString()}. Error`,t),t},0),!1}}process(e){var t=this[e.cmd+"Handler"],i=this.handler&&this.handler[e.cmd+"Handler"];if("function"==typeof t||"function"==typeof i){if(e.error)return this.logger.error(`${e.cmd}::recvError`,e.error),Promise.reject(e.error);try{var r=t?t.call(this,e):i.call(this.handler,e);return Promise.resolve(r)}catch(e){return Promise.reject(e)}}var s=Ve(e,"error.detail.ignore");return e.error&&!s?Promise.reject(e.error):Promise.resolve(e)}}class ri{constructor(e){this.name="V2NIMLoginLifeCycle",this.loginStatus=0,this.connectStatus=0,this.core=e,this.auth=e.V2NIMLoginService,this.logger=e.logger}processEvent(e,t,i){var r=this.getConnectStatus();switch(e){case"addressing":this.logger.log(`${this.name}::addressing`),this.setLoginStatus(2),this.setConnectStatus(2);break;case"connect":this.logger.log(`${this.name}::connecting`),this.setLoginStatus(2),this.setConnectStatus(2);break;case"connectSucc":this.logger.log(`${this.name}::connect success`),this.setLoginStatus(2),this.setConnectStatus(1);break;case"connectFail":this.logger.log(`${this.name}::connect fail`,t),this.setLoginStatus(3),this.setConnectStatus(0,t);break;case"connectionBroken":this.logger.log(`${this.name}::connectionBroken:`,t),this.setLoginStatus(3),this.setConnectStatus(0,t),this.core.eventBus.emit("V2NIMLoginService/loginLifeCycleDisconnected",t);break;case"loginSucc":this.logger.log(`${this.name}::login success, verify authentication success`),this.setLoginStatus(1),this.core.eventBus.emit("V2NIMLoginService/loginLifeCycleLoginSucc",i);break;case"loginFail":if(this.logger.log(`${this.name}::login fail due to verify authentication failed:`,t),!t)return;this.setLoginStatus(this.auth.authenticator.checkLoginTerminalCode(t.code)?0:3),this.setConnectStatus(0,t),this.auth.emit("onLoginFailed",t);break;case"logout":this.logger.log(`${this.name}::logout`),this.setLoginStatus(0),this.setConnectStatus(0),this.core.eventBus.emit("V2NIMLoginService/loginLifeCycleLogout");break;case"kicked":this.logger.log(`${this.name}::kicked`,i),this.setLoginStatus(0),this.setConnectStatus(0,t),this.core.eventBus.emit("V2NIMLoginService/loginLifeCycleKicked");break;case"exited":this.logger.log(`${this.name}::exited`,t),this.setLoginStatus(0),this.setConnectStatus(0,t);break;case"waiting":this.logger.log(`${this.name}::waiting to reconnect`),this.setLoginStatus(3),this.setConnectStatus(3),2!==r&&this.auth.reconnect.attempToReLogin()}}getConnectStatus(){return this.connectStatus}getLoginStatus(){return this.loginStatus}setLoginStatus(e){e!==this.loginStatus&&(this.loginStatus=e,this.auth.emit("onLoginStatus",e))}setConnectStatus(e,t){if(e!==this.connectStatus){var i=this.connectStatus;this.connectStatus=e,this.auth.emit("onConnectStatus",e),this.delegateConnectEvent(i,e,t)}}delegateConnectEvent(e,t,i){1===e&&0===t&&i&&this.auth.emit("onDisconnected",i),2===e&&0===t&&i&&this.auth.emit("onConnectFailed",i)}}class si{constructor(e){this.core=e,this.auth=e.V2NIMLoginService,this.datas=[]}switchDataSync(e){return Te(this,void 0,void 0,function*(){var{type:t,state:i,error:r,subType:s}=e,n=this.datas.filter(e=>e.type===t&&e.subType===s);n.length>0?(n[0].state=i,n[0].error=r):this.datas.push({type:t,state:i,subType:s});var o=this.datas.every(e=>3===e.state);1===t&&(2===i&&"mainSync"===s?(this.core.eventBus.emit("V2NIMLoginService/syncing"),this.auth.emit("onDataSync",t,i)):3===i&&o&&(this.core.eventBus.emit("V2NIMLoginService/syncDone",r),this.auth.emit("onDataSync",t,i,r)))})}checkSyncing(){return this.datas.some(e=>"mainSync"===e.subType&&2===e.state)}reset(){this.datas=[]}}var ni={"6_3":"notifylog","6_4":"uploadLog","6_23":"getServerTime","6_31":"notifyDetect","6_32":"uploadDetect","6_37":"wsDetect"},oi={type:1,params:2,result:3,t1:100,t2:101,t3:102,t4:103,t5:104,t6:105},ai={k1:1,k2:2,k3:3,k4:4,k5:5,k6:6,k7:7,k8:8,k9:9,k10:10},ci={notifylog:{sid:6,cid:3,service:"misc"},uploadLog:{sid:6,cid:4,service:"misc",hasPacketResponse:!1,params:[{type:"String",name:"url"},{type:"Property",name:"data",reflectMapper:{type:1,content:2}}]},getServerTime:{sid:6,cid:23,service:"misc",response:[{type:"Long",name:"time"}]},notifyDetect:{sid:6,cid:31,service:"misc",response:[{type:"Property",name:"data",reflectMapper:gt(oi)}]},uploadDetect:{sid:6,cid:32,service:"misc",hasPacketResponse:!1,params:[{type:"Property",name:"data",reflectMapper:oi}]},wsDetect:{sid:6,cid:37,service:"misc",params:[{type:"Property",name:"tag",reflectMapper:ai}],response:[{type:"Property",name:"data",reflectMapper:gt(ai)}]}},di={type:{type:"number"},t1:{type:"number"},t2:{type:"number"},t3:{type:"number"},t4:{type:"number"},t5:{type:"number"},t6:{type:"number"}};class li extends class{constructor(e,t){this.name=e,this.core=t,this.name=e,this.logger=t.logger,this.core=t}process(e){var t=this[e.cmd+"Handler"];if("function"==typeof t)return t.call(this,e);var i=Ve(e,"error.detail.ignore");return e.error&&!i?Promise.reject(e.error):Promise.resolve(e)}}{constructor(e){super("misc",e),this.logLock=!1,this.core=e,mt({cmdMap:ni,cmdConfig:ci}),this.setListener()}setListener(){this.core.eventBus.on("BinaryClientSocket/unpackError",this.wsDetect.bind(this)),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",()=>{this.core.timeOrigin.setOriginTimetick()}),this.core.eventBus.on("logined",()=>{this.core.timeOrigin.setOriginTimetick()})}getServerTime(){return Te(this,void 0,void 0,function*(){var e=yield this.core.clientSocket.sendCmd("getServerTime");return parseInt(e.content.time)})}wsDetect(e){return Te(this,void 0,void 0,function*(){var t=Object.assign({k1:"val1",k2:"val2"},e),i=null;try{i=(yield this.core.clientSocket.sendCmd("wsDetect",{tag:t})).content.data}catch(e){var r=e;return void(r.code===de.V2NIM_ERROR_CODE_UNPACK_ERROR?(this.logger.warn("misc::wsDetect:998"),this.wsDetectUnreliable(),this.reportBinarySocketDetectResult("packet 998")):this.logger.warn(`misc::wsDetect:failed ${r.code}`))}i&&JSON.stringify(i)!==JSON.stringify(t)?(this.logger.warn("misc::wsDetect:content unreliable"),this.wsDetectUnreliable(),this.reportBinarySocketDetectResult("content unreliable")):this.logger.log("misc::wsDetect:success")})}wsDetectUnreliable(){this.core.clientSocket.doDisconnect(3,"WSDetectUnreliable")}reportBinarySocketDetectResult(e){var t;this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.account,trace_id:null===(t=this.core.clientSocket.socket)||void 0===t?void 0:t.sessionId,start_time:Date.now(),action:2,exception_service:9}),this.core.reporter.reportTraceUpdateV2("exceptions",{code:998,description:`wsDetect::reconnect cause: ${e}`,operation_type:"5",target:"6-37"}),this.core.reporter.reportTraceEnd("exceptions",1)}notifyDetectHandler(e){return Te(this,void 0,void 0,function*(){var t=function(e){return It(di,e)}(e.content.data);t.t3=e.__receiveTimeNode.time,t.t4=Date.now();try{yield this.core.clientSocket.sendCmd("uploadDetect",{data:t})}catch(e){this.core.logger.warn("misc::notifyDetectHandler:upload failed",e)}})}notifylogHandler(){return Te(this,void 0,void 0,function*(){var e=void 0;if(this.logLock)this.core.logger.warn("misc::notifylogHandler:locked");else{this.logLock=!0;try{e=yield this.core.logger.extractLogs()}catch(e){return void(this.logLock=!1)}if(e){var t="";try{t=(yield this.core.cloudStorage.uploadFile("string"==typeof e?{type:"file",filePath:e}:{type:"file",file:e})).url}catch(e){return void(this.logLock=!1)}if(t){t+=(t.indexOf("?")>0?"&":"?")+"download="+(new Date).getTime()+"_web.log";try{yield this.core.clientSocket.sendCmd("uploadLog",{url:t})}catch(e){return void(this.logLock=!1)}try{yield this.logger.afterUpload()}catch(e){}this.logLock=!1}else this.logLock=!1}else this.logLock=!1}})}}function hi(e,t){e=e||{};var i={};return(t=t||[]).forEach(t=>{void 0!==e[t]&&(i[t]=e[t])}),i}var pi={retryCount:{type:"number",min:0,required:!1},forceMode:{type:"boolean",required:!1},authType:{type:"enum",values:[0,1,2],required:!1},syncLevel:{type:"enum",values:[1,0],required:!1},routeConfig:{type:"object",required:!1,rules:{routeEnabled:{type:"boolean",required:!1},routeEnvironment:{type:"string",required:!1}}}},ui=["https://lbs.netease.im/lbs/webconf.jsp"],mi={retryCount:3,timeout:6e4,forceMode:!1,authType:0,syncLevel:0},gi={"27_1":"v2NIMSync","27_10":"v2QChatSync"},vi={v2NIMSync:{sid:27,cid:1,service:"V2NIMSyncService",hasPacketTimer:!1,params:[{type:"Property",name:"tag",reflectMapper:{myInfo:1,offlineMsgs:2,teams:3,roamingMsgs:7,relations:9,friends:11,friendUsers:13,msgReceipts:14,myTeamMembers:15,donnop:16,recallMsg:17,sessionAck:18,broadcastMsgs:20,avSignal:21,superTeams:22,mySuperTeamMembers:23,superTeamRoamingMsgs:24,deleteSuperTeamMsg:25,superTeamSessionAck:26,deleteSelfMsgs:27,stickTopSessions:28,sessionHistoryMsgsDelete:29,p2pTeamModifyMessage:30,superTeamModifyMessage:31,filterMsgs:100}}],response:[{type:"Long",name:"timetag"}]},v2QChatSync:{sid:27,cid:10,service:"V2NIMSyncService",hasPacketTimer:!1,params:[{type:"Property",name:"tag",reflectMapper:{systemNotification:1,pushConfig:2}}],response:[{type:"Long",name:"timetag"}]}},fi={debug(...e){},log(...e){},warn(...e){},error(...e){}};function _i(e){fi=e}function Ii(){return fi}var yi={wifi:2,"2g":3,"3g":4,"4g":5,"5g":6,ethernet:1,unknown:0,none:0,notreachable:0,wwan:0};function Ei(e){var t=null;return{getNetworkStatus:()=>new Promise((t,i)=>{e.getNetworkType({success:function(e){var i;i="boolean"==typeof e.networkAvailable?e.networkAvailable:"none"!==e.networkType.toLowerCase(),t({net_type:yi[e.networkType.toLowerCase()],net_connect:i})},fail:function(){i(new Error("getNetworkType failed"))}})}),onNetworkStatusChange(i){this.offNetworkStatusChange(),e.onNetworkStatusChange&&(t=function(e){var t=e.networkType.toLowerCase();i({isConnected:e.isConnected||"none"!==t,networkType:yi[t]})},e.onNetworkStatusChange(t))},offNetworkStatusChange(){e.offNetworkStatusChange&&(t&&e.offNetworkStatusChange(t),t=null)}}}Ii(),i(function(e,t){e.exports=function(){class e extends Error{constructor(e,t,i,r){super(i),this.source=e,this.code=t,this.desc=i,this.detail=r||{}}}return function(t,i={dataType:"json",method:"GET",timeout:5e3}){var r="text"===i.dataType?"text/plain; charset=UTF-8":"application/json; charset=UTF-8",s="GET"===i.method?function(e){if(e){var t="";return Object.keys(e).forEach(function(i,r){t+=0===r?"?":"&",t+=`${i}=${e[i]}`}),t}return""}(i.params):"";return new Promise(function(n,o){if(window.XMLHttpRequest){var a,c=new XMLHttpRequest;if(c.onreadystatechange=function(){if(4===c.readyState)if(200===c.status){try{a=JSON.parse(c.response||"{}")}catch(e){a=c.response}n({status:c.status,data:a})}else setTimeout(()=>{o(new e(1,c.status,`readyState: ${c.readyState}; statusText: ${c.statusText}`))},0)},c.open(i.method,`${t}${s}`),c.timeout=i.timeout||5e3,c.setRequestHeader("Content-Type",r),i.headers)for(var d in i.headers)c.setRequestHeader(d,i.headers[d]);c.ontimeout=function(t){o(new e(1,408,t&&t.message?t.message:"request timeout"))},c.send(JSON.stringify(i.data))}else o(new e(2,10400,"request no suppout"))})}}()}),i(function(e,t){self,e.exports=function(){var e={d:function(t,i){for(var r in i)e.o(i,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:i[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return y}});var i=function e(t){for(var i in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.directUploadAddr="https://wanproxy-web.127.net",this.retryCount=4,this.trunkSize=4194304,this.trunkUploadTimeout=5e4,this.getOffsetTimeout=1e4,this.version="1.0",this.enableCache=!0,this.logger=console,this.onError=function(e){},this.onProgress=function(e){},this.onUploadProgress=function(e){},this.onComplete=function(e){},this.onUploadInfo=function(e){},t)this[i]=t[i]};function r(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!i){if(Array.isArray(e)||(i=function(e,t){if(e){if("string"==typeof e)return s(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?s(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){i&&(e=i);var r=0,n=function(){};return{s:n,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){i=i.call(e)},n:function(){var e=i.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==i.return||i.return()}finally{if(c)throw o}}}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);iy.expireTime?n.removeItem(c):s.push({fileInfo:d,key:c})}}}catch(e){a.e(e)}finally{a.f()}if(s.length>y.maxFileCache){var l,h=r(s.sort(function(e,t){return t.fileInfo.modifyAt-e.fileInfo.modifyAt}).slice(y.maxFileCache));try{for(h.s();!(l=h.n()).done;){var p=l.value;0===p.key.indexOf("_NosUploader_")&&n.removeItem(p.key)}}catch(e){h.e(e)}finally{h.f()}}}},a=o;function c(e){return(c="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})(e)}function d(e){var t="function"==typeof Map?new Map:void 0;return(d=function(e){if(null===e||(i=e,-1===Function.toString.call(i).indexOf("[native code]")))return e;var i;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return l(e,arguments,u(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)})(e)}function l(e,t,i){return(l=h()?Reflect.construct:function(e,t,i){var r=[null];r.push.apply(r,t);var s=new(Function.bind.apply(e,r));return i&&p(s,i.prototype),s}).apply(null,arguments)}function h(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var m=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(s,e);var t,i,r=(t=s,i=h(),function(){var e,r=u(t);if(i){var s=u(this).constructor;e=Reflect.construct(r,arguments,s)}else e=r.apply(this,arguments);return function(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,e)});function s(e,t){var i;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(i=r.call(this,"NosUploadError:"+e)).errCode=t,i.errMsg=e,i}return s}(d(Error)),g=function e(t,i,r){if("uploading"===t.uploadState){var s=t.config,n=t.param,o=a.getUploadContext(t.fileKey);if(!o)return r(0);var c=new XMLHttpRequest,d=s.directUploadAddr+"/".concat(n.bucketName)+"/".concat(encodeURIComponent(n.objectName))+"?uploadContext"+"&context=".concat(o)+"&version=".concat(s.version);c.onreadystatechange=function(){var n;if("abort"!==t.uploadState&&4===c.readyState){var o;try{o=JSON.parse(c.responseText)}catch(e){o={errMsg:"JsonParseError in getOffset. xhr.status = "+c.status+". xhr.responseText: "+c.responseText,errCode:500}}200===c.status?o.errCode?t.config.onError(new m(o.errMsg,o.errCode)):r(o.offset):c.status.toString().match(/^5/)?e(t,i-1,r):i>0?("function"==typeof(null===(n=s.logger)||void 0===n?void 0:n.error)&&s.logger.error("getOffset(".concat(d,") error. retry after 3 seconds. ").concat((new Date).toTimeString())),setTimeout(function(){e(t,i-1,r)},3500)):c.status?(a.removeFileInfo(t.fileKey),s.onError(new m("getOffset(".concat(d,") error: ").concat(c.status," ").concat(c.statusText)))):s.onError(new m("getOffset(".concat(d,") error. no Error Code")))}},c.open("get",d),c.setRequestHeader("x-nos-token",n.token),c.timeout=s.getOffsetTimeout,c.send()}};function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);i=t.file.size,h=l?t.file.size:i+o.trunkSize,p=Date.now(),u=new XMLHttpRequest,g=o.directUploadAddr+"/".concat(n.bucketName)+"/".concat(encodeURIComponent(n.objectName)),f={};u.upload.onprogress=function(e){if("abort"!==t.uploadState){var r=0;if(e.lengthComputable){var s=i+e.loaded;r=s/t.file.size,o.onProgress(r),o.onUploadProgress({loaded:s,total:t.file.size,percentage:r,percentageText:(100*r).toFixed(2)+"%"})}else o.onError(new m("browser does not support query upload progress"))}},u.onload=function(){if(200!==u.status){var e=u.getAllResponseHeaders();if(e){var t=e.split("\n").reduce(function(e,t){if(0===t.length)return e;var i,r=function(e){if(Array.isArray(e))return e}(i=t.split(": "))||function(e){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var i,r,s=[],n=!0,o=!1;try{for(t=t.call(e);!(n=(i=t.next()).done)&&(s.push(i.value),2!==s.length);n=!0);}catch(e){o=!0,r=e}finally{try{n||null==t.return||t.return()}finally{if(o)throw r}}return s}}(i)||function(e){if(e){if("string"==typeof e)return v(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(e,2):void 0}}(i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),s=r[0],n=r[1];return e[s]=n,e},{});o.onUploadInfo({rsp_headers:t})}}},u.onreadystatechange=function(){var n,c;if("abort"!==t.uploadState&&4===u.readyState){var d;try{d=JSON.parse(u.responseText)}catch(e){"function"==typeof(null===(n=o.logger)||void 0===n?void 0:n.error)&&o.logger.error("JsonParseError in uploadTrunk. xhr.status = "+u.status+". xhr.responseText: "+u.responseText,e),d={errMsg:"JsonParseError in uploadTrunk. xhr.status = "+u.status+". xhr.responseText: "+u.responseText}}o.onUploadInfo({transfer_latency:Date.now()-p}),200===u.status?(o.onUploadInfo({http_code:200}),t.setContext(d.context),l?(s(),t.setComplete()):e(t,d.offset,o.retryCount,s)):u.status.toString().match(/^5/)?(o.onUploadInfo({http_code:u.status,req_headers:f}),r>0?e(t,i,r-1,s):(a.removeFileInfo(t.fileKey),o.onError(new m(d.errMsg,d.errCode)))):(o.onUploadInfo({http_code:u.status||0,req_headers:f}),r>0?("function"==typeof(null===(c=o.logger)||void 0===c?void 0:c.error)&&o.logger.error("uploadTrunk(".concat(g,") error. retry after 3 seconds. ").concat((new Date).toTimeString())),setTimeout(function(){e(t,i,r-1,s)},3500)):u.status?(a.removeFileInfo(t.fileKey),o.onError(new m("uploadTrunk(".concat(g,") error: ").concat(u.status," ").concat(u.statusText)))):o.onError(new m("uploadTrunk(".concat(g,") error. no Error Code. Please check your network"))))}};var _=g+"?offset=".concat(i)+"&complete=".concat(l)+"&context=".concat(d)+"&version=".concat(o.version);if(o.onUploadInfo({remote_addr:_,part_size:l?t.file.size-i:o.trunkSize,index:Math.ceil(i/o.trunkSize)}),u.open("post",_),u.setRequestHeader("x-nos-token",n.token),f["x-nos-token"]=n.token,n.md5&&(u.setRequestHeader("content-md5",n.md5),f["content-md5"]=n.md5),t.file.type&&(u.setRequestHeader("content-type",t.file.type),f["content-type"]=t.file.type),u.timeout=o.trunkUploadTimeout,"undefined"!=typeof FileReader){var I=new FileReader;I.addEventListener("load",function(e){var t;(null===(t=null==e?void 0:e.target)||void 0===t?void 0:t.result)instanceof ArrayBuffer&&e.target.result.byteLength>0?u.send(e.target.result):o.onError(new m("Read ArrayBuffer failed",194003))}),I.addEventListener("error",function(e){var t=e.target.error;o.onError(new m("Read ArrayBuffer error. ".concat(t.toString()),194003))}),I.readAsArrayBuffer(c.call(t.file,i,h))}else u.send(c.call(t.file,i,h))}},_=function(){function e(t,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.uploadState="paused",this.config=r,this.file=t,this.param=i,this.fileKey=a.initFile(i,t,this.config.enableCache),this.resume()}var t;return(t=[{key:"resume",value:function(){var e=this;if("uploading"!==this.uploadState){this.setUploadState("uploading");var t=this.config;g(this,t.retryCount,function(i){f(e,i,t.retryCount,function(){e.setUploadState("ended"),"function"==typeof t.onComplete&&t.onComplete(e.param)})})}}},{key:"pause",value:function(){this.setUploadState("paused")}},{key:"abort",value:function(){"ended"!==this.uploadState&&"abort"!==this.uploadState&&(this.setUploadState("abort"),this.config.onError(new m("Upload Aborted",10499)))}},{key:"setUploadState",value:function(e){e!==this.uploadState&&(this.uploadState=e)}},{key:"setContext",value:function(e){a.setUploadContext(this.fileKey,e,this.config.enableCache),this.param.ctx=e}},{key:"setComplete",value:function(){a.setComplete(this.fileKey,this.config.enableCache),this.setUploadState("ended")}}])&&function(e,t){for(var i=0;iI.expireTime?(a.removeFileInfo(t),null):{uploadInfo:Object.assign({bucketName:i.bucket,objectName:i.obj,token:i.token,ctx:i.ctx},i.payload?{payload:i.payload}:{}),complete:i.end}},setMaxFileCache:function(e){I.maxFileCache=e},setExpireTime:function(e){I.expireTime=e},printCaches:function(){if("undefined"!=typeof localStorage)for(var e=0,t=Object.keys(localStorage);e-1&&r<=a)for(;++i3?"WebKit":/\bOpera\b/.test(w)&&(/\bOPR\b/.test(t)?"Blink":"Presto"))||/\b(?:Midori|Nook|Safari)\b/i.test(t)&&!/^(?:Trident|EdgeHTML)$/.test(D)&&"WebKit"||!D&&/\bMSIE\b/i.test(t)&&("Mac OS"==F?"Tasman":"Trident")||"WebKit"==D&&/\bPlayStation\b(?! Vita\b)/i.test(w)&&"NetFront")&&(D=[a]),"IE"==w&&(a=(/; *(?:XBLWP|ZuneWP)(\d+)/i.exec(t)||0)[1])?(w+=" Mobile",F="Windows Phone "+(/\+$/.test(a)?a:a+".x"),k.unshift("desktop mode")):/\bWPDesktop\b/i.test(t)?(w="IE Mobile",F="Windows Phone 8.x",k.unshift("desktop mode"),P||(P=(/\brv:([\d.]+)/.exec(t)||0)[1])):"IE"!=w&&"Trident"==D&&(a=/\brv:([\d.]+)/.exec(t))&&(w&&k.push("identifying as "+w+(P?" "+P:"")),w="IE",P=a[1]),V){if(function(e,t){var i=null!=e?typeof e[t]:"number";return!(/^(?:boolean|number|string|undefined)$/.test(i)||"object"==i&&!e[t])}(i,"global"))if(T&&(b=(a=T.lang.System).getProperty("os.arch"),F=F||a.getProperty("os.name")+" "+a.getProperty("os.version")),S){try{P=i.require("ringo/engine").version.join("."),w="RingoJS"}catch(t){(a=i.system)&&a.global.system==i.system&&(w="Narwhal",F||(F=a[0].os||null))}w||(w="Rhino")}else"object"==typeof i.process&&!i.process.browser&&(a=i.process)&&("object"==typeof a.versions&&("string"==typeof a.versions.electron?(k.push("Node "+a.versions.node),w="Electron",P=a.versions.electron):"string"==typeof a.versions.nw&&(k.push("Chromium "+P,"Node "+a.versions.node),w="NW.js",P=a.versions.nw)),w||(w="Node.js",b=a.arch,F=a.platform,P=(P=/[\d.]+/.exec(a.version))?P[0]:null));else g(a=i.runtime)==I?(w="Adobe AIR",F=a.flash.system.Capabilities.os):g(a=i.phantom)==M?(w="PhantomJS",P=(a=a.version||null)&&a.major+"."+a.minor+"."+a.patch):"number"==typeof A.documentMode&&(a=/\bTrident\/(\d+)/i.exec(t))?(P=[P,A.documentMode],(a=+a[1]+4)!=P[1]&&(k.push("IE "+P[1]+" mode"),D&&(D[1]=""),P[1]=a),P="IE"==w?String(P[1].toFixed(1)):P[0]):"number"==typeof A.documentMode&&/^(?:Chrome|Firefox)\b/.test(w)&&(k.push("masking as "+w+" "+P),w="IE",P="11.0",D=["Trident"],F="Windows");F=F&&u(F)}if(P&&(a=/(?:[ab]|dp|pre|[ab]\d+pre)(?:\d+\+?)?$/i.exec(P)||/(?:alpha|beta)(?: ?\d)?/i.exec(t+";"+(V&&n.appMinorVersion))||/\bMinefield\b/i.test(t)&&"a")&&(L=/b/i.test(a)?"beta":"alpha",P=P.replace(RegExp(a+"\\+?$"),"")+("beta"==L?C:N)+(/\d+\+?/.exec(a)||"")),"Fennec"==w||"Firefox"==w&&/\b(?:Android|Firefox OS|KaiOS)\b/.test(F))w="Firefox Mobile";else if("Maxthon"==w&&P)P=P.replace(/\.[\d.]+/,".x");else if(/\bXbox\b/i.test(U))"Xbox 360"==U&&(F=null),"Xbox 360"==U&&/\bIEMobile\b/.test(t)&&k.unshift("mobile mode");else if(!/^(?:Chrome|IE|Opera)$/.test(w)&&(!w||U||/Browser|Mobi/.test(w))||"Windows CE"!=F&&!/Mobi/i.test(t))if("IE"==w&&V)try{null===i.external&&k.unshift("platform preview")}catch(t){k.unshift("embedded")}else(/\bBlackBerry\b/.test(U)||/\bBB10\b/.test(t))&&(a=(RegExp(U.replace(/ +/g," *")+"/([.\\d]+)","i").exec(t)||0)[1]||P)?(F=((a=[a,/BB10/.test(t)])[1]?(U=null,x="BlackBerry"):"Device Software")+" "+a[0],P=null):this!=m&&"Wii"!=U&&(V&&O||/Opera/.test(w)&&/\b(?:MSIE|Firefox)\b/i.test(t)||"Firefox"==w&&/\bOS X (?:\d+\.){2,}/.test(F)||"IE"==w&&(F&&!/^Win/.test(F)&&P>5.5||/\bWindows XP\b/.test(F)&&P>8||8==P&&!/\bTrident\b/.test(t)))&&!c.test(a=e.call(m,t.replace(c,"")+";"))&&a.name&&(a="ing as "+a.name+((a=a.version)?" "+a:""),c.test(w)?(/\bIE\b/.test(a)&&"Mac OS"==F&&(F=null),a="identify"+a):(a="mask"+a,w=R?u(R.replace(/([a-z])([A-Z])/g,"$1 $2")):"Opera",/\bIE\b/.test(a)&&(F=null),V||(P=null)),D=["Presto"],k.push(a));else w+=" Mobile";(a=(/\bAppleWebKit\/([\d.]+\+?)/i.exec(t)||0)[1])&&(a=[parseFloat(a.replace(/\.(\d)$/,".0$1")),a],"Safari"==w&&"+"==a[1].slice(-1)?(w="WebKit Nightly",L="alpha",P=a[1].slice(0,-1)):P!=a[1]&&P!=(a[2]=(/\bSafari\/([\d.]+\+?)/i.exec(t)||0)[1])||(P=null),a[1]=(/\b(?:Headless)?Chrome\/([\d.]+)/i.exec(t)||0)[1],537.36==a[0]&&537.36==a[2]&&parseFloat(a[1])>=28&&"WebKit"==D&&(D=["Blink"]),V&&(l||a[1])?(D&&(D[1]="like Chrome"),a=a[1]||((a=a[0])<530?1:a<532?2:a<532.05?3:a<533?4:a<534.03?5:a<534.07?6:a<534.1?7:a<534.13?8:a<534.16?9:a<534.24?10:a<534.3?11:a<535.01?12:a<535.02?"13+":a<535.07?15:a<535.11?16:a<535.19?17:a<536.05?18:a<536.1?19:a<537.01?20:a<537.11?"21+":a<537.13?23:a<537.18?24:a<537.24?25:a<537.36?26:"Blink"!=D?"27":"28")):(D&&(D[1]="like Safari"),a=(a=a[0])<400?1:a<500?2:a<526?3:a<533?4:a<534?"4+":a<535?5:a<537?6:a<538?7:a<601?8:a<602?9:a<604?10:a<606?11:a<608?12:"12"),D&&(D[1]+=" "+(a+="number"==typeof a?".x":/[.+]/.test(a)?"":"+")),"Safari"==w&&(!P||parseInt(P)>45)?P=a:"Chrome"==w&&/\bHeadlessChrome/i.test(t)&&k.unshift("headless")),"Opera"==w&&(a=/\bzbov|zvav$/.exec(F))?(w+=" ",k.unshift("desktop mode"),"zvav"==a?(w+="Mini",P=null):w+="Mobile",F=F.replace(RegExp(" *"+a+"$"),"")):"Safari"==w&&/\bChrome\b/.exec(D&&D[1])?(k.unshift("desktop mode"),w="Chrome Mobile",P=null,/\bOS X\b/.test(F)?(x="Apple",F="iOS 4.3+"):F=null):/\bSRWare Iron\b/.test(w)&&!P&&(P=j("Chrome")),P&&0==P.indexOf(a=/[\d.]+$/.exec(F))&&t.indexOf("/"+a+"-")>-1&&(F=_(F.replace(a,""))),F&&-1!=F.indexOf(w)&&!RegExp(w+" OS").test(F)&&(F=F.replace(RegExp(" *"+v(w)+" *"),"")),D&&!/\b(?:Avant|Nook)\b/.test(w)&&(/Browser|Lunascape|Maxthon/.test(w)||"Safari"!=w&&/^iOS/.test(F)&&/\bSafari\b/.test(D[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(w)&&D[1])&&(a=D[D.length-1])&&k.push(a),k.length&&(k=["("+k.join("; ")+")"]),x&&U&&U.indexOf(x)<0&&k.push("on "+x),U&&k.push((/^on /.test(k[k.length-1])?"":"on ")+U),F&&(a=/ ([\d.+]+)$/.exec(F),d=a&&"/"==F.charAt(F.length-a[0].length-1),F={architecture:32,family:a&&!d?F.replace(a[0],""):F,version:a?a[1]:null,toString:function(){var e=this.version;return this.family+(e&&!d?" "+e:"")+(64==this.architecture?" 64-bit":"")}}),(a=/\b(?:AMD|IA|Win|WOW|x86_|x)64\b/i.exec(b))&&!/\bi686\b/i.test(b)?(F&&(F.architecture=64,F.family=F.family.replace(RegExp(" *"+a),"")),w&&(/\bWOW64\b/i.test(t)||V&&/\w(?:86|32)$/.test(n.cpuClass||n.platform)&&!/\bWin64; x64\b/i.test(t))&&k.unshift("32-bit")):F&&/^OS X/.test(F.family)&&"Chrome"==w&&parseFloat(P)>=39&&(F.architecture=64),t||(t=null);var G={};return G.description=t,G.layout=D&&D[0],G.manufacturer=x,G.name=w,G.prerelease=L,G.product=U,G.ua=t,G.version=w&&P,G.os=F||{architecture:null,family:null,version:null,toString:function(){return"null"}},G.parse=e,G.toString=function(){return this.description||""},G.version&&k.unshift(P),G.name&&k.unshift(w),F&&w&&(F!=String(F).split(" ")[0]||F!=w.split(" ")[0]&&!U)&&k.push(U?"("+F+")":"on "+F),k.length&&(G.description=k.join(" ")),G}();s&&n?m(I,function(e,t){s[t]=e}):r.platform=I}).call(t)}),Ii();var Mi=Ii();class Ti extends ne{constructor(e){super(),this.env=e,this.status=0,this.appShowListener=null,this.appHideListener=null,this.flag=!1,this._initAppLifecycleListener()}isActive(){return 0===this.status}getStatus(){return this.status}setStatus(e){var t=this.status;e!==t&&(this.status=e,0===e&&1===t&&this.emit("onPowerMonitorTurnActive"),Mi.log("Adapter powerMonitor::setStatus: ",e))}destroy(){this.status=0,this.flag=!1,this._canIUse()&&(this.appShowListener&&(this.env.offAppShow(this.appShowListener),this.appShowListener=null),this.appHideListener&&(this.env.offAppHide(this.appHideListener),this.appHideListener=null))}_initAppLifecycleListener(){this.flag||(!1!==this._canIUse()?(this.appShowListener=()=>{var e=this.status;this.status=0,1===e&&this.emit("onPowerMonitorTurnActive"),Mi.log("Adapter powerMonitor::onAppShow status:",this.status)},this.appHideListener=()=>{this.status=1,Mi.log("Adapter powerMonitor::onAppHide status:",this.status)},this.env.onAppShow(this.appShowListener),this.env.onAppHide(this.appHideListener),this.flag=!0,Mi.log("Adapter powerMonitor::_initAppLifecycleListener success")):Mi.warn("Adapter powerMonitor::_initAppLifecycleListener env.onAppShow/env.onAppHide not available"))}_canIUse(){return void 0!==this.env&&"function"==typeof this.env.onAppShow&&"function"==typeof this.env.onAppHide&&"function"==typeof this.env.offAppShow&&"function"==typeof this.env.offAppHide}}function Si(){return"undefined"!=typeof tt&&tt.getSystemInfoSync?tt:"undefined"!=typeof swan&&swan.getSystemInfoSync?swan:"undefined"!=typeof my&&my.getSystemInfoSync?my:"undefined"!=typeof wx&&wx.getAppBaseInfo?wx:void 0}class Ni{constructor(e="nim_logs"){this.dirPath="",this.filePath="",this.copyFilePath="",this.maxCapacity=26214400,this.remainCapacity=8388608,this.count=0,this.maxCount=60,this.lastErrorMsg=void 0;var t=Si();t&&(this.dirPath=`${t.env.USER_DATA_PATH}/__nim`,this.filePath=`${this.dirPath}/${e}.log`,this.copyFilePath=`${this.dirPath}/${e}_copy.log`)}makeDir(){var e=Si();if(e){var t=Ii(),i=e.getFileSystemManager();try{var r=i.accessSync(this.dirPath);t.log("logStorage::access dir:",r),("object"==typeof r&&null!==r?r.error||r.errno||r.errCode||r.errNo:0)>200&&i.mkdirSync(this.dirPath,!0)}catch(e){i.mkdirSync(this.dirPath,!0)}try{var s=i.accessSync(this.filePath);t.log("logStorage::access file:",s),("object"==typeof s&&null!==s?s.error||s.errno||s.errCode||s.errNo:0)>200&&i.writeFileSync(this.filePath,"===","utf8")}catch(e){i.writeFileSync(this.filePath,"===","utf8")}}}open(){return Te(this,void 0,void 0,function*(){if(Si()){var e=Ii();try{this.makeDir(),e.log(`logStorage::open log file success:${this.filePath}`)}catch(t){e.warn(`logStorage::open log file failed:${this.filePath}`,t)}yield this.checkCapacity(this.remainCapacity)}})}checkCapacity(e){return Te(this,void 0,void 0,function*(){var t=Si();if(t){var i=Ii(),r=t.getFileSystemManager(),s=this.getSize();if(s>this.maxCapacity){i.log(`logStorage::checksize:exceed,${s} byte`);var n="";try{n=yield this.readLogs(s-e)}catch(e){return void i.log("logStorage::checkCapacity:read failed",e)}i.log(`logStorage::checksize:read success ${s-e} byte`);try{r.unlinkSync(this.filePath)}catch(e){return void i.log("logStorage::checkCapacity:unlink failed",e)}try{r.writeFileSync(this.filePath,n,"utf8")}catch(e){return void i.log("logStorage::checkCapacity:write failed",e)}}else i.log(`logStorage::checkCapacity:not exceeding,${s} byte`)}})}getSize(){var e,t=Si();if(!t)return 0;var i,r=Ii(),s=t.getFileSystemManager();try{i=s.statSync(this.filePath,!1)}catch(e){return r.warn("logStorage::stat failed",e),0}return i.size||(null===(e=i.stats)||void 0===e?void 0:e.size)}readLogs(e=0){var t=Si();if(!t)return Promise.resolve("");var i=Ii(),r=t.getFileSystemManager();return new Promise((t,s)=>{r.readFile({filePath:this.filePath,encoding:"utf8",position:e,success:e=>{var r=e.data;"string"==typeof r?(i.warn(`logStorage::readLogs success ${r.length}`),t(r)):(i.warn("logStorage::readLogs empty"),s(new Error("logStorage::readLogs empty")))},fail:e=>{var t=e.errMsg||e.errorMessage||e.message;i.warn(`logStorage::readLogs failed ${t}`);var r={code:e.errCode||0,message:t};s(r)}})})}close(){}addLogs(e){var t=Si();if(!t)return Promise.resolve();var i=Ii(),r=e.map(e=>e.text).concat("").join("\n");try{t.getFileSystemManager().appendFileSync(this.filePath,r,"utf8")}catch(e){var s=e.errMsg||e.errorMessage||e.message;this.lastErrorMsg!==s&&i.warn("logStorage::append failed",e),this.lastErrorMsg=s}return this.count+=1,this.count>this.maxCount&&(this.count=0,this.checkCapacity(this.remainCapacity)),Promise.resolve()}extractLogs(){return Te(this,void 0,void 0,function*(){var e=Si();if(e){var t=Ii(),i=this.getSize(),r=e.getFileSystemManager();if(i>0){try{r.copyFileSync(this.filePath,this.copyFilePath)}catch(e){return void t.warn("logStorage::copyFileSync failed",e)}return this.copyFilePath}t.warn("logStorage::extractLogs empty")}})}afterUpload(){return Te(this,void 0,void 0,function*(){var e=Si();if(e){var t=Ii(),i=e.getFileSystemManager();try{i.unlinkSync(this.copyFilePath)}catch(e){return void t.log("logStorage::delete copyFilePath failed",e)}}})}}function Ci(e){var t=Ii(),i=Si(),r=e.headers||{};return e.md5&&(r["Content-MD5"]=e.md5),new Promise((s,n)=>{var o=i.uploadFile(Object.assign(Object.assign({url:`${e.commonUploadHost}/${e.nosToken.bucket}`},Object.keys(r).length>0?{header:r}:{}),{formData:{Object:decodeURIComponent(e.nosToken.objectName),"x-nos-token":e.nosToken.token,"x-nos-entity-type":"json"},name:"file",fileName:"file",fileType:e.type,filePath:e.filePath,success(t){if(200==t.statusCode){e.onUploadInfo&&e.onUploadInfo({http_code:t.statusCode});var i={};if("string"==typeof t.data)try{i=JSON.parse(t.data)}catch(i){e.onUploadInfo&&e.onUploadInfo({exception:`JSON parse error:${t.data}`}),n({code:t.statusCode,message:t.errMsg,rawData:t.data})}i.name=e.filePath,i.ext=i.name&&i.name.lastIndexOf(".")>-1?i.name.slice(i.name.lastIndexOf(".")+1).toLowerCase():"",s(i)}else e.onUploadInfo&&e.onUploadInfo({http_code:t.statusCode,exception:t.data,rsp_headers:t.header,req_headers:r}),n({code:t.statusCode,message:t.errMsg,rawData:t.data})},fail(t){e.onUploadInfo&&e.onUploadInfo({http_code:0,exception:t,req_headers:r}),9===t.error||21104===t.errNo||"string"==typeof t.errMsg&&t.errMsg.indexOf("abort")>-1?t.code=de.V2NIM_ERROR_CODE_CANCELLED:t.code=t.error||t.errNo||t.errno||t.errCode||t.code,t.message=t.errMsg||t.errorMessage,n(t)}}));try{e.onUploadStart&&e.onUploadStart(o)}catch(e){t.error("uploadFile: options.onUploadStart error",e),o.abort(),n(e)}e.onUploadProgress&&o.onProgressUpdate(function(t){var i=t.totalBytesExpectedToWrite||t.totalBytesExpectedToSend,r=t.totalBytesWritten||t.totalBytesSent;e.onUploadProgress&&e.onUploadProgress({total:i,loaded:r,percentage:parseFloat((r/i).toFixed(2)),percentageText:t.progress+"%"})})})}function Ai(e){return null}var Oi={clear:()=>wx.clearStorageSync(),getItem:e=>wx.getStorageSync(e),setItem:(e,t)=>wx.setStorageSync(e,t),removeItem:e=>wx.removeStorageSync(e)};function Ri(e,t){return t&&(t.header=t.headers,t.data=t.data||(null==t?void 0:t.params)||{}),new Promise((i,r)=>{wx.request(Object.assign(Object.assign({url:e},t),{success:function(t){"number"==typeof(t=t||{}).statusCode&&t.statusCode.toString().startsWith("2")?(t={data:t.data,status:t.statusCode,errMsg:t.errMsg,header:t.header},i(t)):r({code:t.statusCode||0,message:t.data||`wechat request fail. url: ${e}`})},fail:function(t){var i=`wechat request fail. url: ${e}`;r(t?{code:5===t.errno?de.V2NIM_ERROR_CODE_TIMEOUT:t.errno,message:t.errMsg||i}:{code:0,message:i})}}))})}function bi(){var e=wx.getSystemInfoSync()||{};return{os:e.platform||"",osVer:e.system||"",browser:"",browserVer:"",libEnv:"MINIAPP",hostEnv:"WeiXin",hostEnvEnum:6,hostEnvVer:e.version,model:e.SDKVersion,manufactor:"WeiXin",userAgent:`NIM/Web/WeChatMiniApp(${e.SDKVersion})/V10.9.50/{{appkey}}`,pushDeviceInfo:{PRODUCT:e.model,DEVICE:e.model,MANUFACTURER:e.brand}}}class ki{constructor(e,t=""){if(this.CONNECTING=0,this.OPEN=1,this.CLOSING=2,this.CLOSED=3,this.binaryType="",this.onclose=function(e){Ii().log("wx-app: sockets on close ",e)},this.onerror=function(e){Ii().error("wx-app: sockets error ",e)},this.onmessage=function(e){},this.onopen=function(){},!e)throw new Error("Failed to construct 'socket': url required");this.url=e.replace(/:443(\/|$)/,"$1"),this.protocol=t,this.readyState=this.CONNECTING;var i=this.protocol?{protocols:[this.protocol]}:{};this.socketTask=wx.connectSocket(Object.assign(Object.assign({url:this.url},i),{fail:e=>{this.errorHandler(e)},success:()=>{}})),this.socketTask.onOpen(e=>{this.readyState=this.OPEN,this.binaryType?this.onopen():this.onmessage&&this.onmessage({type:"open",header:e})}),this.socketTask.onError(e=>{this.errorHandler(e)}),this.socketTask.onClose(e=>{this.readyState=this.CLOSED;var{code:t,reason:i,wasClean:r}=e;"function"==typeof this.onclose&&this.onclose&&this.onclose({code:t,reason:i,wasClean:r,type:"close"})}),this.socketTask.onMessage(e=>{this.onmessage&&this.onmessage(e)})}close(){this.socketTask.close({code:1e3,reason:"user force close websocket",complete:()=>{this.socketTask=null}})}send(e){if(this.readyState!==this.OPEN)throw new Error(`wx-app: socket sendMsg when readyState=${this.readyState}`);if(!("string"==typeof e||e instanceof ArrayBuffer))throw new TypeError("wx-app: socket sendMsg only String/ArrayBuffer supported");this.socketTask.send({data:e})}errorHandler(e){Ii().error("wx-app::ws: onerror ",e),this.readyState=this.CLOSED,this.onerror&&this.onerror({type:"error",message:e&&e.errMsg})}}class Li{constructor(e){this.name="V2NIMConversationIdUtil",this.core=e}conversationId(e,t){return`${this.core.account}|${e}|${t}`}p2pConversationId(e){return`${this.core.account}|1|${e}`}teamConversationId(e){return`${this.core.account}|2|${e}`}superTeamConversationId(e){return`${this.core.account}|3|${e}`}messageConversationId(e){return 1===e.conversationType?e.senderId===this.core.account?this.p2pConversationId(e.receiverId):this.p2pConversationId(e.senderId):2===e.conversationType?this.teamConversationId(e.receiverId):this.superTeamConversationId(e.receiverId)}parseConversationType(e){try{if(e&&e.startsWith(`${this.core.account}|`)){var t=e.replace(`${this.core.account}|`,"");return Number(t[0])}return this.core.logger.warn(`conversationId is not start with ${this.core.account}`),0}catch(e){return 0}}parseConversationTargetId(e){try{return e&&e.startsWith(`${this.core.account}|`)?e.replace(`${this.core.account}|`,"").slice(2):(this.core.logger.warn(`conversationId is not start with ${this.core.account}`),"")}catch(e){return""}}convertToV1ConversationId(e){var t=this.parseConversationType(e);return`${1===t?"p2p":2===t?"team":"superTeam"}|${this.parseConversationTargetId(e)}`}}class Vi{constructor(){this.messages=new Map,this.capacity=1e4}reset(){this.messages.clear()}getMessageById(e){if(e)return this.messages.get(e)}getMessagesByConversationId(e){var t=[];return this.messages.forEach(i=>{i.conversationId===e&&t.push(i)}),t}getLastMessageOfConversation(e){var t=this.getMessagesByConversationId(e);if(0!==t.length)return t.reduce((e,t)=>t.createTime>e.createTime?t:e,t[0])}upsertMessages(e){e.forEach(e=>{this.setLRU(e.messageClientId,e)})}setLRU(e,t){if(this.messages.has(e))this.messages.delete(e);else if(this.messages.size>=this.capacity){var i=this.messages.keys().next().value;i&&this.messages.delete(i)}this.messages.set(e,t)}deleteMessage(e){this.messages.delete(e)}deleteMessages(e,t){this.messages.forEach(i=>{e===i.conversationId&&(!t||t&&i.createTimee.senderId!==this.core.account))throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getTeamMessageReceipts: exist messages senderId is not current user"}});if(e.some(t=>t.receiverId!==e[0].receiverId))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getTeamMessageReceipts: exist messages receiverId is not same"}});return(yield this.core.sendCmd("v2GetTeamMessageReceipts",{tag:e})).content.data.map(e=>Object.assign(Object.assign({},e),{conversationId:this.core.V2NIMConversationIdUtil.teamConversationId(e.receiverId)}))})}getTeamMessageReceiptDetail(e){return Te(this,void 0,void 0,function*(){if(_e(Xi,{message:e},"",!0),e.senderId!==this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`getTeamMessageReceiptDetail::senderId ${e.senderId} incorrect`}});var t=yield this.core.sendCmd("v2GetTeamMessageReceiptDetail",{tag:e});return{readReceipt:{conversationId:this.core.V2NIMConversationIdUtil.teamConversationId(e.receiverId),messageClientId:e.messageClientId,messageServerId:e.messageServerId,readCount:t.content.readAccountList.length,unreadCount:t.content.unreadAccountList.length},readAccountList:t.content.readAccountList,unreadAccountList:t.content.unreadAccountList}})}sendTeamMessageReceipts(e){return Te(this,void 0,void 0,function*(){if(e.some(t=>t.conversationId!==e[0].conversationId))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getTeamMessageReceipts: conversationId not same"}});if(_e(zi,{messages:e},"",!0),e.some(e=>e.senderId===this.core.account))throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getTeamMessageReceipts: exist messages senderId is not current user"}});yield this.core.sendCmd("v2SendTeamMessageReceipts",{tag:e})})}syncP2PMessagReceiptsHandler(e){var t=e.content.data.map(e=>{var t=this.core.V2NIMConversationIdUtil.p2pConversationId(e.senderId),i=e.createTime;return this.p2pMessageReceipts[t]=i,{conversationId:t,timestamp:i}});this.service.emit("onReceiveP2PMessageReadReceipts",t)}onP2PMessageReceiptsHandler(e){var t=this.core.V2NIMConversationIdUtil.p2pConversationId(e.content.data.senderId),i=e.content.data.createTime;this.p2pMessageReceipts[t]=i,this.service.emit("onReceiveP2PMessageReadReceipts",[{conversationId:t,timestamp:i}])}onTeamMessageReceiptsHandler(e){var t=e.content.data.map(e=>({conversationId:this.core.V2NIMConversationIdUtil.teamConversationId(e.receiverId),messageServerId:e.messageServerId,messageClientId:e.messageClientId,readCount:e.readCount,unreadCount:e.unreadCount,latestReadAccount:e.latestReadAccount}));this.service.emit("onReceiveTeamMessageReadReceipts",t)}}var dr={"31_1":"v2TeamCreate","32_1":"v2SuperTeamCreate","31_5":"v2TeamInviteMembers","32_5":"v2SuperTeamInviteMembers","31_6":"v2TeamKickMembers","32_6":"v2SuperTeamKickMembers","31_8":"v2TeamLeave","32_7":"v2SuperTeamLeave","31_7":"v2TeamUpdateInfo","32_8":"v2SuperTeamUpdateInfo","31_9":"v2TeamGetInfo","32_9":"v2SuperTeamGetInfo","31_12":"v2TeamDismiss","32_4":"v2SuperTeamDismiss","31_13":"v2TeamApplyToJoin","32_20":"v2SuperTeamApplyToJoin","31_14":"v2TeamAcceptJoinApplication","32_21":"v2SuperTeamAcceptJoinApplication","31_15":"v2TeamRejectJoinApplication","32_22":"v2SuperTeamRejectJoinApplication","31_16":"v2TeamAddManagers","32_26":"v2SuperTeamAddManagers","31_17":"v2TeamRemoveManagers","32_27":"v2SuperTeamRemoveManagers","31_18":"v2TeamTransferOwner","32_31":"v2SuperTeamTransferOwner","31_19":"v2TeamUpdateSelfMemberInfo","32_10":"v2SuperTeamUpdateSelfMemberInfo","31_20":"v2TeamUpdateMember","32_30":"v2SuperTeamUpdateMember","31_21":"v2TeamAcceptInvitation","32_23":"v2SuperTeamAcceptInvitation","31_22":"v2TeamRejectInvite","32_24":"v2SuperTeamRejectInvite","31_33":"v2TeamGetMemberInvitor","32_35":"v2SuperTeamGetMemberInvitor","31_25":"v2TeamMemberSetChatBannedStatus","32_29":"v2SuperTeamMemberSetChatBannedStatus","31_32":"v2TeamSetChatBannedMode","32_28":"v2SuperTeamSetChatBannedMode","31_34":"v2TeamGetByIds","32_36":"v2SuperTeamGetByIds","31_35":"v2TeamMemberGetListByIds","32_37":"v2SuperTeamMemberGetListByIds","31_36":"v2TeamMemberGetList","8_101":"v2TeamCreateMultiSync","8_109":"v2TeamSync","8_119":"v2TeamMemberUpdateMultiSync","8_126":"v2TeamMembersOfSelfInSync","21_101":"v2SuperTeamCreateMultiSync","21_109":"v2SuperTeamSync","21_110":"v2SuperTeamMemberUpdateMultiSync","21_111":"v2SuperTeamMembersOfSelfInSync"},lr={antispamBusinessId:1},hr="V2NIMTeamService",pr={teamId:1,name:3,teamType:{id:4,retConverter:e=>0==+e?1:+e},ownerAccountId:5,memberLimit:{id:6,retType:"number"},isValidTeam:{id:8,retConverter:(e,t)=>1==+e&&(void 0===t[13]||1==+t[13])},memberCount:{id:9,retType:"number"},memberUpdateTime:{id:10,retType:"number"},createTime:{id:11,retType:"number"},updateTime:{id:12,retType:"number"},intro:14,announcement:15,joinMode:{id:16,retType:"number"},serverExtension:18,customerExtension:19,avatar:20,agreeMode:{id:21,retType:"number"},inviteMode:{id:22,retType:"number"},updateInfoMode:{id:23,retType:"number"},updateExtensionMode:{id:24,retType:"number"},chatBannedMode:{id:101,retType:"number"}},ur={teamId:1,accountId:3,memberRole:{id:4,retType:"number"},teamNick:5,bits:{id:7,retType:"number"},inTeam:{id:9,retType:"boolean"},joinTime:{id:10,retType:"number"},updateTime:{id:11,retType:"number"},serverExtension:12,chatBanned:{id:13,retType:"boolean"},invitorAccountId:14,followAccountIds:{id:16,retConverter:e=>{try{return JSON.parse(e)}catch(e){return[]}}}},mr={teamId:1,accountId:3,memberRole:{id:4,retType:"number"},teamNick:5,bits:{id:7,retType:"number"},inTeam:{id:9,retType:"boolean"},updateTime:{id:11,retType:"number"},serverExtension:12,chatBanned:{id:13,retType:"boolean"},invitorAccountId:14,joinTime:{id:15,retType:"number"},followAccountIds:{id:17,retConverter:e=>{try{return JSON.parse(e)}catch(e){return[]}}}},gr={accountIds:{id:1,converter:e=>JSON.stringify(e)},operation:2},vr={v2TeamCreate:{sid:31,cid:1,service:hr,params:[{type:"Property",name:"team",reflectMapper:pr},{type:"StrArray",name:"inviteeAccountIds"},{type:"String",name:"postscript"},{type:"Property",name:"antispamConfig",reflectMapper:lr}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)},{type:"StrArray",name:"failedList"}]},v2SuperTeamCreate:{sid:32,cid:1,service:hr,params:[{type:"Property",name:"team",reflectMapper:pr},{type:"StrArray",name:"inviteeAccountIds"},{type:"String",name:"postscript"},{type:"Property",name:"antispamConfig",reflectMapper:lr}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)},{type:"StrArray",name:"failedList"}]},v2TeamInviteMembers:{sid:31,cid:5,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"},{type:"String",name:"ps"},{type:"String",name:"attach"}],response:[{type:"Long",name:"time"},{type:"StrArray",name:"abortedAccidList"}]},v2SuperTeamInviteMembers:{sid:32,cid:5,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"},{type:"String",name:"ps"},{type:"String",name:"attach"}],response:[{type:"StrArray",name:"abortedAccidList"},{type:"Long",name:"time"}]},v2TeamUpdateInfo:{sid:31,cid:7,service:hr,params:[{type:"Property",name:"team",reflectMapper:pr},{type:"Property",name:"antispamConfig",reflectMapper:lr}],response:[{type:"Long",name:"teamId"},{type:"Long",name:"timestamp"}]},v2SuperTeamUpdateInfo:{sid:32,cid:8,service:hr,params:[{type:"Property",name:"team",reflectMapper:pr},{type:"Property",name:"antispamConfig",reflectMapper:lr}],response:[{type:"Long",name:"timestamp"}]},v2TeamLeave:{sid:31,cid:8,service:hr,params:[{type:"Long",name:"teamId"}]},v2SuperTeamLeave:{sid:32,cid:7,service:hr,params:[{type:"Long",name:"teamId"}]},v2TeamGetInfo:{sid:31,cid:9,service:hr,params:[{type:"Long",name:"teamId"}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)}]},v2SuperTeamGetInfo:{sid:32,cid:9,service:hr,params:[{type:"Long",name:"teamId"}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)}]},v2TeamGetByIds:{sid:31,cid:34,service:hr,params:[{type:"LongArray",name:"teamIds"}],response:[{type:"PropertyArray",name:"teams",reflectMapper:gt(pr)},{type:"LongArray",name:"tids"}]},v2SuperTeamGetByIds:{sid:32,cid:36,service:hr,params:[{type:"LongArray",name:"teamIds"}],response:[{type:"PropertyArray",name:"teams",reflectMapper:gt(pr)},{type:"LongArray",name:"tids"}]},v2TeamDismiss:{sid:31,cid:12,service:hr,params:[{type:"Long",name:"teamId"}]},v2SuperTeamDismiss:{sid:32,cid:4,service:hr,params:[{type:"Long",name:"teamId"}]},v2TeamAcceptInvitation:{sid:31,cid:21,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)}]},v2SuperTeamAcceptInvitation:{sid:32,cid:23,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)}]},v2TeamRejectInvite:{sid:31,cid:22,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2SuperTeamRejectInvite:{sid:32,cid:24,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2TeamKickMembers:{sid:31,cid:6,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2SuperTeamKickMembers:{sid:32,cid:6,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2TeamApplyToJoin:{sid:31,cid:13,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"ps"}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)},{type:"Int",name:"isInTeam"}]},v2SuperTeamApplyToJoin:{sid:32,cid:20,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"ps"}],response:[{type:"Property",name:"team",reflectMapper:gt(pr)},{type:"Int",name:"isInTeam"}]},v2TeamAcceptJoinApplication:{sid:31,cid:14,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},v2SuperTeamAcceptJoinApplication:{sid:32,cid:21,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},v2TeamRejectJoinApplication:{sid:31,cid:15,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2SuperTeamRejectJoinApplication:{sid:32,cid:22,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2TeamAddManagers:{sid:31,cid:16,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2SuperTeamAddManagers:{sid:32,cid:26,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2TeamRemoveManagers:{sid:31,cid:17,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2SuperTeamRemoveManagers:{sid:32,cid:27,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2TeamTransferOwner:{sid:31,cid:18,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Bool",name:"leave"}]},v2SuperTeamTransferOwner:{sid:32,cid:31,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Bool",name:"leave"}]},v2TeamUpdateSelfMemberInfo:{sid:31,cid:19,service:hr,params:[{type:"Property",name:"teamMember",reflectMapper:ur},{type:"Property",name:"specialFollowUpdate",reflectMapper:gr},{type:"Property",name:"antispam",reflectMapper:lr}],response:[{type:"Property",name:"data",reflectMapper:gt(ur)}]},v2SuperTeamUpdateSelfMemberInfo:{sid:32,cid:10,service:hr,params:[{type:"Property",name:"teamMember",reflectMapper:mr},{type:"Property",name:"specialFollowUpdate",reflectMapper:gr},{type:"Property",name:"antispam",reflectMapper:lr}],response:[{type:"Property",name:"data",reflectMapper:gt(mr)}]},v2TeamUpdateMember:{sid:31,cid:20,service:hr,params:[{type:"Property",name:"teamMember",reflectMapper:ur},{type:"Property",name:"antispam",reflectMapper:lr}]},v2SuperTeamUpdateMember:{sid:32,cid:30,service:hr,params:[{type:"Property",name:"teamMember",reflectMapper:mr},{type:"Property",name:"antispam",reflectMapper:lr}]},v2TeamGetMemberInvitor:{sid:31,cid:33,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}],response:[{type:"StrStrMap",name:"accountsMap"}]},v2SuperTeamGetMemberInvitor:{sid:32,cid:35,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}],response:[{type:"StrStrMap",name:"accountsMap"}]},v2TeamMemberSetChatBannedStatus:{sid:31,cid:25,service:hr,params:[{type:"Long",name:"teamId"},{type:"String",name:"accountId"},{type:"Int",name:"chatBanned"}]},v2SuperTeamMemberSetChatBannedStatus:{sid:32,cid:29,service:hr,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accountId"},{type:"Int",name:"chatBanned"}]},v2TeamSetChatBannedMode:{sid:31,cid:32,service:hr,params:[{type:"Long",name:"teamId"},{type:"Int",name:"chatBannedMode"}]},v2SuperTeamSetChatBannedMode:{sid:32,cid:28,service:hr,params:[{type:"Long",name:"teamId"},{type:"Int",name:"chatBannedMode"}]},v2TeamMemberGetListByIds:{sid:31,cid:35,service:hr,params:[{type:"StrArray",name:"tag"}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(ur)}]},v2SuperTeamMemberGetListByIds:{sid:32,cid:37,service:hr,params:[{type:"StrArray",name:"tag"}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(mr)}]},v2TeamMemberGetList:{sid:31,cid:36,service:hr,params:[{type:"Property",name:"tag",reflectMapper:{teamId:1,teamType:2,roleQueryType:3,onlyChatBanned:{id:4,converter:e=>+e},nextToken:5,limit:6,direction:7}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(ur)},{type:"Property",name:"pageInfo",reflectMapper:{1:"hasMore",2:"nextToken"}}]},v2TeamSync:{sid:8,cid:109,service:hr,response:[{type:"Long",name:"timetag"},{type:"PropertyArray",name:"datas",reflectMapper:gt(pr)}]},v2TeamCreateMultiSync:{sid:8,cid:101,service:hr,response:[{type:"Property",name:"data",reflectMapper:gt(pr)}]},v2TeamMemberUpdateMultiSync:{sid:8,cid:119,service:hr,response:[{type:"Property",name:"data",reflectMapper:gt(ur)}]},v2TeamMembersOfSelfInSync:{sid:8,cid:126,service:hr,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(ur)},{type:"Long",name:"timetag"}]},v2SuperTeamSync:{sid:21,cid:109,service:hr,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(pr)},{type:"Bool",name:"isAll"},{type:"Long",name:"timetag"}]},v2SuperTeamCreateMultiSync:{sid:21,cid:101,service:hr,response:[{type:"Property",name:"data",reflectMapper:gt(pr)}]},v2SuperTeamMemberUpdateMultiSync:{sid:21,cid:110,service:hr,response:[{type:"Property",name:"data",reflectMapper:gt(mr)}]},v2SuperTeamMembersOfSelfInSync:{sid:21,cid:111,service:hr,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(mr)},{type:"Long",name:"timetag"}]}};function fr(e,t){if(!e)return{};var i=e;return i.tinfo&&(i.tinfo=function(e){return ut(e,gt(pr))}(i.tinfo),i.tinfo.teamType=t),i.uinfos,void 0!==i.mute&&(i.mute=parseInt(i.mute)),i}function _r(e,t,i={}){return Object.assign({teamId:e,teamType:t,name:"",ownerAccountId:"",memberLimit:0,memberCount:0,createTime:0,updateTime:0,intro:"",announcement:"",avatar:"",joinMode:0,agreeMode:0,inviteMode:0,updateInfoMode:0,updateExtensionMode:0,chatBannedMode:0,isValidTeam:!0},i)}function Ir(e,t,i,r={}){return Object.assign({teamId:e,teamType:t,accountId:i,joinTime:0,inTeam:!0,memberRole:0,chatBanned:!1},r)}function yr(e,t=1){return e.map(e=>function(e,t=1){return e.teamType=t,e.chatBanned=void 0!==e.chatBanned&&e.chatBanned,e}(e,t))}function Er(e,t,i){var r,s=Object.assign(Object.assign({},t),{conversationId:e.V2NIMConversationIdUtil.messageConversationId(t),isSelf:t.senderId===e.account,sendingState:1,messageStatus:{errorCode:(null===(r=null==t?void 0:t.messageStatus)||void 0===r?void 0:r.errorCode)||200},messageSource:i||0});if(s.threadReply&&(s.threadReply=Object.assign(Object.assign({},s.threadReply),{conversationType:s.conversationType,conversationId:s.conversationId})),s.threadRoot&&(s.threadRoot=Object.assign(Object.assign({},s.threadRoot),{conversationType:s.conversationType,conversationId:s.conversationId})),s.isInBlackList&&(s.sendingState=2,s.messageStatus.errorCode=de.V2NIM_ERROR_CODE_ACCOUNT_IN_BLOCK_LIST,delete s.isInBlackList),s.streamConfig){var n=Ve(s.streamConfig,"isStream");if(!1===n)delete s.streamConfig;else if(!0===n&&void 0===s.streamConfig.status)delete s.streamConfig,t.aiConfig&&(t.aiConfig.aiStream=!0,t.aiConfig.aiStreamStatus=0);else if("number"==typeof s.streamConfig.status)return s.streamConfig={status:s.streamConfig.status},function(e){if(e.streamConfig&&e.aiConfig&&(e.aiConfig.aiStream=!0,e.aiConfig.aiStreamStatus=e.streamConfig.status,e.aiConfig.aiRAGs&&(e.streamConfig.rags=e.aiConfig.aiRAGs)),e.attachment&&e.streamConfig){var t=e.attachment;e.streamConfig.lastChunk={content:t.msg,messageTime:e.createTime,chunkTime:t.timestamp,type:t.type,index:t.index},e.aiConfig&&(e.aiConfig.aiStreamLastChunk=e.streamConfig.lastChunk),delete e.attachment}return e.aiConfig&&void 0===e.aiConfig.accountId&&delete e.aiConfig,e}(s)}return s.aiConfig&&void 0===s.aiConfig.accountId&&delete s.aiConfig,Mr(s,e)}function Mr(e,t){return 5===e.messageType?function(e,t){var i,r,s,n,o,a=t.attachment||{};if(t.attachment&&"type"in t.attachment)return t;var c=void 0;if(null===(i=a.data)||void 0===i?void 0:i.tinfo){var{id:d,data:l}=a,h=d>400?2:1,{tinfo:p}=fr(Object.assign({},l),h);c={},c=Me(p,["teamId"])}var u=Object.assign(Object.assign(Object.assign(Object.assign({raw:a.raw,type:Ar(e,a.id)},c?{updatedTeamInfo:c}:{}),{targetIds:(null===(r=a.data)||void 0===r?void 0:r.ids)||((null===(s=a.data)||void 0===s?void 0:s.id)?[a.data.id]:[])}),"string"==typeof(null===(n=a.data)||void 0===n?void 0:n.attach)?{serverExtension:a.data.attach}:{}),"number"==typeof(null===(o=a.data)||void 0===o?void 0:o.mute)?{chatBanned:0!==a.data.mute}:{});return Object.assign(Object.assign({},t),{attachment:u})}(t,e):100===e.messageType?function(e,t){var i,r,s;if("string"==typeof(null===(i=t.attachment)||void 0===i?void 0:i.raw)&&(null===(s=null===(r=e.V2NIMMessageService)||void 0===r?void 0:r.customAttachmentParsers)||void 0===s?void 0:s.length)>0){var n=t.subType||0,o=e.V2NIMMessageService.customAttachmentParsers,a=t.attachment.raw;o.some(i=>{try{var r=i(n,a);if(Se(r))return r.raw=a,t.attachment=r,!0}catch(t){return e.logger.warn(`customAttachmentParser: subType ${n}, raw: ${a}. parse error with ${t}`),!1}return!1})}return t}(t,e):e}function Tr(e,t){return Object.assign(Object.assign({},t),{conversationId:e.V2NIMConversationIdUtil.messageConversationId(t)})}function Sr(e,t){var{createTime:i,senderId:r,receiverId:s,conversationType:n}=t;return{conversationType:n,conversationId:e.V2NIMConversationIdUtil.messageConversationId({conversationType:n,senderId:r,receiverId:s}),senderId:t.senderId,receiverId:t.receiverId,messageServerId:t.messageServerId,createTime:i,messageClientId:t.messageClientId}}function Nr(e,t){var i={7:1,8:2,12:3,13:1,14:2}[t.sysMsgType];return{postscript:t.postscript,revokeType:{7:1,8:2,12:3,13:4,14:5}[t.sysMsgType]||0,revokeAccountId:t.opeAccount||t.senderId,callbackExtension:t.callbackExtension,serverExtension:t.attach||"",messageRefer:{conversationType:i,conversationId:e.V2NIMConversationIdUtil.messageConversationId(Object.assign(Object.assign({},t),{conversationType:i,senderId:t.senderId,receiverId:t.receiverId})),senderId:t.senderId,receiverId:t.receiverId,messageServerId:t.messageServerId,createTime:t.deleteMsgCreatetime,messageClientId:t.messageClientId}}}function Cr(e,t){return{conversationId:1===t.conversationType?e.V2NIMConversationIdUtil.p2pConversationId(t.receiverId):2===t.conversationType?e.V2NIMConversationIdUtil.teamConversationId(t.teamId):e.V2NIMConversationIdUtil.superTeamConversationId(t.teamId),deleteTime:t.deleteTime,serverExtension:t.serverExtension}}function Ar(e,t){var i={0:0,401:401,1:1,402:402,2:2,403:403,3:3,404:404,4:4,405:405,5:5,410:410,6:6,406:406,7:7,407:407,8:8,408:408,9:9,411:411,10:10,409:409};return void 0===i[t]&&e.logger.warn(`[V2NIMMessageService] undefined notification type: ${t}`),"number"==typeof i[t]?i[t]:-1}function Or(e,t){if(!t)return"";switch(e){case 100:return t.raw||"";case 1:case 3:case 2:case 6:return function(e){var t=e,{width:i,height:r,duration:s,path:n,file:o,raw:a,ctx:c,payload:d,bucketName:l,objectName:h,token:p,ext:u}=t,m=Me(t,["width","height","duration","path","file","raw","ctx","payload","bucketName","objectName","token","ext"]),g="string"==typeof u&&"."===u[0]?u.slice(1):u;return JSON.stringify(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},m),void 0===u?{}:{ext:g}),void 0===i?{}:{w:i}),void 0===r?{}:{h:r}),void 0===s?{}:{dur:s}))}(t);case 4:return function(e){return JSON.stringify({lat:e.latitude,lng:e.longitude,title:e.address})}(t);case 12:return function(e){var t=Me(e,["raw"]);try{return JSON.stringify(Object.assign(Object.assign({},t),{durations:e.durations.map(e=>({accid:e.accountId,duration:e.duration}))}))}catch(t){return JSON.stringify(e)}}(t);default:return t.raw||JSON.stringify(t)}}class Rr{constructor(e){this.core=e}doSendFile(e,t){return Te(this,void 0,void 0,function*(){var i=e.attachment;try{var[r,s]=yield this.core.V2NIMStorageService._uploadFile({taskId:e.messageClientId,uploadParams:{fileObj:(null==i?void 0:i.file)||(null==i?void 0:i.path),sceneName:null==i?void 0:i.sceneName}},t,{fileType:e.messageType}),n=Object.assign(Object.assign({},i),{uploadState:1});void 0!==s.w&&(n.width=n.width||s.w),void 0!==s.h&&(n.height=n.height||s.h),void 0!==s.dur&&(n.duration=n.duration||s.dur),n.ext=n.ext&&-1===n.ext.indexOf(".")?`.${n.ext}`:n.ext;var o=["w","h","dur","ext","name"];for(var a in s)o.includes(a)||(n[a]=s[a]);var{raw:c,file:d,path:l}=n,h=Me(n,["raw","file","path"]);e.attachment=JSON.parse(JSON.stringify(h)),e.attachment&&(e.attachment.raw=Or(e.messageType,e.attachment))}catch(t){throw e.attachment&&(e.attachment.uploadState=2),t}})}cancelMessageAttachmentUpload(e){return Te(this,void 0,void 0,function*(){if(_e({messageClientId:{type:"string",allowEmpty:!1}},e,"",!0),![2,6,1,3].includes(e.messageType))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`cancelMessageAttachmentUpload: messageType ${e.messageType} incorrect`}});if(2===e.sendingState||1===e.sendingState)throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST,detail:{reason:"cancelMessageAttachmentUpload: message is already failed or succeeded"}});yield this.core.V2NIMStorageService._cancelUploadFile(e.messageClientId)})}}var br="V2NIMMessageService",kr={"30_1":"v2SendP2pMessage","31_2":"v2SendTeamMessage","30_31":"v2MessageP2pModify","31_37":"v2MessageTeamModify","32_38":"v2MessageSuperTeamModify","7_33":"v2MessageOnModified","4_27":"v2MessageSyncModified","4_28":"v2MessageSuperTeamSyncModified","4_5":"v2BatchMarkRead","4_12":"syncP2PMessagReceipts","30_11":"v2SendP2PMessageReceipt","31_28":"v2SendTeamMessageReceipts","32_2":"v2SendSuperTeamMessage","7_12":"onP2PMessageReceipts","8_31":"onTeamMessageReceipts","31_29":"v2GetTeamMessageReceipts","31_30":"v2GetTeamMessageReceiptDetail","7_2":"onMsg","8_3":"onMsg","7_101":"onMsg","8_102":"onMsg","21_3":"onMsg","21_102":"onMsg","4_4":"syncOfflineMsgs","4_9":"syncRoamingMsgs","4_17":"syncRoamingMsgs","30_13":"v2RevokeMessage","32_17":"v2RevokeSuperTeamMessage","7_14":"onRevokeMessage","7_15":"syncRevokeMessage","21_18":"onRevokeMessage","21_117":"onRevokeMessage","30_23":"v2DeleteMessage","30_24":"v2DeleteMessages","4_21":"syncOnDeleteMessages","7_123":"onDeleteMessage","7_124":"onDeleteMessages","29_17":"v2DownloadLocalAntiSpamVocabs"},Lr={conversationType:{id:0,converter:xr,retConverter:Fr},receiverId:1,senderId:2,fromClientType:4,fromDeviceId:5,fromNick:6,createTime:{id:7,retType:"number"},messageType:{id:8,retType:"number"},text:9,attachment:{id:10,converter:(e,t)=>Or(t.messageType,e),retConverter:(e,t)=>function(e,t){var i;try{switch(i=JSON.parse(e),t){case 100:return{raw:e};case 4:return function(e,t){return{latitude:t.lat,longitude:t.lng,address:t.title,raw:e}}(e,i);case 2:case 3:case 1:case 6:return function(e,t){var{w:i,h:r,dur:s,ext:n}=t,o=Me(t,["w","h","dur","ext"]),a="string"==typeof n&&"."!==n[0]?`.${n}`:n;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},o),void 0===n?{}:{ext:a}),void 0===i?{}:{width:i}),void 0===r?{}:{height:r}),void 0===s?{}:{duration:s}),{raw:e})}(e,i);case 12:return function(e,t){return Object.assign(Object.assign({},t),{durations:t.durations.map(e=>({accountId:e.accid,duration:e.duration})),raw:e})}(e,i);default:return"object"==typeof i&&i?Object.assign(Object.assign({},i),{raw:e}):{raw:e}}}catch(t){return"object"==typeof i&&i?Object.assign(Object.assign({},i),{raw:e}):{raw:e}}}(e,Number(t[8]))},messageClientId:11,messageServerId:12,resend:{id:13,converter:vt,retType:"boolean"},userUpdateTime:{id:14,retType:"number"},serverExtension:15,pushPayload:{id:16,access:"pushConfig.pushPayload"},pushContent:{id:17,access:"pushConfig.pushContent"},forcePushAccountIds:{id:18,access:"pushConfig.forcePushAccountIds",def:e=>{if(e["pushConfig.forcePush"])return"#%@all@%#"},converter:(e,t)=>{if(t["pushConfig.forcePush"])return e?JSON.stringify(e):"#%@all@%#"},retConverter(e){if("#%@all@%#"!==e&&e)try{return JSON.parse(e)}catch(e){return[]}}},forcePushContent:{id:19,access:"pushConfig.forcePushContent"},forcePush:{id:20,access:"pushConfig.forcePush",converter:vt,retType:"boolean"},antispamCustomMessageEnabled:{id:21,def:e=>Ve(e,"antispamConfig.antispamCustomMessage")?1:void 0,retConverter:()=>{}},antispamCustomMessage:{id:22,access:"antispamConfig.antispamCustomMessage"},antispamBusinessId:{id:23,access:"antispamConfig.antispamBusinessId"},clientAntispamHit:{id:24,access:"clientAntispamHit",converter:vt,retType:"boolean"},antispamEnabled:{id:25,access:"antispamConfig.antispamEnabled",converter:vt,retType:"boolean"},needAck:{id:26,access:"messageConfig.readReceiptEnabled",converter:vt,retType:"boolean"},lastMessageUpdateEnabled:{id:28,access:"messageConfig.lastMessageUpdateEnabled",converter:vt,retType:"boolean"},threadReplySenderId:{id:29,access:"threadReply.senderId"},threadReplyReceiverId:{id:30,access:"threadReply.receiverId"},threadReplyTime:{id:31,access:"threadReply.createTime",retType:"number"},threadReplyServerId:{id:32,access:"threadReply.messageServerId"},threadReplyClientId:{id:33,access:"threadReply.messageClientId"},threadRootSenderId:{id:34,access:"threadRoot.senderId"},threadRootReceiverId:{id:35,access:"threadRoot.receiverId"},threadRootTime:{id:36,access:"threadRoot.createTime",retType:"number"},threadRootServerId:{id:37,access:"threadRoot.messageServerId"},threadRootClientId:{id:38,access:"threadRoot.messageClientId"},isDeleted:{id:39,converter:vt,retType:"boolean"},callbackExtension:40,subType:{id:41,retType:"number"},antispamCheating:{id:42,access:"antispamConfig.antispamCheating"},routeEnvironment:{id:43,access:"routeConfig.routeEnvironment"},antispamExtension:{id:44,access:"antispamConfig.antispamExtension"},antispamResult:45,__clientExt:{id:46,converter:ft,retConverter:_t},robotFunction:{id:47,access:"robotConfig.function"},robotTopic:{id:48,access:"robotConfig.topic"},robotCustomContent:{id:49,access:"robotConfig.customContent"},robotAccount:{id:50,access:"robotConfig.accountId"},_conversationOnlineSyncNotify:{id:51},_conversationOnlineSyncData:{id:52},aiAgentMsgDirection:{id:55,access:"aiConfig.aiStatus",retAccess:"aiConfig.aiStatus",retType:"number"},aiAgentAccount:{id:56,access:"aiConfig.accountId",retAccess:"aiConfig.accountId"},aiAgentContent:{id:57,access:"aiConfig.content",converter:ft,retConverter:Fe},aiAgentMessages:{id:58,access:"aiConfig.messages",converter:ft,retConverter:Fe},aiAgentPromptVariables:{id:59,access:"aiConfig.promptVariables",retConverter:Fe},aiAgentModelConfigParams:{id:60,access:"aiConfig.modelConfigParams",converter:ft,retConverter:Fe},errorCode:{id:61,access:"messageStatus.errorCode",converter:Fe,retType:"number"},modifyTime:{id:62,retType:"number"},modifyAccountId:63,aiStream:{id:65,access:"aiConfig.aiStream",retAccess:"streamConfig.isStream",converter:vt,retConverter:function(e){return 1===parseInt(e)}},aiRAGs:{id:66,access:"aiConfig.aiRAGs",retConverter:function(e){try{var t=JSON.parse(e);return t&&t.length>0?t.map(e=>(e.desc&&(e.description=e.desc,delete e.desc),e)):[]}catch(e){return[]}}},aiStreamStatus:{id:67,access:"streamConfig.status",retType:"number"},historyEnabled:{id:100,access:"messageConfig.historyEnabled",converter:vt,retType:"boolean"},roamingEnabled:{id:101,access:"messageConfig.roamingEnabled",converter:vt,retType:"boolean"},onlineSyncEnabled:{id:102,access:"messageConfig.onlineSyncEnabled",converter:vt,retType:"boolean"},routeEnabled:{id:105,access:"routeConfig.routeEnabled",converter:vt,retType:"boolean"},isInBlackList:{id:106,access:"isInBlackList",converter:vt,retType:"boolean"},pushEnable:{id:107,access:"pushConfig.pushEnabled",converter:vt,retType:"boolean"},offlineEnabled:{id:108,access:"messageConfig.offlineEnabled",converter:vt,retType:"boolean"},unreadEnabled:{id:109,access:"messageConfig.unreadEnabled",converter:vt,retType:"boolean"},pushNickEnabled:{id:110,access:"pushConfig.pushNickEnabled",converter:vt,retType:"boolean"},msgAckSnapshot:{id:112,retType:"number"},receiverIds:{id:154,access:"targetConfig.receiverIds",converter:ft,retConverter:()=>{}},inclusive:{id:155,access:"targetConfig.inclusive",converter:e=>e?1:2,retConverter:()=>{}},newMemberVisible:{id:156,access:"targetConfig.newMemberVisible",converter:e=>e?1:2,retConverter:()=>{}}},Vr=(gt(Lr),{conversationType:{id:1,access:"messageRefer.conversationType",retType:"number"},senderId:{id:2,access:"messageRefer.senderId"},receiverId:{id:3,access:"messageRefer.receiverId"},messageServerId:{id:4,access:"messageRefer.messageServerId"},messageClientId:{id:5,access:"messageRefer.messageClientId"},createTime:{id:6,access:"messageRefer.createTime",retType:"number"},deleteTime:{id:7,retType:"number"},serverExtension:8});gt(Vr);var Pr={version:1,md5:2,nosurl:3,thesaurus:4},Dr={createTime:{id:0,retType:"number"},sysMsgType:1,receiverId:2,senderId:3,postscript:4,attach:5,pushContent:8,pushPayload:9,messageClientId:10,messageServerId:11,deleteMsgCreatetime:{id:14,retType:"number"},opeAccount:16,env:21,callbackExtension:22},wr={receiverId:0,messageServerId:1,readCount:{id:100,retType:"number"},unreadCount:{id:101,retType:"number"},messageClientId:102,latestReadAccount:103},Ur={v2BatchMarkRead:{sid:4,cid:5,service:br,hasPacketResponse:!1,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]},v2SendP2pMessage:{sid:30,cid:1,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},onMsg:{sid:7,cid:2,service:br,response:[{type:"Property",name:"msg",reflectMapper:gt(Lr)}]},syncOfflineMsgs:{sid:4,cid:4,service:br,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Lr)}]},syncRoamingMsgs:{sid:4,cid:9,service:br,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Lr)}]},v2SendP2PMessageReceipt:{sid:30,cid:11,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2RevokeMessage:{sid:30,cid:13,service:br,params:[{type:"Property",name:"tag",reflectMapper:Dr}]},v2DeleteMessage:{sid:30,cid:23,service:br,params:[{type:"Property",name:"tag",reflectMapper:Vr}],response:[{type:"Long",name:"timetag"}]},v2DeleteMessages:{sid:30,cid:24,service:br,params:[{type:"PropertyArray",name:"tag",reflectMapper:Vr}],response:[{type:"Long",name:"timetag"}]},v2SendTeamMessage:{sid:31,cid:2,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2SendTeamMessageReceipts:{sid:31,cid:28,service:br,params:[{type:"PropertyArray",name:"tag",reflectMapper:wr}],response:[{type:"PropertyArray",name:"tag",reflectMapper:gt(wr)}]},v2SendSuperTeamMessage:{sid:32,cid:2,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2RevokeSuperTeamMessage:{sid:32,cid:17,service:br,params:[{type:"Property",name:"tag",reflectMapper:Dr}]},syncP2PMessagReceipts:{sid:4,cid:12,service:br,response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Lr)}]},onP2PMessageReceipts:{sid:7,cid:12,service:br,response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2GetTeamMessageReceipts:{sid:31,cid:29,service:br,params:[{type:"PropertyArray",name:"tag",reflectMapper:wr}],response:[{type:"PropertyArray",name:"data",reflectMapper:gt(wr)}]},v2GetTeamMessageReceiptDetail:{sid:31,cid:30,service:br,params:[{type:"Property",name:"tag",reflectMapper:wr,select:["receiverId","messageServerId"]}],response:[{type:"Property",name:"data",reflectMapper:gt(wr)},{type:"StrArray",name:"readAccountList"},{type:"StrArray",name:"unreadAccountList"}]},onTeamMessageReceipts:{sid:8,cid:31,service:br,response:[{type:"PropertyArray",name:"data",reflectMapper:gt(wr)}]},onRevokeMessage:{sid:7,cid:14,service:br,response:[{type:"Property",name:"data",reflectMapper:gt(Dr)}]},syncRevokeMessage:{sid:7,cid:15,service:br,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Dr)}]},syncOnDeleteMessages:{sid:4,cid:21,service:br,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Vr)}]},onDeleteMessage:{sid:7,cid:123,service:br,response:[{type:"Property",name:"data",reflectMapper:gt(Vr)}]},onDeleteMessages:{sid:7,cid:124,service:br,response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Vr)}]},v2DownloadLocalAntiSpamVocabs:{sid:29,cid:17,service:br,params:[{type:"Property",name:"tag",reflectMapper:Pr}],response:[{type:"Property",name:"data",reflectMapper:gt(Pr)}]},v2MessageP2pModify:{sid:30,cid:31,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2MessageTeamModify:{sid:31,cid:37,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2MessageSuperTeamModify:{sid:32,cid:38,service:br,params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2MessageOnModified:{sid:7,cid:33,service:br,response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},v2MessageSyncModified:{sid:4,cid:27,service:br,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Lr)},{type:"Long",name:"time"}]},v2MessageSuperTeamSyncModified:{sid:4,cid:28,service:br,response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Lr)},{type:"Long",name:"time"}]}};function xr(e){return 1===e?0:2===e?1:3===e?5:void 0}function Fr(e){var t=parseInt(e);return 0===t?1:1===t?2:5===t?3:0}var Br={timestamp:{id:0,retType:"number"},type:{id:1,retType:"number"},receiverId:2,senderId:3,postscript:4,content:5,idServer:6,offlineEnabled:{id:7,converter:vt,retConverter:function(e,t){return"0"!==t[6]&&!!parseInt(e)},access:"notificationConfig.offlineEnabled"},pushContent:{id:8,access:"pushConfig.pushContent"},pushPayload:{id:9,access:"pushConfig.pushPayload"},deletedIdClient:10,deletedIdServer:11,antispamEnabled:{id:12,converter:vt,retType:"boolean",access:"antispamConfig.antispamEnabled"},antispamCustomNotification:{id:13,access:"antispamConfig.antispamCustomNotification"},deletedMsgCreateTime:14,deletedMsgFromNick:15,opeAccount:16,forcePushAccountIds:{id:18,access:"pushConfig.forcePushAccountIds",def:e=>{if(101===e.type&&e["pushConfig.forcePush"])return"#%@all@%#"},converter:(e,t)=>{if(t["pushConfig.forcePush"])return e?JSON.stringify(e):"#%@all@%#"},retConverter(e){if("#%@all@%#"!==e&&e)try{return JSON.parse(e)}catch(e){return[]}}},forcePushContent:{id:19,access:"pushConfig.forcePushContent"},forcePush:{id:20,converter:vt,retType:"boolean",access:"pushConfig.forcePush"},routeEnvironment:{id:21,access:"routeConfig.routeEnvironment"},callbackExt:22,clientNotificationId:{id:23,access:"notificationConfig.clientNotificationId"},conversationOnlineSyncNotify:24,conversationOnlineSyncData:25,routeEnabled:{id:105,converter:vt,retType:"boolean",access:"routeConfig.routeEnabled"},pushEnabled:{id:107,converter:vt,retType:"boolean",access:"pushConfig.pushEnabled"},unreadEnabled:{id:109,converter:vt,retType:"boolean",access:"notificationConfig.unreadEnabled"},pushNickEnabled:{id:110,converter:vt,retType:"boolean",access:"pushConfig.pushNickEnabled"}},jr={id:1,senderId:2,timestamp:{id:4,retType:"number"},content:5},Gr=(gt(Br),gt(jr),gt(jr),gt(Br),gt(Br),gt(Br),{"4_5":"ysfBatchMarkRead","101_1":"ysfSendMessage","101_2":"ysfOnMsg","4_100":"ysfSyncOfflineMsgs","101_3":"ysfOnSysNotification","101_7":"ysfSendCustomNotification","4_101":"ysfSyncSysNotification"}),$r={ysfBatchMarkRead:{sid:4,cid:5,service:"YSFService",hasPacketResponse:!1,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]},ysfSendMessage:{sid:101,cid:1,service:"YSFService",params:[{type:"Property",name:"tag",reflectMapper:Lr}],response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},ysfOnMsg:{sid:101,cid:2,service:"YSFService",response:[{type:"Property",name:"data",reflectMapper:gt(Lr)}]},ysfSyncOfflineMsgs:{sid:4,cid:100,service:"YSFService",response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Lr)}]},ysfOnSysNotification:{sid:101,cid:3,service:"YSFService",response:[{type:"Property",name:"data",reflectMapper:gt(Br)}]},ysfSendCustomNotification:{sid:101,cid:7,service:"YSFService",params:[{type:"Property",name:"tag",reflectMapper:Br}]},ysfSyncSysNotification:{sid:4,cid:101,service:"YSFService",response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(Br)}]}},Hr={content:{type:"string",allowEmpty:!1},params:{type:"object",required:!1,rules:{notificationConfig:{type:"object",required:!1,rules:{offlineEnabled:{type:"boolean",required:!1},unreadEnabled:{type:"boolean",required:!1}}},pushConfig:{type:"object",required:!1,rules:{pushEnabled:{type:"boolean",required:!1},pushNickEnabled:{type:"boolean",required:!1},pushContent:{type:"string",required:!1},pushPayload:{type:"string",required:!1},forcePush:{type:"boolean",required:!1},forcePushContent:{type:"string",required:!1},forcePushAccountIds:{type:"array",required:!1,itemType:"string"}}},antispamConfig:{type:"object",required:!1,rules:{antispamEnabled:{type:"boolean",required:!1},antispamCustomNotification:{type:"string",required:!1}}},routeConfig:{type:"object",required:!1,rules:{routeEnabled:{type:"boolean",required:!1},routeEnvironment:{type:"string",required:!1}}}}}};class Yr{constructor(e){this.core=e}generateNotificationTag(e,t,i={}){var r=this.core.V2NIMConversationIdUtil.parseConversationType(e),s=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e),n=Date.now();return Object.assign(Object.assign({},i),{notificationConfig:Object.assign({unreadEnabled:!0,offlineEnabled:!0},null==i?void 0:i.notificationConfig),pushConfig:Object.assign({pushEnabled:!0,pushNickEnabled:!0},null==i?void 0:i.pushConfig),antispamConfig:Object.assign({antispamEnabled:!0},null==i?void 0:i.antispamConfig),routeConfig:Object.assign({routeEnabled:!0},null==i?void 0:i.routeConfig),timestamp:n,type:{1:100,2:101,3:103}[r],receiverId:s,content:t})}}function qr(e){var t="object"==typeof e?e:void 0,i="string"==typeof e?e:void 0;if(!t&&!i)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getFileOrPath::incorrect file and path"}});if("string"==typeof i)if(0===i.indexOf("nim-external")){var r=document.getElementById(i);if(!(r&&r.files&&r.files[0]))throw new pe({code:de.V2NIM_ERROR_CODE_FILE_NOT_FOUND,detail:{reason:`getFileOrPath::file not exist: ${i}`}});t=r.files[0]}else if("BROWSER"===Oe.platform)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`getFileOrPath::incorrect path: ${i}`}});if("object"==typeof t&&void 0===t.size)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getFileOrPath::file no size"}});return{file:t,path:i}}var Kr={attachment:{type:"object",rules:{url:{type:"string",allowEmpty:!1}}},thumbSize:{type:"object",rules:{width:{type:"number",required:!1,min:0},height:{type:"number",required:!1,min:0}}}};class Wr extends ii{constructor(e){super("V2NIMStorageUtil",e),this.core=e}imageThumbUrl(e,t){return e+`?imageView&thumbnail=${t}z${t}`}videoCoverUrl(e,t){return e+`?vframe&offset=${t}`}getImageThumbUrl(e,t){return Te(this,void 0,void 0,function*(){this.checkV2();var i=e;_e(Kr,{attachment:i,thumbSize:t},"",!0),t.width=t.width||0,t.height=t.height||0,0===t.width&&0===t.height&&(t.width=150);var r=i.url;try{r=yield this.core.V2NIMStorageService.shortUrlToLong(i.url)}catch(e){this.core.logger.warn("shortUrlToLong error:",e)}return{url:this.core.cloudStorage.getThumbUrl(r,t)}})}getVideoCoverUrl(e,t){return Te(this,void 0,void 0,function*(){this.checkV2();var i=e;_e(Kr,{attachment:i,thumbSize:t},"",!0),t.width=t.width||0,t.height=t.height||0,0===t.width&&0===t.height&&(t.width=150);var r=i.url;try{r=yield this.core.V2NIMStorageService.shortUrlToLong(i.url)}catch(e){this.core.logger.warn("shortUrlToLong error:",e)}return{url:this.core.cloudStorage.getVideoCoverUrl(r,t)}})}}var Jr,zr,Xr={file:{md5:"$(Etag)",size:"$(ObjectSize)"},image:{md5:"$(Etag)",size:"$(ObjectSize)",w:"$(ImageInfo.Width)",h:"$(ImageInfo.Height)",orientation:"$(ImageInfo.Orientation)"},audio:{md5:"$(Etag)",size:"$(ObjectSize)",dur:"$(AVinfo.Audio.Duration)"},video:{md5:"$(Etag)",size:"$(ObjectSize)",dur:"$(AVinfo.Video.Duration)",w:"$(AVinfo.Video.Width)",h:"$(AVinfo.Video.Height)"}},Qr={accessKeyId:"",secretAccessKey:"",sessionToken:"",region:"",maxRetries:0,bucket:"",objectName:"",token:"",shortUrl:""};function Zr(e="file"){var t=Xr[e]||{};return JSON.stringify(t).replace(/"/gi,'\\"')}!function(e){e[e.nos=1]="nos",e[e.s3=2]="s3"}(Jr||(Jr={})),function(e){e[e.dontNeed=-1]="dontNeed",e[e.time=2]="time",e[e.urls=3]="urls"}(zr||(zr={}));var es={chunkUploadHost:"https://wannos-web.127.net",chunkUploadHostBackupList:["https://fileup.chatnos.com","https://oss.chatnos.com"],commonUploadHost:"https://fileup.chatnos.com",commonUploadHostBackupList:["https://oss.chatnos.com"],chunkMaxSize:4194304e4,commonMaxSize:104857600,uploadReplaceFormat:"https://{host}/{object}",cdn:{defaultCdnDomain:"nim-nosdn.netease.im",cdnDomain:"",bucket:"nim",objectNamePrefix:""},downloadUrl:"https://{bucket}-nosdn.netease.im/{object}",downloadHostList:["nos.netease.com"],nosCdnEnable:!0,isNeedToGetUploadPolicyFromServer:!0};function ts(e,t){e=e||{},t=t||(()=>!0);var i={};for(var r in e)t(e[r])&&(i[r]=e[r]);return i}class is{constructor(e,t){this.nosCdnHostTimer=0,this.nosErrorCount=0,this.core=e,this.cloudStorage=t}get config(){return this.cloudStorage.config}reset(){this.nosErrorCount=0}getNosAccessToken(e){return Te(this,void 0,void 0,function*(){var t=Ve(yield this.core.sendCmd("getNosAccessToken",{tag:e}),"content.nosAccessTokenTag.token"),i=e.url;return{token:t,url:-1!==i.indexOf("?")?i+"&token="+t:i+"?token="+t}})}deleteNosAccessToken(e){return Te(this,void 0,void 0,function*(){yield this.core.sendCmd("deleteNosAccessToken",{tag:e})})}nosUpload(e,t,i){var r,s,n,o,a,c,d,l,h,p;return Te(this,void 0,void 0,function*(){var u=Ve(this.core,"config.cdn.bucket"),m={tag:e.nosScenes||u||"nim"};e.nosSurvivalTime&&(m.expireSec=e.nosSurvivalTime);var g,v=this.core.adapters.getFileUploadInformation(e);if(v&&v.complete&&t.destroy(),!i&&!v)try{g=yield this.core.sendCmd("getNosToken",{responseBody:Zr(e.type),nosToken:m})}catch(e){if(this.core.logger.error("uploadFile:: getNosToken error",e),t.destroy(),e instanceof pe)throw e;throw new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"getNosToken error",rawError:e,curProvider:1}})}var f=this.config.uploadReplaceFormat.replace("{bucket}",this.config.cdn.bucket).replace("{host}",this.config.cdn.cdnDomain||this.config.cdn.defaultCdnDomain).replace("{object}",v?null===(r=v.uploadInfo)||void 0===r?void 0:r.objectName:i?null==i?void 0:i.objectName:g.content.nosToken.objectName),_="";i&&i.shortUrl&&(_=i.shortUrl),(null===(o=null===(n=null===(s=null==v?void 0:v.uploadInfo)||void 0===s?void 0:s.payload)||void 0===n?void 0:n.mixStoreToken)||void 0===o?void 0:o.shortUrl)&&(_=v.uploadInfo.payload.mixStoreToken.shortUrl);var I,y=_||f;try{var E=v?{token:null===(a=null==v?void 0:v.uploadInfo)||void 0===a?void 0:a.token,bucket:null===(c=null==v?void 0:v.uploadInfo)||void 0===c?void 0:c.bucketName,objectName:null===(d=null==v?void 0:v.uploadInfo)||void 0===d?void 0:d.objectName}:i||g.content.nosToken;this.core.logger.log("uploadFile:: uploadFile params",{nosToken:E,chunkUploadHost:this.config.chunkUploadHost,chunkUploadHostBackupList:this.config.chunkUploadHostBackupList,commonUploadHost:this.config.commonUploadHost,commonUploadHostBackupList:this.config.commonUploadHostBackupList,platform:Oe.platform});var M="BROWSER"===Oe.platform?this.config.chunkUploadHost:`${this.config.commonUploadHost}/${E&&E.bucket}`,T="UNIAPP"===Oe.platform||"MINIAPP"===(null===(l=Oe.getSystemInfo())||void 0===l?void 0:l.libEnv)?4:i?2:0,S=e.filePath?e.filePath:"object"==typeof e.file?e.file.name:"";t.update({remote_addr:M,operation_type:T}),S&&t.update({local_file:S}),I=yield this.core.adapters.uploadFile(Object.assign(Object.assign(Object.assign(Object.assign({},e),{nosToken:E,chunkUploadHost:this.config.chunkUploadHost,chunkUploadHostBackupList:this.config.chunkUploadHostBackupList,commonUploadHost:this.config.commonUploadHost,commonUploadHostBackupList:this.config.commonUploadHostBackupList,maxSize:e.maxSize||this.config.chunkMaxSize}),i?{payload:{mixStoreToken:i}}:{}),{onUploadInfo:e=>{t.update(Object.assign({},e))}}),t)}catch(r){this.core.logger.error("uploadFile::nos uploadFile error:",r);var N="v2"===Ve(this.core,"options.apiVersion");if(r.code===de.V2NIM_ERROR_CODE_CANCELLED||10499===r.errCode)throw new ge({code:N?de.V2NIM_ERROR_CODE_CANCELLED:400,detail:{reason:Ve(r,"message")||"Request abort",rawError:r,curProvider:1}});if(N&&r.errCode===de.V2NIM_ERROR_CODE_FILE_OPEN_FAILED)throw new pe({code:de.V2NIM_ERROR_CODE_FILE_OPEN_FAILED,detail:{reason:Ve(r,"message")||"Read file failed",rawError:r,curProvider:1}});var{net_connect:C}=yield Oe.net.getNetworkStatus();if(!1===C)throw new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"No network",rawError:r,curProvider:1}});if(i){if(this.nosErrorCount<=0){try{this.cloudStorage.mixStorage._addCircuitTimer()}catch(t){throw new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"All upload attempts failed",rawError:t,curProvider:this.cloudStorage.mixStorage.curProvider,mixStorePolicy:this.cloudStorage.mixStorage.mixStorePolicy,file:e.file||e.filePath}})}return this.nosErrorCount=Ve(this.cloudStorage,"mixStorePolicy.nosPolicy.uploadConfig.retryPolicy.retry"),this.cloudStorage._uploadFile(e,t)}return this.nosErrorCount--,this.nosUpload(e,t,i)}throw new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"NOS attempts failed",rawError:r,curProvider:1}})}var A=null==I?void 0:I.type,O=A&&A.indexOf("/")>-1?A.slice(0,A.indexOf("/")):"";O||(O=e.type||"");var R,b={image:"imageInfo",video:"vinfo",audio:"vinfo"};if(!b[O])return Object.assign({url:y},I);if(I.w&&I.h||I.dur)return Object.assign({url:y},I);try{R=yield this.core.adapters.request(`${f}?${b[O]}`,{method:"GET",dataType:"json",timeout:5e3},{exception_service:3})}catch(e){var k=e;return t.update({exception:`Fetch media info failed;url:${f}?${b[O]};errMsg:${(null===(h=k.detail)||void 0===h?void 0:h.reason)||k.message}`,external_code:k.code}),this.core.logger.error("uploadFile:: fetch file info error",e),Object.assign({url:y},I)}if(R){var{data:L}=R,V="imageInfo"===b[O]?L:null===(p=null==L?void 0:L.GetVideoInfo)||void 0===p?void 0:p.VideoInfo;return ts({url:y,name:I.name,size:I.size,ext:I.ext,w:null==V?void 0:V.Width,h:null==V?void 0:V.Height,orientation:null==V?void 0:V.Orientation,dur:null==V?void 0:V.Duration,audioCodec:null==V?void 0:V.AudioCodec,videoCodec:null==V?void 0:V.VideoCodec,container:null==V?void 0:V.Container},function(e){return void 0!==e})}return Object.assign({url:y},I)})}_getNosCdnHost(){var e;return Te(this,void 0,void 0,function*(){var t;try{t=yield this.core.sendCmd("getNosCdnHost")}catch(e){return void this.core.logger.error("getNosCdnHost::error",e)}if(t){var i=null===(e=null==t?void 0:t.content)||void 0===e?void 0:e.nosConfigTag,r=parseInt(null==i?void 0:i.expire);0!==r&&i.cdnDomain?-1===r?(this.config.cdn.bucket=i.bucket,this.config.cdn.cdnDomain=i.cdnDomain,this.config.cdn.objectNamePrefix=i.objectNamePrefix):(this.config.cdn.bucket=i.bucket,this.config.cdn.cdnDomain=i.cdnDomain,this.config.cdn.objectNamePrefix=i.objectNamePrefix,this.nosCdnHostTimer=this.core.timerManager.addTimer(()=>{this._getNosCdnHost()},1e3*r)):(this.config.cdn.bucket="",this.config.cdn.cdnDomain="",this.config.cdn.objectNamePrefix="")}})}}var rs={"6_2":"getNosToken","6_22":"getOriginUrl","6_24":"getNosAccessToken","6_25":"deleteNosAccessToken","6_26":"getNosCdnHost","6_27":"getGrayscaleConfig","6_28":"getMixStorePolicy","6_29":"getMixStoreToken","6_30":"getFileAuthToken"},ss={nosToken:{objectName:1,token:2,bucket:3,expireTime:4,expireSec:7,tag:8,shortUrl:9},mixStoreTokenReqTag:{provider:0,tokenCount:1,nosSurvivalTime:2,tag:3,returnBody:4,policyVersion:5},nosConfigTag:{bucket:1,cdnDomain:2,expire:3,objectNamePrefix:4},grayConfigTag:{config:0,ttl:1},mixStorePolicyTag:{providers:0,ttl:1,mixEnable:2,nosPolicy:3,s3Policy:4,policyVersion:5},mixStoreTokenResTag:{provider:0,accessKeyId:1,secretAccessKey:2,sessionToken:3,token:4,expireTime:5,bucket:6,objectName:7,fileExpireSec:8,tag:9,shortUrl:10,region:11},nosSafeUrlTag:{safeUrl:0,originUrl:1},mixStoreAuthTokenReqTag:{type:1,urls:2},mixStoreAuthTokenResTag:{type:1,tokens:2,token:3,ttl:4},nosAccessTokenTag:{token:0,url:1,userAgent:2,ext:3}},ns={getNosToken:{sid:6,cid:2,service:"cloudStorage",params:[{type:"String",name:"responseBody"},{type:"Property",name:"nosToken",entity:"nosToken",reflectMapper:ss.nosToken}],response:[{type:"Property",name:"nosToken",reflectMapper:gt(ss.nosToken)}]},getOriginUrl:{sid:6,cid:22,service:"cloudStorage",params:[{type:"Property",name:"nosSafeUrlTag",reflectMapper:ss.nosSafeUrlTag}],response:[{type:"Property",name:"nosSafeUrlTag",reflectMapper:gt(ss.nosSafeUrlTag)}]},getNosCdnHost:{sid:6,cid:26,service:"cloudStorage",response:[{type:"Property",name:"nosConfigTag",reflectMapper:gt(ss.nosConfigTag)}]},getGrayscaleConfig:{sid:6,cid:27,service:"cloudStorage",params:[{type:"Property",name:"config"}],response:[{type:"Property",name:"grayConfigTag",reflectMapper:gt(ss.grayConfigTag)}]},getMixStorePolicy:{sid:6,cid:28,service:"cloudStorage",params:[{type:"LongArray",name:"supportType"}],response:[{type:"Property",name:"mixStorePolicyTag",reflectMapper:gt(ss.mixStorePolicyTag)}]},getMixStoreToken:{sid:6,cid:29,service:"cloudStorage",params:[{type:"Property",name:"mixStoreTokenReqTag",reflectMapper:ss.mixStoreTokenReqTag}],response:[{type:"Property",name:"mixStoreTokenResTag",reflectMapper:gt(ss.mixStoreTokenResTag)}]},getFileAuthToken:{sid:6,cid:30,service:"cloudStorage",params:[{type:"Property",name:"mixStoreAuthTokenReqTag",reflectMapper:ss.mixStoreAuthTokenReqTag}],response:[{type:"Property",name:"mixStoreAuthTokenResTag",reflectMapper:gt(ss.mixStoreAuthTokenResTag)}]},getNosAccessToken:{sid:6,cid:24,service:"cloudStorage",params:[{type:"Property",name:"tag",reflectMapper:ss.nosAccessTokenTag}],response:[{type:"Property",name:"tag",reflectMapper:gt(ss.nosAccessTokenTag)}]},deleteNosAccessToken:{sid:6,cid:25,service:"cloudStorage",params:[{type:"Property",name:"tag",reflectMapper:ss.nosAccessTokenTag}]}};class os{constructor(e,t){this.GRAYKEY="AllGrayscaleConfig",this.MIXSTOREKEY="AllMixStorePolicy",this.grayConfig={mixStoreEnable:!1,timeStamp:0,ttl:0},this.mixStorePolicy={providers:[],timeStamp:0,ttl:0,s3Policy:null,nosPolicy:null,policyVersion:void 0},this.curProvider=1,this.mixStoreErrorCount=10,this.circuitTimer=0,this.core=e,this.cloudStorage=t,this.logger=e.logger}reset(){this.grayConfig=null,this.mixStorePolicy={providers:[],timeStamp:0,ttl:0,s3Policy:null,nosPolicy:null,policyVersion:void 0},this.curProvider=1,this.mixStoreErrorCount=10}getGrayscaleConfig(e,t){var i;return Te(this,void 0,void 0,function*(){if(Oe.localStorage)try{Oe.localStorage.getItem&&Oe.localStorage.getItem(this.GRAYKEY)&&(this.grayConfig=JSON.parse(Oe.localStorage.getItem(this.GRAYKEY))[e])}catch(e){Oe.localStorage.getItem(this.GRAYKEY)&&this.core.logger.error("uploadFile:: JSON.parse grayscaleConfig error ",e)}if(!this.grayConfig||this.grayConfig.timeStamp+1e3*this.grayConfig.ttlt){var i=this.mixStorePolicy.timeStamp+1e3*this.mixStorePolicy.ttl-t;this.core.timerManager.addTimer(this._getMixStorePolicy.bind(this,e),i)}}catch(t){Oe.localStorage.getItem(this.MIXSTOREKEY)&&JSON.parse(Oe.localStorage.getItem(this.MIXSTOREKEY))[e]&&this.core.logger.error("uploadFile:: JSON.parse mixStorePolicy error ",t)}if(!this.mixStorePolicy||this.mixStorePolicy.timeStamp+1e3*this.mixStorePolicy.ttl<=t)try{var r=(yield this.core.sendCmd("getMixStorePolicy",{supportType:this.cloudStorage.aws.s3?[1,2]:[1]})).content.mixStorePolicyTag;this.mixStorePolicy={providers:[],timeStamp:0,ttl:0,s3Policy:null,nosPolicy:null,policyVersion:void 0},this.mixStorePolicy.policyVersion=r.policyVersion,this.mixStorePolicy.ttl=Number(r.ttl),this.mixStorePolicy.providers=r.providers.split(","),this.circuitTimer&&this.core.timerManager.deleteTimer(this.circuitTimer),this.curProvider=parseInt(this.mixStorePolicy.providers[0]),this.mixStorePolicy.nosPolicy=r.nosPolicy?JSON.parse(r.nosPolicy):null,this.mixStorePolicy.s3Policy=r.s3Policy?JSON.parse(r.s3Policy):null,null===this.mixStorePolicy.s3Policy?this.mixStorePolicy.providers=["1"]:null===this.mixStorePolicy.nosPolicy?this.mixStorePolicy.providers=["2"]:this.mixStorePolicy.providers=this.mixStorePolicy.s3Policy.priority{this.logger.log(`uploadFile:: upload policy will change,now policy:${this.curProvider} nextProvider:${parseInt(this.mixStorePolicy.providers[0])}`),this.curProvider=parseInt(this.mixStorePolicy.providers[0]),this.core.timerManager.deleteTimer(this.circuitTimer)},1e3*i)}throw new Error("uploadFile will not retry again")}getFileAuthToken(e){return Te(this,void 0,void 0,function*(){return(yield this.core.sendCmd("getFileAuthToken",{mixStoreAuthTokenReqTag:e})).content.mixStoreAuthTokenResTag})}}var as=-1;class cs{constructor(e,t){this.s3=null,this.core=e,this.cloudStorage=t,this.logger=e.logger}get mixStorePolicy(){return this.cloudStorage.mixStorage.mixStorePolicy}s3Upload(e,t,i){return Te(this,void 0,void 0,function*(){var r;if(as+=1,e.file)r=e.file;else if("string"==typeof e.fileInput){this.logger.warn("fileInput will abandon,Please use file or filepath");var s=document.getElementById(e.fileInput);if(!(s&&s.files&&s.files[0]))throw new Error("Can not get file from fileInput");r=s.files[0]}else{if(!(e.fileInput&&e.fileInput.files&&e.fileInput.files[0]))throw new Error(`Can not get file from fileInput ${e.fileInput}`);r=e.fileInput.files[0]}if(!this.mixStorePolicy.s3Policy)throw new Error("dont get s3 policy");var n={accessKeyId:i.accessKeyId,secretAccessKey:i.secretAccessKey,sessionToken:i.sessionToken,region:i.region,maxRetries:this.mixStorePolicy.s3Policy.uploadConfig.retryPolicy.retry},o=this.s3,a=decodeURIComponent(i.bucket),c=decodeURIComponent(i.objectName),d=r,l=`https://${a}.s3.amazonaws.com/${c}`,h={},p=this.mixStorePolicy.s3Policy;if(p&&p.uploadConfig&&Array.isArray(p.uploadConfig.uploadUrl)&&p.uploadConfig.uploadUrl.length>0){var u=p.uploadConfig.uploadUrl.length;as%=u,h.endpoint=p.uploadConfig.uploadUrl[as],h.s3ForcePathStyle=!0,l=`${h.endpoint}/${a}/${c}`}t.update({local_file:r.name,remote_addr:l,operation_type:1});var m=new o(h);m.config.update(n);var g={Bucket:a,Key:c,Body:d,Metadata:{token:i.token},ContentType:d.type||"application/octet-stream"};this.core.logger.log("uploadFile:: s3 upload params:",g);var v=m.upload(g);return v.on("httpUploadProgress",i=>{t.update({index:i.part});var r=parseFloat((i.loaded/i.total).toFixed(2));e.onUploadProgress&&e.onUploadProgress({total:i.total,loaded:i.loaded,percentage:r,percentageText:Math.round(100*r)+"%"})}),new Promise((r,s)=>{var n=(new Date).getTime();v.send((o,l)=>Te(this,void 0,void 0,function*(){var h,p,u;if(o&&"RequestAbortedError"===o.code)this.logger.error("uploadFile:","api::s3:upload file abort.",o),t.update({http_code:o.statusCode,exception:o}),s(new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CANCELLED:400,detail:{reason:"S3RequestAbortedError",rawError:o,curProvider:2}}));else{if(!o){t.update({http_code:200});var m=this.mixStorePolicy.s3Policy.cdnSchema;m=(m=m.replace("{cdnDomain}",this.mixStorePolicy.s3Policy.dlcdn)).replace("{objectName}",l.Key);var g={size:d.size,name:d.name,url:i.shortUrl?i.shortUrl:m,ext:d.name.split(".")[1]||"unknown"},v=e.type||"",f={image:"imageInfo"};return r(f[v]?yield this.getS3FileInfo({url:m,infoSuffix:f[v],s3Result:g}):g)}t.update({http_code:o.statusCode,exception:o}),this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account||(null===(p=null===(h=this.core)||void 0===h?void 0:h.auth)||void 0===p?void 0:p.account),trace_id:null===(u=this.core.clientSocket.socket)||void 0===u?void 0:u.sessionId,start_time:n,action:1,exception_service:4}),this.core.reporter.reportTraceUpdateV2("exceptions",{code:"number"==typeof o.status?o.status:"number"==typeof o.code?o.code:0,description:o.message||`${o.code}`,operation_type:1,target:JSON.stringify({bucket:a,object:c})},{asyncParams:Oe.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("exceptions",1);var{net_connect:_}=yield Oe.net.getNetworkStatus();if(!1===_)return s(new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"No network",rawError:o,curProvider:this.cloudStorage.mixStorage.curProvider}}));try{this.cloudStorage.mixStorage._addCircuitTimer()}catch(t){return s(new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"All upload attempts failed",rawError:t,curProvider:this.cloudStorage.mixStorage.curProvider,mixStorePolicy:this.mixStorePolicy,file:e.file||e.filePath}}))}r(this.cloudStorage._uploadFile(e,t))}})),e.onUploadStart&&e.onUploadStart(v)})})}getS3FileInfo(e){var t;return Te(this,void 0,void 0,function*(){var i,{url:r,infoSuffix:s,s3Result:n}=e;try{i=yield this.core.adapters.request(`${r}?${s}`,{method:"GET",dataType:"text",timeout:5e3},{exception_service:3})}catch(e){return this.core.logger.error("uploadFile:: fetch file info error",e),n}if(i){var{data:o}=i,a="imageInfo"===s?o:null===(t=null==o?void 0:o.GetVideoInfo)||void 0===t?void 0:t.VideoInfo;return ts(Object.assign(Object.assign({},n),{w:null==a?void 0:a.Width,h:null==a?void 0:a.Height,orientation:null==a?void 0:a.Orientation,dur:null==a?void 0:a.Duration,audioCodec:null==a?void 0:a.AudioCodec,videoCodec:null==a?void 0:a.VideoCodec,container:null==a?void 0:a.Container}),function(e){return void 0!==e})}return this.core.logger.error("uploadFile:: fetch s3 file info no result",`${r}?${s}`),n})}}var ds={user_id:"",trace_id:"",action:0,state:0,duration:0,start_time:0,offset:0,full_size:0,transferred_size:0,operation_type:0,remote_addr:"",local_file:"",retry_times:0,index:0,part_size:0,transfer_latency:0,http_code:0,exception:"",req_headers:"",rsp_headers:""},ls="ReporterHook::setMonitorForResources:";class hs{constructor(e,t){this.traceData=ds,this.core=e,this.id=Math.round(1e3*Math.random()),this.traceData=Object.assign({},ds,t)}start(){var e,t;this.core&&(this.reset(),this.traceData.user_id=this.core.account,this.traceData.trace_id=(null===(t=null===(e=this.core.clientSocket)||void 0===e?void 0:e.socket)||void 0===t?void 0:t.sessionId)||"",this.traceData.start_time="timeOrigin"in this.core?this.core.timeOrigin.getNTPTime():Date.now())}update(e){return Te(this,void 0,void 0,function*(){if(this.core&&this.traceData.user_id){if(e.transferred_size&&this.core.logger.log(`${this.id}.${ls} upload update`,e),"object"==typeof e.exception)try{e.exception=JSON.stringify(e.exception)}catch(t){e.exception="UnknownObject"}if("object"==typeof e.req_headers)try{e.req_headers=JSON.stringify(e.req_headers)}catch(t){e.req_headers="UnknownObject"}if("object"==typeof e.rsp_headers)try{e.rsp_headers=JSON.stringify(e.rsp_headers)}catch(t){e.rsp_headers="UnknownObject"}Object.assign(this.traceData,e)}})}end(e){this.core&&this.traceData.user_id&&(this.core.logger.log(`${ls} upload end cause of ${e}`),this.traceData.state=e,this.traceData.duration=("timeOrigin"in this.core?this.core.timeOrigin.getNTPTime():Date.now())-(this.traceData.start_time||0),this.core.reporter.report("nim_sdk_resources",this.traceData),this.traceData=ds,this.destroy())}reset(){this.traceData=Object.assign({},ds)}destroy(){this.core=void 0,this.traceData=ds}}class ps{constructor(e,t={}){this.config={},this.uploadTaskMap={},this.name="cloudStorage",this.logger=e.logger,this.core=e,this.nos=new is(e,this),this.mixStorage=new os(e,this),this.aws=new cs(e,this),mt({cmdMap:rs,cmdConfig:ns}),this.setOptions(t),this.setListeners()}setOptions(e={}){var t=e.storageKeyPrefix||"NIMClient";this.mixStorage.GRAYKEY=t+"-AllGrayscaleConfig",this.mixStorage.MIXSTOREKEY=t+"-AllMixStorePolicy";var{s3:i}=e,r=Me(e,["s3"]),s=Object.assign({},es,this.config);if(r&&Object.prototype.hasOwnProperty.call(r,"cdn")){var n=Object.assign(Object.assign({},s.cdn),r.cdn);this.config=Object.assign({},s,r),this.config.cdn=n}else this.config=Object.assign({},s,r);i&&(this.aws.s3=i)}setListeners(){this.core.eventBus.on("kicked",this._clearUnCompleteTask.bind(this)),this.core.eventBus.on("disconnect",this._clearUnCompleteTask.bind(this)),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLogout",this._clearUnCompleteTask.bind(this)),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleKicked",this._clearUnCompleteTask.bind(this))}_clearUnCompleteTask(){Object.keys(this.uploadTaskMap).forEach(e=>{var t=this.uploadTaskMap[e];t&&t.abort&&t.abort()}),this.uploadTaskMap={}}init(e=Date.now()){return Te(this,void 0,void 0,function*(){this.mixStorage.reset(),this.nos.reset(),this.config.isNeedToGetUploadPolicyFromServer&&(yield this.mixStorage.getGrayscaleConfig(this.core.options.appkey,e)),yield this.nos._getNosCdnHost()})}processCallback(e,t,i){var r=e.onUploadProgress,s=e.onUploadDone,n=e.onUploadStart;return{onUploadStart:"function"==typeof n?e=>{this.uploadTaskMap[t]=e;try{n(e)}catch(e){this.logger.error("CloudStorage::uploadFile:options.onUploadStart execute error",e)}}:e=>{this.uploadTaskMap[t]=e},onUploadProgress:"function"==typeof r?e=>{i.update({transferred_size:e.loaded,full_size:e.total});try{r(e)}catch(e){this.logger.error("CloudStorage::uploadFile:options.onUploadProgress execute error",e)}}:e=>{i.update({transferred_size:e.loaded,full_size:e.total})},onUploadDone:"function"==typeof s?e=>{i.end(0);try{s(e)}catch(e){this.logger.error("CloudStorage::uploadFile:options.onUploadDone execute error",e)}}:()=>{i.end(0)},taskKey:t}}uploadFile(e){return Te(this,void 0,void 0,function*(){if(_e({maxSize:{type:"number",required:!1},type:{type:"enum",values:["file","image","audio","video"]}},e),!e.fileInput&&!e.file&&!e.filePath)throw new Error("uploadFile needs target file object or a filePath");if(e.type&&"file"!==e.type){var t=Ve(e,"file.type");if(t&&"string"==typeof t&&-1===t.indexOf(e.type))throw new Error(`The meta type "${t}" does not match "${e.type}"`)}var i=new hs(this.core);if(i.start(),e.file)i.update({full_size:e.file.size,local_file:e.file.name});else if("string"==typeof e.fileInput){var r=document.getElementById(e.fileInput);r&&r.files&&r.files[0]&&i.update({full_size:r.files[0].size,local_file:r.files[0].name})}else e.fileInput&&e.fileInput.files&&e.fileInput.files[0]&&i.update({full_size:e.fileInput.files[0].size,local_file:e.fileInput.files[0].name});var s=De(),{onUploadStart:n,onUploadProgress:o,onUploadDone:a}=this.processCallback(e,s,i);e.onUploadStart=n,e.onUploadProgress=o,e.onUploadDone=a;var c=null;try{c=yield this._uploadFile(e,i),e.md5&&(c.md5=e.md5),delete this.uploadTaskMap[s]}catch(e){throw delete this.uploadTaskMap[s],i.end((e&&e.code)===de.V2NIM_ERROR_CODE_CANCELLED?3:1),e}return c&&(c.size=void 0===c.size?void 0:Number(c.size),c.w=void 0===c.w?void 0:Number(c.w),c.h=void 0===c.h?void 0:Number(c.h),c.dur=void 0===c.dur?void 0:Number(c.dur)),c.url=decodeURIComponent(c.url),e.onUploadDone({size:c.size,name:c.name,url:c.url,ext:c.name.split(".")[1]||"unknown"}),c})}_uploadFile(e,t){var i,r;return Te(this,void 0,void 0,function*(){if(!Ve(this.mixStorage,"grayConfig.mixStoreEnable")||!Ve(this.mixStorage,"mixStorePolicy.providers.length"))return this.logger.log("uploadFile:: uploadFile begin, use old nos"),this.nos.nosUpload(e,t);this.logger.log(`uploadFile::_uploadFile, grayConfig enable:${Ve(this.mixStorage,"grayConfig.mixStoreEnable")} curProvider:${Ve(this.mixStorage,"curProvider")}`);var s=this.core.adapters.getFileUploadInformation(e),n=!0;s?!1===s.complete&&2===this.mixStorage.curProvider?n=!1:s.complete&&t.destroy():n=!1,this.aws.s3||(this.mixStorage.curProvider=1);var o=Qr;if(!n)try{o=(yield this.core.sendCmd("getMixStoreToken",{mixStoreTokenReqTag:{provider:this.mixStorage.curProvider,tokenCount:1,tag:"qchat",nosSurvivalTime:e.nosSurvivalTime,returnBody:Zr(e.type),policyVersion:this.mixStorage.mixStorePolicy.policyVersion}})).content.mixStoreTokenResTag}catch(e){if(this.core.logger.error("uploadFile:: getMixStoreToken error",e),t.destroy(),e instanceof pe)throw e;throw new ge({code:"v2"===Ve(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"getMixStoreToken error",rawError:e,curProvider:this.mixStorage.curProvider,mixStorePolicy:this.mixStorage.mixStorePolicy}})}return n?this.nos.nosUpload(e,t,null===(r=null===(i=null==s?void 0:s.uploadInfo)||void 0===i?void 0:i.payload)||void 0===r?void 0:r.mixStoreToken):2===this.mixStorage.curProvider?this.aws.s3Upload(e,t,o):this.nos.nosUpload(e,t,o)})}getThumbUrl(e,t){var i,r,s,n,o;if(!new RegExp(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/).test(e))return this.logger.error("illegal file url:"+e),e;var[a,c,d,l,h,p,u,m]=/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/.exec(e);if(null===(i=this.grayConfig)||void 0===i?void 0:i.mixStoreEnable){var g=this._getUrlType(e);if(2===g&&this.mixStorePolicy.s3Policy&&Ve(this.mixStorePolicy,"s3Policy.thumbPolicy.imagethumb"))return(null===(s=null===(r=this.mixStorePolicy.s3Policy)||void 0===r?void 0:r.thumbPolicy)||void 0===s?void 0:s.imagethumb).replace("{cdnDomain}",this.mixStorePolicy.s3Policy.dlcdn).replace("{objectName}",p).replace("{x}",t.width.toString()).replace("{y}",t.height.toString());if(1===g&&this.mixStorePolicy.nosPolicy&&Ve(this.mixStorePolicy,"nosPolicy.thumbPolicy.imagethumb"))return(null===(o=null===(n=this.mixStorePolicy.nosPolicy)||void 0===n?void 0:n.thumbPolicy)||void 0===o?void 0:o.imagethumb).replace("{cdnDomain}",this.mixStorePolicy.nosPolicy.dlcdn).replace("{objectName}",p).replace("{x}",t.width.toString()).replace("{y}",t.height.toString())}return e.includes("?")?e+`&imageView&thumbnail=${t.width}x${t.height}`:e+`?imageView&thumbnail=${t.width}x${t.height}`}getVideoCoverUrl(e,t){var i,r,s,n,o;if(!new RegExp(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/).test(e))return this.logger.error("illegal file url:"+e),e;var[a,c,d,l,h,p,u,m]=/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/.exec(e);if(null===(i=this.grayConfig)||void 0===i?void 0:i.mixStoreEnable){var g=this._getUrlType(e);if(2===g&&this.mixStorePolicy.s3Policy&&Ve(this.mixStorePolicy,"s3Policy.thumbPolicy.vframe"))return(null===(s=null===(r=this.mixStorePolicy.s3Policy)||void 0===r?void 0:r.thumbPolicy)||void 0===s?void 0:s.vframe).replace("{cdnDomain}",this.mixStorePolicy.s3Policy.dlcdn).replace("{objectName}",p).replace("{x}",t.width.toString()).replace("{y}",t.height.toString()).replace("{offset}","0").replace("{type}","png");if(1===g&&this.mixStorePolicy.nosPolicy&&Ve(this.mixStorePolicy,"nosPolicy.thumbPolicy.vframe"))return(null===(o=null===(n=this.mixStorePolicy.nosPolicy)||void 0===n?void 0:n.thumbPolicy)||void 0===o?void 0:o.vframe).replace("{cdnDomain}",this.mixStorePolicy.nosPolicy.dlcdn).replace("{objectName}",p).replace("{x}",t.width.toString()).replace("{y}",t.height.toString()).replace("{offset}","0").replace("{type}","png")}return e.includes("?")?e+`&vframe&offset=0&resize=${t.width}x${t.height}&type=png`:e+`?vframe&offset=0&resize=${t.width}x${t.height}&type=png`}getPrivateUrl(e){var t;if(!new RegExp(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/).test(e))return this.logger.error("illegal file url:"+e),"";var[i,r,s,n,o,a,c,d]=/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/.exec(e);if(null===(t=this.grayConfig)||void 0===t?void 0:t.mixStoreEnable){var l=this._getUrlType(e);return 2===l&&this.mixStorePolicy.s3Policy&&(e=this.mixStorePolicy.s3Policy.cdnSchema.replace("{cdnDomain}",this.mixStorePolicy.s3Policy.dlcdn).replace("{objectName}",a)),1===l&&this.mixStorePolicy.nosPolicy&&(e=this.mixStorePolicy.nosPolicy.cdnSchema.replace("{cdnDomain}",this.mixStorePolicy.nosPolicy.dlcdn).replace("{objectName}",a)),e}var{downloadUrl:h,downloadHostList:p,nosCdnEnable:u}=this.config,m=this.config.cdn.cdnDomain,g=this.config.cdn.objectNamePrefix?decodeURIComponent(this.config.cdn.objectNamePrefix):"",v=decodeURIComponent(a),f=v.indexOf(g);if(m&&f>-1&&u)return`${r}:${s}${m}/${v.slice(f)}`;if(p.includes(n)&&a.includes("/")){var _=a.indexOf("/"),I=a.substring(0,_),y=a.substring(_+1);return h.replace("{bucket}",I).replace("{object}",y)}var E=p.filter(e=>"string"==typeof n&&n.includes(e))[0],M=E?n.replace(E,"").replace(/\W/g,""):null;return M?h.replace("{bucket}",M).replace("{object}",a):e}getOriginUrl(e){return Te(this,void 0,void 0,function*(){return"string"==typeof e&&e.includes("_im_url=1")?(yield this.core.sendCmd("getOriginUrl",{nosSafeUrlTag:{safeUrl:e}})).content.nosSafeUrlTag.originUrl:e})}getFileToken(e){return Te(this,void 0,void 0,function*(){_e({type:{type:"number",min:2,max:3},urls:{type:"array",required:!1,itemType:"string"}},e);var t=this.mixStorePolicy.nosPolicy?this.mixStorePolicy.nosPolicy.authPolicy.policyType:null,i=this.mixStorePolicy.s3Policy?this.mixStorePolicy.s3Policy.authPolicy.policyType:null;if(t===String(-1)&&i===String(-1))throw this.logger.error("don't need token"),new Error("don't need token");if(2===e.type){if(t&&t.indexOf(String(2))>=0||i&&i.indexOf(String(2))>0)return this.mixStorage.getFileAuthToken(e);throw this.logger.error("don't support time token "),new Error("don't support type time token ")}if(!e.urls||!e.urls.length)throw this.logger.error("urls is required when urls token"),new Error("urls is required when urls token");var r=[],s=[];if(e.urls.forEach(e=>{var t=this._getUrlType(e);1===t&&s.push(e),2===t&&r.push(e)}),(!i||0!==r.length&&i.indexOf(String(3))<0)&&(this.logger.warn("s3 url don't support url token"),r=[]),(!t||0!==s.length&&t.indexOf(String(3))<0)&&(this.logger.warn("nos url don't support url token"),s=[]),0===r.length&&0===s.length)throw this.logger.error("not support urls"),new Error("not support urls");if(0===r.length||0===s.length)return e.urls=JSON.stringify(e.urls),this.mixStorage.getFileAuthToken(e)})}_getUrlType(e){return this.mixStorePolicy.nosPolicy&&this.mixStorePolicy.nosPolicy.dlcdns.some(t=>e.indexOf(t)>=0)?1:this.mixStorePolicy.s3Policy&&this.mixStorePolicy.s3Policy.dlcdns.some(t=>e.indexOf(t)>=0)?2:null}getNosAccessToken(e){return _e({url:{type:"string",allowEmpty:!1}},e),this.nos.getNosAccessToken(e)}deleteNosAccessToken(e){return _e({token:{type:"string",allowEmpty:!1}},e),this.nos.deleteNosAccessToken(e)}get grayConfig(){return this.mixStorage.grayConfig}get mixStorePolicy(){return this.mixStorage.mixStorePolicy}process(e){var t=Ve(e,"error.detail.ignore");return e.error&&!t?Promise.reject(e.error):Promise.resolve(e)}}class us extends ii{constructor(e){super("V2NIMStorageService",e),this.sceneMap={nim_default_profile_icon:{sceneName:"nim_default_profile_icon",expireTime:0},nim_default_im:{sceneName:"nim_default_im",expireTime:0},nim_system_nos_scene:{sceneName:"nim_system_nos_scene",expireTime:0},nim_security:{sceneName:"nim_security",expireTime:0}},this.uploadingMessageInfo={},this.core=e,this.core._registerDep(ps,"cloudStorage"),this.core._registerDep(Wr,"V2NIMStorageUtil")}addCustomStorageScene(e,t){return this.checkV2(),_e({sceneName:{type:"string",allowEmpty:!1},expireTime:{type:"number",min:0}},{sceneName:e,expireTime:t},"",!0),this.sceneMap[e]={sceneName:e,expireTime:t},{sceneName:e,expireTime:t}}getStorageSceneList(){return this.checkV2(),Object.values(this.sceneMap)}getStorageScene(e){return e&&this.sceneMap[e]||this.sceneMap.nim_default_im}hasStorageScene(e){return void 0!==this.sceneMap[e]}createUploadFileTask(e){if(this.checkV2(),"string"==typeof e.fileObj&&0===e.fileObj.indexOf("nim-external")){var t=document.getElementById(e.fileObj);t&&t.files&&t.files[0]&&(e.fileObj=t.files[0])}return{taskId:De(),uploadParams:e}}uploadFile(e,t){return Te(this,void 0,void 0,function*(){return this.checkV2(),_e({taskId:{type:"string",allowEmpty:!1}},e,"fileTask",!0),(yield this._uploadFile(e,t))[0]})}uploadFileWithMetaInfo(e,t){return Te(this,void 0,void 0,function*(){return this.checkV2(),_e({taskId:{type:"string",allowEmpty:!1}},e,"fileTask",!0),function(e){var{url:t,name:i,size:r,ext:s,md5:n,h:o,w:a,orientation:c,dur:d,audioCodec:l,videoCodec:h,container:p}=e;return JSON.parse(JSON.stringify({url:t,name:i,size:r,ext:s,md5:n,height:o,width:a,orientation:c,duration:d,audioCodec:l,videoCodec:h,container:p}))}((yield this._uploadFile(e,t))[1])})}_uploadFile(e,t,i){var r;return Te(this,void 0,void 0,function*(){if(!this.core.cloudStorage||!this.core.cloudStorage.uploadFile)throw new Error('Service "cloudStorage" does not exist');var{uploadParams:s,taskId:n}=e,{file:o,path:a}=qr(s.fileObj),{fileType:c}=i||{};if(this.uploadingMessageInfo[n])throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_ALREADY_EXIST,detail:{reason:"V2NIMStorageService.uploadFile: repeat upload"}});try{var d={};o?d.file=o:a&&(0===(null==a?void 0:a.indexOf("nim-external"))?d.fileInput=a:d.filePath=a);var l=this.getStorageScene(s.sceneName);if(d.nosScenes=l.sceneName,d.nosSurvivalTime=l.expireTime,d.type=1===c?"image":2===c?"audio":3===c?"video":"file",d.file&&this.core.pluginMap["browser-md5-file"]){var h=yield this.getFileMd5(this.core.pluginMap["browser-md5-file"],n,d.file);d.md5=h}d.onUploadProgress=e=>{"function"==typeof t&&t(Math.round(100*e.percentage))},d.onUploadStart=e=>{var t;if(null===(t=this.uploadingMessageInfo[n])||void 0===t?void 0:t.abort)return e.abort(),void delete this.uploadingMessageInfo[n];this.uploadingMessageInfo[n]={abort:!1,task:e}},this.uploadingMessageInfo[n]={abort:!1};var p=yield this.core.cloudStorage.uploadFile(d);if(null===(r=this.uploadingMessageInfo[n])||void 0===r?void 0:r.abort)throw new pe({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:"upload file aborted"}});return delete this.uploadingMessageInfo[n],[p.url,p]}catch(e){throw delete this.uploadingMessageInfo[n],this.core.logger.error("sendFile:: upload File error or abort.",e),e}})}cancelUploadFile(e){return Te(this,void 0,void 0,function*(){this.checkV2(),yield this._cancelUploadFile(e.taskId)})}_cancelUploadFile(e){return Te(this,void 0,void 0,function*(){this.checkV2();var t=this.uploadingMessageInfo[e];if(null==t?void 0:t.task)try{this.logger.log("V2NIMStorageService.cancelUploadFile: uploadInfo task exist"),yield t.task.abort(),delete this.uploadingMessageInfo[e]}catch(t){delete this.uploadingMessageInfo[e],this.core.logger.error("cancelMessageAttachmentUpload::abort error.",t)}else{if(!t)throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST,detail:{reason:"V2NIMStorageService.cancelUploadFile: uploadInfo not exist"}});this.logger.log("V2NIMStorageService.cancelUploadFile: uploadInfo task not exist"),t.abort=!0}})}getFileMd5(e,t,i){return Te(this,void 0,void 0,function*(){return new Promise((r,s)=>{var n,o=new e;(null===(n=this.uploadingMessageInfo[t])||void 0===n?void 0:n.abort)?s(new pe({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:"upload file aborted"}})):this.uploadingMessageInfo[t]={abort:!1,task:o};try{o.md5(i,(e,t)=>{"aborted"===e?s(new pe({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:e}})):e?s(new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"md5 calculate error in callback",rawError:e}})):r(t)})}catch(e){s(new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"md5 calculate error",rawError:e}}))}})})}shortUrlToLong(e){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.core.cloudStorage.getOriginUrl(e)})}getImageThumbUrl(e,t){return Te(this,void 0,void 0,function*(){return this.core.V2NIMStorageUtil.getImageThumbUrl(e,t)})}getVideoCoverUrl(e,t){return Te(this,void 0,void 0,function*(){return this.core.V2NIMStorageUtil.getVideoCoverUrl(e,t)})}}class ms extends ii{constructor(e){super("V2NIMMessageCreator",e),this.name="V2NIMMessageCreator",this.defaultNosSceneName="nim_default_im",this.core=e}createMessage(e,t){return Object.assign(Object.assign(Object.assign({messageClientId:De(),messageType:e,createTime:this.core.timeOrigin.getNTPTime(),sendingState:0,messageStatus:{errorCode:200},messageSource:0,isSelf:!0},t),t.attachment?{attachment:Object.assign(Object.assign({},t.attachment),{raw:Or(e,t.attachment)})}:{}),{senderId:"",receiverId:"",conversationType:0,conversationId:"",messageServerId:"",messageConfig:Object.assign({unreadEnabled:!0,roamingEnabled:!0,readReceiptEnabled:!1,lastMessageUpdateEnabled:!0,historyEnabled:!0,onlineSyncEnabled:!0,offlineEnabled:!0},t.messageConfig),pushConfig:Object.assign({pushEnabled:!0,pushNickEnabled:!0,forcePush:!1},t.pushConfig),routeConfig:Object.assign({routeEnabled:!0},t.routeConfig),antispamConfig:Object.assign({antispamEnabled:!0},t.antispamConfig)})}createTextMessage(e){return this.checkV2(),_e({text:{type:"string",allowEmpty:!1}},{text:e},"",!0),this.createMessage(0,{text:e})}createImageMessage(e,t,i,r,s){this.checkV2(),_e(ir,{name:t,sceneName:i,width:r,height:s},"",!0);var n=this.createGenericFileMessageAttachment(e,t,i,void 0,r,s,"jpeg");return this.createMessage(1,{attachment:n,attachmentUploadState:0})}createAudioMessage(e,t,i,r){this.checkV2(),_e(er,{name:t,sceneName:i,duration:r},"",!0);var s=this.createGenericFileMessageAttachment(e,t,i,r,void 0,void 0,"aac");return this.createMessage(2,{attachment:s,attachmentUploadState:0})}createVideoMessage(e,t,i,r,s,n){this.checkV2(),_e(tr,{name:t,sceneName:i,duration:r,width:s,height:n},"",!0);var o=this.createGenericFileMessageAttachment(e,t,i,r,s,n,"mp4");return this.createMessage(3,{attachment:o,attachmentUploadState:0})}createFileMessage(e,t,i){this.checkV2(),_e(Zi,{name:t,sceneName:i},"",!0);var r=this.createGenericFileMessageAttachment(e,t,i,void 0,void 0,void 0,"txt");return this.createMessage(6,{attachment:r,attachmentUploadState:0})}createGenericFileMessageAttachment(e,t,i,r,s,n,o){if(i=i||this.defaultNosSceneName,!this.core.V2NIMStorageService.hasStorageScene)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2NIMStorageService not exist"}});if(!this.core.V2NIMStorageService.hasStorageScene(i))throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sceneName: "+i+" has not been added"}});var{file:a,path:c}=qr(e),d=Object.assign(Object.assign(Object.assign({name:t,uploadState:0,sceneName:i||this.defaultNosSceneName},r?{duration:r}:{}),s?{width:s}:{}),n?{height:n}:{});if(a){var l=a.name.lastIndexOf("."),h=-1===l?a.name:a.name.substring(0,l);d.name=d.name||h,d.size=a.size,d.ext=`.${Be(a.name)||Be(t||"")||o}`}else if(c){var p=c.lastIndexOf("/"),u=c.lastIndexOf("."),m=-1===u?c.substring(p+1):c.substring(p+1,u);d.name=d.name||m,d.ext=`.${Be(c)||Be(t||"")||o}`}return d=JSON.parse(JSON.stringify(d)),c?d.path=c:a&&(d.file=a),d}createLocationMessage(e,t,i){return this.checkV2(),_e({latitude:{type:"number",allowEmpty:!1},longitude:{type:"number",allowEmpty:!1},address:{type:"string",allowEmpty:!1}},{latitude:e,longitude:t,address:i},"",!0),this.createMessage(4,{attachment:{latitude:e,longitude:t,address:i}})}createCustomMessage(e,t){return this.checkV2(),_e({text:{type:"string"}},{text:e},"",!0),_e({rawAttachment:{type:"string"}},{rawAttachment:t},"",!0),this.createMessage(100,{text:e,attachment:{raw:t}})}createCustomMessageWithAttachment(e,t){return this.checkV2(),_e({raw:{type:"string"}},e,"attachment",!0),_e({subType:{type:"number",min:0,required:!1}},{subType:t},"",!0),this.createMessage(100,t?{attachment:e,subType:t}:{attachment:e})}createCallMessage(e,t,i,r,s){return this.checkV2(),_e({type:{type:"number",allowEmpty:!1}},{type:e},"",!0),_e({channelId:{type:"string",allowEmpty:!1}},{channelId:t},"",!0),_e({status:{type:"number",allowEmpty:!1}},{status:i},"",!0),_e({durations:{type:"array",allowEmpty:!1}},{durations:r},"",!0),this.createMessage(12,{text:s||"",attachment:{type:e,channelId:t,durations:r,status:i}})}createForwardMessage(e){if(this.checkV2(),!e||[11,5,7,10].includes(e.messageType))return null;var t={messageClientId:De(),messageType:e.messageType};return e.text&&(t.text=e.text),e.attachment&&(t.attachment=e.attachment),e.attachment&&"uploadState"in e.attachment&&(t.attachmentUploadState=e.attachment.uploadState),this.createMessage(e.messageType,t)}createTipsMessage(e){return this.checkV2(),_e({text:{type:"string",allowEmpty:!1}},{text:e},"",!0),this.createMessage(10,{text:e})}}class gs{constructor(){this.name="V2NIMMessageAttachmentCreator"}createLocationMessageAttachment(e,t,i){return{latitude:"number"==typeof e?e:0,longitude:"number"==typeof t?t:0,address:"string"==typeof i?i:""}}createCustomMessageAttachment(e){return{raw:"string"==typeof e?e:""}}}class vs{constructor(e){this.config={enable:!1},this.name="V2NIMClientAntispamUtil",this.core=e}setOptions(e){this.config=Object.assign(this.config,e)}reset(e){"destroy"===e&&(this.vocabInfo=void 0)}downloadLocalAntiSpamVocabs(){return Te(this,void 0,void 0,function*(){if(this.config.enable&&!this.vocabInfo)try{var e=yield this.core.sendCmd("v2DownloadLocalAntiSpamVocabs",{tag:{version:0,md5:""}});this.vocabInfo=Object.assign(Object.assign({},e.content.data),{thesaurus:JSON.parse(e.content.data.thesaurus).thesaurus})}catch(e){this.core.logger.warn("V2NIMLocalAntispamUtil::downloadLocalAntiSpamVocabs error",e)}})}checkTextAntispam(e,t="**"){if(!this.config.enable)return{operateType:0,replacedText:e};if(_e({text:{type:"string",required:!0,allowEmpty:!1},replace:{type:"string"}},{text:e,replace:t},"",!0),!this.vocabInfo)return{operateType:0,replacedText:e};for(var i=e,r=0;r=0){n=!0;var a=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");o=new RegExp(a,"g")}}else 2===i&&(o=new RegExp(t,"g")).test(e)&&(n=!0);if(n&&o)switch(r){case 1:return{operateType:1,replacedText:e.replace(o,s)};case 2:return{operateType:2,replacedText:e};case 3:return{operateType:3,replacedText:e}}return{operateType:0,replacedText:e}}}class fs extends ii{constructor(e){super("YSFService",e),this.core._registerDep(Li,"V2NIMConversationIdUtil"),this.core._registerDep(ms,"V2NIMMessageCreator"),this.core._registerDep(gs,"V2NIMMessageAttachmentCreator"),this.core._registerDep(vs,"V2NIMClientAntispamUtil"),this.core._registerDep(us,"V2NIMStorageService"),this.sendUtil=new _s(this.core,this),this.fileUtil=new Rr(this.core),this.model=new Vi,this.notificationUtil=new Yr(this.core),mt({cmdMap:Gr,cmdConfig:$r})}emit(e,...t){var i,r=`${this.name}::emit ${e.toString()}`;if("onSendMessage"===e){var s=t[0];this.logger.log(`${r}`,`${s.messageClientId}/${s.messageServerId};createTime:${s.createTime};`,`sendingState:${s.sendingState};attachmentUploadState:${s.attachmentUploadState||0};messageStatus:${null===(i=s.messageStatus)||void 0===i?void 0:i.errorCode}`)}else if("onReceiveMessages"===e){var n=t[0];this.logger.log(`${r}`,n.map(e=>`${e.messageClientId}/${e.messageServerId};createTime:${e.createTime}`))}else if("onReceiveCustomNotifications"===e){var o=t[0];this.logger.log(`${r}`,o.map(e=>`sender:${e.senderId};receiver:${e.receiverId};ctype:${e.conversationType};time:${e.timestamp}`))}else this.logger.log(`${r}`,...t);return super.emit(e,...t)}sendMessage(e,t,i={},r){return Te(this,void 0,void 0,function*(){_e({message:{type:"object"}},{message:e},"",!0),e.messageClientId=e.messageClientId||De(),_e(Gi,{conversationId:t,message:e,params:i},"",!0),ye(this.core.account,t);var s=this.core.timeOrigin.getTimeNode(),{messageBeforeSend:n,clientAntispamResult:o,hiddenParams:a}=this.sendUtil.prepareMessage(e,t,i),c=yield this.sendUtil.doSendMessage({apiCallingTimeNode:s,messageBeforeSend:n,clientAntispamResult:o,hiddenParams:a,progress:r});return c.message.senderId===c.message.receiverId&&this.markMsgsAck([c.message]),c})}sendCustomNotification(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),ye(this.core.account,e),_e(Hr,{content:t,params:i},"",!0);var r=this.notificationUtil.generateNotificationTag(e,t,i);r.type=100,yield this.core.sendCmd("ysfSendCustomNotification",{tag:r})})}sendMessageFn(e){}cancelMessageAttachmentUpload(e){return this.fileUtil.cancelMessageAttachmentUpload(e)}markMsgsAck(e){if(e&&e.length>0){var t=e.map(e=>e.messageServerId).filter(e=>e&&"0"!==e);0!==t.length&&this.core.sendCmd("ysfBatchMarkRead",{sid:101,cid:2,ids:t})}}markNotificationAck(e){if(e&&e.length>0){var t=e.map(e=>e.idServer).filter(e=>e&&"0"!==e);0!==t.length&&this.core.sendCmd("ysfBatchMarkRead",{sid:101,cid:3,ids:t})}}ysfOnMsgHandler(e){var t=Ge(e,e.content.data,"messageServerId"),i=Er(this.core,t);delete i.__clientExt,this.emit("onReceiveMessages",[i]),this.model.upsertMessages([i]),this.markMsgsAck([i])}ysfSyncOfflineMsgsHandler(e){var t=e.content.datas;t=t.map(e=>Er(this.core,e)),this.markMsgsAck(t),this.emit("onReceiveMessages",t),this.model.upsertMessages(t)}ysfOnSysNotificationHandler(e){var t=Ge(e,e.content.data,"idServer");this.markNotificationAck([t]);var i=this.processSystemNotification(t);i&&this.emit("onReceiveCustomNotifications",[i])}processSystemNotification(e){var t=Object.assign(Object.assign({},e),{conversationType:1});return delete t.type,t}ysfSyncSysNotificationHandler(e){this.markNotificationAck(e.content.datas);var t=e.content.datas.sort((e,t)=>e.timestamp-t.timestamp).map(e=>this.processSystemNotification(e)).filter(e=>e);t&&this.emit("onReceiveCustomNotifications",t)}}class _s{constructor(e,t){this.uploadingMessageInfo={},this.core=e,this.service=t}prepareMessage(e,t,i,r){var s=this.checkIfResend(e),n=this.generateSendMessage({message:e,params:i,resend:s,conversationId:t,replyMessage:r}),o=Object.assign({},i.targetConfig?{targetConfig:i.targetConfig}:{}),{clientAntispamResult:a,text:c}=this.checkIfAntispam(i,n);return n.text=c,n.clientAntispamHit=!!a&&3===a.operateType,{messageBeforeSend:n,clientAntispamResult:a,hiddenParams:o}}checkIfAntispam(e,t){var i,r=t.text;if(e.clientAntispamEnabled&&(0===t.messageType||10===t.messageType))if(1===(i=this.core.V2NIMClientAntispamUtil.checkTextAntispam?this.core.V2NIMClientAntispamUtil.checkTextAntispam(t.text||"",e.clientAntispamReplace):{operateType:0,replacedText:""}).operateType)r=i.replacedText;else if(2===i.operateType)throw this.service.emit("onSendMessage",Object.assign(Object.assign({},t),{sendingState:2,messageStatus:{errorCode:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM}})),new pe({code:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM,detail:{reason:"sendMessage: text intercepted by client antispam"}});return{clientAntispamResult:i,text:r}}doMsgReceiveReport(e,t){if(e.senderId!==this.core.account){var i=Ve(e,"__clientExt.statistics.apiCallingTime")||0,r=Ve(e,"__clientExt.statistics.sendTime")||0,s=Ve(e,"__clientExt.statistics.attachUploadDuration")||0,n=this.core.timeOrigin.getNTPTime(),o=e.createTime,a=this.core.timeOrigin.checkNodeReliable(t.__receiveTimeNode)?this.core.timeOrigin.getNTPTime(t.__receiveTimeNode):n;this.core.reporter.report("msgReceive",{msgId:e.messageServerId,clientId:e.messageClientId,serverTime:e.createTime,receiveTime:a,fromAccid:1===e.conversationType?e.senderId:"",toAccid:e.receiverId,type:xr(e.conversationType),tid:1===e.conversationType?"":e.receiverId,apiCallingTime:i,sendTime:r,attachUploadDuration:s,callbackTime:n,preHandleTime:n,result:200,failReason:"",rt:n-o})}}checkIfResend(e){var t=this.service.model.getMessageById(e.messageClientId),i=!1;if("messageServerId"in e&&"0"!==e.messageServerId&&""!==e.messageServerId)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sendMessage: message has already been sent"}});if(t&&"messageServerId"in t&&"0"!==t.messageServerId&&""!==t.messageServerId)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sendMessage: message has already been sent"}});return t&&(i=!0),i}doSendMessage(e){var t;return Te(this,void 0,void 0,function*(){var i,r,{apiCallingTimeNode:s,messageBeforeSend:n,clientAntispamResult:o,hiddenParams:a,progress:c}=e,d={},l=this.service instanceof fs;if(l)i="ysfSendMessage";else if(1===n.conversationType)i="v2SendP2pMessage";else if(2===n.conversationType)i="v2SendTeamMessage";else{if(3!==n.conversationType)throw new me({detail:{reason:`conversationType: ${n.conversationType} is not supported`}});i="v2SendSuperTeamMessage"}if(this.service.sendMessageFn(n),!l&&this.core.eventBus.emit("forwardSend/V2NIMMessageService/sendMsg",n),!n.attachment||!("uploadState"in n.attachment)||n.attachment.url||0!==n.attachment.uploadState&&2!==n.attachment.uploadState)this.service.emit("onSendMessage",n);else{var h=Date.now();try{n.attachmentUploadState=3,n.attachment.uploadState=3,this.service.emit("onSendMessage",n),yield this.service.fileUtil.doSendFile(n,c),n.attachmentUploadState=1,n.attachment.uploadState=1,this.service.emit("onSendMessage",n)}catch(e){throw n.attachmentUploadState=2,n.attachment.uploadState=2,n.sendingState=2,n.messageStatus={errorCode:e.code||de.V2NIM_ERROR_CODE_UNKNOWN},this.service.emit("onSendMessage",n),d.attachUploadDuration=Date.now()-h,this.doSendMessageFailed(s,d,n,e),e}d.attachUploadDuration=Date.now()-h}this.core.timeOrigin.checkNodeReliable(s)&&(d.apiCallingTime=this.core.timeOrigin.getNTPTime(s),d.sendTime=this.core.timeOrigin.getNTPTime(),n.__clientExt={statistics:d});try{r=yield this.core.sendCmd(i,{tag:Object.assign({},n,a)})}catch(e){throw this.doSendMessageFailed(s,d,n,e),n.sendingState=2,n.messageStatus={errorCode:e.code||de.V2NIM_ERROR_CODE_UNKNOWN},this.service.emit("onSendMessage",n),e}var p=Ve(r,"content.data.errorCode"),u=Object.assign(Object.assign(Object.assign(Object.assign({},n),r.content.data),n.aiConfig?{aiConfig:Object.assign(Object.assign({},n.aiConfig),(null===(t=r.content.data)||void 0===t?void 0:t.aiConfig)||{})}:{}),{sendingState:1,messageStatus:{errorCode:p&&200!==p?p:200}});this.service.sendMessageFn(u),!l&&this.core.eventBus.emit("forwardSend/V2NIMMessageService/sendMsg",u),this.doMsgSendReport(s,d,n);var m=u.antispamResult;return m&&(u.messageStatus.errorCode=de.V2NIM_ERROR_CODE_SERVER_ANTISPAM),delete u.antispamResult,this.service.emit("onSendMessage",u),Object.assign(Object.assign({message:u},m?{antispamResult:m}:{}),o?{clientAntispamResult:o}:{})})}doSendMessageFailed(e,t,i,r){var s=Object.assign(Object.assign({},i),{sendingState:2});this.core.eventBus.emit("forwardSend/V2NIMMessageService/sendMsg",s),this.service.sendMessageFn(s),this.doMsgSendReport(e,t,i,r)}doMsgSendReport(e,t,i,r){t.apiCallingTime=this.core.timeOrigin.getNTPTime(e),t.sendTime=this.core.timeOrigin.getNTPTime();var s=this.core.timeOrigin.getNTPTime(),n=Ve(r,"detail.reason");this.core.reporter.report("msgSend",{msgId:i.messageServerId,clientId:i.messageClientId,msgTime:i.createTime,fromAccid:1===i.conversationType?i.senderId:"",toAccid:i.receiverId,type:xr(i.conversationType),tid:1===i.conversationType?"":i.receiverId,result:r?r.code:200,failReason:n||(null==r?void 0:r.message)||"",rt:s-t.apiCallingTime,apiCallingTime:t.apiCallingTime,sendTime:t.sendTime,attachUploadDuration:t.attachUploadDuration,apiCallbackTime:s})}generateSendMessage(e){var t,i,{conversationId:r,replyMessage:s,resend:n,message:o,params:a}=e,c={};if(s){var d=s.threadRoot;c={threadReply:{senderId:s.senderId,receiverId:s.receiverId,messageServerId:s.messageServerId,createTime:s.createTime,messageClientId:s.messageClientId,conversationType:s.conversationType,conversationId:s.conversationId},threadRoot:{senderId:d?d.senderId:s.senderId,receiverId:d?d.receiverId:s.receiverId,messageServerId:d?d.messageServerId:s.messageServerId,createTime:d?d.createTime:s.createTime,messageClientId:d?d.messageClientId:s.messageClientId,conversationType:d?d.conversationType:s.conversationType,conversationId:d?d.conversationId:s.conversationId}}}var l=this.core.V2NIMConversationIdUtil.parseConversationType(r),h=this.core.V2NIMConversationIdUtil.parseConversationTargetId(r);a.pushConfig&&!0!==a.pushConfig.forcePush&&(delete a.pushConfig.forcePushContent,delete a.pushConfig.forcePushAccountIds);var p={},u={};if(a.aiConfig){var m=Ve(a,"aiConfig.content.msg"),g=Ve(a,"aiConfig.content.type")||0;m?u={msg:m,type:g}:void 0===m&&0===o.messageType&&(u={msg:o.text||"",type:g}),(p=Object.assign({aiStreamStatus:0,aiStream:!1},a.aiConfig)).aiStatus=1,void 0!==u.msg&&(p.content=u)}var v=null===(i=null===(t=this.core.V2NIMUserService)||void 0===t?void 0:t.model)||void 0===i?void 0:i.getUser(this.core.account),f=(null==v?void 0:v.updateTime)||0;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},o),c),{messageConfig:Object.assign(Object.assign({},o.messageConfig),a.messageConfig),routeConfig:Object.assign(Object.assign({},o.routeConfig),a.routeConfig),pushConfig:Object.assign(Object.assign({},o.pushConfig),a.pushConfig),antispamConfig:Object.assign(Object.assign({},o.antispamConfig),a.antispamConfig),robotConfig:Object.assign(Object.assign({},o.robotConfig),a.robotConfig)}),p&&p.accountId?{aiConfig:p}:{}),o.attachment?{attachment:Object.assign({},o.attachment)}:{}),{resend:n,senderId:this.core.account,conversationType:l,receiverId:h,conversationId:this.core.V2NIMConversationIdUtil.messageConversationId({conversationType:l,senderId:this.core.account,receiverId:h})}),f?{userUpdateTime:f}:{}),{sendingState:3})}}class Is{constructor(e,t){this.core=e,this.service=t}checkIfModify(e,t){if("0"===e.messageServerId)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"modifyMessage: messageServerId cannot be empty"}});if(![0,1,2,3,4,6,10,12,100].includes(e.messageType))throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`modifyMessage: messageType ${e.messageType} not correct`}});if([0,1,2,3,6,10,12].includes(e.messageType)&&t.attachment)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`modifyMessage: messageType ${e.messageType} can not modify attachment`}});var i=["subType","text","serverExtension","attachment"];if(!i.some(e=>void 0!==Ve(t,e)))throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"modifyMessage: missing modified params"}});if(i.every(i=>"attachment"===i?e.attachment&&t.attachment?Or(e.messageType,e.attachment)===Or(e.messageType,t.attachment):!t.attachment:Ve(e,i)===Ve(t,i)))throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"modifyMessage: no change"}})}prepareMessage(e,t){var i=this.generateSendMessage(e,t),{clientAntispamResult:r,text:s}=this.checkIfAntispam(t,i);return i.text=s,i.clientAntispamHit=!!r&&3===r.operateType,{messageBeforeSend:i,clientAntispamResult:r}}modifyMessage(e,t){return Te(this,void 0,void 0,function*(){var i;if(1===e.conversationType)i="v2MessageP2pModify";else if(2===e.conversationType)i="v2MessageTeamModify";else{if(3!==e.conversationType)throw new me({detail:{reason:`conversationType: ${e.conversationType} is not supported`}});i="v2MessageSuperTeamModify"}var r=yield this.core.sendCmd(i,{tag:e});if(t&&3===t.operateType)return{errorCode:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM,clientAntispamResult:t};var s=Object.assign(Object.assign({},e),r.content.data),n=s.antispamResult;if(n)return Object.assign({errorCode:de.V2NIM_ERROR_CODE_SERVER_ANTISPAM,antispamResult:n},t?{clientAntispamResult:t}:{});delete s.antispamResult;var o=Er(this.core,s);return this.service.model.upsertMessages([o]),this.core.eventBus.emit("V2NIMMessageService/modifyMsg",o),this.core.eventBus.emit("forwardSend/V2NIMMessageService/modifyMsg",o),Object.assign(Object.assign({errorCode:200,message:o},n?{antispamResult:n}:{}),t?{clientAntispamResult:t}:{})})}checkIfAntispam(e,t){var i,r=t.text;if(e.clientAntispamEnabled&&(0===t.messageType||10===t.messageType))if(1===(i=this.core.V2NIMClientAntispamUtil.checkTextAntispam?this.core.V2NIMClientAntispamUtil.checkTextAntispam(t.text||"",e.clientAntispamReplace):{operateType:0,replacedText:""}).operateType)r=i.replacedText;else if(2===i.operateType)throw new pe({code:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM,detail:{reason:"sendMessage: text intercepted by client antispam"}});return{clientAntispamResult:i,text:r}}generateSendMessage(e,t){var i;return Object.assign(Object.assign({messageConfig:{lastMessageUpdateEnabled:null===(i=e.messageConfig)||void 0===i?void 0:i.lastMessageUpdateEnabled},routeConfig:Object.assign({routeEnabled:!0},t.routeConfig),pushConfig:Object.assign({pushEnabled:!0,pushNickEnabled:!0,forcePush:!1},t.pushConfig),antispamConfig:Object.assign({antispamEnabled:!0},t.antispamConfig)},t.attachment?{attachment:t.attachment}:{}),{conversationType:e.conversationType,senderId:e.senderId,receiverId:e.receiverId,createTime:e.createTime,messageClientId:e.messageClientId,messageServerId:e.messageServerId,messageType:e.messageType,subType:t.subType,text:t.text,serverExtension:t.serverExtension})}}class ys{constructor(e,t){this.emitRevokeMessage=e=>{var t=e.map(e=>{var t=Nr(this.core,e);return 3===t.messageRefer.conversationType?this.core.eventBus.emit("V2NIMSync/updateTimetag",{deleteSuperTeamMsg:e.createTime}):this.core.eventBus.emit("V2NIMSync/updateTimetag",{recallMsg:e.createTime}),t});t.forEach(e=>{this.service.model.deleteMessage(e.messageRefer.messageClientId)}),this.service.emit("onMessageRevokeNotifications",t),this.core.eventBus.emit("V2NIMMessageService/revokeMessages",t)},this.core=e,this.service=t,this.logger=e.logger}revokeMessage(e,t){return Te(this,void 0,void 0,function*(){if(_e($i,{message:e,params:t},"",!0),ye(this.core.account,e.conversationId),1===e.conversationType&&e.senderId!==this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"revokeMessage: p2p message senderId is not current user"}});if(!e.messageServerId||"0"===e.messageServerId)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"revokeMessage: cannot revoke message with invalid messageServerId: "+e.messageServerId}});var i=3===e.conversationType?"v2RevokeSuperTeamMessage":"v2RevokeMessage",r=Object.assign(Object.assign(Object.assign({},e),t),{attach:t&&t.serverExtension,sysMsgType:{1:7,2:8,3:12}[e.conversationType],opeAccount:this.core.account});yield this.core.sendCmd(i,{tag:r});var s=[JSON.parse(JSON.stringify({postscript:t&&t.postscript,revokeType:{1:1,2:2,3:3}[e.conversationType],revokeAccountId:this.core.account,serverExtension:t&&t.serverExtension,messageRefer:Sr(this.core,e)}))];this.revokeMessagesFn(s),this.core.eventBus.emit("forwardSend/V2NIMMessageService/revokeMessage",r)})}deleteMessage(e,t){return Te(this,void 0,void 0,function*(){if(_e(qi,e,"",!0),3===e.sendingState)this.service.fileUtil.cancelMessageAttachmentUpload(e);else if(e.sendingState&&1!==e.sendingState)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"deleteMessage: cannot delete unsent message"}});var i={messageRefer:Sr(this.core,e),serverExtension:t},r=Date.now();e.messageServerId&&"0"!==e.messageServerId&&(r=(yield this.core.sendCmd("v2DeleteMessage",{tag:i})).content.timetag);var s=[{serverExtension:t,messageRefer:Sr(this.core,e),deleteTime:r}];this.core.eventBus.emit("forwardSend/V2NIMMessageService/deleteSelfMsgs",[Object.assign(Object.assign({},i),{deleteTime:r})]),this.deleteMessagesFn(s)})}deleteMessages(e,t){return Te(this,void 0,void 0,function*(){_e(Ki,{messages:e},"",!0);var i=[],r=[];if(0===e.length)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"deleteMessages: message array length is 0"}});for(var s=e[0].conversationId,n=0;n=1&&e[n].conversationId!==s)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"deleteMessages: only allow to delete messages from same conversation"}});e[n].messageServerId&&"0"!==e[n].messageServerId?i.push(e[n]):r.push(e[n])}var o=Date.now(),a=[...r];try{if(i.length>0){var c=yield this.core.sendCmd("v2DeleteMessages",{tag:i.map(e=>({messageRefer:e,serverExtension:t}))});o=c.content.timetag,a=[...a,...i]}}catch(e){if(0===r.length)throw e;this.logger.warn("V2NIMMessageService:deleteMessages: delete messages with serverId failed")}var d=a.map(e=>({serverExtension:t,messageRefer:Sr(this.core,e),deleteTime:o}));this.core.eventBus.emit("forwardSend/V2NIMMessageService/deleteSelfMsgs",a.map(e=>({messageRefer:e,serverExtension:t,deleteTime:o}))),this.deleteMessagesFn(d)})}revokeMessagesFn(e){e.forEach(e=>{this.service.model.deleteMessage(e.messageRefer.messageClientId)}),this.service.emit("onMessageRevokeNotifications",e),this.core.eventBus.emit("V2NIMMessageService/revokeMessages",e)}deleteMessagesFn(e){e.forEach(e=>{this.service.model.deleteMessage(e.messageRefer.messageClientId),this.core.eventBus.emit("V2NIMSync/updateTimetag",{deleteSelfMsgs:e.deleteTime})}),this.service.emit("onMessageDeletedNotifications",e),this.core.eventBus.emit("V2NIMMessageService/deleteMessages",e)}}class Es{constructor(e,t){this.core=e,this.service=t,this.logger=e.logger}stopAIStreamMessage(e,t){var i;return Te(this,void 0,void 0,function*(){this.checkAI(),yield this.core.sendCmd("v2AIStopModelStreamCall",{tag:{serverId:e.messageServerId,clientId:e.messageClientId,type:e.conversationType,from:e.senderId,to:e.receiverId,aiAccount:null===(i=e.aiConfig)||void 0===i?void 0:i.accountId,opeType:t.operationType,updateContent:t.updateContent,messageTime:e.createTime}}),this.logger.log(`V2AIUtil::streamMessageStop,clientId:${e.messageClientId}`),this.core.V2NIMAIService.model.completeAiStream(e.messageClientId)})}regenAIMessage(e,t){var i,r,s,n,o,a,c,d;return Te(this,void 0,void 0,function*(){this.checkAI();var l=this.core.V2NIMAIService.model.getAiStream(e.messageClientId);if(l){if(!(null==l?void 0:l.isComplete))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`msg::regenAIMessage streamCache is not complete, msgId:${e.messageClientId}`}})}else if(-1===(null===(i=e.streamConfig)||void 0===i?void 0:i.status)||1===(null===(r=e.streamConfig)||void 0===r?void 0:r.status))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`msg::regenAIMessage message streamConfig.status forbidden ${e.streamConfig.status}`}});yield this.core.sendCmd("v2AIRegenMessage",{tag:{fromAccount:e.senderId,to:e.receiverId,aiAccount:null===(s=e.aiConfig)||void 0===s?void 0:s.accountId,serverId:e.messageServerId,clientId:e.messageClientId,time:e.createTime,type:e.conversationType,opeType:t.operationType,replyMsgFromAccount:null===(n=e.threadReply)||void 0===n?void 0:n.senderId,replyMsgToAccount:null===(o=e.threadReply)||void 0===o?void 0:o.receiverId,replyMsgTime:null===(a=e.threadReply)||void 0===a?void 0:a.createTime,replyMsgIdServer:null===(c=e.threadReply)||void 0===c?void 0:c.messageServerId,replyMsgIdClient:null===(d=e.threadReply)||void 0===d?void 0:d.messageClientId}}),1===t.operationType&&this.core.V2NIMAIService.model.setAiStream(e.messageClientId,{isComplete:!1,queryStatus:0,chunks:[]})})}checkAI(){if(!this.hasAI())throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2NIMAIService is not registered"}})}hasAI(){var e;return!!(null===(e=this.core.V2NIMAIService)||void 0===e?void 0:e.name)}}class Ms{constructor(e,t){this.core=e,this.service=t,this.model=t.model,this.receiptUtil=t.receiptUtil,this.logger=this.core.logger}setAIStreamPlaceholder(e){this.service.aiUtil.hasAI()&&e.forEach(e=>{var t;1===(null===(t=e.streamConfig)||void 0===t?void 0:t.status)&&this.core.V2NIMAIService.model.setAiStream(e.messageClientId,{isComplete:!1,queryStatus:0,chunks:[],msg:e},!0)})}onMsgHandler(e){var t=Ge(e,e.content.msg,"messageServerId"),{_conversationOnlineSyncNotify:i,_conversationOnlineSyncData:r}=t,s=Me(t,["_conversationOnlineSyncNotify","_conversationOnlineSyncData"]),n=Er(this.core,s,1),o=this.service._filterMessage(n);this.logger.log(`v2OnMsgHandler::recvMsg ${n.messageClientId}/${n.messageServerId}/${n.createTime};isHitFilter:${o}`),3===n.conversationType?this.core.eventBus.emit("V2NIMSync/updateTimetag",{superTeamRoamingMsgs:n.createTime,offlineMsgs:n.createTime}):this.core.eventBus.emit("V2NIMSync/updateTimetag",{roamingMsgs:n.createTime,offlineMsgs:n.createTime}),this.service.config.compatibleWithV1||(this.service.markMsgsAck([n]),this.service.sendUtil.doMsgReceiveReport(n,e)),delete n.__clientExt,this.setAIStreamPlaceholder([n]),5!==n.messageType&&this.core.V2NIMUserService.checkUserUpdate&&this.core.V2NIMUserService.checkUserUpdate(n,n.userUpdateTime),5===n.messageType&&this.core.eventBus.emit("V2NIMTeamService/notification",t),o||(this.service.emit("onReceiveMessages",[n]),this.model.upsertMessages([n]),i&&this.core.eventBus.emit("V2NIMConversationService/conversationOnlineSyncNotify",{content:{info:JSON.parse(i),data:JSON.parse(r)}},n),this.core.eventBus.emit("V2NIMMessageService/onMsg",n))}syncOfflineMsgsHandler(e){var t=e.content.datas;t=t.map(e=>Er(this.core,e,2)),0!==(t=this.service._filterMessagesByFn(t)).length&&(!this.service.config.compatibleWithV1&&this.service.markMsgsAck(t),this.service.emit("onReceiveMessages",t),this.model.upsertMessages(t),this.core.eventBus.emit("V2NIMMessageService/offlineMsgs",t))}syncRoamingMsgsHandler(e){var t=e.content.datas;t=t.map(e=>Er(this.core,e,3)),this.setAIStreamPlaceholder(t),0!==(t=this.service._filterMessagesByFn(t)).length&&(this.service.emit("onReceiveMessages",t),this.model.upsertMessages(t),this.core.eventBus.emit("V2NIMMessageService/roamingMsgs",t))}onP2PMessageReceiptsHandler(e){this.receiptUtil.onP2PMessageReceiptsHandler(e)}onTeamMessageReceiptsHandler(e){this.receiptUtil.onTeamMessageReceiptsHandler(e)}syncP2PMessagReceiptsHandler(e){this.receiptUtil.syncP2PMessagReceiptsHandler(e)}syncRevokeMessageHandler(e){this.service.deleteUtil.emitRevokeMessage(e.content.datas)}onRevokeMessageHandler(e){var t=e.content.data;this.service.deleteUtil.emitRevokeMessage([t])}onDeleteMessageHandler(e){var t=e.content.data,i={serverExtension:t.serverExtension,deleteTime:t.deleteTime,messageRefer:Tr(this.core,t.messageRefer)};this.service.deleteUtil.deleteMessagesFn([i])}onDeleteMessagesHandler(e){var t=e.content.data.map(e=>({serverExtension:e.serverExtension,deleteTime:e.deleteTime,messageRefer:Tr(this.core,e.messageRefer)}));this.service.deleteUtil.deleteMessagesFn(t)}syncOnDeleteMessagesHandler(e){var t=e.content.datas.map(e=>({serverExtension:e.serverExtension,deleteTime:e.deleteTime,messageRefer:Tr(this.core,e.messageRefer)}));this.service.emit("onMessageDeletedNotifications",t)}v2MessageOnModifiedHandler(e){var t=Er(this.core,e.content.data);this.model.upsertMessages([t]),this.service.aiUtil.hasAI()&&this.core.V2NIMAIService.model.completeAiStream(t.messageClientId),this.core.eventBus.emit("forwardSend/V2NIMMessageService/modifyMsg",t),this.core.eventBus.emit("V2NIMMessageService/modifyMsg",t),this.core.eventBus.emit("V2NIMSync/updateTimetag",3===t.conversationType?{superTeamModifyMessage:t.modifyTime}:{p2pTeamModifyMessage:t.modifyTime}),this.service.emit("onReceiveMessagesModified",[t])}v2MessageSyncModifiedHandler(e){var t=e.content.datas.map(e=>Er(this.core,e)).filter(e=>{var t,i=(null===(t=this.model.getMessageById(e.messageClientId))||void 0===t?void 0:t.modifyTime)||0;return(e.modifyTime||0)>i});t.length>0&&(this.model.upsertMessages(t),t.forEach(e=>{this.service.aiUtil.hasAI()&&this.core.V2NIMAIService.model.completeAiStream(e.messageClientId),this.core.eventBus.emit("forwardSend/V2NIMMessageService/modifyMsg",e)}),this.service.emit("onReceiveMessagesModified",t))}v2MessageSyncSuperTeamModifiedHandler(e){this.v2MessageSyncModifiedHandler(e)}}class Ts{constructor(e,t){this.core=e,this.service=t,this.logger=this.core.logger}setListener(){this.core.eventBus.on("forwardReceive/V2NIMMessageService/sendMsg",this.service.sendMessageFn.bind(this.service)),this.core.eventBus.on("forwardReceive/V2NIMMessageService/revokeMessages",this.service.deleteUtil.emitRevokeMessage.bind(this.service.deleteUtil)),this.core.eventBus.on("forwardReceive/V2NIMMessageService/deleteMessages",this.service.deleteUtil.deleteMessagesFn.bind(this.service.deleteUtil)),this.core.eventBus.on("V2NIMConversationService/deleteConversation",e=>{e.forEach(e=>this.service.model.deleteMessages(e))}),this.core.eventBus.on("V2NIMAIService/receiveMessagesModified",e=>this.service.emit("onReceiveMessagesModified",e))}beforeEmit(e,...t){var i,r,s,n=`${this.service.name}::emit ${e.toString()}`;if("onSendMessage"===e){var o=t[0];this.logger.log(`${n}`,`${o.messageClientId}/${o.messageServerId}/${o.createTime};`,`sendingState:${o.sendingState};attachmentUploadState:${o.attachmentUploadState||0};messageStatus:${null===(i=o.messageStatus)||void 0===i?void 0:i.errorCode};config.lastMsg:${null===(r=o.messageConfig)||void 0===r?void 0:r.lastMessageUpdateEnabled};config.unread:${null===(s=o.messageConfig)||void 0===s?void 0:s.unreadEnabled}`)}else if("onReceiveMessages"===e||"onReceiveMessagesModified"===e){var a=t[0];this.logger.log(`${n}`,a.map(e=>{var t,i;return`${e.messageClientId}/${e.messageServerId}/${e.createTime};config.lastMsg:${null===(t=e.messageConfig)||void 0===t?void 0:t.lastMessageUpdateEnabled};config.unread:${null===(i=e.messageConfig)||void 0===i?void 0:i.unreadEnabled}`}))}else if("onMessageRevokeNotifications"===e){var c=t[0];this.logger.log(`${n}`,c.map(e=>`msg:${e.messageRefer.messageClientId}/${e.messageRefer.messageServerId};revokeAccountId:${e.revokeAccountId}`))}else if("onMessageDeletedNotifications"===e){var d=t[0];this.logger.log(`${n}`,d.map(e=>`msg:${e.messageRefer.messageClientId}/${e.messageRefer.messageServerId};deleteTime:${e.deleteTime}`))}else this.logger.log(`${n}`,...t)}}var Ss={3:"super_team",1:"p2p",0:"p2p",2:"team"};var Ns,Cs={id:1,ext:2,createTime:{id:3,retType:"number"},updateTime:{id:4,retType:"number"}};function As(e,t,i=0,r){var s,n;t=Mr(t,e);var{messageType:o,subType:a,text:c,attachment:d,serverExtension:l}=t,h="";if(t.senderId!==e.account&&5!==o){h=Ve(t,"fromNick");var p=null===(n=null===(s=e.V2NIMFriendService)||void 0===s?void 0:s.model)||void 0===n?void 0:n.getFriend(t.senderId);p&&p.alias&&(h=p.alias)}return JSON.parse(JSON.stringify({lastMessageState:i,messageRefer:Sr(e,t),messageType:o,subType:a,text:c,attachment:d,serverExtension:l,callbackExtension:t.callbackExtension,sendingState:r,senderName:h}))}function Os(e,t){return t&&t.length>0?t.map(t=>Rs(e,t)):[]}function Rs(e,t){var i=t;if("string"==typeof i.lastMessage)if(""===i.lastMessage);else if(1===i.lastMessageState){var r=Nr(e,ut(JSON.parse(i.lastMessage),gt(Dr)));i.lastMessage=function(e,t){var{messageRefer:i,revokeAccountId:r,revokeType:s,callbackExtension:n,serverExtension:o,postscript:a}=t,c=function(e,t,i,r){var s,n,o,a,c,d,l,h;if(t!==e.account){var p=null===(n=null===(s=e.V2NIMFriendService)||void 0===s?void 0:s.model)||void 0===n?void 0:n.getFriend(t);if(p&&p.alias)return p.alias;if(2===i){var u=null===(a=null===(o=e.V2NIMTeamService)||void 0===o?void 0:o.memberModel)||void 0===a?void 0:a.getById(r,1,t);if(u&&u.teamNick)return u.teamNick}else if(3===i){var m=null===(d=null===(c=e.V2NIMTeamService)||void 0===c?void 0:c.memberModel)||void 0===d?void 0:d.getById(r,1,t);if(m&&m.teamNick)return m.teamNick}var g=null===(h=null===(l=e.V2NIMUserService)||void 0===l?void 0:l.model)||void 0===h?void 0:h.getUser(t);return g&&g.name?g.name:void 0}}(e,t.revokeAccountId,t.messageRefer.conversationType,t.messageRefer.receiverId)||"";return JSON.parse(JSON.stringify({lastMessageState:1,messageRefer:i,revokeAccountId:r,revokeType:s,callbackExtension:n,serverExtension:o,text:a||"",senderName:c}))}(e,r)}else if(0===i.lastMessageState){var s=ut(JSON.parse(i.lastMessage),gt(Lr));i.lastMessage=As(e,s,i.lastMessageState,s.senderId===e.account?1:void 0)}else 2===i.lastMessageState&&delete i.lastMessage;return i}function bs(e){var{version:t,deleteFlag:i}=e;return{conversation:Me(e,["version","deleteFlag"]),version:t,deleteFlag:i}}gt(Cs),gt(Cs),gt(Cs),gt(Cs),gt(Cs),Math.max,Math.min,function(e){e[e.createConversation=1]="createConversation",e[e.deleteConversation=2]="deleteConversation",e[e.updateConversation=3]="updateConversation",e[e.setConversationTop=4]="setConversationTop",e[e.clearConversationUnread=5]="clearConversationUnread",e[e.addConversationToGroup=6]="addConversationToGroup",e[e.removeConversationFromGroup=7]="removeConversationFromGroup",e[e.modifyConversationOnSendMessage=8]="modifyConversationOnSendMessage",e[e.modifyConversationOnDeleteMessage=9]="modifyConversationOnDeleteMessage",e[e.modifyConversationOnRecallMessage=10]="modifyConversationOnRecallMessage",e[e.modifyConversationOnClearMessage=11]="modifyConversationOnClearMessage",e[e.oneClickClearConversationUnread=12]="oneClickClearConversationUnread",e[e.modifyConversationOnUpdateMessage=13]="modifyConversationOnUpdateMessage"}(Ns||(Ns={}));var ks={type:"array",itemRules:{type:"enum",values:[1,2,3]},min:1};class Ls{constructor(){this.map=new Map,this.readTimeMap=new Map}set(e){e.forEach(e=>{e=this.processConversation(e),this.map.set(e.conversationId,e)})}reset(){this.map.clear(),this.readTimeMap.clear()}count(){return this.map.size}sort(){var e=Array.from(this.map.values());e.sort((e,t)=>t.sortOrder-e.sortOrder),this.map.clear(),e.forEach(e=>{this.map.set(e.conversationId,e)})}processConversation(e){return"string"==typeof e.lastMessage&&delete e.lastMessage,void 0===e.localExtension&&(e.localExtension=""),e}getById(e){return this.map.get(e)}getStickTopList(){return Array.from(this.map.values()).filter(e=>e.stickTop).sort((e,t)=>t.sortOrder-e.sortOrder)}getAll(){return Array.from(this.map.values()).sort((e,t)=>t.sortOrder-e.sortOrder)}getByOption(e,t,i){var{conversationTypes:r,onlyUnread:s,conversationGroupIds:n}=i,o=[];this.map.forEach(e=>{if((!(r&&r.length>0)||r.includes(e.type))&&(!s||e.unreadCount)&&(!i.ignoreMuted||!e.mute)){if(n){var t=e.groupIds,a=(null==t?void 0:t.length)||0;if(0===n.length&&a>0)return;if(n.length>0&&0===a)return;if(n.length>0&&a>0&&!n.some(e=>t&&t.includes(e)))return}o.push(e)}}),o=o.sort((e,t)=>t.sortOrder-e.sortOrder);var a=0;e>0&&(a=je(o,"sortOrder",e),o[a]&&o[a].sortOrder===e&&(a+=1));var c=o.slice(a).length;return(o=o.slice(a,a+t)).length>0?{offset:c>t?o[o.length-1].sortOrder:0,finished:!(c>t),conversationList:o}:{offset:0,finished:!0,conversationList:o}}upsert(e){var t=e.conversationId,i=this.map.get(t);if(!i)return e=this.processConversation(Object.assign({},e)),this.map.set(t,e),e.unreadCount>0;var r=e.unreadCount!==i.unreadCount,s=Object.assign({},i,e);return s=this.processConversation(s),this.map.set(t,s),r}bulkUpsert(e){var t=!1;return e.forEach(e=>{this.upsert(e)&&(t=!0)}),t}deleteById(e){var t=this.getById(e);if(t)return this.map.delete(e),t}updateReadTime(e,t){this.readTimeMap.set(e,t)}getReadTime(e){return this.readTimeMap.get(e)||0}}function Vs(e,t){var i=typeof e;if(i!==typeof t)return!1;if("object"===i){if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;for(var r=0;r{if(2===e.lastMessageState&&this.service.compute.hasMessageService){this.conversationIdsForBackFill[e.conversationId]=!0;var t=this.core.V2NIMMessageService.model.getLastMessageOfConversation(e.conversationId);e.lastMessage=t?As(this.core,t,e.lastMessageState,t.sendingState):""}else this.conversationIdsForBackFill[e.conversationId]=!1;delete e.lastMessageState}),e}recvConversationFromSyncAction(e){var{syncType:t}=Ve(e,"content.info"),i=Os(this.core,Ve(e,"content.datas"));0===(t=parseInt(t))?(i.forEach(e=>{this.initFieldVersion(e.conversationId,e.version)}),i=this.setBackFillIds(i),this.setModel(i)):(i=this.setBackFillIds(i),this.recvConversationForCreated(i)!!e.conversationId),i=Ve(e,"content.info"),r=t.map(e=>`id:${e.conversationId}, ver:${e.version}`).join(";");if(this.core.logger.getDebugMode()?this.core.logger.debug(`V2NIMConversation::recvConversation: ${r}.`,i,t):this.core.logger.log(`V2NIMConversation::recvConversation: ${r}.`,i),2===i.type){var s=t.map(e=>(delete this.fieldVersion[e.conversationId],this.service.model.deleteById(e.conversationId),e.conversationId));return this.service.emit("onConversationDeleted",s),void this.service.unread.digestUnreadCountChange()}12!==i.type?(i.type,t=this.setBackFillIds(t),this.recvConversationForCreated(t)!this.fieldVersion[e.conversationId]);return t.reduce((e,t)=>{if(!this.fieldVersion[t.conversationId]){this.initFieldVersion(t.conversationId,t.version),e=!!this.updateModel(t)||e;var i=this.service.model.getById(t.conversationId);return i&&this.service.triggerConversationCreated(i),e}return e},!1)&&this.service.unread.digestUnreadCountChange(),t.length}recvConversationForChanged(e){var t=this.bulkCompare(e);if(0!==t.length){this.bulkUpdateModel(t);var i=t.map(e=>this.service.model.getById(e.conversationId)).filter(e=>!!e);this.service.triggerConversationChanged(i)}}processTempPacket(){this.tempPacket.forEach(e=>{this.recvConversation(e)}),this.tempPacket=[]}bulkCompare(e){return e.map(e=>this.compare(e)).filter(e=>!!e)}compare(e){var{version:t,conversationId:i,deleteFlag:r,type:s}=e,n={},o=0;return["stickTop","groupIds","serverExtension","localExtension","lastMessage","lastMessageState","unreadCount","sortOrder","createTime","updateTime","lastReadTime"].forEach(r=>{var s=r;if(void 0!==e[s]){var a=this.fieldVersion[i];a&&"number"==typeof a[s]&&a[s]>=t||(this.fieldVersion[i]=this.fieldVersion[i]||{},this.fieldVersion[i][s]=t,n[s]=e[s],o+=1)}}),o?Object.assign(Object.assign({},n),{conversationId:i,deleteFlag:r,version:t,type:s}):void 0}bulkUpdateModel(e){var t=!1;e.forEach(e=>{this.updateModel(e)&&(t=!0)}),t&&this.service.unread.digestUnreadCountChange()}initFieldVersion(e,t){this.fieldVersion[e]={stickTop:t,groupIds:t,serverExtension:t,lastMessage:t,lastMessageState:t,unreadCount:t,sortOrder:t,createTime:t,updateTime:t,lastReadTime:t}}initConversation(e,t){var i=Date.now();return Object.assign({conversationId:e,type:this.core.V2NIMConversationIdUtil.parseConversationType(e),stickTop:!1,localExtension:"",serverExtension:"",unreadCount:0,lastReadTime:0,createTime:i,updateTime:i,sortOrder:i},t)}updateModel(e){var{deleteFlag:t,conversation:i}=bs(e);if(t){var r=this.service.model.deleteById(i.conversationId);return!!(r&&r.unreadCount>0)}return this.service.model.upsert(i)}setModel(e){var t=e.filter(e=>!e.deleteFlag).map(e=>bs(e).conversation);this.service.model.set(t)}updateModelWithLastMessage(e,t,i,r){var s=this.service.model.getById(e),n=t?As(this.core,t,i,r):void 0;if(!Vs(null==s?void 0:s.lastMessage,n))if(s){var o=Object.assign(Object.assign({},s),{sortOrder:n?s.stickTop?n.messageRefer.createTime+1e15:n.messageRefer.createTime:s.sortOrder,lastMessage:n});this.service.model.upsert(o),this.service.triggerConversationChanged([o])}else{this.initFieldVersion(e,-1);var a=this.initConversation(e,{lastMessage:n});this.service.model.upsert(a),this.service.triggerConversationCreated(a)}}updateModelByRevoke(e){var t=[];e.forEach(e=>{var{postscript:i,messageRefer:r}=e,s=Me(e,["postscript","messageRefer"]),n=r.conversationId,o=this.service.model.getById(n);o&&o.lastMessage&&o.lastMessage.messageRefer.messageClientId===r.messageClientId&&1!==o.lastMessage.lastMessageState&&(o.lastMessage.lastMessageState=1,i&&(o.lastMessage.text=i),Object.assign(o.lastMessage,s),this.service.model.upsert(o),t.push(o))}),t.length>0&&this.service.triggerConversationChanged(t)}compareAndUpdateModel(e){this.core.logger.log("V2NIMConversation::compareAndUpdateModel",e.map(e=>e.conversationId));var t=!1,i=[];e.forEach(e=>{var r=this.compare(e);if(r){var s=this.service.model.getById(e.conversationId);this.updateModel(r)&&(t=!0);var n=this.service.model.getById(e.conversationId);n&&(s?i.push(n):this.service.triggerConversationCreated(n))}}),i.length>0&&this.service.triggerConversationChanged(i),t&&this.service.unread.digestUnreadCountChange()}compareAndDeleteModel(e){this.core.logger.log("V2NIMConversation::compareAndDeleteModel",e);var t=e.reduce((e,t)=>{delete this.fieldVersion[t];var i=this.service.model.deleteById(t);return!!(i&&i.unreadCount>0)||e},!1);this.service.emit("onConversationDeleted",e),t&&this.service.unread.digestUnreadCountChange()}compareAndDeleteGroupInModel(e,t){this.core.logger.log("V2NIMConversation::compareAndDeleteGroupInModel",e,t);var i=[];Object.keys(this.fieldVersion).forEach(r=>{var s=this.fieldVersion[r];if(void 0===s.groupIds||e>s.groupIds){s.groupIds=e;var n=this.service.model.getById(r);if(n&&n.groupIds&&n.groupIds.length>0){var o=n.groupIds.filter(e=>e!==t);if(o.length!==n.groupIds.length){var a=Object.assign(Object.assign({},n),{groupIds:o});this.service.model.upsert(a),a&&i.push(a)}}}}),i.length>0&&this.service.triggerConversationChanged(i)}compareAndClearUnreadInModel(e){var{oneClickClearUnreadType:t,oneClickClearUnreadVersion:i,oneClickClearUnreadLastReadTime:r,oneClickClearUnreadConversationType:s,oneClickClearUnreadGroupId:n}=e;this.core.logger.log(`V2NIMConversation::compareAndClearUnreadInModel.ver:${i};type:${t};lastReadTime:${r};filter:${s||""};grounp:${n||""}`);var o=[],a=[];if(1===t)a=this.service.model.getAll();else if(s||n){var c=this.service.model.count();a=this.service.model.getByOption(0,c,{conversationTypes:s,conversationGroupIds:n?[n]:void 0}).conversationList}a.forEach(e=>{var t=e.conversationId,s=this.fieldVersion[t];if(void 0===s.unreadCount||i>s.unreadCount){s.unreadCount=i,s.lastReadTime=i;var n=e.unreadCount,a=Object.assign(Object.assign({},e),{lastReadTime:r,unreadCount:0});this.service.model.upsert(a),n>0&&o.push(a)}}),o.length>0&&this.service.triggerConversationChanged(o),this.service.unread.digestUnreadCountChange()}backfillLastMsg(e,t){var i=e=Zt(e);(t||0!==(i=e.filter(e=>this.conversationIdsForBackFill[e])).length)&&i.forEach(e=>{var t=Ve(this.service.model.getById(e),"lastMessage.messageRefer.messageClientId"),i=this.service.compute.hasMessageService?this.core.V2NIMMessageService.model.getLastMessageOfConversation(e):void 0;(i&&i.messageClientId)!==t&&(this.conversationIdsForBackFill[e]=!1,i?this.updateModelWithLastMessage(e,i,2,i.sendingState):this.updateModelWithLastMessage(e,void 0,2,0))})}}var Ds,ws={"28_1":"v2ConversationCreate","28_2":"v2ConversationDelete","28_3":"v2ConversationUpdate","28_4":"v2ConversationSetTop","28_5":"v2ConversationUnreadClear","28_6":"v2ConversationGet","28_7":"v2ConversationGetByIds","28_8":"v2ConversationGetList","28_17":"v2ConversationsDelete","28_18":"v2ConversationsUnreadClear","28_19":"v2ConversationSync","28_20":"v2ConversationNotifySync","28_21":"v2ConversationNotifySyncOnline","28_23":"v2ConversationClearTotalUnread","28_24":"v2ConversationClearTypeUnread","28_25":"v2ConversationClearGroupUnread","4_14":"syncConversationReadTime","4_20":"syncSuperTeamReadTime","4_22":"v2SyncSessionsWithMoreRoaming","4_25":"v2SyncSessionReliableInfo","30_16":"v2MarkConversationReadTime","32_25":"v2MarkSuperTeamReadTime","7_116":"v2MultiDeviceConversationReadTime","21_125":"v2MultiDeviceSuperTeamReadTime"},Us="V2NIMConversationService",xs={conversationId:1,type:{id:2,retType:"number"},serverExtension:3,groupIds:{id:4,retConverter:e=>e?JSON.parse(e):void 0},lastMessage:5,lastMessageState:{id:6,retType:"number"},unreadCount:{id:7,retType:"number"},stickTop:{id:8,retType:"boolean"},sortOrder:{id:9,retType:"number"},version:{id:10,retType:"number"},deleteFlag:{id:11,retType:"boolean"},createTime:{id:12,retType:"number"},updateTime:{id:13,retType:"number"},lastReadTime:{id:14,retType:"number"}},Fs={type:{id:1,retType:"number"},oneClickClearUnreadType:{id:2,retType:"number"},oneClickClearUnreadConversationType:{id:3,retConverter:_t},oneClickClearUnreadGroupId:{id:4,retType:"string"},oneClickClearUnreadVersion:{id:5,retType:"number"},oneClickClearUnreadLastReadTime:{id:6,retType:"number"}},Bs={v2ConversationCreate:{sid:28,cid:1,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1}}],response:[{type:"Property",name:"data",reflectMapper:gt(xs)}]},v2ConversationDelete:{sid:28,cid:2,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,clearMessage:2}}],response:[{type:"Property",name:"data",reflectMapper:gt(xs)}]},v2ConversationUpdate:{sid:28,cid:3,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,serverExtension:2}}],response:[{type:"Property",name:"data",reflectMapper:gt(xs)}]},v2ConversationSetTop:{sid:28,cid:4,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,stickTop:2}}],response:[{type:"Property",name:"data",reflectMapper:gt(xs)}]},v2ConversationUnreadClear:{sid:28,cid:5,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1}}],response:[{type:"Property",name:"data",reflectMapper:gt(xs)}]},v2ConversationGet:{sid:28,cid:6,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1}}],response:[{type:"Property",name:"data",reflectMapper:gt(xs)}]},v2ConversationGetByIds:{sid:28,cid:7,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(xs)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationGetList:{sid:28,cid:8,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{cursor:1,limit:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(xs)},{type:"Property",name:"info",reflectMapper:{1:"hasMore",2:"offset"}}]},v2ConversationsDelete:{sid:28,cid:17,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1,clearMessage:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(xs)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationsUnreadClear:{sid:28,cid:18,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:gt(xs)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationSync:{sid:28,cid:19,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{cursor:1}}],response:[{type:"Property",name:"info",reflectMapper:{1:"nextCursor",2:"syncType"}}]},v2ConversationNotifySync:{sid:28,cid:20,service:Us,response:[{type:"Property",name:"info",reflectMapper:{1:"nextCursor",2:"syncType"}},{type:"PropertyArray",name:"datas",reflectMapper:gt(xs)}]},v2ConversationNotifySyncOnline:{sid:28,cid:21,service:Us,response:[{type:"Property",name:"info",reflectMapper:gt(Fs)},{type:"PropertyArray",name:"datas",reflectMapper:gt(xs)}]},v2ConversationClearTotalUnread:{sid:28,cid:23,service:Us,response:[{type:"Property",name:"info",reflectMapper:gt(Fs)}]},v2ConversationClearTypeUnread:{sid:28,cid:24,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{conversationType:1}}],response:[{type:"Property",name:"info",reflectMapper:gt(Fs)}]},v2ConversationClearGroupUnread:{sid:28,cid:25,service:Us,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1}}],response:[{type:"Property",name:"info",reflectMapper:gt(Fs)}]},syncConversationReadTime:{sid:4,cid:14,service:Us,response:[{type:"StrLongMap",name:"p2p"},{type:"LongLongMap",name:"team"},{type:"Long",name:"timetag"}]},syncSuperTeamReadTime:{sid:4,cid:20,service:Us,response:[{type:"LongLongMap",name:"superTeam"}]},v2SyncSessionsWithMoreRoaming:{sid:4,cid:22,service:Us,response:[]},v2SyncSessionReliableInfo:{sid:4,cid:25,service:Us,response:[]},v2MarkConversationReadTime:{sid:30,cid:16,service:Us,params:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}]},v2MarkSuperTeamReadTime:{sid:32,cid:25,service:Us,params:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}]},v2MultiDeviceConversationReadTime:{sid:30,cid:116,service:Us,response:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}]},v2MultiDeviceSuperTeamReadTime:{sid:21,cid:125,service:Us,response:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}]}};class js{constructor(e,t){this.totalUnreadCount=void 0,this.unreadCountByFilter={},this.core=e,this.service=t}reset(){this.totalUnreadCount=void 0,this.unreadCountByFilter={}}getTotalUnreadCount(){return this.totalUnreadCount}resetTotalAfterSyncDone(){var e=this.service.model.getAll().reduce((e,t)=>e+(t.unreadCount||0),0),t=this.totalUnreadCount;return void 0!==t&&t===e||(this.totalUnreadCount=e,this.service.emit("onTotalUnreadCountChanged",e)),e}digestUnreadCountChange(){this._digest()}_digest(){var e=this.totalUnreadCount,t=this.service.model.getAll().reduce((e,t)=>e+(t.unreadCount||0),0);this.core.logger.log(`V2NIMConversation::digestUnreadCountChange:oldUnreadCount ${e}, newUnreadCount ${t}`),e!==t&&(this.totalUnreadCount=t,this.service.emit("onTotalUnreadCountChanged",t)),Object.keys(this.unreadCountByFilter).forEach(e=>{var t=JSON.parse(e),i=this.getUnreadCountByFilter(t),r=this.unreadCountByFilter[e];this.unreadCountByFilter[e]=i,t.equals=$s.bind(t),r!==i&&this.service.emit("onUnreadCountChangedByFilter",t,i)})}getUnreadCountByIds(e){return e.reduce((e,t)=>{var i=this.service.model.getById(t);return e+(i&&i.unreadCount||0)},0)}getUnreadCountByFilter(e){var t=this.service.model.count();return this.service.model.getByOption(0,t,{conversationTypes:e.conversationTypes,conversationGroupIds:e.conversationGroupId?[e.conversationGroupId]:void 0,ignoreMuted:e.ignoreMuted}).conversationList.reduce((e,t)=>e+(t.unreadCount||0),0)}addFilter(e){var t=Gs(e);if(void 0!==this.unreadCountByFilter[t])throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_ALREADY_EXIST});var i=JSON.parse(t),r=this.getUnreadCountByFilter(i);this.unreadCountByFilter[t]=r,this.service.emit("onUnreadCountChangedByFilter",i,r)}deleteFilter(e){var t=Gs(e);if(void 0===this.unreadCountByFilter[t])throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST});delete this.unreadCountByFilter[t]}}function Gs(e){var{conversationTypes:t}=e;return t&&(t=t.sort()),JSON.stringify({conversationGroupId:e.conversationGroupId,conversationTypes:t,ignoreMuted:e.ignoreMuted})}function $s(e){return JSON.stringify(this)===Gs(e)}function Hs(e){var t=JSON.parse(e);return Object.keys(t).map(e=>({conversationId:e,error:new pe({code:t[e]})}))}!function(e){e[e.createConversationGroup=1]="createConversationGroup",e[e.deleteConversationGroup=2]="deleteConversationGroup",e[e.updateConversationGroup=3]="updateConversationGroup",e[e.addConversationToGroup=4]="addConversationToGroup",e[e.removeConversationFromGroup=5]="removeConversationFromGroup"}(Ds||(Ds={}));class Ys{constructor(e,t){this.core=e,this.service=t}get hasUserService(){var e;return!!(null===(e=this.core.V2NIMUserService)||void 0===e?void 0:e.name)}get hasFriendService(){var e;return!!(null===(e=this.core.V2NIMFriendService)||void 0===e?void 0:e.name)}get hasTeamService(){var e;return!!(null===(e=this.core.V2NIMTeamService)||void 0===e?void 0:e.name)}get hasMessageService(){var e;return!!(null===(e=this.core.V2NIMMessageService)||void 0===e?void 0:e.name)}computeConvs(e){return e.map(e=>this.computeConv(e))}computeConv(e){var t,i,r,s,n;if(0===e.type)return e;var o=this.core.V2NIMConversationIdUtil.parseConversationType(e.conversationId),a=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e.conversationId),c={};if(e.lastReadTime||(c.lastReadTime=this.service.model.getReadTime(e.conversationId)),(null===(t=this.core.V2NIMSettingService)||void 0===t?void 0:t.name)&&(c.mute=this.core.V2NIMSettingService.getConversationMuteStatus(e.conversationId)),1===o&&this.hasUserService){var d,l=this.core.V2NIMUserService.model.getUser(a),h=this.hasFriendService?this.core.V2NIMFriendService.model.getFriend(a):void 0;e.conversationId!==(null===(i=e.lastMessage)||void 0===i?void 0:i.messageRefer.conversationId)||0!==(null===(r=e.lastMessage)||void 0===r?void 0:r.lastMessageState)&&2!==(null===(s=e.lastMessage)||void 0===s?void 0:s.lastMessageState)||(d=null===(n=e.lastMessage)||void 0===n?void 0:n.senderName),c.name=(null==h?void 0:h.alias)||(null==l?void 0:l.name)||d||a,c.avatar=(null==l?void 0:l.avatar)||""}else if(2===o&&this.hasTeamService){var p=this.core.V2NIMTeamService.model.getById(a,1);c.name=(null==p?void 0:p.name)||a,c.avatar=(null==p?void 0:p.avatar)||""}else if(3===o&&this.hasTeamService){var u=this.core.V2NIMTeamService.model.getById(a,2);c.name=(null==u?void 0:u.name)||a,c.avatar=(null==u?void 0:u.avatar)||""}return Object.assign(e,c),e}computeReadTimeForMark(e){var t,i,r,s=e.conversationId,n=this.service.model.getReadTime(s);if(null===(i=null===(t=null==e?void 0:e.lastMessage)||void 0===t?void 0:t.messageRefer)||void 0===i?void 0:i.createTime)r=e.lastMessage.messageRefer.createTime;else{if(!this.core.timeOrigin.checkNodeReliable())return n||0;r=this.core.timeOrigin.getNTPTime()}return r}}class qs{constructor(e,t){this.core=e,this.service=t,this.model=this.service.model,this.logger=this.core.logger}get ifEnabled(){return!0===this.core.options.enableV2CloudConversation}v2ConversationNotifySyncHandler(e){this.ifEnabled&&this.service.versionCache.recvConversationFromSyncAction(e)}v2ConversationNotifySyncOnlineHandler(e){this.ifEnabled&&this.service.versionCache.recvConversation(e)}syncConversationReadTimeHandler(e){var t,i,r;if(this.ifEnabled){if(null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.p2p)for(var[s,n]of Object.entries(e.content.p2p))this.model.updateReadTime(this.core.V2NIMConversationIdUtil.p2pConversationId(s),n),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.p2pConversationId(s),n);if(null===(r=null===(i=null==e?void 0:e.content)||void 0===i?void 0:i.team)||void 0===r?void 0:r.m_map)for(var[o,a]of Object.entries(e.content.team.m_map))this.model.updateReadTime(this.core.V2NIMConversationIdUtil.teamConversationId(o),a),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.teamConversationId(o),a)}}syncSuperTeamReadTimeHandler(e){var t,i;if(this.ifEnabled&&(null===(i=null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.superTeam)||void 0===i?void 0:i.m_map))for(var[r,s]of Object.entries(e.content.superTeam.m_map))this.model.updateReadTime(this.core.V2NIMConversationIdUtil.superTeamConversationId(r),s),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.superTeamConversationId(r),s)}v2MultiDeviceConversationReadTimeHandler(e){var t;this.ifEnabled&&(null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.to)&&(0===e.content.scene?(this.model.updateReadTime(this.core.V2NIMConversationIdUtil.p2pConversationId(e.content.to),e.content.timetag),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.p2pConversationId(e.content.to),e.content.timetag)):(this.model.updateReadTime(this.core.V2NIMConversationIdUtil.teamConversationId(e.content.to),e.content.timetag),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.teamConversationId(e.content.to),e.content.timetag)))}v2MultiDeviceSuperTeamReadTimeHandler(e){var t;this.ifEnabled&&(null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.to)&&(this.model.updateReadTime(this.core.V2NIMConversationIdUtil.superTeamConversationId(e.content.to),e.content.timetag),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.superTeamConversationId(e.content.to),e.content.timetag))}}class Ks{constructor(e,t){this.core=e,this.service=t,this.model=this.service.model,this.versionCache=this.service.versionCache,this.logger=this.core.logger}setListener(){this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",()=>this.versionCache.doSync()),this.core.eventBus.on("V2NIMConversationService/conversationOnlineSyncNotify",this.conversationOnlineSyncNotify.bind(this)),this.core.eventBus.on("V2NIMMessageService/sendMessage",this.sendMessage.bind(this)),this.core.eventBus.on("V2NIMMessageService/deleteMessages",this.deleteMessages.bind(this)),this.core.eventBus.on("V2NIMMessageService/revokeMessages",this.revokeMessages.bind(this)),this.core.eventBus.on("V2NIMMessageService/roamingMsgs",this.roamingOrOfflineMsgs.bind(this)),this.core.eventBus.on("V2NIMMessageService/offlineMsgs",this.roamingOrOfflineMsgs.bind(this)),this.core.eventBus.on("V2NIMSettingService/setMute",this.setMute.bind(this))}beforeEmit(e,...t){var i,r,s=`${this.service.name}::emit ${e.toString()}`;if("onConversationCreated"===e){var n=t[0];this.logger.log(`${s}`,`id:${n.conversationId};unread:${n.unreadCount};lastMsg:${null===(i=n.lastMessage)||void 0===i?void 0:i.messageRefer.messageClientId}/${null===(r=n.lastMessage)||void 0===r?void 0:r.messageRefer.messageServerId}`)}else if("onConversationChanged"===e){var o=t[0];this.logger.log(`${s}`,o.map(e=>{var t,i;return`id:${e.conversationId};unread:${e.unreadCount};lastMsg:${null===(t=e.lastMessage)||void 0===t?void 0:t.messageRefer.messageClientId}/${null===(i=e.lastMessage)||void 0===i?void 0:i.messageRefer.messageServerId}`}))}else this.logger.log(`${s}`,...t)}conversationOnlineSyncNotify(e,t){var i;!1!==(null===(i=null==t?void 0:t.messageConfig)||void 0===i?void 0:i.lastMessageUpdateEnabled)&&(e.content.info=ut(e.content.info,gt(Fs)),e.content.data=ut(e.content.data,gt(xs)),t&&(e.content.data.lastMessage=As(this.core,t,0)),e.content.datas=[e.content.data],this.service.handler.v2ConversationNotifySyncOnlineHandler.call(this,e))}sendMessage(e,t){var i,r;1===t&&!0===(null===(i=e.messageConfig)||void 0===i?void 0:i.historyEnabled)||!1!==(null===(r=null==e?void 0:e.messageConfig)||void 0===r?void 0:r.lastMessageUpdateEnabled)&&this.versionCache.updateModelWithLastMessage(e.conversationId,e,2,t)}deleteMessages(e){var t=e.map(e=>e.messageRefer.conversationId);this.versionCache.backfillLastMsg(t,!0)}revokeMessages(e){this.versionCache.updateModelByRevoke(e)}roamingOrOfflineMsgs(e){var t=Zt(e.map(e=>e.conversationId));this.versionCache.backfillLastMsg(t,!1)}setMute(e,t){var i=this.model.getById(e);i&&i.mute!==t&&(i.mute=t,this.model.upsert(i),this.service.triggerConversationChanged([i]))}}var Ws={groupId:1,name:2,serverExtension:3,createTime:4,updateTime:5};gt(Ws),gt(xs),gt(Ws),gt(Ws),gt(Ws),gt(Ws),gt(xs),gt(xs),gt(Ws);var Js="V2NIMMessageLogUtil",zs={"30_6":"v2GetMessageList","33_2":"v2GetMessageListByRefers","30_9":"v2ClearRoamingMessage","30_18":"v2ClearHistoryMessage","7_118":"onClearHistoryMessage","4_24":"syncClearHistoryMessage","31_23":"v2GetTeamMessageList","32_14":"v2GetSuperTeamMessageList"},Xs={conversationType:{id:0,retType:"number"},receiverId:1,deleteRoam:{id:2,converter:vt},teamId:3,onlineSync:{id:4,converter:vt},deleteTime:{id:6,retType:"number"},serverExtension:7},Qs=[{type:"Long",name:"beginTime"},{type:"Long",name:"endTime"},{type:"Long",name:"lastMsgId"},{type:"Int",name:"limit"},{type:"Bool",name:"direction"},{type:"LongArray",name:"msgTypes"}],Zs={v2GetMessageList:{sid:30,cid:6,service:Js,params:[{type:"String",name:"to"},...Qs],response:[{type:"PropertyArray",name:"msgs",reflectMapper:gt(Lr)}]},v2GetMessageListByRefers:{sid:33,cid:2,service:Js,params:[{type:"PropertyArray",name:"tag",reflectMapper:Lr,select:["conversationType","senderId","receiverId","createTime","messageServerId"]}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:gt(Lr)}]},v2ClearRoamingMessage:{sid:30,cid:9,service:Js,params:[{type:"StrArray",name:"conversationIds"}]},v2ClearHistoryMessage:{sid:30,cid:18,service:Js,params:[{type:"Property",name:"tag",reflectMapper:Xs}],response:[{type:"Long",name:"timetag"}]},v2GetTeamMessageList:{sid:31,cid:23,service:Js,params:[{type:"Long",name:"to"},...Qs],response:[{type:"PropertyArray",name:"msgs",reflectMapper:gt(Lr)}]},v2GetSuperTeamMessageList:{sid:32,cid:14,service:Js,params:[{type:"Long",name:"to"},...Qs],response:[{type:"PropertyArray",name:"msgs",reflectMapper:gt(Lr)}]},onClearHistoryMessage:{sid:7,cid:118,service:Js,response:[{type:"Property",name:"data",reflectMapper:gt(Xs)}]},syncClearHistoryMessage:{sid:4,cid:24,service:Js,response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Xs)}]}},en={conversationType:{id:1,converter:xr,retConverter:Fr,access:"messageRefer.conversationType"},senderId:{id:2,access:"messageRefer.senderId"},receiverId:{id:3,access:"messageRefer.receiverId"},createTime:{id:4,retType:"number",access:"messageRefer.createTime"},messageServerId:{id:5,access:"messageRefer.messageServerId"},messageClientId:{id:6,access:"messageRefer.messageClientId"},detail:7,modify:{id:8,retType:"number"}},tn={conversationType:{id:1,access:"messageRefer.conversationType",retConverter:Fr},senderId:{id:2,access:"messageRefer.senderId"},receiverId:{id:3,access:"messageRefer.receiverId"},time:{id:4,access:"messageRefer.createTime",converter:vt,retType:"number"},messageServerId:{id:5,access:"messageRefer.messageServerId"},messageClientId:{id:6,access:"messageRefer.messageClientId"},operatorId:7,serverExtension:8,createTime:{id:9,converter:vt,retType:"number"},updateTime:{id:10,converter:vt,retType:"number"}},rn={operatorId:1,index:{id:2,retType:"number"},createTime:{id:3,retType:"number"},serverExtension:4,pushEnabled:{id:5,access:"pushConfig.pushEnabled",converter:vt},needBadge:{id:6,access:"pushConfig.needBadge",converter:vt},title:{id:7,access:"pushConfig.title"},pushContent:{id:8,access:"pushConfig.pushContent"},pushPayload:{id:9,access:"pushConfig.pushPayload"}},sn={accid:1,serverExtension:2,createTime:{id:3,retType:"number"},updateTime:{id:4,retType:"number"}},nn={collectionId:1,collectionType:{id:2,retType:"number"},collectionData:3,serverExtension:4,uniqueId:5,createTime:{id:6,retType:"number"},updateTime:{id:7,retType:"number"}};Object.assign(Object.assign({},{keyword:1,beginTime:2,endTime:3,messageLimit:5,sortOrder:{id:6,converter:e=>0===e?2:1},p2pAccountIds:{id:7,converter:e=>e.join(",")},teamIds:{id:8,converter:e=>e.join(",")},senderAccountIds:{id:9,converter:e=>e.join(",")},messageTypes:{id:10,converter:e=>e.join(",")},messageSubtypes:{id:11,converter:e=>e.join(",")}}),{conversationLimit:4});gt(tn),gt(Lr),gt(rn),gt(Lr),gt(rn),gt(en),gt(Lr),gt(sn),gt(Lr),gt(sn),gt(Lr),gt(sn),gt(nn),gt(nn),gt(nn),gt(Lr),gt(Lr),gt(Lr),gt(Lr),gt({total:{id:1,retType:"number"},timestamp:{id:2,retType:"number"}}),gt(Lr);var on,an={joinMode:{type:"enum",values:[1,0,2],required:!1},agreeMode:{type:"enum",values:[0,1],required:!1},inviteMode:{type:"enum",values:[1,0],required:!1},updateInfoMode:{type:"enum",values:[1,0],required:!1},updateExtensionMode:{type:"enum",values:[1,0],required:!1},chatBannedMode:{type:"enum",values:[0,1],required:!1}},cn={type:"object",required:!0,rules:Object.assign({name:{type:"string",allowEmpty:!1},teamType:{type:"enum",values:[1,2]},memberLimit:{type:"number",min:1,required:!1}},an)},dn={type:"array",min:1,itemType:"string"},ln={type:"boolean"},hn={type:"string"},pn={type:"string",allowEmpty:!1},un={type:"object",rules:{antispamBusinessId:{type:"string",required:!1}},required:!1},mn={teamId:{type:"string",regExp:/^[1-9]\d*$/,allowEmpty:!1}},gn={teamIds:{type:"array",itemRules:{type:"string",allowEmpty:!1,regExp:/^[1-9]\d*$/},min:1}},vn={teamType:{type:"enum",values:[1,2]}},fn={teamTypes:{type:"array",itemType:"enum",values:[1,2],required:!1}},_n={inviteeParams:{type:"object",required:!0,rules:{inviteeAccountIds:dn,postscript:Object.assign(Object.assign({},hn),{required:!1}),serverExtension:Object.assign(Object.assign({},hn),{required:!1})}}},In={updateTeamInfoParams:{type:"object",required:!0,rules:Object.assign({name:{type:"string",allowEmpty:!1,required:!1},memberLimit:{type:"number",min:1,required:!1}},an)}},yn={type:"enum",values:[0,2]},En={memberInfoParams:{type:"object",rules:{teamNick:{type:"string",required:!1},serverExtension:{type:"string",required:!1},antispamConfig:{type:"object",required:!1,rules:{antispamBusinessId:{type:"string",required:!1}}}}}},Mn={chatBannedMode:{type:"enum",values:[0,1]}},Tn={queryOption:{type:"object",rules:{roleQueryType:{type:"enum",values:[0,2,1]},onlyChatBanned:{type:"boolean",required:!1},direction:{type:"enum",values:[1,0],required:!1},limit:{type:"number",min:1,required:!1},nextToken:{type:"string",required:!1}}}},Sn={teamId:mn.teamId,teamType:{type:"enum",values:[1,2]},operatorAccountId:{type:"string",allowEmpty:!1}},Nn={actionType:{type:"enum",values:[2,0,1,3]}},Cn={actionType:{type:"enum",values:[2]}},An={actionType:{type:"enum",values:[0]}},On={types:{type:"array",itemType:"enum",values:[0,2,1,3],required:!1},status:{type:"array",itemType:"enum",values:[1,3,0,2],required:!1},offset:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1}},Rn={teamId:mn.teamId,teamType:vn.teamType,accountIds:dn},bn={accountId:{type:"string",allowEmpty:!1},teamNick:{type:"string"},antispamConfig:{type:"object",required:!1,rules:{antispamBusinessId:{type:"string",required:!1}}}};class kn{constructor(){this.teamMap=new Map,this.superTeamMap=new Map}set(e){e.forEach(e=>{this.chooseMap(e.teamType).set(e.teamId,e)})}reset(){this.teamMap.clear(),this.superTeamMap.clear()}count(e,t=!0){var i=this.chooseMap(e),r=0;return i.forEach(e=>{t&&e.isValidTeam&&r++,t||r++}),r}chooseMap(e){return 2===e?this.superTeamMap:1===e?this.teamMap:new Map}getById(e,t,i=!0){var r=this.chooseMap(t).get(e);if(r){if(i&&r.isValidTeam)return r;if(!i)return r}}getAll(e,t=!0){var i=this.chooseMap(e);return Array.from(i.values()).filter(e=>!(!t||!e.isValidTeam)||!t||void 0).sort((e,t)=>t.updateTime-e.updateTime)}upsert(e){var t=e.teamId,i=e.teamType,r=this.chooseMap(i),s=r.get(t)||{},n=Object.assign({},s,e);return r.set(t,n),n}deleteById(e,t){var i=this.getById(e,t);if(i)return i.isValidTeam=!1,i}searchTeamByKeyword(e){var t=[];return this.teamMap.forEach(i=>{i.name.includes(e)&&t.push(i)}),this.superTeamMap.forEach(i=>{i.name.includes(e)&&t.push(i)}),t}}class Ln{constructor(){this.teamMembers=[],this.superTeamMembers=[],this.maxSize=2e3}reset(){this.teamMembers=[],this.superTeamMembers=[]}setData(e){e.forEach(e=>{this.chooseList(e.teamType).push(e)})}chooseList(e){return 2===e?this.superTeamMembers:1===e?this.teamMembers:[]}getById(e,t,i){return this.chooseList(t).find(t=>t.teamId===e&&t.accountId===i)}upsert(e){var t=e.teamType,i=e.teamId,r=this.chooseList(t),s=r.findIndex(t=>t.teamId===i&&t.accountId===e.accountId);-1===s?r.push(e):r[s]=Object.assign(Object.assign({},r[s]),e),r.length>this.maxSize&&r.shift()}deleteByAccount(e,t,i){var r=this.chooseList(t),s=r.findIndex(t=>t.teamId===e&&t.accountId===i);if(-1!==s){var n=r[s];return n.inTeam=!1,r.splice(s,1),n}}deleteByTeamId(e,t){var i=this.chooseList(t).filter(t=>t.teamId!==e);2===t?this.superTeamMembers=i:this.teamMembers=i}}class Vn{constructor(e,t){this.core=e,this.service=t}processNotification(e){var{attachment:t,senderId:i,receiverId:r,createTime:s}=e,{id:n,data:o}=t,a=n>400?2:1,{id:c,ids:d,tinfo:l,mute:h}=fr(o,a),p=this.service.model.getById(r,a);switch(this.core.logger.log(`v2Team::processNotification, notificationType:${n}, teamId:${r}`,o),n){case on.SUPER_TEAM_INVITATION:case on.TEAM_INVITATION:d.includes(this.core.account)&&this.onTeamJoined(l),this.onTeamMembersJoined(l,d.filter(e=>e!==this.core.account));break;case on.SUPER_TEAM_INVITE_ACCEPT:case on.TEAM_INVITE_ACCEPT:i===this.core.account?this.onTeamJoined(l):this.onTeamMemberJoined(l,i);break;case on.SUPER_TEAM_APPLY_ACCEPT:case on.TEAM_APPLY_ACCEPT:c===this.core.account?this.onTeamJoined(l):this.onTeamMemberJoined(l,c);break;case on.SUPER_TEAM_ADD_MANAGER:case on.TEAM_ADD_MANAGER:this.updateTeamMemberRole(r,a,d,{memberRole:2,updateTime:s});break;case on.SUPER_TEAM_REMOVE_MANAGER:case on.TEAM_REMOVE_MANAGER:this.updateTeamMemberRole(r,a,d,{memberRole:0,updateTime:s});break;case on.SUPER_TEAM_KICK:case on.TEAM_KICK:this.onTeamInfoUpdated(l),d.forEach(e=>{e===this.core.account?this.onTeamLeft(r,a,!0):this.onTeamMemberKicked(i,l.teamId,l.teamType,e)});break;case on.SUPER_TEAM_LEAVE:case on.TEAM_LEAVE:l?this.onTeamInfoUpdated(l):p&&i===this.core.account&&(p.isValidTeam=!1,this.onTeamInfoUpdated(p)),i===this.core.account?this.onTeamLeft(r,a,!1):this.onTeamMemberLeft(r,a,i);break;case on.SUPER_TEAM_DISMISS:case on.TEAM_DISMISS:this.onTeamDismissed(r,a);break;case on.SUPER_TEAM_UPDATE:case on.TEAM_UPDATED:this.onTeamInfoUpdated(l);break;case on.SUPER_TEAM_TRANSFER_OWNER:case on.TEAM_TRANSFER_OWNER:this.onTeamInfoUpdated(l),this.updateTeamMemberRole(r,a,[i,l.ownerAccountId],[{memberRole:0,updateTime:s},{memberRole:1,updateTime:s,joinTime:s}],!1);break;case on.SUPER_TEAM_MEMBER_MUTE:case on.TEAM_MEMBER_MUTE:this.service.model.upsert(l),this.updateTeamMemberRole(r,a,c?[c]:d,{chatBanned:0!==h,updateTime:s})}}onTeamJoined(e){this.service.model.upsert(e),this.service.emit("onTeamJoined",e),this.service.getTeamMemberListByIds(e.teamId,e.teamType,[this.core.account]).catch(e=>{this.core.logger.error("Get Member error after onTeamJoined",e)})}onTeamLeft(e,t,i){var r=this.service.model.deleteById(e,t)||_r(e,t,{isValidTeam:!1});this.service.memberModel.deleteByAccount(e,t,this.core.account),this.service.emit("onTeamLeft",r,i)}onTeamDismissed(e,t){var i=this.service.model.deleteById(e,t);i||(i=_r(e,t,{isValidTeam:!1})),this.service.memberModel.deleteByTeamId(e,t),this.service.emit("onTeamDismissed",i)}onTeamInfoUpdated(e){var t=this.service.model.upsert(e);this.service.emit("onTeamInfoUpdated",t)}onTeamMemberJoined(e,t){this.service.model.upsert(e),this.service.emit("onTeamInfoUpdated",e);var i=e.updateTime||e.createTime,r=Ir(e.teamId,e.teamType,t,{joinTime:i,updateTime:i});this.service.emit("onTeamMemberJoined",[r])}onTeamMembersJoined(e,t){var i=e.updateTime||e.createTime,r=t.map(t=>Ir(e.teamId,e.teamType,t,{joinTime:i,updateTime:i}));0!==r.length&&(this.service.model.upsert(e),this.service.emit("onTeamInfoUpdated",e),this.service.emit("onTeamMemberJoined",r))}onTeamMemberLeft(e,t,i){var r=this.service.memberModel.deleteByAccount(e,t,i);r||(r=Ir(e,t,i,{inTeam:!1})),this.service.emit("onTeamMemberLeft",[r])}onTeamMemberKicked(e,t,i,r){var s=this.service.memberModel.deleteByAccount(t,i,r);s||(s=Ir(t,i,r,{inTeam:!1})),this.service.emit("onTeamMemberKicked",e,[s])}onTeamMemberInfoUpdated(e){e.forEach(e=>{if(e.accountId===this.core.account&&this.core.V2NIMSettingService.name&&this.core.V2NIMConversationIdUtil.name){var t=1===e.teamType?this.core.V2NIMConversationIdUtil.teamConversationId(e.teamId):this.core.V2NIMConversationIdUtil.superTeamConversationId(e.teamId),i=this.core.V2NIMSettingService.getConversationMuteStatus(t);this.core.eventBus.emit("V2NIMSettingService/setMute",t,i)}}),this.service.emit("onTeamMemberInfoUpdated",e)}updateTeamMemberRole(e,t,i,r,s=!0){return Te(this,void 0,void 0,function*(){var n=i.filter((i,s)=>{var n=this.service.memberModel.getById(e,t,i);return n&&this.service.memberModel.upsert(Object.assign(Object.assign({},n),Array.isArray(r)?r[s]:r)),!n});if(s&&n.length>0)try{(yield this.service.getTeamMemberListByIds(e,t,n)).forEach(e=>this.service.memberModel.upsert(e))}catch(e){this.core.logger.warn("v2Team::processNotification, getTeamMemberListByIds failed",e)}var o=i.map((i,n)=>{var o=this.service.memberModel.getById(e,t,i);return o||s?o:Ir(e,t,i,Array.isArray(r)?r[n]:r)}).filter(e=>!!e);o.length>0&&this.onTeamMemberInfoUpdated(o)})}processSysNotification(e){var{receiverId:t,postscript:i,senderId:r,timestamp:s,content:n}=e,o={};try{o=JSON.parse(n)}catch(e){this.core.logger.warn("v2Team::processSysNotification, parse content failed",n)}var a={actionType:{0:0,1:1,2:2,3:3,15:0,16:1,17:2,18:3}[e.type],teamId:t,teamType:e.type>=15?2:1,operatorAccountId:r,postscript:i,timestamp:s,actionStatus:0,read:!1};o.attach&&(a.serverExtension=o.attach),this.core.logger.log("v2Team::processSysNotification, type:",e.type,a),this.service.notificationModel.create(a),this.service.emit("onReceiveTeamJoinActionInfo",a)}updateTeamActionStatus(e,t){this.service.notificationModel.update({teamId:e.teamId,teamType:e.teamType,operatorAccountId:e.operatorAccountId,actionType:e.actionType,actionStatus:t})}checkIfExpired(e){return!(!e||509!==e&&(e>=500&&e<=599||e>=19e4))}}!function(e){e[e.TEAM_INVITATION=0]="TEAM_INVITATION",e[e.TEAM_KICK=1]="TEAM_KICK",e[e.TEAM_LEAVE=2]="TEAM_LEAVE",e[e.TEAM_UPDATED=3]="TEAM_UPDATED",e[e.TEAM_DISMISS=4]="TEAM_DISMISS",e[e.TEAM_APPLY_ACCEPT=5]="TEAM_APPLY_ACCEPT",e[e.TEAM_TRANSFER_OWNER=6]="TEAM_TRANSFER_OWNER",e[e.TEAM_ADD_MANAGER=7]="TEAM_ADD_MANAGER",e[e.TEAM_REMOVE_MANAGER=8]="TEAM_REMOVE_MANAGER",e[e.TEAM_INVITE_ACCEPT=9]="TEAM_INVITE_ACCEPT",e[e.TEAM_MEMBER_MUTE=10]="TEAM_MEMBER_MUTE",e[e.SUPER_TEAM_INVITATION=401]="SUPER_TEAM_INVITATION",e[e.SUPER_TEAM_KICK=402]="SUPER_TEAM_KICK",e[e.SUPER_TEAM_LEAVE=403]="SUPER_TEAM_LEAVE",e[e.SUPER_TEAM_UPDATE=404]="SUPER_TEAM_UPDATE",e[e.SUPER_TEAM_DISMISS=405]="SUPER_TEAM_DISMISS",e[e.SUPER_TEAM_TRANSFER_OWNER=406]="SUPER_TEAM_TRANSFER_OWNER",e[e.SUPER_TEAM_ADD_MANAGER=407]="SUPER_TEAM_ADD_MANAGER",e[e.SUPER_TEAM_REMOVE_MANAGER=408]="SUPER_TEAM_REMOVE_MANAGER",e[e.SUPER_TEAM_MEMBER_MUTE=409]="SUPER_TEAM_MEMBER_MUTE",e[e.SUPER_TEAM_APPLY_ACCEPT=410]="SUPER_TEAM_APPLY_ACCEPT",e[e.SUPER_TEAM_INVITE_ACCEPT=411]="SUPER_TEAM_INVITE_ACCEPT"}(on||(on={}));class Pn{constructor(){this.list=[],this.maxCount=1e3}reset(){this.list=[]}checkSameAction(e,t,i=!1){return e.teamId===t.teamId&&e.teamType===t.teamType&&e.actionType===t.actionType&&e.operatorAccountId===t.operatorAccountId&&(!i||e.timestamp===t.timestamp)}create(e){this.list.push(e),this.list.length>this.maxCount&&this.list.shift()}update(e){this.list.forEach(t=>{this.checkSameAction(t,e)&&0===t.actionStatus&&Object.assign(t,e)})}delete(e){this.list=this.list.map(t=>{if(!this.checkSameAction(t,e,!1))return t}).filter(e=>e)}getByOption(e){var{types:t,status:i,offset:r=0,limit:s=50}=e,n=[];this.list.forEach(e=>{t&&t.length>0&&!t.includes(e.actionType)||i&&i.length>0&&!i.includes(e.actionStatus)||n.push(e)}),n=n.sort((e,t)=>t.timestamp-e.timestamp);var o=0;r>0&&(o=je(n,"timestamp",r),n[o]&&n[o].timestamp===r&&(o+=1));var a=n.slice(o).length;return(n=n.slice(o,o+s)).length>0?{offset:a>s?n[n.length-1].timestamp:0,finished:!(a>s),infos:n}:{offset:0,finished:!0,infos:n}}setRead(e){for(var t of this.list)this.checkSameAction(t,e)&&(t.read=!0)}setAllRead(){for(var e of this.list)e.read=!0}getUnreadCount(){var e=new Set;for(var t of this.list)t.read||0!==t.actionStatus||0!==t.actionType&&2!==t.actionType||e.add(`${t.operatorAccountId}_${t.teamType}_${t.teamId}`);return e.size}}class Dn{constructor(e,t){this.core=e,this.service=t,this.model=t.model,this.memberModel=t.memberModel,this.notification=t.notification,this.logger=this.core.logger}setListener(){this.core.eventBus.on("V2NIMTeamService/onSyncStarted",()=>{this.service.emit("onSyncStarted")}),this.core.eventBus.on("V2NIMTeamService/onSyncFinished",()=>{this.service.emit("onSyncFinished")}),this.core.eventBus.on("V2NIMTeamService/onSyncFailed",e=>{this.service.emit("onSyncFailed",e)}),this.core.eventBus.on("forwardReceive/V2NIMTeamService/created",e=>{this.model.upsert(e);var t=Ir(e.teamId,e.teamType,this.core.account,{memberRole:1});this.memberModel.upsert(t),this.service.emit("onTeamCreated",e)}),this.core.eventBus.on("forwardReceive/V2NIMTeamService/updateSelfTeamMemberInfo",e=>{this.memberModel.upsert(e),this.service.emit("onTeamInfoUpdated",[e])}),this.core.eventBus.on("forwardReceive/V2NIMTeamService/updateTeamActionStatus",this.notification.updateTeamActionStatus.bind(this.notification)),this.core.eventBus.on("V2NIMTeamService/sysNotification",this.notification.processSysNotification.bind(this.notification)),this.core.eventBus.on("V2NIMTeamService/notification",this.notification.processNotification.bind(this.notification))}beforeEmit(e,...t){var i=`${this.service.name}::emit ${e.toString()}`;if("onTeamCreated"===e||"onTeamDismissed"===e||"onTeamJoined"===e||"onTeamLeft"===e||"onTeamInfoUpdated"===e){var r=t[0];this.logger.log(`${i}`,`team:${r.teamId}_${r.teamType};updateTime:${r.updateTime}`)}else if("onTeamMemberJoined"===e||"onTeamMemberLeft"===e||"onTeamMemberInfoUpdated"===e){var s=t[0];this.logger.log(`${i}`,s.map(e=>`team:${e.teamId}_${e.teamType};account:${e.accountId}`))}else if("onTeamMemberKicked"===e){var n=t[0],o=t[1];this.logger.log(`${i}`,`operator${n}`,o.map(e=>`team:${e.teamId}_${e.teamType};account:${e.accountId}`))}else this.logger.log(`${i}`,...t)}onSyncDone(e){e?this.service.emit("onSyncFailed",e):this.service.emit("onSyncFinished")}}class wn{constructor(e,t){this.core=e,this.service=t,this.model=t.model,this.memberModel=t.memberModel,this.logger=this.core.logger}v2TeamSyncHandler(e){this.model.set(e.content.datas)}v2SuperTeamSyncHandler(e){this.model.set(e.content.datas)}v2TeamCreateMultiSyncHandler(e){var t=e.content.data;this.model.upsert(t);var i=Ir(t.teamId,t.teamType,this.core.account,{memberRole:1});this.memberModel.upsert(i),this.service.emit("onTeamCreated",t)}v2SuperTeamCreateMultiSyncHandler(e){var t=e.content.data;this.model.upsert(t);var i=Ir(t.teamId,t.teamType,this.core.account,{memberRole:1});this.memberModel.upsert(i),this.service.emit("onTeamCreated",t)}v2TeamMemberUpdateMultiSyncHandler(e){var t=e.content.data;t.teamType=1;var i=this.memberModel.getById(t.teamId,t.teamType,t.accountId);this.service.notification.updateTeamMemberRole(t.teamId,t.teamType,[t.accountId],t),t.accountId===this.core.account&&i&&i.bits!==t.bits&&this.core.eventBus.emit("V2NIMSettingService/updateBits",t.teamId,t.teamType,t.bits)}v2SuperTeamMemberUpdateMultiSyncHandler(e){var t=e.content.data;t.teamType=2;var i=this.memberModel.getById(t.teamId,t.teamType,t.accountId);this.service.notification.updateTeamMemberRole(t.teamId,t.teamType,[t.accountId],t),t.accountId===this.core.account&&i&&i.bits!==t.bits&&this.core.eventBus.emit("V2NIMSettingService/updateBits",t.teamId,t.teamType,t.bits)}v2TeamMembersOfSelfInSyncHandler(e){e.content.datas.forEach(e=>{e.teamType=1,this.memberModel.upsert(e)})}v2SuperTeamMembersOfSelfInSyncHandler(e){e.content.datas.forEach(e=>{e.teamType=2,this.memberModel.upsert(e)})}}var Un="V2NIMUserService",xn={"34_3":"v2UpdateBlockList","34_7":"v2GetUserList","34_10":"v2UpdateSelfUserProfile","3_109":"v2SyncSelfUserInfo","3_110":"onUpdateUserProfile","3_103":"onUpdateBlockList","3_8":"syncBlockAndMuteList","34_5":"v2SetP2PMessageMuteMode","3_105":"v2OnUpdateMuteList"},Fn={accountId:1,name:3,avatar:4,sign:5,gender:{id:6,retType:"number"},email:7,birthday:8,mobile:9,serverExtension:10,createTime:{id:12,retType:"number"},updateTime:{id:13,retType:"number"}},Bn={v2UpdateBlockList:{sid:34,cid:3,service:Un,params:[{type:"String",name:"accountId"},{type:"Bool",name:"addToBlockList"}]},v2GetUserList:{sid:34,cid:7,service:Un,params:[{type:"StrArray",name:"accountIds"}],response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Fn)}]},v2UpdateSelfUserProfile:{sid:34,cid:10,service:Un,params:[{type:"Property",name:"tag",reflectMapper:Fn}],response:[{type:"Long",name:"updateTime"}]},onUpdateUserProfile:{sid:3,cid:110,service:Un,response:[{type:"Property",name:"data",reflectMapper:gt(Fn)}]},onUpdateBlockList:{sid:3,cid:103,service:Un,response:[{type:"String",name:"accountId"},{type:"Bool",name:"addToBlockList"}]},syncBlockAndMuteList:{sid:3,cid:8,service:Un,response:[{type:"PropertyArray",name:"data",reflectMapper:gt({accountId:0,isMute:{id:1,retType:"boolean"},isBlock:{id:2,retType:"boolean"}})},{type:"Long",name:"timetag"}]},v2SyncSelfUserInfo:{sid:3,cid:109,service:Un,response:[{type:"Property",name:"user",reflectMapper:gt(Fn)}]},v2SetP2PMessageMuteMode:{sid:34,cid:5,service:Un,params:[{type:"String",name:"accountId"},{type:"Bool",name:"muteMode"}]},v2OnUpdateMuteList:{sid:3,cid:105,service:Un,response:[{type:"String",name:"accountId"},{type:"Bool",name:"mute"}]}};class jn{constructor(){this.muteList=new Set,this.userMap=new Map,this.blockList=[]}reset(){this.muteList.clear(),this.userMap.clear(),this.blockList=[]}setAccountMuteMode(e,t){1===t?this.muteList.add(e):this.muteList.delete(e)}setUser(e){this.userMap.set(e.accountId,e)}getUser(e){return this.userMap.get(e)}getUserListBySearchOption(e){return Array.from(this.userMap.values()).filter(t=>!(void 0!==e.searchName&&!e.searchName||!t.name.includes(e.keyword))||!(!e.searchAccountId||!t.accountId.includes(e.keyword))||!!(t.mobile&&e.searchMobile&&t.mobile.includes(e.keyword)))}addToBlockList(e){e.forEach(e=>{this.blockList.includes(e)||this.blockList.push(e)})}removeFromBlockList(e){e.forEach(e=>{var t=this.blockList.indexOf(e);-1!==t&&this.blockList.splice(t,1)})}checkBlock(e){var t={};return e.forEach(e=>{t[e]=this.blockList.includes(e)}),t}}var Gn={type:"string",required:!0,allowEmpty:!1},$n={type:"string",required:!1,allowEmpty:!0},Hn={name:{type:"string",required:!1,allowEmpty:!0},avatar:$n,sign:$n,email:$n,birthday:$n,mobile:$n,gender:{type:"number",required:!1},serverExtension:$n};class Yn extends ii{constructor(e){super("V2NIMUserService",e),mt({cmdMap:xn,cmdConfig:Bn}),this.model=new jn,"v2"===this.core.options.apiVersion&&this.setListener()}reset(){this.model.reset()}setListener(){this.core.eventBus.on("forwardReceive/V2NIMUserService/updateBlockList",(e,t)=>{t?this.model.addToBlockList([e]):this.model.removeFromBlockList([e]),t?this.emitBlockListAdded(e):this.emit("onBlockListRemoved",e)}),this.core.eventBus.on("forwardReceive/V2NIMUserService/updateUserProfile",e=>{this.updateUserProfileInMemory(e)})}emit(e,...t){var i=`${this.name}::emit ${e.toString()}`;if("onUserProfileChanged"===e){var r=t[0];this.logger.log(`${i}`,r.map(e=>`id:${e.accountId};name:${e.name};updateTime:${e.updateTime}`))}else if("onBlockListAdded"===e){var s=t[0];this.logger.log(`${i}`,`id:${s.accountId};name:${s.name};updateTime:${s.updateTime}`)}else this.logger.log(`${i}`,...t);return super.emit(e,...t)}getUserList(e){return Te(this,void 0,void 0,function*(){return this.checkV2(),this._getUserList(e)})}_getUserList(e){var t;return Te(this,void 0,void 0,function*(){_e({accountIds:dn},{accountIds:e},"",!0);var i=[];e.forEach(e=>{this.model.getUser(e)||i.push(e)});var r=null;i.length>0&&(r=yield this.core.sendCmd("v2GetUserList",{accountIds:i})),((null===(t=null==r?void 0:r.content)||void 0===t?void 0:t.data)||[]).forEach(e=>{this.model.setUser(e)});var s=[];return e.forEach(e=>{var t=this.model.getUser(e);t&&s.push(t)}),s})}getUserListFromCloud(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e({accountIds:{type:"array",min:1,max:500,itemType:"string"}},{accountIds:e},"",!0);var t=(yield this.core.sendCmd("v2GetUserList",{accountIds:e})).content.data||[],i=[];t.forEach(e=>{var t=this.model.getUser(e.accountId);this.compareUserForUpdate(t,e)&&i.push(e),this.model.setUser(e)});var r=e.reduce((e,t)=>{var i=this.model.getUser(t);return i&&e.push(i),e},[]);return i.length>0&&this.emit("onUserProfileChanged",i),r})}compareUserForUpdate(e,t){return!e||!("number"==typeof e.updateTime&&"number"==typeof t.updateTime&&e.updateTime>=t.updateTime)}updateSelfUserProfile(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Hn,e,"",!0);var t=yield this.core.sendCmd("v2UpdateSelfUserProfile",{tag:Object.assign(Object.assign({},e),{accountId:this.core.account})});yield this.updateUserProfileInMemory(Object.assign(Object.assign({},e),{updateTime:t.content.updateTime}))})}addUserToBlockList(e){return Te(this,void 0,void 0,function*(){if(this.checkV2(),e===this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot block yourself"}});_e({accountId:Gn},{accountId:e},"",!0),yield this.core.sendCmd("v2UpdateBlockList",{accountId:e,addToBlockList:!0}),this.model.addToBlockList([e]),this.emitBlockListAdded(e)})}removeUserFromBlockList(e){return Te(this,void 0,void 0,function*(){if(this.checkV2(),e===this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot unblock yourself"}});_e({accountId:Gn},{accountId:e},"",!0),yield this.core.sendCmd("v2UpdateBlockList",{accountId:e,addToBlockList:!1}),this.model.removeFromBlockList([e]),this.emit("onBlockListRemoved",e)})}searchUserByOption(e){return Te(this,void 0,void 0,function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),_e({keyword:{type:"string",allowEmpty:!1},searchName:{type:"boolean",required:!1},searchAccountId:{type:"boolean",required:!1},searchMobile:{type:"boolean",required:!1}},e,"",!0),!1===(void 0===e.searchName||e.searchName)&&!e.searchAccountId&&!e.searchMobile)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"one of searchName, searchAccountId, searchMobile must be true"}});return this.model.getUserListBySearchOption(e)})}getBlockList(){return this.checkV2(),Promise.resolve(this.model.blockList)}checkBlock(e){return this.checkV2(),_e({accountIds:dn},{accountIds:e},"",!0),Promise.resolve(this.model.checkBlock(e))}updateUserProfileInMemory(e){return Te(this,void 0,void 0,function*(){var t=this.model.getUser(this.core.account);t?(Object.assign(t,e),this.model.setUser(t)):t=(yield this._getUserList([this.core.account]))[0],t&&this.emit("onUserProfileChanged",[t])})}onUpdateUserProfileHandler(e){return Te(this,void 0,void 0,function*(){var t=e.content.data;yield this.updateUserProfileInMemory(t)})}onUpdateBlockListHandler(e){var t=e.content.accountId;e.content.addToBlockList?(this.model.addToBlockList([t]),this.emitBlockListAdded(t)):(this.model.removeFromBlockList([t]),this.emit("onBlockListRemoved",t))}syncBlockAndMuteListHandler(e){e.content.data.forEach(e=>{e.isBlock?this.model.addToBlockList([e.accountId]):this.model.setAccountMuteMode(e.accountId,e.isMute?1:0)})}v2SyncSelfUserInfoHandler(e){var t=e.content.user;this.model.setUser(t)}checkUserUpdate(e,t){var i=e.senderId;i!==this.core.account&&this.refreshUserInfo(i,t)}refreshUserInfo(e,t=0){return Te(this,void 0,void 0,function*(){if(e&&"string"==typeof e){var i=this.model.getUser(e),r=[];if(!i||i&&"number"==typeof i.updateTime&&"number"==typeof t&&!isNaN(i.updateTime)&&!isNaN(t)&&i.updateTimethis.getFriend(e)).filter(e=>!!e)}getFriendListBySearchOption(e){return Array.from(this.validFriendIds.values()).map(e=>this.getFriend(e)).filter(t=>{var i=void 0===e.searchAlias||e.searchAlias;return!(void 0===t||!(i&&t.alias&&t.alias.includes(e.keyword)||e.searchAccountId&&t.accountId.includes(e.keyword)))})}getFriendByIds(e){return e.map(e=>this.getFriend(e)).filter(e=>!!e)}setFriendTimetag(e){this.friendTimetag=e}getFriendTimetag(){return this.friendTimetag}}class so{constructor(){this.list=[],this.maxCount=1e3}reset(){this.list=[]}updateFriendAddApplicationStatus(e,t,i){if(0!==t)for(var r of this.list)r.applicantAccountId===e&&0===r.status&&(r.status=t,r.operatorAccountId=i)}getAddApplicationList(e){var t=void 0===e.offset?0:e.offset,i=this.list.filter(t=>{var i=e.status||[];return 0===i.length||!!i.includes(t.status)}).reverse(),r=e.limit||50,s=i.slice(t,t+r),n=t+r>=i.length;return{infos:s,finished:n,offset:n?0:t+r}}checkSameApplication(e,t,i=!1){return e.applicantAccountId===t.applicantAccountId&&e.recipientAccountId===t.recipientAccountId&&(!i||e.timestamp===t.timestamp)}setAllApplicationRead(){for(var e of this.list)e.read=!0}setApplicationRead(e){for(var t of this.list)this.checkSameApplication(t,e)&&(t.read=!0)}getAddApplicationUnreadCount(){var e=new Set;for(var t of this.list)t.read||0!==t.status||e.add(t.applicantAccountId);return e.size}appendFriendAddApplication(e){this.list.push(e),this.list.length>this.maxCount&&this.list.shift()}clearApplicationList(){this.list=[]}deleteApplication(e){this.list=this.list.map(t=>{if(!this.checkSameApplication(t,e,!1))return t}).filter(e=>e)}}var no={need:{id:1,converter:e=>e?2:1,retConverter:e=>"2"===e}};gt(no),gt(no);var oo=oo||function(t){var i;"undefined"!=typeof window&&window.crypto&&(i=window.crypto),"undefined"!=typeof self&&self.crypto&&(i=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(i=globalThis.crypto),!i&&"undefined"!=typeof window&&window.msCrypto&&(i=window.msCrypto),!i&&void 0!==e.g&&e.g.crypto&&(i=e.g.crypto);var r=function(){if(i){if("function"==typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},s=Object.create||function(){function e(){}return function(t){var i;return e.prototype=t,i=new e,e.prototype=null,i}}(),n={},o=n.lib={},a=o.Base={extend:function(e){var t=s(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=o.WordArray=a.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||l).stringify(this)},concat:function(e){var t=this.words,i=e.words,r=this.sigBytes,s=e.sigBytes;if(this.clamp(),r%4)for(var n=0;n>>2]>>>24-n%4*8&255;t[r+n>>>2]|=o<<24-(r+n)%4*8}else for(var a=0;a>>2]=i[a>>>2];return this.sigBytes+=s,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],i=0;i>>2]>>>24-s%4*8&255;r.push((n>>>4).toString(16)),r.push((15&n).toString(16))}return r.join("")},parse:function(e){for(var t=e.length,i=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(i,t/2)}},h=d.Latin1={stringify:function(e){for(var t=e.words,i=e.sigBytes,r=[],s=0;s>>2]>>>24-s%4*8&255;r.push(String.fromCharCode(n))}return r.join("")},parse:function(e){for(var t=e.length,i=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(i,t)}},p=d.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},u=o.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var i,r=this._data,s=r.words,n=r.sigBytes,o=this.blockSize,a=n/(4*o),d=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*o,l=t.min(4*d,n);if(d){for(var h=0;h>>2]>>>24-n%4*8&255)<<16|(t[n+1>>>2]>>>24-(n+1)%4*8&255)<<8|t[n+2>>>2]>>>24-(n+2)%4*8&255,a=0;a<4&&n+.75*a>>6*(3-a)&63));var c=r.charAt(64);if(c)for(;s.length%4;)s.push(c);return s.join("")},parse:function(e){var t=e.length,i=this._map,r=this._reverseMap;if(!r){r=this._reverseMap=[];for(var s=0;s>>6-n%4*2;r[s>>>2]|=o<<24-s%4*8,s++}return vo.create(r,s)}(e,t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},oo.enc.Base64,function(e){e.lib.Cipher||function(){var t=e,i=t.lib,r=i.Base,s=i.WordArray,n=i.BufferedBlockAlgorithm,o=t.enc;o.Utf8;var a=o.Base64,c=t.algo.EvpKDF,d=i.Cipher=n.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,i){this.cfg=this.cfg.extend(i),this._xformMode=e,this._key=t,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?_:v}return function(t){return{encrypt:function(i,r,s){return e(r).encrypt(t,i,r,s)},decrypt:function(i,r,s){return e(r).decrypt(t,i,r,s)}}}}()});i.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l=t.mode={},h=i.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=l.CBC=function(){var e=h.extend();function t(e,t,i){var r,s=this._iv;s?(r=s,this._iv=void 0):r=this._prevBlock;for(var n=0;n>>2];e.sigBytes-=t}};i.BlockCipher=d.extend({cfg:d.cfg.extend({mode:p,padding:u}),reset:function(){var e;d.reset.call(this);var t=this.cfg,i=t.iv,r=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=r.createEncryptor:(e=r.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,i&&i.words):(this._mode=e.call(r,this,i&&i.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var m=i.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),g=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,i=e.salt;return(i?s.create([1398893684,1701076831]).concat(i).concat(t):t).toString(a)},parse:function(e){var t,i=a.parse(e),r=i.words;return 1398893684==r[0]&&1701076831==r[1]&&(t=s.create(r.slice(2,4)),r.splice(0,4),i.sigBytes-=16),m.create({ciphertext:i,salt:t})}},v=i.SerializableCipher=r.extend({cfg:r.extend({format:g}),encrypt:function(e,t,i,r){r=this.cfg.extend(r);var s=e.createEncryptor(i,r),n=s.finalize(t),o=s.cfg;return m.create({ciphertext:n,key:i,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,i,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(i,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),f=(t.kdf={}).OpenSSL={execute:function(e,t,i,r){r||(r=s.random(8));var n=c.create({keySize:t+i}).compute(e,r),o=s.create(n.words.slice(t),4*i);return n.sigBytes=4*t,m.create({key:n,iv:o,salt:r})}},_=i.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:f}),encrypt:function(e,t,i,r){var s=(r=this.cfg.extend(r)).kdf.execute(i,e.keySize,e.ivSize);r.iv=s.iv;var n=v.encrypt.call(this,e,t,s.key,r);return n.mixIn(s),n},decrypt:function(e,t,i,r){r=this.cfg.extend(r),t=this._parse(t,r.format);var s=r.kdf.execute(i,e.keySize,e.ivSize,t.salt);return r.iv=s.iv,v.decrypt.call(this,e,t,s.key,r)}})}()}(oo);var fo=oo,_o=fo.lib.StreamCipher,Io=fo.algo,yo=Io.RC4=_o.extend({_doReset:function(){for(var e=this._key,t=e.words,i=e.sigBytes,r=this._S=[],s=0;s<256;s++)r[s]=s;s=0;for(var n=0;s<256;s++){var o=s%i,a=t[o>>>2]>>>24-o%4*8&255;n=(n+r[s]+a)%256;var c=r[s];r[s]=r[n],r[n]=c}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=Eo.call(this)},keySize:8,ivSize:0});function Eo(){for(var e=this._S,t=this._i,i=this._j,r=0,s=0;s<4;s++){i=(i+e[t=(t+1)%256])%256;var n=e[t];e[t]=e[i],e[i]=n,r|=e[(e[t]+e[i])%256]<<24-8*s}return this._i=t,this._j=i,r}fo.RC4=_o._createHelper(yo);var Mo=Io.RC4Drop=yo.extend({cfg:yo.cfg.extend({drop:192}),_doReset:function(){yo._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)Eo.call(this)}});fo.RC4Drop=_o._createHelper(Mo),oo.RC4;var To={accountId:1,name:3,avatar:4,sign:5,gender:{id:6,retType:"number"},email:7,birthday:8,mobile:9,serverExtension:10,aiModelType:{id:11,retType:"number"},modelConfig:{id:12,retConverter:e=>{if(e=_t(e)){var t=Object.keys(e).reduce((t,i)=>(t[function(e){return(e=e||"").split("_").map((e,t)=>0===t?e:e[0].toUpperCase()+e.slice(1)).join("")}(i)]=e[i],t),{});if("string"==typeof t.promptKeys)try{t.promptKeys=JSON.parse(t.promptKeys)}catch(e){}return t}}},yunxinConfig:{id:13,retConverter:e=>{if(e=_t(e))return e}},valid:{id:14,retType:"boolean"},createTime:{id:15,retType:"number"},updateTime:{id:16,retType:"number"}};function So(e){try{var t=JSON.parse(e);return"number"==typeof t.index?{msg:t.msg||"",type:t.type,lastChunk:{content:t.msg,chunkTime:parseInt(t.timestamp),type:t.type,index:parseInt(t.index)}}:t}catch(e){return}}function No(e){try{var t=JSON.parse(e);return t&&t.length>0?t.map(e=>(e.description=e.desc,delete e.desc,e)):[]}catch(e){return[]}}var Co={code:{id:1,retType:"number"},accountId:2,requestId:3,content:{id:4,retConverter:So},aiRAGs:{id:5,retConverter:No},timestamp:{id:6,retType:"number"},aiStreamStatus:{id:7,retType:"number"},aiStream:{id:8,retType:"boolean"}},Ao={serverId:1,clientId:2,type:{id:3,retType:"number"},content:{id:4,retConverter:So},aiRAGs:{id:6,retConverter:No}};gt(Co),gt(To),gt({hasMore:{id:16,retType:"boolean"},nextToken:2}),gt(Lr),gt(Co),gt(Ao);var Oo={accountId:1,uid:{id:2,retType:"number"},joinTime:{id:3,retType:"number"},expireTime:{id:4,retType:"number"},deviceId:5},Ro={channelType:{id:1,retType:"number",retAccess:"channelInfo.channelType"},channelName:{id:2,retAccess:"channelInfo.channelName"},channelId:{id:3,retAccess:"channelInfo.channelId"},createTime:{id:4,retType:"number",retAccess:"channelInfo.createTime"},expireTime:{id:5,retType:"number",retAccess:"channelInfo.expireTime"},creatorAccountId:{id:6,retAccess:"channelInfo.creatorAccountId"},channelExtension:{id:7,retAccess:"channelInfo.channelExtension"},channelValid:{id:8,retDef:!0,retAccess:"channelInfo.channelValid",retConverter:e=>1!==parseInt(e)},fromAccid:10,toAccid:11,requestId:12,pushEnabled:{id:13,access:"pushConfig.pushEnabled",converter:vt,retType:"boolean"},pushTitle:{id:14,access:"pushConfig.pushTitle"},pushContent:{id:15,access:"pushConfig.pushContent"},pushPayload:{id:16,access:"pushConfig.pushPayload"},unreadEnabled:{id:17,access:"signallingConfig.unreadEnabled",converter:vt,retType:"boolean",def:1},members:{id:18,retAccess:"members",retConverter:e=>{try{return JSON.parse(e).map(e=>ut(e,gt(Oo)))}catch(e){return}}},attach:{id:19,retConverter:_t},serverExtension:{id:20,retDef:""},offlineEnabled:{id:21,converter:vt,retType:"boolean",def:1},msgId:22,selfUid:{id:23,retType:"number",access:"signallingConfig.selfUid"},time:{id:24,retType:"number"},rtcChannelName:{id:25,access:"rtcConfig.rtcChannelName"},rtcTokenTtl:{id:26,retType:"number",access:"rtcConfig.rtcTokenTtl",retAccess:"rtcInfo.rtcTokenTtl"},rtcToken:{id:27,retAccess:"rtcInfo.rtcToken"},rtcParams:{id:28,access:"rtcConfig.rtcParams",retAccess:"rtcInfo.rtcParams"},callStatus:{id:30,retType:"number"}};gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro),gt(Ro);var bo,ko={"19_1":"v2PublishEvent","14_2":"v2OnUserStatusChange","19_3":"v2SubscribeUserStatus","19_4":"v2UnsubscribeUserStatus","19_5":"v2UnsubscribeAllUserStatus","19_6":"v2QuerySubscribeEvent","19_7":"v2QueryAllSubscribeEvent","14_9":"v2OnMultiUserStatusChange"},Lo="V2NIMSubscriptionService",Vo={eventType:{id:1,retType:"number"},statusType:{id:2,retType:"number"},uniqueId:3,extension:4,duration:{id:5,retType:"number"},onlineOnly:{id:6,retType:"boolean",converter:e=>e?1:2},multiSync:{id:7,retType:"boolean",converter:vt},publishTime:{id:10,retType:"number"},serverId:11,clientType:{id:12,retType:"number"},serverExtension:13,extensionReceived:14,accountId:103},Po={eventType:{id:1,retType:"number"},duration:{id:2,retType:"number"},immediateSync:{id:3,retType:"number",converter:vt},accountId:102,subscribeTime:{id:105,retType:"number"}},Do={v2PublishEvent:{sid:19,cid:1,service:Lo,params:[{type:"Property",name:"tag",reflectMapper:Vo}],response:[{type:"Property",name:"data",reflectMapper:gt(Vo)}]},v2OnUserStatusChange:{sid:14,cid:2,service:Lo,response:[{type:"Property",name:"data",reflectMapper:gt(Vo)}]},v2SubscribeUserStatus:{sid:19,cid:3,service:Lo,params:[{type:"Property",name:"tag",reflectMapper:Po},{type:"StrArray",name:"accountIds"}],response:[{type:"StrArray",name:"failedList"}]},v2UnsubscribeUserStatus:{sid:19,cid:4,service:Lo,params:[{type:"Property",name:"tag",reflectMapper:Po},{type:"StrArray",name:"accountIds"}],response:[{type:"StrArray",name:"failedList"}]},v2UnsubscribeAllUserStatus:{sid:19,cid:5,service:Lo,params:[{type:"Property",name:"tag",reflectMapper:Po}]},v2QuerySubscribeEvent:{sid:19,cid:6,service:Lo,params:[{type:"Property",name:"tag",reflectMapper:Po},{type:"StrArray",name:"accountIds"}],response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Po)}]},v2QueryAllSubscribeEvent:{sid:19,cid:7,service:Lo,params:[{type:"Property",name:"tag",reflectMapper:Po}],response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Po)}]},v2OnMultiUserStatusChange:{sid:14,cid:9,service:Lo,response:[{type:"PropertyArray",name:"data",reflectMapper:gt(Vo)}]}},wo={accountIds:{type:"array",required:!0,itemType:"string",min:1,max:100},duration:{type:"number",required:!1,min:60,max:2592e3},immediateSync:{type:"boolean",required:!1}},Uo={accountIds:{type:"array",required:!1,itemType:"string",max:100}},xo={statusType:{type:"number",required:!0,min:1e4,max:2147483647},duration:{type:"number",required:!1,min:60,max:604800},extension:{type:"jsonstr",required:!1},onlineOnly:{type:"boolean",required:!1},multiSync:{type:"boolean",required:!1}};!function(e){e[e.V2NIM_PROXY_REQUEST_METHOD_GET=1]="V2NIM_PROXY_REQUEST_METHOD_GET",e[e.V2NIM_PROXY_REQUEST_METHOD_POST=2]="V2NIM_PROXY_REQUEST_METHOD_POST",e[e.V2NIM_PROXY_REQUEST_METHOD_PUT=3]="V2NIM_PROXY_REQUEST_METHOD_PUT",e[e.V2NIM_PROXY_REQUEST_METHOD_DELETE=4]="V2NIM_PROXY_REQUEST_METHOD_DELETE"}(bo||(bo={}));gt({zone:1,path:2,method:3,header:4,body:5}),gt({fromAccountId:1,body:2,time:{id:3,retType:"number"}}),bo.V2NIM_PROXY_REQUEST_METHOD_DELETE,bo.V2NIM_PROXY_REQUEST_METHOD_GET,bo.V2NIM_PROXY_REQUEST_METHOD_POST,bo.V2NIM_PROXY_REQUEST_METHOD_PUT;var Fo=ot;Fo.registerService(class extends ii{constructor(e,t={}){var i;super("V2NIMLoginService",e),this.account="",this.previousLoginAccount="",this.token="",this.deviceId="",this.clientSession="",this.processId="",this.kickedDetail=null,this.binaryWebsocket=!0,this.core._registerDep(li,"misc"),mt({cmdMap:Tt,cmdConfig:Ct}),"v2"===e.options.apiVersion&&(mt({cmdMap:St,cmdConfig:At}),this.core.auth=this),this.previousLoginManager=new qe,this.doLoginStepsManager=new qe,this.loginTimerManager=new Ee,this.loginOption=Object.assign({},mi),this.config={lbsUrls:ui,linkUrl:"weblink.netease.im:443",linkSSL:!0},this.setOptions(t),e.V2NIMLoginService=this,!1!==this.core.options.binaryWebsocket&&"function"==typeof Uint8Array?(this.binaryWebsocket=!0,i=new Yt(this.core)):(this.binaryWebsocket=!1,i=new Xt(this.core)),this.clientSocket=i,"v2"===this.core.options.apiVersion&&(this.core.clientSocket=i),this.lifeCycle=new ri(e),this.reconnect=new Qt(e),this.lbs=new ei(e),this.authenticator=new ti(e),this.dataSync=new si(e)}get hasSettingService(){var e;return!!(null===(e=this.core.V2NIMSettingService)||void 0===e?void 0:e.name)}setOptions(e){var t,i,r;_e({lbsUrls:{type:"array",itemType:"string",min:1,required:!1},linkUrl:{type:"string",allowEmpty:!1,required:!1}},e,"",!0),this.config=Ue(this.config,e),null===(i=null===(t=this.core.clientSocket)||void 0===t?void 0:t.setLinkSSL)||void 0===i||i.call(t,null===(r=this.config.linkSSL)||void 0===r||r);var s="",n="";this.config.isFixedDeviceId?(s=Oe.localStorage.getItem("__NIM_DEVC_ID__")||De(),n=Oe.localStorage.getItem("__NIM_CLIENT_SESSION_ID__")||De(),Oe.localStorage.setItem("__NIM_DEVC_ID__",s),Oe.localStorage.setItem("__NIM_CLIENT_SESSION_ID__",n)):(s=De(),n=De()),this.deviceId=s,this.clientSession=n,this.core.reporter.setConfig({common:{dev_id:s}})}reset(){this.account="",this.token="",this.processId="",this.lbs.reset(),this.reconnect.destroy(),this.authenticator.reset(),this.authenticator.clearLastLoginClient(),this.dataSync.reset()}login(e,t,i={}){return Te(this,void 0,void 0,function*(){this._checkApiVersion();var r=Oe.getSystemInfo()||{},s=r.os?r.os.toLowerCase():"";if("React Native"===Oe.platform&&"android"===s&&this.hasSettingService&&Ve(this.core.V2NIMSettingService,"push.offlinePushPlugin"))try{this.deviceInfo=yield this.core.V2NIMSettingService.push.getRNDeviceInfo()}catch(e){this.logger.error(e)}if("string"!=typeof e||""===e.trim())throw new me({detail:{reason:"Account must be string"}});if(_e(pi,i,"",!0),0===(i=Ue(mi,i)).authType&&!t)throw new me({detail:{reason:"When authType is 0, token cannot be empty"}});if(""!==this.previousLoginAccount&&this.previousLoginAccount!==e&&this.core._clearModuleData(),0===this.getLoginStatus())this.logger.log(`V2NIMLoginService::login:allowLogin:${e}`,i);else{if(1===this.getLoginStatus())return this.smoothForLogined(e,t,i);if(2===this.getLoginStatus())return this.smoothForLogining(e,t,i)}this.account=e,this.previousLoginAccount=e,this.token=t,this.processId=De(),this.loginOption=Ue(mi,i),this.kickedDetail=null,this.loginTimerManager.destroy(),this.loginTimerManager.addTimer(()=>{var e=new pe({code:de.V2NIM_ERROR_CODE_TIMEOUT,detail:{reason:"Login API timeout"}});this.doLoginStepsManager.clear(e),this.previousLoginManager.clear(e),this.originLoginPromise=void 0,this.lifeCycle.processEvent("exited",e)},this.loginOption.timeout>0?this.loginOption.timeout:6e4,1);try{yield this.multiTryDoLogin(),this.loginTimerManager.destroy()}catch(e){throw this.loginTimerManager.destroy(),e}})}setAppVisibility(){this.logger.warn("V2NIMLoginService::setAppVisibility is deprecated @v10.9.40")}getChatroomLinkAddress(e,t){return Te(this,void 0,void 0,function*(){return _e({roomId:{type:"string",regExp:/^\d+$/,required:!0,allowEmpty:!1},miniProgram:{type:"boolean",required:!1}},{roomId:e,miniProgram:t},"",!0),t=void 0===t?we():t,(yield this.clientSocket.sendCmd("v2GetChatroomLinkAddress",{roomId:e,miniProgram:t})).content.linkAddress})}multiTryDoLogin(e){return Te(this,void 0,void 0,function*(){for(var t=new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"loginFailed"}}),i=0;i<=this.loginOption.retryCount;i++){var r=`V2NIMLoginService::times of login try: ${i}`;i>0?this.logger.warn(r):this.logger.log(r);try{this.originLoginPromise=e||this.doLogin(!1),e=void 0;var s=yield this.previousLoginManager.add(this.originLoginPromise);return this.core.reporter.reportTraceEnd("login",!0),this.doLoginStepsManager.clear(),this.previousLoginManager.clear(),this.originLoginPromise=void 0,s}catch(e){if(t=e||t,this.logger.error(`V2NIMLoginService::login failed, times of login try: ${i}, err.code: ${null==t?void 0:t.code}, err.message: "${null==t?void 0:t.message}"`),t.code!==de.V2NIM_ERROR_CODE_CANCELLED&&this.core.reporter.reportTraceEnd("login",!1),this.reconnect.clearReconnectTimer(),this.checkLoginTerminalCode(t&&t.code))throw this.lifeCycle.processEvent("exited",t),t;t&&399===t.code&&this.lbs.reset()}}throw this.lifeCycle.processEvent("exited",t),t})}doLogin(e){var t,i;return Te(this,void 0,void 0,function*(){var r=!!e||this.authenticator.checkAutoLogin(this.loginOption.forceMode);this.core.reporter.reportTraceCancel("login"),this.core.reporter.reportTraceStart("login",r?{user_id:this.account,action:"auto_login",process_id:this.processId,binary_websocket:this.binaryWebsocket}:{user_id:this.account,action:"manual_login",process_id:this.processId,binary_websocket:this.binaryWebsocket}),this.core.reporter.reportTraceUpdateV2("login",{code:0,description:JSON.stringify(this.loginOption),operation_type:"conf_init",succeed:!0,duration:0,target:""},{asyncParams:Oe.net.getNetworkStatus()});var s=yield this.doLoginStepsManager.add(this.lbs.getLbsInfos());yield this.doLoginStepsManager.add(this.clientSocket.connect(s,e));var n=yield this.doLoginStepsManager.add(this.authenticator.verifyAuthentication(r));if(this.processId=De(),this.clientSocket.resetSocketConfig(),this.reconnect.reset(),this.dataSync.reset(),this.lifeCycle.processEvent("loginSucc",void 0,Object.assign(Object.assign({},n),{isReconnect:e})),this.clientSocket.ping(),this.core.abtest.abtRequest(),"function"==typeof(null===(t=this.core.V2NIMClientAntispamUtil)||void 0===t?void 0:t.downloadLocalAntiSpamVocabs)&&this.core.V2NIMClientAntispamUtil.downloadLocalAntiSpamVocabs(),"function"==typeof(null===(i=this.core.cloudStorage)||void 0===i?void 0:i.init))try{yield this.core.cloudStorage.init(n.timestamp)}catch(e){this.logger.warn("doLogin::cloudStorage init error",e)}return n})}smoothForLogined(e,t,i){return Te(this,void 0,void 0,function*(){var r=this.checkIsSameLogin(e,t,i);return this.logger.warn(`V2NIMLoginService::smoothForLogined:Logined, isSameLogin ${r}`),r?void 0:(yield this.logout(),this.login(e,t,i))})}smoothForLogining(e,t,i){return Te(this,void 0,void 0,function*(){var r=this.checkIsSameLogin(e,t,i);if(this.logger.warn(`V2NIMLoginService::smoothForLogining:Logining progress exists, abort the previous login attempt and start next attempt, isSameLogin ${r}`),this.previousLoginManager.clear(),this.reconnect.reset(),this.account=e,this.previousLoginAccount=e,this.token=t,this.loginOption=Ue(this.loginOption,i),!r)return this.doLoginStepsManager.clear(),this.clientSocket.doDisconnect(Dt.ACTIVE,"Aborted"),this.reset(),this.lifeCycle.processEvent("logout"),yield Promise.resolve(),this.login(e,t,i);if(!this.originLoginPromise)throw new pe({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"NoPreviousLoginExists"}});this.reconnect.reset(),yield Promise.resolve(),yield this.multiTryDoLogin(this.originLoginPromise)})}checkIsSameLogin(e,t,i){return this.account===e&&this.loginOption.authType===i.authType&&(0!==i.authType||this.token===t)}logout(){return Te(this,void 0,void 0,function*(){this._checkApiVersion(),this.doLoginStepsManager.clear(),this.previousLoginManager.clear(),this.loginTimerManager.destroy(),this.originLoginPromise=void 0;var e=this.getConnectStatus(),t=this.getLoginStatus();switch(t){case 1:try{yield this.clientSocket.sendCmd("v2Logout",void 0,{timeout:1e3}),this.clientSocket.doDisconnect(Dt.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),this.lifeCycle.processEvent("logout")}catch(e){this.logger.error("Instance::disconnect sendCmd:logout error",e),this.clientSocket.doDisconnect(Dt.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),this.lifeCycle.processEvent("logout")}break;case 2:case 3:this.clientSocket.doDisconnect(Dt.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),this.lifeCycle.processEvent("logout");break;case 0:throw this.core._clearModuleData(),new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:`Illegal logout. loginStatus ${t}. connectStatus ${e}`}});default:throw this.core._clearModuleData(),new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:`Illegal logout. illegal status: loginStatus ${t}. connectStatus ${e}`}})}})}getConnectStatus(){return this.lifeCycle.getConnectStatus()}getLoginStatus(){return this.lifeCycle.getLoginStatus()}getLoginUser(){return this.account}getLoginClients(){return function(e,t){e=e||[],t=t||"";for(var i=[],r=[],s=0;shi(e,["type","os","timestamp","customTag","customClientType","clientId","clientIP"]))}getCurrentLoginClient(){var e;if(null===(e=this.authenticator.loginClientOfThisConnection)||void 0===e?void 0:e.clientId)return hi(this.authenticator.loginClientOfThisConnection,["type","os","timestamp","customTag","customClientType","clientId","clientIP"])}getDataSync(){var e=this.dataSync.datas;return e&&e.length>0?e.map(e=>({type:e.type,state:e.state})):null}setReconnectDelayProvider(e){this.reconnect._setReconnectDelayProvider(e)}kickOffline(e){return Te(this,void 0,void 0,function*(){if(this._checkApiVersion(),_e({clientId:{type:"string",allowEmpty:!1}},e,"",!0),0===Ve(yield this.clientSocket.sendCmd("v2KickOffline",{clientIds:[e.clientId]}),"content.clientIds.length"))throw new pe({code:de.V2NIM_ERROR_CODE_REQUEST_FAILED})})}getKickedOfflineDetail(){return this.kickedDetail}checkLoginTerminalCode(e){return this.authenticator.checkLoginTerminalCode(e)}checkIllegalState(){if(!this.getLoginUser())throw new pe({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE})}_checkApiVersion(){if("v2"!==this.core.options.apiVersion)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:'apiVersion is not "v2"'}})}v2LoginHandler(e){if(e.error)throw this.clientSocket.doDisconnect(Dt.ACTIVE,e.error),e.error;return e}v2LoginClientChangeHandler(e){this.authenticator.changeLoginClient(parseInt(e.content.state),e.content.datas)}nimLoginClientChangeHandler(e){this.authenticator.changeLoginClient(parseInt(e.content.state),e.content.datas)}qchatLoginClientChangeHandler(e){var t=parseInt(e.content.state);t=1===t?2:3,this.authenticator.changeLoginClient(t,[e.content.data])}v2BeKickedHandler(e){if(e.error)this.core.logger.error("v2BeKickedHandler error, ",e.error);else{var t=function(e){return It({reason:{type:"number"},clientType:{type:"number"},customClientType:{type:"number"}},e)}(e.content);this.core.logger.warn("v2Bekicked::",t),this.kickedDetail=t,this.clientSocket.doDisconnect(Dt.KICKED,t),this.core._clearModuleData(),this.lifeCycle.processEvent("kicked",new pe({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"disconnect due to kicked"}}),t),this.emit("onKickedOffline",t)}}emit(e,...t){var i=`${this.name}::emit ${e.toString()}`;if("onLoginFailed"===e||"onDisconnected"===e||"onConnectFailed"===e){var r=t[0];this.logger.log(`${i}`,r.toString())}else if("onDataSync"===e){var s=t[2];this.logger.log(`${i}`,t[0],t[1],s&&s.toString())}else this.logger.log(`${i}`,...t);return super.emit(e,...t)}},"V2NIMLoginService"),Fo.registerService(class extends ii{constructor(e){super("V2NIMSyncService",e),this.teamKey=["teams","superTeams","myTeamMembers","mySuperTeamMembers"],this.config={},this.timetags={},"v2"===this.core.options.apiVersion&&(this.initEventListeners(),mt({cmdMap:gi,cmdConfig:vi}),this.setListener())}reset(){this.timetags={}}setListener(){this.core.eventBus.on("V2NIMSync/updateTimetag",e=>{Object.keys(e).forEach(t=>{e[t]>(this.timetags[t]||0)&&(this.timetags[t]=e[t])})})}setOptions(e){var t=this.core,i=!(!t.V2NIMConversationService.name&&!t.V2NIMLocalConversationService.name);return this.config=Object.assign({myInfo:!!t.V2NIMUserService.name,offlineMsgs:!!t.V2NIMMessageService.name,roamingMsgs:!!t.V2NIMMessageService.name,relations:!!t.V2NIMUserService.name,friends:!!t.V2NIMFriendService.name,friendUsers:!!t.V2NIMUserService.name,msgReceipts:!!t.V2NIMMessageService.name,broadcastMsgs:!!t.V2NIMNotificationService.name,recallMsg:!!t.V2NIMMessageService.name,sessionAck:i,superTeamSessionAck:i,stickTopSessions:i,superTeamRoamingMsgs:!!t.V2NIMTeamService.name,deleteSuperTeamMsg:!!t.V2NIMTeamService.name,deleteSelfMsgs:!!t.V2NIMMessageService.name,sessionHistoryMsgsDelete:!!t.V2NIMMessageService.name,avSignal:!!t.V2NIMSignallingService.name,teams:!!t.V2NIMTeamService.name,superTeams:!!t.V2NIMTeamService.name,myTeamMembers:!!t.V2NIMTeamService.name,mySuperTeamMembers:!!t.V2NIMTeamService.name,donnop:!!t.V2NIMSettingService.name,p2pTeamModifyMessage:!!t.V2NIMMessageService.name,superTeamModifyMessage:!!t.V2NIMMessageService.name},e),this.config}doBasicSync(){return Te(this,void 0,void 0,function*(){var e=Object.keys(this.config).filter(e=>!this.teamKey.includes(e)&&this.config[e]),t=this.genSyncParams(e);this.logger.log("V2Sync:basic",t);var i=(yield this.core.clientSocket.sendCmd("v2NIMSync",{tag:t})).content.timetag;this.setTimetags(i,e.filter(e=>"broadcastMsgs"!==e)),yield this.delaySyncDone(),yield this.handleImmediate(),this.core.logger.log("sync::basic sync complete in",i)})}doTeamSync(){return Te(this,void 0,void 0,function*(){var e=this.teamKey.filter(e=>this.config[e]);if(0!==e.length){var t=this.genSyncParams(e);this.core.eventBus.emit("V2NIMTeamService/onSyncStarted"),this.logger.log("V2Sync:team",t);var i=null;try{i=yield this.core.clientSocket.sendCmd("v2NIMSync",{tag:t})}catch(e){throw this.core.eventBus.emit("V2NIMTeamService/onSyncFailed",e),e}this.core.eventBus.emit("V2NIMTeamService/onSyncFinished");var r=i.content.timetag;this.setTimetags(r,this.teamKey),this.core.logger.log("sync::team sync complete in",r)}})}doQchatSync(){return Te(this,void 0,void 0,function*(){var e=yield this.core.clientSocket.sendCmd("v2QChatSync",{tag:{systemNotification:0}});this.core.logger.log("sync::qchat sync complete in",e.content.timetag)})}doSync(){return Te(this,void 0,void 0,function*(){var e=Ve(this.core,"V2NIMLoginService.authenticator.loginClientOfThisConnection.loginType");if(void 0!==e){if(this.logger.log(`sync::doSync:type ${e}`),this.core.V2NIMLoginService.dataSync.switchDataSync({type:1,state:2,subType:"mainSync"}),1===e)try{yield this.doBasicSync(),yield this.doTeamSync()}catch(e){return void this.doSyncComplete(e)}else if(2===e)try{yield this.doQchatSync()}catch(e){return void this.doSyncComplete(e)}else{if(3!==e)return;try{yield this.doBasicSync(),yield this.doTeamSync(),yield this.doQchatSync()}catch(e){return void this.doSyncComplete(e)}}this.doSyncComplete()}else this.logger.warn("sync::doSync: no loginType, stop sync")})}doSyncComplete(e){e&&this.core.logger.log("sync::doSync complete but got error",e),this.core.V2NIMLoginService.dataSync.switchDataSync({type:1,state:3,error:e,subType:"mainSync"})}initEventListeners(){this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",()=>{this.doSync()})}genSyncParams(e){return e.reduce((e,t)=>{var i=t;return e[i]=this.timetags[i]||0,e},{})}setTimetags(e,t){t.forEach(t=>{this.timetags[t]=e})}handleImmediate(){return this.core.session&&this.core.session.onSyncDone&&this.core.session.onSyncDone(),Promise.resolve()}delaySyncDone(){var{hostEnvEnum:e}=Oe.getSystemInfo();return 102===e?(this.core.logger.log("sync: emit ALIAPP sycnHandler, handle later"),new Promise(e=>{setTimeout(()=>{e()},100)})):Promise.resolve()}},"V2NIMSyncService"),Ne(Oe,{setLogger:_i,platform:"WXAPP",localStorage:Oi,request:Ri,WebSocket:ki,uploadFile:Ci,getFileUploadInformation:Ai,getSystemInfo:bi,net:Ei(wx),powerMonitor:new Ti(wx),logStorage:Ni}),Fo.registerService(class extends ii{constructor(e,t={}){super("V2NIMMessageService",e),this.customAttachmentParsers=[],this.config={compatibleWithV1:!0},this.filterFn=void 0,this.core._registerDep(Li,"V2NIMConversationIdUtil"),this.core._registerDep(ms,"V2NIMMessageCreator"),this.core._registerDep(gs,"V2NIMMessageAttachmentCreator"),this.core._registerDep(vs,"V2NIMClientAntispamUtil"),this.receiptUtil=new cr(this.core,this),this.fileUtil=new Rr(this.core),this.sendUtil=new _s(this.core,this),this.modifyUtil=new Is(this.core,this),this.deleteUtil=new ys(this.core,this),this.aiUtil=new Es(this.core,this),this.model=new Vi,this.event=new Ts(this.core,this),this.handler=new Ms(this.core,this),"v2"===this.core.options.apiVersion&&(mt({cmdMap:kr,cmdConfig:Ur}),this.setOptions(t),this.setListener())}setOptions(e){var t;(null===(t=this.core.msg)||void 0===t?void 0:t.name)?this.config.compatibleWithV1=!0:this.config.compatibleWithV1=!1,this.config=Object.assign(this.config,e)}setListener(){this.event.setListener()}reset(){this.model.reset(),this.receiptUtil.reset()}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}checkExtendUtil(){var e;if(!(null===(e=this.core.V2NIMMessageExtendUtil)||void 0===e?void 0:e.name))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2NIMMessageLogUtil is not registered"}})}checkLogUtil(){var e;if(!(null===(e=this.core.V2NIMMessageLogUtil)||void 0===e?void 0:e.name))throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2NIMMessageExtendUtil is not registered"}})}getMessageList(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.checkLogUtil();var t=yield this.core.V2NIMMessageLogUtil.getMessageList(e);return t=this._filterMessageByClearTime(e.conversationId,t),this._filterMessagesByFn(t)})}getMessageListEx(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.checkLogUtil();var t=yield this.core.V2NIMMessageLogUtil.getMessageList(e);return t=this._filterMessageByClearTime(e.conversationId,t),{messages:this._filterMessagesByFn(t),anchorMessage:t.length>0?t[t.length-1]:null}})}getMessageListByRefers(e){return this.checkV2(),this.checkLogUtil(),this.core.V2NIMMessageLogUtil.getMessageListByRefers(e)}clearHistoryMessage(e){return this.checkV2(),this.checkLogUtil(),this.core.V2NIMMessageLogUtil.clearHistoryMessage(e)}clearRoamingMessage(e){return this.checkV2(),this.checkLogUtil(),this.core.V2NIMMessageLogUtil.clearRoamingMessage(e)}pinMessage(e,t){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.pinMessage(e,t)}unpinMessage(e,t){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.unpinMessage(e,t)}updatePinMessage(e,t){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.updatePinMessage(e,t)}voiceToText(e){return this.checkV2(),this.checkExtendUtil(),"string"==typeof e.duration&&(e.duration=Number(e.duration)),this.core.V2NIMMessageExtendUtil.voiceToText(e)}getPinnedMessageList(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.getPinnedMessageList(e)}addQuickComment(e,t,i,r){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.addQuickComment(e,t,i,r)}removeQuickComment(e,t,i){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.removeQuickComment(e,t,i)}getQuickCommentList(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.getQuickCommentList(e)}addCollection(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.addCollection(e)}removeCollections(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.removeCollections(e)}updateCollectionExtension(e,t){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.updateCollectionExtension(e,t)}getCollectionListByOption(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.getCollectionListByOption(e)}getCollectionListExByOption(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.getCollectionListExByOption(e)}searchCloudMessages(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.searchCloudMessages(e)}searchCloudMessagesEx(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.searchCloudMessagesEx(e)}getThreadMessageList(e){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.getThreadMessageList(e)}registerCustomAttachmentParser(e){"function"==typeof e&&-1===this.customAttachmentParsers.indexOf(e)&&this.customAttachmentParsers.unshift(e)}unregisterCustomAttachmentParser(e){var t=this.customAttachmentParsers.indexOf(e);t>-1&&this.customAttachmentParsers.splice(t,1)}sendP2PMessageReceipt(e){return this.checkV2(),this.receiptUtil.sendP2PMessageReceipt(e)}isPeerRead(e){return this.checkV2(),this.receiptUtil.isPeerRead(e)}getP2PMessageReceipt(e){return this.checkV2(),this.receiptUtil.getP2PMessageReceipt(e)}getTeamMessageReceipts(e){return this.checkV2(),this.receiptUtil.getTeamMessageReceipts(e)}getTeamMessageReceiptDetail(e){return this.checkV2(),this.receiptUtil.getTeamMessageReceiptDetail(e)}sendTeamMessageReceipts(e){return this.checkV2(),this.receiptUtil.sendTeamMessageReceipts(e)}revokeMessage(e,t){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.deleteUtil.revokeMessage(e,t)})}deleteMessage(e,t){return this.checkV2(),this.deleteUtil.deleteMessage(e,t)}deleteMessages(e,t){return this.checkV2(),this.deleteUtil.deleteMessages(e,t)}cancelMessageAttachmentUpload(e){return this.checkV2(),this.fileUtil.cancelMessageAttachmentUpload(e)}markMsgsAck(e){if(e&&e.length>0){var t=[],i=[];e.forEach(e=>{e.senderId===this.core.account&&e.senderId!==e.receiverId||(1===e.conversationType?t.push(e):2===e.conversationType&&i.push(e))}),t.length>0&&this.core.sendCmd("v2BatchMarkRead",{sid:7,cid:2,ids:t.map(e=>e.messageServerId)}),i.length>0&&this.core.sendCmd("v2BatchMarkRead",{sid:8,cid:3,ids:i.map(e=>e.messageServerId)})}}sendMessage(e,t,i={},r){var s;return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e({message:{type:"object"}},{message:e},"",!0),e.messageClientId=e.messageClientId||De(),e.conversationId&&e.conversationId!==t)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sendMessage: message.conversationId is not equal to conversationId"}});_e(Gi,{conversationId:t,message:e,params:i},"",!0),ye(this.core.account,t);var n=this.core.V2NIMConversationIdUtil.parseConversationType(t);if((2===n||3===n)&&i.robotConfig&&!i.robotConfig.accountId)throw new me({detail:{reason:"When conversationType is team or superTeam, account is required in robotInfo account is required"}});if(2!==n&&3!==n||!i.targetConfig)i.targetConfig=void 0;else{var o=i.targetConfig.receiverIds;if(3===n&&!1===i.targetConfig.inclusive)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"setting inclusive to false for super teams is not allowed"}});if(0===(o=o.filter(e=>e&&e!==this.core.account)).length)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"receiverIds cannot be empty or only contain yourself"}});i.targetConfig.receiverIds=o}(null===(s=i.aiConfig)||void 0===s?void 0:s.aiStream)&&this.aiUtil.checkAI();var a,c=this.core.timeOrigin.getTimeNode(),{messageBeforeSend:d,clientAntispamResult:l,hiddenParams:h}=this.sendUtil.prepareMessage(e,t,i);this.logger.log(`V2SendMessage start:${d.messageClientId}/${d.createTime};conversation:${t};`,`NTPTime:${this.core.timeOrigin.getNTPTime(c)}`);try{a=yield this.sendUtil.doSendMessage({apiCallingTimeNode:c,messageBeforeSend:d,clientAntispamResult:l,hiddenParams:h,progress:r})}catch(e){throw this.logger.warn(`V2SendMessage end:${d.messageClientId}.`,e instanceof pe?`failed:${e.code}`:"failed"),e}return a.message.senderId===a.message.receiverId&&this.markMsgsAck([a.message]),this.logger.log(`V2SendMessage end:${a.message.messageClientId}/${a.message.messageServerId}/${a.message.createTime}`),a})}replyMessage(e,t,i={},r){return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e({message:{type:"object"}},{message:e},"",!0),e.messageClientId=e.messageClientId||De(),_e(ji,{message:e,replyMessage:t,params:i},"",!0),ye(this.core.account,t.conversationId),(2===e.conversationType||3===e.conversationType)&&i.robotConfig&&!i.robotConfig.accountId)throw new me({detail:{reason:"When conversationType is team or superTeam, account is required in robotInfo account is required"}});var s=this.core.timeOrigin.getTimeNode(),{messageBeforeSend:n,clientAntispamResult:o,hiddenParams:a}=this.sendUtil.prepareMessage(e,t.conversationId,i,t),c=yield this.sendUtil.doSendMessage({apiCallingTimeNode:s,messageBeforeSend:n,clientAntispamResult:o,hiddenParams:a,progress:r});return c.message.senderId===c.message.receiverId&&this.markMsgsAck([c.message]),c})}modifyMessage(e,t){this.checkV2(),this.checkLogin(),_e(rr,e,"message",!0),_e(sr,t,"params",!0),this.modifyUtil.checkIfModify(e,t);var{messageBeforeSend:i,clientAntispamResult:r}=this.modifyUtil.prepareMessage(e,t);return this.modifyUtil.modifyMessage(i,r)}stopAIStreamMessage(e,t){if(this.checkV2(),this.aiUtil.checkAI(),_e(nr,e,"message",!0),_e(or,t,"params",!0),2===t.operationType&&!t.updateContent)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"V2NIMMessage::stopAIStreamMessage updateContent empty"}});return this.aiUtil.stopAIStreamMessage(e,t)}regenAIMessage(e,t){return this.checkV2(),this.aiUtil.checkAI(),_e(nr,e,"message",!0),_e(ar,t,"params",!0),this.aiUtil.regenAIMessage(e,t)}sendMessageFn(e){if(e.msgAckSnapshot){var t=e.msgAckSnapshot,i={conversationId:e.conversationId,messageServerId:e.messageServerId,messageClientId:e.messageClientId,readCount:0,unreadCount:Number(t)};delete e.msgAckSnapshot,this.emit("onReceiveTeamMessageReadReceipts",[i])}e=Mr(e,this.core),this.model.upsertMessages([e]),this.core.eventBus.emit("V2NIMMessageService/sendMessage",e,e.sendingState)}setMessageFilter(e){null!=e?e&&"function"==typeof e.shouldIgnore&&(this.filterFn=e.shouldIgnore):this.filterFn=void 0}_filterMessage(e){if("function"==typeof this.filterFn)try{return!0===this.filterFn(e)}catch(t){return this.logger.error(`V2NIMMessage::triggerMessageFilter ${e.messageClientId} error:`,t),!1}return!1}_filterMessagesByFn(e){return e.filter(e=>!this._filterMessage(e))}_filterMessageByClearTime(e,t){var i=Oe.localStorage.getItem(`nim_${this.core.account}_${e}_clearTime`),r=i?parseInt(i):0;return r>0?t.filter(e=>e.createTime>=r):t}},"V2NIMMessageService"),Fo.registerService(class extends ii{constructor(e){super("V2NIMMessageLogUtil",e),this.clearHistoryMessageFn=e=>{var t=Cr(this.core,e);this.emitClearHistoryMessage([t])},this.core=e,this.service=this.core.V2NIMMessageService,"v2"===this.core.options.apiVersion&&(mt({cmdMap:zs,cmdConfig:Zs}),this.setListener())}setListener(){this.core.eventBus.on("forwardReceive/V2NIMMessageLogService/clearHistoryMessage",this.clearHistoryMessageFn)}getMessageListByRefers(e){return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e(Yi,{messageRefers:e},"",!0),0===e.length)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getMessageListByRefers: messageRefers cannot be an empty array"}});var t=[],i=e.map(e=>{var i=this.service.model.getMessageById(e.messageClientId);return!i&&e.messageServerId&&"0"!==e.messageServerId&&t.push(e),i}),r=[];if(t.length>0){var s=yield this.core.sendCmd("v2GetMessageListByRefers",{tag:t});r=s.content.msgs}return i.map((t,i)=>{if(t)return t;var s=e[i],n=r.find(e=>e.messageServerId===s.messageServerId);return n?Er(this.core,n):void 0}).filter(e=>void 0!==e&&!this.service._filterMessage(e))})}getMessageList(e){var t;return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Hi,e,"",!0),ye(this.core.account,e.conversationId);var i=this.core.V2NIMConversationIdUtil.parseConversationType(e.conversationId),r=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e.conversationId),s=1===i?"v2GetMessageList":2===i?"v2GetTeamMessageList":"v2GetSuperTeamMessageList",n=e.beginTime||0,o=e.endTime||0;if(0!==n&&0!==o&&n>o)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getMessageList: beginTime cannot be greater than endTime"}});var a=void 0===e.direction?0:e.direction;if(e.anchorMessage)if(0===a){if(0===o)o=e.anchorMessage.createTime;else if(o!==e.anchorMessage.createTime)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getMessageList: When providing anchorMessage, when sorting in descending order, endTime does not need to be provided, or endTime should be equal to anchorMessage.createTime"}})}else if(0===n)n=e.anchorMessage.createTime;else if(n!==e.anchorMessage.createTime)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getMessageList: When providing anchorMessage, when sorting in ascending order, there is no need to provide beginTime, or beginTime should be equal to anchorMessage.createTime"}});var c=null===(t=e.anchorMessage)||void 0===t?void 0:t.messageServerId,d=yield this.core.sendCmd(s,{beginTime:n,endTime:o,lastMsgId:c||0,limit:e.limit||50,direction:a,msgTypes:e.messageTypes?e.messageTypes.slice():[],to:r}),{content:l}=d,h=l.msgs.map(e=>Er(this.core,e));return c&&(h=h.filter(e=>e.messageServerId!==c)),this.getMessageListMonkeyPatch(h,e)})}getMessageListMonkeyPatch(e,t){var i=t.conversationId,r=e,s=r.reduce((e,t)=>(e[t.messageClientId]=!0,e),{}),n=this.service.model.getMessagesByConversationId(i);n=n.sort((e,i)=>1===t.direction?e.createTime-i.createTime:i.createTime-e.createTime);var o=0,a=t.beginTime||0,c=t.endTime||0;t.anchorMessage&&(0===t.direction?c=t.anchorMessage.createTime:a=t.anchorMessage.createTime,o=n.findIndex(e=>{var i;return e.messageClientId===(null===(i=t.anchorMessage)||void 0===i?void 0:i.messageClientId)}),o+=1);for(var d=o;da&&(l.createTime1===t.direction?e.createTime-i.createTime:i.createTime-e.createTime)).slice(0,t.limit||50)}clearHistoryMessage(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Wi,e,"",!0),ye(this.core.account,e.conversationId);var{conversationId:t,deleteRoam:i,onlineSync:r,serverExtension:s}=e,n=this.core.V2NIMConversationIdUtil.parseConversationType(t),o=this.core.V2NIMConversationIdUtil.parseConversationTargetId(t),a={deleteRoam:i,onlineSync:r,serverExtension:s,conversationType:n};1===n?a.receiverId=o:a.teamId=o;var c=this.core.timeOrigin.getNTPTime();e.clearMode=e.clearMode||0,0===e.clearMode&&(c=(yield this.core.sendCmd("v2ClearHistoryMessage",{tag:a})).content.timetag),2===e.clearMode&&Oe.localStorage.setItem(`nim_${this.core.account}_${t}_clearTime`,c.toString()),this.core.eventBus.emit("forwardSend/V2NIMMessageLogService/clearHistoryMessage",Object.assign(Object.assign({},a),{deleteTime:c})),this.emitClearHistoryMessage([{deleteTime:c,serverExtension:s,conversationId:t}])})}clearRoamingMessage(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},void 0,!0);var t=[];try{t=e.map(e=>{var t=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e);return function(e,t){return`${Ss[e]}|${t}`}(this.core.V2NIMConversationIdUtil.parseConversationType(e),t)})}catch(t){throw this.logger.error(`V2NIMMessage::clearRoamingMessage with ${e}`,t),new pe({code:de.V2NIM_ERROR_CODE_PARAMETER_ERROR,detail:{reason:"Failed to create session",rawData:`${e}`}})}yield this.core.sendCmd("v2ClearRoamingMessage",{conversationIds:t})})}syncClearHistoryMessageHandler(e){var t=e.content.data.map(e=>Cr(this.core,e));this.emitClearHistoryMessage(t)}onClearHistoryMessageHandler(e){var t=Cr(this.core,e.content.data);this.emitClearHistoryMessage([t])}emitClearHistoryMessage(e){e.forEach(e=>{this.service.model.deleteMessages(e.conversationId,e.deleteTime),this.core.eventBus.emit("V2NIMSync/updateTimetag",{sessionHistoryMsgsDelete:e.deleteTime})}),this.core.eventBus.emit("V2NIMMessageLogUtil/onClearHistoryNotifications",e),this.service.emit("onClearHistoryNotifications",e)}},"V2NIMMessageLogUtil"),Fo.registerService(us,"V2NIMStorageService"),Fo.registerService(class extends ii{constructor(e,t={}){super("V2NIMConversationService",e),this.config={},this.model=new Ls,this.versionCache=new Ps(this.core,this),this.unread=new js(this.core,this),this.compute=new Ys(this.core,this),this.event=new Ks(this.core,this),this.handler=new qs(this.core,this),this.core._registerDep(Li,"V2NIMConversationIdUtil"),"v2"===this.core.options.apiVersion&&!0===this.core.options.enableV2CloudConversation&&(mt({cmdMap:ws,cmdConfig:Bs}),this.setOptions(t),this.setListener())}setOptions(e){this.config=Object.assign(this.config,e)}setListener(){this.event.setListener()}reset(){this.versionCache.reset(),this.model.reset(),this.unread.reset()}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}checkEnable(){if(!0!==this.core.options.enableV2CloudConversation)throw new pe({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2CloudConversation is not enabled"}})}getConversationList(e,t){this.checkEnable(),this.checkV2(),_e({offset:{type:"number",min:0}},{offset:e},"",!0),_e({limit:{type:"number",min:1}},{limit:t},"",!0),this.core.V2NIMLoginService.checkIllegalState();var i=this.model.getByOption(e,t,{});return i.conversationList=this.compute.computeConvs(i.conversationList),Promise.resolve(i)}getConversationListByOption(e,t,i){this.checkEnable(),this.checkV2(),_e({offset:{type:"number",min:0}},{offset:e},"",!0),_e({limit:{type:"number",min:1}},{limit:t},"",!0),_e({option:{type:"object",required:!0,rules:{conversationTypes:{type:"array",itemType:"number",required:!1},onlyUnread:{type:"boolean",required:!1},conversationGroupIds:{type:"array",itemType:"string",required:!1}}}},{option:i},"",!0),this.core.V2NIMLoginService.checkIllegalState();var r=this.model.getByOption(e,t,i);return r.conversationList=this.compute.computeConvs(r.conversationList),Promise.resolve(r)}getConversation(e){return Te(this,void 0,void 0,function*(){this.checkEnable(),this.checkV2(),ye(this.core.account,e);var t=this.model.getById(e);if(t)return this.compute.computeConv(t);throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST})})}getConversationListByIds(e){return Te(this,void 0,void 0,function*(){this.checkEnable(),this.checkV2(),_e({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0),this.core.V2NIMLoginService.checkIllegalState();var t=e.map(e=>this.model.getById(e)).filter(e=>!!e);return this.compute.computeConvs(t)})}createConversation(e){return Te(this,void 0,void 0,function*(){this.checkEnable(),this.checkV2(),ye(this.core.account,e);var t=Ve(yield this.core.sendCmd("v2ConversationCreate",{tag:{conversationId:e}}),"content.data"),i=Rs(this.core,t);this.versionCache.compareAndUpdateModel([i]);var r=this.model.getById(e);if(r)return this.compute.computeConv(r);throw new pe({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST})})}deleteConversation(e,t){return Te(this,void 0,void 0,function*(){this.checkEnable(),this.checkV2(),ye(this.core.account,e),_e({clearMessage:{type:"boolean",required:!1}},{clearMessage:t},"",!0);try{yield this.core.sendCmd("v2ConversationDelete",{tag:{conversationId:e,clearMessage:Number(t||!1)}})}catch(t){this.logger.warn(`V2NIMConversationService:deleteConversation: delete conversation failed: ${e}`)}this.model.getById(e)&&(t&&this.core.eventBus.emit("V2NIMConversationService/deleteConversation",[e]),this.versionCache.compareAndDeleteModel([e]))})}deleteConversationListByIds(e,t){return Te(this,void 0,void 0,function*(){this.checkEnable(),this.checkV2(),_e({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0),_e({clearMessage:{type:"boolean",required:!1}},{clearMessage:t},"",!0);var i=Hs(Ve(yield this.core.sendCmd("v2ConversationsDelete",{tag:{conversationIds:JSON.stringify(e),clearMessage:Number(t||!1)}}),"content.info.failedMap")).filter(e=>e.error.code!==de.V2NIM_ERROR_CODE_CONVERSATION_NOT_EXIST||!this.model.getById(e.conversationId));return i.length=n?(this.logger.log(`V2Conv::markConversationRead currentReadTime >= readTime ${e},${s},${n}`),s):(3===r?yield this.core.sendCmd("v2MarkSuperTeamReadTime",{timetag:n,to:i}):yield this.core.sendCmd("v2MarkConversationReadTime",{scene:1===r?0:2===r?1:2,timetag:n,to:i}),this.model.updateReadTime(e,n),n)})}getConversationReadTime(e){return Te(this,void 0,void 0,function*(){return this.checkEnable(),this.checkV2(),ye(this.core.account,e),this.model.getReadTime(e)})}subscribeUnreadCountByFilter(e){var t;this.checkEnable(),this.checkV2(),this.checkLogin(),this.valiteFilter(e),0===(null===(t=e.conversationTypes)||void 0===t?void 0:t.length)&&delete e.conversationTypes,this.unread.addFilter(e)}unsubscribeUnreadCountByFilter(e){var t;this.checkEnable(),this.checkV2(),this.checkLogin(),this.valiteFilter(e),0===(null===(t=e.conversationTypes)||void 0===t?void 0:t.length)&&delete e.conversationTypes,this.unread.deleteFilter(e)}valiteFilter(e){if(_e({filter:{type:"object",required:!0,rules:{conversationTypes:{type:"array",itemType:"number",required:!1},conversationGroupId:{type:"string",allowEmpty:!1,required:!1},ignoreMuted:{type:"boolean",required:!1}}}},{filter:e},"",!0),void 0===e.conversationTypes&&void 0===e.conversationGroupId&&!0!==e.ignoreMuted)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Filter cannot be empty"}})}triggerConversationChanged(e){e=this.compute.computeConvs(e),(e=JSON.parse(JSON.stringify(e))).forEach(e=>{e.lastMessage||(e.lastMessage=void 0),delete e.lastMessageState}),this.emit("onConversationChanged",e)}triggerConversationCreated(e){e=this.compute.computeConv(e),delete(e=JSON.parse(JSON.stringify(e))).lastMessageState,this.emit("onConversationCreated",e)}},"V2NIMConversationService"),Fo.registerService(class extends ii{constructor(e){super("V2NIMTeamService",e),this.core._registerDep(Li,"V2NIMConversationIdUtil"),this.model=new kn,this.memberModel=new Ln,this.notificationModel=new Pn,this.notification=new Vn(e,this),this.event=new Dn(e,this),this.handler=new wn(e,this),"v2"===this.core.options.apiVersion&&(mt({cmdMap:dr,cmdConfig:vr}),this.setListener())}setListener(){this.event.setListener()}reset(){this.model.reset(),this.memberModel.reset(),this.notificationModel.reset()}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}createTeam(e,t,i,r){return Te(this,void 0,void 0,function*(){this.checkV2(),_e({createTeamParams:cn},{createTeamParams:e},"",!0),_e({inviteeAccountIds:Object.assign(Object.assign({},dn),{min:0,required:!1})},{inviteeAccountIds:t},"",!0),_e({antispamConfig:un},{antispamConfig:r},"",!0);var s=2===e.teamType?"v2SuperTeamCreate":"v2TeamCreate",n=yield this.core.sendCmd(s,{team:e,inviteeAccountIds:t||[],postscript:i||"",antispamConfig:r}),o=n.content.team;return this.model.upsert(o),this.getTeamMemberListByIds(o.teamId,o.teamType,[this.core.account]).catch(e=>{this.core.logger.error("Get Member error after createTeam",e)}),this.emit("onTeamCreated",o),{team:o,failedList:n.content.failedList}})}updateTeamInfo(e,t,i,r){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e(In,{updateTeamInfoParams:i},"",!0),_e({antispamConfig:un},{antispamConfig:r},"",!0);var s=Object.assign({teamId:e,teamType:t},i),n=2===t?"v2SuperTeamUpdateInfo":"v2TeamUpdateInfo";yield this.core.sendCmd(n,{team:s,antispamConfig:r}),this.model.upsert(s)})}leaveTeam(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0);var i=2===t?"v2SuperTeamLeave":"v2TeamLeave";yield this.core.sendCmd(i,{teamId:e}),this.model.deleteById(e,t)})}getTeamInfo(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0);var i=2===t?"v2SuperTeamGetInfo":"v2TeamGetInfo",r=this.model.getById(e,t,!1);if(r)return r;var s=(yield this.core.sendCmd(i,{teamId:e})).content.team;return this.model.upsert(s),s})}getJoinedTeamList(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(fn,{teamTypes:e},"",!0),this.core.V2NIMLoginService.checkIllegalState(),e&&0!==e.length||(e=[1,2]);var t=[];return e.forEach(e=>{t=t.concat(this.model.getAll(e))}),t.sort((e,t)=>e.createTime-t.createTime)})}getJoinedTeamCount(e){this.checkV2(),_e(fn,{teamTypes:e},"",!0),this.core.V2NIMLoginService.checkIllegalState(),e&&0!==e.length||(e=[1,2]);var t=0;return e.forEach(e=>{t+=this.model.count(e)}),t}getJoinedTeamMembers(e){this.checkV2(),_e(fn,{teamTypes:e},"",!0),this.core.V2NIMLoginService.checkIllegalState(),e&&0!==e.length||(e=[1,2]);var t=[];return e.forEach(e=>{var i=this.memberModel.chooseList(e).filter(e=>e.accountId===this.core.account);t=t.concat(i)}),Promise.resolve(t)}getTeamInfoByIds(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(gn,{teamIds:e},"",!0),_e(vn,{teamType:t},"",!0);var i=2===t?"v2SuperTeamGetByIds":"v2TeamGetByIds",r=e.map(e=>this.model.getById(e,t,!1)),s=e.filter((e,t)=>!r[t]);if(0===s.length)return r;var n=(yield this.core.sendCmd(i,{teamIds:s})).content.teams;return r.map((t,i)=>{if(t)return t;var r=e[i],s=n.find(e=>e.teamId===r);return s&&this.model.upsert(s),s}).filter(e=>!!e)})}dismissTeam(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0);var i=2===t?"v2SuperTeamDismiss":"v2TeamDismiss";yield this.core.sendCmd(i,{teamId:e})})}inviteMember(e,t,i,r){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({inviteeAccountIds:dn},{inviteeAccountIds:i},"",!0),_e({postscript:Object.assign(Object.assign({},hn),{required:!1})},{postscript:r},"",!0);var s=2===t?"v2SuperTeamInviteMembers":"v2TeamInviteMembers";return(yield this.core.sendCmd(s,{teamId:e,accounts:i,ps:r||""})).content.abortedAccidList})}inviteMemberEx(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e(_n,{inviteeParams:i},"",!0);var r=2===t?"v2SuperTeamInviteMembers":"v2TeamInviteMembers";return(yield this.core.sendCmd(r,{teamId:e,accounts:i.inviteeAccountIds,ps:i.postscript||"",attach:i.serverExtension})).content.abortedAccidList})}acceptInvitation(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Sn,e,"invitationInfo",!0),_e(Cn,e,"invitationInfo",!0);var{teamType:t,teamId:i,operatorAccountId:r}=e,s=2===t?"v2SuperTeamAcceptInvitation":"v2TeamAcceptInvitation";try{var n=yield this.core.sendCmd(s,{teamId:i,from:r});return this.notification.updateTeamActionStatus(e,1),n.content.team}catch(t){var o=t;throw this.notification.checkIfExpired(o.code)&&this.notification.updateTeamActionStatus(e,3),t}})}rejectInvitation(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Sn,e,"invitationInfo",!0),_e(Cn,e,"invitationInfo",!0),_e({postscript:Object.assign(Object.assign({},hn),{required:!1})},{postscript:t},"",!0);var{teamType:i,teamId:r,operatorAccountId:s}=e,n=2===i?"v2SuperTeamRejectInvite":"v2TeamRejectInvite";try{yield this.core.sendCmd(n,{teamId:r,from:s,ps:t||""}),this.notification.updateTeamActionStatus(e,2)}catch(t){var o=t;throw this.notification.checkIfExpired(o.code)&&this.notification.updateTeamActionStatus(e,3),t}})}kickMember(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({memberAccountIds:dn},{memberAccountIds:i},"",!0);var r=2===t?"v2SuperTeamKickMembers":"v2TeamKickMembers";yield this.core.sendCmd(r,{teamId:e,accounts:i})})}applyJoinTeam(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0);var r=2===t?"v2SuperTeamApplyToJoin":"v2TeamApplyToJoin",s=yield this.core.sendCmd(r,{teamId:e,ps:i||""}),n=s.content.team,o=s.content.isInTeam;return n.isValidTeam=!!n.isValidTeam&&!!o,n})}acceptJoinApplication(e){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Sn,e,"applicationInfo",!0),_e(An,e,"applicationInfo",!0);var{teamType:t,teamId:i,operatorAccountId:r}=e,s=2===t?"v2SuperTeamAcceptJoinApplication":"v2TeamAcceptJoinApplication";try{yield this.core.sendCmd(s,{teamId:i,from:r}),this.notification.updateTeamActionStatus(e,1)}catch(t){var n=t;throw this.notification.checkIfExpired(n.code)&&this.notification.updateTeamActionStatus(e,3),t}})}rejectJoinApplication(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Sn,e,"applicationInfo",!0),_e(An,e,"applicationInfo",!0),_e({postscript:Object.assign(Object.assign({},hn),{required:!1})},{postscript:t},"",!0);var{teamType:i,teamId:r,operatorAccountId:s}=e,n=2===i?"v2SuperTeamRejectJoinApplication":"v2TeamRejectJoinApplication";try{yield this.core.sendCmd(n,{teamId:r,from:s,ps:t||""}),this.notification.updateTeamActionStatus(e,2)}catch(t){var o=t;throw this.notification.checkIfExpired(o.code)&&this.notification.updateTeamActionStatus(e,3),t}})}updateTeamMemberRole(e,t,i,r){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({memberAccountIds:dn},{memberAccountIds:i},"",!0),_e({memberRole:yn},{memberRole:r},"",!0);var s=2===r?"AddManagers":"RemoveManagers";s=2===t?`v2SuperTeam${s}`:`v2Team${s}`,yield this.core.sendCmd(s,{teamId:e,accounts:Zt(i)})})}transferTeamOwner(e,t,i,r){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({accountId:pn},{accountId:i},"",!0),_e({leave:{type:"boolean",required:!1}},{leave:r},"",!0);var s=this.model.getById(e,t);if(s&&s.ownerAccountId===i)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Transfer to self is not allowed"}});var n=2===t?"v2SuperTeamTransferOwner":"v2TeamTransferOwner";yield this.core.sendCmd(n,{teamId:e,account:i,leave:r||!1})})}updateSelfTeamMemberInfo(e,t,i){return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e(En,{memberInfoParams:i},"",!0),void 0===i.teamNick&&void 0===i.serverExtension)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER});var r=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",s=Object.assign(Object.assign({},i),{teamId:e,accountId:this.core.account}),n=i.antispamConfig?{teamMember:s,specialFollowUpdate:{},antispam:i.antispamConfig}:{teamMember:s};yield this.core.sendCmd(r,n),yield this.notification.updateTeamMemberRole(e,t,[this.core.account],s);var o=this.memberModel.getById(e,t,this.core.account);if(this.core.V2NIMSettingService.name&&this.core.V2NIMConversationIdUtil.name){var a=1===t?this.core.V2NIMConversationIdUtil.teamConversationId(e):this.core.V2NIMConversationIdUtil.superTeamConversationId(e),c=this.core.V2NIMSettingService.getConversationMuteStatus(a);this.core.eventBus.emit("V2NIMSettingService/setMute",a,c)}this.core.eventBus.emit("forwardSend/V2NIMTeamService/updateSelfTeamMemberInfo",o)})}updateTeamMemberNick(e,t,i,r){return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({accountId:pn},{accountId:i},"",!0),_e({nick:hn},{nick:r},"",!0),i===this.core.account)return this.updateSelfTeamMemberInfo(e,t,{teamNick:r});var s=2===t?"v2SuperTeamUpdateMember":"v2TeamUpdateMember";yield this.core.sendCmd(s,{teamMember:{teamNick:r,teamId:e,accountId:i}})})}updateTeamMemberNickEx(e,t,i){return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e(bn,i,"",!0),i.accountId===this.core.account)return this.updateSelfTeamMemberInfo(e,t,{teamNick:i.teamNick,antispamConfig:i.antispamConfig});var r=2===t?"v2SuperTeamUpdateMember":"v2TeamUpdateMember";yield this.core.sendCmd(r,{teamMember:{teamNick:i.teamNick,teamId:e,accountId:i.accountId},antispam:i.antispamConfig})})}setTeamChatBannedMode(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e(Mn,{chatBannedMode:i},"",!0);var r=2===t?"v2SuperTeamSetChatBannedMode":"v2TeamSetChatBannedMode";yield this.core.sendCmd(r,{teamId:e,chatBannedMode:i}),this.model.upsert({teamId:e,teamType:t,chatBannedMode:i})})}setTeamMemberChatBannedStatus(e,t,i,r){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({accountId:pn},{accountId:i},"",!0),_e({chatBanned:ln},{chatBanned:r},"",!0);var s=2===t?"v2SuperTeamMemberSetChatBannedStatus":"v2TeamMemberSetChatBannedStatus";yield this.core.sendCmd(s,{teamId:e,accountId:2===t?[i]:i,chatBanned:r?1:0})})}getTeamMemberList(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e(Tn,{queryOption:i},"",!0);var r=void 0===i.direction?0:i.direction;r=0===r?1:0;var s=yield this.core.sendCmd("v2TeamMemberGetList",{tag:Object.assign(Object.assign({teamId:e,teamType:t,onlyChatBanned:!1,nextToken:"",limit:100},i),{direction:r})}),n=s.content.datas,o=Ve(s,"raw.r.0");return 2===t&&o&&o.map&&(n=o.map(e=>ut(e,gt(mr)))),{nextToken:s.content.pageInfo.nextToken||"",finished:!+s.content.pageInfo.hasMore,memberList:yr(n,t)}})}getTeamMemberListByIds(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({accountIds:dn},{accountIds:i},"",!0);for(var r=2===t?"v2SuperTeamMemberGetListByIds":"v2TeamMemberGetListByIds",s=i.map(t=>`${e}|${t}`),n=[],o=0;othis.memberModel.upsert(e))}return n})}getTeamMemberInvitor(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(mn,{teamId:e},"",!0),_e(vn,{teamType:t},"",!0),_e({accountIds:dn},{accountIds:i},"",!0);var r=2===t?"v2SuperTeamGetMemberInvitor":"v2TeamGetMemberInvitor";return(yield this.core.sendCmd(r,{teamId:e,accounts:i})).content.accountsMap})}searchTeamByKeyword(e){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.checkLogin(),_e({keyword:pn},{keyword:e},"",!0),this.model.searchTeamByKeyword(e)})}addTeamMembersFollow(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Rn,{teamId:e,teamType:t,accountIds:i},"",!0);var r=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",[s]=yield this.getTeamMemberListByIds(e,t,[this.core.account]),n=(yield this.core.sendCmd(r,{teamMember:{teamId:e},specialFollowUpdate:{accountIds:i,operation:1}})).content.data;Object.keys(n).length>0&&(Object.assign(s,n),this.emit("onTeamMemberInfoUpdated",[s]),this.memberModel.upsert(s))})}removeTeamMembersFollow(e,t,i){return Te(this,void 0,void 0,function*(){this.checkV2(),_e(Rn,{teamId:e,teamType:t,accountIds:i},"",!0);var[r]=yield this.getTeamMemberListByIds(e,t,[this.core.account]),s=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",n=(yield this.core.sendCmd(s,{teamMember:{teamId:e},specialFollowUpdate:{accountIds:i,operation:0}})).content.data;Object.keys(n).length>0&&(Object.assign(r,n),this.emit("onTeamMemberInfoUpdated",[r]),this.memberModel.upsert(r))})}getTeamJoinActionInfoList(e){return this.checkV2(),_e(On,e,"option",!0),this.core.V2NIMLoginService.checkIllegalState(),Promise.resolve(this.notificationModel.getByOption(e))}clearAllTeamJoinActionInfo(){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.notificationModel.reset()})}deleteTeamJoinActionInfo(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),_e(Sn,e,"",!0),_e(Nn,e,"",!0),_e({timestamp:{type:"number",min:1}},e,"",!0),this.notificationModel.delete(e)})}setTeamJoinActionInfoRead(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),e?(_e(Sn,e,"",!0),_e(Nn,e,"",!0),this.notificationModel.setRead(e)):this.notificationModel.setAllRead()})}getTeamJoinActionInfoUnreadCount(){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.notificationModel.getUnreadCount()})}},"V2NIMTeamService"),Fo.registerService(Yn,"V2NIMUserService"),Fo.registerService(class extends ii{constructor(e){super("V2NIMFriendService",e),this.notification=new io(this.core,this),this.model=new ro,this.notificationModel=new so,this.core._registerDep(Yn,"V2NIMUserService"),"v2"===this.core.options.apiVersion&&(mt({cmdMap:Kn,cmdConfig:Jn}),this.setListener())}reset(){this.model.reset()}setListener(){this.core.eventBus.on("V2NIMFriendService/sysNotification",this.notification.processSysNotification.bind(this.notification)),this.core.eventBus.on("forwardReceive/V2NIMFriendService/addFriend",this.handleAddFriend.bind(this)),this.core.eventBus.on("forwardReceive/V2NIMFriendService/deleteFriend",this.handleDeleteFriend.bind(this)),this.core.eventBus.on("forwardReceive/V2NIMFriendService/setFriendInfo",this.handleSetFriendInfo.bind(this)),this.core.eventBus.on("forwardReceive/V2NIMFriendService/acceptAddApplication",this.handlePassFriendApply.bind(this)),this.core.eventBus.on("forwardReceive/V2NIMFriendService/rejectAddApplication",this.handleRejectFriendApply.bind(this))}emit(e,...t){var i=`${this.name}::emit ${e.toString()}`;if("onFriendAdded"===e||"onFriendInfoChanged"===e){var r=t[0];this.logger.log(`${i}`,`${r.accountId};updateTime:${r.updateTime}`)}else this.logger.log(`${i}`,...t);return super.emit(e,...t)}get hasUserService(){var e;return!!(null===(e=this.core.V2NIMUserService)||void 0===e?void 0:e.name)}addFriend(e,t){return Te(this,void 0,void 0,function*(){if(this.checkV2(),e===this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot add yourself"}});_e(zn,{accountId:e,params:t},"",!0),yield this.core.sendCmd("v2AddFriend",{accountId:e,verifyType:t.addMode,postscript:t.postscript||""}),1===t.addMode&&(yield this.handleAddFriend(e),this.notificationModel.updateFriendAddApplicationStatus(e,4,this.core.account))})}deleteFriend(e,t){return Te(this,void 0,void 0,function*(){if(this.checkV2(),e===this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot delete yourself"}});_e(Xn,{accountId:e,params:t},"",!0),yield this.core.sendCmd("v2DeleteFriend",{accountId:e,params:t}),t.deleteAlias&&this.model.upsertFriend(e,{alias:""}),this.handleDeleteFriend(e)})}acceptAddApplication(e){return Te(this,void 0,void 0,function*(){this.checkV2(),eo(e,this.core.account);try{yield this.core.sendCmd("v2AddFriend",{accountId:e.applicantAccountId,verifyType:3,postscript:""}),this.handlePassFriendApply(e.applicantAccountId)}catch(t){throw this.handlePassFriendApply(e.applicantAccountId,t),t}})}rejectAddApplication(e,t){return Te(this,void 0,void 0,function*(){this.checkV2(),eo(e,this.core.account);try{yield this.core.sendCmd("v2AddFriend",{accountId:e.applicantAccountId,verifyType:4,postscript:t||""}),this.handleRejectFriendApply({applicantAccountId:e.applicantAccountId,recipientAccountId:e.recipientAccountId,operatorAccountId:this.core.account,postscript:t||"",timestamp:this.core.timeOrigin.getNTPTime(),read:!1,status:2})}catch(i){throw this.handleRejectFriendApply({applicantAccountId:e.applicantAccountId,recipientAccountId:e.recipientAccountId,operatorAccountId:this.core.account,postscript:t||"",timestamp:this.core.timeOrigin.getNTPTime(),read:!1,status:3},i),i}})}setFriendInfo(e,t){return Te(this,void 0,void 0,function*(){if(this.checkV2(),_e(Qn,{accountId:e,params:t},"",!0),e===this.core.account)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot set yourself"}});yield this.core.sendCmd("v2SetFriendInfo",{tag:Object.assign({accountId:e},t)}),this.handleSetFriendInfo(e,t)})}getFriendList(){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.computedFields(this.model.getFriendList())})}getFriendByIds(e){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),_e({accountIds:{type:"array",itemType:"string",required:!0,min:1}},{accountIds:e},"",!0),this.computedFields(this.model.getFriendByIds(e))})}checkFriend(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),_e({accountIds:{type:"array",itemType:"string",required:!0,min:1}},{accountIds:e},"",!0);var t={};return e.forEach(e=>{t[e]=!!this.model.getFriend(e)}),t})}getAddApplicationList(e){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),_e(to,e,"",!0),this.notificationModel.getAddApplicationList(e)})}setAddApplicationRead(){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.notificationModel.setAllApplicationRead()})}setAddApplicationReadEx(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),e?(eo(e,this.core.account),this.notificationModel.setApplicationRead(e)):this.notificationModel.setAllApplicationRead()})}getAddApplicationUnreadCount(){return Te(this,void 0,void 0,function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.notificationModel.getAddApplicationUnreadCount()})}clearAllAddApplication(){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.notificationModel.clearApplicationList()})}deleteAddApplication(e){return Te(this,void 0,void 0,function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),eo(e,this.core.account),this.notificationModel.deleteApplication(e)})}searchFriendByOption(e){return Te(this,void 0,void 0,function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),_e({keyword:{type:"string",allowEmpty:!1},searchAccountId:{type:"boolean",required:!1}},e,"",!0),void 0!==e.searchAlias&&!e.searchAlias&&!e.searchAccountId)throw new pe({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"searchAlias and searchAccountId cannot be false at the same time"}});return this.computedFields(this.model.getFriendListBySearchOption(e))})}v2OnAddFriendHandler(e){var{accountId:t,verifyType:i,postscript:r}=e.content;if(1===i)this.handleAddFriend(t),this.notificationModel.updateFriendAddApplicationStatus(t,4,this.core.account);else if(2===i){var s={applicantAccountId:this.core.account,recipientAccountId:t,operatorAccountId:this.core.account,postscript:r,timestamp:this.core.timeOrigin.getNTPTime(),status:0,read:!1};this.handleApplyFriend(s)}else if(3===i)this.handlePassFriendApply(t);else if(4===i){var n={applicantAccountId:t,recipientAccountId:this.core.account,operatorAccountId:this.core.account,postscript:r,timestamp:this.core.timeOrigin.getNTPTime(),status:2,read:!1};this.handleRejectFriendApply(n)}}v2OnDeleteFriendHandler(e){var{accountId:t}=e.content;this.handleDeleteFriend(t)}v2OnUpdateFriendInfoHandler(e){var{data:t}=e.content,i=this.model.upsertFriend(t.accountId,t);this.emit("onFriendInfoChanged",this.computedField(i))}v2SyncFriendListHandler(e){var{friends:t,timetag:i}=e.content;this.model.setFriendTimetag(i),t.forEach(e=>{e.serverExtension||(e.serverExtension=""),e.customerExtension||(e.customerExtension=""),0===e.relationShip?this.model.deleteFriend(e.accountId):this.model.upsertFriend(e.accountId,e)})}v2SyncFriendUserListHandler(e){var{users:t}=e.content;this.hasUserService&&t.forEach(e=>{this.core.V2NIMUserService.model.setUser(e)})}handleApplyFriend(e){this.emit("onFriendAddApplication",e)}handleAddFriend(e,t){return Te(this,void 0,void 0,function*(){this.model.addFriend(e),yield this.incrementSyncFriend(),yield this.core.V2NIMUserService.refreshUserInfo(e);var t=this.model.getFriend(e);t&&this.emit("onFriendAdded",this.computedField(t))})}handleDeleteFriend(e,t){t=void 0===t?1:t,this.emit("onFriendDeleted",e,t),this.model.deleteFriend(e)}handleSetFriendInfo(e,t){var i=this.model.upsertFriend(e,t);this.emit("onFriendInfoChanged",this.computedField(i))}handlePassFriendApply(e,t){var i=t?null==t?void 0:t.code:200;if(!(i>=19e4||i===de.V2NIM_ERROR_CODE_FRIEND_OPERATION_RATE_LIMIT))if(200===i||i===de.V2NIM_ERROR_CODE_FRIEND_ALREADY_EXIST)this.notificationModel.updateFriendAddApplicationStatus(e,1,this.core.account),this.handleAddFriend(e);else{if(i>=500&&i<=599&&509!==i)return;this.notificationModel.updateFriendAddApplicationStatus(e,3,this.core.account)}}handleRejectFriendApply(e,t){var i=t?null==t?void 0:t.code:200;if(!(i>=19e4||i===de.V2NIM_ERROR_CODE_FRIEND_OPERATION_RATE_LIMIT))if(200===i)this.emit("onFriendAddRejected",e),this.notificationModel.updateFriendAddApplicationStatus(e.applicantAccountId,2,this.core.account);else if(i===de.V2NIM_ERROR_CODE_FRIEND_ALREADY_EXIST)this.notificationModel.updateFriendAddApplicationStatus(e.applicantAccountId,1,this.core.account);else{if(i>=500&&i<=599&&509!==i)return;this.notificationModel.updateFriendAddApplicationStatus(e.applicantAccountId,3,this.core.account)}}incrementSyncFriend(){return Te(this,void 0,void 0,function*(){var e=yield this.core.sendCmd("v2IncFriendInfo",{timetag:this.model.getFriendTimetag()}),{friends:t,timetag:i}=e.content;this.model.setFriendTimetag(i),t.forEach(e=>{this.model.upsertFriend(e.accountId,e)})})}computedFields(e){return e.map(e=>this.computedField(e))}computedField(e){var t,i,r=null===(i=null===(t=this.core.V2NIMUserService)||void 0===t?void 0:t.model)||void 0===i?void 0:i.getUser(e.accountId);return r?Object.assign({},e,{userProfile:r}):e}},"V2NIMFriendService"),Fo.registerService(class extends ii{constructor(e){super("V2NIMSubscriptionService",e),"v2"===this.core.options.apiVersion&&mt({cmdMap:ko,cmdConfig:Do})}emit(e,...t){var i=`${this.name}::emit ${e.toString()}`;return this.logger.log(`${i}`,...t),super.emit(e,...t)}subscribeUserStatus(e){return Te(this,void 0,void 0,function*(){return this.checkLogin(),this.checkV2(),_e(wo,e,"",!0),(yield this.core.sendCmd("v2SubscribeUserStatus",{tag:{eventType:1,duration:e.duration||60,immediateSync:void 0!==e.immediateSync&&e.immediateSync},accountIds:e.accountIds})).content.failedList})}unsubscribeUserStatus(e){return Te(this,void 0,void 0,function*(){this.checkLogin(),this.checkV2(),_e(Uo,e,"",!0);var t=[];return e.accountIds.length>0?t=(yield this.core.sendCmd("v2UnsubscribeUserStatus",{tag:{eventType:1},accountIds:e.accountIds})).content.failedList:(yield this.core.sendCmd("v2UnsubscribeAllUserStatus",{tag:{eventType:1}}),t=[]),t})}publishCustomUserStatus(e){return Te(this,void 0,void 0,function*(){return this.checkLogin(),this.checkV2(),_e(xo,e,"",!0),(yield this.core.sendCmd("v2PublishEvent",{tag:Object.assign(Object.assign({},e),{eventType:1,uniqueId:De(),duration:e.duration||60,onlineOnly:void 0===e.onlineOnly||e.onlineOnly,multiSync:void 0!==e.multiSync&&e.multiSync})})).content.data})}queryUserStatusSubscriptions(e){return Te(this,void 0,void 0,function*(){this.checkLogin(),this.checkV2(),_e({accountIds:{type:"array",required:!0,itemType:"string",max:3e3}},{accountIds:e},"",!0);var t=[];if(e.length>0)for(var i=0;i({accountId:e.accountId,subscribeTime:e.subscribeTime,duration:e.duration})))}else{var s=yield this.core.sendCmd("v2QueryAllSubscribeEvent",{tag:{eventType:1}});t=t.concat(s.content.data.map(e=>({accountId:e.accountId,subscribeTime:e.subscribeTime,duration:e.duration})))}return t})}v2OnUserStatusChangeHandler(e){var t=e.content.data,{eventType:i,extensionReceived:r}=t,s=Me(t,["eventType","extensionReceived"]);1===i?this.emit("onUserStatusChanged",[Object.assign(Object.assign({},s),{extension:r})]):this.logger.log("v2OnUserStatusChangeHandler eventType = ",i,"msgEvent = ",t)}v2OnMultiUserStatusChangeHandler(e){var t=e.content.data.filter(e=>1===e.eventType).map(e=>{var{eventType:t,extensionReceived:i}=e,r=Me(e,["eventType","extensionReceived"]);return Object.assign(Object.assign({},r),{extension:i})});t.length>0&&this.emit("onUserStatusChanged",t)}},"V2NIMSubscriptionService");export{Fo as NIM,he as V2NIMConst};