UNPKG

nim-web-sdk-ng

Version:

Yunxin IM SDK next generation

16 lines 993 kB
/**
 * 
 *   Version: 10.9.71
 * 
 *   Git Hash: f2dd8dce716f63985d0823f710605b924090d68b
 * 
 *   Created At: 1/5/2026, 9:48:45 AM
 * 
 *   Target: NIM_UNIAPP_SDK.js
 *   
 */

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).NIM={})}(this,(function(e){"use strict";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function createCommonjsModule(e){var t={exports:{}};return e(t,t.exports),t.exports}var t,r,i,s,a,n,o,c,d,l,m,p,u,h,g,v,y,f,I,M,S,T,_,C,E,b,N,A,R,O,k,w,P,V,L,U,D,x,q,B,j,$,G,H,z,Y,J,W,K,Q,X,Z,ee,te,re,ie,se,ae=createCommonjsModule((function(e){var t=Object.prototype.hasOwnProperty,r="~";function Events(){}function EE(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function addListener(e,t,i,s,a){if("function"!=typeof i)throw new TypeError("The listener must be a function");var n=new EE(i,s||e,a),o=r?r+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],n]:e._events[o].push(n):(e._events[o]=n,e._eventsCount++),e}function clearEvent(e,t){0==--e._eventsCount?e._events=new Events:delete e._events[t]}function EventEmitter(){this._events=new Events,this._eventsCount=0}Object.create&&(Events.prototype=Object.create(null),(new Events).__proto__||(r=!1)),EventEmitter.prototype.eventNames=function eventNames(){var e,i,s=[];if(0===this._eventsCount)return s;for(i in e=this._events)t.call(e,i)&&s.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},EventEmitter.prototype.listeners=function listeners(e){var t=r?r+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,a=i.length,n=new Array(a);s<a;s++)n[s]=i[s].fn;return n},EventEmitter.prototype.listenerCount=function listenerCount(e){var t=r?r+e:e,i=this._events[t];return i?i.fn?1:i.length:0},EventEmitter.prototype.emit=function emit(e,t,i,s,a,n){var o=r?r+e:e;if(!this._events[o])return!1;var c,d,l=this._events[o],m=arguments.length;if(l.fn){switch(l.once&&this.removeListener(e,l.fn,void 0,!0),m){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,t),!0;case 3:return l.fn.call(l.context,t,i),!0;case 4:return l.fn.call(l.context,t,i,s),!0;case 5:return l.fn.call(l.context,t,i,s,a),!0;case 6:return l.fn.call(l.context,t,i,s,a,n),!0}for(d=1,c=new Array(m-1);d<m;d++)c[d-1]=arguments[d];l.fn.apply(l.context,c)}else{var p,u=l.length;for(d=0;d<u;d++)switch(l[d].once&&this.removeListener(e,l[d].fn,void 0,!0),m){case 1:l[d].fn.call(l[d].context);break;case 2:l[d].fn.call(l[d].context,t);break;case 3:l[d].fn.call(l[d].context,t,i);break;case 4:l[d].fn.call(l[d].context,t,i,s);break;default:if(!c)for(p=1,c=new Array(m-1);p<m;p++)c[p-1]=arguments[p];l[d].fn.apply(l[d].context,c)}}return!0},EventEmitter.prototype.on=function on(e,t,r){return addListener(this,e,t,r,!1)},EventEmitter.prototype.once=function once(e,t,r){return addListener(this,e,t,r,!0)},EventEmitter.prototype.removeListener=function removeListener(e,t,i,s){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return clearEvent(this,a),this;var n=this._events[a];if(n.fn)n.fn!==t||s&&!n.once||i&&n.context!==i||clearEvent(this,a);else{for(var o=0,c=[],d=n.length;o<d;o++)(n[o].fn!==t||s&&!n[o].once||i&&n[o].context!==i)&&c.push(n[o]);c.length?this._events[a]=1===c.length?c[0]:c:clearEvent(this,a)}return this},EventEmitter.prototype.removeAllListeners=function removeAllListeners(e){var t;return e?(t=r?r+e:e,this._events[t]&&clearEvent(this,t)):(this._events=new Events,this._eventsCount=0),this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.addListener=EventEmitter.prototype.on,EventEmitter.prefixed=r,EventEmitter.EventEmitter=EventEmitter,e.exports=EventEmitter})),ne=createCommonjsModule((function(e,t){e.exports=function(){function _regeneratorRuntime(){
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
_regeneratorRuntime=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},s=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",n=i.toStringTag||"@@toStringTag";function define(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{define({},"")}catch(e){define=function(e,t,r){return e[t]=r}}function wrap(e,t,r,i){var s=t&&t.prototype instanceof Generator?t:Generator,a=Object.create(s.prototype),n=new Context(i||[]);return a._invoke=function(e,t,r){var i="suspendedStart";return function(s,a){if("executing"===i)throw new Error("Generator is already running");if("completed"===i){if("throw"===s)throw a;return doneResult()}for(r.method=s,r.arg=a;;){var n=r.delegate;if(n){var c=maybeInvokeDelegate(n,r);if(c){if(c===o)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===i)throw i="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i="executing";var d=tryCatch(e,t,r);if("normal"===d.type){if(i=r.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:r.done}}"throw"===d.type&&(i="completed",r.method="throw",r.arg=d.arg)}}}(e,r,n),a}function tryCatch(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}e.wrap=wrap;var o={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var c={};define(c,s,(function(){return this}));var d=Object.getPrototypeOf,l=d&&d(d(values([])));l&&l!==t&&r.call(l,s)&&(c=l);var m=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(c);function defineIteratorMethods(e){["next","throw","return"].forEach((function(t){define(e,t,(function(e){return this._invoke(t,e)}))}))}function AsyncIterator(e,t){function invoke(i,s,a,n){var o=tryCatch(e[i],e,s);if("throw"!==o.type){var c=o.arg,d=c.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){invoke("next",e,a,n)}),(function(e){invoke("throw",e,a,n)})):t.resolve(d).then((function(e){c.value=e,a(c)}),(function(e){return invoke("throw",e,a,n)}))}n(o.arg)}var i;this._invoke=function(e,r){function callInvokeWithMethodAndArg(){return new t((function(t,i){invoke(e,r,t,i)}))}return i=i?i.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(e,t){var r=e.iterator[t.method];if(void 0===r){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,maybeInvokeDelegate(e,t),"throw"===t.method))return o;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return o}var i=tryCatch(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,o;var s=i.arg;return s?s.done?(t[e.resultName]=s.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):s:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function pushTryEntry(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function resetTryEntry(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function Context(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e){var t=e[s];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function next(){for(;++i<e.length;)if(r.call(e,i))return next.value=e[i],next.done=!1,next;return next.value=void 0,next.done=!0,next};return a.next=a}}return{next:doneResult}}function doneResult(){return{value:void 0,done:!0}}return GeneratorFunction.prototype=GeneratorFunctionPrototype,define(m,"constructor",GeneratorFunctionPrototype),define(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,n,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===GeneratorFunction||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,GeneratorFunctionPrototype):(e.__proto__=GeneratorFunctionPrototype,define(e,n,"GeneratorFunction")),e.prototype=Object.create(m),e},e.awrap=function(e){return{__await:e}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,a,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,i,s,a){void 0===a&&(a=Promise);var n=new AsyncIterator(wrap(t,r,i,s),a);return e.isGeneratorFunction(r)?n:n.next().then((function(e){return e.done?e.value:n.next()}))},defineIteratorMethods(m),define(m,n,"Generator"),define(m,s,(function(){return this})),define(m,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function next(){for(;t.length;){var r=t.pop();if(r in e)return next.value=r,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(resetTryEntry),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function handle(r,i){return a.type="throw",a.arg=e,t.next=r,i&&(t.method="next",t.arg=void 0),!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return handle("end");if(s.tryLoc<=this.prev){var n=r.call(s,"catchLoc"),o=r.call(s,"finallyLoc");if(n&&o){if(this.prev<s.catchLoc)return handle(s.catchLoc,!0);if(this.prev<s.finallyLoc)return handle(s.finallyLoc)}else if(n){if(this.prev<s.catchLoc)return handle(s.catchLoc,!0)}else{if(!o)throw new Error("try statement without catch or finally");if(this.prev<s.finallyLoc)return handle(s.finallyLoc)}}}},abrupt:function(e,t){for(var i=this.tryEntries.length-1;i>=0;--i){var s=this.tryEntries[i];if(s.tryLoc<=this.prev&&r.call(s,"finallyLoc")&&this.prev<s.finallyLoc){var a=s;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var n=a?a.completion:{};return n.type=e,n.arg=t,a?(this.method="next",this.next=a.finallyLoc,o):this.complete(n)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var i=r.completion;if("throw"===i.type){var s=i.arg;resetTryEntry(r)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:values(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),o}},e}function _typeof(e){return _typeof="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},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function __awaiter(e,t,r,i){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(i.next(e))}catch(e){s(e)}}function rejected(e){try{step(i.throw(e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))}var e={isDataReportEnable:!0,maxSize:100,msgListMaxSize:1e3,cacheMaxSize:1e3,maxDelay:3e5,maxInterval:3e4,minInterval:1e4,timeout:5e3,autoStart:!0,loginFailIgnoreInterval:72e5},t=12,r=8e3,i=function emptyFn(){},s=function(){function Reporter(t){_classCallCheck(this,Reporter),this.isUploadEnable=!0,this.serverAllowUpload=!1,this.initConfigLoaded=!1,this.loading=!1,this.isDestroyed=!1,this.reportConfig=e,this.configPath="dispatcher/req",this.dataReportPath="statics/report/common/form",this.traceMsgCache={},this.reqRetryCount=0,this.highPriorityMsgList=[],this.msgList=[],this.lowPriorityMsgList=[],this.cacheMsgList=[],this.lastReportTime=Date.now(),this.timer=null,this.endedAsyncMsgByModule={},this.lastFailLogin={},this.setConfig(t),this.reportConfig.isDataReportEnable&&this.reportConfig.autoStart&&this.initUploadConfig()}return _createClass(Reporter,[{key:"setConfig",value:function setConfig(e){var t=Object.assign({},this.reportConfig.common,e.common);this.reportConfig=Object.assign({},this.reportConfig,e),this.reportConfig.common=t,this.reportConfig.common.sdk_type||(this.reportConfig.common.sdk_type="im")}},{key:"reportImmediately",value:function reportImmediately(e,t){var r=this;this.reportConfig.isDataReportEnable&&this.reportConfig.request(e,Object.assign({dataType:"json",method:"POST",timeout:this.reportConfig.timeout},t)).catch((function(e){var t,i;null===(i=null===(t=r.reportConfig)||void 0===t?void 0:t.logger)||void 0===i||i.warn("Reporter immediately upload failed",e)}))}},{key:"report",value:function report(t,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(i.priority||(i.priority=this.getEventPriority(t,r)),this.reportConfig.isDataReportEnable&&t){if("login"===t&&!1===r.succeed&&r.process_id){var s=r.extension&&r.extension.find((function(e){return"TCP"===e.operation_type})),a=s&&s.target||"",n=r.process_id+a,o=this.lastFailLogin[n]||0;if(r.start_time-o<e.loginFailIgnoreInterval)return;this.lastFailLogin[n]=r.start_time}var c=Date.now();"HIGH"===i.priority?this.highPriorityMsgList.push({module:t,msg:r,createTime:c}):"NORMAL"===i.priority?this.msgList.push({module:t,msg:r,createTime:c}):"LOW"===i.priority&&this.lowPriorityMsgList.push({module:t,msg:r,createTime:c}),this.highPriorityMsgList.length>this.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 reportTraceStart(e,t){if(this.reportConfig.isDataReportEnable&&e&&!this.traceMsgCache[e]){var r=Object.assign(Object.assign({start_time:Date.now()},t),{extension:[]});this.traceMsgCache[e]=r}}},{key:"reportTraceUpdate",value:function reportTraceUpdate(e){}},{key:"reportTraceUpdateV2",value:function reportTraceUpdateV2(e,t,r){var i,s=this;if(this.reportConfig.isDataReportEnable&&this.traceMsgCache[e]){var a=this.traceMsgCache[e].extension,n=a.length,o=(new Date).getTime();0===n?t.duration=o-this.traceMsgCache[e].start_time:a[n-1].end_time?t.duration=o-a[n-1].end_time:t.duration=o-this.traceMsgCache[e].start_time,a.push(Object.assign({end_time:o},t));var c=a.length-1;(null==r?void 0:r.asyncParams)&&((i=this.traceMsgCache[e]).asyncPromiseArray||(i.asyncPromiseArray=[]),this.traceMsgCache[e].asyncPromiseArray.push(r.asyncParams.then((function(t){s.traceMsgCache[e]&&s.traceMsgCache[e].extension[c]&&Object.assign(s.traceMsgCache[e].extension[c],t)}))))}}},{key:"reportTraceEnd",value:function reportTraceEnd(e){var t,r=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.reportConfig.isDataReportEnable&&this.traceMsgCache[e])if("nos"!==e||!1===i){"boolean"==typeof i?this.traceMsgCache[e].succeed=!!i:this.traceMsgCache[e].state=i,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 a=function asyncCallback(){r.endedAsyncMsgByModule[e]&&r.endedAsyncMsgByModule[e].includes(s)&&(delete s.asyncPromiseArray,r.report(e,s,{priority:r.getEventPriority(e,s)}))};Promise.all(s.asyncPromiseArray).then(a).catch(a)}else this.report(e,s,{priority:this.getEventPriority(e,s)})}else this.traceMsgCache[e]=null}},{key:"getEventPriority",value:function getEventPriority(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 reportTraceCancel(e){this.reportConfig.isDataReportEnable&&(this.endedAsyncMsgByModule[e]=[],this.traceMsgCache[e]=null)}},{key:"pause",value:function pause(){this.reportConfig.isDataReportEnable&&(this.isUploadEnable=!1)}},{key:"restore",value:function restore(){this.reportConfig.isDataReportEnable&&(this.isUploadEnable=!0,this.initConfigLoaded||this.initUploadConfig())}},{key:"destroy",value:function destroy(){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=i,this.report=i,this.reportTraceStart=i,this.reportTraceUpdate=i,this.reportTraceEnd=i,this.pause=i,this.restore=i,this.destroy=i,this.reqRetryCount=0,this.cacheMsgList=[],this.traceMsgCache={},this.lowPriorityMsgList=[],this.msgList=[],this.highPriorityMsgList=[],this.reportConfig={},this.isDestroyed=!0)}},{key:"initUploadConfig",value:function initUploadConfig(){var e,i;return __awaiter(this,void 0,void 0,_regeneratorRuntime().mark((function _callee(){var s,a,n,o,c,d=this;return _regeneratorRuntime().wrap((function _callee$(l){for(;;)switch(l.prev=l.next){case 0:if(!this.loading){l.next=2;break}return l.abrupt("return");case 2:this.loading=!0,s=this.reportConfig.common||{},a=this.reportConfig.compassDataEndpoint.split(",").map((function(e){return"".concat(e,"/").concat(d.configPath)})),n=_regeneratorRuntime().mark((function _loop(n){return _regeneratorRuntime().wrap((function _loop$(o){for(;;)switch(o.prev=o.next){case 0:if(!d.initConfigLoaded&&!d.isDestroyed){o.next=2;break}return o.abrupt("return","break");case 2:return o.prev=2,o.next=5,d.reportConfig.request(a[n],{method:"GET",dataType:"json",params:{deviceId:s.dev_id,sdkVer:s.sdk_ver,platform:s.platform,hostEnv:s.host_env,appkey:s.app_key},timeout:d.reportConfig.timeout}).then((function(e){var t,r;if(!d.isDestroyed){if(200===e.status&&e.data&&200===e.data.code){d.initConfigLoaded=!0;var i=e.data.data||{};d.reportConfig.maxSize=i.maxSize>1e3?1e3:i.maxSize,d.reportConfig.maxInterval=i.maxInterval>1e4?1e4:i.maxInterval,d.reportConfig.maxInterval=i.maxInterval<10?10:i.maxInterval,d.reportConfig.minInterval=i.minInterval<2?2:i.minInterval,d.reportConfig.maxDelay=i.maxDelay||300,d.reportConfig.maxInterval=1e3*d.reportConfig.maxInterval,d.reportConfig.minInterval=1e3*d.reportConfig.minInterval,d.reportConfig.maxDelay=1e3*d.reportConfig.maxDelay,i.endpoint?d.dataReportEndpoint=i.endpoint:d.dataReportEndpoint=a[n],d.serverAllowUpload=!0,d.loading=!1,d.reportHeartBeat()}else 200===e.status&&(d.initConfigLoaded=!0);null===(r=null===(t=d.reportConfig)||void 0===t?void 0:t.logger)||void 0===r||r.log("Get reporter upload config success")}})).catch((function(e){var i,s;d.isDestroyed||(d.loading=!1,null===(s=null===(i=d.reportConfig)||void 0===i?void 0:i.logger)||void 0===s||s.error("Get reporter upload config failed",e),d.reqRetryCount<t&&(d.reqRetryCount++,setTimeout((function(){d.isDestroyed||d.initUploadConfig()}),r)))}));case 5:o.next=14;break;case 7:if(o.prev=7,o.t0=o.catch(2),!d.isDestroyed){o.next=11;break}return o.abrupt("return",{v:void 0});case 11:d.loading=!1,null===(i=null===(e=d.reportConfig)||void 0===e?void 0:e.logger)||void 0===i||i.error("Exec reporter request failed",o.t0),d.reqRetryCount<t&&(d.reqRetryCount++,setTimeout((function(){d.isDestroyed||d.initUploadConfig()}),r));case 14:case"end":return o.stop()}}),_loop,null,[[2,7]])})),o=0;case 7:if(!(o<a.length)){l.next=17;break}return l.delegateYield(n(o),"t0",9);case 9:if("break"!==(c=l.t0)){l.next=12;break}return l.abrupt("break",17);case 12:if("object"!==_typeof(c)){l.next=14;break}return l.abrupt("return",c.v);case 14:o++,l.next=7;break;case 17:case"end":return l.stop()}}),_callee,this)})))}},{key:"reportHeartBeat",value:function reportHeartBeat(){var e=this;this.isDestroyed||(this.timer=setTimeout((function(){e.reportHeartBeat()}),this.reportConfig.minInterval),this.doReport())}},{key:"doReport",value:function doReport(){if(!this.isDestroyed){var e=this.highPriorityMsgList.length+this.msgList.length+this.lowPriorityMsgList.length+this.cacheMsgList.length>2*this.reportConfig.maxSize?this.reportConfig.minInterval:this.reportConfig.maxInterval;Date.now()-this.lastReportTime>=e&&this.upload()}}},{key:"getUploadMsg",value:function getUploadMsg(){var e=this,t={},r=Date.now();this.highPriorityMsgList=this.highPriorityMsgList.filter((function(t){return r-t.createTime<e.reportConfig.maxDelay})),this.msgList=this.msgList.filter((function(t){return r-t.createTime<e.reportConfig.maxDelay})),this.lowPriorityMsgList=this.lowPriorityMsgList.filter((function(t){return r-t.createTime<e.reportConfig.maxDelay})),this.cacheMsgList=this.cacheMsgList.filter((function(t){return r-t.createTime<e.reportConfig.maxDelay}));var i=this.highPriorityMsgList.slice(0,this.reportConfig.maxSize);if(this.highPriorityMsgList=this.highPriorityMsgList.slice(i.length),i.length<this.reportConfig.maxSize){var s=this.reportConfig.maxSize-i.length;i=i.concat(this.msgList.slice(0,s)),this.msgList=this.msgList.slice(s)}if(i.length<this.reportConfig.maxSize){var a=this.reportConfig.maxSize-i.length;i=i.concat(this.lowPriorityMsgList.slice(0,a)),this.lowPriorityMsgList=this.lowPriorityMsgList.slice(a)}if(i.length<this.reportConfig.maxSize){var n=this.reportConfig.maxSize-i.length;i=i.concat(this.cacheMsgList.slice(0,n)),this.cacheMsgList=this.cacheMsgList.slice(n)}return i.forEach((function(e){t[e.module]?t[e.module].push(e.msg):t[e.module]=[e.msg]})),{uploadMsgArr:i,uploadMsg:t}}},{key:"upload",value:function upload(){var e,t,r=this;if(this.isUploadEnable&&this.serverAllowUpload&&!(this.lastReportTime&&Date.now()-this.lastReportTime<this.reportConfig.minInterval)){var i=this.getUploadMsg(),s=i.uploadMsgArr,a=i.uploadMsg;if(s.length){this.lastReportTime=Date.now();try{var n="".concat(this.dataReportEndpoint,"/").concat(this.dataReportPath);this.reportConfig.request(n,{dataType:"json",method:"POST",data:{common:this.reportConfig.common,event:a},headers:{sdktype:"im"},timeout:this.reportConfig.timeout}).catch((function(e){var t,i;r.cacheMsgList=r.cacheMsgList.concat(s).slice(0,r.reportConfig.cacheMaxSize),null===(i=null===(t=r.reportConfig)||void 0===t?void 0:t.logger)||void 0===i||i.warn("Reporter upload failed",e)}))}catch(r){null===(t=null===(e=this.reportConfig)||void 0===e?void 0:e.logger)||void 0===t||t.warn("Exec reporter request failed",r)}clearTimeout(this.timer),this.reportHeartBeat()}}}}]),Reporter}();return s}()}));!function(e){e[e.V2NIM_DATA_SYNC_TYPE_LEVEL_FULL=0]="V2NIM_DATA_SYNC_TYPE_LEVEL_FULL",e[e.V2NIM_DATA_SYNC_TYPE_LEVEL_BASIC=1]="V2NIM_DATA_SYNC_TYPE_LEVEL_BASIC"}(t||(t={})),function(e){e[e.V2NIM_DATA_SYNC_TYPE_MAIN=1]="V2NIM_DATA_SYNC_TYPE_MAIN",e[e.V2NIM_DATA_SYNC_TYPE_TEAM_MEMBER=2]="V2NIM_DATA_SYNC_TYPE_TEAM_MEMBER",e[e.V2NIM_DATA_SYNC_TYPE_SUPER_TEAM_MEMBER=3]="V2NIM_DATA_SYNC_TYPE_SUPER_TEAM_MEMBER"}(r||(r={})),function(e){e[e.V2NIM_DATA_SYNC_STATE_WAITING=1]="V2NIM_DATA_SYNC_STATE_WAITING",e[e.V2NIM_DATA_SYNC_STATE_SYNCING=2]="V2NIM_DATA_SYNC_STATE_SYNCING",e[e.V2NIM_DATA_SYNC_STATE_COMPLETED=3]="V2NIM_DATA_SYNC_STATE_COMPLETED"}(i||(i={})),function(e){e[e.V2NIM_CONVERSATION_TYPE_UNKNOWN=0]="V2NIM_CONVERSATION_TYPE_UNKNOWN",e[e.V2NIM_CONVERSATION_TYPE_P2P=1]="V2NIM_CONVERSATION_TYPE_P2P",e[e.V2NIM_CONVERSATION_TYPE_TEAM=2]="V2NIM_CONVERSATION_TYPE_TEAM",e[e.V2NIM_CONVERSATION_TYPE_SUPER_TEAM=3]="V2NIM_CONVERSATION_TYPE_SUPER_TEAM"}(s||(s={})),function(e){e[e.V2NIM_MESSAGE_STATUS_DEFAULT=0]="V2NIM_MESSAGE_STATUS_DEFAULT",e[e.V2NIM_MESSAGE_STATUS_REVOKE=1]="V2NIM_MESSAGE_STATUS_REVOKE",e[e.V2NIM_MESSAGE_STATUS_BACKFILL=2]="V2NIM_MESSAGE_STATUS_BACKFILL"}(a||(a={})),function(e){e[e.V2NIM_FRIEND_MODE_TYPE_ADD=1]="V2NIM_FRIEND_MODE_TYPE_ADD",e[e.V2NIM_FRIEND_MODE_TYPE_APPLY=2]="V2NIM_FRIEND_MODE_TYPE_APPLY"}(n||(n={})),function(e){e[e.V2NIM_FRIEND_ADD_APPLICATION_TYPE_LEGACY=0]="V2NIM_FRIEND_ADD_APPLICATION_TYPE_LEGACY",e[e.V2NIM_FRIEND_ADD_APPLICATION_TYPE_FROM_SELF=1]="V2NIM_FRIEND_ADD_APPLICATION_TYPE_FROM_SELF",e[e.V2NIM_FRIEND_ADD_APPLICATION_TYPE_TO_SELF=2]="V2NIM_FRIEND_ADD_APPLICATION_TYPE_TO_SELF",e[e.V2NIM_FRIEND_ADD_APPLICATION_TYPE_ALL=3]="V2NIM_FRIEND_ADD_APPLICATION_TYPE_ALL"}(o||(o={})),function(e){e[e.V2NIM_FRIEND_ADD_APPLICATION_STATUS_INIT=0]="V2NIM_FRIEND_ADD_APPLICATION_STATUS_INIT",e[e.V2NIM_FRIEND_ADD_APPLICATION_STATUS_AGREED=1]="V2NIM_FRIEND_ADD_APPLICATION_STATUS_AGREED",e[e.V2NIM_FRIEND_ADD_APPLICATION_STATUS_REJECTED=2]="V2NIM_FRIEND_ADD_APPLICATION_STATUS_REJECTED",e[e.V2NIM_FRIEND_ADD_APPLICATION_STATUS_EXPIRED=3]="V2NIM_FRIEND_ADD_APPLICATION_STATUS_EXPIRED",e[e.V2NIM_FRIEND_ADD_APPLICATION_STATUS_DIRECT_ADD=4]="V2NIM_FRIEND_ADD_APPLICATION_STATUS_DIRECT_ADD"}(c||(c={})),function(e){e[e.V2NIM_FRIEND_DELETION_TYPE_BY_SELF=1]="V2NIM_FRIEND_DELETION_TYPE_BY_SELF",e[e.V2NIM_FRIEND_DELETION_TYPE_BY_PEER=2]="V2NIM_FRIEND_DELETION_TYPE_BY_PEER"}(d||(d={})),function(e){e[e.V2NIM_FRIEND_VERIFY_TYPE_ADD=1]="V2NIM_FRIEND_VERIFY_TYPE_ADD",e[e.V2NIM_FRIEND_VERIFY_TYPE_APPLY=2]="V2NIM_FRIEND_VERIFY_TYPE_APPLY",e[e.V2NIM_FRIEND_VERIFY_TYPE_ACCEPT=3]="V2NIM_FRIEND_VERIFY_TYPE_ACCEPT",e[e.V2NIM_FRIEND_VERIFY_TYPE_REJECT=4]="V2NIM_FRIEND_VERIFY_TYPE_REJECT"}(l||(l={})),function(e){e[e.V2NIM_LOGIN_AUTH_TYPE_DEFAULT=0]="V2NIM_LOGIN_AUTH_TYPE_DEFAULT",e[e.V2NIM_LOGIN_AUTH_TYPE_DYNAMIC_TOKEN=1]="V2NIM_LOGIN_AUTH_TYPE_DYNAMIC_TOKEN",e[e.V2NIM_LOGIN_AUTH_TYPE_THIRD_PARTY=2]="V2NIM_LOGIN_AUTH_TYPE_THIRD_PARTY"}(m||(m={})),function(e){e[e.V2NIM_LOGIN_STATUS_LOGOUT=0]="V2NIM_LOGIN_STATUS_LOGOUT",e[e.V2NIM_LOGIN_STATUS_LOGINED=1]="V2NIM_LOGIN_STATUS_LOGINED",e[e.V2NIM_LOGIN_STATUS_LOGINING=2]="V2NIM_LOGIN_STATUS_LOGINING",e[e.V2NIM_LOGIN_STATUS_UNLOGIN=3]="V2NIM_LOGIN_STATUS_UNLOGIN"}(p||(p={})),function(e){e[e.V2NIM_LOGIN_CLIENT_TYPE_UNKNOWN=0]="V2NIM_LOGIN_CLIENT_TYPE_UNKNOWN",e[e.V2NIM_LOGIN_CLIENT_TYPE_ANDROID=1]="V2NIM_LOGIN_CLIENT_TYPE_ANDROID",e[e.V2NIM_LOGIN_CLIENT_TYPE_IOS=2]="V2NIM_LOGIN_CLIENT_TYPE_IOS",e[e.V2NIM_LOGIN_CLIENT_TYPE_PC=4]="V2NIM_LOGIN_CLIENT_TYPE_PC",e[e.V2NIM_LOGIN_CLIENT_TYPE_WP=8]="V2NIM_LOGIN_CLIENT_TYPE_WP",e[e.V2NIM_LOGIN_CLIENT_TYPE_WEB=16]="V2NIM_LOGIN_CLIENT_TYPE_WEB",e[e.V2NIM_LOGIN_CLIENT_TYPE_RESTFUL=32]="V2NIM_LOGIN_CLIENT_TYPE_RESTFUL",e[e.V2NIM_LOGIN_CLIENT_TYPE_MAC_OS=64]="V2NIM_LOGIN_CLIENT_TYPE_MAC_OS",e[e.V2NIM_LOGIN_CLIENT_TYPE_HARMONY_OS=65]="V2NIM_LOGIN_CLIENT_TYPE_HARMONY_OS"}(u||(u={})),function(e){e[e.V2NIM_KICKED_OFFLINE_REASON_CLIENT_EXCLUSIVE=1]="V2NIM_KICKED_OFFLINE_REASON_CLIENT_EXCLUSIVE",e[e.V2NIM_KICKED_OFFLINE_REASON_SERVER=2]="V2NIM_KICKED_OFFLINE_REASON_SERVER",e[e.V2NIM_KICKED_OFFLINE_REASON_CLIENT=3]="V2NIM_KICKED_OFFLINE_REASON_CLIENT",e[e.V2NIM_KICKED_OFFLINE_REASON_CLIENT_QUIETLY=4]="V2NIM_KICKED_OFFLINE_REASON_CLIENT_QUIETLY"}(h||(h={})),function(e){e[e.V2NIM_LOGIN_CLIENT_CHANGE_LIST=1]="V2NIM_LOGIN_CLIENT_CHANGE_LIST",e[e.V2NIM_LOGIN_CLIENT_CHANGE_LOGIN=2]="V2NIM_LOGIN_CLIENT_CHANGE_LOGIN",e[e.V2NIM_LOGIN_CLIENT_CHANGE_LOGOUT=3]="V2NIM_LOGIN_CLIENT_CHANGE_LOGOUT"}(g||(g={})),function(e){e[e.V2NIM_CONNECT_STATUS_DISCONNECTED=0]="V2NIM_CONNECT_STATUS_DISCONNECTED",e[e.V2NIM_CONNECT_STATUS_CONNECTED=1]="V2NIM_CONNECT_STATUS_CONNECTED",e[e.V2NIM_CONNECT_STATUS_CONNECTING=2]="V2NIM_CONNECT_STATUS_CONNECTING",e[e.V2NIM_CONNECT_STATUS_WAITING=3]="V2NIM_CONNECT_STATUS_WAITING"}(v||(v={})),function(e){e[e.NIM_MESSAGE_AI_STREAM_STATUS_STREAMING=-1]="NIM_MESSAGE_AI_STREAM_STATUS_STREAMING",e[e.NIM_MESSAGE_AI_STREAM_STATUS_NONE=0]="NIM_MESSAGE_AI_STREAM_STATUS_NONE",e[e.NIM_MESSAGE_AI_STREAM_STATUS_PLACEHOLDER=1]="NIM_MESSAGE_AI_STREAM_STATUS_PLACEHOLDER",e[e.NIM_MESSAGE_AI_STREAM_STATUS_CANCEL=2]="NIM_MESSAGE_AI_STREAM_STATUS_CANCEL",e[e.NIM_MESSAGE_AI_STREAM_STATUS_UPDATE=3]="NIM_MESSAGE_AI_STREAM_STATUS_UPDATE",e[e.NIM_MESSAGE_AI_STREAM_STATUS_COMPLETE=4]="NIM_MESSAGE_AI_STREAM_STATUS_COMPLETE",e[e.NIM_MESSAGE_AI_STREAM_STATUS_EXCEPTION=5]="NIM_MESSAGE_AI_STREAM_STATUS_EXCEPTION"}(y||(y={})),function(e){e[e.V2NIM_MESSAGE_AI_STREAM_STOP_OP_DEFAULT=0]="V2NIM_MESSAGE_AI_STREAM_STOP_OP_DEFAULT",e[e.V2NIM_MESSAGE_AI_STREAM_STOP_OP_REVOKE=1]="V2NIM_MESSAGE_AI_STREAM_STOP_OP_REVOKE",e[e.V2NIM_MESSAGE_AI_STREAM_STOP_OP_UPDATE=2]="V2NIM_MESSAGE_AI_STREAM_STOP_OP_UPDATE"}(f||(f={})),function(e){e[e.V2NIM_MESSAGE_AI_REGEN_OP_UPDATE=1]="V2NIM_MESSAGE_AI_REGEN_OP_UPDATE",e[e.V2NIM_MESSAGE_AI_REGEN_OP_NEW=2]="V2NIM_MESSAGE_AI_REGEN_OP_NEW"}(I||(I={})),function(e){e[e.V2NIM_MESSAGE_AI_STATUS_UNKNOW=0]="V2NIM_MESSAGE_AI_STATUS_UNKNOW",e[e.V2NIM_MESSAGE_AI_STATUS_AT=1]="V2NIM_MESSAGE_AI_STATUS_AT",e[e.V2NIM_MESSAGE_AI_STATUS_RESPONSE=2]="V2NIM_MESSAGE_AI_STATUS_RESPONSE"}(M||(M={})),function(e){e[e.V2NIM_MESSAGE_TYPE_INVALID=-1]="V2NIM_MESSAGE_TYPE_INVALID",e[e.V2NIM_MESSAGE_TYPE_TEXT=0]="V2NIM_MESSAGE_TYPE_TEXT",e[e.V2NIM_MESSAGE_TYPE_IMAGE=1]="V2NIM_MESSAGE_TYPE_IMAGE",e[e.V2NIM_MESSAGE_TYPE_AUDIO=2]="V2NIM_MESSAGE_TYPE_AUDIO",e[e.V2NIM_MESSAGE_TYPE_VIDEO=3]="V2NIM_MESSAGE_TYPE_VIDEO",e[e.V2NIM_MESSAGE_TYPE_LOCATION=4]="V2NIM_MESSAGE_TYPE_LOCATION",e[e.V2NIM_MESSAGE_TYPE_NOTIFICATION=5]="V2NIM_MESSAGE_TYPE_NOTIFICATION",e[e.V2NIM_MESSAGE_TYPE_FILE=6]="V2NIM_MESSAGE_TYPE_FILE",e[e.V2NIM_MESSAGE_TYPE_AVCHAT=7]="V2NIM_MESSAGE_TYPE_AVCHAT",e[e.V2NIM_MESSAGE_TYPE_TIPS=10]="V2NIM_MESSAGE_TYPE_TIPS",e[e.V2NIM_MESSAGE_TYPE_ROBOT=11]="V2NIM_MESSAGE_TYPE_ROBOT",e[e.V2NIM_MESSAGE_TYPE_CALL=12]="V2NIM_MESSAGE_TYPE_CALL",e[e.V2NIM_MESSAGE_TYPE_CUSTOM=100]="V2NIM_MESSAGE_TYPE_CUSTOM"}(S||(S={})),function(e){e[e.V2NIM_SEARCH_KEYWORD_MATCH_TYPE_OR=0]="V2NIM_SEARCH_KEYWORD_MATCH_TYPE_OR",e[e.V2NIM_SEARCH_KEYWORD_MATCH_TYPE_AND=1]="V2NIM_SEARCH_KEYWORD_MATCH_TYPE_AND"}(T||(T={})),function(e){e[e.V2NIM_SEARCH_DIRECTION_BACKWARD=0]="V2NIM_SEARCH_DIRECTION_BACKWARD",e[e.V2NIM_SEARCH_DIRECTION_FORWARD=1]="V2NIM_SEARCH_DIRECTION_FORWARD"}(_||(_={})),function(e){e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_UNDEFINED=-1]="V2NIM_MESSAGE_NOTIFICATION_TYPE_UNDEFINED",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_INVITE=0]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_INVITE",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_KICK=1]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_KICK",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_LEAVE=2]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_LEAVE",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_UPDATE_TINFO=3]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_UPDATE_TINFO",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_DISMISS=4]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_DISMISS",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_APPLY_PASS=5]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_APPLY_PASS",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_OWNER_TRANSFER=6]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_OWNER_TRANSFER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_ADD_MANAGER=7]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_ADD_MANAGER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_REMOVE_MANAGER=8]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_REMOVE_MANAGER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_INVITE_ACCEPT=9]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_INVITE_ACCEPT",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_BANNED_TEAM_MEMBER=10]="V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_BANNED_TEAM_MEMBER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_INVITE=401]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_INVITE",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_KICK=402]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_KICK",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_LEAVE=403]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_LEAVE",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_UPDATE_TINFO=404]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_UPDATE_TINFO",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_DISMISS=405]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_DISMISS",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_APPLY_PASS=410]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_APPLY_PASS",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_OWNER_TRANSFER=406]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_OWNER_TRANSFER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_ADD_MANAGER=407]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_ADD_MANAGER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_REMOVE_MANAGER=408]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_REMOVE_MANAGER",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_INVITE_ACCEPT=411]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_INVITE_ACCEPT",e[e.V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_BANNED_TEAM_MEMBER=409]="V2NIM_MESSAGE_NOTIFICATION_TYPE_SUPER_TEAM_BANNED_TEAM_MEMBER"}(C||(C={})),function(e){e[e.V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_UNKNOWN=0]="V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_UNKNOWN",e[e.V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_SUCCESS=1]="V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_SUCCESS",e[e.V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_FAILED=2]="V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_FAILED",e[e.V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_UPLOADING=3]="V2NIM_MESSAGE_ATTACHMENT_UPLOAD_STATE_UPLOADING"}(E||(E={})),function(e){e[e.V2NIM_MESSAGE_SENDING_STATE_UNKNOWN=0]="V2NIM_MESSAGE_SENDING_STATE_UNKNOWN",e[e.V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED=1]="V2NIM_MESSAGE_SENDING_STATE_SUCCEEDED",e[e.V2NIM_MESSAGE_SENDING_STATE_FAILED=2]="V2NIM_MESSAGE_SENDING_STATE_FAILED",e[e.V2NIM_MESSAGE_SENDING_STATE_SENDING=3]="V2NIM_MESSAGE_SENDING_STATE_SENDING"}(b||(b={})),function(e){e[e.V2NIM_QUERY_DIRECTION_DESC=0]="V2NIM_QUERY_DIRECTION_DESC",e[e.V2NIM_QUERY_DIRECTION_ASC=1]="V2NIM_QUERY_DIRECTION_ASC"}(N||(N={})),function(e){e[e.V2NIM_CLEAR_HISTORY_MODE_ALL=0]="V2NIM_CLEAR_HISTORY_MODE_ALL",e[e.V2NIM_CLEAR_HISTORY_MODE_LOCAL=1]="V2NIM_CLEAR_HISTORY_MODE_LOCAL",e[e.V2NIM_CLEAR_HISTORY_MODE_LOCAL_IRREPARABLY=2]="V2NIM_CLEAR_HISTORY_MODE_LOCAL_IRREPARABLY"}(A||(A={})),function(e){e[e.V2NIM_MESSAGE_REVOKE_TYPE_UNDEFINED=0]="V2NIM_MESSAGE_REVOKE_TYPE_UNDEFINED",e[e.V2NIM_MESSAGE_REVOKE_TYPE_P2P_BOTHWAY=1]="V2NIM_MESSAGE_REVOKE_TYPE_P2P_BOTHWAY",e[e.V2NIM_MESSAGE_REVOKE_TYPE_TEAM_BOTHWAY=2]="V2NIM_MESSAGE_REVOKE_TYPE_TEAM_BOTHWAY",e[e.V2NIM_MESSAGE_REVOKE_TYPE_SUPERTEAM_BOTHWAY=3]="V2NIM_MESSAGE_REVOKE_TYPE_SUPERTEAM_BOTHWAY",e[e.V2NIM_MESSAGE_REVOKE_TYPE_P2P_ONEWAY=4]="V2NIM_MESSAGE_REVOKE_TYPE_P2P_ONEWAY",e[e.V2NIM_MESSAGE_REVOKE_TYPE_TEAM_ONEWAY=5]="V2NIM_MESSAGE_REVOKE_TYPE_TEAM_ONEWAY"}(R||(R={})),function(e){e[e.V2NIM_MESSAGE_PIN_STATE_NOT_PINNED=0]="V2NIM_MESSAGE_PIN_STATE_NOT_PINNED",e[e.V2NIM_MESSAGE_PIN_STATE_PINNED=1]="V2NIM_MESSAGE_PIN_STATE_PINNED",e[e.V2NIM_MESSAGE_PIN_STATE_UPDATED=2]="V2NIM_MESSAGE_PIN_STATE_UPDATED"}(O||(O={})),function(e){e[e.V2NIM_QUICK_COMMENT_STATE_ADD=1]="V2NIM_QUICK_COMMENT_STATE_ADD",e[e.V2NIM_QUICK_COMMENT_STATE_REMOVE=2]="V2NIM_QUICK_COMMENT_STATE_REMOVE"}(k||(k={})),function(e){e[e.V2NIM_CLIENT_ANTISPAM_OPERATE_NONE=0]="V2NIM_CLIENT_ANTISPAM_OPERATE_NONE",e[e.V2NIM_CLIENT_ANTISPAM_OPERATE_REPLACE=1]="V2NIM_CLIENT_ANTISPAM_OPERATE_REPLACE",e[e.V2NIM_CLIENT_ANTISPAM_OPERATE_CLIENT_SHIELD=2]="V2NIM_CLIENT_ANTISPAM_OPERATE_CLIENT_SHIELD",e[e.V2NIM_CLIENT_ANTISPAM_OPERATE_SERVER_SHIELD=3]="V2NIM_CLIENT_ANTISPAM_OPERATE_SERVER_SHIELD"}(w||(w={})),function(e){e[e.V2NIM_SORT_ORDER_DESC=0]="V2NIM_SORT_ORDER_DESC",e[e.V2NIM_SORT_ORDER_ASC=1]="V2NIM_SORT_ORDER_ASC"}(P||(P={})),function(e){e[e.P2P_DELETE_MSG=7]="P2P_DELETE_MSG",e[e.TEAM_DELETE_MSG=8]="TEAM_DELETE_MSG",e[e.SUPERTEAM_DELETE_MSG=12]="SUPERTEAM_DELETE_MSG",e[e.P2P_ONE_WAY_DELETE_MSG=13]="P2P_ONE_WAY_DELETE_MSG",e[e.TEAM_ONE_WAY_DELETE_MSG=14]="TEAM_ONE_WAY_DELETE_MSG",e[e.CUSTOM_P2P_MSG=100]="CUSTOM_P2P_MSG",e[e.CUSTOM_TEAM_MSG=101]="CUSTOM_TEAM_MSG",e[e.CUSTOM_SUPERTEAM_MSG=103]="CUSTOM_SUPERTEAM_MSG"}(V||(V={})),function(e){e[e.NIM_MESSAGE_STREAM_STATUS_STREAMING=-1]="NIM_MESSAGE_STREAM_STATUS_STREAMING",e[e.NIM_MESSAGE_STREAM_STATUS_NONE=0]="NIM_MESSAGE_STREAM_STATUS_NONE",e[e.NIM_MESSAGE_STREAM_STATUS_PLACEHOLDER=1]="NIM_MESSAGE_STREAM_STATUS_PLACEHOLDER",e[e.NIM_MESSAGE_STREAM_STATUS_CANCEL=2]="NIM_MESSAGE_STREAM_STATUS_CANCEL",e[e.NIM_MESSAGE_AI_STREAM_STATUS_UPDATE=3]="NIM_MESSAGE_AI_STREAM_STATUS_UPDATE",e[e.NIM_MESSAGE_STREAM_STATUS_COMPLETE=4]="NIM_MESSAGE_STREAM_STATUS_COMPLETE",e[e.NIM_MESSAGE_STREAM_STATUS_EXCEPTION=5]="NIM_MESSAGE_STREAM_STATUS_EXCEPTION"}(L||(L={})),function(e){e[e.V2NIM_MESSAGE_SOURCE_UNKNOWN=0]="V2NIM_MESSAGE_SOURCE_UNKNOWN",e[e.V2NIM_MESSAGE_SOURCE_ONLINE=1]="V2NIM_MESSAGE_SOURCE_ONLINE",e[e.V2NIM_MESSAGE_SOURCE_OFFLINE=2]="V2NIM_MESSAGE_SOURCE_OFFLINE",e[e.V2NIM_MESSAGE_SOURCE_ROAMING=3]="V2NIM_MESSAGE_SOURCE_ROAMING"}(U||(U={})),function(e){e[e.V2NIM_TEAM_MESSAGE_MUTE_MODE_OFF=0]="V2NIM_TEAM_MESSAGE_MUTE_MODE_OFF",e[e.V2NIM_TEAM_MESSAGE_MUTE_MODE_ON=1]="V2NIM_TEAM_MESSAGE_MUTE_MODE_ON",e[e.V2NIM_TEAM_MESSAGE_MUTE_MODE_NORMAL_ON=2]="V2NIM_TEAM_MESSAGE_MUTE_MODE_NORMAL_ON"}(D||(D={})),function(e){e[e.V2NIM_P2P_MESSAGE_MUTE_MODE_OFF=0]="V2NIM_P2P_MESSAGE_MUTE_MODE_OFF",e[e.V2NIM_P2P_MESSAGE_MUTE_MODE_ON=1]="V2NIM_P2P_MESSAGE_MUTE_MODE_ON"}(x||(x={})),function(e){e[e.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_NORMAL=1]="V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_NORMAL",e[e.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_SUPER=2]="V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_SUPER",e[e.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL=3]="V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL"}(q||(q={})),function(e){e[e.V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_ALL=0]="V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_ALL",e[e.V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_NORMAL=1]="V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_NORMAL",e[e.V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_MANAGER=2]="V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_MANAGER"}(B||(B={})),function(e){e[e.V2NIM_TEAM_TYPE_INVALID=0]="V2NIM_TEAM_TYPE_INVALID",e[e.V2NIM_TEAM_TYPE_ADVANCED=1]="V2NIM_TEAM_TYPE_ADVANCED",e[e.V2NIM_TEAM_TYPE_SUPER=2]="V2NIM_TEAM_TYPE_SUPER"}(j||(j={})),function(e){e[e.V2NIM_TEAM_JOIN_MODE_FREE=0]="V2NIM_TEAM_JOIN_MODE_FREE",e[e.V2NIM_TEAM_JOIN_MODE_APPLY=1]="V2NIM_TEAM_JOIN_MODE_APPLY",e[e.V2NIM_TEAM_JOIN_MODE_INVITE=2]="V2NIM_TEAM_JOIN_MODE_INVITE"}($||($={})),function(e){e[e.V2NIM_TEAM_AGREE_MODE_AUTH=0]="V2NIM_TEAM_AGREE_MODE_AUTH",e[e.V2NIM_TEAM_AGREE_MODE_NO_AUTH=1]="V2NIM_TEAM_AGREE_MODE_NO_AUTH"}(G||(G={})),function(e){e[e.V2NIM_TEAM_INVITE_MODE_MANAGER=0]="V2NIM_TEAM_INVITE_MODE_MANAGER",e[e.V2NIM_TEAM_INVITE_MODE_ALL=1]="V2NIM_TEAM_INVITE_MODE_ALL"}(H||(H={})),function(e){e[e.V2NIM_TEAM_UPDATE_INFO_MODE_MANAGER=0]="V2NIM_TEAM_UPDATE_INFO_MODE_MANAGER",e[e.V2NIM_TEAM_UPDATE_INFO_MODE_ALL=1]="V2NIM_TEAM_UPDATE_INFO_MODE_ALL"}(z||(z={})),function(e){e[e.V2NIM_TEAM_CHAT_BANNED_MODE_UNBAN=0]="V2NIM_TEAM_CHAT_BANNED_MODE_UNBAN",e[e.V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL=1]="V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL",e[e.V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_ALL=3]="V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_ALL"}(Y||(Y={})),function(e){e[e.V2NIM_TEAM_UPDATE_EXTENSION_MODE_MANAGER=0]="V2NIM_TEAM_UPDATE_EXTENSION_MODE_MANAGER",e[e.V2NIM_TEAM_UPDATE_EXTENSION_MODE_ALL=1]="V2NIM_TEAM_UPDATE_EXTENSION_MODE_ALL"}(J||(J={})),function(e){e[e.V2NIM_TEAM_MEMBER_ROLE_NORMAL=0]="V2NIM_TEAM_MEMBER_ROLE_NORMAL",e[e.V2NIM_TEAM_MEMBER_ROLE_OWNER=1]="V2NIM_TEAM_MEMBER_ROLE_OWNER",e[e.V2NIM_TEAM_MEMBER_ROLE_MANAGER=2]="V2NIM_TEAM_MEMBER_ROLE_MANAGER"}(W||(W={})),function(e){e[e.V2NIM_TEAM_JOIN_ACTION_TYPE_APPLICATION=0]="V2NIM_TEAM_JOIN_ACTION_TYPE_APPLICATION",e[e.V2NIM_TEAM_JOIN_ACTION_TYPE_REJECT_APPLICATION=1]="V2NIM_TEAM_JOIN_ACTION_TYPE_REJECT_APPLICATION",e[e.V2NIM_TEAM_JOIN_ACTION_TYPE_INVITATION=2]="V2NIM_TEAM_JOIN_ACTION_TYPE_INVITATION",e[e.V2NIM_TEAM_JOIN_ACTION_TYPE_REJECT_INVITATION=3]="V2NIM_TEAM_JOIN_ACTION_TYPE_REJECT_INVITATION",e[e.V2NIM_TEAM_JOIN_ACTION_TYPE_ACCEPT_APPLICATION=4]="V2NIM_TEAM_JOIN_ACTION_TYPE_ACCEPT_APPLICATION",e[e.V2NIM_TEAM_JOIN_ACTION_TYPE_ACCEPT_INVITATION=5]="V2NIM_TEAM_JOIN_ACTION_TYPE_ACCEPT_INVITATION"}(K||(K={})),function(e){e[e.V2NIM_TEAM_JOIN_ACTION_STATUS_INIT=0]="V2NIM_TEAM_JOIN_ACTION_STATUS_INIT",e[e.V2NIM_TEAM_JOIN_ACTION_STATUS_AGREED=1]="V2NIM_TEAM_JOIN_ACTION_STATUS_AGREED",e[e.V2NIM_TEAM_JOIN_ACTION_STATUS_REJECTED=2]="V2NIM_TEAM_JOIN_ACTION_STATUS_REJECTED",e[e.V2NIM_TEAM_JOIN_ACTION_STATUS_EXPIRED=3]="V2NIM_TEAM_JOIN_ACTION_STATUS_EXPIRED"}(Q||(Q={})),function(e){e[e.teamApply=0]="teamApply",e[e.teamApplyReject=1]="teamApplyReject",e[e.teamInvite=2]="teamInvite",e[e.teamInviteReject=3]="teamInviteReject",e[e.tlistUpdate=4]="tlistUpdate",e[e.superTeamApply=15]="superTeamApply",e[e.superTeamApplyReject=16]="superTeamApplyReject",e[e.superTeamInvite=17]="superTeamInvite",e[e.superTeamInviteReject=18]="superTeamInviteReject"}(X||(X={})),function(e){e[e.V2NIM_AI_MODEL_TYPE_UNKNOW=0]="V2NIM_AI_MODEL_TYPE_UNKNOW",e[e.V2NIM_AI_MODEL_TYPE_QWEN=1]="V2NIM_AI_MODEL_TYPE_QWEN",e[e.V2NIM_AI_MODEL_TYPE_AZURE=2]="V2NIM_AI_MODEL_TYPE_AZURE",e[e.V2NIM_AI_MODEL_TYPE_PRIVATE=3]="V2NIM_AI_MODEL_TYPE_PRIVATE"}(Z||(Z={})),function(e){e[e.V2NIM_AI_MODEL_STREAM_CALL_STATUS_NONE=0]="V2NIM_AI_MODEL_STREAM_CALL_STATUS_NONE",e[e.V2NIM_AI_MODEL_STREAM_CALL_STATUS_CANCEL=2]="V2NIM_AI_MODEL_STREAM_CALL_STATUS_CANCEL",e[e.V2NIM_AI_MODEL_STREAM_CALL_STATUS_COMPLETE=4]="V2NIM_AI_MODEL_STREAM_CALL_STATUS_COMPLETE",e[e.V2NIM_AI_MODEL_STREAM_CALL_STATUS_EXCEPTION=5]="V2NIM_AI_MODEL_STREAM_CALL_STATUS_EXCEPTION"}(ee||(ee={})),function(e){e.V2NIM_AI_MODEL_ROLE_TYPE_SYSTEM="system",e.V2NIM_AI_MODEL_ROLE_TYPE_USER="user",e.V2NIM_AI_MODEL_ROLE_TYPE_ASSISTANT="assistant"}(te||(te={})),function(e){e[e.V2NIM_SIGNALLING_EVENT_TYPE_UNKNOWN=0]="V2NIM_SIGNALLING_EVENT_TYPE_UNKNOWN",e[e.V2NIM_SIGNALLING_EVENT_TYPE_CLOSE=1]="V2NIM_SIGNALLING_EVENT_TYPE_CLOSE",e[e.V2NIM_SIGNALLING_EVENT_TYPE_JOIN=2]="V2NIM_SIGNALLING_EVENT_TYPE_JOIN",e[e.V2NIM_SIGNALLING_EVENT_TYPE_INVITE=3]="V2NIM_SIGNALLING_EVENT_TYPE_INVITE",e[e.V2NIM_SIGNALLING_EVENT_TYPE_CANCEL_INVITE=4]="V2NIM_SIGNALLING_EVENT_TYPE_CANCEL_INVITE",e[e.V2NIM_SIGNALLING_EVENT_TYPE_REJECT=5]="V2NIM_SIGNALLING_EVENT_TYPE_REJECT",e[e.V2NIM_SIGNALLING_EVENT_TYPE_ACCEPT=6]="V2NIM_SIGNALLING_EVENT_TYPE_ACCEPT",e[e.V2NIM_SIGNALLING_EVENT_TYPE_LEAVE=7]="V2NIM_SIGNALLING_EVENT_TYPE_LEAVE",e[e.V2NIM_SIGNALLING_EVENT_TYPE_CONTROL=8]="V2NIM_SIGNALLING_EVENT_TYPE_CONTROL",e[e.V2NIM_SIGNALLING_EVENT_TYPE_KICK=9]="V2NIM_SIGNALLING_EVENT_TYPE_KICK"}(re||(re={})),function(e){e[e.V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO=1]="V2NIM_SIGNALLING_CHANNEL_TYPE_AUDIO",e[e.V2NIM_SIGNALLING_CHANNEL_TYPE_VIDEO=2]="V2NIM_SIGNALLING_CHANNEL_TYPE_VIDEO",e[e.V2NIM_SIGNALLING_CHANNEL_TYPE_CUSTOM=3]="V2NIM_SIGNALLING_CHANNEL_TYPE_CUSTOM"}(ie||(ie={})),function(e){e[e.V2NIM_USER_STATUS_TYPE_UNKNOWN=0]="V2NIM_USER_STATUS_TYPE_UNKNOWN",e[e.V2NIM_USER_STATUS_TYPE_LOGIN=1]="V2NIM_USER_STATUS_TYPE_LOGIN",e[e.V2NIM_USER_STATUS_TYPE_LOGOUT=2]="V2NIM_USER_STATUS_TYPE_LOGOUT",e[e.V2NIM_USER_STATUS_TYPE_DISCONNECT=3]="V2NIM_USER_STATUS_TYPE_DISCONNECT"}(se||(se={}));var oe={V2NIM_ERROR_CODE_UNKNOWN:{code:0,message:"unknown error"},V2NIM_ERROR_CODE_SUCCESS:{code:200,message:"success"},V2NIM_ERROR_CODE_HANDSHAKE:{code:201,message:"handshake error"},V2NIM_ERROR_CODE_REQUEST_TEMPERARY_FORBIDDEN:{code:398,message:"request temprary forbidden"},V2NIM_ERROR_CODE_SERVER_UNIT_ERROR:{code:399,message:"server unit error"},V2NIM_ERROR_CODE_FORBIDDEN:{code:403,message:"forbidden"},V2NIM_ERROR_CODE_NOT_FOUND:{code:404,message:"not found"},V2NIM_ERROR_CODE_PARAMETER_ERROR:{code:414,message:"parameter error"},V2NIM_ERROR_CODE_RATE_LIMIT_REACHED:{code:416,message:"rate limit reached"},V2NIM_ERROR_CODE_MULTI_LOGIN_FORBIDDEN:{code:417,message:"multi login forbidden"},V2NIM_ERROR_CODE_SERVER_INTERNAL_ERROR:{code:500,message:"server internal error"},V2NIM_ERROR_CODE_SERVER_BUSY:{code:503,message:"server busy"},V2NIM_ERROR_CODE_APP_UNREACHABLE:{code:511,message:"app server unreachable"},V2NIM_ERROR_CODE_SERVICE_UNAVAILABLE:{code:514,message:"service unavailable"},V2NIM_ERROR_CODE_PROTOCOL_BLACKHOLE_FILTERED:{code:599,message:"protocol filtered by blackhole rule"},V2NIM_ERROR_CODE_NO_PERMISSION:{code:997,message:"appid has no permission to call the protocol"},V2NIM_ERROR_CODE_UNPACK_ERROR:{code:998,message:"unpack error"},V2NIM_ERROR_CODE_PACK_ERROR:{code:999,message:"pack error"},V2NIM_ERROR_CODE_IM_DISABLED:{code:101301,message:"IM disabled"},V2NIM_ERROR_CODE_SERVICE_ADDRESS_INVALID:{code:101302,message:"service address invalid"},V2NIM_ERROR_CODE_APPKEY_NOT_EXIST:{code:101303,message:"appkey not exist"},V2NIM_ERROR_CODE_BUNDLEID_CHECK_FAILED:{code:101304,message:"bundleid check failed"},V2NIM_ERROR_CODE_APPKEY_BLOCKED:{code:101403,message:"appkey blocked"},V2NIM_ERROR_CODE_INVALID_TOKEN:{code:102302,message:"invalid token"},V2NIM_ERROR_CODE_ROBOT_NOT_ALLOWED:{code:102303,message:"robot not allowed"},V2NIM_ERROR_CODE_ACCOUNT_NOT_EXIST:{code:102404,message:"account not exist"},V2NIM_ERROR_CODE_ACCOUNT_CHAT_BANNED:{code:102421,message:"account chat banned"},V2NIM_ERROR_CODE_ACCOUNT_BANNED:{code:102422,message:"account banned"},V2NIM_ERROR_CODE_ACCOUNT_IN_BLOCK_LIST:{code:102426,message:"account in block list"},V2NIM_ERROR_CODE_USER_PROFILE_NOT_EXIST:{code:103404,message:"user profile not exist"},V2NIM_ERROR_CODE_USER_PROFILE_HIT_ANTISPAM:{code:103451,message:"user profile hit antispam"},V2NIM_ERROR_CODE_PEER_FRIEND_LIMIT:{code:104301,message:"peer friend limit"},V2NIM_ERROR_CODE_FRIEND_APPLICATION_NOT_EXIST:{code:104302,message:"friend application not exist"},V2NIM_ERROR_CODE_FRIEND_NOT_EXIST:{code:104404,message:"friend not exist"},V2NIM_ERROR_CODE_FRIEND_ALREADY_EXIST:{code:104405,message:"friend already exist"},V2NIM_ERROR_CODE_SELF_FRIEND_OPERATION_NOT_ALLOWED:{code:104429,message:"self friend operation not allowed"},V2NIM_ERROR_CODE_FRIEND_LIMIT:{code:104435,message:"friend limit"},V2NIM_ERROR_CODE_FRIEND_OPERATION_RATE_LIMIT:{code:104449,message:"friend operation rate limit"},V2NIM_ERROR_CODE_FRIEND_HIT_ANTISPAM:{code:104451,message:"friend hit antispam"},V2NIM_ERROR_CODE_SELF_MUTE_OPERATION_NOT_ALLOWED:{code:105429,message:"self mute operation not allowed"},V2NIM_ERROR_CODE_MUTE_LIST_LIMIT:{code:105435,message:"mute list limit"},V2NIM_ERROR_CODE_SELF_BLOCK_LIST_OPERATION_NOT_ALLOWED:{code:106429,message:"self block list operation not allowed"},V2NIM_ERROR_CODE_BLOCK_LIST_LIMIT:{code:106435,message:"block list limit"},V2NIM_ERROR_CODE_REVOKE_THIRD_PARTY_MESSAGE_NOT_ALLOWED:{code:107301,message:"revoke third party message not allowed"},V2NIM_ERROR_CODE_SHORT_TO_LONG_URL_FAILED:{code:107307,message:"short to long URL failed"},V2NIM_ERROR_CODE_URL_INVALID:{code:107308,message:"URL invalid"},V2NIM_ERROR_CODE_DURATION_OUT_OF_RANGE:{code:107309,message:"duration out of range"},V2NIM_ERROR_CODE_GET_FILE_META_INFO_FAILED:{code:107310,message:"get file meta info failed"},V2NIM_ERROR_CODE_AUDIO_FILE_SIZE_LIMIT:{code:107311,message:"audio file size limit"},V2NIM_ERROR_CODE_VOICE_TO_TEXT_TIMEOUT:{code:107312,message:"voice to text timeout"},V2NIM_ERROR_CODE_VOICE_TO_TEXT_FAILED:{code:107313,message:"voice to text failed"},V2NIM_ERROR_CODE_REVOKE_EXCEED_TIME_LIMIT:{code:107314,message:"revoke message exceed time limit"},V2NIM_ERROR_CODE_REVOKE_MESSAGE_NOT_ALLOWED:{code:107315,message:"revoke specific message not allowed"},V2NIM_ERROR_CODE_FORCE_PUSH_LIST_LIMIT:{code:107316,message:"force push list limit"},V2NIM_ERROR_CODE_TEAM_MESSAGE_RECEIPT_RATE_LIMIT:{code:107317,message:"team message receipt rate limit"},V2NIM_ERROR_CODE_SNAPSHOT_NOT_EXIST:{code:107318,message:"snapshot not exist"},V2NIM_ERROR_CODE_PIN_LIMIT:{code:107319,message:"pin limit"},V2NIM_ERROR_CODE_PIN_NOT_EXIST:{code:107320,message:"pin not exist"},V2NIM_ERROR_CODE_QUICK_COMMENT_LIMIT:{code:107321,message:"quick comment limit"},V2NIM_ERROR_CODE_PIN_ALREADY_EXIST:{code:107322,message:"pin already exist"},V2NIM_ERROR_CODE_VOICE_TO_TEXT_FUNCTION_DISABLED:{code:107333,message:"voice to text function disabled"},V2NIM_ERROR_CODE_CLOUD_SEARCH_FUNCTION_DISABLED:{code:107334,message:"cloud search function disabled"},V2NIM_ERROR_CODE_ONE_WAY_DELETE_FUNCTION_DISABLED:{code:107335,message:"one-way delete function disabled"},V2NIM_ERRPR_CODE_ONEWAY_DELETION_NOT_ALLOW_FOR_TARGET_MESSAGES:{code:107338,message:"one-way deletion is not allowed for target messages"},V2NIM_ERRPR_CODE_SENDER_CANNOT_INCLUDED_IN_TARGET_LIST:{code:107339,message:"The message sender cannot be included in the target list"},V2NIM_ERROR_CODE_ROBOT_CANNOT_SEND_TARGET_MESSAGE:{code:107340,message:"Robot can not send target message"},V2NIM_ERROR_CODE_PIN_TARGET_MESSAGE_NOT_ALLOWED:{code:107345,message:"Pin target message is not allowed"},V2NIM_ERROR_CODE_TARGET_MESSAGE_NOT_ALLOWED_REPLY:{code:107346,message:"Target message not allowed reply"},V2NIM_ERROR_CODE_TARGET_MESSAGE_NOT_ALLOWED_QUICK_COMMENT:{code:107347,message:"Target message not allowed quick comment"},V2NIM_ERROR_CODE_REVOKE_MESSAGE_TO_SELF_NOT_ALLOWED:{code:107429,message:"revoke message to self not allowed"},V2NIM_ERROR_CODE_APP_CHAT_BANNED:{code:107410,message:"app chat banned"},V2NIM_ERROR_CODE_QUICK_COMMENT_FUNCTION_DISABLED:{code:107326,message:"quick comment function disabled"},V2NIM_ERROR_CODE_PIN_FUNCTION_DISABLED:{code:107327,message:"PIN function disabled"},V2NIM_ERROR_CODE_TEAM_READ_RECEIPT_FUNCTION_DISABLED:{code:107324,message:"read receipt for team messages function disabled"},V2NIM_ERROR_CODE_P2P_READ_RECEIPT_FUNCTION_DISABLED:{code:107325,message:"read receipt for p2p messages function disabled"},V2NIM_ERROR_CODE_RATE_LIMIT_FOR_MESSAGING_REACHED:{code:107323,message:"rate limit for messaging reached"},V2NIM_ERROR_CODE_MESSAGE_HIT_ANTISPAM:{code:107451,message:"message hit antispam"},V2NIM_ERROR_CODE_MESSAGE_NOT_EXIST:{code:107404,message:"message not exist"},V2NIM_ERROR_CODE_UNSENDING_MESSAGE_EXPIRED:{code:107406,message:"unsending message expired"},V2NIM_ERROR_CODE_TEAM_MARK_READ_FAILED:{code:107302,message:"sending message failed for marking message read failed for too many team members"},V2NIM_ERROR_CODE_SENDER_OR_MANAGER_PERMISSION_ONLY_REVOKE:{code:107303,message:"only sender or manager can revoke message"},V2NIM_ERROR_CODE_DELETE_SELF_MESSAGE_NOT_ALLOWED:{code:107328,message:"delete self message not allowed"},V2NIM_ERROR_CODE_NOT_CHATBOT_ACCOUNT:{code:107329,message:"is not chatbot account"},V2NIM_ERROR_CODE_MESSAGE_SENSE_REQUIRED:{code:107330,message:"sender or receiver must sense message"},V2NIM_ERROR_CODE_HIGH_PRIORITY_MESSAGE_RATE_LIMIT:{code:107304,message:"rate limit of high-priority messages exceeded"},ACK_MESSAGE_BE_HIGH_PRIORITY:{code:107305,message:"ack message should be high-priority"},V2NIM_ERROR_CODE_DUPLICATE_CLIENT_MESSAGE_ID:{code:107306,message:"duplicate client message ID"},V2NIM_ERROR_CODE_INVALID_TIME_RANGE:{code:107439,message:"invalid time range"},V2NIM_ERROR_CODE_NOT_ADVANCED_TEAM:{code:108302,message:"not advanced team"},V2NIM_ERROR_CODE_TEAM_MANAGER_LIMIT:{code:108303,message:"team manager limit"},V2NIM_ERROR_CODE_JOINED_TEAM_LIMIT:{code:108305,message:"joined team limit"},V2NIM_ERROR_CODE_TEAM_NORMAL_MEMBER_CHAT_BANNED:{code:108306,message:"team normal member chat banned"},V2NIM_ERROR_CODE_INVITED_ACCOUNT_NOT_FRIEND:{code:108307,message:"invited account not friend"},V2NIM_ERROR_CODE_REJECT_ALL_TEAM_APPLICATIONS:{code:108308,message:"reject all team applications"},V2NIM_ERROR_CODE_TARGETING_MESSAGE_FOR_TEAM_DISABLED:{code:108318,message:"Targeting messages for group chat is disabled"},V2NIM_ERROR_CODE_INCLUSIVE_AS_FALSE_NOT_ALLOWED_FOR_SUPER_TEAM:{code:108319,message:'Setting "inclusive" to false for super teams is not allowed'},V2NIM_ERROR_CODE_CANNOT_MAKE_SUPER_TEAM_MESSAGE_VISIBLE_TO_NEW_MEMBERS:{code:108320,message:"Cannot make super team targeted messages visible to new members"},V2NIM_ERROR_CODE_CANNOT_ALLOW_TARGETED_MESSAGES_INCLUSIVE_TO_NEW_MEMBERS:{code:108321,message:"Cannot allow targeted messages inclusive to new members"},V2NIM_ERROR_CODE_TEAM_NOT_EXIST:{code:108404,message:"team not exist"},V2NIM_ERROR_CODE_TEAM_ALREADY_CHAT_BANNED:{code:108420,message:"team already chat banned"},V2NIM_ERROR_CODE_ALL_TEAM_MEMBER_CHAT_BANNED:{code:108423,message:"all team member chat banned"},V2NIM_ERROR_CODE_EXTENDED_SUPER_TEAM_LIMIT:{code:108434,message:"extended super team limit"},V2NIM_ERROR_CODE_CREATED_TEAM_LIMIT:{code:108435,message:"created team limit"},V2NIM_ERROR_CODE_TEAM_INVITATION_LIMIT:{code:108437,message:"team invitation limit"},V2NIM_ERROR_CODE_TEAM_HIT_ANTISPAM:{code:108451,message:"team hit antispam"},V2NIM_ERROR_CODE_EXTENDED_SUPER_TEAM_LIMIT_NOT_CONFIGURED:{code:108304,message:"extended super team limit not configured"},V2NIM_ERROR_CODE_SUPER_TEAM_SERVICE_DISABLED:{code:108311,message:"super team service disabled"},V2NIM_ERROR_CODE_TEAM_READ_RECEIPT_RECORD_NOT_FOUND:{code:108301,message:"read receipt record for the team message not found"},V2NIM_ERROR_CODE_NOT_MANAGER:{code:108430,message:"unable to assign owner manager"},V2NIM_ERROR_CODE_ONLINE_MEMBER_COUNT_DISABLED:{code:108406,message:"number of online users service disabled"},V2NIM_ERROR_CODE_TRANSFER_DISABLED:{code:108310,message:"unable to transfer the ownership to owner"},V2NIM_ERROR_CODE_CREATE_TEAM_DISABLED:{code:108309,message:"unable to create team with more than %s people"},V2NIM_ERROR_CODE_EXTENDED_SUPER_TEAM_CREATE_FAILED:{code:108313,message:"/ extended super team creation failed,use open api to create the team"},V2NIM_ERROR_CODE_TEAM_MESSAGE_READ_RECEIPT_DISABLED:{code:108312,message:"read receipt for team messages function disabled"},V2NIM_ERROR_CODE_RETRY:{code:108449,message:"an error occurred, try again"},V2NIM_ERROR_CODE_CHAT_BAN_LIST_CONTAIN_NOT_TEAM_MEMBER:{code:109301,message:"list of chat banned users contains non team members"},V2NIM_ERROR_CODE_CHAT_BAN_LIST_CONTAIN_OPERATOR:{code:109303,message:"list of chat banned users contains the operator"},V2NIM_ERROR_CODE_CHAT_BAN_LIST_CONTAIN_TEAM_OWNER:{code:109304,message:"list of chat banned users contains the team owner"},V2NIM_ERROR_CODE_OPERATION_ON_TEAM_MANAGER_NOT_ALLOWED:{code:109305,message:"operation on team manager not allowed"},V2NIM_ERROR_CODE_NO_TEAM_INVITE_PERMISSION:{code:109306,message:"no team invite permission"},V2NIM_ERROR_CODE_TEAM_OWNER_QUIT_NOT_ALLOWED:{code:109307,message:"team owner quit not allowed"},V2NIM_ERROR_CODE_TEAM_OWNER_IN_KICK_LIST:{code:109308,message:"list of kicked user contains the team owner"},V2NIM_ERROR_CODE_INVITE_ROBOT_ACCOUNT_NOT_ALLOWED:{code:109309,message:"invite robot account not allowed"},V2NIM_ERROR_CODE_KICK_OPERATOR_NOT_ALLOWED:{code:109310,message:"kick operator not allowed"},V2NIM_ERROR_CODE_TEAM_MEMBER_ALREADY_EXIST:{code:109311,message:"team member already exist"},V2NIM_ERROR_CODE_TEAM_INVITATION_OR_APPLICATION_NOT_EXIST:{code:109313,message:"team invitation or application not exist"},V2NIM_ERROR_CODE_OPERATION_ON_TEAM_OWNER_NOT_ALLOWED:{code:109314,message:"operation on team owner not allowed"},V2NIM_ERROR_CODE_FORCED_PUSH_LIST_INCLUDES_NON_TARGETED_ACCOUNTS:{code:109318,message:"The forced push list includes non-targeted accounts"},V2NIM_ERROR_CODE_TEAM_MEMBER_NOT_EXIST:{code:109404,message:"team member not exist"},V2NIM_ERROR_CODE_TEAM_MEMBER_CHAT_BANNED:{code:109424,message:"team member chat banned"},V2NIM_ERROR_CODE_TEAM_OWNER_OPERATION_PERMISSION_REQUIRED:{code:109427,message:"team owner operation permission required"},V2NIM_ERROR_CODE_TEAM_OWNER_OR_MANAGER_OPERATION_PERMISSION_REQUIRED:{code:109432,message:"team owner or manager operation permission required"},V2NIM_ERROR_CODE_TEAM_MEMBER_CONCURRENT_OPERATION_FAILED:{code:109449,message:"team member concurrent operation failed"},V2NIM_ERROR_CODE_TEAM_MEMBER_HIT_ANTISPAM:{code:109451,message:"team member hit antispam"},V2NIM_ERROR_CODE_CONVERSATION_AND_ACCOUNT_MISMATCH:{code:110302,message:"conversation and account mismatch"},V2NIM_ERROR_CODE_CONVERSATION_STICK_TOP_LIMIT:{code:110303,message:"conversation stick top limit"},V2NIM_ERROR_CODE_CONVERSATION_BELONGED_GROUP_LIMIT:{code:110304,message:"conversation belonged group limit"},V2NIM_ERROR_CODE_CONVERSATION_IS_NOT_STICK_TOP:{code:110305,message:"conversation is not stick top"},V2NIM_ERROR_CODE_STICK_TOP_DISABLED:{code:110306,message:"conversation stick top disabled"},V2NIM_ERROR_CODE_CONVERSATION_NOT_EXIST:{code:110404,message:"conversation not exist"},V2NIM_ERROR_CODE_CHATROOM_LINK_UNAVAILABLE:{code:113304,message:"chatroom link unavailable"},V2NIM_ERROR_CODE_IM_CONNECTION_ABNORMAL:{code:113305,message:"IM connection abnormal"},V2NIM_ERROR_CODE_CHATROOM_NOT_EXIST:{code:113404,message:"chatroom not exist"},V2NIM_ERROR_CODE_CHATROOM_CLOSED:{code:113406,message:"chatroom closed"},V2NIM_ERROR_CODE_CHATROOM_REPEATED_OPERATION:{code:113409,message:"chatroom repeated operation"},V2NIM_ERROR_CODE_CHATROOM_DISABLED:{code:113410,message:"chatroom disabled"},V2NIM_ERROR_CODE_ALL_CHATROOM_MEMBER_CHAT_BANNED:{code:113423,message:"all chatroom member chat banned"},V2NIM_ERROR_CODE_CHATROOM_HIT_ANTISPAM:{code:113451,message:"chatroom hit antispam"},V2NIM_ERROR_CODE_ANONYMOUS_MEMBER_FORBIDDEN:{code:114303,message:"anonymous member forbidden"},V2NIM_ERROR_CODE_CHATROOM_MEMBER_NOT_EXIST:{code:114404,message:"chatroom member not exist"},V2NIM_ERROR_CODE_CHATROOM_MEMBER_REPEATED_OPERATION:{code:114405,message:"chatroom member repeated operation"},V2NIM_ERROR_CODE_CHATROOM_MEMBER_CHAT_BANNED:{code:114421,message:"chatroom member chat banned"},V2NIM_ERROR_CODE_ACCOUNT_IN_CHATROOM_BLOCK_LIST:{code:114426,message:"account in chatroom block list"},V2NIM_ERROR_CODE_CHATROOM_OWNER_OPERATION_PERMISSION_REQUIRED:{code:114427,message:"chatroom owner operation permission required"},V2NIM_ERROR_CODE_SELF_IN_CHATROOM_MEMBER_OPERATION_LIST:{code:114429,message:"self in chatroom member operation list"},V2NIM_ERROR_CODE_CHATROOM_OWNER_OR_MANAGER_OPERATION_PERMISSION_REQUIRED:{code:114432,message:"chatroom owner or manager operation permission required"},V2NIM_ERROR_CODE_CHATROOM_MEMBER_LIMIT:{code:114437,message:"chatroom member limit"},V2NIM_ERROR_CODE_CHATROOM_MEMBER_CONCURRENT_OPERATION_FAILED:{code:114449,message:"chatroom member concurrent operation failed"},V2NIM_ERROR_CODE_CHATROOM_MEMBER_HIT_ANTISPAM:{code:114451,message:"chatroom member hit antispam"},V2NIM_ERROR_CODE_CONVERSATION_GROUP_NOT_EXIST:{code:116404,message:"conversation group not exist"},V2NIM_ERROR_CODE_CONVERSATION_GROUP_LIMIT:{code:116435,message:"conversation group limit"},V2NIM_ERROR_CODE_CONVERSATIONS_IN_GROUP_LIMIT:{code:116437,message:"conversations in group limit"},V2NIM_ERROR_CODE_COLLECTION_LIMIT:{code:189301,message:"collection limit"},V2NIM_ERROR_CODE_COLLECTION_NOT_EXIST:{code:189302,message:"collection not exist"},V2NIM_ERROR_CODE_COLLECTION_CONCURRENT_OPERATION_FAILED:{code:189449,message:"collection concurrent operation failed"},V2NIM_ERROR_CODE_INTERNAL:{code:190001,message:"internal error"},V2NIM_ERROR_CODE_ILLEGAL_STATE:{code:190002,message:"illegal state"},V2NIM_ERROR_CODE_MISUSE:{code:191001,message:"misuse"},V2NIM_ERROR_CODE_CANCELLED:{code:191002,message:"operation cancelled"},V2NIM_ERROR_CODE_CALLBACK_FAILED:{code:191003,message:"callback failed"},V2NIM_ERROR_CODE_INVALID_PARAMETER:{code:191004,message:"invalid parameter"},V2NIM_ERROR_CODE_TIMEOUT:{code:191005,message:"timeout"},V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST:{code:191006,message:"resource not exist"},V2NIM_ERROR_CODE_RESOURCE_ALREADY_EXIST:{code:191007,message:"resource already exist"},V2NIM_ERROR_CODE_CONNECT_FAILED:{code:192001,message:"connect failed"},V2NIM_ERROR_CODE_CONNECT_TIMEOUT:{code:192002,message:"connect timeout"},V2NIM_ERROR_CODE_DISCONNECT:{code:192003,message:"disconnect"},V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT:{code:192004,message:"protocol timeout"},V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED:{code:192005,message:"protocol send failed"},V2NIM_ERROR_CODE_REQUEST_FAILED:{code:192006,message:"request failed"},V2NIM_ERROR_CODE_FILE_NOT_FOUND:{code:194001,message:"file not found"},V2NIM_ERROR_CODE_FILE_CREATE_FAILED:{code:194002,message:"file create failed"},V2NIM_ERROR_CODE_FILE_OPEN_FAILED:{code:194003,message:"file open failed"},V2NIM_ERROR_CODE_FILE_WRITE_FAILED:{code:194004,message:"file write failed"},V2NIM_ERROR_CODE_FILE_READ_FAILED:{code:194005,message:"file read failed"},V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:{code:194006,message:"file upload failed"},V2NIM_ERROR_CODE_FILE_DOWNLOAD_FAILED:{code:194007,message:"file download failed"},V2NIM_ERROR_CODE_CLIENT_ANTISPAM:{code:195001,message:"client anti-spam"},V2NIM_ERROR_CODE_SERVER_ANTISPAM:{code:195002,message:"server anti-spam"},V2NIM_ERROR_CODE_STREAM_OUTPUT_STOPPED:{code:189318,message:"Streaming text response stopped"},V2NIM_ERROR_CODE_STREAM_OUTPUT_GENERATED:{code:189319,message:"Streaming text response generated"},V2NIM_ERROR_CODE_STREAM_OUTPUT_ABORTED:{code:189320,message:"Streaming text response aborted due to exception"},V2NIM_ERROR_CODE_INTERRUPTION_REJECTED:{code:189321,message:"Non-streaming messages cannot be interrupted"}},ce=Object.keys(oe),de=ce.reduce((function(e,t){var r=oe[t];return e[t]=r.code,e}),{}),le=ce.reduce((function(e,t){var r=oe[t];return e[r.code]=r.message,e}),{}),me=Object.freeze({__proto__:null,V2NIMErrorCode:de,V2NIMErrorDesc:le,get V2NIMDataSyncLevel(){return t},get V2NIMDataSyncType(){return r},get V2NIMDataSyncState(){return i},get V2NIMConversationType(){return s},get V2NIMLastMessageState(){return a},get V2NIMFriendAddMode(){return n},get V2NIMFriendAddApplicationType(){return o},get V2NIMFriendAddApplicationStatus(){return c},get V2NIMFriendDeletionType(){return d},get V2NIMFriendVerifyType(){return l},get V2NIMLoginAuthType(){return m},get V2NIMLoginStatus(){return p},get V2NIMLoginClientType(){return u},get V2NIMKickedOfflineReason(){return h},get V2NIMLoginClientChange(){return g},get V2NIMConnectStatus(){return v},get V2NIMMessageType(){return S},get V2NIMMessageNotificationType(){return C},get V2NIMMessageAttachmentUploadState(){return E},get V2NIMMessageSendingState(){return b},get V2NIMQueryDirection(){return N},get V2NIMMessageRevokeType(){return R},get V2NIMMessagePinState(){return O},get V2NIMMessageQuickCommentType(){return k},get V2NIMClientAntispamOperateType(){return w},get V2NIMSortOrder(){return P},get V2NIMSystemMessageType(){return V},get V2NIMMessageAIStreamStatus(){return y},get V2NIMMessageAIStreamStopOpType(){return f},get V2NIMMessageAIRegenOpType(){return I},get V2NIMMessageAIStatus(){return M},get V2NIMSearchKeywordMatchType(){return T},get V2NIMClearHistoryMode(){return A},get V2NIMMessageStreamStatus(){return L},get V2NIMTeamMessageMuteMode(){return D},get V2NIMP2PMessageMuteMode(){return x},get V2NIMTeamMemberRoleQueryType(){return B},get V2NIMTeamType(){return j},get V2NIMTeamJoinMode(){return $},get V2NIMTeamAgreeMode(){return G},get V2NIMTeamInviteMode(){return H},get V2NIMTeamUpdateInfoMode(){return z},get V2NIMTeamChatBannedMode(){return Y},get V2NIMTeamUpdateExtensionMode(){return J},get V2NIMTeamJoinActionType(){return K},get V2NIMTeamJoinActionStatus(){return Q},get V2NIMTeamNotificationType(){return X},get V2NIMTeamMemberRole(){return W},get V2NIMTeamJoinActionTeamType(){return q},get V2NIMAIModelRoleType(){return te},get V2NIMAIModelType(){return Z},get V2NIMAIModelStreamCallStatus(){return ee},get V2NIMSignallingChannelType(){return ie},get V2NIMSignallingEventType(){return re},get V2NIMUserStatusType(){return se}});class V2NIMErrorImpl extends Error{constructor(e){super(e.desc),this.name="V2NIMError",this.code=e.code||0,this.desc=e.desc||le[this.code]||pe[this.code]||"",this.message=this.desc,this.detail=e.detail||{}}toString(){var e,t=`${this.name}\n code: ${this.code}\n message: "${this.message}"\n detail: ${this.detail?JSON.stringify(this.detail):""}`;return(null===(e=null==this?void 0:this.detail)||void 0===e?void 0:e.rawError)&&(t+=`\n rawError: ${this.detail.rawError.message}`),t}}class ValidateError extends V2NIMErrorImpl{constructor(e,t={},r){super({code:de.V2NIM_ERROR_CODE_PARAMETER_ERROR,detail:{reason:e,rules:r,data:t}}),this.name="validateError",this.message=this.message+"\n"+JSON.stringify(this.detail,null,2),this.data=t,this.rules=r}}class ValidateErrorV2 extends V2NIMErrorImpl{constructor(e){var t,r,i;super({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:null===(t=e.detail)||void 0===t?void 0:t.reason,rules:null===(r=e.detail)||void 0===r?void 0:r.rules,data:null===(i=e.detail)||void 0===i?void 0:i.data}}),this.name="ValidateErrorV2"}}class FormatError extends V2NIMErrorImpl{constructor(e,t,r){super({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:e,key:t,rules:r}}),this.name="formatError"}}class UploadError extends V2NIMErrorImpl{constructor(e){super(Object.assign({code:400},e)),this.desc=this.desc||"upload file error",this.message=this.desc,this.name="uploadError"}}class CustomError extends V2NIMErrorImpl{constructor(e,t={},r=400){super({code:r,desc:e,detail:t}),this.name="customError",this.data=t}}var pe={200:null,406:null,808:null,810:null,302:"The user name or password is incorrect.",405:"Parameter length too long",408:"Client request timed out",415:"Client network unavailable",422:"Account disabled",508:"Expiration date",509:"Invalid",7101:"Be pulled black",700:"Partial failure of batch operation",801:"The number of people in the team has reached the upper limit",802:"No permission",803:"The team does not exist or has not changed",804:"The user is not in the team",805:"Team type mismatch",806:"The number of teams created has reached the limit",807:"Team member not valid",809:"Already in the team",811:"The number of accounts in the forced push list exceeds the limit",812:"The team is muted",813:"Due to the limited number of team, some pull people successfully",814:"Disable team message read service",815:"Maximum number of team administrators",816:"Batch operation partial failure",9102:"Channel failure",9103:"This call has been answered / rejected at another end",10201:"Signaling: target NIM client is offline",10202:"Signaling: push is unreachable",10404:"Signaling: channel not exists",10405:"Signaling: channel already exists",10406:"Signaling: member of channel not exists",10407:"Signaling: member of channel already exists",10408:"Signaling: the invitation request does not exist or has expired",10409:"Signaling: the invitation request has been rejected",10410:"Signaling: the invitation request has been accepted",10414:"Signaling: request parameter error",10417:"Signaling: uid conflict",10419:"Signaling: the number of members of channel exceed the limit",10420:"Signaling: member is already in the channel on other client",10700:"Signaling: phased success",13002:"Abnormal chatroom status",13003:"In the blacklist",13004:"In the mute list",13006:"All members are muted, and only the administrator can speak"};function difference(e,t){return t=t||[],(e=e||[]).filter((e=>-1===t.indexOf(e)))}function replacer(e,t){return t instanceof RegExp?"__REGEXP "+t.toString():t}function validate(e,t={},r,i=!1){var s={};return Object.keys(e).forEach((a=>{var n=e[a].type,o=r?`In ${r}, `:"";if(null==t){var c=`${o}param is null or undefined`;throw i?new ValidateErrorV2({detail:{reason:c,data:{key:a},rules:"required"}}):new ValidateError(c,{key:a},"required")}if(void 0===t[a]){if(!1===e[a].required)return void(s[a]=t[a]);var d=`${o}param '${a}' is required`;throw i?new ValidateErrorV2({detail:{reason:d,data:{key:a},rules:"required"}}):new ValidateError(d,{key:a},"required")}var l=ue[n];if(l&&!l(t,a,e[a],i)){var m=`${o}param '${a}' unexpected`,p={key:a,value:t[a]};throw i?new ValidateErrorV2({detail:{reason:m,data:p,rules:JSON.stringify(e[a],replacer)}}):new ValidateError(m,p,JSON.stringify(e[a],replacer))}s[a]=t[a]})),s}var ue={string:function(e,t,r){var{allowEmpty:i,max:s,min:a,regExp:n}=r,o=e[t];return"string"==typeof o&&((!1!==i||""!==o)&&(!("number"==typeof s&&o.length>s)&&(!("number"==typeof a&&o.length<a)&&!(function isRegExp(e){return"[object RegExp]"===Object.prototype.toString.call(e)}(n)&&!n.test(o)))))},number:function(e,t,r){var{min:i,max:s}=r,a=e[t];return"number"==typeof a&&(!("number"==typeof i&&a<i)&&!("number"==typeof s&&a>s))},boolean:function(e,t){return"boolean"==typeof e[t]},file:function(e,t){return!0},enum:function(e,t,r){var{values:i}=r,s=e[t];return!i||i.indexOf(s)>-1},jsonstr:function(e,t){try{var r=JSON.parse(e[t]);return"object"==typeof r&&null!==r}catch(e){return!1}},func:function(e,t){return"function"==typeof e[t]},array:function(e,t,r,i=!1){var{itemType:s,itemRules:a,rules:n,min:o,max:c,values:d}=r,l=e[t];if(!Array.isArray(l))return!1;if("number"==typeof c&&l.length>c)return!1;if("number"==typeof o&&l.length<o)return!1;if(a)l.forEach(((e,r)=>{validate({[r]:a},{[r]:e},`${t}[${r}]`,i)}));else if(n)l.forEach(((e,r)=>validate(n,e,`${t}[${r}]`,i)));else if("enum"===s){if(d&&difference(l,d).length)return!1}else if(s&&!l.every((e=>typeof e===s)))return!1;return!0},object:function(e,t,r,i=!1){var{rules:s,allowEmpty:a}=r,n=e[t];if("object"!=typeof n||null===n)return!1;if(s){var o=Object.keys(s),c=Object.keys(n).filter((e=>o.indexOf(e)>-1));if(!1===a&&0===c.length)return!1;validate(s,n,t,i)}return!0}};function validateConversationId(e,t){if(!e)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE});validate({conversationId:{type:"string",allowEmpty:!1,regExp:new RegExp(`^${e}\\|[1-3]\\|`)}},{conversationId:t},"",!0)}class TimerManager{constructor(){this.timerList=[],this.id=1,this.timer=null,this.timeout=0}addTimer(e,t=0,r=1){var i=(new Date).getTime(),s=this.id;return this.timerList.push({id:s,loop:r,count:0,timeout:i+t,interval:t,callback:e}),this.id++,this.checkTimer(i),s}checkTimer(e=(new Date).getTime()){if(this.removeFinished(),0!==this.timerList.length||null==this.timer){var t=0;for(var r of this.timerList)(0===t||t>r.timeout)&&(t=r.timeout);0!==this.timerList.length&&(null===this.timer||t<this.timeout||this.timeout<e)&&(this.timer=setTimeout(this.nowTime.bind(this),t-e),this.timeout=t)}}nowTime(){var e=(new Date).getTime();for(var t of this.timerList)e>=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 __rest(e,t){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(r[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(i=Object.getOwnPropertySymbols(e);s<i.length;s++)t.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(e,i[s])&&(r[i[s]]=e[i[s]])}return r}function __awaiter(e,t,r,i){return new(r||(r=Promise))((function(s,a){function fulfilled(e){try{step(i.next(e))}catch(e){a(e)}}function rejected(e){try{step(i.throw(e))}catch(e){a(e)}}function step(e){e.done?s(e.value):function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))}function isPlainObject(e){return null!=e&&"object"==typeof e&&Object.getPrototypeOf(e)==Object.prototype}function merge(e,t){var r=isPlainObject(e)||Array.isArray(e),i=isPlainObject(t)||Array.isArray(t);if(r&&i){for(var s in t){var a=merge(e[s],t[s]);void 0!==a&&(e[s]=a)}return e}return t}var he={getNetworkStatus:()=>Promise.resolve({net_type:0,net_connect:!0}),onNetworkStatusChange(e){},offNetworkStatusChange(){}},ge={isActive:()=>!0,getStatus:()=>0,setStatus(e){},destroy(){}};var ve={setLogger:function(e){throw new Error("setLogger not implemented.")},platform:"",WebSocket:class AdapterSocket{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:he,powerMonitor:ge,logStorage:class AdapterLogStorageImpl{constructor(e){}open(){return Promise.resolve()}close(){}addLogs(e){return Promise.resolve()}extractLogs(){return Promise.resolve()}afterUpload(){return Promise.resolve()}}};var ye=["error","warn","log","debug"],emptyFunc$1=function(){},fe=["off","error","warn","log","debug"];class Logger{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=emptyFunc$1,this.log=emptyFunc$1,this.warn=emptyFunc$1,this.error=emptyFunc$1,this.iid=Math.round(1e3*Math.random()),this.debugLevel=fe.indexOf(e)>-1?e:"off",t.debugLevel&&(this.debugLevel=fe.indexOf(t.debugLevel)>-1?t.debugLevel:this.debugLevel),this.logStorage=!1===t.storageEnable?null:new ve.logStorage({logDirPath:t.logDirPath||t.storageName||"nim_logs",logRetentionDays:t.logRetentionDays||10,totalLogSizeInMB:t.totalLogSizeInMB||200,maxLogFileSizeInMB:t.maxLogFileSizeInMB||10}),this.setOptions(t),this.setLogFunc(this.debugLevel),this.setTimer(),ve.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 r in t){var i=r,s=t[i];s&&(this.strategies[i].func=s)}}}setLogFunc(e,t="log"){var r=ye.findIndex((t=>t===e)),i=ye.findIndex((e=>e===t));ye.forEach(((e,t)=>{this[e]=function(){if(!(t>r&&t>i)){var s=Array.prototype.slice.call(arguments),a=this.strategies[e],n=this.formatArgs(s,a.name);t<=i&&this.logStorage&&this.prepareSaveLog(n,e),t<=r&&a.func(n)}}}))}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 __awaiter(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 r=new Date;return`[NIM ${this.iid} ${t} ${`${r.getMonth()+1}-${r.getDate()} ${r.getHours()}:${r.getMinutes()}:${r.getSeconds()}:${r.getMilliseconds()}`}] `+e.map((e=>e instanceof V2NIMErrorImpl?e.toString():e instanceof Error?e&&e.message?e.message:e:"object"==typeof e?JSON.stringify(e):e)).join(" ")}destroy(){this.debug=emptyFunc$1,this.log=emptyFunc$1,this.warn=emptyFunc$1,this.error=emptyFunc$1,this.saveLogs(),this.clearTimer(),this.storageArr=[],this.logStorage&&this.logStorage.close()}}function get(e,t){if("object"!=typeof e||null===e)return e;for(var r=(t=t||"").split("."),i=0;i<r.length;i++){var s=r[i],a=e[s],n=s.indexOf("["),o=s.indexOf("]");if(-1!==n&&-1!==o&&n<o){var c=s.slice(0,n),d=parseInt(s.slice(n+1,o));a=e[c],a=Array.isArray(a)?a[d]:void 0}if(null==a)return a;e=a}return e}var Ie,Me=(Ie=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)},function(){return Ie()+Ie()+Ie()+Ie()+Ie()+Ie()+Ie()+Ie()});function getEnumKeys(e){return Object.keys(e).filter((e=>!(+e>=0)))}function getEnumKeyByEnumValue(e,t){var r=Object.keys(e).filter((r=>e[r]==t));return r.length>0?r[0]:void 0}function getAccountFromSessionId(e,t="-"){if(!e)throw new CustomError("No sessionId",{},400);var r=e.indexOf(t);if(-1===r)throw new CustomError("Can not find conjunctions",{},400);var i=e.slice(0,r);return{accid:e.slice(r+1),scene:"super_team"===i?"superTeam":i}}function pendingIsMiniappEnv(){var{hostEnvEnum:e}=ve.getSystemInfo();return 6===e||102===e||103===e||104===e}function assignOptions(e,t){return function assignWith(e,t,r,i){for(var s in e=e||{},r=r||{},i=i||(()=>{}),t=t||{}){var a=i(e[s],t[s]);e[s]=void 0===a?t[s]:a}for(var n in r){var o=i(e[n],r[n]);e[n]=void 0===o?r[n]:o}return e}({},e,t,(function(e,t){return void 0===t?e:t}))}function emptyFuncWithPromise(){return Promise.resolve()}function emptyFunc(){}function getFileExtension(e){var t=e.lastIndexOf("."),r=t>-1?e.slice(t+1):"";return/^\d+$/.test(r.trim())&&(r=""),r}function findIndexWithinTargetValue(e,t,r){return 0===e.length||e[0][t]<=r?0:e[e.length-1][t]>r?e.length:e.findIndex(((i,s)=>{if(e[s-1]&&e[s-1][t]>r&&r>=i[t])return!0}))}function fillIdServer(e,t,r,i){var s="number"==typeof get(e,"raw.r[0]")?`${e.raw.r[0]}`:void 0;return t[r]=t[r]||s||i,t}class CoreAdapters{constructor(e){this.lastSuccUploadHost="",this.core=e}getFileUploadInformation(e){return ve.getFileUploadInformation(e)}request(e,t,r){var i=(new Date).getTime(),s=(null==r?void 0:r.exception_service)||0;return ve.request(e,t).catch((r=>{var a,n,o,c,d=r;throw this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account||(null===(n=null===(a=this.core)||void 0===a?void 0:a.auth)||void 0===n?void 0:n.account),trace_id:null===(c=null===(o=this.core.clientSocket)||void 0===o?void 0:o.socket)||void 0===c?void 0:c.sessionId,start_time:i,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:ve.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("exceptions",1),r}))}uploadFile(e,t){var r,i,s,a;return __awaiter(this,void 0,void 0,(function*(){for(var n="BROWSER"===ve.platform,o=n?e.chunkUploadHostBackupList:e.commonUploadHostBackupList,c=n?e.chunkUploadHost:e.commonUploadHost,d=o.indexOf(c),l=-1===d?[c,...o]:[c,...o.slice(0,d),...o.slice(d+1)],m=Math.max(l.indexOf(this.lastSuccUploadHost),0),p=null,u=0;u<l.length;u++){var h=(new Date).getTime(),g=l[(u+m)%l.length];null==t||t.update({retry_times:u});try{var v=yield ve.uploadFile(Object.assign(Object.assign({},e),n?{chunkUploadHost:g}:{commonUploadHost:g}));return this.lastSuccUploadHost=g,"string"==typeof v.size&&(v.size=parseInt(v.size)),"string"==typeof v.dur&&(v.dur=parseInt(v.dur)),"string"==typeof v.w&&(v.w=parseInt(v.w)),"string"==typeof v.h&&(v.h=parseInt(v.h)),v}catch(e){this.core.cloudStorage.nos.nosErrorCount--,p=e;var y=e;this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account||(null===(i=null===(r=this.core)||void 0===r?void 0:r.auth)||void 0===i?void 0:i.account),trace_id:null===(a=null===(s=this.core.clientSocket)||void 0===s?void 0:s.socket)||void 0===a?void 0:a.sessionId,start_time:h,action:1,exception_service:3}),this.core.reporter.reportTraceUpdateV2("exceptions",{code:"number"==typeof y.code?y.code:0,description:y.message||`${y.code}`,operation_type:1,target:g},{asyncParams:ve.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("exceptions",1),this._uploadFileErrHanler(e)}}throw p}))}_uploadFileErrHanler(e){if(e&&(e.code>200||e.errCode>200))throw e}}var Se="weblink.netease.im:443",Te=["https://lbs.netease.im/lbs/webconf.jsp","https://lbs-sdk.netease.im/lbs/webconf.jsp"],_e="https://abt-online.netease.im/v1/api/abt/client/getExperimentInfo",Ce="imElite_sdk_abtest_web";class ABTest{constructor(e,t){this.abtInfo={},this.core=e,this.config=assignOptions({isAbtestEnable:!0,abtestUrl:_e,abtestProjectKey:Ce},t)}setOptions(e){this.config=assignOptions(this.config,e)}abtRequest(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.config.isAbtestEnable&&!this.abtInfo.experiments&&this.config.abtestUrl){var r;try{r=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.71",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==r?void 0:r.data)||void 0===e?void 0:e.data)||void 0===t?void 0:t.abtInfo)||{}}}))}}class PromiseManager{constructor(){this.abortFns=[]}add(e){var t=function getPromiseWithAbort(e){var t={},r=new Promise((function(e,r){t.abort=r}));return t.promise=Promise.race([e,r]),t}(e);return this.abortFns.push(t.abort),t.promise}clear(e){this.abortFns.forEach((t=>t(e||new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:"Aborted"}})))),this.abortFns=[]}destroy(){this.clear()}}var Ee={tolerantRTT:3e3,bestRTT:100,maxChances:5,enable:!0},be={timestamp:0,rtt:0,baseClock:0,baseTime:0};class TimeOrigin{constructor(e,t,r="getServerTime"){this.serverOrigin=be,this.config=Ee,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 PromiseManager,this.cmdName=r,t&&this.setOptions(t)}setOptions(e){this.config=Object.assign({},Ee,this.config,e)}reset(){this.timer&&clearTimeout(this.timer),this.promiseManager.clear(),this.serverOrigin=be,this.currentChance=0}setOriginTimetick(){return __awaiter(this,void 0,void 0,(function*(){if(this.config.enable&&!(this.isSettingNTP||this.currentChance>=this.config.maxChances)){var e=get(this.core,"auth.status"),t=get(this.core,"status"),r=get(this.core,"V2NIMLoginService.lifeCycle.loginStatus");if("logined"===e||"logined"===t||1===r){this.isSettingNTP=!0,this.currentChance++,this.timer&&clearTimeout(this.timer),this.timer=0;var i,s="TimeOrigin::setOriginTimetick:",a=Date.now();this.core.logger.debug(`${s} getServerTime start, times ${this.currentChance}`);try{i=get(yield this.promiseManager.add(this.core.sendCmd(this.cmdName)),"content.time"),this.isSettingNTP=!1}catch(e){var n=e;return this.isSettingNTP=!1,this.logger.warn(`${s} Calculate Delay time, getServerTime error`,n),void(n.code!==de.V2NIM_ERROR_CODE_CANCELLED&&(clearTimeout(this.timer),this.timer=setTimeout(this.setOriginTimetick.bind(this),this.failedDelay)))}if(!i)return this.core.logger.warn(`${s} Calculate Delay time incorrect format`),void(this.config.enable=!1);var o=Date.now()-a;this.doSet(i,o)}}}))}doSet(e,t){var r="TimeOrigin::setOriginTimetick:";t>this.config.tolerantRTT?(this.logger.warn(`${r} 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(`${r} ignore RTT:${t}`):(this.setServerOrigin(t,e),this.logger.log(`${r} accept reluctantly RTT:${t}`)),clearTimeout(this.timer),this.timer=setTimeout(this.setOriginTimetick.bind(this),this.failedDelay)):(this.setServerOrigin(t,e),this.logger.debug(`${r} 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,r=e.time-this.serverOrigin.baseTime;return Math.abs(r-t)<500}return!1}checkPerformance(){return"BROWSER"===ve.platform&&!("undefined"==typeof performance||!performance.now)}static checkPerformance(){return"BROWSER"===ve.platform&&!("undefined"==typeof performance||!performance.now)}getTimeNode(){return{clock:this.checkPerformance()?performance.now():0,time:Date.now()}}static getTimeNode(){return{clock:TimeOrigin.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 Ne={user_id:"",trace_id:"",action:7,exception_service:6,duration:0,start_time:0,state:1,extension:[]};class ReporterHookLinkKeep{constructor(e,t){this.traceData=Ne,this.core=e,this.traceData=Object.assign({},Ne,t),this.traceData.extension=[]}reset(){this.traceData=Object.assign({},Ne),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 __awaiter(this,void 0,void 0,(function*(){var{net_type:t,net_connect:r}=yield ve.net.getNetworkStatus();this.traceData.extension.push(Object.assign({code:0,foreground:!0,foreg_backg_switch:!1,net_type:t,net_connect:r},e))}))}end(e){var t=this.traceData.extension[0],r=this.traceData.extension[1];if(t&&0===t.operation_type&&r&&1===r.operation_type){var i=t.net_type!==r.net_type||t.net_connect!==r.net_connect;if(e||!i)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 Ae={user_id:"",trace_id:"",net_connect:!0,net_type:0,duration:0,start_time:0,history:[],succeed:!1};class ReporterHookLBS{constructor(e){this.traceData=Ae,this.core=e,this.reset()}reset(){this.traceData=Object.assign({},Ae),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 __awaiter(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:r}=yield ve.net.getNetworkStatus();this.traceData.net_type=t,this.traceData.net_connect=r,this.core.reporter.report("nim_sdk_lbs_records",this.traceData),this.reset()}else this.reset()}))}}function getIsDataReportEnable(e){var t,r,i=!0;return"boolean"==typeof(null===(t=null==e?void 0:e.reporterConfig)||void 0===t?void 0:t.enableCompass)?i=e.reporterConfig.enableCompass:"boolean"==typeof(null===(r=null==e?void 0:e.reporterConfig)||void 0===r?void 0:r.isDataReportEnable)&&(i=e.reporterConfig.isDataReportEnable),i}var Re={},Oe={},ke={},we={apiVersion:"v1",debugLevel:"off",needReconnect:!0,reconnectionAttempts:Number.MAX_SAFE_INTEGER,lbsUrls:Te,linkUrl:Se,abtestUrl:_e,isAbtestEnable:!0};class NIM extends ae{constructor(e,t={}){if(super(),this.instanceName="NIM",this.pluginMap={},this.eventBus=new ae,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=ke,this.logger=new Logger(e.debugLevel,t.loggerConfig),t.privateConf){var{authConfig:r,cloudStorageConfig:i,reporterConfig:s}=this.getConfigFromPrivate(t.privateConf);Object.assign(e,r),this.setInitOptions(e),this.otherOptions=Object.assign(Object.assign({},t),{cloudStorageConfig:Object.assign(Object.assign({storageKeyPrefix:"NIM"},t.cloudStorageConfig),i),reporterConfig:Object.assign(Object.assign({},t.reporterConfig),s),V1NIMLoginServiceConfig:Object.assign(Object.assign(Object.assign({},e),t.V1NIMLoginServiceConfig),r),V2NIMLoginServiceConfig:Object.assign(Object.assign({},t.V2NIMLoginServiceConfig),r)})}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 TimerManager,this.timeOrigin=new TimeOrigin(this),this.adapters=new CoreAdapters(this),this.abtest=new ABTest(this,Object.assign(Object.assign({isAbtestEnable:this.options.isAbtestEnable,abtestUrl:this.options.abtestUrl},this.otherOptions.abtestConfig),{abtestProjectKey:Ce}));var a=ve.getSystemInfo(),n=function getCompassDataEndpoint(e,t){var r,i,s=null===(r=null==t?void 0:t.reporterConfig)||void 0===r?void 0:r.compassDataEndpoint,a=null===(i=null==t?void 0:t.reporterConfig)||void 0===i?void 0:i.reportConfigUrl;if(s)return s;if(a){var n=a.match(/^https:\/\/([^/]+)\/*/);if(Array.isArray(n)&&n.length>=1)return`https://${n[1]}`;e.error(`Invalid reportConfigUrl: ${a}`)}return pendingIsMiniappEnv()?"https://statistic.live.126.net":"https://statistic.live.126.net,https://statistic-overseas.yunxinfw.com"}(this.logger,this.otherOptions);this.reporter=new ne(Object.assign(Object.assign({},n?{compassDataEndpoint:n}:{}),{isDataReportEnable:getIsDataReportEnable(this.otherOptions),common:{app_key:e.appkey,dev_id:"",platform:"Web",sdk_ver:"10.9.71",env:"online",os_name:a.os,os_ver:a.osVer,lib_env:a.libEnv,host_env:a.hostEnv,host_env_ver:a.hostEnvVer,manufactor:a.manufactor,model:a.model,v2:"v1"!==this.options.apiVersion},request:ve.request,logger:this.logger,autoStart:!0})),this.reporterHookLinkKeep=new ReporterHookLinkKeep(this),this.reporterHookLBS=new ReporterHookLBS(this),this.getServiceKeys(Object.keys(Re)).forEach((e=>{if(!this[e]||!this[e].name){var t=Re[e];this[e]=new t(this)}})),Object.keys(Re).forEach((e=>{this.callSetOptions(e)})),Object.keys(Oe).forEach((e=>{var t=Oe[e];void 0!==t&&(this[e]=new t(this))})),NIM.instance=this,this.logger.log(`NIM init, version:10.9.71, sdk version:100971, appkey:${e.appkey}`)}getServiceKeys(e){var t=e.findIndex((e=>"V1NIMLoginService"===e));if(t>-1){var r=e[t];e.splice(t,1),"v1"===this.options.apiVersion&&e.unshift(r)}var i=e.findIndex((e=>"V2NIMLoginService"===e));if(i>-1){var s=e[i];e.splice(i,1),"v2"===this.options.apiVersion&&e.unshift(s)}var a=e.findIndex((e=>"sync"===e));if(a>-1){var n=e[a];e.splice(a,1),"v1"===this.options.apiVersion&&e.push(n)}var o=e.findIndex((e=>"V2NIMSyncService"===e));if(o>-1){var c=e[o];e.splice(o,1),"v2"===this.options.apiVersion&&e.push(c)}return e}static getInstance(e,t){if(!NIM.instance){if(e)return new NIM(e,t);throw new Error("Instance not exist, please input options")}if(e){if(NIM.instance.options.account===e.account&&NIM.instance.options.appkey===e.appkey)return NIM.instance.setOptions(e),NIM.instance;throw new Error("Unexpected login")}return NIM.instance}setInitOptions(e){validate({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({},we),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 V2NIMErrorImpl({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 V2NIMErrorImpl({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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"NIM::setOptions binaryWebsocket is not allowed to reset"}});validate({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===get(this.V2NIMLoginService,"lifeCycle.connectStatus")&&0===get(this.V2NIMLoginService,"lifeCycle.loginStatus")?Promise.resolve():this.V2NIMLoginService.logout():Promise.resolve()}destroy(){return NIM.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=emptyFuncWithPromise,this.disconnect=emptyFuncWithPromise,this._disconnect=emptyFuncWithPromise,this.destroy=emptyFuncWithPromise}))}_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,r){return this.clientSocket.sendCmd(e,t,r)}emit(e,...t){try{var r=Date.now(),i=super.emit(e,...t),s=Date.now()-r;return s>=10&&this.logger.warn(`Core::emit event: ${e} process takes: ${s}ms`),i}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`,r=`${e}Options`,i=this.otherOptions[t]||this.otherOptions[r]||{},s=get(this,`${e}.setOptions`);"function"==typeof s&&("cloudStorage"===e&&(i=this.otherOptions[t]||this.otherOptions.serverConfig||{}),s.call(this[e],i))}static registerService(e,t){Re[t]=e}static registerPrivateService(e,t){Oe[t]=e}static registerPlugin(e,t){ke[t]=e}}NIM.sdkVersion=100971,NIM.sdkVersionFormat="10.9.71";var Pe={debug(...e){},log(...e){},warn(...e){},error(...e){}};function setLogger(e){Pe=e}function getLogger(){return Pe}function base64ToArrayBuffer(e){for(var t=function base64Decode(e){var t=String(e).replace(/[=]+$/,"");if(t.length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,i="",s=0,a=0,n=0;r=t.charAt(n++);~r&&(a=s%4?64*a+r:r,s++%4)?i+=String.fromCharCode(255&a>>(-2*s&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return i}(e),r=t.length,i=new Uint8Array(r),s=0;s<r;s++)i[s]=t.charCodeAt(s);return i.buffer}function to(e){try{return e.then((e=>[null,e])).catch((e=>[e,void 0]))}catch(e){var t=e;return Promise.resolve([t,void 0])}}var Ve={clear(){uni.clearStorageSync()},getItem:e=>uni.getStorageSync(e),setItem:(e,t)=>uni.setStorageSync(e,t),removeItem:e=>uni.removeStorageSync(e)};function formatDateToYYYYMMDD(e){var t=e.getFullYear(),r=e.getMonth()+1,i=e.getDate();return`${t}${r<10?`0${r}`:String(r)}${i<10?`0${i}`:String(i)}`}class LogStorageForAppImpl{constructor(e){this.fileSystem=null,this.dirEntry=null,this.currentLogFile=null,this.isInitialized=!1,this.dirPath="",this.filePath="",this.logRetentionDays=10,this.totalLogSize=209715200,this.maxSingleLogFileSize=10485760,this.lastErrorMsg=void 0,this.logFiles=[],e.logRetentionDays>=1&&e.logRetentionDays<=30&&(this.logRetentionDays=e.logRetentionDays),e.totalLogSizeInMB>=10&&e.totalLogSizeInMB<=500&&(this.totalLogSize=1024*e.totalLogSizeInMB*1024),e.maxLogFileSizeInMB>=1&&e.maxLogFileSizeInMB<=200&&(this.maxSingleLogFileSize=1024*e.maxLogFileSizeInMB*1024),this.dirPath=e.logDirPath||"nim_logs",this.dirPath.endsWith("/")||(this.dirPath+="/");var t=formatDateToYYYYMMDD(new Date);this.filePath=`${this.dirPath}${t}.log`}isPlusAvailable(){return"undefined"!=typeof plus&&void 0!==plus.io&&"function"==typeof plus.io.requestFileSystem}getFileEntry(e,t={}){return new Promise(((r,i)=>{this.dirEntry?this.dirEntry.getFile(e,t,(e=>{r(e)}),(e=>{i(e)})):i(new Error("LogStorage::No directory entry available"))}))}deleteFile(e){return new Promise(((t,r)=>{e.remove((()=>{t()}),(e=>{r(e)}))}))}deleteFileByName(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.getFileEntry(e);yield this.deleteFile(t)}))}getFileSize(e){return new Promise(((t,r)=>{e.file((e=>{t(e.size||0)}),(e=>{r(e)}))}))}writeFile(e,t){return new Promise(((r,i)=>{e.createWriter((e=>{e.onwrite=()=>{r()},e.onerror=e=>{i(e)},e.write(t)}),(e=>{i(e)}))}))}appendFile(e,t){return new Promise(((r,i)=>{e.createWriter((e=>{e.onwrite=()=>{r()},e.onerror=e=>{i(e)},e.seek(e.length||0),e.write(t)}),(e=>{i(e)}))}))}getDirectory(e,t={}){var r=getLogger();return new Promise(((i,s)=>{this.fileSystem&&this.fileSystem.root?this.fileSystem.root.getDirectory(e,t,(e=>{i(e)}),(t=>{r.warn(`LogStorage::getDirectory failed: ${e}; ${t&&t.message}`),s(t)})):s(new Error("LogStorage::File system not initialized"))}))}initializeFileSystem(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger();if(!this.isPlusAvailable())return e.error("LogStorage::plus.io API unavailable"),Promise.reject(new Error("LogStorage::plus.io API unavailable"));try{this.fileSystem=yield new Promise(((t,r)=>{plus.io.requestFileSystem(plus.io.PRIVATE_DOC,(e=>{e.root?t(e):r(new Error("LogStorage::fs.root empty"))}),(t=>{e.error(`LogStorage::requestFileSystem failed;${t&&t.message}`),r(t)}))})),e.log("LogStorage::requestFileSystemOk"),this.dirEntry=yield this.getDirectory(this.dirPath,{create:!0}),e.log("LogStorage::initDirectoryOk"),this.isInitialized=!0}catch(t){return e.error(`LogStorage:initFailed;${t&&t.message}`),Promise.reject(t)}}))}collectFileInfo(e){var t=this,r=getLogger();this.logFiles=[];var i=[],_loop=function(){var e=s,a=e.name;if(!a)return 0;if(!a.endsWith(".log")&&!/\.log\.\d+$/.test(a))return 0;var n=t.getFileSize(e).then((r=>{t.logFiles.push({fileName:a,size:r,fullPath:e.fullPath})})).catch((e=>{r.warn(`LogStorage::collectFileInfo:getFileFailed;${a};${e&&e.message}`)}));i.push(n)};for(var s of e)_loop();return Promise.all(i)}sortLogFiles(){this.logFiles.sort(((e,t)=>{var[r,i,s]=e.fileName.split("."),[a,n,o]=t.fileName.split(".");return r!==a?parseInt(a)-parseInt(r):s&&!o?1:!s&&o?-1:s&&o?parseInt(o)-parseInt(s):0}))}listLogFiles(){var e=getLogger();return this.isInitialized&&this.dirEntry?new Promise(((t,r)=>{this.dirEntry?this.dirEntry.createReader().readEntries((i=>{var s=i;s=s.filter((e=>e.isFile)),this.collectFileInfo(s).then((()=>{this.sortLogFiles(),e.log(`LogStorage::collectFileInfoOk,numbers of files is ${this.logFiles.length}`),t()})).catch((t=>{e.warn(`LogStorage::collectFileInfoFailed;${t&&t.message}`),r(t)}))}),(t=>{e.error(`LogStorage::readEntriesFailed;${t&&t.message}`),r(t)})):r(new Error("LogStorage::dirEntryEmpty"))})):Promise.reject(new Error("LogStorage::uninitialized"))}openCurrentLogFile(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger(),t=`${formatDateToYYYYMMDD(new Date)}.log`;return this.filePath=`${this.dirPath}${t}`,new Promise(((r,i)=>{if(!this.isInitialized||!this.dirEntry)return i(new Error("LogStorage::uninitialized"));this.dirEntry.getFile(t,{create:!0},(e=>{this.currentLogFile=e,r()}),(t=>{e.error(`LogStorage::openCurrentLogFileFailed:${this.filePath};${t&&t.message}`),i(t)}))}))}))}checkRetentionDays(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger(),t=new Date,r=this.logRetentionDays,i=new Date(t);i.setDate(t.getDate()-r);var s=+formatDateToYYYYMMDD(i);e.log(`LogStorage:checkRetentionDays;expiryDate:${s}`);var a=[];for(var n of this.logFiles){var o=n.fileName,[c]=o.split(".");if(parseInt(c)<s){e.log(`LogStorage::checkRetentionDays expireFile:${o}`);try{yield this.deleteFileByName(o)}catch(t){e.warn(`LogStorage:checkRetentionDays deleteFailed:${o};${t&&t.message}`)}}else a.push(n)}this.logFiles=a}))}checkTotalLogSize(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger(),t=this.logFiles.reduce(((e,t)=>e+t.size),0);if(t>this.totalLogSize)for(e.warn(`LogStorage::checkTotalLogSize:overlimit.totalSize(${t}B),limit(${this.totalLogSize}B)`);this.logFiles.length>1&&this.logFiles.reduce(((e,t)=>e+t.size),0)>this.totalLogSize;){var r=this.logFiles[this.logFiles.length-1];if(!r)break;try{yield this.deleteFileByName(r.fileName),this.logFiles.pop(),e.log(`LogStorage::deleteFileOk:${r.fileName}`)}catch(t){e.warn(`LogStorage::deleteFileFailed:${r.fileName};${t&&t.message}`);break}}}))}checkCurrentFileSize(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger();if(this.currentLogFile)try{var t=yield this.getFileSize(this.currentLogFile);this.logFiles.length>0&&(this.logFiles[0].size=t),t>this.maxSingleLogFileSize&&(e.log(`LogStorage::checkCurrentFileSizeOk:needArchive.currenFileSize(${t}B),limit(${this.maxSingleLogFileSize}B)`),yield this.archiveLog())}catch(t){e.warn(`LogStorage::checkCurrentFileSizeFailed;${t&&t.message}`)}}))}copyFile(e,t,r){return new Promise(((i,s)=>{e.copyTo(t,r,(e=>{i(e)}),(e=>{s(e)}))}))}archiveLog(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger();if(this.currentLogFile&&this.dirEntry){var t=formatDateToYYYYMMDD(new Date),r=0;for(var i of this.logFiles){var s=i.fileName.split(".");if(s[0]===t&&s.length>=3&&"log"===s[1]){var a=parseInt(s[2],10);!isNaN(a)&&a>r&&(r=a)}}var n=`${t}.log.${r+1}`,[o,c]=yield to(this.copyFile(this.currentLogFile,this.dirEntry,n));if(o||void 0===c)e.error(`LogStorage::archiveLog:copyFailed;${o&&o.message}`);else{var[d,l]=yield to(this.getFileSize(c));if(d||void 0===l)e.error(`LogStorage::archiveLog:getFileSizeFailed;${d&&d.message}`);else{this.logFiles.splice(1,0,{fileName:n,size:l,fullPath:c.fullPath});var[m]=yield to(this.writeFile(this.currentLogFile,"==="));m?e.error(`LogStorage::archiveLog:writeFileFailed;${m&&m.message}`):(this.logFiles.length>0&&(this.logFiles[0].size=3),e.log(`LogStorage::archiveLogOk:${n}`),yield this.checkTotalLogSize())}}}}))}open(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger();e.log("LogStorage::opening");try{this.isInitialized||(yield this.initializeFileSystem()),yield this.listLogFiles(),yield this.openCurrentLogFile(),yield this.checkRetentionDays(),yield this.checkCurrentFileSize(),yield this.checkTotalLogSize(),e.log("LogStorage::openOK")}catch(t){e.error(`LogStorage:openFailed;${t&&t.message}`)}}))}close(){}addLogs(e){return __awaiter(this,void 0,void 0,(function*(){var t=getLogger();if(this.isInitialized&&this.currentLogFile){var r=e.map((e=>e.text)).concat("").join("\n"),[i]=yield to(this.appendFile(this.currentLogFile,r));if(i){var s=i.message;return this.lastErrorMsg!==s&&t.warn(`LogStorage::addLogFailed:${s}`),void(this.lastErrorMsg=s)}this.logFiles.length>0&&(this.logFiles[0].size+=r.length),this.lastErrorMsg=void 0,yield this.checkCurrentFileSize(),yield this.checkTotalLogSize()}}))}isZipAvailable(){return"undefined"!=typeof plus&&void 0!==plus.zip&&"function"==typeof plus.zip.compress}compressToZip(e,t){return new Promise(((r,i)=>{this.isZipAvailable()?plus.zip.compress(e,t,(()=>{r(t)}),(e=>{i(e)})):i(new Error("LogStorage:plus.zip API unavailable"))}))}extractLogs(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger();if(this.isInitialized&&this.currentLogFile&&this.dirEntry)if(this.isZipAvailable())if(0!==this.logFiles.length){var t=this.dirEntry.fullPath;if(t){var r="_nim_logs.zip",i=t+r;e.warn(`LogStorage::ready to extract;${t};${i}`);var[s]=yield to(this.deleteFileByName(r));s&&e.warn(`LogStorage::extractLog:deleteTempZipFileFailed;${s&&s.message}`);var[a]=yield to(this.compressToZip(t,i));if(a)throw e.error(`LogStorage::compressToZipFailed:${a&&a.message}`),a;return e.log(`LogStorage::compressToZipOk:${i}`),i}e.warn("LogStorage::fullPath not exist")}else e.warn("LogStorage::no log files to extract");else e.error("LogStorage::LogStorage:plus.zip API unavailable")}))}afterUpload(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger(),[t]=yield to(this.deleteFileByName("_nim_logs.zip"));t?e.warn(`LogStorage::afterUpload:deleteTempZipFileFailed;${t&&t.message}`):e.log("LogStorage::afterUpload:deleteTempZipFileOk")}))}clearAllFile(){return __awaiter(this,void 0,void 0,(function*(){var e=getLogger();try{for(var t of this.logFiles)yield this.deleteFileByName(t.fileName)}catch(t){e.warn(`LogStorage:clearFailed;${t&&t.message}`)}e.log("LogStorage:clearAllOk")}))}}class LogStorageForMiniAppImpl{constructor(e){this.dirPath="",this.filePath="",this.copyFilePath="",this.enable=!1,this.maxCapacity=26214400,this.remainCapacity=8388608,this.count=0,this.maxCount=100,this.lastErrorMsg=void 0;var t=uni.getSystemInfoSync(),r="mp-weixin"===t.uniPlatform||"mp-alipay"===t.uniPlatform;if(this.enable=r,r){var i=this.getAPIEnv();i&&(this.dirPath=`${i.env.USER_DATA_PATH}/__nim`,this.filePath=`${this.dirPath}/${e.logDirPath}.log`,this.copyFilePath=`${this.dirPath}/${e.logDirPath}_copy.log`)}}getAPIEnv(){if(!("undefined"!=typeof tt&&tt.getSystemInfoSync||"undefined"!=typeof swan&&swan.getSystemInfoSync))return"undefined"!=typeof my&&my.getSystemInfoSync?my:"undefined"!=typeof wx&&wx.getAppBaseInfo?wx:void 0}makeDir(){if(this.enable){var e=this.getAPIEnv();if(e){var t=getLogger(),r=e.getFileSystemManager();try{var i=r.accessSync(this.dirPath);t.log("logStorage::access dir:",i),("object"==typeof i&&null!==i?i.error||i.errno||i.errCode||i.errNo:0)>200&&r.mkdirSync(this.dirPath,!0)}catch(e){r.mkdirSync(this.dirPath,!0)}try{var s=r.accessSync(this.filePath);t.log("logStorage::access file:",s),("object"==typeof s&&null!==s?s.error||s.errno||s.errCode||s.errNo:0)>200&&r.writeFileSync(this.filePath,"===","utf8")}catch(e){r.writeFileSync(this.filePath,"===","utf8")}}}}open(){return __awaiter(this,void 0,void 0,(function*(){if(this.enable){var e=getLogger();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 __awaiter(this,void 0,void 0,(function*(){if(this.enable){var t=this.getAPIEnv();if(t){var r=getLogger(),i=t.getFileSystemManager(),s=this.getSize();if(s>this.maxCapacity){r.log(`logStorage::checksize:exceed,${s} byte`);var a="";try{a=yield this.readLogs(s-e)}catch(e){return void r.log("logStorage::checkCapacity:read failed",e)}r.log(`logStorage::checksize:read success ${s-e} byte`);try{i.unlinkSync(this.filePath)}catch(e){return void r.log("logStorage::checkCapacity:unlink failed",e)}try{i.writeFileSync(this.filePath,a,"utf8")}catch(e){return void r.log("logStorage::checkCapacity:write failed",e)}}else r.log(`logStorage::checkCapacity:not exceeding,${s} byte`)}}}))}getSize(){var e;if(!this.enable)return 0;var t=this.getAPIEnv();if(!t)return 0;var r,i=getLogger(),s=t.getFileSystemManager();try{r=s.statSync(this.filePath,!1)}catch(e){return i.warn("logStorage::stat failed",e),0}return r.size||(null===(e=r.stats)||void 0===e?void 0:e.size)}readLogs(e=0){if(!this.enable)return Promise.resolve("");var t=this.getAPIEnv();if(!t)return Promise.resolve("");var r=getLogger(),i=t.getFileSystemManager();return new Promise(((t,s)=>{i.readFile({filePath:this.filePath,encoding:"utf8",position:e,success:e=>{var i=e.data;"string"==typeof i?(r.warn(`logStorage::readLogs success ${i.length}`),t(i)):(r.warn("logStorage::readLogs empty"),s(new Error("logStorage::readLogs empty")))},fail:e=>{var t=e.errMsg||e.errorMessage||e.message;r.warn(`logStorage::readLogs failed ${t}`);var i={code:e.errCode||0,message:t};s(i)}})}))}close(){}addLogs(e){if(!this.enable)return Promise.resolve();var t=this.getAPIEnv();if(!t)return Promise.resolve();var r=getLogger(),i=e.map((e=>e.text)).concat("").join("\n");try{t.getFileSystemManager().appendFileSync(this.filePath,i,"utf8")}catch(e){var s=e.errMsg||e.errorMessage||e.message;this.lastErrorMsg!==s&&r.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 __awaiter(this,void 0,void 0,(function*(){if(this.enable){var e=this.getAPIEnv();if(e){var t=getLogger(),r=e.getFileSystemManager();if(this.getSize()>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 __awaiter(this,void 0,void 0,(function*(){if(this.enable){var e=this.getAPIEnv();if(e){var t=getLogger(),r=e.getFileSystemManager();try{r.unlinkSync(this.copyFilePath)}catch(e){return void t.log("logStorage::delete copyFilePath failed",e)}}}}))}}var Le={wifi:2,"2g":3,"3g":4,"4g":5,"5g":6,ethernet:1,unknown:0,none:0,notreachable:0,wwan:0},Ue={__onNetworkStatusChangeFn:null,getNetworkStatus(){var e=uni.getSystemInfoSync()||{};return"app"===e.uniPlatform&&"harmonyos"===e.osName?Promise.resolve({net_type:0,net_connect:!0}):new Promise(((e,t)=>{uni.getNetworkType({success:function(t){var r=!1;r="boolean"==typeof t.networkAvailable?t.networkAvailable:"none"!==t.networkType.toLowerCase(),e({net_type:Le[t.networkType.toLowerCase()],net_connect:r})},fail:function(){t(new Error("getNetworkType failed"))}})}))},onNetworkStatusChange(e){this.offNetworkStatusChange(),uni.onNetworkStatusChange&&(this.__onNetworkStatusChangeFn=function(t){var r=t.networkType.toLowerCase();e({isConnected:t.isConnected||"none"!==r,networkType:Le[r]})},uni.onNetworkStatusChange(this.__onNetworkStatusChangeFn))},offNetworkStatusChange(){uni.offNetworkStatusChange&&(this.__onNetworkStatusChangeFn&&uni.offNetworkStatusChange(this.__onNetworkStatusChangeFn),this.__onNetworkStatusChangeFn=null)}},De=getLogger();class PowerMonitor extends ae{constructor(){super(),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"),De.log("Adapter powerMonitor::setStatus: ",e))}destroy(){this.status=0,this.flag=!1,this._canIUse()&&(this.appShowListener&&(uni.offAppShow(this.appShowListener),this.appShowListener=null),this.appHideListener&&(uni.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"),De.log("Adapter powerMonitor::onAppShow status:",this.status)},this.appHideListener=()=>{this.status=1,De.log("Adapter powerMonitor::onAppHide status:",this.status)},uni.onAppShow(this.appShowListener),uni.onAppHide(this.appHideListener),this.flag=!0,De.log("Adapter powerMonitor::_initAppLifecycleListener success")):De.warn("Adapter powerMonitor::_initAppLifecycleListener env.onAppShow/env.onAppHide not available"))}_canIUse(){return"undefined"!=typeof uni&&"function"==typeof uni.onAppShow&&"function"==typeof uni.onAppHide&&"function"==typeof uni.offAppShow&&"function"==typeof uni.offAppHide}}function requestFn(e,t){return t&&(t.data=t.data||(null==t?void 0:t.params)||{}),new Promise(((r,i)=>{uni.request(Object.assign(Object.assign({method:"GET",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},r(t)):i({code:t.statusCode||0,message:t.data||`uniApp request fail. url: ${e}`})},fail:function(t){var r=`uniApp request fail. url: ${e}`;i(t?{code:t.errCode||0,message:t.errMsg||r}:{code:0,message:r})}}))}))}var getUserAgent=function(){var e=uni.getSystemInfoSync()||{};if("mp-weixin"===e.uniPlatform&&"undefined"!=typeof wx&&wx.getAppBaseInfo){var t=wx.getAppBaseInfo();return`NIM/Web/UNIAPP(${e.uniRuntimeVersion})/WeChatMiniApp(${t.SDKVersion})/V10.9.71/{{appkey}}`}if("undefined"!=typeof tt&&tt.getSystemInfoSync){var r=tt.getSystemInfoSync();return`NIM/Web/UNIAPP(${e.uniRuntimeVersion})/TiktokMiniApp(${r.SDKVersion})/V10.9.71/{{appkey}}`}if("undefined"!=typeof swan&&swan.getSystemInfoSync){var i=swan.getSystemInfoSync();return`NIM/Web/UNIAPP(${e.uniRuntimeVersion})/BaiduMiniApp(${i.SDKVersion})/V10.9.71/{{appkey}}`}if("undefined"!=typeof my&&my.getSystemInfoSync){var s=my.getSystemInfoSync();return`NIM/Web/UNIAPP(${e.uniRuntimeVersion})/AliMiniApp(${s.SDKVersion})/V10.9.71/{{appkey}}`}if(navigator&&navigator.userAgent)return navigator.userAgent;if(e.ua)return e.ua;var a=uni.getSystemInfoSync();return`NIM/Web/UNIAPP(${a.uniRuntimeVersion})/${a.osName}(${a.osVersion})/V10.9.71/{{appkey}}`},getHostEnvVer=function(){var e=uni.getSystemInfoSync()||{};if("mp-weixin"===e.uniPlatform&&"undefined"!=typeof wx&&wx.getAppBaseInfo){var t=wx.getAppBaseInfo();return`${e.uniRuntimeVersion}/${t.version}`}if("undefined"!=typeof tt&&tt.getSystemInfoSync){var r=tt.getSystemInfoSync();return`${e.uniRuntimeVersion}/${r.version}`}if("undefined"!=typeof swan&&swan.getSystemInfoSync){var i=swan.getSystemInfoSync();return`${e.uniRuntimeVersion}/${i.version}`}if("undefined"!=typeof my&&my.getSystemInfoSync){var s=my.getSystemInfoSync();return`${e.uniRuntimeVersion}/${s.version}`}return`${e.uniRuntimeVersion}`},getModel=function(){var e=uni.getSystemInfoSync()||{};if("mp-weixin"===e.uniPlatform&&"undefined"!=typeof wx&&wx.getAppBaseInfo){var t=wx.getAppBaseInfo();return`${e.uniRuntimeVersion}/${t.SDKVersion}`}if("undefined"!=typeof tt&&tt.getSystemInfoSync){var r=tt.getSystemInfoSync();return`${e.uniRuntimeVersion}/${r.SDKVersion}`}if("undefined"!=typeof swan&&swan.getSystemInfoSync){var i=swan.getSystemInfoSync();return`${e.uniRuntimeVersion}/${i.SDKVersion}`}return"undefined"!=typeof my&&my.getSystemInfoSync?(my.getSystemInfoSync(),`${e.uniRuntimeVersion}/${my.SDKVersion}`):`${e.uniRuntimeVersion}`};function getSystemInfoFn(){var e,t="app"===(e=(uni.getSystemInfoSync()||{}).uniPlatform)?[110,"APP"]:"web"===e||"h5"===e?[101,"H5"]:"mp-weixin"===e?[6,"WeiXin"]:"mp-alipay"===e?[102,"Ali"]:"mp-baidu"===e?[103,"Baidu"]:"mp-toutiao"===e?[104,"Tiktok"]:0===e.indexOf("mp-")||0===e.indexOf("quickapp")?[105,"OtherMiniProgram"]:[0,"Unset"],r=uni.getSystemInfoSync()||{};return{os:r.osName||"UNIAPP_UNKNOW",osVer:r.osVersion,browser:r.browserName||"",browserVer:r.browserVersion||"",libEnv:"UNIAPP",hostEnv:t[1],hostEnvEnum:t[0],hostEnvVer:getHostEnvVer(),userAgent:getUserAgent(),model:getModel(),manufactor:t[1],pushDeviceInfo:{PRODUCT:r.model,DEVICE:r.model,MANUFACTURER:r.brand}}}function uploadFileFn(e){var t=getLogger(),r=e.headers||{};return e.md5&&(r["Content-MD5"]=e.md5),new Promise(((i,s)=>{var a=uni.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 a={};if("string"==typeof t.data)try{a=JSON.parse(t.data)}catch(r){e.onUploadInfo&&e.onUploadInfo({exception:`JSON parse error:${t.data}`}),s({code:t.statusCode,message:t.errMsg,rawData:t.data})}a.name=e.filePath,a.ext=a.name&&a.name.lastIndexOf(".")>-1?a.name.slice(a.name.lastIndexOf(".")+1).toLowerCase():"",i(a)}else e.onUploadInfo&&e.onUploadInfo({http_code:t.statusCode,exception:t.data,rsp_headers:t.header,req_headers:r}),s({code:t.statusCode,message:t.errMsg,rawData:t.data})},fail(t){e.onUploadInfo&&e.onUploadInfo({http_code:0,exception:t,req_headers:r}),"string"==typeof t.errMsg&&t.errMsg.indexOf("abort")>-1&&(t.code=de.V2NIM_ERROR_CODE_CANCELLED),t.message=t.errMsg,s(t)}}));try{e.onUploadStart&&e.onUploadStart(a)}catch(e){t.error("Adapter uploadFile: options.onUploadStart error",e&&e.message),a.abort(),s(e)}e.onUploadProgress&&a.onProgressUpdate((function(t){var r=t.totalBytesExpectedToWrite||t.totalBytesExpectedToSend,i=t.totalBytesWritten||t.totalBytesSent;e.onUploadProgress&&e.onUploadProgress({total:r,loaded:i,percentage:parseFloat((i/r).toFixed(2)),percentageText:t.progress+"%"})}))}))}function getFileUploadInformationFn(e){return null}class WebsocketFn{constructor(e,t=""){if(this.CONNECTING=0,this.OPEN=1,this.CLOSING=2,this.CLOSED=3,this.binaryType="",this.onclose=function(e){getLogger().log("Adapter uniapp: sockets on close ",e)},this.onerror=function(e){getLogger().error("Adapter uniapp: 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 r=this.protocol?{protocols:this.protocol}:{};this.socketTask=uni.connectSocket(Object.assign(Object.assign({url:this.url},r),{multiple:!0,fail:e=>{this.errorHandler(e)}})),this.socketTask.onOpen((e=>{getLogger().log("Adapter uniapp:: onOpen. event: ",e),this.readyState=this.OPEN,this.binaryType?this.onopen():this.onmessage&&this.onmessage({type:"open",header:e})})),this.socketTask.onError((e=>{getLogger().log("Adapter uniapp:: onError. event: ",e),this.errorHandler(e)})),this.socketTask.onClose((e=>{(this.readyState=this.CLOSED,"function"==typeof this.onclose)&&(this.onclose&&this.onclose(e),getLogger().log("Adapter uniapp:: onClose. event: ",e));this.socketTask=null})),this.socketTask.onMessage((e=>{var t;t="string"==typeof e.data||e.data instanceof ArrayBuffer?e.data:e.data.isBuffer&&"string"==typeof e.data.data?base64ToArrayBuffer(e.data.data):e.data.data,this.onmessage&&this.onmessage({data:t})}))}close(){getLogger().log("Adapter uniapp:: close uni socket actively"),this.socketTask.close({code:1e3,reason:"user force close websocket",complete:()=>{this.socketTask=null}})}send(e){if(this.readyState!==this.OPEN)throw new Error(`Adapter uniapp:: socket sendMsg when readyState=${this.readyState}`);if(!("string"==typeof e||e instanceof ArrayBuffer))throw new TypeError("Adapter uniapp:: socket sendMsg only String/ArrayBuffer supported");this.socketTask.send({data:e})}errorHandler(e){getLogger().error("Adapter uniapp:: errorHandler. event: ",e),this.readyState=this.CLOSED,this.onerror&&this.onerror({type:"error",message:e&&e.errMsg}),e.errMsg&&"[object Array]"===Object.prototype.toString.call(e.errMsg)&&(e.errMsg.indexOf("断裂管道")>0||e.errMsg.indexOf("broken pipe")>0)&&this.onclose&&this.onclose(e)}}var xe={},qe={};function createCmd(e,t,r,i){var s=xe[e];if(!s)return r.error("createCmd:: can not find cmd config: ",e),null;var a={SER:t,SID:s.sid,CID:s.cid,Q:[]};return s.params&&i&&s.params.forEach((function(e){var t=i[e.name];if(null!=t){var r=e.type,{reflectMapper:s,select:n}=e;switch(e.type){case"PropertyArray":r="ArrayMable",t=t.map((e=>({t:"Property",v:s?serialize(e,s,n):e})));break;case"Property":t=s?serialize(t,s,n):t;break;case"Bool":t=t?"true":"false"}a.Q.push({t:r,v:t})}})),{packet:a,hasPacketResponse:"boolean"!=typeof s.hasPacketResponse||s.hasPacketResponse,hasPacketTimer:"boolean"!=typeof s.hasPacketTimer||s.hasPacketTimer}}function parseCmd(e,t){var r;try{r=JSON.parse(e)}catch(r){return void t.error(`Parse command error:"${e}"`)}var i=r.sid+"_"+r.cid,s=r.r;if(["4_1","4_2","4_10","4_11"].includes(i)){var a=r.r[1].headerPacket;i=`${a.sid}_${a.cid}`,r.sid=a.sid,r.cid=a.cid,s=r.r[1].body}var n=qe[i],o=[];if(n&&n.length>0){for(var c of n)o.push(parseEachCmd(r,c.config,c.cmd,s,t));return o}t.error("parseCmd:: mapper not exist",i,r.code)}function parseEachCmd(e,t,r,i,s){var a,n={cmd:r,raw:e,error:null,service:null==t?void 0:t.service,content:{},__receiveTimeNode:TimeOrigin.getTimeNode()};(function isV2Sid(e){return[18,19,26,27,28,29,30,31,32,33,34,35,36].includes(e)})(t.sid)&&(e.code=function toReadableCode(e){if("number"!=typeof e||e!=e)throw new V2NIMErrorImpl({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;t-=t<=38?1:2;return 1e5+1e3*t+(511&e)}(e.code));var o=function genCmdError(e,t){var r=le[e],i=pe[e];return null===i?null:new V2NIMErrorImpl({code:e,desc:r||i||e,detail:{cmd:t,timetag:Date.now()}})}(e.code,r);if(n.error=o,n.error){if(n.error.detail.cmd=r,!(null===(a=null==t?void 0:t.ignoreErrCodes)||void 0===a?void 0:a.includes(e.code)))return n;s.warn("parseCmd:: ignore error ",n.error),n.error.detail.ignore=!0}return t.response&&t.response.forEach(((e,t)=>{var r=i[t],s=e.type,a=e.name,o=e.reflectMapper;if(void 0!==r)switch(s){case"Property":n.content[a]=o?deserialize(r,o):r;break;case"PropertyArray":n.content[a]=r.map((e=>o?deserialize(e,o):e));break;case"Int":case"Long":case"Byte":n.content[a]=+r;break;case"Bool":n.content[a]="true"===r||!0===r||1===r;break;default:n.content[a]=r}})),n}function serialize(e,t,r){var i={};for(var s in e=function flattenObjByMapper(e,t){var r={};for(var i in t){var s=t[i],a="number"==typeof s?i:s.access?s.access:i,n=a.split("."),o=e;for(var c of n){if(void 0===o[c]||null===o[c]){o=void 0;break}o=o[c]}void 0!==o&&(r[a]=o)}return r}(e,t),t){var a=t[s],n="number"==typeof a?s:a.access?a.access:s;if(!r||r.includes(s))if(n in e){if("number"==typeof a)i[a]=e[n];else if("object"==typeof a)if(a.converter){var o=a.converter(e[n],e);void 0!==o&&(i[a.id]=o)}else i[a.id]=e[n]}else"object"==typeof a&&a.def&&("function"==typeof a.def?i[a.id]=a.def(e):i[a.id]=a.def)}return i}function deserialize(e,t){var r={};for(var i in e){var s=t[i];if("string"==typeof s)r[s]=e[i];else if("object"==typeof s&&"prop"in s){var a=s.access?s.access:s.prop;if(s.converter){var n=s.converter(e[i],e);void 0!==n&&(r[a]=n)}else s.type&&"number"===s.type?r[a]=+e[i]:s.type&&"boolean"===s.type?r[a]=!("0"===e[i]||!e[i]):r[a]=e[i]}}for(var o in t){var c=t[o];if(c&&void 0!==c.def){var d=c.access?c.access:c.prop;d in r||("function"==typeof c.def?r[d]=c.def(e):r[d]=c.def)}}return r=function unflattenObj(e){var t={},_loop=function(r){var i=r.split(".");i.reduce((function(t,s,a){return t[s]||(t[s]=isNaN(Number(i[a+1]))?i.length-1==a?e[r]:{}:[])}),t)};for(var r in e)_loop(r);return t}(r),r}function registerParser(e){for(var t in Object.assign(xe,e.cmdConfig),e.cmdMap){var r=e.cmdMap[t],i=e.cmdConfig[r];if(i)if(Array.isArray(qe[t])){var s=!1;for(var a of qe[t])if(a.cmd===r&&a.config.service===i.service){s=!0;break}s||qe[t].push({config:i,cmd:r})}else qe[t]=[{config:i,cmd:r}]}}function invertSerializeMap(e){var t={};return Object.keys(e).forEach((r=>{t[r]=invertSerializeItem(e[r])})),t}function invertSerializeItem(e){var t={};for(var r in e){var i=e[r];"number"==typeof i?t[i]=r:"object"==typeof i&&(t[i.id]={prop:r,type:i.retType,access:i.retAccess?i.retAccess:i.access?i.access:r,def:i.retDef,converter:i.retConverter})}return t}function boolToInt(e){return e?1:0}function intToBool(e){return 1===parseInt(e)}function objectToJSONString(e){if(e&&"object"==typeof e)try{return JSON.stringify(e)}catch(e){return}}function stringToJSONObject(e){if(e&&"string"==typeof e)try{return JSON.parse(e)}catch(e){return}}var Be,Fe,je,$e,Ge,He={"1_2":"heartbeat","2_3":"login","2_5":"kicked","2_6":"logout","2_7":"nimLoginClientChange","2_8":"kick"},ze={login:{clientType:3,os:4,sdkVersion:6,appLogin:8,protocolVersion:9,pushTokenName:10,pushToken:11,deviceId:13,appkey:18,account:19,browser:24,clientSession:26,deviceInfo:32,isReactNative:112,token:1e3,customTag:38,customClientType:39,sdkHumanVersion:40,hostEnv:41,userAgent:42,libEnv:44,authType:115,loginExt:116},loginRes:{lastLoginDeviceId:17,customTag:38,connectionId:102,ip:103,port:104,country:106,loginTime:109,hasXMPush:111},loginPort:{type:3,os:4,mac:5,deviceId:13,account:19,deviceInfo:32,customTag:38,customClientType:39,connectionId:102,ip:103,port:104,time:109,pushType:110,hasTokenPreviously:111},aosPushInfo:{pushType:110,hasTokenPreviously:111}},Ye=invertSerializeMap(ze),Je={login:{sid:2,cid:3,service:"auth",params:[{type:"Property",name:"login",reflectMapper:ze.login}],response:[{type:"Property",name:"loginRes",reflectMapper:Ye.loginRes},{type:"PropertyArray",name:"loginPorts",reflectMapper:Ye.loginPort},{type:"Property",name:"aosPushInfo",reflectMapper:Ye.aosPushInfo}]},logout:{sid:2,cid:6,service:"auth"},heartbeat:{sid:1,cid:2,service:"auth"},kicked:{sid:2,cid:5,service:"auth",response:[{type:"Int",name:"clientType"},{type:"Int",name:"reason"},{type:"String",name:"ext"},{type:"Int",name:"customClientType"}]},nimLoginClientChange:{sid:2,cid:7,service:"auth",response:[{type:"Byte",name:"state"},{type:"PropertyArray",name:"datas",reflectMapper:Ye.loginPort}]},kick:{sid:2,cid:8,service:"auth",params:[{type:"StrArray",name:"deviceIds"}],response:[{type:"StrArray",name:"deviceIds"}]}};function format(e,t){if(!isPlainObject(t))return{};var r=JSON.parse(JSON.stringify(t)),i=doFormat(e,r);return JSON.parse(JSON.stringify(Object.assign(Object.assign({},r),i)))}function doFormat(e,t){if(!isPlainObject(t))return{};var r={};return Object.keys(e).forEach((i=>{var s=e[i].type;if("string"!=typeof s){var a=doFormat(e[i],t);Object.keys(a).length>0&&(r[i]=a)}else{var n=e[i],o=n.rawKey||i,c=We[s](t,o,n);void 0!==c&&(t[o]=void 0,r[i]=c)}})),r}!function(e){e[e.text=0]="text",e[e.image=1]="image",e[e.audio=2]="audio",e[e.video=3]="video",e[e.geo=4]="geo",e[e.notification=5]="notification",e[e.file=6]="file",e[e.tip=10]="tip",e[e.robot=11]="robot",e[e.g2=12]="g2",e[e.custom=100]="custom"}(Be||(Be={})),function(e){e[e.p2p=0]="p2p",e[e.team=1]="team",e[e.superTeam=5]="superTeam"}(Fe||(Fe={})),function(e){e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.PC=4]="PC",e[e.WindowsPhone=8]="WindowsPhone",e[e.Web=16]="Web",e[e.Server=32]="Server",e[e.Mac=64]="Mac",e[e.HarmonyOS=65]="HarmonyOS"}(je||(je={})),function(e){e[e.unread=1]="unread",e[e.read=2]="read",e[e.deleted=3]="deleted",e[e.sending=4]="sending",e[e.sendFailed=5]="sendFailed",e[e.sent=6]="sent",e[e.receipt=7]="receipt",e[e.refused=10]="refused"}($e||($e={})),function(e){e[e.default=0]="default",e[e.leave=1]="leave",e[e.roam=2]="roam"}(Ge||(Ge={}));var We={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,r){return r.values[e[t]]},object:function(e,t){if(void 0!==e[t])try{return JSON.parse(e[t])}catch(e){return{}}}};function formatReverse(e,t){if(!isPlainObject(t))return{};var r=JSON.parse(JSON.stringify(t)),i=doFormatReverse(e,r);return JSON.parse(JSON.stringify(Object.assign(Object.assign({},r),i)))}function doFormatReverse(e,t){if(!isPlainObject(t))return Object.keys(e).reduce(((t,r)=>(t[e[r].rawKey||r]=void 0,t)),{});var r={};return Object.keys(e).forEach((i=>{var s=e[i].type;if("string"!=typeof s){var a=doFormatReverse(e[i],t[i]);return Object.assign(r,a),void(t[i]=void 0)}var n=e[i],o=n.rawKey||i,c=Ke[s](t,i,n);t[o]=void 0,r[o]=c})),r}var Ke={number:function(e,t){return e[t]},string:function(e,t){return e[t]},boolean:function(e,t){return!0===e[t]?1:!1===e[t]?0:void 0},enum:function(e,t,r){return r.values[e[t]]},object:function(e,t){if(void 0!==e[t])try{return JSON.stringify(e[t])}catch(e){return""}}},Qe=Ke;function formatMultiPortLoginInfo(e,t){return e&&e.length>0?e.map((e=>Object.assign(Object.assign({},e),{account:e.account,connectionId:e.connectionId,deviceId:e.deviceId,ip:e.ip,mac:e.mac,os:e.os,type:getEnumKeyByEnumValue(je,e.type)||e.type,time:parseInt(e.time),online:3!==t}))):[]}var Xe={1:{reason:"samePlatformKick",message:"The same account is not allowed to multiple login at the same time"},2:{reason:"serverKick",message:"Kicked out by IM server"},3:{reason:"otherPlatformKick",message:"Kicked out by other client of your account"},4:{reason:"silentlyKick",message:"Quietly kicked"}};class Backoff{constructor(e={}){this.attempts=0,this.ms=e.min||100,this.max=e.max||1e4,this.jitter=e.jitter||0,this.factor=e.factor||2}duration(){var e,t=Math.pow(this.factor,this.attempts++);if(t===1/0||!isFinite(t))return 0|this.max;if(e=this.ms*t,!isFinite(e)||e>=this.max)return 0|this.max;if(this.jitter){var r=Math.random(),i=Math.floor(r*this.jitter*e);e=0==(1&Math.floor(10*r))?e-i:e+i,e=Math.max(Math.min(e,this.max),this.ms)}return 0|e}reset(){this.attempts=0}setMin(e){this.ms=e}setMax(e){this.max=e}setJitter(e){this.jitter=e}}var Ze,et=["disconnect","connect","heartbeat","message","json","event","ack","error","noop"],rt=["transport not supported","client not handshaken","unauthorized"],it=["reconnect"];class BaseWebsocket$1 extends ae{constructor(e,t,r){super(),this.websocket=null,this.socketConnectTimer=0,this.url="",this.linkSSL=!0,this.core=e,this.url=t,this.linkSSL=r,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,r]=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}"`,r=e.code;r="v2"===get(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 i=new V2NIMErrorImpl({code:r,detail:{reason:t,rawError:e}});this.logger.error(t),this.status="disconnected",this.emit("handshakeFailed",i)}}))):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 V2NIMErrorImpl({code:"v2"===get(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 ve.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,r=this.decodePacket(e.data);if(r)switch(r.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",r.data);break;case"event":r.name&&this.emit(r.name,r.args);break;case"error":"unauthorized"===r.reason?this.emit("connect_failed",r.reason):this.emit("error",r.reason),this.logger.error("imsocket::Websocket connect failed, onmessage type error. url: ",this.socketUrl),clearTimeout(this.socketConnectTimer),this.emit("handshakeFailed",new V2NIMErrorImpl({code:"v2"===get(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",r.type)}}encodePacket(e){var t,r,{type:i,id:s="",endpoint:a="",ack:n}=e,o=null;if(!i)return"";switch(i){case"error":t=e.reason?rt.indexOf(e.reason):"",r=e.advice?it.indexOf(e.advice):"",""===t&&""===r||(o=t+(""!==r?"+"+r:""));break;case"message":""!==e.data&&(o=e.data);break;case"event":t={name:e.name},t=e.args&&e.args.length?{name:e.name,args:e.args}:{name:e.name},o=JSON.stringify(t);break;case"json":o=JSON.stringify(e.data);break;case"connect":e.qs&&(o=e.qs);break;case"ack":o=e.ackId+(e.args&&e.args.length?"+"+JSON.stringify(e.args):"")}var c=[et.indexOf(i),s+("data"===n?"+":""),a];return null!=o&&c.push(o),c.join(":")}decodePacket(e){if(e)if("�"!=e.charAt(0)){var t=e.match(/([^:]+):([0-9]+)?(\+)?:([^:]+)?:?([\s\S]*)?/);if(t){var r,[,i,s,a,n,o]=t,c={type:et[+i],endpoint:n};switch(s&&(c.id=s,c.ack=!a||"data"),c.type){case"error":r=o.split("+"),c.reason=rt[+r[0]]||"";break;case"message":c.data=o||"";break;case"connect":c.qs=o||"";break;case"event":try{var d=JSON.parse(o);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(o)}catch(e){this.logger.error("imsocket::parseData::type::json error",e)}break;case"ack":if((r=o.match(/^([0-9]+)(\+)?(.*)/))&&(c.ackId=r[1],c.args=[],r[3]))try{c.args=r[3]?JSON.parse(r[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,r={data:e,type:"message",endpoint:""};null===(t=this.websocket)||void 0===t||t.send(this.encodePacket(r))}}function uniq(e){e=e||[];for(var t=[],r=0;r<e.length;r++)-1===t.indexOf(e[r])&&t.push(e[r]);return t}!function(e){e[e.ACTIVE=1]="ACTIVE",e[e.KICKED=2]="KICKED",e[e.OFFLINE=3]="OFFLINE"}(Ze||(Ze={}));class V1ClientSocket{constructor(e,t){this.linkUrls=[],this.isAutoReconnect=!1,this.packetTimeout=3e4,this.linkSSL=!0,this.packetSer=1,this.retryCount=0,this.reconnectTimer=0,this.backoff=new Backoff({max:8e3,min:1600,jitter:.01}),this.sendingCmdMap=new Map,this.pingTimer=0,this.hasNetworkListener=!1,this.core=e,t&&(this.auth=t),this.logger=e.logger,this.reporter=e.reporter,this.timerManager=e.timerManager}setSessionId(e){}setLinkSSL(e){this.linkSSL=e}connect(e={},t){return __awaiter(this,void 0,void 0,(function*(){if(validate({linkUrls:{type:"array",itemType:"string",required:!1}},e),!/^(unconnected|waitReconnect)$/.test(this.core.status)){var r=`Core socket status is ${this.core.status}, and would not connect`;return this.logger.warn(r),Promise.reject(r)}this.core.status="connecting",e.linkUrls&&e.linkUrls.length>0&&(this.linkUrls=e.linkUrls.concat(this.linkUrls),this.linkUrls=uniq(this.linkUrls)),0===this.linkUrls.length&&this.linkUrls.push(Se);for(var i=0;i<this.linkUrls.length;i++){var s=this.linkUrls[i],a=(new Date).getTime();try{return yield this.doConnect(s),this.core.status="connected",this.logger.log(`clientsocketV1::connect success with url: ${s}`),s}catch(e){var n=e;t&&t(n,s),this.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account,start_time:a,action:0,exception_service:6}),this.reporter.reportTraceUpdateV2("exceptions",{code:"number"==typeof n.code?n.code:0,description:n.message||`${n.code}`,operation_type:0,target:s},{asyncParams:ve.net.getNetworkStatus()}),this.reporter.reportTraceEnd("exceptions",1),this.logger.warn(`clientsocketV1::connect failed with url: ${s}`,e)}}throw 0===this.retryCount?this.doDisconnect(Ze.ACTIVE,"SocketHandshakeFailed"):this.doDisconnect(Ze.OFFLINE,"ReconnectHadRetryAllLinks"),new Error("clientSocketV1::socket xhr or socket connect failed")}))}doConnect(e){var t=!1;return new Promise(((r,i)=>{this.socket=new BaseWebsocket$1(this.core,e,this.linkSSL),this.socket.on("connect",(()=>{this.logger.log("clientSocketV1::on connect",e),this.core.reporterHookLinkKeep&&(this.core.reporterHookLinkKeep.start(),this.core.reporterHookLinkKeep.update({code:0,description:"connection begin",operation_type:0,target:e})),t=!0,r()})),this.socket.on("message",this.onMessage.bind(this)),this.socket.on("disconnect",(r=>__awaiter(this,void 0,void 0,(function*(){this.logger.log("clientSocketV1::socket on disconnect",r),this.core.reporterHookLinkKeep&&(yield this.core.reporterHookLinkKeep.update({code:(null==r?void 0:r.code)||0,description:(null==r?void 0:r.reason)||"socket on disconnect",operation_type:1,target:e}),this.core.reporterHookLinkKeep.end(!1)),t=!0,this.doDisconnect(Ze.OFFLINE,"SocketOnDisconnect")})))),this.socket.on("handshakeFailed",(e=>{t?this.ping():(this.logger.error(`clientsocketV1::handshake failed: "${e&&e.message}"`),this.cleanSocket()),t=!0,i(e)}))}))}cleanSocket(){this.socket&&("function"==typeof this.socket.removeAllListeners&&this.socket.removeAllListeners(),"function"==typeof this.socket.close&&this.socket.close(),this.socket=void 0)}beforeConnect(){this.reconnectTimer&&clearTimeout(this.reconnectTimer)}resetConnectStatus(){clearTimeout(this.reconnectTimer),this.backoff.reset(),this.retryCount=0,this.initOnlineListener()}doDisconnect(e,t,r){var i,s,a,n,o;if(this.logger.log(`doDisconnect:type:${e},description:${t}`),"unconnected"!==this.core.status){var c={1:"close",2:"kicked",3:"broken"}[e]||"";this.markAllCmdInvaild(new V2NIMErrorImpl({code:415,desc:"Packet timeout due to instance disconnect",detail:{reason:"Packet timeout due to instance disconnect",disconnect_reason:c}})),this.timerManager.destroy(),clearTimeout(this.pingTimer),this.cleanSocket();var d=!this.core.options.needReconnect||this.retryCount>=this.core.options.reconnectionAttempts;if(e===Ze.ACTIVE||d)this.logger.log("doDisconnect: emit disconnect, type "+e,d),this.core.status="unconnected",this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.core.eventBus.emit("disconnect"),this.core.emit("disconnect"),null===(i=this.auth)||void 0===i||i.emit("disconnect"),this.destroyOnlineListener();else if(e===Ze.KICKED){this.logger.log("doDisconnect: kicked"),this.core.status="unconnected",this.reconnectTimer&&clearTimeout(this.reconnectTimer);var l="string"==typeof t?{reason:"unknow",message:t}:t;this.core.eventBus.emit("kicked",l),this.core.emit("kicked",l),null===(s=this.auth)||void 0===s||s.emit("kicked",l),this.destroyOnlineListener()}else e===Ze.OFFLINE&&this.core.V1NIMLoginService.isManualLoginAttempt?(this.logger.log("doDisconnect: offline in manual login phase. no reconnect"),this.core.status="unconnected",this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.destroyOnlineListener()):e===Ze.OFFLINE&&(null===(n=null===(a=this.auth)||void 0===a?void 0:a.authenticator)||void 0===n?void 0:n.checkLoginTerminalCode(null==r?void 0:r.code))?(this.logger.log(`doDisconnect: login terminal code ${null==r?void 0:r.code}, no reconnect`),this.core.status="unconnected",this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.destroyOnlineListener(),this.core.eventBus.emit("disconnect"),this.core.emit("disconnect"),null===(o=this.auth)||void 0===o||o.emit("disconnect")):e===Ze.OFFLINE?(this.logger.log("doDisconnect: start to reconnect"),this.attempToReconnect()):this.logger.log("doDisconnect: nothing to do")}else this.logger.warn("doDisconnect:already unconnected")}attempToReconnect(){var e,t;if("waitReconnect"!==this.core.status){0===this.retryCount&&(this.core.eventBus.emit("disconnect"),this.core.emit("disconnect"),null===(e=this.auth)||void 0===e||e.emit("disconnect"));var r=this.backoff.duration();this.retryCount++,this.logger.log(`willReconnect ${this.retryCount} ${r}`),this.core.eventBus.emit("willReconnect",{retryCount:this.retryCount,duration:r}),this.core.emit("willReconnect",{retryCount:this.retryCount,duration:r}),null===(t=this.auth)||void 0===t||t.emit("willReconnect",{retryCount:this.retryCount,duration:r}),this.core.status="waitReconnect",this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=setTimeout((()=>__awaiter(this,void 0,void 0,(function*(){"waitReconnect"===this.core.status?!1===(yield ve.net.getNetworkStatus()).net_connect?(this.logger.log("doDisconnect: skip this reconnection attempt because network is offline"),this.core.status="connecting",this.retryCount>=this.core.options.reconnectionAttempts?this.doDisconnect(Ze.OFFLINE,"MaxReconnectionAttemptExceed"):this.attempToReconnect()):this.core.V1NIMLoginService.login({isAutoReconnect:!0}).catch((()=>{this.logger.error(`clientsocketV1::attempToReconnect failed ${this.retryCount}`)})):this.logger.warn(`doDisconnect: reconnectTimer status is ${this.core.status}, would not go on reconnecting`)}))),r)}else this.logger.warn("doDisconnect: already is waiting reconnect")}sendCmd(e,t,r){if("logined"!==this.core.status&&"login"!==e&&"chatroomLogin"!==e&&"qchatLogin"!==e)return this.logger.warn(`instance status is ${this.core.status}, so can not sendCmd ${e}`),Promise.reject({cmd:e,error:{code:"No_connected",message:"Connection not established",timetag:(new Date).getTime()}});if(!this.socket||!this.socket.send)return Promise.reject("No_socket");var i="heartbeat"!==e,s=i?this.packetSer++:0,a=createCmd(e,s,this.logger,t);if(!a){var n=`SendCmd ${s} ${e} error`;return this.logger.error(n),Promise.reject(new Error(n))}var{packet:o,hasPacketResponse:c,hasPacketTimer:d}=a,l=JSON.stringify(o);i&&(this.logger.getDebugMode()?this.logger.debug("clientsocketV1::sendCmd",e,`ser:${s}`,l):this.logger.log("clientsocketV1::sendCmd",e,`ser:${s}`));var m=(new Date).getTime();return new Promise(((i,a)=>{c&&this.sendingCmdMap.set(s,{cmd:e,params:t,callback:[i,a],timer:d?setTimeout((()=>{var t=new V2NIMErrorImpl({code:408,desc:"Packet Timeout",detail:{reason:"Packet Timeout",cmd:e,ser:s,timetag:Date.now()}});this.markCmdInvalid(s,t,e)}),r&&r.timeout?r.timeout:this.core.config.timeout):null});try{this.socket.send(l),c||i(o)}catch(t){var n=new V2NIMErrorImpl({code:415,detail:{reason:t&&t.message||"Unable to send packet",cmd:e,ser:s,timetag:Date.now(),rawError:t}});this.markCmdInvalid(s,n,e),a(t)}})).catch((e=>{var t;if(![408,415].includes(e.code))return Promise.reject(e);this.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account,trace_id:null===(t=this.socket)||void 0===t?void 0:t.sessionId,start_time:m,action:2,exception_service:6});var r=get(e,"data.disconnect_reason")||"",i=408===e.code?"Send failed due to timeout":"Send failed. Reason unknown";return i=415===e.code?JSON.stringify({disconnect_reason:r}):i,this.reporter.reportTraceUpdateV2("exceptions",{code:e.code||415,description:i,operation_type:1,target:`${o.SID}-${o.CID}`,context:`${o.SER}`},{asyncParams:ve.net.getNetworkStatus()}),this.reporter.reportTraceEnd("exceptions",1),Promise.reject(e)}))}onMessage(e){var t=parseCmd(e,this.logger);if(t&&t.length>0){var r=t[0],i=r.raw.ser;for(var s of(r.error&&this.logger.error("core:onMessage packet error",`${r.raw.sid}_${r.raw.cid}, ser:${i},`,r.error),"heartbeat"!==r.cmd&&(this.logger.getDebugMode()?this.logger.debug(`imsocket::recvCmd ser:${i}`,r.cmd,r.content):this.logger.log(`imsocket::recvCmd ser:${i}`,r.cmd)),t))this.packetHandler(s)}}packetHandler(e){var t,r,i,s;if(e){var a=e.raw.ser,n=this.sendingCmdMap.get(a);if(n&&n.cmd===e.cmd){var{callback:o,timer:c,params:d}=n;if(clearTimeout(c),e.params=d,this.sendingCmdMap.delete(a),"heartbeat"===e.cmd)return void o[0]();var l=null===(r=null===(t=this.core[e.service])||void 0===t?void 0:t.process)||void 0===r?void 0:r.call(t,e);l&&"function"==typeof l.then?l.then((e=>{o[0](e)})).catch((e=>{o[1](e)})):(this.logger.log("imsocket:: handlerFn without promise",e.service,e.cmd),o[0]())}else{var m=null===(s=null===(i=this.core[e.service])||void 0===i?void 0:i.process)||void 0===s?void 0:s.call(i,e);m&&"function"==typeof m.then&&m.catch((e=>{this.logger.error("imsocket::no obj cache, no process handler",e)}))}}}markCmdInvalid(e,t,r){var i=this.sendingCmdMap.get(e);if(i){var{callback:s,timer:a}=i;a&&clearTimeout(a),this.sendingCmdMap.delete(e),this.logger.warn(`packet ${e}, ${r} is invalid:`,t),s[1](t)}}markAllCmdInvaild(e){this.logger.log("markAllCmdInvaild",e),this.sendingCmdMap.forEach((t=>{var{callback:r,timer:i,cmd:s}=t;this.logger.log(`markAllCmdInvaild:: cmd "${s}"`),i&&clearTimeout(i),r[1](e)})),this.sendingCmdMap.clear()}ping(){var e;return __awaiter(this,void 0,void 0,(function*(){clearTimeout(this.pingTimer);try{yield this.sendCmd("heartbeat")}catch(t){if(yield this.testHeartBeat5Timeout())return this.core.reporterHookLinkKeep&&(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(Ze.OFFLINE,"PingError")}this.pingTimer=setTimeout((()=>{this.ping()}),3e4)}))}testHeartBeat5Timeout(){return __awaiter(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(`clientsocketV1:: test heartbeat ${e} Timeout`)}return!0}))}initOnlineListener(){this.hasNetworkListener||(this.logger.log("clientsocketV1::onlineListener:init"),this.hasNetworkListener=!0,ve.net.onNetworkStatusChange((e=>{this.logger.log("clientsocketV1::onlineListener:network change",e),e.isConnected&&"logined"===this.core.status?this.ping():e.isConnected&&"waitReconnect"===this.core.status?(this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.core.V1NIMLoginService.login({isAutoReconnect:!0}).catch((()=>{this.logger.error(`clientsocketV1::attempToReconnect failed ${this.retryCount}`)}))):e.isConnected||this.doDisconnect(Ze.OFFLINE,"OfflineListener")})))}destroyOnlineListener(){this.logger.log("clientsocketV1::onlineListener:destroy"),ve.net.offNetworkStatusChange(),this.hasNetworkListener=!1}disconnect(){switch(this.core.status){case"connected":case"logined":case"connecting":case"waitReconnect":return this.doDisconnect(Ze.ACTIVE,"UserActiveDisconnect"),Promise.resolve();default:return Promise.resolve()}}}class V1NIMLoginLbs{constructor(e){this.socketLinkUrls=[],this.timer=0,this.failedCount=0,this.core=e,this.auth=e.V1NIMLoginService,this.logger=this.core.logger}getLbsInfos(){return __awaiter(this,void 0,void 0,(function*(){if(this.socketLinkUrls.length>0){var e=this.socketLinkUrls;return this.socketLinkUrls=[],this.core.logger.log("V1NIMLoginService::getLbsInfos:use cache link",e),Promise.resolve(e)}this.core.reporterHookLBS.start(this.core.account);var t=uniq(this.auth.config.lbsUrls);try{var r=yield this.ladderLoad(t);if(200!==r.status||!r.data)throw this.core.logger.error("V1NIMLoginService::getLbsInfos:error status",r.status,r),new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:`V1NIMLoginService::getLbsInfos failed, status ${r.status}`}});this.success(r)}catch(e){var i=e;if(this.core.logger.error(`V1NIMLoginService::lbs getLbsInfos error, use default link: ${this.auth.config.linkUrl}. error:`,e),this.reportForFail(t[0],i.code,i.message),this.checkTerminator(i.code))throw e;this.socketLinkUrls=[this.auth.config.linkUrl]}return this.socketLinkUrls}))}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 pendingIsMiniappEnv()?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,r,i){this.timer&&clearTimeout(this.timer);var s=e[t];this.timer=setTimeout((()=>{s&&(this.setLadderTimer(e,t+1,r,i),this.core.logger.log(`V1NIMLoginService::getLbsInfos ${t}:`,this.processLbsUrl(s)),this.reportForLbsStart(s,t),this.requstLbs(s).then((e=>{this.reset(),r(Object.assign(Object.assign({},e),{url:s}))})).catch((r=>{var a;if(this.core.logger.warn(`V1NIMLoginService::getLbsInfos ${t} failed:`,r),this.failedCount+=1,this.reportForFailOnce(s,r.code,(null===(a=r.detail)||void 0===a?void 0:a.reason)||r.message),this.failedCount>=e.length||this.checkTerminator(r.code))return this.reset(),void i(r)})))}),2e3)}ladderLoad(e){return new Promise(((t,r)=>{e.length>1&&this.setLadderTimer(e,1,t,r);var i=e[0];this.core.logger.log("V1NIMLoginService::getLbsInfos 0:",i),this.reportForLbsStart(i,0),this.requstLbs(i).then((e=>{this.reset(),t(Object.assign(Object.assign({},e),{url:i}))})).catch((t=>{var s;this.failedCount+=1,this.core.logger.warn("V1NIMLoginService::getLbsInfos 0 failed:",t),this.reportForFailOnce(i,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(),r(t))}))}))}success(e){var t,r,i=e.data,s=[this.auth.config.linkUrl];get(i,"common.link")&&(s=get(i,"common.link").concat(s)),get(i,'common["link.default"]')&&(s=s.concat(get(i,'common["link.default"]'))),this.socketLinkUrls=s,i["nos-chunk"]&&(this.logger.log("getLbsInfos success. lbs.nos-chunk",i["nos-chunk"]),null===(t=this.core.cloudStorage)||void 0===t||t.setOptions({chunkUploadHost:i["nos-chunk"]})),Array.isArray(i.nosup)&&i.nosup.length>0&&(this.logger.log("getLbsInfos success. lbs.nosup",i.nosup),null===(r=this.core.cloudStorage)||void 0===r||r.setOptions({commonUploadHostBackupList:i.nosup,commonUploadHost:i.nosup[0]})),this.core.logger.log("V1NIMLoginService::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:ve.net.getNetworkStatus()})}reportForFailOnce(e,t,r){this.core.reporterHookLBS.updateComplete({target:e,code:t,body:r})}reportForFail(e,t,r){this.core.reporterHookLBS.end(!1),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"HTTP",target:e,description:r,code:t,succeed:!1},{asyncParams:ve.net.getNetworkStatus()})}reset(){this.socketLinkUrls=[],this.failedCount=0,clearTimeout(this.timer)}}class V1NIMLoginAuthenticator{constructor(e){this.core=e}verifyAuthentication(e=!1){var t,r,i;return __awaiter(this,void 0,void 0,(function*(){var s=this.core.options,a=ve.getSystemInfo(),n=Object.assign(Object.assign({},s),{appLogin:e?0:1,appkey:s.appkey,account:s.account,token:s.token,deviceId:this.core.auth.deviceId,clientSession:this.core.auth.clientSession,clientType:16,protocolVersion:1,sdkVersion:100971,sdkHumanVersion:"10.9.71",os:a.os,browser:a.browser,userAgent:this.core.options.loginSDKTypeParamCompat?"Native/10.9.71":a.userAgent.replace("{{appkey}}",s.appkey).slice(0,299),libEnv:this.core.options.loginSDKTypeParamCompat?void 0:a.libEnv,hostEnv:this.core.options.loginSDKTypeParamCompat?0:a.hostEnvEnum}),o=a.os.toLowerCase();if("UNIAPP"===ve.platform&&("ios"===o||"android"===o)){n.isReactNative=1,n.clientType="ios"===o?2:1;var c=!!(null===(t=this.core.offlinePush.authConfig)||void 0===t?void 0:t.honorCertificateName);a.pushDeviceInfo&&a.pushDeviceInfo.MANUFACTURER&&(n.deviceInfo=JSON.stringify(Object.assign({IS_SUPPORT_HONOR:c},a.pushDeviceInfo)))}this.core.logger.log(`clientSocketV1::do login,accid:${s.account};clientSession:${null===(i=null===(r=this.core.clientSocket)||void 0===r?void 0:r.socket)||void 0===i?void 0:i.sessionId}`);var d=yield this.core.clientSocket.sendCmd("login",{login:n});if(d.error)throw d.error;var{loginRes:l,loginPorts:m,aosPushInfo:p}=d.content,u=formatMultiPortLoginInfo(m,2);return(u=u.filter((e=>e.connectionId!==l.connectionId))).length>0&&this.core.emit("multiPortLogin",u),Object.assign(Object.assign({},l),{aosPushInfo:p})}))}checkLoginTerminalCode(e){if(void 0===e)return!1;return[201,302,317,403,404,417,422].includes(e)}}class V2Service extends ae{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 V2NIMErrorImpl({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 V2NIMErrorImpl({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"],r=this.handler&&this.handler[e.cmd+"Handler"];if("function"==typeof t||"function"==typeof r){if(e.error)return this.logger.error(`${e.cmd}::recvError`,e.error),Promise.reject(e.error);try{var i=t?t.call(this,e):r.call(this.handler,e);return Promise.resolve(i)}catch(e){return Promise.reject(e)}}var s=get(e,"error.detail.ignore");return e.error&&!s?Promise.reject(e.error):Promise.resolve(e)}}class Service$1{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 r=get(e,"error.detail.ignore");return e.error&&!r?Promise.reject(e.error):Promise.resolve(e)}}var st={"6_3":"notifylog","6_4":"uploadLog","6_23":"getServerTime","6_31":"notifyDetect","6_32":"uploadDetect","6_37":"wsDetect"},at={type:1,params:2,result:3,t1:100,t2:101,t3:102,t4:103,t5:104,t6:105},nt={k1:1,k2:2,k3:3,k4:4,k5:5,k6:6,k7:7,k8:8,k9:9,k10:10},ot={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:invertSerializeItem(at)}]},uploadDetect:{sid:6,cid:32,service:"misc",hasPacketResponse:!1,params:[{type:"Property",name:"data",reflectMapper:at}]},wsDetect:{sid:6,cid:37,service:"misc",params:[{type:"Property",name:"tag",reflectMapper:nt}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(nt)}]}},ct={type:{type:"number"},t1:{type:"number"},t2:{type:"number"},t3:{type:"number"},t4:{type:"number"},t5:{type:"number"},t6:{type:"number"}};class MiscService extends Service$1{constructor(e){super("misc",e),this.logLock=!1,this.core=e,registerParser({cmdMap:st,cmdConfig:ot}),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 __awaiter(this,void 0,void 0,(function*(){var e=yield this.core.clientSocket.sendCmd("getServerTime");return parseInt(e.content.time)}))}wsDetect(e){return __awaiter(this,void 0,void 0,(function*(){var t=Object.assign({k1:"val1",k2:"val2"},e),r=null;try{r=(yield this.core.clientSocket.sendCmd("wsDetect",{tag:t})).content.data}catch(e){var i=e;return void(i.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 ${i.code}`))}r&&JSON.stringify(r)!==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 __awaiter(this,void 0,void 0,(function*(){var t=function formatNotifyDetectTag(e){return format(ct,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 __awaiter(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){var r=t.indexOf("?")>0?"&":"?",i="string"==typeof e&&e.indexOf(".zip")>0?"zip":"log";t+=`${r}download=${Date.now()}_web.${i}`;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}}))}}var dt={needReconnect:!0,reconnectionAttempts:Number.MAX_SAFE_INTEGER,lbsUrls:Te,linkUrl:Se,xhrConnectTimeout:8e3,socketConnectTimeout:8e3,linkSSL:!0};function formatLoginInfo(e){return format({type:{type:"number"},port:{type:"number"},customClientType:{type:"number"},timestamp:{type:"number"},loginType:{type:"number"}},e)}var lt={"26_3":"v2Login","26_5":"v2Logout","26_8":"v2KickOffline","26_9":"v2BeKicked","26_10":"v2LoginClientChange","36_1":"v2GetChatroomLinkAddress"},mt={"1_2":"heartbeat","2_7":"nimLoginClientChange","24_8":"qchatLoginClientChange"},pt={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}},ut={v2Login:{sid:26,cid:3,service:"auth",params:[{type:"Property",name:"tag",reflectMapper:pt.webLoginReqTag}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(pt.mixAuthRepTag)},{type:"PropertyArray",name:"loginClients",reflectMapper:invertSerializeItem(pt.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:invertSerializeItem(pt.mixAuthRepTag)}]},v2GetChatroomLinkAddress:{sid:36,cid:1,service:"auth",params:[{type:"Long",name:"roomId"},{type:"Bool",name:"miniProgram"}],response:[{type:"StrArray",name:"linkAddress"}]}},ht={heartbeat:{sid:1,cid:2,service:"auth"},nimLoginClientChange:{sid:2,cid:7,service:"auth",response:[{type:"Byte",name:"state"},{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(pt.nimAuthRepTag)}]},qchatLoginClientChange:{sid:24,cid:8,service:"auth",response:[{type:"Byte",name:"state"},{type:"Property",name:"data",reflectMapper:invertSerializeItem(pt.qchatAuthRepTag)}]}},abs=function(e){var t;if(void 0!==e)return(t=BigNumber(e)).sign=1,t},isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},isValidType=function(e){return["number"==typeof e,"string"==typeof e&&e.length>0,isArray(e)&&e.length>0,e instanceof BigNumber].some((function(e){return!0===e}))},gt="Invalid Number",vt="Invalid Number - Division By Zero";function BigNumber(e){var t;if(!(this instanceof BigNumber))return new BigNumber(e);if(this.number=[],this.sign=1,this.rest=0,isValidType(e)){if(isArray(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=gt}BigNumber.prototype.addDigit=function(e){return function(e){return/^\d$/.test(e)}(e)?(this.number.push(e),this):(this.number=gt,!1)},BigNumber.prototype._compare=function(e){var t,r;if(!isValidType(e))return null;if(t=BigNumber(e),this.sign!==t.sign)return this.sign;if(this.number.length>t.number.length)return this.sign;if(this.number.length<t.number.length)return-1*this.sign;for(r=this.number.length-1;r>=0;r--){if(this.number[r]>t.number[r])return this.sign;if(this.number[r]<t.number[r])return-1*this.sign}return 0},BigNumber.prototype.gt=function(e){return this._compare(e)>0},BigNumber.prototype.gte=function(e){return this._compare(e)>=0},BigNumber.prototype.equals=function(e){return 0===this._compare(e)},BigNumber.prototype.lte=function(e){return this._compare(e)<=0},BigNumber.prototype.lt=function(e){return this._compare(e)<0},BigNumber.prototype.subtract=function(e){var t;return void 0===e?this:(t=BigNumber(e),this.sign!==t.sign?(this.number=BigNumber._add(this,t),this):(this.sign=this.lt(t)?-1:1,this.number=abs(this).lt(abs(t))?BigNumber._subtract(t,this):BigNumber._subtract(this,t),this))},BigNumber._add=function(e,t){var r,i=0,s=Math.max(e.number.length,t.number.length);for(r=0;r<s||i>0;r++)e.number[r]=(i+=(e.number[r]||0)+(t.number[r]||0))%10,i=Math.floor(i/10);return e.number},BigNumber._subtract=function(e,t){var r,i=0,s=e.number.length;for(r=0;r<s;r++)e.number[r]-=(t.number[r]||0)+i,e.number[r]+=10*(i=e.number[r]<0?1:0);for(r=0,s=e.number.length-1;0===e.number[s-r]&&s-r>0;)r++;return r>0&&e.number.splice(-r),e.number},BigNumber.prototype.multiply=function(e){if(void 0===e)return this;var t,r,i=BigNumber(e),s=0,a=[];if(this.isZero()||i.isZero())return BigNumber(0);for(this.sign*=i.sign,t=0;t<this.number.length;t++)for(s=0,r=0;r<i.number.length||s>0;r++)a[t+r]=(s+=(a[t+r]||0)+this.number[t]*(i.number[r]||0))%10,s=Math.floor(s/10);return this.number=a,this},BigNumber.prototype.divide=function(e){if(void 0===e)return this;var t,r,i=BigNumber(e),s=[],a=BigNumber(0);if(i.isZero())return this.number=vt,this;if(this.isZero())return this.rest=BigNumber(0),this;if(this.sign*=i.sign,i.sign=1,1===i.number.length&&1===i.number[0])return this.rest=BigNumber(0),this;for(t=this.number.length-1;t>=0;t--)for(a.multiply(10),a.number[0]=this.number[t],s[t]=0;i.lte(a);)s[t]++,a.subtract(i);for(t=0,r=s.length-1;0===s[r-t]&&r-t>0;)t++;return t>0&&s.splice(-t),this.rest=a,this.number=s,this},BigNumber.prototype.mod=function(e){return this.divide(e).rest},BigNumber.prototype.isZero=function(){var e;for(e=0;e<this.number.length;e++)if(0!==this.number[e])return!1;return!0},BigNumber.prototype.toString=function(){var e,t="";if("string"==typeof this.number)return this.number;for(e=this.number.length-1;e>=0;e--)t+=this.number[e];return this.sign>0?t:"-"+t};var yt,ft,It=Math.pow(2,32);function varintToBytes(e){for(var t=new Uint8Array(5),r=new DataView(t.buffer),i=0;0!=(4294967168&e);)r.setUint8(i++,127&e|128),e>>>=7;return r.setUint8(i++,127&e),t.slice(0,i)}function decodeText(e){return"function"==typeof TextDecoder?new TextDecoder("utf-8").decode(e):function textDecoder(e){for(var t="",r=0;r<e.length;){var i=e[r],s=0,a=0;if(i<=127?(s=0,a=255&i):i<=223?(s=1,a=31&i):i<=239?(s=2,a=15&i):i<=244&&(s=3,a=7&i),e.length-r-s>0)for(var n=0;n<s;)a=a<<6|63&(i=e[r+n+1]),n+=1;else a=65533,s=e.length-r;t+=String.fromCodePoint(a),r+=s+1}return t}(e)}class Unpack{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 decodeText(this.popVarbin())}catch(e){throw new Error(`UnpackException string ${e&&e.message}`)}}popInt(){try{var e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}catch(e){throw new Error(`UnpackException int ${e&&e.message}`)}}popVarInt(){var e=1,t=0,r=0,i=0;do{if(t+=(127&(r=this.popByte()))*e,e*=128,(i+=1)>5)throw new Error("Variable length quantity is too long")}while(0!=(128&r));return t}popLong(){try{var e=function getBigUint64(e,t=!1){var r=new DataView(e.buffer),[i,s]=t?[4,0]:[0,4],a=r.getUint32(i,t),n=r.getUint32(s,t);return a>0?a*It+n:n}(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 PacketDecoder{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 Unpack(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(),r=this.unpack.popByte(),i=this.unpack.popShort(),s=this.unpack.popByte(),a=200;return this.hasRescode(s)&&(a=this.unpack.popShort()),{packetLength:e,serviceId:t,commandId:r,serialId:i,tag:s,resCode:a}}hasRescode(e){return 0!=((e=e||this.tag)&PacketDecoder.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 r=0;r<e;r++){var i=this.unpack.popVarInt();this.bodyArr.push(`${i}:`);var s=this.unpack.popString();this.bodyArr.push(`"${s.length} ${this.unpack.getOffset()}",`),t[i]=s}return this.bodyArr.push("},"),t}unmarshalPropertyArray(){var e=this.unpack.popVarInt(),t=[];this.bodyArr.push(`\nPropertyArray(${e}) [`);for(var r=0;r<e;r++)t.push(this.unmarshalProperty());return this.bodyArr.push("],"),t}unmarshalLong(){var e=this.unpack.popLong();return this.bodyArr.push(`\nLong:${e}`),e}unmarshalLongArray(){var e=this.unpack.popVarInt(),t=[];this.bodyArr.push(`\nLongArray ${e}:`);for(var r=0;r<e;r++){var i=this.unpack.popLong();this.bodyArr.push(`${i},`),t.push(i)}return t}unmarshalStrArray(){var e=this.unpack.popVarInt(),t=[];this.bodyArr.push(`\nStrArray ${e}:`);for(var r=0;r<e;r++){var i=this.unpack.popString();this.bodyArr.push(`${i},`),t.push(i)}return t}unmarshalStrLongMap(){var e=this.unpack.popVarInt(),t={};this.bodyArr.push(`\nStrLongMap ${e}:`);for(var r=0;r<e;r++){var i=this.unpack.popString();this.bodyArr.push(`${i},`);var s=this.unpack.popLong();this.bodyArr.push(`${s};`),t[i]=s}return t}unmarshalStrStrMap(){var e=this.unpack.popVarInt(),t={};this.bodyArr.push(`\nStrStrMap ${e}:`);for(var r=0;r<e;r++){var i=this.unpack.popString();this.bodyArr.push(`${i},`);var s=this.unpack.popString();this.bodyArr.push(`${s};`),t[i]=s}return t}unmarshalLongLongMap(){var e=this.unpack.popVarInt(),t={};this.bodyArr.push(`\nStrLongLongMap ${e}:`);for(var r=0;r<e;r++){var i=this.unpack.popLong();this.bodyArr.push(`${i},`);var s=this.unpack.popLong();this.bodyArr.push(`${s};`),t[i]=s}return{m_map:t}}unmarshalKVArray(){var e=this.unpack.popVarInt(),t=[];this.bodyArr.push(`\nKVArray ${e}:`);for(var r=0;r<e;r++)t.push(this.unmarshalStrStrMap());return t}unmarshal(e){var t=Object.assign(Object.assign({},this.getHeader()),{r:[]});if(this.innerHeader&&(t.r[0]=this.msgId,t.r[1]={body:[],headerPacket:this.getInnerHeader()}),![200,406,808,810,7101].includes(t.code))return JSON.stringify(t);if(this.packetLength>0&&this.packetLength>this.unpack.length())throw new Error(`UnpackException packetLength(${this.packetLength}) greater than bufferLength(${this.unpack.length()})`);var r=[];return e&&e.forEach((e=>{if(!this.unpack.checkBufferBoundaryAccess())switch(e.type){case"PropertyArray":r.push(this.unmarshalPropertyArray());break;case"Property":r.push(this.unmarshalProperty());break;case"Byte":r.push(this.unpack.popByte());break;case"Int":r.push(this.unpack.popInt());break;case"Bool":r.push(this.unpack.popBoolean());break;case"Long":r.push(this.unmarshalLong());break;case"LongArray":r.push(this.unmarshalLongArray());break;case"String":r.push(this.unpack.popString());break;case"StrArray":r.push(this.unmarshalStrArray());break;case"StrStrMap":r.push(this.unmarshalStrStrMap());break;case"StrLongMap":r.push(this.unmarshalStrLongMap());break;case"LongLongMap":r.push(this.unmarshalLongLongMap());break;case"KVArray":r.push(this.unmarshalKVArray())}})),this.innerHeader?t.r[1].body=r:t.r=r,JSON.stringify(t)}}PacketDecoder.RES_CODE=2;class Pack{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 r=Math.ceil(t/this.pageSize)*this.pageSize,i=new Uint8Array(r);i.set(this.buffer),this.buffer=i,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 encodeText(e){if("function"==typeof TextEncoder)return(new TextEncoder).encode(e);var t=function textEncoder(e){for(var t=[],r=e.length,i=0;i<r;){var s=e.codePointAt(i),a=0,n=0;for(s<=127?(a=0,n=0):s<=2047?(a=6,n=192):s<=65535?(a=12,n=224):s<=2097151&&(a=18,n=240),t.push(n|s>>a),a-=6;a>=0;)t.push(128|s>>a&63),a-=6;i+=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=varintToBytes(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 setBigUint64(e,t=!1){var r=new Uint8Array(8),i=new DataView(r.buffer),s=Number(e>It-1?e/It:0),a=Number(4294967295&e),[n,o]=t?[4,0]:[0,4];return i.setUint32(n,s,t),i.setUint32(o,a,t),r}(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 setBigUint64ForNumberOverflow(e,t=!1){var r=new Uint8Array(8),i=new DataView(r.buffer),s=BigNumber(e).divide(It).number.reverse().join(""),a=BigNumber(e).mod(It).number.reverse().join(""),n=Number(s),o=Number(a),[c,d]=t?[4,0]:[0,4];return i.setUint32(c,n,t),i.setUint32(d,o,t),r}(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=varintToBytes(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 isConvertibleToNumber(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 isUndefinedOrNull(e){return null==e}class PacketEncoder{constructor(e,t,r){this.pack=new Pack,this.packetLength=0,this.serviceId=0,this.commandId=0,this.serialId=0,this.tag=0,this.serviceId=e,this.commandId=t,this.serialId=r}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=>!isUndefinedOrNull(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=>!isUndefinedOrNull(e))),r=t.length;this.pack.putVarInt(r),t.forEach((e=>{this.pack.putString(String(e))}))}marshalLongArray(e){var t=e.filter((e=>isConvertibleToNumber(e))),r=t.length;this.pack.putVarInt(r),t.forEach((e=>{this.putLong(e)}))}marshalStrStrMap(e){var t=Object.keys(e).filter((t=>!isUndefinedOrNull(e[t])&&!isUndefinedOrNull(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=>isConvertibleToNumber(e[t])&&!isUndefinedOrNull(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 r=Number(t);return isConvertibleToNumber(r)&&isConvertibleToNumber(e[r])}));this.pack.putVarInt(t.length),t.forEach((t=>{var r=Number(t);this.putLong(r),this.putLong(e[r])}))}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,r)=>{var i,s=t.type,a=null===(i=e[r])||void 0===i?void 0:i.v;if(!isUndefinedOrNull(a))switch(s){case"PropertyArray":this.marshalPropertyArray(a);break;case"Property":this.marshalProperty(a);break;case"Byte":if(!isConvertibleToNumber(a))return;this.pack.putByte(Number(a));break;case"Int":if(!isConvertibleToNumber(a))return;this.pack.putInt(Number(a));break;case"Bool":"false"===a?a=!1:"true"===a&&(a=!0),this.pack.putBoolean(a);break;case"Long":if(!isConvertibleToNumber(a))return;this.putLong(a);break;case"LongArray":this.marshalLongArray(a);break;case"String":this.pack.putString(String(a));break;case"StrArray":this.marshalStrArray(a);break;case"StrStrMap":this.marshalStrStrMap(a);break;case"StrLongMap":this.marshalStrLongMap(a);break;case"LongLongMap":this.marshalLongLongMap(a);break;case"KVArray":this.marshalKVArray(a)}})),this.pack.getBuffer()}reset(){this.pack.reset()}}class BaseWebsocket extends ae{constructor(e,t,r){super(),this.websocket=null,this.socketConnectTimer=0,this.linkSSL=!0,this.url="",this.core=e,this.url=t,this.linkSSL=r,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 V2NIMErrorImpl({code:"v2"===get(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 ve.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 V2NIMErrorImpl({code:"v2"===get(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 V2NIMErrorImpl({code:"v2"===get(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 PacketDecoder(e.data),r={sid:-1,cid:-1,ser:-1,packetLength:-1},i=null;try{t.unmarshalHeader(),r=t.getHeader(),i=t.getInnerHeader()}catch(t){this.reportBinaryError({err:t,sid:i?i.sid:null==r?void 0:r.sid,cid:i?i.cid:null==r?void 0:r.cid,rawBuf:e.data,type:"decode"})}var s=i?i.sid:r.sid,a=i?i.cid:r.cid,n=`${s}_${a}`,o=qe[n];if(o&&o.length>0){var c,d=o[0].config;try{c=t.unmarshal(d.response)}catch(i){var l=t.getBodyDetail();this.reportBinaryError({err:i,rawBuf:e.data,sid:s,cid:a,parseDetail:l,type:"decode"}),t.reset();var m=Object.assign(Object.assign({},r),{sid:s,cid:a,code:de.V2NIM_ERROR_CODE_UNPACK_ERROR});return this.logger.error(`imsocket::onMessage "${m.sid}_${m.cid}", ser ${m.ser}, packetLength ${m.packetLength} unmarshal error. ${l} \n`,i),void this.emit("message",JSON.stringify(m))}this.emit("message",c)}else this.core.logger.warn("imsocket::onMessage cmd not found",n);t.reset()}}send(e,t,r,i,s){var a,n,o=new PacketEncoder(e,t,r),c=xe[i],d="";try{d=JSON.stringify(s),n=o.marshal(JSON.parse(d),c.params)}catch(i){throw this.reportBinaryError({err:i,sid:e,cid:t,rawStr:d,type:"encode"}),o.reset(),new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_PACK_ERROR,detail:{reason:`${e}-${t}, ser ${r} marshal error`,rawError:i}})}null===(a=this.websocket)||void 0===a||a.send(n),o.reset()}reportBinaryError(e){var t,r,i,{err:s,rawStr:a,sid:n,cid:o,type:c,parseDetail:d}=e,l=e.rawBuf;if(l){try{i=function arrayBufferToBase64(e){if("function"!=typeof btoa)return"";for(var t="",r=new Uint8Array(e),i=r.byteLength,s=0;s<i;s++)t+=String.fromCharCode(r[s]);return r=null,btoa(t)}(l)}catch(e){i=`reportBinaryError::arrayBufferToBase64 parsing failed, error: ${null==e?void 0:e.message}, sid: ${n}, cid: ${o}`,this.core.logger.error(i)}l=null}this.core.reporter.reportTraceStart("exceptions",{user_id:null===(t=this.core.auth)||void 0===t?void 0:t.account,trace_id:null===(r=this.core.clientSocket.socket)||void 0===r?void 0:r.sessionId,start_time:Date.now(),action:2,exception_service:9});var m=s?(`${s.message};;;`||`${s.code};;;`)+(d?`parseDetail: ${d};;;`:"")+(a?` rawStr: ${a}`:"")+(i?` rawBuf: ${i}`:""):"";this.core.reporter.reportTraceUpdateV2("exceptions",{code:"encode"===c?de.V2NIM_ERROR_CODE_PACK_ERROR:de.V2NIM_ERROR_CODE_UNPACK_ERROR,description:m,operation_type:"encode"===c?3:4,target:`${n}-${o}`},{asyncParams:ve.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("exceptions",1)}}!function(e){e[e.ACTIVE=1]="ACTIVE",e[e.KICKED=2]="KICKED",e[e.OFFLINE=3]="OFFLINE"}(yt||(yt={}));class V2BinaryClientSocket{constructor(e){this.isReconnect=!1,this.packetTimeout=8e3,this.linkSSL=!0,this.packetSer=1,this.backoff=new Backoff({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 r,i;return __awaiter(this,void 0,void 0,(function*(){this.isReconnect=t;var s=this.core.auth.getConnectStatus();if(1===s){var a=`clientSocket::connect status is ${s}, and would not repeat connect`,n=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:a}});return this.logger.warn(a),Promise.reject(n)}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:ve.net.getNetworkStatus()}),this.auth.lifeCycle.processEvent("connectSucc")}catch(t){var o=t;if(this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:e,code:o.code||0,description:`connectFailed:${o.message}`,mixlink:!0,succeed:!1},{asyncParams:ve.net.getNetworkStatus()}),o.code===de.V2NIM_ERROR_CODE_CANCELLED||o.code===de.V2NIM_ERROR_CODE_TIMEOUT)throw null===(r=this.socket)||void 0===r||r.close(),null===(i=this.socket)||void 0===i||i.removeAllListeners(),this.socket=void 0,t;throw this.logger.warn(`clientSocketV2::connect failed with link url: ${e}`,o),this.auth.lifeCycle.processEvent("connectFail",o),t}}))}doConnect(e){var t=!1;return new Promise(((r,i)=>{this.socket=new BaseWebsocket(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,r()})),this.socket.on("message",this.onMessage.bind(this)),this.socket.on("disconnect",(r=>__awaiter(this,void 0,void 0,(function*(){t=!0,this.logger.log(`clientSocketV2::socket on disconnect ${e}`,r),yield this.core.reporterHookLinkKeep.update({code:(null==r?void 0:r.code)||0,description:(null==r?void 0:r.reason)||"socket on disconnect",operation_type:1,target:e}),this.core.reporterHookLinkKeep.end(!1),this.doDisconnect(yt.OFFLINE,"SocketOnDisconnect")})))),this.socket.on("connectFailed",(r=>{t?this.ping():(this.logger.error(`clientSocketV2::connectFailed:${e}, reason:${r&&r.message}`),this.cleanSocket()),t=!0,i(r)}))}))}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 r={1:"close",2:"kicked",3:"broken"}[e]||"";this.markAllCmdInvaild(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"Packet timeout due to instance disconnect",disconnect_reason:r}})),this.timerManager.destroy(),clearTimeout(this.pingTimer),this.cleanSocket(),e===yt.ACTIVE||e===yt.KICKED?this.destroyOnlineListener():e===yt.OFFLINE&&(this.auth.lifeCycle.processEvent("connectionBroken",new V2NIMErrorImpl({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,r){var i=this.core.auth.getLoginStatus(),s={cmd:e};if(1!==i&&!["v2Login","login","chatroomLogin","v2ChatroomLogin"].includes(e))return this.logger.warn(`clientSocketV2::NIM login status is ${i}, so can not sendCmd ${e}`),Promise.reject(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:Object.assign({reason:"Can not sendCmd due to no logined"},s)}));var a="heartbeat"!==e,n=a?this.packetSer++:0,o=createCmd(e,n,this.logger,t);if(!o){var c=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:Object.assign(Object.assign({},s),{reason:`SendCmd::createCmd error: ${n} ${e}`})});return this.logger.error(c),Promise.reject(c)}var{packet:d,hasPacketResponse:l,hasPacketTimer:m}=o,p=JSON.stringify(d);a&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${n}`,p):this.logger.log(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${n}`));var u=(new Date).getTime();return new Promise(((i,a)=>{l&&this.sendingCmdMap.set(n,{cmd:e,params:t,callback:[i,a],timer:m?setTimeout((()=>{var t=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,detail:Object.assign({ser:n,reason:`Packet Timeout: ser ${n} cmd ${e}`,timetag:(new Date).getTime()},s)});this.markCmdInvalid(n,t,e)}),r&&r.timeout?r.timeout:this.packetTimeout):null});try{this.socket.send(d.SID,d.CID,n,e,d.Q),l||i(d)}catch(t){var o=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED,detail:Object.assign({ser:n,reason:"Unable to send packet"+(t&&t.message?": "+t.message:""),timetag:(new Date).getTime(),rawError:t},s)});this.markCmdInvalid(n,o,e),a(o)}})).catch((e=>__awaiter(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:n},u),Promise.reject(t)):Promise.reject(t)}))))}reportSendCmdFailed(e,t,r){var i;this.reporter.reportTraceStart("exceptions",{user_id:this.core.auth.getLoginUser(),trace_id:null===(i=this.socket)||void 0===i?void 0:i.sessionId,start_time:r,action:2,exception_service:6});var s=get(e,"detail.disconnect_reason")||"",a=e.code===de.V2NIM_ERROR_CODE_DISCONNECT?JSON.stringify({disconnect_reason:s}):e.detail.reason;this.reporter.reportTraceUpdateV2("exceptions",{code:e.code,description:a,operation_type:1,target:`${t.sid}-${t.cid}`,context:`${t.ser}`},{asyncParams:ve.net.getNetworkStatus()}),this.reporter.reportTraceEnd("exceptions",1)}onMessage(e){var t=parseCmd(e,this.logger);if(t&&t.length>0){var r=t[0],i=r.raw.ser;for(var s of(r.error&&(this.logger.error("clientSocketV2::onMessage packet error",`${r.raw.sid}_${r.raw.cid}, ser:${i},`,r.error),r.error.code===de.V2NIM_ERROR_CODE_UNPACK_ERROR&&this.core.eventBus.emit("BinaryClientSocket/unpackError")),"heartbeat"!==r.cmd&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::recvCmd ${r.raw.sid}_${r.raw.cid},${r.cmd},ser:${i}`,e):this.logger.log(`clientSocketV2::recvCmd ${r.raw.sid}_${r.raw.cid},${r.cmd},ser:${i},code:${r.raw.code}`)),t))this.packetHandler(s)}}packetHandler(e){var t,r,i,s;if(e){var a=e.raw.ser,n=this.sendingCmdMap.get(a);if(n&&n.cmd===e.cmd){var{callback:o,timer:c,params:d}=n;if(clearTimeout(c),e.params=d,this.sendingCmdMap.delete(a),"heartbeat"===e.cmd)return void o[0]();var l=null===(r=null===(t=this.core[e.service])||void 0===t?void 0:t.process)||void 0===r?void 0:r.call(t,e);l&&"function"==typeof l.then?l.then((e=>{o[0](e)})).catch((e=>{o[1](e)})):(this.logger.log("clientSocketV2::handlerFn without promise",e.service,e.cmd),o[0](e))}else{var m=null===(s=null===(i=this.core[e.service])||void 0===i?void 0:i.process)||void 0===s?void 0:s.call(i,e);m&&"function"==typeof m.then&&m.catch((e=>{this.logger.error("clientSocketV2::no obj cache, no process handler",e)}))}}}markCmdInvalid(e,t,r){var i=this.sendingCmdMap.get(e);if(i){var{callback:s,timer:a}=i;a&&clearTimeout(a),this.sendingCmdMap.delete(e),this.logger.warn(`clientSocketV2::packet ${e}, ${r} is invalid:`,t),s[1](t)}}markAllCmdInvaild(e){this.logger.log("markAllCmdInvaild",e),this.sendingCmdMap.forEach((t=>{var{callback:r,timer:i,cmd:s}=t;this.logger.log(`clientSocketV2::markAllCmdInvaild:cmd ${s}`),i&&clearTimeout(i),r[1](e)})),this.sendingCmdMap.clear()}ping(){var e;return __awaiter(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(yt.OFFLINE,"PingError")}this.pingTimer=setTimeout((()=>{this.ping()}),3e4)}))}testHeartBeat5Timeout(){return __awaiter(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,ve.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(yt.OFFLINE,"OfflineListener")})))}destroyOnlineListener(){this.logger.log("clientSocketV2::onlineListener:destroy"),ve.net.offNetworkStatusChange(),this.hasNetworkListener=!1}}!function(e){e[e.ACTIVE=1]="ACTIVE",e[e.KICKED=2]="KICKED",e[e.OFFLINE=3]="OFFLINE"}(ft||(ft={}));class V2ClientSocket{constructor(e){this.isReconnect=!1,this.packetTimeout=8e3,this.linkSSL=!0,this.packetSer=1,this.backoff=new Backoff({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 r,i;return __awaiter(this,void 0,void 0,(function*(){this.isReconnect=t;var s=this.core.auth.getConnectStatus();if(1===s){var a=`clientSocket::connect status is ${s}, and would not repeat connect`,n=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:a}});return this.logger.warn(a),Promise.reject(n)}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:ve.net.getNetworkStatus()}),this.auth.lifeCycle.processEvent("connectSucc")}catch(t){var o=t;if(this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:e,code:o.code||0,description:`connectFailed:${o.message}`,mixlink:!0,succeed:!1},{asyncParams:ve.net.getNetworkStatus()}),o.code===de.V2NIM_ERROR_CODE_CANCELLED||o.code===de.V2NIM_ERROR_CODE_TIMEOUT)throw null===(r=this.socket)||void 0===r||r.close(),null===(i=this.socket)||void 0===i||i.removeAllListeners(),this.socket=void 0,t;throw this.logger.warn(`clientSocketV2::connect failed with link url: ${e}`,o),this.auth.lifeCycle.processEvent("connectFail",o),t}}))}doConnect(e){var t=!1;return new Promise(((r,i)=>{this.socket=new BaseWebsocket$1(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,r()})),this.socket.on("message",this.onMessage.bind(this)),this.socket.on("disconnect",(r=>__awaiter(this,void 0,void 0,(function*(){t=!0,this.logger.log("clientSocketV2::socket on disconnect",r),yield this.core.reporterHookLinkKeep.update({code:(null==r?void 0:r.code)||0,description:(null==r?void 0:r.reason)||"socket on disconnect",operation_type:1,target:e}),this.core.reporterHookLinkKeep.end(!1),this.doDisconnect(ft.OFFLINE,"SocketOnDisconnect")})))),this.socket.on("handshakeFailed",(e=>{t?this.ping():(this.logger.error(`clientSocketV2::handshake failed: "${e&&e.message}"`),this.cleanSocket()),t=!0,i(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 r={1:"close",2:"kicked",3:"broken"}[e]||"";this.markAllCmdInvaild(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"Packet timeout due to instance disconnect",disconnect_reason:r}})),this.timerManager.destroy(),clearTimeout(this.pingTimer),this.cleanSocket(),e===ft.ACTIVE||e===ft.KICKED?this.destroyOnlineListener():e===ft.OFFLINE&&(this.auth.lifeCycle.processEvent("connectionBroken",new V2NIMErrorImpl({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,r){var i=this.core.auth.getLoginStatus(),s={cmd:e};if(1!==i&&!["v2Login","login","chatroomLogin","v2ChatroomLogin"].includes(e))return this.logger.warn(`clientSocketV2::NIM login status is ${i}, so can not sendCmd ${e}`),Promise.reject(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:Object.assign({reason:"Can not sendCmd due to no logined"},s)}));var a="heartbeat"!==e,n=a?this.packetSer++:0,o=createCmd(e,n,this.logger,t);if(!o){var c=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:Object.assign(Object.assign({},s),{reason:`SendCmd::createCmd error: ${n} ${e}`})});return this.logger.error(c),Promise.reject(c)}var{packet:d,hasPacketResponse:l,hasPacketTimer:m}=o,p=JSON.stringify(d);a&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${n}`,p):this.logger.log(`clientSocketV2::sendCmd: ${d.SID}_${d.CID},${e},ser:${n}`));var u=(new Date).getTime();return new Promise(((i,a)=>{l&&this.sendingCmdMap.set(n,{cmd:e,params:t,callback:[i,a],timer:m?setTimeout((()=>{var t=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,detail:Object.assign({ser:n,reason:`Packet Timeout: ser ${n} cmd ${e}`,timetag:(new Date).getTime()},s)});this.markCmdInvalid(n,t,e)}),r&&r.timeout?r.timeout:this.packetTimeout):null});try{this.socket.send(p),l||i(d)}catch(t){var o=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED,detail:Object.assign({ser:n,reason:"Unable to send packet"+(t&&t.message?": "+t.message:""),timetag:(new Date).getTime(),rawError:t},s)});this.markCmdInvalid(n,o,e),a(o)}})).catch((e=>__awaiter(this,void 0,void 0,(function*(){var t,r=e;if(![de.V2NIM_ERROR_CODE_DISCONNECT,de.V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT,de.V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED].includes(r.code))return Promise.reject(r);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 i=get(r,"detail.disconnect_reason")||"",s=r.code===de.V2NIM_ERROR_CODE_DISCONNECT?JSON.stringify({disconnect_reason:i}):r.detail.reason;return this.reporter.reportTraceUpdateV2("exceptions",{code:r.code,description:s,operation_type:1,target:`${d.SID}-${d.CID}`,context:`${d.SER}`},{asyncParams:ve.net.getNetworkStatus()}),this.reporter.reportTraceEnd("exceptions",1),Promise.reject(r)}))))}onMessage(e){var t=parseCmd(e,this.logger);if(t&&t.length>0){var r=t[0],i=r.raw.ser;for(var s of(r.error&&this.logger.error("clientSocketV2::onMessage packet error",`${r.raw.sid}_${r.raw.cid}, ser:${i},`,r.error),"heartbeat"!==r.cmd&&(this.logger.getDebugMode()?this.logger.debug(`clientSocketV2::recvCmd ${r.raw.sid}_${r.raw.cid},${r.cmd},ser:${i}`,r.content):this.logger.log(`clientSocketV2::recvCmd ${r.raw.sid}_${r.raw.cid},${r.cmd},ser:${i};code:${r.raw.code}`)),t))this.packetHandler(s)}}packetHandler(e){var t,r,i,s;if(e){var a=e.raw.ser,n=this.sendingCmdMap.get(a);if(n&&n.cmd===e.cmd){var{callback:o,timer:c,params:d}=n;if(clearTimeout(c),e.params=d,this.sendingCmdMap.delete(a),"heartbeat"===e.cmd)return void o[0]();var l=null===(r=null===(t=this.core[e.service])||void 0===t?void 0:t.process)||void 0===r?void 0:r.call(t,e);l&&"function"==typeof l.then?l.then((e=>{o[0](e)})).catch((e=>{o[1](e)})):(this.logger.log("clientSocketV2::handlerFn without promise",e.service,e.cmd),o[0](e))}else{var m=null===(s=null===(i=this.core[e.service])||void 0===i?void 0:i.process)||void 0===s?void 0:s.call(i,e);m&&"function"==typeof m.then&&m.catch((e=>{this.logger.error("clientSocketV2::no obj cache, no process handler",e)}))}}}markCmdInvalid(e,t,r){var i=this.sendingCmdMap.get(e);if(i){var{callback:s,timer:a}=i;a&&clearTimeout(a),this.sendingCmdMap.delete(e),this.logger.warn(`clientSocketV2::packet ${e}, ${r} is invalid:`,t),s[1](t)}}markAllCmdInvaild(e){this.logger.log("markAllCmdInvaild",e),this.sendingCmdMap.forEach((t=>{var{callback:r,timer:i,cmd:s}=t;this.logger.log(`clientSocketV2::markAllCmdInvaild:cmd ${s}`),i&&clearTimeout(i),r[1](e)})),this.sendingCmdMap.clear()}ping(){var e;return __awaiter(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(ft.OFFLINE,"PingError")}this.pingTimer=setTimeout((()=>{this.ping()}),3e4)}))}testHeartBeat5Timeout(){return __awaiter(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,ve.net.onNetworkStatusChange((e=>{this.logger.log("clientSocketV2::onlineListener:network change",e);var t=this.auth.getConnectStatus(),r=this.auth.getLoginStatus();e.isConnected&&1===r?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(ft.OFFLINE,"OfflineListener")})))}destroyOnlineListener(){this.logger.log("clientSocketV2::onlineListener:destroy"),ve.net.offNetworkStatusChange(),this.hasNetworkListener=!1}}class V2NIMLoginReconnect{constructor(e){var t,r;this.currenRetryCount=0,this.backoff=new Backoff({max:8e3,min:1600,jitter:.01}),this.reconnectTimer=0,this.core=e,this.auth=e.V2NIMLoginService,null===(r=(t=ve.powerMonitor).on)||void 0===r||r.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),ve.powerMonitor.destroy(),null===(t=(e=ve.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(!ve.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(yt.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}}class V2NIMLoginLbs{constructor(e){this.socketLinkUrls=[],this.timer=0,this.failedCount=0,this.core=e,this.auth=e.V2NIMLoginService}getLbsInfos(){return __awaiter(this,void 0,void 0,(function*(){if(this.socketLinkUrls.length>0){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=uniq(this.auth.config.lbsUrls);try{var r=yield this.ladderLoad(t);if(200!==r.status||!r.data)throw this.core.logger.error("V1NIMLoginService::getLbsInfos:error status",r.status,r),new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:`V2NIMLoginService::getLbsInfos failed, status ${r.status}`}});this.success(r)}catch(e){var i=e;if(this.core.logger.error(`V2NIMLoginService::lbs getLbsInfos error, use default link: ${this.auth.config.linkUrl}. error:`,e),this.reportForFail(t[0],i.code,i.message),this.checkTerminator(i.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 pendingIsMiniappEnv()?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,r,i){this.timer&&clearTimeout(this.timer);var s=e[t];this.timer=setTimeout((()=>{s&&(this.setLadderTimer(e,t+1,r,i),this.core.logger.log(`V2NIMLoginService::getLbsInfos ${t}:`,this.processLbsUrl(s)),this.reportForLbsStart(s,t),this.requstLbs(s).then((e=>{this.reset(),r(Object.assign(Object.assign({},e),{url:s}))})).catch((r=>{var a;if(this.core.logger.warn(`V2NIMLoginService::getLbsInfos ${t} failed:`,r),this.failedCount+=1,this.reportForFailOnce(s,r.code,(null===(a=r.detail)||void 0===a?void 0:a.reason)||r.message),this.failedCount>=e.length||this.checkTerminator(r.code))return this.reset(),void i(r)})))}),2e3)}ladderLoad(e){return new Promise(((t,r)=>{e.length>1&&this.setLadderTimer(e,1,t,r);var i=e[0];this.core.logger.log("V2NIMLoginService::getLbsInfos 0:",i),this.reportForLbsStart(i,0),this.requstLbs(i).then((e=>{this.reset(),t(Object.assign(Object.assign({},e),{url:i}))})).catch((t=>{var s;this.failedCount+=1,this.core.logger.warn("V2NIMLoginService::getLbsInfos 0 failed:",t),this.reportForFailOnce(i,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(),r(t))}))}))}success(e){var t,r,i=e.data.common,s=i["mix.link"]||[],a=i["link.default"]||[];this.socketLinkUrls=s.concat(a).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===(r=this.core.cloudStorage)||void 0===r?void 0:r.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:ve.net.getNetworkStatus()})}reportForFailOnce(e,t,r){this.core.reporterHookLBS.updateComplete({target:e,code:t,body:r})}reportForFail(e,t,r){this.core.reporterHookLBS.end(!1),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"HTTP",target:e,description:r,code:t,succeed:!1},{asyncParams:ve.net.getNetworkStatus()})}reset(){this.socketLinkUrls=[],this.failedCount=0,clearTimeout(this.timer)}}class V2NIMLoginAuthenticator{constructor(e){this.lastLoginClientKey="__NIM_LAST_LOGIN_CLIENT__",this.loginClients=[],this.loginClientOfThisConnection={},this.core=e,this.auth=e.V2NIMLoginService}verifyAuthentication(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){var i=yield this.auth.doLoginStepsManager.add(this.refreshLoginToken(this.auth.account)),s=yield this.auth.doLoginStepsManager.add(this.refreshThirdPartyExt(this.auth.account));this.auth.token=i;var a,n=ve.getSystemInfo(),o={appkey:this.core.options.appkey,account:this.auth.account,token:i,authType:this.auth.loginOption.authType,appLogin:e?0:1,clientType:16,clientSession:this.auth.clientSession,clientId:this.auth.deviceId,sdkVersion:100971,userAgent:this.core.options.loginSDKTypeParamCompat?"Native/10.9.71":n.userAgent.replace("{{appkey}}",this.core.options.appkey).slice(0,299),libEnv:this.core.options.flutterSdkVersion?"FLUTTER":this.core.options.loginSDKTypeParamCompat?void 0:n.libEnv,hostEnv:this.core.options.flutterSdkVersion?4:this.core.options.loginSDKTypeParamCompat?0:n.hostEnvEnum,sdkHumanVersion:this.core.options.flutterSdkVersion||"10.9.71",os:n.os,browser:n.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===(r=this.auth.loginOption.routeConfig)||void 0===r?void 0:r.routeEnvironment},c=n.os.toLowerCase(),d=110===n.hostEnvEnum;"UNIAPP"===ve.platform&&d?(o.isReactNative=1,o.clientType="ios"===c?2:"android"===c?1:65,n.pushDeviceInfo&&n.pushDeviceInfo.MANUFACTURER&&(o.deviceInfo=JSON.stringify(Object.assign({IS_SUPPORT_HONOR:!0},n.pushDeviceInfo)))):"React Native"===ve.platform&&(this.core.logger.log("V2NIMLoginService deviceInfo",this.core.V2NIMLoginService.deviceInfo,"os",c),o.isReactNative=1,o.clientType="ios"===c?2:1,o.deviceInfo=JSON.stringify(Object.assign({IS_SUPPORT_HONOR:!0},this.core.V2NIMLoginService.deviceInfo))),this.core.logger.log(`V2NIMLoginService::do login,accid:${o.account};clientSession:${o.clientSession};appLogin:${o.appLogin}`);try{a=yield this.auth.doLoginStepsManager.add(this.auth.clientSocket.sendCmd("v2Login",{tag:o}))}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:ve.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:m,loginClients:p}=a.content;return this.changeLoginClient(1,p),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"protocol",target:"26-3",code:200,succeed:!0},{asyncParams:ve.net.getNetworkStatus()}),this.loginClientOfThisConnection=formatLoginInfo(m),this.core.clientSocket.setSessionId(m.consid),ve.localStorage.setItem(this.lastLoginClientKey,JSON.stringify(Object.assign({account:this.auth.account},this.loginClientOfThisConnection))),this.loginClientOfThisConnection}))}refreshLoginToken(e){return __awaiter(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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,detail:{reason:"Excute tokenProvider complete but got Unexpected value",rawData:t}})}catch(e){var r=e,i=r;throw r.code!==de.V2NIM_ERROR_CODE_CALLBACK_FAILED&&(this.core.logger.error("V2NIMLoginService::excute tokenProvider error:",r),i=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,desc:"Excute tokenProvider error",detail:{rawError:e}})),this.processLoginFailed(r),i}}))}refreshThirdPartyExt(e){return __awaiter(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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,detail:{reason:"Excute loginExtensionProvider complete but got Unexpected value",rawData:t}})}catch(e){var r=e,i=r;if(r.code!==de.V2NIM_ERROR_CODE_CALLBACK_FAILED&&(this.core.logger.error("V2NIMLoginService::excute loginExtensionProvider error:",r),i=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CALLBACK_FAILED,detail:{reason:"Excute loginExtensionProvider error",rawError:e}})),2===this.auth.loginOption.authType)throw this.processLoginFailed(r),i;return""}}))}processLoginFailed(e){this.auth.clientSocket.doDisconnect(yt.ACTIVE,e),this.checkLoginTerminalCode(e.code)&&(this.auth.authenticator.reset(),this.auth.authenticator.clearLastLoginClient()),this.auth.lifeCycle.processEvent("loginFail",e)}changeLoginClient(e,t){var r=t.map((e=>formatLoginInfo(e)));if(1===e)this.loginClients=r,this.auth.emit("onLoginClientChanged",e,this.loginClients);else if(2===e){var i=r.filter((e=>{var t=this.loginClients.filter((t=>t.clientId===e.clientId));return this.loginClients.push(e),0===t.length}));i.length>0&&this.auth.emit("onLoginClientChanged",e,i)}else if(3===e){var s=r.filter((e=>(function remove(e,t){t=t||(()=>!0);for(var r=[],i=(e=e||[]).length,s=0,a=0;a<i;a++)t(e[a-s])&&(r.push(e.splice(a-s,1)[0]),s+=1);return r}(this.loginClients,(t=>t.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=ve.localStorage.getItem(this.lastLoginClientKey);if(!t)return!1;var r="",i="";try{var s=JSON.parse(t);r=get(s,"clientId"),i=get(s,"account")}catch(e){return!1}return r===this.auth.deviceId&&i===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(){ve.localStorage.removeItem(this.lastLoginClientKey)}}class V2NIMLoginLifeCycle{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,r){var i=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",r);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`,r),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!==i&&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 r=this.connectStatus;this.connectStatus=e,this.auth.emit("onConnectStatus",e),this.delegateConnectEvent(r,e,t)}}delegateConnectEvent(e,t,r){1===e&&0===t&&r&&this.auth.emit("onDisconnected",r),2===e&&0===t&&r&&this.auth.emit("onConnectFailed",r)}}class V2NIMLoginDataSync{constructor(e){this.core=e,this.auth=e.V2NIMLoginService,this.datas=[]}switchDataSync(e){return __awaiter(this,void 0,void 0,(function*(){var{type:t,state:r,error:i,subType:s}=e,a=this.datas.filter((e=>e.type===t&&e.subType===s));a.length>0?(a[0].state=r,a[0].error=i):this.datas.push({type:t,state:r,subType:s});var n=this.datas.every((e=>3===e.state));1===t&&(2===r&&"mainSync"===s?(this.core.eventBus.emit("V2NIMLoginService/syncing"),this.auth.emit("onDataSync",t,r)):3===r&&n&&(this.core.eventBus.emit("V2NIMLoginService/syncDone",i),this.auth.emit("onDataSync",t,r,i)))}))}checkSyncing(){return this.datas.some((e=>"mainSync"===e.subType&&2===e.state))}reset(){this.datas=[]}}function pick(e,t){e=e||{};var r={};return(t=t||[]).forEach((t=>{void 0!==e[t]&&(r[t]=e[t])})),r}var Mt={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}}}},St={retryCount:3,timeout:6e4,forceMode:!1,authType:0,syncLevel:0};function invert(e){e=e||{};var t={};for(var r in e)t[e[r]]=r;return t}var Tt,_t=invert({none:0,normal:1,all:3}),Ct={normal:0,advanced:1},Et=invert(Ct),bt=invert({normal:0,owner:1,manager:2}),Nt={noVerify:0,needVerify:1,rejectAll:2},At=invert(Nt),Rt={needVerify:0,noVerify:1},Ot=invert(Rt),kt={manager:0,all:1},wt=invert(kt),Pt={manager:0,all:1},Vt=invert(Pt),Lt={manager:0,all:1},Ut=invert(Lt);function formatTeam(e){var t={type:Et,muteType:_t,joinMode:At,beInviteMode:Ot,inviteMode:wt,updateTeamMode:Vt,updateExtMode:Ut},r=__rest(e,["bits"]);return["teamId"].forEach((e=>{r[e]&&(r[e]=r[e].toString())})),["level","memberNum","memberUpdateTime","createTime","updateTime"].forEach((e=>{void 0!==r[e]&&(r[e]=parseInt(r[e]))})),["valid","validToCurrentUser","mute"].forEach((e=>{void 0!==r[e]&&(r[e]=1===parseInt(r[e]))})),Object.keys(t).forEach((e=>{void 0!==r[e]&&(r[e]=t[e][r[e]]||r[e])})),r}function formatTeams(e){return e&&e.length>0?e.map((e=>formatTeam(e))):[]}function generateTeam(e){var t=Object.assign({},e),r={type:Ct,joinMode:Nt,beInviteMode:Rt,inviteMode:kt,updateTeamMode:Pt,updateExtMode:Lt};return["avatar","name","intro","announcement","ext"].forEach((e=>{void 0!==t[e]&&(t[e]=t[e].toString())})),Object.keys(r).forEach((e=>{void 0!==t[e]&&(t[e]=r[e][t[e]])})),t}function generatorTeamMemberForCmd(e){var t={};return void 0!==e.bitConfigMask&&(t.bits=parseInt(e.bitConfigMask)),["teamId","ext","account","nickInTeam"].forEach((r=>{e[r]&&(t[r]=e[r].toString())})),Object.prototype.hasOwnProperty.call(e,"nickInTeam")&&(t.nickInTeam=e.nickInTeam),t}function formatTeamMember(e){var t={type:bt},{bits:r}=e,i=__rest(e,["bits"]);return void 0!==r&&(i.muteTeam=1===parseInt(r),i.bitConfigMask=r),i.id=`${i.teamId}-${i.account}`,["teamId"].forEach((e=>{i[e]&&(i[e]=i[e].toString())})),["joinTime","updateTime","bitConfigMask"].forEach((e=>{void 0!==i[e]&&(i[e]=parseInt(i[e]))})),["active","valid","mute"].forEach((e=>{void 0!==i[e]&&(i[e]=1===parseInt(i[e]))})),Object.keys(t).forEach((e=>{void 0!==i[e]&&(i[e]=t[e][i[e]]||i[e])})),i}function formatTeamMembers(e){return e&&e.length>0?e.map((e=>formatTeamMember(e))):[]}function generatorMemberByTeam(e,t,r="normal"){return{id:`${e.teamId}-${t}`,teamId:e.teamId,account:t,type:r,nickInTeam:"",muteTeam:!1,mute:!1,joinTime:e.memberUpdateTime,updateTime:e.memberUpdateTime,active:!0,valid:!0}}function generatorMembersByTeam(e,t,r="normal"){return t&&t.length>0?t.map((t=>generatorMemberByTeam(e,t,r))):[]}function formatUser(e){var t=Object.assign({},e);return t.createTime&&(t.createTime=+t.createTime),t.updateTime&&(t.updateTime=+t.updateTime),t.gender&&(t.gender=Tt[+t.gender]),t}!function(e){e[e.unknown=0]="unknown",e[e.male=1]="male",e[e.female=2]="female"}(Tt||(Tt={}));var Dt={"8_1":"createTeam","8_5":"addTeamMembers","8_6":"removeTeamMembers","8_7":"updateTeamInfo","8_8":"leaveTeam","8_9":"getTeamInfo","8_10":"getTeams","8_11":"getTeamMembers","8_12":"dismissTeam","8_13":"applyTeam","8_14":"passTeamApply","8_15":"rejectTeamApply","8_16":"addTeamManagers","8_17":"removeTeamManagers","8_18":"transferTeam","8_19":"updateMyMemberInfo","8_20":"updateNickInTeam","8_21":"acceptTeamInvite","8_22":"rejectTeamInvite","8_25":"muteTeamMember","8_27":"getMutedTeamMembers","8_28":"sendTeamMsgReceipt","8_29":"getTeamMsgReads","8_30":"getTeamMsgReadAccounts","8_31":"notifyTeamMsgReceipts","8_32":"muteTeam","8_33":"getTeamMemberInvitorAccid","8_34":"getTeamsById","8_101":"syncCreateTeam","8_109":"syncTeams","8_119":"syncUpdateTeamMember","8_126":"syncMyTeamMembers"},xt={team:{teamId:1,name:3,type:4,owner:5,level:6,selfCustom:7,valid:8,memberNum:9,memberUpdateTime:10,createTime:11,updateTime:12,validToCurrentUser:13,intro:14,announcement:15,joinMode:16,bits:17,ext:18,serverExt:19,avatar:20,beInviteMode:21,inviteMode:22,updateTeamMode:23,updateExtMode:24,mute:100,muteType:101},teamMsgReceiptTag:{teamId:0,idServer:1,read:100,unread:101,idClient:102,account:103},teamMember:{teamId:1,account:3,type:4,nickInTeam:5,bits:7,active:8,valid:9,joinTime:10,updateTime:11,ext:12,mute:13,invitorAccid:14}},qt=invertSerializeMap(xt),Bt={getTeamInfo:{sid:8,cid:9,service:"team",params:[{type:"Long",name:"teamId"}],response:[{type:"Property",name:"team",reflectMapper:qt.team}]},getTeams:{sid:8,cid:10,service:"team",params:[{type:"Long",name:"timetag"}],response:[{type:"PropertyArray",name:"teams",reflectMapper:qt.team},{type:"Long",name:"timetag"}],ignoreErrCodes:[803]},createTeam:{sid:8,cid:1,service:"team",params:[{type:"Property",name:"team",reflectMapper:xt.team},{type:"StrArray",name:"accounts"},{type:"String",name:"ps"}],response:[{type:"Property",name:"team",reflectMapper:qt.team},{type:"StrArray",name:"abortedAccidList"}]},sendTeamMsgReceipt:{sid:8,cid:28,service:"team",params:[{type:"PropertyArray",name:"teamMsgReceipts",reflectMapper:xt.teamMsgReceiptTag}],response:[{type:"PropertyArray",name:"teamMsgReceipts",reflectMapper:qt.teamMsgReceiptTag}]},getTeamMsgReads:{sid:8,cid:29,service:"team",params:[{type:"PropertyArray",name:"teamMsgReceipts",reflectMapper:xt.teamMsgReceiptTag}],response:[{type:"PropertyArray",name:"teamMsgReceipts",reflectMapper:qt.teamMsgReceiptTag}]},getTeamMsgReadAccounts:{sid:8,cid:30,service:"team",params:[{type:"Property",name:"teamMsgReceiptTag",reflectMapper:xt.teamMsgReceiptTag}],response:[{type:"Property",name:"teamMsgReceipt",reflectMapper:qt.teamMsgReceiptTag},{type:"StrArray",name:"readAccounts"},{type:"StrArray",name:"unreadAccounts"}]},notifyTeamMsgReceipts:{sid:8,cid:31,service:"team",response:[{type:"PropertyArray",name:"teamMsgReceipts",reflectMapper:qt.teamMsgReceiptTag}]},dismissTeam:{sid:8,cid:12,service:"team",params:[{type:"Long",name:"teamId"}]},leaveTeam:{sid:8,cid:8,service:"team",params:[{type:"Long",name:"teamId"}]},transferTeam:{sid:8,cid:18,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Bool",name:"leave"}]},updateTeamInfo:{sid:8,cid:7,service:"team",params:[{type:"Property",name:"team",reflectMapper:xt.team}],response:[{type:"Long",name:"id"},{type:"Long",name:"time"}]},getTeamsById:{sid:8,cid:34,service:"team",params:[{type:"LongArray",name:"teamIds"}],response:[{type:"PropertyArray",name:"teams",reflectMapper:qt.team},{type:"LongArray",name:"tids"}],ignoreErrCodes:[816]},getTeamMembers:{sid:8,cid:11,service:"team",params:[{type:"Long",name:"teamId"},{type:"Long",name:"timetag"}],response:[{type:"Long",name:"teamId"},{type:"PropertyArray",name:"teamMembers",reflectMapper:qt.teamMember},{type:"Long",name:"timetag"}]},getMutedTeamMembers:{sid:8,cid:27,service:"team",params:[{type:"Long",name:"teamId"}],response:[{type:"Long",name:"teamId"},{type:"PropertyArray",name:"teamMembers",reflectMapper:qt.teamMember}]},addTeamMembers:{sid:8,cid:5,service:"team",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"}]},removeTeamMembers:{sid:8,cid:6,service:"team",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},applyTeam:{sid:8,cid:13,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"ps"}],response:[{type:"Property",name:"team",reflectMapper:qt.team}]},addTeamManagers:{sid:8,cid:16,service:"team",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},removeTeamManagers:{sid:8,cid:17,service:"team",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},updateMyMemberInfo:{sid:8,cid:19,service:"team",params:[{type:"Property",name:"teamMember",reflectMapper:xt.teamMember}]},updateNickInTeam:{sid:8,cid:20,service:"team",params:[{type:"Property",name:"teamMember",reflectMapper:xt.teamMember}]},muteTeamMember:{sid:8,cid:25,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Int",name:"mute"}]},getTeamMemberInvitorAccid:{sid:8,cid:33,service:"team",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}],response:[{type:"StrStrMap",name:"accountsMap"}]},muteTeam:{sid:8,cid:32,service:"team",params:[{type:"Long",name:"teamId"},{type:"Int",name:"mute"}]},passTeamApply:{sid:8,cid:14,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},rejectTeamApply:{sid:8,cid:15,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},acceptTeamInvite:{sid:8,cid:21,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},rejectTeamInvite:{sid:8,cid:22,service:"team",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},syncTeams:{sid:8,cid:109,service:"team",response:[{type:"Long",name:"timetag"},{type:"PropertyArray",name:"teams",reflectMapper:qt.team}]},syncCreateTeam:{sid:8,cid:101,service:"team",response:[{type:"Property",name:"team",reflectMapper:qt.team}]},syncUpdateTeamMember:{sid:8,cid:119,service:"team",response:[{type:"Property",name:"teamMember",reflectMapper:qt.teamMember}]},syncMyTeamMembers:{sid:8,cid:126,ext:"sync",service:"team",response:[{type:"PropertyArray",name:"teamMembers",entity:"teamMember",reflectMapper:qt.teamMember},{type:"Long",name:"timetag"}]}},Ft={"3_7":"getUsersNameCardFromServer","3_10":"updateMyNameCard","3_109":"syncMyNameCard","3_110":"onUpdateMyNameCard","3_3":"setBlack","3_103":"onUpdateBlackList","3_5":"setMute","3_105":"onUpdateMuteList","3_8":"syncRelations"},jt={user:{account:1,nick:3,avatar:4,signature:5,gender:6,email:7,birth:8,tel:9,ext:10,createTime:12,updateTime:13},relationMember:{account:0,isMuted:1,isBlack:2,createTime:3,updateTime:4}},$t=invertSerializeMap(jt),Gt={syncMyNameCard:{sid:3,cid:109,service:"user",response:[{type:"Property",name:"user",reflectMapper:$t.user},{type:"Long",name:"timetag"}]},setBlack:{service:"user",sid:3,cid:3,params:[{type:"String",name:"account"},{type:"Bool",name:"isAdd"}]},onUpdateBlackList:{service:"user",sid:3,cid:103,response:[{type:"String",name:"account"},{type:"Bool",name:"isAdd"}]},setMute:{service:"user",sid:3,cid:5,params:[{type:"String",name:"account"},{type:"Bool",name:"isAdd"}]},onUpdateMuteList:{service:"user",sid:3,cid:105,response:[{type:"String",name:"account"},{type:"Bool",name:"isAdd"}]},syncRelations:{service:"user",sid:3,cid:8,params:[{type:"Long",name:"timetag"}],response:[{type:"PropertyArray",name:"list",reflectMapper:$t.relationMember},{type:"Long",name:"timetag"}]},getUsersNameCardFromServer:{service:"user",sid:3,cid:7,params:[{type:"StrArray",name:"accounts"}],response:[{type:"PropertyArray",name:"users",reflectMapper:$t.user}]},updateMyNameCard:{service:"user",sid:3,cid:10,params:[{type:"Property",name:"user",reflectMapper:jt.user}],response:[{type:"Long",name:"timetag"}]},onUpdateMyNameCard:{service:"user",sid:3,cid:110,response:[{type:"Property",name:"user",reflectMapper:$t.user}]}},Ht={needPush:{type:"boolean",required:!1},needPushBadge:{type:"boolean",required:!1},needPushNick:{type:"boolean",required:!1},pushContent:{type:"string",required:!1},pushPayload:{type:"string",required:!1},needForcePush:{type:"boolean",required:!1},forcePushIDsList:{type:"string",allowEmpty:!1,required:!1},forcePushContent:{type:"string",allowEmpty:!1,required:!1}},zt={function:{type:"string",required:!1},topic:{type:"string",required:!1},customContent:{type:"string",required:!1},account:{type:"string",required:!1}},Yt={subType:{type:"string"},setting:{resendFlag:{type:"boolean"},envConfig:{type:"string"},needSaveHistory:{type:"boolean"},needRoaming:{type:"boolean"},needOffline:{type:"boolean"},needSelfSync:{type:"boolean"},needRouted:{type:"boolean"},needUpdateSession:{type:"boolean"},isMuted:{type:"boolean"}},antiSpamInfo:{needAntiSpam:{type:"boolean"},antiSpamContent:{type:"string"},antiSpamBIZID:{type:"string"},clientAntispamHitting:{type:"boolean"},antiSpamUsingYidun:{type:"boolean"},yidunCallbackURL:{type:"string"},yidunAntiCheating:{type:"string"},yidunAntiSpamExtension:{type:"string"},yidunAntiSpamResult:{type:"string"}},pushInfo:Ht,robotInfo:zt,teamSpecializationInfo:{needACK:{type:"boolean"},isACKSent:{type:"boolean"},ackSnapshot:{type:"number"}},threadMessageInfo:{replyMsgFromAccount:{type:"string"},replyMsgToAccount:{type:"string"},replyMsgTime:{type:"number"},replyMsgIdServer:{type:"string"},replyMsgIdClient:{type:"string"},threadMsgFromAccount:{type:"string"},threadMsgToAccount:{type:"string"},threadMsgTime:{type:"number"},threadMsgIdServer:{type:"string"},threadMsgIdClient:{type:"string"}}},Jt={0:"addTeamMembers",1:"removeTeamMembers",2:"leaveTeam",3:"updateTeam",4:"dismissTeam",5:"passTeamApply",6:"transferTeam",7:"addTeamManagers",8:"removeTeamManagers",9:"acceptTeamInvite",10:"updateTeamMemberMute",101:"netcallMiss",102:"netcallBill",103:"netcallReject",401:"addSuperTeamMembers",402:"removeSuperTeamMembers",403:"leaveSuperTeam",404:"updateSuperTeam",405:"dismissSuperTeam",406:"transferSuperTeam",407:"addSuperTeamManagers",408:"removeSuperTeamManagers",409:"updateSuperTeamMembersMute",410:"passSuperTeamApply",411:"acceptSuperTeamInvite"};function getSessionId(e,t){return`${Fe[e.scene]}-${e.to===t?e.from:e.to}`}function msgFlow(e,t){return e.from===t?e.to===t?"in":"out":"in"}function formatMsg$1(e,t){var{account:r,featureValue:i,statusValue:s,sessionAck:a,msgReceiptTime:n}=t,o=Fe[e.scene],c=e.to===r?e.from:e.to,d=Ge.default,l=$e.unread;parseInt(e.isInBlackList)>0?(l=$e.refused,delete e.isInBlackList):l=e.from===r?n&&n>=+e.time?$e.receipt:$e.sent:a&&a>=+e.time?$e.read:$e.unread;var m=Object.assign(Object.assign({},format(Yt,e)),{scene:o,type:Be[e.type],fromClientType:je[e.fromClientType],flow:msgFlow(e,r),target:c,to:e.to,from:e.from,time:e.time?+e.time:void 0,userUpdateTime:e.userUpdateTime?+e.userUpdateTime:void 0,idClient:e.idClient,sessionId:`${o}-${c}`,status:$e[s||l],feature:Ge[i||d]});if("string"==typeof m.attach)try{m.attach=JSON.parse(m.attach)}catch(e){}return"notification"===m.type&&(m.attach=m.attach?function formatNotificationAttach(e){var t={};if(t.type=Jt[e.id]||e.id,!e.data)return t;var r={ids:"accounts",id:"account",attach:"custom",channel:"channelId",calltype:"netcallType",mute:"mute",duration:"duration",time:"time",from:"from",ext:"ext"},i=e.data;return Object.keys(r).forEach((e=>{void 0!==i[e]&&(t[r[e]]=i[e])})),i.tinfo&&(t.team=formatTeam(deserialize(i.tinfo,qt.team))),i.uinfos&&(t.users=i.uinfos.map((e=>formatUser(deserialize(e,$t.user))))),void 0!==i.mute&&(t.mute=1===parseInt(i.mute)),t}(m.attach):{}),m}function formatMsgs$1(e,t){return e&&e.length>0?removeDupMsgsByIdClient(e.map((e=>formatMsg$1(e,t)))):[]}function removeDupMsgsByIdClient(e){var t={};for(var r of e){var i=t[r.idClient];i&&i.time>r.time||(t[r.idClient]=r)}return Object.keys(t).map((e=>t[e]))}function processPushInfoInMsg(e,t=!0){var r=Object.assign({},e);if(r.pushInfo&&t){for(var i in r.pushInfo)"boolean"==typeof r.pushInfo[i]?r[i]=r.pushInfo[i]?1:0:r[i]=r.pushInfo[i];delete r.pushInfo}return r.scene===Fe.team&&r.needForcePush&&(r.forcePushContent=r.forcePushContent||r.pushContent,r.forcePushIDsList=r.forcePushIDsList?r.forcePushIDsList:"#%@all@%#"),r}function generatorMsgForCmd$1(e,t,r,i){var{onSendBefore:s,onUploadStart:a,onUploadDone:n,replyMsg:o}=e,c=__rest(e,["onSendBefore","onUploadStart","onUploadDone","replyMsg"]),d=Object.assign(Object.assign({},formatReverse(Yt,c)),{scene:Fe[e.scene],type:Be[e.type],from:t,fromClientType:16,fromDeviceId:r,fromNick:null==i?void 0:i.nick,userUpdateTime:null==i?void 0:i.updateTime,status:$e[$e.sending]});if(d.idClient=d.resendFlag?e.idClient:Me(),!d.idClient)throw new FormatError("idClient is required to resend a message","idClient","required");return d=processPushInfoInMsg(d,!1),o&&(d.replyMsgFromAccount=o.from,d.replyMsgToAccount=o.to,d.replyMsgTime=+o.time,d.replyMsgIdServer=o.idServer,d.replyMsgIdClient=o.idClient,d.threadMsgFromAccount=o.from,d.threadMsgToAccount=o.to,d.threadMsgTime=+o.time,d.threadMsgIdServer=o.idServer,d.threadMsgIdClient=o.idClient,o.threadMessageInfo&&o.threadMessageInfo.threadMsgIdServer&&(d.threadMsgFromAccount=o.threadMessageInfo.threadMsgFromAccount,d.threadMsgToAccount=o.threadMessageInfo.threadMsgToAccount,d.threadMsgTime=o.threadMessageInfo.threadMsgTime,d.threadMsgIdServer=o.threadMessageInfo.threadMsgIdServer,d.threadMsgIdClient=o.threadMessageInfo.threadMsgIdClient)),d}function formatDeletedMsgs(e,t){return e.map((e=>{var r;return r=t||(Number.isNaN(parseInt(e.scene))?e.scene:1===parseInt(e.scene)?"p2p":"team"),{deletedTime:parseInt(e.time),from:e.from,idClient:e.deletedIdClient||e.idClient,idServer:e.deletedIdServer||e.idServer,scene:r,time:parseInt(e.deletedMsgCreateTime),to:e.to,ext:"string"==typeof e.ext?e.ext:null}}))}function reverse(e){for(var t=[],r=(e=e||[]).length-1;r>=0;r--)t.push(e[r]);return t}class ModuleService$2{constructor(e){this.core=e}processBroadcastMsg(e){var t=e.map((e=>Object.assign(Object.assign({},e),{time:parseInt(e.time)})));return this.core.sendCmd("batchMarkRead",{sid:7,cid:17,ids:t.map((e=>e.id))}),t}}var Wt,Kt,Qt,Xt={needPush:{type:"boolean",required:!1},needPushBadge:{type:"boolean",required:!1},needPushNick:{type:"boolean",required:!1},pushContent:{type:"string",allowEmpty:!1,required:!1},pushPayload:{type:"string",allowEmpty:!1,required:!1}},Zt={pushContent:8,pushPayload:9,needPush:107,needPushBadge:109,needPushNick:110},er={"4_4":"syncOfflineMsgs","4_9":"syncRoamingMsgs","4_17":"syncRoamingMsgs","4_21":"syncDeleteSelfMsgs","7_1":"sendMsg","8_23":"getHistoryTeamMsgs","21_14":"getHistorySuperTeamMsgs","8_2":"sendTeamMsg","21_2":"sendSuperTeamMsg","7_11":"sendMsgReceipt","7_13":"recallMsg","7_24":"deleteSelfMsgs","21_17":"recallSuperTeamMsg","7_2":"onMsg","8_3":"onMsg","21_3":"onMsg","7_101":"onMsg","8_102":"onMsg","21_102":"onMsg","8_4":"nimOnTeamMsgs","4_16":"syncBroadcastMsg","7_17":"onBroadcastMsg","7_123":"onDeleteSelfMsg","7_124":"onDeleteSelfMsgs"},tr=Object.assign(Object.assign({scene:0,to:1,from:2,fromClientType:4,fromDeviceId:5,fromNick:6,time:7,type:8,body:9,attach:10,idClient:11,idServer:12,resendFlag:13,userUpdateTime:14,ext:15,needAntiSpam:21,antiSpamContent:22,antiSpamBIZID:23,clientAntispamHitting:24,antiSpamUsingYidun:25,needACK:26,yidunCallbackURL:27,needUpdateSession:28,replyMsgFromAccount:29,replyMsgToAccount:30,replyMsgTime:31,replyMsgIdServer:32,replyMsgIdClient:33,threadMsgFromAccount:34,threadMsgToAccount:35,threadMsgTime:36,threadMsgIdServer:37,threadMsgIdClient:38,isDeleted:39,callbackExt:40,subType:41,yidunAntiCheating:42,envConfig:43,yidunAntiSpamExtension:44,yidunAntiSpamResult:45,__clientExt:{id:46,converter:objectToJSONString,retConverter:stringToJSONObject},needSaveHistory:100,needRoaming:101,needSelfSync:102,isMuted:104,needRouted:105,isInBlackList:106,needOffline:108,isReplyMsg:111,ackSnapshot:112},{pushContent:17,pushPayload:16,forcePushIDsList:18,forcePushContent:19,needForcePush:20,needPush:107,needPushBadge:109,needPushNick:110}),{function:47,topic:48,customContent:49,account:50}),rr={msg:tr,recallMsgTag:Object.assign({time:0,type:1,to:2,from:3,ps:4,attach:5,deletedIdClient:10,deletedIdServer:11,deleteMsgCreatetime:14,opeAccount:16,env:21},Zt),deleteSelfMsgTag:{scene:1,from:2,to:3,idServer:4,idClient:5,deletedMsgCreateTime:6,time:7,ext:8},msgReceiptTag:{to:1,from:2,time:7,idClient:11},broadcastMsg:{id:1,fromAccid:2,time:4,body:5}},ir=invertSerializeMap(rr),sr={sendMsg:{sid:7,cid:1,service:"msg",params:[{type:"Property",name:"msg",reflectMapper:rr.msg}],response:[{type:"Property",name:"msg",reflectMapper:ir.msg}],ignoreErrCodes:[7101]},sendTeamMsg:{sid:8,cid:2,service:"msg",params:[{type:"Property",name:"msg",reflectMapper:rr.msg}],response:[{type:"Property",name:"msg",reflectMapper:ir.msg}]},sendSuperTeamMsg:{sid:21,cid:2,service:"msg",params:[{type:"Property",name:"msg",reflectMapper:rr.msg}],response:[{type:"Property",name:"msg",reflectMapper:ir.msg}]},onMsg:{sid:7,cid:2,service:"msg",response:[{type:"Property",name:"msg",reflectMapper:ir.msg}]},nimOnTeamMsgs:{sid:8,cid:4,service:"msg",response:[{type:"PropertyArray",name:"datas",reflectMapper:ir.msg}]},getHistoryTeamMsgs:{sid:8,cid:23,service:"msg",params:[{type:"Long",name:"to"},{type:"Long",name:"beginTime"},{type:"Long",name:"endTime"},{type:"Long",name:"lastMsgId"},{type:"Int",name:"limit"},{type:"Bool",name:"reverse"},{type:"LongArray",name:"msgTypes"}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:ir.msg}]},getHistorySuperTeamMsgs:{sid:21,cid:14,params:[{type:"Long",name:"to"},{type:"Long",name:"beginTime"},{type:"Long",name:"endTime"},{type:"Long",name:"lastMsgId"},{type:"Int",name:"limit"},{type:"Bool",name:"reverse"},{type:"LongArray",name:"msgTypes"}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:ir.msg}],service:"msg"},recallMsg:{sid:7,cid:13,service:"msg",params:[{type:"Property",name:"recallMsgTag",reflectMapper:rr.recallMsgTag}]},deleteSelfMsgs:{sid:7,cid:24,service:"msg",params:[{type:"PropertyArray",name:"deletedMsgs",reflectMapper:rr.deleteSelfMsgTag}],response:[{type:"Long",name:"timetag"}]},recallSuperTeamMsg:{sid:21,cid:17,service:"msg",params:[{type:"Property",name:"recallMsgTag",reflectMapper:rr.recallMsgTag}]},sendMsgReceipt:{sid:7,cid:11,service:"msg",params:[{type:"Property",name:"msgReceiptTag",reflectMapper:rr.msgReceiptTag}],response:[{type:"Property",name:"msgReceiptTag",reflectMapper:ir.msgReceiptTag}]},batchMarkRead:{sid:4,cid:5,service:"msg",hasPacketResponse:!1,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]},syncMsgReceipts:{sid:4,cid:12,service:"msg",response:[{type:"PropertyArray",name:"msgReceipts",reflectMapper:ir.msgReceiptTag},{type:"Long",name:"timetag"}]},syncOfflineMsgs:{sid:4,cid:4,service:"msg",response:[{type:"PropertyArray",name:"msgs",reflectMapper:ir.msg}]},syncRoamingMsgs:{sid:4,cid:9,service:"msg",response:[{type:"PropertyArray",name:"msgs",reflectMapper:ir.msg}]},syncBroadcastMsg:{sid:4,cid:16,service:"msg",response:[{type:"PropertyArray",name:"msgs",reflectMapper:ir.broadcastMsg}]},onBroadcastMsg:{sid:7,cid:17,service:"msg",response:[{type:"Property",name:"msg",reflectMapper:ir.broadcastMsg}]},onDeleteSelfMsg:{sid:7,cid:123,service:"msg",response:[{type:"Property",name:"deletedMsg",reflectMapper:ir.deleteSelfMsgTag}]},onDeleteSelfMsgs:{sid:7,cid:124,service:"msg",response:[{type:"PropertyArray",name:"deletedMsgs",reflectMapper:ir.deleteSelfMsgTag}]},syncDeleteSelfMsgs:{sid:4,cid:21,service:"msg",response:[{type:"PropertyArray",name:"deletedMsgs",reflectMapper:ir.deleteSelfMsgTag}]}};!function(e){e[e.none=0]="none",e[e.pass=1]="pass",e[e.decline=2]="decline",e[e.read=3]="read",e[e.deleted=4]="deleted",e[e.invalid=5]="invalid"}(Wt||(Wt={})),function(e){e[e.default=0]="default",e[e.leave=1]="leave",e[e.roam=2]="roam"}(Kt||(Kt={})),function(e){e[e.applyTeam=0]="applyTeam",e[e.rejectTeamApply=1]="rejectTeamApply",e[e.teamInvite=2]="teamInvite",e[e.rejectTeamInvite=3]="rejectTeamInvite",e[e.friendRequest=5]="friendRequest",e[e.deleteFriend=6]="deleteFriend",e[e.recallMsgP2p=7]="recallMsgP2p",e[e.recallMsgTeam=8]="recallMsgTeam",e[e.recallMsgSuperTeam=12]="recallMsgSuperTeam",e[e.deleteMsgP2pOneWay=13]="deleteMsgP2pOneWay",e[e.deleteMsgTeamOneWay=14]="deleteMsgTeamOneWay",e[e.applySuperTeam=15]="applySuperTeam",e[e.rejectSuperTeamApply=16]="rejectSuperTeamApply",e[e.superTeamInvite=17]="superTeamInvite",e[e.rejectSuperTeamInvite=18]="rejectSuperTeamInvite",e[e.customP2p=100]="customP2p",e[e.customTeam=101]="customTeam",e[e.customSuperTeam=103]="customSuperTeam"}(Qt||(Qt={}));var ar={1:"addFriend",2:"applyFriend",3:"passFriendApply",4:"rejectFriendApply"};var nr={setting:{needSaveOffline:{type:"boolean"},isRoutable:{type:"boolean"},envConfig:{type:"string"}},antiSpamInfo:{needAntiSpam:{type:"boolean"},antiSpamContent:{type:"boolean"}},pushInfo:Xt,recallMessageInfo:{idClient:{type:"string",rawKey:"deletedIdClient"},idServer:{type:"string",rawKey:"deletedIdServer"},createTime:{type:"number",rawKey:"deletedMsgCreateTime"},fromNick:{type:"string",rawKey:"deletedMsgFromNick"},opeAccount:{type:"string"}}};function formatSystemMessage(e,t,r){var i=+e.type,s=getEnumKeyByEnumValue(Qt,i);r=r||Kt.default;var a=Object.assign(Object.assign({},format(nr,e)),{type:s,time:+e.time,to:e.to,from:e.from,idServer:e.idServer,state:Wt[Wt.none],feature:Kt[r]});if("0"===a.idServer&&a.setting&&(a.setting.needSaveOffline=!1),"string"==typeof a.attach)try{a.attach=JSON.parse(a.attach)}catch(e){t.error(`formatSystemMessage: ${a.idServer} parse attach error`,e&&e.message)}return 5===i&&a.attach?(a.attach.type=ar[+a.attach.vt],"passFriendApply"===a.attach.type?a.state=Wt[Wt.pass]:"rejectFriendApply"===a.attach.type&&(a.state=Wt[Wt.decline])):i<=3&&a.attach&&(a.attach=function formatTeamAttach(e){var{attach:t,tinfo:r}=e,i=__rest(e,["attach","tinfo"]);return i.ext=t,void 0!==r&&(i.team=formatTeam(deserialize(e.tinfo,qt.team))),i}(a.attach)),a}function generatorSysMsgForCmd$1(e){var t=Object.assign({},e);return Object.assign(Object.assign({},formatReverse(nr,t)),{type:Qt[t.type],to:t.to,attach:t.attach})}function getSceneFromRecallSysMsg(e){return e===Qt.recallMsgP2p?"p2p":e===Qt.recallMsgTeam?"team":e===Qt.recallMsgSuperTeam?"superTeam":""}var or={"5_1":"sync"},cr={sync:{sid:5,cid:1,service:"sync",hasPacketTimer:!1,params:[{type:"Property",name:"sync",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}}],response:[{type:"Long",name:"timetag"}]}};var dr={"4_12":"syncMsgReceipts","4_14":"syncSessionAck","4_20":"syncSuperTeamSessionAck","4_22":"nimSyncSessionsWithMoreRoaming","4_25":"syncSessionReliableInfo","7_12":"multiSyncMsgReceipt","7_16":"markSessionAck","7_25":"markMultSessionsAck","7_116":"syncMarkSessionAck","21_25":"markSuperTeamSessionAck","21_32":"markMultSuperTeamSessionsAck","21_125":"syncMarkSuperTeamSessionAck","4_23":"nimSyncStickTopSessions","23_12":"nimAddStickTopSession","23_13":"nimDeleteStickTopSession","23_14":"nimUpdateStickTopSession","23_112":"nimMultiSyncAddStickTopSession","23_113":"nimMultiSyncDeleteStickTopSession","23_114":"nimMultiSyncUpdateStickTopSession"},lr={msgReceiptTag:{to:1,from:2,time:7,idClient:11},stickTopSessionTag:{id:1,ext:2,createTime:3,updateTime:4},sessionAckTag:{scene:1,to:2,timetag:3},sessionReliableSyncTag:{scene:1,sessionId:2,syncStatus:3,syncEndMsgId:4,syncEndMsgidClient:5,syncEndMsgTime:6,syncStartMsgid:7,syncStartMsgidClient:8,syncStartMsgTime:9,nextMsgid:10,nextMsgidClient:11,nextMsgTime:12,roamMsgSync:13,offlineMsgSync:14,netCallOfflineMsgSync:15}},mr=invertSerializeMap(lr),pr={syncMsgReceipts:{sid:4,cid:12,service:"session",response:[{type:"PropertyArray",name:"msgReceipts",reflectMapper:mr.msgReceiptTag},{type:"Long",name:"timetag"}]},syncSessionAck:{sid:4,cid:14,service:"session",response:[{type:"StrLongMap",name:"p2p"},{type:"LongLongMap",name:"team"},{type:"Long",name:"timetag"}]},syncSuperTeamSessionAck:{sid:4,cid:20,service:"session",response:[{type:"LongLongMap",name:"superTeam"},{type:"Long",name:"timetag"}]},multiSyncMsgReceipt:{sid:7,cid:12,service:"session",response:[{type:"Property",name:"msgReceiptTag",reflectMapper:mr.msgReceiptTag}]},markSessionAck:{sid:7,cid:16,service:"session",params:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}]},syncMarkSessionAck:{sid:7,cid:116,service:"session",response:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}]},syncMarkSuperTeamSessionAck:{sid:21,cid:125,service:"session",response:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}]},markMultSessionsAck:{sid:7,cid:25,service:"session",ignoreErrCodes:[700],params:[{type:"PropertyArray",name:"datas",reflectMapper:lr.sessionAckTag}]},markSuperTeamSessionAck:{sid:21,cid:25,service:"session",params:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}]},nimAddStickTopSession:{sid:23,cid:12,service:"session",params:[{type:"Property",name:"tag",reflectMapper:lr.stickTopSessionTag}],response:[{type:"Property",name:"data",reflectMapper:mr.stickTopSessionTag}]},nimDeleteStickTopSession:{sid:23,cid:13,service:"session",params:[{type:"Property",name:"tag",reflectMapper:lr.stickTopSessionTag}],response:[{type:"Long",name:"timetag"}]},nimUpdateStickTopSession:{sid:23,cid:14,service:"session",params:[{type:"Property",name:"tag",reflectMapper:lr.stickTopSessionTag}],response:[{type:"Property",name:"data",reflectMapper:mr.stickTopSessionTag}]},nimMultiSyncAddStickTopSession:{sid:23,cid:112,service:"session",response:[{type:"Property",name:"data",reflectMapper:mr.stickTopSessionTag}]},nimMultiSyncDeleteStickTopSession:{sid:23,cid:113,service:"session",response:[{type:"Long",name:"timetag"},{type:"Property",name:"data",reflectMapper:mr.stickTopSessionTag}]},nimMultiSyncUpdateStickTopSession:{sid:23,cid:114,service:"session",response:[{type:"Property",name:"data",reflectMapper:mr.stickTopSessionTag}]},nimSyncStickTopSessions:{sid:4,cid:23,service:"session",response:[{type:"Long",name:"timetag"},{type:"Bool",name:"isThereAnyChange"},{type:"PropertyArray",name:"datas",reflectMapper:mr.stickTopSessionTag}]},markMultSuperTeamSessionsAck:{sid:21,cid:32,service:"session",ignoreErrCodes:[700],params:[{type:"PropertyArray",name:"datas",reflectMapper:lr.sessionAckTag}]},nimSyncSessionsWithMoreRoaming:{sid:4,cid:22,service:"session",response:[]},syncSessionReliableInfo:{sid:4,cid:25,service:"session",response:[]}},ur={id:{type:"string"},ext:{type:"string"},createTime:{type:"number"},updateTime:{type:"number"}};function formatStickTop(e,t,r=!0){var i=format(ur,e);i.isStickOnTop=r,i.id=t.id,r||(i.ext="");var s=Object.assign(Object.assign({},t),{stickTopInfo:t.stickTopInfo?Object.assign({},t.stickTopInfo,i):i});return void 0===s.lastMsg&&(s.lastMsg=null),s}class StickTopService{constructor(e){this.core=e}getSession(e){return this.core.session.getSessionWithUncomplete({id:e})||this.core.session.createSession(e)}addStickTopSession(e){return __awaiter(this,void 0,void 0,(function*(){validate({id:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1}},e);var{scene:t,accid:r}=getAccountFromSessionId(e.id),i=yield this.core.sendCmd("nimAddStickTopSession",{tag:{id:`${"superTeam"===t?"super_team":t}|${r}`,ext:e.ext||""}}),s=this.getSession(e.id);return formatStickTop(i.content.data,s)}))}deleteStickTopSession(e){return __awaiter(this,void 0,void 0,(function*(){validate({id:{type:"string",allowEmpty:!1}},e);var{scene:t,accid:r}=getAccountFromSessionId(e.id),i=yield this.core.sendCmd("nimDeleteStickTopSession",{tag:{id:`${"superTeam"===t?"super_team":t}|${r}`}}),s=this.getSession(e.id);return formatStickTop({updateTime:i.content.timetag,ext:""},s,!1)}))}updateStickTopSession(e){return __awaiter(this,void 0,void 0,(function*(){validate({id:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1}},e);var{scene:t,accid:r}=getAccountFromSessionId(e.id),i=yield this.core.sendCmd("nimUpdateStickTopSession",{tag:{id:`${"superTeam"===t?"super_team":t}|${r}`,ext:e.ext||""}}),s=this.getSession(e.id);return formatStickTop(i.content.data,s)}))}stickTopSessionHandler(e,t=!0){var{scene:r,accid:i}=getAccountFromSessionId(e.id,"|"),s=`${r}-${i}`;return formatStickTop(e,this.getSession(s),t)}}class UnreadModuleService{constructor(e){this.core=e,this.logger=e.logger}canSessionResetUnreadCount(e){var t=e.id;if(void 0===e.lastMsg)throw new Error(`Session::canSessionResetUnreadCount: session ${t} is not completly, lastMsg undefined`);return null!==e.lastMsg||e.unread>0?!(e.ack&&e.lastMsg&&e.ack>=e.lastMsg.time)||(this.logger.log(`Session::canSessionResetUnreadCount: session ${t} reset failed, ack time is greater than last message time`),!1):(this.logger.log(`Session::canSessionResetUnreadCount: session ${t} doesn't need to be updated, lastMsg null and unread 0`),!1)}filterSessionForResetUnreadCount(e){var t={cmd:"markMultSuperTeamSessionsAck",params:[]},r={cmd:"markMultSessionsAck",params:[]};return e.forEach((e=>{var i;try{if(!this.canSessionResetUnreadCount(e))return;var{accid:s,scene:a}=getAccountFromSessionId(e.id),n={to:s,sessionId:e.id,timetag:(null===(i=null==e?void 0:e.lastMsg)||void 0===i?void 0:i.time)||e.updateTime||0},o=function generateSceneForCmd(e){return formatReverse({scene:{type:"enum",values:Fe}},e)}({scene:a});"superTeam"===a?t.params.push(n):r.params.push(Object.assign(Object.assign({},n),o))}catch(e){this.logger.warn(e)}})),{superTeam:t,p2pOrTeam:r}}}function chunk(e,t){e=e||[],t=t||1,t=Math.max(Math.floor(t),1);for(var r=[],i=0;i<e.length;i+=t)r.push(e.slice(i,i+t));return r}class ModuleService$1{constructor(e){this.core=e}notifyAddTeamMembers(e,t){this.core.emit("addTeamMembers",{team:e,accounts:t,members:generatorMembersByTeam(e,t)})}notifyUpdateTeamManagers(e,t,r,i){this.core.emit("updateTeamManagers",{team:{teamId:e,memberUpdateTime:i},accounts:t,isManager:r,members:t.map((t=>({id:`${e}-${t}`,account:t,type:r?"manager":"normal",updateTime:i})))})}notifyRemoveTeamMembers(e,t){this.core.emit("removeTeamMembers",{team:e,accounts:t})}notifyTransferTeam(e,t,r){this.core.emit("transferTeam",{team:e,from:{id:`${e.teamId}-${t}`,type:"normal",account:t,updateTime:e.memberUpdateTime},to:{id:`${e.teamId}-${r}`,type:"owner",account:r,updateTime:e.memberUpdateTime}})}notifyUpdateTeamMembersMute(e,t,r){this.core.emit("updateTeamMembersMute",{team:e,accounts:t,members:t.map((function(t){return{id:`${e.teamId}-${t}`,account:t,teamId:e.teamId,mute:r,updateTime:e.memberUpdateTime}})),mute:r})}}function cloneDeep(e,t){if((t=new Map).get(e))return e;if(e instanceof RegExp)return new RegExp(e);if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return t.set(e,!0),e.map((e=>cloneDeep(e,t)));if("object"==typeof e&&null!==e){t.set(e,!0);var r={};return Object.keys(e).forEach((i=>{r[i]=cloneDeep(e[i],t)})),r}return e}var hr={"4_6":"syncOfflineSysMsgs","4_18":"syncOfflineSysMsgs","4_19":"syncRecallMsgOfflineAndRoaming","7_3":"onSysMsg","7_7":"sendCustomSysMsg","7_14":"onRecallMsg","21_18":"onRecallMsg","21_117":"onRecallMsg","7_15":"syncRecallMsgOfflineAndRoaming","21_19":"onSysMsg","21_16":"sendSuperTeamCustomSysMsg"},gr={sysMsg:Object.assign({time:0,type:1,to:2,from:3,content:4,attach:5,idServer:6,needSaveOffline:7,deletedIdClient:10,deletedIdServer:11,needcAntiSpam:12,antiSpamContent:13,deletedMsgCreateTime:14,deletedMsgFromNick:15,opeAccount:16,envConfig:21,callbackExt:22,isRoutable:105},Zt)},vr=invertSerializeMap(gr),yr={onSysMsg:{service:"systemMessage",sid:7,cid:3,response:[{type:"Property",name:"sysMsg",reflectMapper:vr.sysMsg}]},sendCustomSysMsg:{service:"systemMessage",sid:7,cid:7,params:[{type:"Property",name:"sysMsg",reflectMapper:gr.sysMsg}]},sendSuperTeamCustomSysMsg:{service:"systemMessage",sid:21,cid:16,params:[{type:"Property",name:"sysMsg",reflectMapper:gr.sysMsg}]},sendFilterCustomSysMsg:{service:"systemMessage",sid:101,cid:7,params:[{type:"Property",name:"sysMsg",reflectMapper:gr.sysMsg}]},batchMarkRead:{service:"systemMessage",sid:4,cid:5,hasPacketResponse:!1,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]},onRecallMsg:{sid:7,cid:14,service:"systemMessage",response:[{type:"Property",name:"sysMsg",reflectMapper:vr.sysMsg}]},syncRecallMsgOfflineAndRoaming:{sid:7,cid:15,service:"systemMessage",response:[{type:"PropertyArray",name:"sysMsgs",reflectMapper:vr.sysMsg},{type:"Long",name:"timetag"},{type:"Byte",name:"type"}]},syncOfflineSysMsgs:{sid:4,cid:9,service:"systemMessage",response:[{type:"PropertyArray",name:"sysMsgs",reflectMapper:vr.sysMsg}]}};function reverseFriend(e){var t=Object.assign({},e);return["bitsExtension","createTime","updateTime","passRelationShip","relationShip","source"].forEach((e=>{void 0!==t[e]&&(t[e]=parseInt(t[e]))})),void 0!==t.relationShip&&(t.valid=1===t.relationShip),t}var fr={1:"addFriend",2:"applyFriend",3:"passFriendApply",4:"rejectFriendApply"};var Ir={"12_4":"getFriends","12_1":"friendReuqest","12_2":"deleteFriend","12_3":"updateFriend","12_5":"syncFriends","12_6":"syncFriendUsers","12_101":"syncFriendRequest","12_102":"syncDeleteFriend","12_103":"syncUpdateFriend"},Mr={updateFriendTag:{account:4,alias:8,ext:10},delFriendParams:{delAlias:1},friendTag:{account:4,relationShip:5,passRelationShip:6,source:7,alias:8,bitsExtension:9,ext:10,createTime:11,updateTime:12,serverex:13},userTag:{account:1,nick:3,avatar:4,sign:5,gender:6,email:7,birth:8,tel:9,ext:10,createTime:12,updateTime:13}},Sr=invertSerializeMap(Mr),Tr={getFriends:{sid:12,cid:4,service:"friend",params:[{type:"Long",name:"timetag"}],response:[{type:"PropertyArray",name:"friends",reflectMapper:Sr.friendTag},{type:"Long",name:"timetag"}]},friendReuqest:{sid:12,cid:1,service:"friend",params:[{type:"String",name:"account"},{type:"Byte",name:"type"},{type:"String",name:"ps"}]},deleteFriend:{sid:12,cid:2,service:"friend",params:[{type:"String",name:"account"},{type:"Property",name:"delFriendParams",reflectMapper:Mr.delFriendParams}]},updateFriend:{sid:12,cid:3,service:"friend",params:[{type:"Property",name:"updateFriendTag",reflectMapper:Mr.updateFriendTag}]},syncFriends:{sid:12,cid:5,service:"friend",response:[{type:"PropertyArray",name:"friends",entity:"friendTag",reflectMapper:Sr.friendTag},{type:"Long",name:"timetag"}]},syncFriendUsers:{sid:12,cid:6,service:"friend",response:[{type:"PropertyArray",name:"users",entity:"userTag",reflectMapper:Sr.userTag},{type:"Long",name:"timetag"}]},syncFriendRequest:{sid:12,cid:101,service:"friend",params:[{type:"String",name:"account"},{type:"Byte",name:"type"},{type:"String",name:"ps"}],response:[{type:"String",name:"account"},{type:"Byte",name:"type"},{type:"String",name:"ps"}]},syncDeleteFriend:{sid:12,cid:102,service:"friend",response:[{type:"String",name:"account"}]},syncUpdateFriend:{sid:12,cid:103,service:"friend",response:[{type:"Property",name:"friend",reflectMapper:Sr.friendTag}]}};function formatSubscribes(e){return e&&e.length>0?e.map((e=>function formatSubscribe(e){var t=Object.assign({},e);return["subscribeTime","time"].forEach((e=>{t[e]&&(t[e]=parseInt(t[e]))})),t}(e))):[]}function formatEvent(e){if(!e)return e;var{serverExt:t}=e,r=__rest(e,["serverExt"]);if(["time","type","value"].forEach((e=>{r[e]&&(r[e]=parseInt(r[e]))})),r.clientType&&(r.clientType=getEnumKeyByEnumValue(je,r.clientType)||""),t)try{r.ext=JSON.parse(t),"string"==typeof r.ext[0]&&(r.ext=r.ext[0])}catch(e){}return r}var _r={"14_1":"publishEvent","14_2":"pushEvent","14_3":"subscribeEvent","14_4":"unSubscribeEventsByAccounts","14_5":"unSubscribeEventsByType","14_6":"querySubscribeEventsByAccounts","14_7":"querySubscribeEventsByType","14_9":"pushEvents"},Cr={msgEvent:{type:1,value:2,idClient:3,ext:4,validTime:5,broadcastType:6,sync:7,validTimeType:8,durable:9,time:10,idServer:11,clientType:12,serverConfig:13,serverExt:14,appid:101,account:103,enableMultiClient:104,consid:106},msgEventSubscribe:{type:1,subscribeTime:2,sync:3,to:102,from:104,time:105}},Er=invertSerializeMap(Cr),br={publishEvent:{sid:14,cid:1,service:"event",params:[{type:"Property",name:"msgEvent",reflectMapper:Cr.msgEvent}],response:[{type:"Property",name:"msgEvent",reflectMapper:Er.msgEvent}]},pushEvent:{sid:14,cid:2,service:"event",response:[{type:"Property",name:"msgEvent",reflectMapper:Er.msgEvent}]},subscribeEvent:{sid:14,cid:3,service:"event",params:[{type:"Property",name:"msgEventSubscribe",reflectMapper:Cr.msgEventSubscribe},{type:"StrArray",name:"accounts"}],response:[{type:"StrArray",name:"accounts"}]},unSubscribeEventsByAccounts:{sid:14,cid:4,service:"event",params:[{type:"Property",name:"msgEventSubscribe",reflectMapper:Cr.msgEventSubscribe},{type:"StrArray",name:"accounts"}],response:[{type:"StrArray",name:"accounts"}]},unSubscribeEventsByType:{sid:14,cid:5,service:"event",params:[{type:"Property",name:"msgEventSubscribe",reflectMapper:Cr.msgEventSubscribe}]},querySubscribeEventsByAccounts:{sid:14,cid:6,service:"event",params:[{type:"Property",name:"msgEventSubscribe",reflectMapper:Cr.msgEventSubscribe},{type:"StrArray",name:"accounts"}],response:[{type:"PropertyArray",name:"msgEventSubscribes",reflectMapper:Er.msgEventSubscribe}]},querySubscribeEventsByType:{sid:14,cid:7,service:"event",params:[{type:"Property",name:"msgEventSubscribe",reflectMapper:Cr.msgEventSubscribe}],response:[{type:"PropertyArray",name:"msgEventSubscribes",reflectMapper:Er.msgEventSubscribe}]},pushEvents:{sid:14,cid:9,service:"event",response:[{type:"PropertyArray",name:"msgEvents",reflectMapper:Er.msgEvent}]}};var Nr,Ar={"23_1":"getThreadMsgs","23_2":"getMsgsByIdServer"},Rr={msg:tr,threadMsgReq:{beginTime:1,endTime:2,lastMsgId:3,limit:4,reverse:5},threadMsgsMeta:{total:1,lastMsgTime:2}},Or=invertSerializeMap(Rr),kr={getThreadMsgs:{sid:23,cid:1,service:"msgExtend",params:[{type:"Property",name:"msg",reflectMapper:Rr.msg},{type:"Property",name:"threadMsgReq",reflectMapper:Rr.threadMsgReq}],response:[{type:"Property",name:"threadMsg",reflectMapper:Or.msg},{type:"Property",name:"threadMsgsMeta",reflectMapper:Or.threadMsgsMeta},{type:"PropertyArray",name:"msgs",reflectMapper:Or.msg}]},getMsgsByIdServer:{sid:23,cid:2,service:"msgExtend",params:[{type:"PropertyArray",name:"reqMsgs",reflectMapper:Rr.msg}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:Or.msg}]}};!function(e){e[e.ASC=1]="ASC",e[e.DESC=2]="DESC"}(Nr||(Nr={}));var wr,Pr={"7_6":"getHistoryMsgs","7_9":"deleteRoamingMsgs","4_24":"syncClearServerHistoryMsgs","7_18":"clearHistoryMsgsFromServer","7_118":"multiSyncClearServerHistoryMsgs","7_26":"nimFtsCloudMsgLogsAggWithSession","7_27":"nimFtsCloudMsgLogs"},Vr={msg:tr,clearHistoryMsgsFromServerReqTag:{type:0,otherAccid:1,isDeleteRoam:2,toTid:3,isSyncSelf:4,time:6,ext:7},clearMsgsParamsWithSync:{type:0,otherAccid:1,isDeleteRoam:2,toTid:3,isSyncSelf:4,fromAccid:5,time:6,ext:7},ftsReqTag:{keyword:1,fromTime:2,toTime:3,sessionLimit:4,msglogsLimit:5,orderRule:6,p2pSessionList:7,teamSessionList:8,senderList:9,msgTypeList:10,msgSubTypeList:11}},Lr=invertSerializeMap(Vr),Ur={deleteRoamingMsgs:{sid:7,cid:9,service:"msgLog",params:[{type:"StrArray",name:"ids"}]},getHistoryMsgs:{sid:7,cid:6,params:[{type:"String",name:"to"},{type:"Long",name:"beginTime"},{type:"Long",name:"endTime"},{type:"Long",name:"lastMsgId"},{type:"Int",name:"limit"},{type:"Bool",name:"reverse"},{type:"LongArray",name:"msgTypes"}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:Lr.msg}],service:"msgLog"},clearHistoryMsgsFromServer:{sid:7,cid:18,params:[{type:"Property",name:"clearHistoryMsgsFromServerReqTag",reflectMapper:Vr.clearHistoryMsgsFromServerReqTag}],response:[{type:"Long",name:"timetag"}],service:"msgLog"},multiSyncClearServerHistoryMsgs:{sid:7,cid:118,response:[{type:"Property",name:"data",reflectMapper:Lr.clearMsgsParamsWithSync}],service:"msgLog"},syncClearServerHistoryMsgs:{sid:4,cid:24,service:"msgLog",response:[{type:"PropertyArray",name:"datas",reflectMapper:Lr.clearMsgsParamsWithSync}]},nimFtsCloudMsgLogsAggWithSession:{sid:7,cid:26,service:"msgLog",params:[{type:"Property",name:"tag",reflectMapper:Vr.ftsReqTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:Lr.msg}]},nimFtsCloudMsgLogs:{sid:7,cid:27,service:"msgLog",params:[{type:"Property",name:"tag",reflectMapper:Vr.ftsReqTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:Lr.msg}]}};!function(e){e[e.p2p=1]="p2p",e[e.team=2]="team"}(wr||(wr={}));var Dr={type:{type:"enum",values:wr},isDeleteRoam:{type:"boolean"},isSyncSelf:{type:"boolean"},time:{type:"number"}};function formatClearResult(e){var t=format(Dr,e);return{sessionId:"p2p"===t.type?`p2p-${t.otherAccid}`:`team-${t.toTid}`,time:t.time}}var xr={orderRule:{type:"enum",values:Nr}};var qr={"22_1":"requestProxy","22_2":"onRequestProxy"},Br={requestProxyTag:{zone:1,path:2,method:3,header:4,body:5},requestProxyMsgTag:{from:1,body:2,time:3}},Fr=invertSerializeMap(Br),jr={requestProxy:{sid:22,cid:1,service:"passThrough",params:[{type:"Property",name:"requestProxyTag",reflectMapper:Br.requestProxyTag}],response:[{type:"Property",name:"requestProxyTag",reflectMapper:Fr.requestProxyTag}]},onRequestProxy:{sid:22,cid:2,service:"passThrough",response:[{type:"Property",name:"proxyMsg",reflectMapper:Fr.requestProxyMsgTag}]}};var $r,Gr,Hr={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)"}},zr={accessKeyId:"",secretAccessKey:"",sessionToken:"",region:"",maxRetries:0,bucket:"",objectName:"",token:"",shortUrl:""};function getUploadResponseFormat(e="file"){var t=Hr[e]||{};return JSON.stringify(t).replace(/"/gi,'\\"')}!function(e){e[e.nos=1]="nos",e[e.s3=2]="s3"}($r||($r={})),function(e){e[e.dontNeed=-1]="dontNeed",e[e.time=2]="time",e[e.urls=3]="urls"}(Gr||(Gr={}));var Yr={chunkUploadHost:"https://wannos-web.127.net",chunkUploadHostBackupList:["https://fileup.chatnos.com","https://oss.chatnos.com"],commonUploadHost:"https://fileup.chatnos.com",commonUploadHostBackupList:["https://upload.chatnos.com","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 pickBy(e,t){e=e||{},t=t||(()=>!0);var r={};for(var i in e)t(e[i])&&(r[i]=e[i]);return r}class NOS{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 __awaiter(this,void 0,void 0,(function*(){var t=get(yield this.core.sendCmd("getNosAccessToken",{tag:e}),"content.nosAccessTokenTag.token"),r=e.url;return{token:t,url:-1!==r.indexOf("?")?r+"&token="+t:r+"?token="+t}}))}deleteNosAccessToken(e){return __awaiter(this,void 0,void 0,(function*(){yield this.core.sendCmd("deleteNosAccessToken",{tag:e})}))}nosUpload(e,t,r){var i,s,a,n,o,c,d,l,m,p;return __awaiter(this,void 0,void 0,(function*(){var u=get(this.core,"config.cdn.bucket"),h={tag:e.nosScenes||u||"nim"};e.nosSurvivalTime&&(h.expireSec=e.nosSurvivalTime);var g,v=this.core.adapters.getFileUploadInformation(e);if(v&&v.complete&&t.destroy(),!r&&!v)try{g=yield this.core.sendCmd("getNosToken",{responseBody:getUploadResponseFormat(e.type),nosToken:h})}catch(e){if(this.core.logger.error("uploadFile:: getNosToken error",e),t.destroy(),e instanceof V2NIMErrorImpl)throw e;throw new UploadError({code:"v2"===get(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"getNosToken error",rawError:e,curProvider:1}})}var y=this.config.uploadReplaceFormat.replace("{bucket}",this.config.cdn.bucket).replace("{host}",this.config.cdn.cdnDomain||this.config.cdn.defaultCdnDomain).replace("{object}",v?null===(i=v.uploadInfo)||void 0===i?void 0:i.objectName:r?null==r?void 0:r.objectName:g.content.nosToken.objectName),f="";r&&r.shortUrl&&(f=r.shortUrl),(null===(n=null===(a=null===(s=null==v?void 0:v.uploadInfo)||void 0===s?void 0:s.payload)||void 0===a?void 0:a.mixStoreToken)||void 0===n?void 0:n.shortUrl)&&(f=v.uploadInfo.payload.mixStoreToken.shortUrl);var I,M=f||y;try{var S=v?{token:null===(o=null==v?void 0:v.uploadInfo)||void 0===o?void 0:o.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}:r||g.content.nosToken;this.core.logger.log("uploadFile:: uploadFile params",{nosToken:S,chunkUploadHost:this.config.chunkUploadHost,chunkUploadHostBackupList:this.config.chunkUploadHostBackupList,commonUploadHost:this.config.commonUploadHost,commonUploadHostBackupList:this.config.commonUploadHostBackupList,platform:ve.platform});var T="BROWSER"===ve.platform?this.config.chunkUploadHost:`${this.config.commonUploadHost}/${S&&S.bucket}`,_="UNIAPP"===ve.platform||"MINIAPP"===(null===(l=ve.getSystemInfo())||void 0===l?void 0:l.libEnv)?4:r?2:0,C=e.filePath?e.filePath:"object"==typeof e.file?e.file.name:"";t.update({remote_addr:T,operation_type:_}),C&&t.update({local_file:C}),I=yield this.core.adapters.uploadFile(Object.assign(Object.assign(Object.assign(Object.assign({},e),{nosToken:S,chunkUploadHost:this.config.chunkUploadHost,chunkUploadHostBackupList:this.config.chunkUploadHostBackupList,commonUploadHost:this.config.commonUploadHost,commonUploadHostBackupList:this.config.commonUploadHostBackupList,maxSize:e.maxSize||this.config.chunkMaxSize}),r?{payload:{mixStoreToken:r}}:{}),{onUploadInfo:e=>{t.update(Object.assign({},e))}}),t)}catch(i){this.core.logger.error("uploadFile::nos uploadFile error:",i);var E="v2"===get(this.core,"options.apiVersion");if(i.code===de.V2NIM_ERROR_CODE_CANCELLED||10499===i.errCode)throw new UploadError({code:E?de.V2NIM_ERROR_CODE_CANCELLED:400,detail:{reason:get(i,"message")||"Request abort",rawError:i,curProvider:1}});if(E&&i.errCode===de.V2NIM_ERROR_CODE_FILE_OPEN_FAILED)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_FILE_OPEN_FAILED,detail:{reason:get(i,"message")||"Read file failed",rawError:i,curProvider:1}});var{net_connect:b}=yield ve.net.getNetworkStatus();if(!1===b)throw new UploadError({code:"v2"===get(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"No network",rawError:i,curProvider:1}});if(r){if(this.nosErrorCount<=0){try{this.cloudStorage.mixStorage._addCircuitTimer()}catch(t){throw new UploadError({code:"v2"===get(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=get(this.cloudStorage,"mixStorePolicy.nosPolicy.uploadConfig.retryPolicy.retry"),this.cloudStorage._uploadFile(e,t)}return this.nosErrorCount--,this.nosUpload(e,t,r)}throw new UploadError({code:"v2"===get(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"NOS attempts failed",rawError:i,curProvider:1}})}var N=null==I?void 0:I.type,A=N&&N.indexOf("/")>-1?N.slice(0,N.indexOf("/")):"";A||(A=e.type||"");var R,O={image:"imageInfo",video:"vinfo",audio:"vinfo"};if(!O[A])return Object.assign({url:M},I);if(I.w&&I.h||I.dur)return Object.assign({url:M},I);try{R=yield this.core.adapters.request(`${y}?${O[A]}`,{method:"GET",dataType:"json",timeout:5e3},{exception_service:3})}catch(e){var k=e;return t.update({exception:`Fetch media info failed;url:${y}?${O[A]};errMsg:${(null===(m=k.detail)||void 0===m?void 0:m.reason)||k.message}`,external_code:k.code}),this.core.logger.error("uploadFile:: fetch file info error",e),Object.assign({url:M},I)}if(R){var{data:w}=R,P="imageInfo"===O[A]?w:null===(p=null==w?void 0:w.GetVideoInfo)||void 0===p?void 0:p.VideoInfo;return pickBy({url:M,name:I.name,size:I.size,ext:I.ext,w:null==P?void 0:P.Width,h:null==P?void 0:P.Height,orientation:null==P?void 0:P.Orientation,dur:null==P?void 0:P.Duration,audioCodec:null==P?void 0:P.AudioCodec,videoCodec:null==P?void 0:P.VideoCodec,container:null==P?void 0:P.Container},(function(e){return void 0!==e}))}return Object.assign({url:M},I)}))}_getNosCdnHost(){var e;return __awaiter(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 r=null===(e=null==t?void 0:t.content)||void 0===e?void 0:e.nosConfigTag,i=parseInt(null==r?void 0:r.expire);0!==i&&r.cdnDomain?-1===i?(this.config.cdn.bucket=r.bucket,this.config.cdn.cdnDomain=r.cdnDomain,this.config.cdn.objectNamePrefix=r.objectNamePrefix):(this.config.cdn.bucket=r.bucket,this.config.cdn.cdnDomain=r.cdnDomain,this.config.cdn.objectNamePrefix=r.objectNamePrefix,this.nosCdnHostTimer=this.core.timerManager.addTimer((()=>{this._getNosCdnHost()}),1e3*i)):(this.config.cdn.bucket="",this.config.cdn.cdnDomain="",this.config.cdn.objectNamePrefix="")}}))}}var Jr={"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"},Wr={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}},Kr={getNosToken:{sid:6,cid:2,service:"cloudStorage",params:[{type:"String",name:"responseBody"},{type:"Property",name:"nosToken",entity:"nosToken",reflectMapper:Wr.nosToken}],response:[{type:"Property",name:"nosToken",reflectMapper:invertSerializeItem(Wr.nosToken)}]},getOriginUrl:{sid:6,cid:22,service:"cloudStorage",params:[{type:"Property",name:"nosSafeUrlTag",reflectMapper:Wr.nosSafeUrlTag}],response:[{type:"Property",name:"nosSafeUrlTag",reflectMapper:invertSerializeItem(Wr.nosSafeUrlTag)}]},getNosCdnHost:{sid:6,cid:26,service:"cloudStorage",response:[{type:"Property",name:"nosConfigTag",reflectMapper:invertSerializeItem(Wr.nosConfigTag)}]},getGrayscaleConfig:{sid:6,cid:27,service:"cloudStorage",params:[{type:"Property",name:"config"}],response:[{type:"Property",name:"grayConfigTag",reflectMapper:invertSerializeItem(Wr.grayConfigTag)}]},getMixStorePolicy:{sid:6,cid:28,service:"cloudStorage",params:[{type:"LongArray",name:"supportType"}],response:[{type:"Property",name:"mixStorePolicyTag",reflectMapper:invertSerializeItem(Wr.mixStorePolicyTag)}]},getMixStoreToken:{sid:6,cid:29,service:"cloudStorage",params:[{type:"Property",name:"mixStoreTokenReqTag",reflectMapper:Wr.mixStoreTokenReqTag}],response:[{type:"Property",name:"mixStoreTokenResTag",reflectMapper:invertSerializeItem(Wr.mixStoreTokenResTag)}]},getFileAuthToken:{sid:6,cid:30,service:"cloudStorage",params:[{type:"Property",name:"mixStoreAuthTokenReqTag",reflectMapper:Wr.mixStoreAuthTokenReqTag}],response:[{type:"Property",name:"mixStoreAuthTokenResTag",reflectMapper:invertSerializeItem(Wr.mixStoreAuthTokenResTag)}]},getNosAccessToken:{sid:6,cid:24,service:"cloudStorage",params:[{type:"Property",name:"tag",reflectMapper:Wr.nosAccessTokenTag}],response:[{type:"Property",name:"tag",reflectMapper:invertSerializeItem(Wr.nosAccessTokenTag)}]},deleteNosAccessToken:{sid:6,cid:25,service:"cloudStorage",params:[{type:"Property",name:"tag",reflectMapper:Wr.nosAccessTokenTag}]}};class MixStorage{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 r;return __awaiter(this,void 0,void 0,(function*(){if(ve.localStorage)try{ve.localStorage.getItem&&ve.localStorage.getItem(this.GRAYKEY)&&(this.grayConfig=JSON.parse(ve.localStorage.getItem(this.GRAYKEY))[e])}catch(e){ve.localStorage.getItem(this.GRAYKEY)&&this.core.logger.error("uploadFile:: JSON.parse grayscaleConfig error ",e)}if(!this.grayConfig||this.grayConfig.timeStamp+1e3*this.grayConfig.ttl<t){var i=yield this.core.sendCmd("getGrayscaleConfig",{config:{}});if(i.content&&i.content.grayConfigTag){this.logger.log("uploadFile::getAppGrayConfigRequest success ");try{this.grayConfig=JSON.parse(i.content.grayConfigTag.config),this.grayConfig.ttl=JSON.parse(i.content.grayConfigTag.ttl)}catch(e){this.logger.error("getGrayscaleConfig error",e)}if(!this.grayConfig)return;var s=ve.localStorage.getItem(this.GRAYKEY)?JSON.parse(ve.localStorage.getItem(this.GRAYKEY)):{};this.grayConfig.timeStamp=(new Date).getTime(),s[e]=this.grayConfig,ve.localStorage.setItem(this.GRAYKEY,JSON.stringify(s))}else this.logger.log("uploadFile:: result grayConfig:",i.content)}(null===(r=this.grayConfig)||void 0===r?void 0:r.mixStoreEnable)&&(yield this._getMixStorePolicy(e))}))}_getMixStorePolicy(e){return __awaiter(this,void 0,void 0,(function*(){var t=(new Date).getTime();if(ve.localStorage)try{if(this.mixStorePolicy=JSON.parse(ve.localStorage.getItem(this.MIXSTOREKEY))[e],this.curProvider=parseInt(this.mixStorePolicy.providers[0]),this.mixStorePolicy.timeStamp&&this.mixStorePolicy.timeStamp+1e3*this.mixStorePolicy.ttl>t){var r=this.mixStorePolicy.timeStamp+1e3*this.mixStorePolicy.ttl-t;this.core.timerManager.addTimer(this._getMixStorePolicy.bind(this,e),r)}}catch(t){ve.localStorage.getItem(this.MIXSTOREKEY)&&JSON.parse(ve.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 i=(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=i.policyVersion,this.mixStorePolicy.ttl=Number(i.ttl),this.mixStorePolicy.providers=i.providers.split(","),this.circuitTimer&&this.core.timerManager.deleteTimer(this.circuitTimer),this.curProvider=parseInt(this.mixStorePolicy.providers[0]),this.mixStorePolicy.nosPolicy=i.nosPolicy?JSON.parse(i.nosPolicy):null,this.mixStorePolicy.s3Policy=i.s3Policy?JSON.parse(i.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.mixStorePolicy.nosPolicy.priority?["2","1"]:["1","2"],this.core.timerManager.addTimer(this._getMixStorePolicy.bind(this,e),1e3*this.mixStorePolicy.ttl);var s=ve.localStorage.getItem(this.MIXSTOREKEY)?JSON.parse(ve.localStorage.getItem(this.MIXSTOREKEY)):{};this.mixStorePolicy.timeStamp=(new Date).getTime(),s[e]=this.mixStorePolicy,ve.localStorage.setItem(this.MIXSTOREKEY,JSON.stringify(s))}catch(t){if(this.logger.error("getMixStorePolicy error",t),0===this.mixStoreErrorCount)throw new Error("getMixStorePolicy all count error");this._getMixStorePolicy(e),this.mixStoreErrorCount--}this.mixStorePolicy.nosPolicy&&(this.cloudStorage.nos.nosErrorCount=this.mixStorePolicy.nosPolicy.uploadConfig.retryPolicy.retry)}))}_addCircuitTimer(){var e=this.mixStorePolicy.providers,t=e[(e.indexOf(String(this.curProvider))+1)%e.length];if(!t)throw new Error("uploadFile nextProvider error");if(t===e[0])throw new Error("uploadFile all policy fail");if(this.logger.log(`uploadFile:: upload policy will change,now policy:${this.curProvider} nextProvider:${t}`),this.curProvider=parseInt(t),this.mixStorePolicy.nosPolicy&&this.mixStorePolicy.s3Policy){var r=this.mixStorePolicy[1===this.curProvider?"nosPolicy":"s3Policy"].uploadConfig.retryPolicy.circuit;if(!r||0===r)throw new Error("uploadFile circuit error");this.circuitTimer=this.core.timerManager.addTimer((()=>{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*r)}throw new Error("uploadFile will not retry again")}getFileAuthToken(e){return __awaiter(this,void 0,void 0,(function*(){return(yield this.core.sendCmd("getFileAuthToken",{mixStoreAuthTokenReqTag:e})).content.mixStoreAuthTokenResTag}))}}var Qr=-1;class AWS{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,r){return __awaiter(this,void 0,void 0,(function*(){var i;if(Qr+=1,e.file)i=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");i=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}`);i=e.fileInput.files[0]}if(!this.mixStorePolicy.s3Policy)throw new Error("dont get s3 policy");var a={accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey,sessionToken:r.sessionToken,region:r.region,maxRetries:this.mixStorePolicy.s3Policy.uploadConfig.retryPolicy.retry},n=this.s3,o=decodeURIComponent(r.bucket),c=decodeURIComponent(r.objectName),d=i,l=`https://${o}.s3.amazonaws.com/${c}`,m={},p=this.mixStorePolicy.s3Policy;if(p&&p.uploadConfig&&Array.isArray(p.uploadConfig.uploadUrl)&&p.uploadConfig.uploadUrl.length>0){var u=p.uploadConfig.uploadUrl.length;Qr%=u,m.endpoint=p.uploadConfig.uploadUrl[Qr],m.s3ForcePathStyle=!0,l=`${m.endpoint}/${o}/${c}`}t.update({local_file:i.name,remote_addr:l,operation_type:1});var h=new n(m);h.config.update(a);var g={Bucket:o,Key:c,Body:d,Metadata:{token:r.token},ContentType:d.type||"application/octet-stream"};this.core.logger.log("uploadFile:: s3 upload params:",g);var v=h.upload(g);return v.on("httpUploadProgress",(r=>{t.update({index:r.part});var i=parseFloat((r.loaded/r.total).toFixed(2));e.onUploadProgress&&e.onUploadProgress({total:r.total,loaded:r.loaded,percentage:i,percentageText:Math.round(100*i)+"%"})})),new Promise(((i,s)=>{var a=(new Date).getTime();v.send(((n,l)=>__awaiter(this,void 0,void 0,(function*(){var m,p,u;if(n&&"RequestAbortedError"===n.code)this.logger.error("uploadFile:","api::s3:upload file abort.",n),t.update({http_code:n.statusCode,exception:n}),s(new UploadError({code:"v2"===get(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_CANCELLED:400,detail:{reason:"S3RequestAbortedError",rawError:n,curProvider:2}}));else{if(!n){t.update({http_code:200});var h=this.mixStorePolicy.s3Policy.cdnSchema;h=(h=h.replace("{cdnDomain}",this.mixStorePolicy.s3Policy.dlcdn)).replace("{objectName}",l.Key);var g={size:d.size,name:d.name,url:r.shortUrl?r.shortUrl:h,ext:d.name.split(".")[1]||"unknown"},v=e.type||"",y={image:"imageInfo"};return i(y[v]?yield this.getS3FileInfo({url:h,infoSuffix:y[v],s3Result:g}):g)}t.update({http_code:n.statusCode,exception:n}),this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.options.account||(null===(p=null===(m=this.core)||void 0===m?void 0:m.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:a,action:1,exception_service:4}),this.core.reporter.reportTraceUpdateV2("exceptions",{code:"number"==typeof n.status?n.status:"number"==typeof n.code?n.code:0,description:n.message||`${n.code}`,operation_type:1,target:JSON.stringify({bucket:o,object:c})},{asyncParams:ve.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("exceptions",1);var{net_connect:f}=yield ve.net.getNetworkStatus();if(!1===f)return s(new UploadError({code:"v2"===get(this.core,"options.apiVersion")?de.V2NIM_ERROR_CODE_FILE_UPLOAD_FAILED:400,detail:{reason:"No network",rawError:n,curProvider:this.cloudStorage.mixStorage.curProvider}}));try{this.cloudStorage.mixStorage._addCircuitTimer()}catch(t){return s(new UploadError({code:"v2"===get(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}}))}i(this.cloudStorage._uploadFile(e,t))}})))),e.onUploadStart&&e.onUploadStart(v)}))}))}getS3FileInfo(e){var t;return __awaiter(this,void 0,void 0,(function*(){var r,{url:i,infoSuffix:s,s3Result:a}=e;try{r=yield this.core.adapters.request(`${i}?${s}`,{method:"GET",dataType:"text",timeout:5e3},{exception_service:3})}catch(e){return this.core.logger.error("uploadFile:: fetch file info error",e),a}if(r){var{data:n}=r,o="imageInfo"===s?n:null===(t=null==n?void 0:n.GetVideoInfo)||void 0===t?void 0:t.VideoInfo;return pickBy(Object.assign(Object.assign({},a),{w:null==o?void 0:o.Width,h:null==o?void 0:o.Height,orientation:null==o?void 0:o.Orientation,dur:null==o?void 0:o.Duration,audioCodec:null==o?void 0:o.AudioCodec,videoCodec:null==o?void 0:o.VideoCodec,container:null==o?void 0:o.Container}),(function(e){return void 0!==e}))}return this.core.logger.error("uploadFile:: fetch s3 file info no result",`${i}?${s}`),a}))}}var Xr={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:""},Zr="ReporterHook::setMonitorForResources:";class ReporterHookCloudStorage{constructor(e,t){this.traceData=Xr,this.core=e,this.id=Math.round(1e3*Math.random()),this.traceData=Object.assign({},Xr,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 __awaiter(this,void 0,void 0,(function*(){if(this.core&&this.traceData.user_id){if(e.transferred_size&&this.core.logger.log(`${this.id}.${Zr} 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(`${Zr} 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=Xr,this.destroy())}reset(){this.traceData=Object.assign({},Xr)}destroy(){this.core=void 0,this.traceData=Xr}}class CloudStorageService{constructor(e,t={}){this.config={},this.uploadTaskMap={},this.name="cloudStorage",this.logger=e.logger,this.core=e,this.nos=new NOS(e,this),this.mixStorage=new MixStorage(e,this),this.aws=new AWS(e,this),registerParser({cmdMap:Jr,cmdConfig:Kr}),this.setOptions(t),this.setListeners()}setOptions(e={}){var t=e.storageKeyPrefix||"NIMClient";this.mixStorage.GRAYKEY=t+"-AllGrayscaleConfig",this.mixStorage.MIXSTOREKEY=t+"-AllMixStorePolicy";var{s3:r}=e,i=__rest(e,["s3"]),s=Object.assign({},Yr,this.config);if(i&&Object.prototype.hasOwnProperty.call(i,"cdn")){var a=Object.assign(Object.assign({},s.cdn),i.cdn);this.config=Object.assign({},s,i),this.config.cdn=a}else this.config=Object.assign({},s,i);r&&(this.aws.s3=r)}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 __awaiter(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,r){var i=e.onUploadProgress,s=e.onUploadDone,a=e.onUploadStart;return{onUploadStart:"function"==typeof a?e=>{this.uploadTaskMap[t]=e;try{a(e)}catch(e){this.logger.error("CloudStorage::uploadFile:options.onUploadStart execute error",e)}}:e=>{this.uploadTaskMap[t]=e},onUploadProgress:"function"==typeof i?e=>{r.update({transferred_size:e.loaded,full_size:e.total});try{i(e)}catch(e){this.logger.error("CloudStorage::uploadFile:options.onUploadProgress execute error",e)}}:e=>{r.update({transferred_size:e.loaded,full_size:e.total})},onUploadDone:"function"==typeof s?e=>{r.end(0);try{s(e)}catch(e){this.logger.error("CloudStorage::uploadFile:options.onUploadDone execute error",e)}}:()=>{r.end(0)},taskKey:t}}uploadFile(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({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=get(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 r=new ReporterHookCloudStorage(this.core);if(r.start(),e.file)r.update({full_size:e.file.size,local_file:e.file.name});else if("string"==typeof e.fileInput){var i=document.getElementById(e.fileInput);i&&i.files&&i.files[0]&&r.update({full_size:i.files[0].size,local_file:i.files[0].name})}else e.fileInput&&e.fileInput.files&&e.fileInput.files[0]&&r.update({full_size:e.fileInput.files[0].size,local_file:e.fileInput.files[0].name});var s=Me(),{onUploadStart:a,onUploadProgress:n,onUploadDone:o}=this.processCallback(e,s,r);e.onUploadStart=a,e.onUploadProgress=n,e.onUploadDone=o;var c=null;try{c=yield this._uploadFile(e,r),e.md5&&(c.md5=e.md5),delete this.uploadTaskMap[s]}catch(e){throw delete this.uploadTaskMap[s],r.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 r,i;return __awaiter(this,void 0,void 0,(function*(){if(!get(this.mixStorage,"grayConfig.mixStoreEnable")||!get(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:${get(this.mixStorage,"grayConfig.mixStoreEnable")} curProvider:${get(this.mixStorage,"curProvider")}`);var s=this.core.adapters.getFileUploadInformation(e),a=!0;s?!1===s.complete&&2===this.mixStorage.curProvider?a=!1:s.complete&&t.destroy():a=!1,this.aws.s3||(this.mixStorage.curProvider=1);var n=zr;if(!a)try{n=(yield this.core.sendCmd("getMixStoreToken",{mixStoreTokenReqTag:{provider:this.mixStorage.curProvider,tokenCount:1,tag:"qchat",nosSurvivalTime:e.nosSurvivalTime,returnBody:getUploadResponseFormat(e.type),policyVersion:this.mixStorage.mixStorePolicy.policyVersion}})).content.mixStoreTokenResTag}catch(e){if(this.core.logger.error("uploadFile:: getMixStoreToken error",e),t.destroy(),e instanceof V2NIMErrorImpl)throw e;throw new UploadError({code:"v2"===get(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 a?this.nos.nosUpload(e,t,null===(i=null===(r=null==s?void 0:s.uploadInfo)||void 0===r?void 0:r.payload)||void 0===i?void 0:i.mixStoreToken):2===this.mixStorage.curProvider?this.aws.s3Upload(e,t,n):this.nos.nosUpload(e,t,n)}))}getThumbUrl(e,t){var r,i,s,a,n;if(!new RegExp(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/).test(e))return this.logger.error("illegal file url:"+e),e;var[o,c,d,l,m,p,u,h]=/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/.exec(e);if(null===(r=this.grayConfig)||void 0===r?void 0:r.mixStoreEnable){var g=this._getUrlType(e);if(2===g&&this.mixStorePolicy.s3Policy&&get(this.mixStorePolicy,"s3Policy.thumbPolicy.imagethumb"))return(null===(s=null===(i=this.mixStorePolicy.s3Policy)||void 0===i?void 0:i.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&&get(this.mixStorePolicy,"nosPolicy.thumbPolicy.imagethumb"))return(null===(n=null===(a=this.mixStorePolicy.nosPolicy)||void 0===a?void 0:a.thumbPolicy)||void 0===n?void 0:n.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 r,i,s,a,n;if(!new RegExp(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/).test(e))return this.logger.error("illegal file url:"+e),e;var[o,c,d,l,m,p,u,h]=/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/.exec(e);if(null===(r=this.grayConfig)||void 0===r?void 0:r.mixStoreEnable){var g=this._getUrlType(e);if(2===g&&this.mixStorePolicy.s3Policy&&get(this.mixStorePolicy,"s3Policy.thumbPolicy.vframe"))return(null===(s=null===(i=this.mixStorePolicy.s3Policy)||void 0===i?void 0:i.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&&get(this.mixStorePolicy,"nosPolicy.thumbPolicy.vframe"))return(null===(n=null===(a=this.mixStorePolicy.nosPolicy)||void 0===a?void 0:a.thumbPolicy)||void 0===n?void 0:n.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[r,i,s,a,n,o,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}",o)),1===l&&this.mixStorePolicy.nosPolicy&&(e=this.mixStorePolicy.nosPolicy.cdnSchema.replace("{cdnDomain}",this.mixStorePolicy.nosPolicy.dlcdn).replace("{objectName}",o)),e}var{downloadUrl:m,downloadHostList:p,nosCdnEnable:u}=this.config,h=this.config.cdn.cdnDomain,g=this.config.cdn.objectNamePrefix?decodeURIComponent(this.config.cdn.objectNamePrefix):"",v=decodeURIComponent(o),y=v.indexOf(g);if(h&&y>-1&&u)return`${i}:${s}${h}/${v.slice(y)}`;if(p.includes(a)&&o.includes("/")){var f=o.indexOf("/"),I=o.substring(0,f),M=o.substring(f+1);return m.replace("{bucket}",I).replace("{object}",M)}var S=p.filter((e=>"string"==typeof a&&a.includes(e)))[0],T=S?a.replace(S,"").replace(/\W/g,""):null;return T?m.replace("{bucket}",T).replace("{object}",o):e}getOriginUrl(e){return __awaiter(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 __awaiter(this,void 0,void 0,(function*(){validate({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,r=this.mixStorePolicy.s3Policy?this.mixStorePolicy.s3Policy.authPolicy.policyType:null;if(t===String(-1)&&r===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||r&&r.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 i=[],s=[];if(e.urls.forEach((e=>{var t=this._getUrlType(e);1===t&&s.push(e),2===t&&i.push(e)})),(!r||0!==i.length&&r.indexOf(String(3))<0)&&(this.logger.warn("s3 url don't support url token"),i=[]),(!t||0!==s.length&&t.indexOf(String(3))<0)&&(this.logger.warn("nos url don't support url token"),s=[]),0===i.length&&0===s.length)throw this.logger.error("not support urls"),new Error("not support urls");if(0===i.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 validate({url:{type:"string",allowEmpty:!1}},e),this.nos.getNosAccessToken(e)}deleteNosAccessToken(e){return validate({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=get(e,"error.detail.ignore");return e.error&&!t?Promise.reject(e.error):Promise.resolve(e)}}var ei=invert({none:0,normal:1,all:3}),ti=invert({normal:0,advanced:1}),ri=invert({normal:0,owner:1,manager:2}),ii={noVerify:0,needVerify:1,rejectAll:2},si=invert(ii),ai={needVerify:0,noVerify:1},ni=invert(ai),oi={manager:0,all:1},ci=invert(oi),di={manager:0,all:1},li=invert(di),mi={manager:0,all:1},pi=invert(mi);function formatSuperTeam(e){var t={type:ti,muteType:ei,joinMode:si,beInviteMode:ni,inviteMode:ci,updateTeamMode:li,updateExtMode:pi},r=__rest(e,["bits"]);return["teamId"].forEach((e=>{r[e]&&(r[e]=r[e].toString())})),["level","memberNum","memberUpdateTime","createTime","updateTime"].forEach((e=>{void 0!==r[e]&&(r[e]=parseInt(r[e]))})),["valid","validToCurrentUser","mute"].forEach((e=>{void 0!==r[e]&&(r[e]=1===parseInt(r[e]))})),Object.keys(t).forEach((e=>{void 0!==r[e]&&(r[e]=t[e][r[e]]||r[e])})),r}function formatSuperTeams(e){return e&&e.length>0?e.map((e=>formatSuperTeam(e))):[]}function generatorSuperTeamMemberForCmd(e){var t={};return void 0!==e.bitConfigMask&&(t.bits=parseInt(e.bitConfigMask)),["teamId","ext","account","nickInTeam"].forEach((r=>{e[r]&&(t[r]=e[r].toString())})),Object.prototype.hasOwnProperty.call(e,"nickInTeam")&&(t.nickInTeam=e.nickInTeam),t}function formatSuperTeamMember(e){var t={type:ri},{bits:r}=e,i=__rest(e,["bits"]);return void 0!==r&&(i.muteTeam=1===parseInt(r),i.bitConfigMask=r),i.id=`${i.teamId}-${i.account}`,["teamId"].forEach((e=>{i[e]&&(i[e]=i[e].toString())})),["joinTime","updateTime","bitConfigMask"].forEach((e=>{void 0!==i[e]&&(i[e]=parseInt(i[e]))})),["active","valid","mute"].forEach((e=>{void 0!==i[e]&&(i[e]=1===parseInt(i[e]))})),Object.keys(t).forEach((e=>{void 0!==i[e]&&(i[e]=t[e][i[e]]||i[e])})),i}function formatSuperTeamMembers(e){return e&&e.length>0?e.map((e=>formatSuperTeamMember(e))):[]}function generatorMemberBySuperTeam(e,t,r="normal"){return{id:`${e.teamId}-${t}`,teamId:e.teamId,account:t,type:r,nickInTeam:"",muteTeam:!1,mute:!1,joinTime:e.memberUpdateTime,updateTime:e.memberUpdateTime,active:!0,valid:!0}}function generatorMembersBySuperTeam(e,t,r="normal"){return t&&t.length>0?t.map((t=>generatorMemberBySuperTeam(e,t,r))):[]}class ModuleService{constructor(e){this.core=e}notifyAddSuperTeamMembers(e,t){this.core.emit("addSuperTeamMembers",{team:e,accounts:t,members:generatorMembersBySuperTeam(e,t)})}notifyUpdateSuperTeamManagers(e,t,r,i){this.core.emit("updateSuperTeamManagers",{team:{teamId:e,memberUpdateTime:i},accounts:t,isManager:r,members:t.map((t=>({id:`${e}-${t}`,type:r?"manager":"normal",account:t,updateTime:i})))})}notifyRemoveSuperTeamMembers(e,t){this.core.emit("removeSuperTeamMembers",{team:e,accounts:t})}notifyTransferSuperTeam(e,t,r){this.core.emit("transferSuperTeam",{team:e,from:{id:`${e.teamId}-${t}`,account:t,type:"normal",updateTime:e.memberUpdateTime},to:{id:`${e.teamId}-${r}`,account:r,type:"owner",updateTime:e.memberUpdateTime}})}notifyUpdateSuperTeamMembersMute(e,t,r){this.core.emit("updateSuperTeamMembersMute",{team:e,accounts:t,members:t.map((function(t){return{id:`${e.teamId}-${t}`,account:t,teamId:e.teamId,mute:r,updateTime:e.memberUpdateTime}})),mute:r})}}var ui={"21_5":"addSuperTeamMembers","21_6":"removeSuperTeamMembers","21_7":"leaveSuperTeam","21_8":"updateSuperTeamInfo","21_9":"getSuperTeamInfo","21_12":"getSuperTeams","21_15":"getSuperTeamMembers","21_10":"updateMySuperTeamMemberInfo","21_20":"applySuperTeam","21_21":"passSuperTeamApply","21_22":"rejectSuperTeamApply","21_23":"acceptSuperTeamInvite","21_24":"rejectSuperTeamInvite","21_26":"addSuperTeamManagers","21_27":"removeSuperTeamManagers","21_28":"muteSuperTeam","21_29":"muteSuperTeamMembers","21_30":"updateSuperTeamMemberNick","21_31":"transferSuperTeam","21_33":"getSuperTeamMembersByAccounts","21_34":"queryMuteSuperTeamMembers","21_101":"syncCreateSuperTeam","21_109":"syncSuperTeams","21_110":"syncUpdateSuperTeamMember","21_111":"syncMySuperTeamMembers"},hi={superTeam:{teamId:1,name:3,type:4,owner:5,level:6,selfCustom:7,valid:8,memberNum:9,memberUpdateTime:10,createTime:11,updateTime:12,validToCurrentUser:13,intro:14,announcement:15,joinMode:16,bits:17,ext:18,serverExt:19,avatar:20,beInviteMode:21,inviteMode:22,updateTeamMode:23,updateExtMode:24,mute:100,muteType:101},superTeamMember:{teamId:1,account:3,type:4,nickInTeam:5,bits:7,active:8,valid:9,updateTime:11,ext:12,mute:13,invitorAccid:14,joinTime:15}},gi=invertSerializeMap(hi),vi={getSuperTeamInfo:{sid:21,cid:9,service:"superTeam",params:[{type:"Long",name:"teamId"}],response:[{type:"Property",name:"superTeam",reflectMapper:gi.superTeam}]},getSuperTeams:{sid:21,cid:12,service:"superTeam",params:[{type:"Long",name:"timetag"}],response:[{type:"PropertyArray",name:"superTeams",reflectMapper:gi.superTeam},{type:"Bool",name:"isAll"},{type:"Long",name:"timetag"}]},updateSuperTeamInfo:{sid:21,cid:8,service:"superTeam",params:[{type:"Property",name:"superTeam",reflectMapper:hi.superTeam}],response:[{type:"Long",name:"time"}]},addSuperTeamMembers:{sid:21,cid:5,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"},{type:"String",name:"ps"}],response:[{type:"StrArray",name:"abortedAccidList"},{type:"Long",name:"time"}]},removeSuperTeamMembers:{sid:21,cid:6,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},addSuperTeamManagers:{sid:21,cid:26,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},removeSuperTeamManagers:{sid:21,cid:27,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},applySuperTeam:{sid:21,cid:20,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"String",name:"ps"}],response:[{type:"Property",name:"superTeam",reflectMapper:gi.superTeam}]},transferSuperTeam:{sid:21,cid:31,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Bool",name:"leave"}]},muteSuperTeam:{sid:21,cid:28,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"Int",name:"mute"}]},muteSuperTeamMembers:{sid:21,cid:29,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"},{type:"Int",name:"mute"}]},updateSuperTeamMemberNick:{sid:21,cid:30,service:"superTeam",params:[{type:"Property",name:"teamMember",reflectMapper:hi.superTeamMember}]},updateMySuperTeamMemberInfo:{sid:21,cid:10,service:"superTeam",params:[{type:"Property",name:"teamMember",reflectMapper:hi.superTeamMember}]},getSuperTeamMembersByAccounts:{sid:21,cid:33,service:"superTeam",params:[{type:"StrArray",name:"memberIds"}],response:[{type:"PropertyArray",name:"superTeamMembers",reflectMapper:gi.superTeamMember}]},getSuperTeamMembers:{sid:21,cid:15,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"Long",name:"joinTime"},{type:"Int",name:"limit"},{type:"Bool",name:"reverse"}],response:[{type:"PropertyArray",name:"superTeamMembers",reflectMapper:gi.superTeamMember}]},queryMuteSuperTeamMembers:{sid:21,cid:34,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"Long",name:"joinTime"},{type:"Int",name:"limit"},{type:"Bool",name:"reverse"}],response:[{type:"PropertyArray",name:"superTeamMembers",reflectMapper:gi.superTeamMember}]},leaveSuperTeam:{sid:21,cid:7,service:"superTeam",params:[{type:"Long",name:"teamId"}]},passSuperTeamApply:{sid:21,cid:21,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},rejectSuperTeamApply:{sid:21,cid:22,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},acceptSuperTeamInvite:{sid:21,cid:23,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},rejectSuperTeamInvite:{sid:21,cid:24,service:"superTeam",params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},syncSuperTeams:{sid:21,cid:109,service:"superTeam",response:[{type:"PropertyArray",name:"teams",reflectMapper:gi.superTeam},{type:"Bool",name:"isAll"},{type:"Long",name:"timetag"}]},syncCreateSuperTeam:{sid:21,cid:101,service:"superTeam",response:[{type:"Property",name:"superTeam",reflectMapper:gi.superTeam}]},syncUpdateSuperTeamMember:{sid:21,cid:110,service:"superTeam",response:[{type:"Property",name:"teamMember",reflectMapper:gi.superTeamMember}]},syncMySuperTeamMembers:{sid:21,cid:111,ext:"sync",service:"superTeam",response:[{type:"PropertyArray",name:"teamMembers",reflectMapper:gi.superTeamMember},{type:"Long",name:"timetag"}]}};var yi={"13_1":"getChatroomAddress","24_1":"getQChatAddress"},fi={getChatroomAddress:{sid:13,cid:1,service:"plugin",params:[{type:"Long",name:"chatroomId"},{type:"Bool",name:"isWeixinApp"},{type:"Int",name:"ipType"}],response:[{type:"StrArray",name:"address"}]},getQChatAddress:{sid:24,cid:1,service:"plugin",params:[{type:"Property",name:"getQChatAddressTag",reflectMapper:{ipType:1}}],response:[{type:"StrArray",name:"address"}]}};var Ii=Ii||function(e){var t;"undefined"!=typeof window&&window.crypto&&(t=window.crypto),"undefined"!=typeof self&&self.crypto&&(t=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(t=globalThis.crypto),!t&&"undefined"!=typeof window&&window.msCrypto&&(t=window.msCrypto),!t&&"undefined"!=typeof global&&global.crypto&&(t=global.crypto);var cryptoSecureRandomInt=function(){if(t){if("function"==typeof t.getRandomValues)try{return t.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof t.randomBytes)try{return t.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")},r=Object.create||function(){function F(){}return function(e){var t;return F.prototype=e,t=new F,F.prototype=null,t}}(),i={},s=i.lib={},a=s.Base={extend:function(e){var t=r(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)}},n=s.WordArray=a.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,r=e.words,i=this.sigBytes,s=e.sigBytes;if(this.clamp(),i%4)for(var a=0;a<s;a++){var n=r[a>>>2]>>>24-a%4*8&255;t[i+a>>>2]|=n<<24-(i+a)%4*8}else for(var o=0;o<s;o+=4)t[i+o>>>2]=r[o>>>2];return this.sigBytes+=s,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r<e;r+=4)t.push(cryptoSecureRandomInt());return new n.init(t,e)}}),o=i.enc={},c=o.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],s=0;s<r;s++){var a=t[s>>>2]>>>24-s%4*8&255;i.push((a>>>4).toString(16)),i.push((15&a).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i+=2)r[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new n.init(r,t/2)}},d=o.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],s=0;s<r;s++){var a=t[s>>>2]>>>24-s%4*8&255;i.push(String.fromCharCode(a))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i++)r[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new n.init(r,t)}},l=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(d.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return d.parse(unescape(encodeURIComponent(e)))}},m=s.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new n.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r,i=this._data,s=i.words,a=i.sigBytes,o=this.blockSize,c=a/(4*o),d=(c=t?e.ceil(c):e.max((0|c)-this._minBufferSize,0))*o,l=e.min(4*d,a);if(d){for(var m=0;m<d;m+=o)this._doProcessBlock(s,m);r=s.splice(0,d),i.sigBytes-=l}return new n.init(r,l)},clone:function(){var e=a.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});s.Hasher=m.extend({cfg:a.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){m.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function(e){return function(t,r){return new p.HMAC.init(e,r).finalize(t)}}});var p=i.algo={};return i}(Math),Mi=Ii.enc.Utf8,Si=Ii,Ti=Si.lib,_i=Ti.Base,Ci=Ti.WordArray,Ei=Si.algo,bi=Ei.MD5,Ni=Ei.EvpKDF=_i.extend({cfg:_i.extend({keySize:4,hasher:bi,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r,i=this.cfg,s=i.hasher.create(),a=Ci.create(),n=a.words,o=i.keySize,c=i.iterations;n.length<o;){r&&s.update(r),r=s.update(e).finalize(t),s.reset();for(var d=1;d<c;d++)r=s.finalize(r),s.reset();a.concat(r)}return a.sigBytes=4*o,a}});Si.EvpKDF=function(e,t,r){return Ni.create(r).compute(e,t)},Ii.EvpKDF;var Ai=Ii,Ri=Ai.lib.WordArray;Ai.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,i=this._map;e.clamp();for(var s=[],a=0;a<r;a+=3)for(var n=(t[a>>>2]>>>24-a%4*8&255)<<16|(t[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|t[a+2>>>2]>>>24-(a+2)%4*8&255,o=0;o<4&&a+.75*o<r;o++)s.push(i.charAt(n>>>6*(3-o)&63));var c=i.charAt(64);if(c)for(;s.length%4;)s.push(c);return s.join("")},parse:function(e){var t=e.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<r.length;s++)i[r.charCodeAt(s)]=s}var a=r.charAt(64);if(a){var n=e.indexOf(a);-1!==n&&(t=n)}return function parseLoop(e,t,r){for(var i=[],s=0,a=0;a<t;a++)if(a%4){var n=r[e.charCodeAt(a-1)]<<a%4*2|r[e.charCodeAt(a)]>>>6-a%4*2;i[s>>>2]|=n<<24-s%4*8,s++}return Ri.create(i,s)}(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},Ii.enc.Base64,function(e){e.lib.Cipher||function(){var t=e,r=t.lib,i=r.Base,s=r.WordArray,a=r.BufferedBlockAlgorithm,n=t.enc;n.Utf8;var o=n.Base64,c=t.algo.EvpKDF,d=r.Cipher=a.extend({cfg:i.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,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){a.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 selectCipherStrategy(e){return"string"==typeof e?f:v}return function(e){return{encrypt:function(t,r,i){return selectCipherStrategy(r).encrypt(e,t,r,i)},decrypt:function(t,r,i){return selectCipherStrategy(r).decrypt(e,t,r,i)}}}}()});r.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var l=t.mode={},m=r.BlockCipherMode=i.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=m.extend();function xorBlock(e,t,r){var i,s=this._iv;s?(i=s,this._iv=void 0):i=this._prevBlock;for(var a=0;a<r;a++)e[t+a]^=i[a]}return e.Encryptor=e.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;xorBlock.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),e.Decryptor=e.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,s=e.slice(t,t+i);r.decryptBlock(e,t),xorBlock.call(this,e,t,i),this._prevBlock=s}}),e}(),u=(t.pad={}).Pkcs7={pad:function(e,t){for(var r=4*t,i=r-e.sigBytes%r,a=i<<24|i<<16|i<<8|i,n=[],o=0;o<i;o+=4)n.push(a);var c=s.create(n,i);e.concat(c)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};r.BlockCipher=d.extend({cfg:d.cfg.extend({mode:p,padding:u}),reset:function(){var e;d.reset.call(this);var t=this.cfg,r=t.iv,i=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=i.createEncryptor:(e=i.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,r&&r.words):(this._mode=e.call(i,this,r&&r.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 h=r.CipherParams=i.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,r=e.salt;return(r?s.create([1398893684,1701076831]).concat(r).concat(t):t).toString(o)},parse:function(e){var t,r=o.parse(e),i=r.words;return 1398893684==i[0]&&1701076831==i[1]&&(t=s.create(i.slice(2,4)),i.splice(0,4),r.sigBytes-=16),h.create({ciphertext:r,salt:t})}},v=r.SerializableCipher=i.extend({cfg:i.extend({format:g}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var s=e.createEncryptor(r,i),a=s.finalize(t),n=s.cfg;return h.create({ciphertext:a,key:r,iv:n.iv,algorithm:e,mode:n.mode,padding:n.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(r,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),y=(t.kdf={}).OpenSSL={execute:function(e,t,r,i){i||(i=s.random(8));var a=c.create({keySize:t+r}).compute(e,i),n=s.create(a.words.slice(t),4*r);return a.sigBytes=4*t,h.create({key:a,iv:n,salt:i})}},f=r.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:y}),encrypt:function(e,t,r,i){var s=(i=this.cfg.extend(i)).kdf.execute(r,e.keySize,e.ivSize);i.iv=s.iv;var a=v.encrypt.call(this,e,t,s.key,i);return a.mixIn(s),a},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var s=i.kdf.execute(r,e.keySize,e.ivSize,t.salt);return i.iv=s.iv,v.decrypt.call(this,e,t,s.key,i)}})}()}(Ii);var Oi=Ii,ki=Oi.lib.StreamCipher,wi=Oi.algo,Pi=wi.RC4=ki.extend({_doReset:function(){for(var e=this._key,t=e.words,r=e.sigBytes,i=this._S=[],s=0;s<256;s++)i[s]=s;s=0;for(var a=0;s<256;s++){var n=s%r,o=t[n>>>2]>>>24-n%4*8&255;a=(a+i[s]+o)%256;var c=i[s];i[s]=i[a],i[a]=c}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=generateKeystreamWord.call(this)},keySize:8,ivSize:0});function generateKeystreamWord(){for(var e=this._S,t=this._i,r=this._j,i=0,s=0;s<4;s++){r=(r+e[t=(t+1)%256])%256;var a=e[t];e[t]=e[r],e[r]=a,i|=e[(e[t]+e[r])%256]<<24-8*s}return this._i=t,this._j=r,i}Oi.RC4=ki._createHelper(Pi);var Vi=wi.RC4Drop=Pi.extend({cfg:Pi.cfg.extend({drop:192}),_doReset:function(){Pi._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)generateKeystreamWord.call(this)}});Oi.RC4Drop=ki._createHelper(Vi);var Li=Ii.RC4,Ui={"3_1":"updatePushToken","3_2":"updateAppBackground"},Di={updatePushToken:{sid:3,cid:1,service:"user",params:[{type:"String",name:"tokenName"},{type:"String",name:"token"},{type:"Int",name:"pushkit"}]},updateAppBackground:{sid:3,cid:2,service:"user",params:[{type:"Bool",name:"isBackground"},{type:"Int",name:"badge"}]}};var xi={"7_19":"nimQueryCloudSessionList","7_20":"nimQueryCloudSession","7_21":"nimUpdateCloudSession","7_22":"nimDeleteCloudSessionList","7_121":"nimMultiSyncUpdateCloudSession"},qi={sessionReqTag:{minTimestamp:1,maxTimestamp:2,includedLastMsg:3,limit:4,hasMore:5},sessionTag:{sessionId:1,updateTime:2,ext:3,lastMsg:4,lastMsgType:5}},Bi=invertSerializeMap(qi),Fi={nimQueryCloudSessionList:{sid:7,cid:19,service:"cloudSession",params:[{type:"Property",name:"tag",reflectMapper:qi.sessionReqTag}],response:[{type:"Property",name:"tag",reflectMapper:Bi.sessionReqTag},{type:"PropertyArray",name:"sessions",reflectMapper:Bi.sessionTag}]},nimQueryCloudSession:{sid:7,cid:20,service:"cloudSession",params:[{type:"Property",name:"tag",reflectMapper:qi.sessionTag}],response:[{type:"Property",name:"session",reflectMapper:Bi.sessionTag}]},nimUpdateCloudSession:{sid:7,cid:21,service:"cloudSession",params:[{type:"Property",name:"tag",reflectMapper:qi.sessionTag}]},nimDeleteCloudSessionList:{sid:7,cid:22,service:"cloudSession",params:[{type:"PropertyArray",name:"tags",reflectMapper:qi.sessionTag}]},nimMultiSyncUpdateCloudSession:{sid:7,cid:121,service:"cloudSession",response:[{type:"Property",name:"session",reflectMapper:Bi.sessionTag}]}},ji={sessionId:{type:"string"},updateTime:{type:"number"},ext:{type:"string"},lastMsg:{type:"object"},lastMsgType:{type:"number"}};function formatCloudSession(e,t,r){var i=format(ji,e),{accid:s,scene:a}=getAccountFromSessionId(i.sessionId,"|");if(i.sessionId=`${a}-${s}`,i.lastMsg){var n=1===i.lastMsgType;i.lastMsgInfo=n?{isLastMsgRecalled:n,revokedMsg:formatSystemMessage(deserialize(i.lastMsg,vr.sysMsg),r)}:{isLastMsgRecalled:n,lastMsg:formatMsg$1(deserialize(i.lastMsg,ir.msg),{account:t})}}return delete i.lastMsg,delete i.lastMsgType,i}function formatCloudSessions(e,t,r){return e&&e.length>0?e.map((e=>formatCloudSession(e,t,r))):[]}var $i={needPush:{type:"boolean",required:!1},pushTitle:{type:"string",required:!1},pushContent:{type:"string",required:!1},pushPayload:{type:"string",required:!1},needPushBadge:{type:"boolean",required:!1}},Gi={"15_1":"signalingCreate","15_2":"signalingDelay","15_3":"signalingClose","15_4":"signalingJoin","15_5":"signalingLeave","15_6":"signalingInvite","15_7":"signalingCancelInvite","15_8":"signalingReject","15_9":"signalingAccept","15_10":"signalingSendCustomCommand","15_11":"signalingRecvNotification","15_12":"signalingMultiSyncNotification","15_13":"signalingSyncNotification","15_14":"singalingSyncChannels","15_15":"signalingQueryInfo","15_16":"signalingCallEx","15_17":"signalingJoinAndAccept"},Hi={avSignalTag:Object.assign({type:1,name:2,channelId:3,createTime:4,expireTime:5,creatorAccid:6,ext:7,invalid:8,fromAccid:10,toAccid:11,requestId:12,members:18,attach:19,attachExt:20,needOffline:21,msgId:22,uid:23,time:24,nertcChannelName:25,nertcTokenTtl:26,nertcToken:27,nertcJoinRoomQueryParamMap:28,nertcJoinRoomResponse:29,callStatus:30},{needPush:13,pushTitle:14,pushContent:15,pushPayload:16,needPushBadge:17})},zi=invertSerializeMap(Hi),Yi={signalingCreate:{sid:15,cid:1,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingDelay:{sid:15,cid:2,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingClose:{sid:15,cid:3,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingJoin:{sid:15,cid:4,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingLeave:{sid:15,cid:5,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}]},signalingInvite:{sid:15,cid:6,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}]},signalingCancelInvite:{sid:15,cid:7,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}]},signalingReject:{sid:15,cid:8,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}]},signalingAccept:{sid:15,cid:9,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}]},signalingSendCustomCommand:{sid:15,cid:10,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}]},signalingRecvNotification:{sid:15,cid:11,service:"signaling",response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingMultiSyncNotification:{sid:15,cid:12,service:"signaling",response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingSyncNotification:{sid:15,cid:13,service:"signaling",response:[{type:"PropertyArray",name:"datas",reflectMapper:zi.avSignalTag}]},singalingSyncChannels:{sid:15,cid:14,service:"signaling",response:[{type:"PropertyArray",name:"datas",reflectMapper:zi.avSignalTag}]},signalingQueryInfo:{sid:15,cid:15,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingCallEx:{sid:15,cid:16,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingJoinAndAccept:{sid:15,cid:17,service:"signaling",params:[{type:"Property",name:"tag",reflectMapper:Hi.avSignalTag}],response:[{type:"Property",name:"data",reflectMapper:zi.avSignalTag}]},signalingBatchMarkRead:{sid:4,cid:5,hasPacketResponse:!1,service:"signaling",params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]}},Ji={type:{type:"number"},createTime:{type:"number"},expireTime:{type:"number"},invalid:{type:"boolean"},pushInfo:$i,pluginSetting:{nertcInfo:{nertcChannelName:{type:"string"},nertcTokenTtl:{type:"number"},nertcToken:{type:"string"},nertcJoinRoomQueryParamMap:{type:"string"},callStatus:{type:"number"}}},callStatus:{type:"number"},attach:{type:"object"},members:{type:"object"},needOffline:{type:"boolean"},uid:{type:"number"},time:{type:"number"}};function formatSignalingChannelMember(e){return format(Ji,deserialize(e,{1:"accid",2:"uid",3:"createTime",4:"expireTime"}))}function formatSignaling(e){var t=format(Ji,e),r=[];return t.members&&t.members.length>0&&(r=t.members.map((e=>formatSignalingChannelMember(e))),delete t.members),r.length>0?{channelInfo:t,memberList:r}:{channelInfo:t}}function formatSignalingWithCallStatus(e){var t=format(Ji,e),r=[];t.members&&t.members.length>0&&(r=t.members.map((e=>formatSignalingChannelMember(e))),delete t.members);var i=200;return e.callStatus&&(i=Number(e.callStatus)),r.length>0?{channelInfo:t,memberList:r,callStatus:i}:{channelInfo:t,callStatus:i}}function generateSignalingForCmd(e){return formatReverse(Ji,e)}class SignalingService extends ae.EventEmitter{constructor(e){super(),this.timer=0,this.pollingInterval=12e4,this.name="signaling",this.logger=e.logger,this.core=e,this.channels={},registerParser({cmdMap:Gi,cmdConfig:Yi})}callEx(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number"},toAccid:{type:"string",allowEmpty:!1},requestId:{type:"string",allowEmpty:!1},needOffline:{type:"boolean",required:!1},pushInfo:{type:"object",required:!1,rules:$i},pluginSetting:{type:"object",required:!1,rules:{nertcInfo:{type:"object",required:!1}}}},e);var r=yield this.core.sendCmd("signalingCallEx",{tag:generateSignalingForCmd(e)}),i=formatSignalingWithCallStatus((null===(t=r.content)||void 0===t?void 0:t.data)||{});return this.channels[i.channelInfo.channelId]=cloneDeep(i.channelInfo),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1)),i}))}joinAndAccept(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},fromAccid:{type:"string",allowEmpty:!1},requestId:{type:"string",required:!1},needOffline:{type:"boolean",required:!1},uid:{type:"number",required:!1},pluginSetting:{type:"object",required:!1,rules:{nertcInfo:{type:"object",required:!1}}}},e);var{fromAccid:r}=e,i=__rest(e,["fromAccid"]);i.toAccid=r;var s=yield this.core.sendCmd("signalingJoinAndAccept",{tag:generateSignalingForCmd(i)}),a=formatSignalingWithCallStatus((null===(t=s.content)||void 0===t?void 0:t.data)||{});return this.channels[a.channelInfo.channelId]=cloneDeep(a.channelInfo),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1)),a}))}create(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number"},ext:{type:"string",required:!1}},e);var r=yield this.core.sendCmd("signalingCreate",{tag:generateSignalingForCmd(e)});return formatSignaling((null===(t=r.content)||void 0===t?void 0:t.data)||{})}))}close(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},needOffline:{type:"boolean",required:!1}},e),yield this.core.sendCmd("signalingClose",{tag:generateSignalingForCmd(e)})}))}queryInfo(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({name:{type:"string",allowEmpty:!1}},e);var r=yield this.core.sendCmd("signalingQueryInfo",{tag:e});return formatSignaling((null===(t=r.content)||void 0===t?void 0:t.data)||{})}))}join(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},uid:{type:"number",min:0,required:!1},needOffline:{type:"boolean",required:!1}},e);var r=yield this.core.sendCmd("signalingJoin",{tag:generateSignalingForCmd(e)}),i=formatSignaling((null===(t=r.content)||void 0===t?void 0:t.data)||{});return this.channels[i.channelInfo.channelId]=cloneDeep(i.channelInfo),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1)),i}))}aotoDelay(){return __awaiter(this,void 0,void 0,(function*(){var e=Object.keys(this.channels);if(0===e.length)return this.timer&&this.core.timerManager.deleteTimer(this.timer),void(this.timer=0);this.logger.log("signling:autoDelay",e);for(var t=0;t<e.length;t++){var r=e[t];try{var i=formatSignaling((yield this.core.sendCmd("signalingDelay",{tag:{channelId:r}})).content.data);this.channels[r]=i.channelInfo}catch(e){this.logger.warn(`signling:autoDelay ${r} failed`,e),delete this.channels[r]}}}))}leave(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},needOffline:{type:"boolean",required:!1}},e),yield this.core.sendCmd("signalingLeave",{tag:generateSignalingForCmd(e)}),delete this.channels[e.channelId]}))}invite(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},toAccid:{type:"string",allowEmpty:!1},requestId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},needOffline:{type:"boolean",required:!1},pushInfo:{type:"object",required:!1,rules:$i}},e),yield this.core.sendCmd("signalingInvite",{tag:generateSignalingForCmd(e)})}))}cancelInvite(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},toAccid:{type:"string",allowEmpty:!1},requestId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},needOffline:{type:"boolean",required:!1}},e),yield this.core.sendCmd("signalingCancelInvite",{tag:generateSignalingForCmd(e)})}))}reject(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},fromAccid:{type:"string",allowEmpty:!1},requestId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},needOffline:{type:"boolean",required:!1}},e);var{fromAccid:t}=e,r=__rest(e,["fromAccid"]);r.toAccid=t,yield this.core.sendCmd("signalingReject",{tag:generateSignalingForCmd(r)})}))}accept(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},fromAccid:{type:"string",allowEmpty:!1},requestId:{type:"string",allowEmpty:!1},attachExt:{type:"string",required:!1},needOffline:{type:"boolean",required:!1},autoJoin:{type:"boolean",required:!1},uid:{type:"number",min:0,required:!1},joinAttachExt:{type:"string",required:!1}},e);var{autoJoin:t,joinAttachExt:r,fromAccid:i}=e,s=__rest(e,["autoJoin","joinAttachExt","fromAccid"]);if(s.toAccid=i,yield this.core.sendCmd("signalingAccept",{tag:generateSignalingForCmd(s)}),this.logger.log(`Signaling:accept, accept success, autoJoin ${e.autoJoin}`),t){var a={channelId:e.channelId,needOffline:e.needOffline,attachExt:r,uid:e.uid};yield this.join(a)}}))}sendCustomCommand(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1},fromAccid:{type:"string",allowEmpty:!1,required:!1},attachExt:{type:"string",required:!1}},e),yield this.core.sendCmd("signalingSendCustomCommand",{tag:generateSignalingForCmd(e)})}))}signalingRecvNotificationHandler(e){var t=fillIdServer(e,e.content.data,"msgId","0"),r=t.msgId;this.doNotify(t),r&&parseInt(r)&&this.core.sendCmd("signalingBatchMarkRead",{sid:15,cid:11,ids:[r]})}signalingMultiSyncNotificationHandler(e){this.doNotify(e.content.data,3)}doNotify(e,t=0){var{metaData:r,rawData:i}=function formatSignalingNotification(e,t=0){var r=format(Ji,e),{attach:i,attachExt:s,time:a,msgId:n,fromAccid:o,toAccid:c,members:d,requestId:l,pushInfo:m}=r,p=__rest(r,["attach","attachExt","time","msgId","fromAccid","toAccid","members","requestId","pushInfo"]);if(2===i.type)try{r.member={accid:r.attach.member[1],uid:Number(r.attach.member[2]),createTime:Number(r.attach.member[3]),expireTime:Number(r.attach.member[4])}}catch(e){delete r.member}var u=i.type;return delete r.attach,{metaData:{eventType:u,channelInfo:p,feature:t,ext:s||"",time:a,msgId:n},rawData:r}}(e,t),{fromAccid:s,toAccid:a,requestId:n,pushInfo:o,msgId:c,member:d}=i;switch(r.eventType){case 1:this.emit("signalingClose",{fromAccid:s,metaData:r});break;case 2:this.emit("signalingJoin",{fromAccid:s,metaData:r,member:d});break;case 3:this.emit("signalingInvite",{fromAccid:s,toAccid:a,requestId:n,pushInfo:o,metaData:r});break;case 4:this.emit("signalingCancelInvite",{fromAccid:s,toAccid:a,requestId:n,metaData:r});break;case 5:this.emit("signalingReject",{fromAccid:s,toAccid:a,requestId:n,metaData:r});break;case 6:this.emit("signalingAccept",{fromAccid:s,toAccid:a,requestId:n,metaData:r});break;case 7:this.emit("signalingLeave",{fromAccid:s,metaData:r});break;case 8:this.emit("signalingCustomCommand",{fromAccid:s,metaData:r});break;default:this.logger.warn(`signaling:notification, no such a type ${r.eventType}`,i)}return c}signalingSyncNotificationHandler(e){if(e.content.datas&&e.content.datas.length>0){var t=e.content.datas.map((e=>this.doNotify(e,1))).filter((e=>e));t.length>0&&this.core.sendCmd("signalingBatchMarkRead",{sid:15,cid:11,ids:t})}}singalingSyncChannelsHandler(e){if(this.timer=0,this.channels={},e.content.datas&&e.content.datas.length>0){var t=e.content.datas.map((e=>formatSignaling(e)));t.forEach((e=>{var t=e.channelInfo.channelId;this.channels[t]=cloneDeep(e.channelInfo)})),this.emit("singalingSyncChannels",t)}}process(e){var t=this[e.cmd+"Handler"];if("function"==typeof t)return t.call(this,e),Promise.resolve(e);var r=get(e,"error.detail.ignore");return e.error&&!r?Promise.reject(e.error):Promise.resolve(e)}}class Service extends ae{constructor(e,t){super(),this.name=e,this.core=t,this.name=e,this.logger=t.logger,this.core=t}emit(e,...t){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"];if("function"==typeof t)return t.call(this,e);var r=get(e,"error.detail.ignore");return e.error&&!r?Promise.reject(e.error):Promise.resolve(e)}}var Wi,Ki,Qi,Xi,Zi,es,ts,rs={"24_15":"qchatSubscribe","24_27":"qchatGetUnreadInfo","24_48":"qchatCreateChannel","24_49":"qchatDeleteChannel","24_50":"qchatUpdateChannel","24_51":"qchatGetChannels","24_52":"qchatGetChannelsByPage","24_53":"qchatGetMembersByPage","24_54":"qchatUpdateWhiteBlackRole","24_55":"qchatGetWhiteBlackRolesPage","24_56":"qchatUpdateWhiteBlackMembers","24_57":"qchatGetWhiteBlackMembersPage","24_58":"qchatGetExistingWhiteBlackRoles","24_59":"qchatGetExistingWhiteBlackMembers","24_60":"qchatUpdateCategoryInfoOfChannel","24_109":"qchatCreateChannelCategory","24_110":"qchatRemoveChannelCategory","24_111":"qchatUpdateChannelCategory","24_112":"qchatGetChannelCategoriesByID","24_113":"qchatUpdateChannelCategoryWhiteBlackRole","24_114":"qchatGetChannelCategoryWhiteBlackRolesPage","24_115":"qchatUpdateChannelCategoryWhiteBlackMembers","24_116":"qchatGetChannelCategoryWhiteBlackMembersPage","24_117":"qchatGetChannelCategoryWhiteBlackRoles","24_118":"qchatGetChannelCategoryWhiteBlackMembers","24_119":"qchatGetChannelCategoriesPage","24_120":"qchatGetChannelCategoryChannelsPage","24_93":"qchatGetChannelSearchByPage","24_95":"qchatChannelMemberSearch","25_8":"qchatGetRoleIdsByServerId","25_9":"qchatSubscribeAsVisitor","25_12":"qchatAutoSubscribe","25_13":"qchatAutoSubscribeNotification"},is={serverId:1,channelId:2,ackTimestamp:3,unreadCount:4,mentionedCount:5,maxCount:6,lastMsgTime:7},ss={channelInfo:{channelId:1,serverId:2,name:4,topic:5,ext:6,type:7,validFlag:8,createTime:9,updateTime:10,owner:11,viewMode:12,categoryId:13,syncMode:14,reorderWeight:15,visitorMode:16},antispamTag:{antiSpamBusinessId:1},memberInfo:{serverId:1,accid:3,nick:4,avatar:5,ext:6,type:7,joinTime:8,inviter:9,validFlag:10,createTime:11,updateTime:12},serverRole:{serverId:1,roleId:2,name:3,icon:4,ext:5,auths:6,type:7,memberCount:8,priority:9,createTime:10,updateTime:11},qchatSubReqTag:{type:1,opeType:2},qchatChannelIdInfoTag:{serverId:1,channelId:2},unreadInfo:is,qchatGetChannelListPageTag:{serverId:1,timetag:2,limit:3},qchatGetMembersByPageTag:{serverId:1,channelId:2,timetag:3,limit:4},qchatUpdateWhiteBlackRoleTag:{serverId:1,channelId:2,type:3,opeType:4,roleId:5},qchatGetWhiteBlackRolesPageTag:{serverId:1,channelId:2,type:3,timetag:4,limit:5},qchatUpdateWhiteBlackMembersTag:{serverId:1,channelId:2,type:3,opeType:4,toAccids:5},qchatGetWhiteBlackMembersPageTag:{serverId:1,channelId:2,type:3,timetag:4,limit:5},qchatGetExistingWhiteBlackRolesTag:{serverId:1,channelId:2,type:3,roleIds:4},qchatGetExistingWhiteBlackMembersTag:{serverId:1,channelId:2,type:3,accids:4},QChatChannelCategoryInfo:{categoryId:1,serverId:2,name:4,ext:5,owner:6,viewMode:7,validFlag:8,createTime:9,updateTime:10,channelNumber:11},qchatUpdateChannelCategoryWhiteBlackRoleTag:{serverId:1,categoryId:2,type:3,opeType:4,roleId:5},qchatGetChannelCategoryWhiteBlackRolesPageTag:{serverId:1,categoryId:2,type:3,timetag:4,limit:5},qchatUpdateChannelCategoryWhiteBlackMembersTag:{serverId:1,categoryId:2,type:3,opeType:4,toAccids:5},qchatGetChannelCategoryWhiteBlackMembersPageTag:{serverId:1,categoryId:2,type:3,timetag:4,limit:5},qchatGetChannelCategoryWhiteBlackRolesTag:{serverId:1,categoryId:2,type:3,roleIds:4},qchatGetChannelCategoryWhiteBlackMembersTag:{serverId:1,categoryId:2,type:3,accids:4},qchatGetChannelCategoriesPageTag:{serverId:1,timetag:2,limit:3},qchatGetChannelCategoryChannelsPageTag:{serverId:1,categoryId:2,timetag:3,limit:4},qchatGetChannelSearchByPageTag:{keyword:1,startTime:2,endTime:3,order:4,limit:5,serverId:6,sort:7,cursor:8},qchatUpdateChannelTag:{channelId:1,name:4,topic:5,ext:6,viewMode:12,visitorMode:16},serverRoles:{serverId:1,roleIds:2,timeTag:3},qchatChannelMemberSearchTag:{serverId:1,channelId:2,keyword:3,limit:4},qchatChannelMemberInfo:{serverId:1,channelId:2,avatar:3,accid:4,nick:5,createTime:6,updateTime:7}},getDeserializeTag$4=()=>invertSerializeMap(ss),getCmdConfig$4=()=>{var e=getDeserializeTag$4();return{qchatCreateChannel:{sid:24,cid:48,service:"qchatChannel",params:[{type:"Property",name:"channelInfo",reflectMapper:ss.channelInfo},{type:"Property",name:"antispamTag",reflectMapper:ss.antispamTag}],response:[{type:"Property",name:"channelInfo",reflectMapper:e.channelInfo}]},qchatDeleteChannel:{sid:24,cid:49,service:"qchatChannel",params:[{type:"Long",name:"channelId"}]},qchatUpdateChannel:{sid:24,cid:50,service:"qchatChannel",params:[{type:"Property",name:"channelInfo",reflectMapper:ss.qchatUpdateChannelTag},{type:"Property",name:"antispamTag",reflectMapper:ss.antispamTag}],response:[{type:"Property",name:"channelInfo",reflectMapper:e.channelInfo}]},qchatGetChannels:{sid:24,cid:51,service:"qchatChannel",params:[{type:"LongArray",name:"channelIds"}],response:[{type:"PropertyArray",name:"channelList",reflectMapper:e.channelInfo}]},qchatGetChannelsByPage:{sid:24,cid:52,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelListPageTag",reflectMapper:ss.qchatGetChannelListPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.channelInfo}]},qchatGetMembersByPage:{sid:24,cid:53,service:"qchatChannel",params:[{type:"Property",name:"qchatGetMembersByPageTag",reflectMapper:ss.qchatGetMembersByPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.memberInfo}]},qchatUpdateWhiteBlackRole:{sid:24,cid:54,service:"qchatChannel",params:[{type:"Property",name:"qchatUpdateWhiteBlackRoleTag",reflectMapper:ss.qchatUpdateWhiteBlackRoleTag}]},qchatGetWhiteBlackRolesPage:{sid:24,cid:55,service:"qchatChannel",params:[{type:"Property",name:"qchatGetWhiteBlackRolesPageTag",reflectMapper:ss.qchatGetWhiteBlackRolesPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.serverRole}]},qchatUpdateWhiteBlackMembers:{sid:24,cid:56,service:"qchatChannel",params:[{type:"Property",name:"qchatUpdateWhiteBlackMembersTag",reflectMapper:ss.qchatUpdateWhiteBlackMembersTag}]},qchatGetWhiteBlackMembersPage:{sid:24,cid:57,service:"qchatChannel",params:[{type:"Property",name:"qchatGetWhiteBlackMembersPageTag",reflectMapper:ss.qchatGetWhiteBlackMembersPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.memberInfo}]},qchatGetExistingWhiteBlackRoles:{sid:24,cid:58,service:"qchatChannel",params:[{type:"Property",name:"qchatGetExistingWhiteBlackRolesTag",reflectMapper:ss.qchatGetExistingWhiteBlackRolesTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:e.serverRole}]},qchatGetExistingWhiteBlackMembers:{sid:24,cid:59,service:"qchatChannel",params:[{type:"Property",name:"qchatGetExistingWhiteBlackMembersTag",reflectMapper:ss.qchatGetExistingWhiteBlackMembersTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:e.memberInfo}]},qchatUpdateCategoryInfoOfChannel:{sid:24,cid:60,service:"qchatChannel",params:[{type:"Property",name:"qchatUpdateCategoryInfoOfChannelTag",reflectMapper:ss.channelInfo}],response:[{type:"Property",name:"channelInfo",reflectMapper:e.channelInfo}]},qchatCreateChannelCategory:{sid:24,cid:109,service:"qchatChannel",params:[{type:"Property",name:"qchatCreateChannelCategoryTag",reflectMapper:ss.QChatChannelCategoryInfo}],response:[{type:"Property",name:"QChatChannelCategoryInfo",reflectMapper:e.QChatChannelCategoryInfo}]},qchatRemoveChannelCategory:{sid:24,cid:110,service:"qchatChannel",params:[{type:"Long",name:"categoryId"}]},qchatUpdateChannelCategory:{sid:24,cid:111,service:"qchatChannel",params:[{type:"Property",name:"qchatUpdateChannelCategoryTag",reflectMapper:ss.QChatChannelCategoryInfo}],response:[{type:"Property",name:"QChatChannelCategoryInfo",reflectMapper:e.QChatChannelCategoryInfo}]},qchatGetChannelCategoriesByID:{sid:24,cid:112,service:"qchatChannel",params:[{type:"LongArray",name:"categoryIds"}],response:[{type:"PropertyArray",name:"channelCategoryList",reflectMapper:e.QChatChannelCategoryInfo}]},qchatUpdateChannelCategoryWhiteBlackRole:{sid:24,cid:113,service:"qchatChannel",params:[{type:"Property",name:"qchatUpdateChannelCategoryWhiteBlackRoleTag",reflectMapper:ss.qchatUpdateChannelCategoryWhiteBlackRoleTag}]},qchatGetChannelCategoryWhiteBlackRolesPage:{sid:24,cid:114,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelCategoryWhiteBlackRolesPageTag",reflectMapper:ss.qchatGetChannelCategoryWhiteBlackRolesPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.serverRole}]},qchatUpdateChannelCategoryWhiteBlackMembers:{sid:24,cid:115,service:"qchatChannel",params:[{type:"Property",name:"qchatUpdateChannelCategoryWhiteBlackMembersTag",reflectMapper:ss.qchatUpdateChannelCategoryWhiteBlackMembersTag}]},qchatGetChannelCategoryWhiteBlackMembersPage:{sid:24,cid:116,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelCategoryWhiteBlackMembersPageTag",reflectMapper:ss.qchatGetChannelCategoryWhiteBlackMembersPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.memberInfo}]},qchatGetChannelCategoryWhiteBlackRoles:{sid:24,cid:117,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelCategoryWhiteBlackRolesTag",reflectMapper:ss.qchatGetChannelCategoryWhiteBlackRolesTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:e.serverRole}]},qchatGetChannelCategoryWhiteBlackMembers:{sid:24,cid:118,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelCategoryWhiteBlackMembersTag",reflectMapper:ss.qchatGetChannelCategoryWhiteBlackMembersTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:e.memberInfo}]},qchatGetChannelCategoriesPage:{sid:24,cid:119,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelCategoriesPageTag",reflectMapper:ss.qchatGetChannelCategoriesPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.QChatChannelCategoryInfo}]},qchatGetChannelCategoryChannelsPage:{sid:24,cid:120,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelCategoryChannelsPageTag",reflectMapper:ss.qchatGetChannelCategoryChannelsPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.channelInfo}]},qchatSubscribe:{sid:24,cid:15,service:"qchatChannel",params:[{type:"Property",name:"qchatSubReqTag",reflectMapper:ss.qchatSubReqTag},{type:"PropertyArray",name:"channels",reflectMapper:ss.qchatChannelIdInfoTag}],response:[{type:"PropertyArray",name:"unreadInfos",reflectMapper:e.unreadInfo},{type:"PropertyArray",name:"failedChannels",reflectMapper:e.qchatChannelIdInfoTag}]},qchatAutoSubscribe:{sid:25,cid:12,service:"qchatChannel",hasPacketTimer:!1,params:[{type:"Property",name:"qchatAutoSubReqTag"}],response:[{type:"Property",name:"qchatAutoSubInfo",reflectMapper:{1:"time"}}]},qchatAutoSubscribeNotification:{service:"qchatChannel",sid:25,cid:13,response:[{type:"PropertyArray",name:"serverIds",reflectMapper:e.unreadInfo},{type:"PropertyArray",name:"unreadInfos",reflectMapper:e.unreadInfo}]},qchatGetUnreadInfo:{sid:24,cid:27,service:"qchatChannel",params:[{type:"PropertyArray",name:"channels",reflectMapper:ss.qchatChannelIdInfoTag}],response:[{type:"PropertyArray",name:"unreadInfos",reflectMapper:e.unreadInfo}]},qchatGetChannelSearchByPage:{sid:24,cid:93,service:"qchatChannel",params:[{type:"Property",name:"qchatGetChannelSearchByPageTag",reflectMapper:ss.qchatGetChannelSearchByPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag",3:"cursor"}},{type:"PropertyArray",name:"datas",reflectMapper:e.channelInfo}]},qchatGetRoleIdsByServerId:{sid:25,cid:8,service:"qchatChannel",params:[{type:"Property",name:"qchatGetRoleIdsByServerIdTag",reflectMapper:{serverIdTimeTags:1}}],response:[{type:"PropertyArray",name:"serverRoles",reflectMapper:e.serverRoles},{type:"String",name:"failServerIds"}]},qchatChannelMemberSearch:{sid:24,cid:95,service:"qchatChannel",params:[{type:"Property",name:"qchatChannelMemberSearchTag",reflectMapper:ss.qchatChannelMemberSearchTag}],response:[{type:"PropertyArray",name:"datas",reflectMapper:e.qchatChannelMemberInfo}]},qchatSubscribeAsVisitor:{sid:25,cid:9,service:"qchatChannel",params:[{type:"Property",name:"tag",reflectMapper:ss.qchatSubReqTag},{type:"PropertyArray",name:"datas",reflectMapper:ss.qchatChannelIdInfoTag}],response:[{type:"PropertyArray",name:"failedArr",reflectMapper:e.qchatChannelIdInfoTag}]}}};!function(e){e[e.reorderWeight=0]="reorderWeight",e[e.createTime=1]="createTime"}(Wi||(Wi={})),function(e){e[e.white=1]="white",e[e.black=2]="black"}(Ki||(Ki={})),function(e){e[e.add=1]="add",e[e.remove=2]="remove"}(Qi||(Qi={})),function(e){e[e.message=0]="message",e[e.media=1]="media",e[e.ext=100]="ext"}(Xi||(Xi={})),function(e){e[e.ASC=1]="ASC",e[e.DESC=2]="DESC"}(Zi||(Zi={})),function(e){e[e.reorderWeight=0]="reorderWeight",e[e.createTime=1]="createTime",e[e.totalMember=2]="totalMember"}(es||(es={})),function(e){e[e.square=1]="square",e[e.person=2]="person"}(ts||(ts={}));var as={channelId:{type:"string"},serverId:{type:"string"},name:{type:"string"},topic:{type:"string"},ext:{type:"string"},type:{type:"enum",values:Xi},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"},viewMode:{type:"number"},categoryId:{type:"string"},syncMode:{type:"number"},visitorMode:{type:"number"},reorderWeight:{type:"string"}},ns={serverId:{type:"string"},channelId:{type:"string"},ackTimestamp:{type:"number"},unreadCount:{type:"number"},mentionedCount:{type:"number"},maxCount:{type:"number"},lastMsgTime:{type:"number"}},os={serverId:{type:"string"},channelId:{type:"string"},type:{type:"enum",values:Ki},opeType:{type:"enum",values:Qi},toAccids:{type:"object"}},cs={serverId:{type:"string"},channelId:{type:"string"},type:{type:"enum",values:Ki},opeType:{type:"enum",values:Qi},roleId:{type:"string"}},ds={categoryId:{type:"string"},serverId:{type:"string"},name:{type:"string"},ext:{type:"string"},owner:{type:"string"},viewMode:{type:"number"},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"},channelNumber:{type:"number"}},ls={serverId:{type:"string"},channelId:{type:"string"},accid:{type:"string"},avatar:{type:"string"},nick:{type:"string"},createTime:{type:"number"},updateTime:{type:"number"}};function formatUpdateWhiteBlackRole(e){return format(cs,e)}function formatChannel(e){return format(as,e)}function formatChannels(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatChannel(e))):[]}function formatUnreadInfo(e){return format(ns,e)}function formatUnreadInfos(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatUnreadInfo(e))):[]}function formatChannelCategory(e){return format(ds,e)}function formatChannelCategorys(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatChannelCategory(e))):[]}function formatChannelMembers(e){return Array.isArray(e)&&e.length>0?e.map((e=>function formatChannelMember(e){return format(ls,e)}(e))):[]}function formatFailServerIds(e){try{return JSON.parse(e)}catch(e){return[]}}var ms={serverId:{type:"string"},name:{type:"string"},icon:{type:"string"},ext:{type:"string"},owner:{type:"string"},memberNumber:{type:"number"},inviteMode:{type:"number"},applyMode:{type:"number"},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"},channelNumber:{type:"number"},categoryNumber:{type:"number"},searchType:{type:"number"},searchEnable:{type:"boolean"},reorderWeight:{type:"string"}},ps={serverId:{type:"string"},uid:{type:"string"},accid:{type:"string"},nick:{type:"string"},avatar:{type:"string"},ext:{type:"string"},type:{type:"number"},joinTime:{type:"number"},inviter:{type:"string"},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"}},us={serverId:{type:"string"},appid:{type:"string"},accid:{type:"string"},ext:{type:"string"},banTime:{type:"number"},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"}};function formatServer(e){return format(ms,e)}function formatServers(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatServer(e))):[]}function formatMember$1(e){return format(ps,e)}function formatMembers$1(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatMember$1(e))):[]}function formatServerMemberBanInfos(e){return Array.isArray(e)&&e.length>0?e.map((e=>function formatServerMemberBanInfo(e){return format(us,e)}(e))):[]}function generateAntispamTag(e){var t,r,i;if(!e.antispamTag)return{};var s=Object.assign({},e.antispamTag);return(null===(t=e.antispamTag)||void 0===t?void 0:t.antiSpamBusinessId)&&"string"!=typeof(null===(r=e.antispamTag)||void 0===r?void 0:r.antiSpamBusinessId)&&(s.antiSpamBusinessId=JSON.stringify(null===(i=e.antispamTag)||void 0===i?void 0:i.antiSpamBusinessId)),s}var hs={accid:{type:"string"},type:{type:"number"},serverId:{type:"string"},status:{type:"number"},requestId:{type:"string"},createTime:{type:"number"},updateTime:{type:"number"},expireTime:{type:"number"},data:{type:"object"}};function formatInviteApplyRecord(e){return format(hs,e)}function formatInviteApplyRecords(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatInviteApplyRecord(e))):[]}var gs,vs,ys,fs,Is={successServerIds:{type:"object"},failServerIds:{type:"object"},ackTimestamp:{type:"number"}};function formatClearServersUnread(e){return format(Is,e)}!function(e){e[e.everyone=1]="everyone",e[e.custom=2]="custom"}(gs||(gs={})),function(e){e[e.normal=0]="normal",e[e.owner=1]="owner"}(vs||(vs={})),function(e){e[e.ignore=0]="ignore",e[e.deny=-1]="deny",e[e.allow=1]="allow"}(ys||(ys={})),function(e){e[e.manageServer=1]="manageServer",e[e.manageChannel=2]="manageChannel",e[e.manageRole=3]="manageRole",e[e.sendMsg=4]="sendMsg",e[e.accountInfoSelf=5]="accountInfoSelf",e[e.inviteServer=6]="inviteServer",e[e.kickServer=7]="kickServer",e[e.accountInfoOther=8]="accountInfoOther",e[e.recallMsg=9]="recallMsg",e[e.deleteMsg=10]="deleteMsg",e[e.remindOther=11]="remindOther",e[e.remindEveryone=12]="remindEveryone",e[e.manageBlackWhiteList=13]="manageBlackWhiteList",e[e.banServerMember=14]="banServerMember",e[e.RTCChannelConnect=15]="RTCChannelConnect",e[e.RTCChannelDisconnectOther=16]="RTCChannelDisconnectOther",e[e.RTCChannelOpenMicrophone=17]="RTCChannelOpenMicrophone",e[e.RTCChannelOpenCamera=18]="RTCChannelOpenCamera",e[e.RTCChannelOpenCloseOtherMicrophone=19]="RTCChannelOpenCloseOtherMicrophone",e[e.RTCChannelOpenCloseOtherCamera=20]="RTCChannelOpenCloseOtherCamera",e[e.RTCChannelOpenCloseEveryoneMicrophone=21]="RTCChannelOpenCloseEveryoneMicrophone",e[e.RTCChannelOpenCloseEveryoneCamera=22]="RTCChannelOpenCloseEveryoneCamera",e[e.RTCChannelOpenShareScreen=23]="RTCChannelOpenShareScreen",e[e.RTCChannelCloseOtherShareScreen=24]="RTCChannelCloseOtherShareScreen",e[e.manageInviteApply=25]="manageInviteApply",e[e.manageInviteApplyHistory=26]="manageInviteApplyHistory",e[e.mentionedRole=27]="mentionedRole"}(fs||(fs={}));var Ms,Ss,Ts,_s,Cs,Es,bs,Ns,As={type:{type:"enum",values:gs},memberType:{type:"enum",values:vs},createTime:{type:"number"},updateTime:{type:"number"},priority:{type:"number"},memberCount:{type:"number"},joinTime:{type:"number"}},Rs={roleId:{type:"string"},categoryId:{type:"string"},serverId:{type:"string"},type:{type:"enum",values:gs},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"},name:{type:"string"},icon:{type:"string"},ext:{type:"string"}},Os={id:{type:"string"},accid:{type:"string"},categoryId:{type:"string"},serverId:{type:"string"},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"},nick:{type:"string"},avatar:{type:"string"},ext:{type:"string"},memberType:{type:"enum",values:vs},joinTime:{type:"number"},inviter:{type:"string"}};function generatorRoleForCmd(e){var t=Object.assign({},e),r=formatReverse(As,t);return r.auths&&(r.auths=function generateRoleAuthsForCmd(e){var t=Object.keys(e).reduce(((t,r)=>{var i=fs[r];return i?t[i]=ys[e[r]]:t[r]=ys[e[r]],t}),{});return JSON.stringify(t)}(r.auths)),r}function formatRoleAuths(e){return Object.keys(e).reduce(((t,r)=>{var i=getEnumKeyByEnumValue(fs,r);i?t[i]=ys[e[r]]:t[parseInt(r)]=ys[e[r]];return t}),{})}function formatRole(e){var t=format(As,e);return e.auths&&(t.auths=formatRoleAuths(JSON.parse(t.auths))),t.isMember&&delete t.isMember,t}function formatRoles(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatRole(e))):[]}function formatChannelCategoryRole(e){return e.auths&&(e.auths=formatRoleAuths(JSON.parse(e.auths))),format(Rs,e)}function formatChannelCategoryMemberRole(e){return e.auths&&(e.auths=formatRoleAuths(JSON.parse(e.auths))),format(Os,e)}function isObject(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}!function(e){e[e.default=1]="default",e[e.sync=2]="sync"}(Ms||(Ms={})),function(e){e[e.sendTime=1]="sendTime"}(Ss||(Ss={})),function(e){e[e.text=0]="text",e[e.image=1]="image",e[e.audio=2]="audio",e[e.video=3]="video",e[e.geo=4]="geo",e[e.notification=5]="notification",e[e.file=6]="file",e[e.tip=10]="tip",e[e.robot=11]="robot",e[e.g2=12]="g2",e[e.custom=100]="custom"}(Ts||(Ts={})),function(e){e[e.sending=1]="sending",e[e.success=2]="success",e[e.failed=3]="failed"}(_s||(_s={})),function(e){e[e.notifyAll=1]="notifyAll",e[e.notifySubscribe=2]="notifySubscribe"}(Cs||(Cs={})),function(e){e[e.unknown=0]="unknown",e[e.server=1]="server",e[e.channel=2]="channel",e[e.serverAccids=3]="serverAccids",e[e.channelAccids=4]="channelAccids",e[e.accids=5]="accids"}(Es||(Es={})),function(e){e[e.serverMemberInvite=1]="serverMemberInvite",e[e.serverMemberInviteReject=2]="serverMemberInviteReject",e[e.serverMemberApply=3]="serverMemberApply",e[e.serverMemberApplyReject=4]="serverMemberApplyReject",e[e.serverCreate=5]="serverCreate",e[e.serverRemove=6]="serverRemove",e[e.serverUpdate=7]="serverUpdate",e[e.serverMemberInviteDone=8]="serverMemberInviteDone",e[e.serverMemberInviteAccept=9]="serverMemberInviteAccept",e[e.serverMemberApplyDone=10]="serverMemberApplyDone",e[e.serverMemberApplyAccept=11]="serverMemberApplyAccept",e[e.serverMemberKick=12]="serverMemberKick",e[e.serverMemberLeave=13]="serverMemberLeave",e[e.serverMemberUpdate=14]="serverMemberUpdate",e[e.channelCreate=15]="channelCreate",e[e.channelRemove=16]="channelRemove",e[e.channelUpdate=17]="channelUpdate",e[e.channelUpdateWhiteBlackIdentify=18]="channelUpdateWhiteBlackIdentify",e[e.channelUpdateWhiteBlackIdentifyUser=19]="channelUpdateWhiteBlackIdentifyUser",e[e.updateQuickComment=20]="updateQuickComment",e[e.channelCategoryCreate=21]="channelCategoryCreate",e[e.channelCategoryRemove=22]="channelCategoryRemove",e[e.channelCategoryUpdate=23]="channelCategoryUpdate",e[e.channelCategoryUpdateWhiteBlackIdentify=24]="channelCategoryUpdateWhiteBlackIdentify",e[e.channelCategoryUpdateWhiteBlackIdentifyUser=25]="channelCategoryUpdateWhiteBlackIdentifyUser",e[e.serverIdentifyAdd=26]="serverIdentifyAdd",e[e.serverIdentifyRemove=27]="serverIdentifyRemove",e[e.serverIdentifyUpdate=28]="serverIdentifyUpdate",e[e.channelIdentifyUpdate=29]="channelIdentifyUpdate",e[e.userIdentifyUpdate=30]="userIdentifyUpdate",e[e.channelVisibilityUpdate=31]="channelVisibilityUpdate",e[e.serverEnterLeave=32]="serverEnterLeave",e[e.serverMemberJoinByInviteCode=33]="serverMemberJoinByInviteCode",e[e.channelVisibilityToVisitorUpdate=34]="channelVisibilityToVisitorUpdate",e[e.myMemberInfoUpdated=35]="myMemberInfoUpdated",e[e.custom=100]="custom",e[e.msgTyping=101]="msgTyping"}(bs||(bs={})),function(e){e[e.reply=1]="reply",e[e.thread=2]="thread",e[e.all=3]="all"}(Ns||(Ns={}));var ks=Math.max,ws=Math.min;function debounce(e,t,r){var i,s,a,n,o,c,d=0,l=!1,m=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function invokeFunc(t){var r=i,a=s;return i=s=void 0,d=t,n=e.apply(a,r)}function leadingEdge(e){return d=e,o=setTimeout(timerExpired,t),l?invokeFunc(e):n}function shouldInvoke(e){var r=e-c;return void 0===c||r>=t||r<0||m&&e-d>=a}function timerExpired(){var e=Date.now();if(shouldInvoke(e))return trailingEdge(e);o=setTimeout(timerExpired,function remainingWait(e){var r=t-(e-c);return m?ws(r,a-(e-d)):r}(e))}function trailingEdge(e){return o=void 0,p&&i?invokeFunc(e):(i=s=void 0,n)}function debounced(){var e=Date.now(),r=shouldInvoke(e);if(i=arguments,s=this,c=e,r){if(void 0===o)return leadingEdge(c);if(m)return clearTimeout(o),o=setTimeout(timerExpired,t),invokeFunc(c)}return void 0===o&&(o=setTimeout(timerExpired,t)),n}return t=Number(t)||0,isObject(r)&&(l=!!r.leading,a=(m="maxWait"in r)?ks(Number(r.maxWait)||0,t):a,p="trailing"in r?!!r.trailing:p),debounced.cancel=function cancel(){void 0!==o&&clearTimeout(o),d=0,i=c=s=o=void 0},debounced.flush=function flush(){return void 0===o?n:trailingEdge(Date.now())},debounced}var Ps;function throttle(e,t,r){var i=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return isObject(r)&&(i="leading"in r?!!r.leading:i,s="trailing"in r?!!r.trailing:s),debounce(e,t,{leading:i,maxWait:t,trailing:s})}!function(e){e[e.sub=1]="sub",e[e.unSub=2]="unSub"}(Ps||(Ps={}));class UnreadInfoModuleService{constructor(e){this.unreadCount={},this.manualSubscribeUnreadMap={},this.manualSubscribeServerMap={},this.manualSubscribeTypingMap={},this.unreadServerCount={},this.serverRoleIdsMap={},this.autoSubscribeUnreadMap={},this.autoSubscribeServerMap={},this._serverUnreadInfo=throttle((e=>{this.core.emit("serverUnreadInfo",this.getServerUnreadInfo(e)),get(this.core,"qchatServer.emit")&&this.core.qchatServer.emit("serverUnreadInfo",this.getServerUnreadInfo(e))}),100),this.core=e}changeCacheServerRoleIds(e){return __awaiter(this,void 0,void 0,(function*(){var{serverId:t,roleId:r}=e.attach.serverIdentifyInfo;this.serverRoleIdsMap[t]||(yield this.getRoleIdsByServerId([t]));var i=this.serverRoleIdsMap[t];if(!(e.time<i.timeTag)){e.type===bs[bs.serverIdentifyAdd]?i.roleIds.add(r):i.roleIds.delete(r),this.core.logger.debug(`QChatChannel::qchatChannel/serverIdentifyChange::now ${t} roleIds is`,[...i.roleIds]);var s=this.unreadServerCount[t];if(s)chunk(Object.keys(s),100).forEach((e=>{this.core.qchatChannel.getChannelUnreadInfos({channels:e.map((e=>({serverId:t,channelId:e})))})}))}}))}getRoleIdsByServerId(e){return __awaiter(this,void 0,void 0,(function*(){var t=e.filter((e=>!this.serverRoleIdsMap[e]));if(t.length){var r={serverIdTimeTags:t},i=yield this.core.sendCmd("qchatGetRoleIdsByServerId",{qchatGetRoleIdsByServerIdTag:r});this.core.logger.debug("QChatChannel:: getRoleIdsByServerId, params is ",r,"result is",i),i.content.serverRoles.forEach((e=>{try{e.roleIds=JSON.parse(e.roleIds)}catch(e){this.core.logger.error("QChatChannel:: getRoleIdsByServerId JSON parse roleIds error",e)}this.serverRoleIdsMap[e.serverId]={roleIds:new Set(e.roleIds),timeTag:e.timeTag}}))}}))}_unSubscribeChannel(e,t){return __awaiter(this,void 0,void 0,(function*(){var r=`${e}_${t}`,i=[];if(this.manualSubscribeUnreadMap[r]?i.push(this.manualSubscribeUnreadMap[r]):this.autoSubscribeUnreadMap[r]&&i.push(this.autoSubscribeUnreadMap[r]),this.manualSubscribeTypingMap[r]&&i.push(this.manualSubscribeTypingMap[r]),0!==i.length){for(var s of i)this.subscribe({opeType:Ps.unSub,type:s,channels:[{serverId:e,channelId:t}]});this.manualSubscribeUnreadMap[r]?this.manualSubscribeUnreadMap[r]=void 0:this.autoSubscribeUnreadMap[r]&&(this.autoSubscribeUnreadMap[r]=void 0),this.manualSubscribeTypingMap[r]&&(this.manualSubscribeTypingMap[r]=void 0)}}))}_unSubscribeServer(e){return __awaiter(this,void 0,void 0,(function*(){var t=e,r=this.manualSubscribeServerMap[t]||this.autoSubscribeServerMap[t];r&&(this.subscribe({opeType:Ps.unSub,type:r,channels:[{serverId:e,channelId:""}]}),this.manualSubscribeServerMap[t]?this.manualSubscribeServerMap[t]=void 0:this.autoSubscribeServerMap[t]&&(this.autoSubscribeServerMap[t]=void 0))}))}subscribe(e){return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number",min:1,max:5},opeType:{type:"number",min:1,max:2}},e);var t=yield this.core.sendCmd("qchatSubscribe",{qchatSubReqTag:{type:e.type,opeType:e.opeType},channels:e.channels}),r=new Set;return e.channels.forEach((e=>__awaiter(this,void 0,void 0,(function*(){this.serverRoleIdsMap[e.serverId]||r.add(e.serverId)})))),chunk(Array.from(r),10).forEach((e=>{this.getRoleIdsByServerId(e)})),t.content}))}autoSubscribe(){return __awaiter(this,void 0,void 0,(function*(){yield this.core.sendCmd("qchatAutoSubscribe",{qchatAutoSubReqTag:{}})}))}resumeSubscribe(e){return __awaiter(this,void 0,void 0,(function*(){this.serverRoleIdsMap={};if(!e)return this.unreadServerCount={},void(this.unreadCount={});var t={};Object.keys(this.manualSubscribeUnreadMap).forEach((e=>{var r=this.manualSubscribeUnreadMap[e];if(r){var[i,s]=e.split("_"),a={serverId:i,channelId:s};t[r]=t[r]||[],t[r].push(a)}})),t[5]=[],Object.keys(this.manualSubscribeTypingMap).forEach((e=>__awaiter(this,void 0,void 0,(function*(){if(this.manualSubscribeTypingMap[e]){var[r,i]=e.split("_"),s={serverId:r,channelId:i};t[5].push(s)}})))),t[4]=[],Object.keys(this.manualSubscribeServerMap).forEach((e=>__awaiter(this,void 0,void 0,(function*(){if(this.manualSubscribeServerMap[e]){var r={serverId:e};t[4].push(r)}}))));var r=[];Object.keys(t).forEach((e=>{var i=t[e];return i&&0===i.length?Promise.resolve():i.length>100?chunk(i,100).forEach((t=>{r.push(this.createSubscribePromise(t,e))})):void r.push(this.createSubscribePromise(i,e))})),yield Promise.all(r)}))}createSubscribePromise(e,t){var r={type:parseInt(t),opeType:1,channels:e};return this.core.logger.debug("qchatChannel:: autoSubscribeUnread params",r),this.subscribe(r).then((({unreadInfos:e})=>{e&&e.length>0&&(e=formatUnreadInfos(e),this.updateUnreads(e))})).catch((e=>{this.core.logger.error("qchatChannel:: autoSubscribeUnread error ",e)}))}cacheSubscribe(e){e.channels.forEach((t=>{var r=t.channelId?`${t.serverId}_${t.channelId}`:`${t.serverId}`,i=5===e.type?this.manualSubscribeTypingMap:4===e.type?this.manualSubscribeServerMap:this.manualSubscribeUnreadMap;e.opeType===Ps.sub?i[r]=e.type:e.opeType===Ps.unSub&&(i[r]=void 0)}))}cacheAutoSubscribe(e){e.channels.forEach((t=>{var r=t.channelId?`${t.serverId}_${t.channelId}`:`${t.serverId}`,i=4===e.type?this.autoSubscribeServerMap:this.autoSubscribeUnreadMap;e.opeType===Ps.sub?i[r]=e.type:e.opeType===Ps.unSub&&(i[r]=void 0)}))}cacheUnreadCount(e){e.forEach((e=>{var t=`${e.serverId}_${e.channelId}`;this.unreadCount[t]=Object.assign({},e),this.unreadServerCount[e.serverId]||(this.unreadServerCount[e.serverId]={}),this.unreadServerCount[e.serverId][e.channelId]=!0}))}getServerUnreadInfo(e){var t={serverId:e,unreadCount:0,mentionedCount:0,maxCount:0},r=this.unreadServerCount[e];return r&&(Object.keys(r).forEach((r=>{var i=`${e}_${r}`,s=this.unreadCount[i];t.unreadCount+=s.unreadCount,t.mentionedCount+=s.mentionedCount,void 0!==s.maxCount&&(t.maxCount=s.maxCount)})),t.unreadCount=t.unreadCount>t.maxCount?t.maxCount:t.unreadCount,t.mentionedCount=t.mentionedCount>t.maxCount?t.maxCount:t.mentionedCount),t}getUnreadInfo(e){validate({serverId:{type:"string"},channelId:{type:"string"}},e);var t=`${e.serverId}_${e.channelId}`;return this.unreadCount[t]?this.unreadCount[t]:null}shouldChangeUnread(e,t){if(!e.serverId||!e.channelId)return!1;if(this.core.qchatChannel.subscribeForVisitorService.isInSubscribeChannels(e.serverId,e.channelId))return!1;if(!1===e.historyEnable)return!1;if(!1===e.needBadge)return!1;if(e.fromAccount===this.core.account)return!1;if(t&&2!==(null==e?void 0:e.status))return!1;if(e.notifyReason&&e.notifyReason===getEnumKeyByEnumValue(Cs,Cs.notifySubscribe)){if(!e.serverId||!e.channelId)return!1;var r=this.getUnreadInfo({serverId:e.serverId,channelId:e.channelId}),i=t?"ackTimestamp":"lastMsgTime";if(!r)return!1;if(e.time&&r[i]&&r[i]>e.time)return!1}return!0}shouldChangeMentionedUnread(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){if(e.accidsOfMentionedRoles&&e.accidsOfMentionedRoles.includes(this.core.account))return!0;if(e.mentionRoleIds&&e.serverId){if(!this.serverRoleIdsMap[e.serverId]){if(!t)return this.handledRoleMsg(e),!1;yield this.getRoleIdsByServerId([e.serverId])}for(var r=0;r<e.mentionRoleIds.length;r++)if(this.serverRoleIdsMap[e.serverId].roleIds.has(e.mentionRoleIds[r]))return!0}return!1}))}handledRoleMsg(e){return __awaiter(this,void 0,void 0,(function*(){if(e.mentionRoleIds)if(this.serverRoleIdsMap[e.serverId]||(yield this.getRoleIdsByServerId([e.serverId])),this.serverRoleIdsMap[e.serverId]){var t=!1;if(e.mentionRoleIds.forEach((r=>{this.serverRoleIdsMap[e.serverId].roleIds.has(r)&&(t=!0,this.core.logger.debug("QChatChannel::handledRoleMsg::will update message mentionedCount,message is ",e))})),t){var r=this.unreadCount[`${e.serverId}_${e.channelId}`],i=2===(null==e?void 0:e.status);if(r.mentionedCount=i?r.mentionedCount?r.mentionedCount-1:0:r.mentionedCount?r.mentionedCount+1:1,"number"==typeof r.maxCount){var s=r.mentionedCount;if((s=s>r.maxCount?r.maxCount:s)>r.maxCount)return void this.core.logger.debug("QChatChannel::handledRoleMsg::tempUnreadCount more than maxCount");this.core.emit("unreadInfo",Object.assign(Object.assign({},r),{mentionedCount:s})),this.core.emit("unreadInfos",[Object.assign(Object.assign({},r),{mentionedCount:s})]),this.core.qchatChannel.emit("unreadInfos",[Object.assign(Object.assign({},r),{mentionedCount:s})]),this._serverUnreadInfo(e.serverId)}}}else this.core.logger.warn("QChatChannel::handledRoleMsg::can not get serverRoleIds,server id",e.serverId)}))}getMentionedFlag(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){return!!e.mentionAll||(e.mentionRoleIds||e.accidsOfMentionedRoles?yield this.shouldChangeMentionedUnread(e,t):!(!e.mentionAccids||!e.mentionAccids.includes(this.core.account)))}))}changeUnread(e,t){return __awaiter(this,void 0,void 0,(function*(){var r=e.serverId,i=e.channelId,s=`${r}_${i}`;if(this.shouldChangeUnread(e,t)){if(!this.unreadCount[s])return yield this.core.qchatChannel.getChannelUnreadInfos({channels:[{serverId:r,channelId:i}]}),void(!this.serverRoleIdsMap[r]&&e.mentionRoleIds&&this.getRoleIdsByServerId([r]));var a=this.unreadCount[s],n=2===(null==e?void 0:e.status),o=yield this.getMentionedFlag(e);n?(a.unreadCount=a.unreadCount?a.unreadCount-1:0,o&&(a.mentionedCount=a.mentionedCount?a.mentionedCount-1:0),delete a.lastMsgTime,this.core.logger.debug(`changeUnread: ${s} unread reduce `,a)):(a.unreadCount=a.unreadCount?a.unreadCount+1:1,o&&(a.mentionedCount=a.mentionedCount?a.mentionedCount+1:1),e.time&&(a.lastMsgTime=e.time),this.core.logger.debug(`changeUnread: ${s} unread add `,a));var c="number"==typeof a.maxCount?a.maxCount:100;a.unreadCount>c?this.core.logger.debug("QChatChannel::subscribe::tempUnreadCount more than maxCount"):(this.core.logger.warn("unreadInfo event will abandon,please use unreadInfos"),this.core.emit("unreadInfo",Object.assign(Object.assign({},a),{mentionedCount:a.mentionedCount>c?c:a.mentionedCount,unreadCount:a.unreadCount>c?c:a.unreadCount})),this.core.emit("unreadInfos",[Object.assign(Object.assign({},a),{mentionedCount:a.mentionedCount>c?c:a.mentionedCount,unreadCount:a.unreadCount>c?c:a.unreadCount})]),this.core.qchatChannel.emit("unreadInfos",[Object.assign(Object.assign({},a),{mentionedCount:a.mentionedCount>c?c:a.mentionedCount,unreadCount:a.unreadCount>c?c:a.unreadCount})]),this._serverUnreadInfo(r))}else this.core.logger.debug(`changeUnread: ${s} does not need to update unreadInfo`)}))}updateUnreads(e){if(e&&e.length>0){var t=[],r=[],i=e.filter((e=>{var t=`${e.serverId}_${e.channelId}`,r=this.unreadCount[t],i=get(r,"ackTimestamp"),s=get(e,"ackTimestamp");return!(i&&s&&s<i)&&(get(r,"unreadCount")!==get(e,"unreadCount")||get(r,"mentionedCount")!==get(e,"mentionedCount"))})).map((e=>{t.push(this.getServerUnreadInfo(e.serverId)),r.push(this.unreadServerCount[e.serverId]);var i=e.serverId,s=e.channelId,a=`${i}_${s}`;return this.core.logger.debug("qchat channel updateUnread: ",e),this.unreadCount[a]=Object.assign({},e),this.unreadServerCount[i]||(this.unreadServerCount[i]={}),this.unreadServerCount[i][s]=!0,e}));if(0!==i.length){this.core.emit("unreadInfos",i),this.core.qchatChannel.emit("unreadInfos",i);var s={};i.forEach(((e,i)=>{this.core.emit("unreadInfo",e);var a=t[i],n=r[i],o=this.getServerUnreadInfo(e.serverId),c=this.unreadServerCount[e.serverId],d=a.unreadCount!==o.unreadCount,l=!n||0===Object.keys(n).length,m=c&&Object.keys(c).length>0,p=a.mentionedCount!==o.mentionedCount;(d||p||l&&m)&&(s[e.serverId]=!0)})),Object.keys(s).forEach((e=>{this.core.emit("serverUnreadInfo",this.getServerUnreadInfo(e)),get(this.core,"qchatServer.emit")&&this.core.qchatServer.emit("serverUnreadInfo",this.getServerUnreadInfo(e))}))}}}clearUnreadCountByServers(e,t){var r=[];e.forEach((e=>{this.unreadServerCount[e]&&Object.keys(this.unreadServerCount[e]).forEach((t=>{r.push(`${e}_${t}`)}))}));var i=[];r.forEach((e=>{i.push(Object.assign(Object.assign({},this.unreadCount[e]),{unreadCount:0,mentionedCount:0,ackTimestamp:t}))})),this.updateUnreads(i)}}class SubscribeForVisitorService{constructor(e){this.limitForBatchEnter=10,this.limitForBatchSubscribe=100,this.autoServers=new Set,this.autoVisitorSubscribeServer=new Set,this.autoVisitorSubscribeChannel=new Set,this.core=e}subscribeChannelAsVisitor(e){return __awaiter(this,void 0,void 0,(function*(){var t=(yield this.core.sendCmd("qchatSubscribeAsVisitor",{tag:{type:e.type||6,opeType:e.opeType},datas:e.channels})).content.failedArr;return e.channels.filter((e=>!t.some((t=>t.channelId===e.channelId&&t.serverId===e.serverId)))).forEach((t=>{1===e.opeType?this.autoVisitorSubscribeChannel.add(`${t.serverId}&${t.channelId}`):this.autoVisitorSubscribeChannel.delete(`${t.serverId}&${t.channelId}`)})),{failedChannels:t}}))}subscribeServerAsVisitor(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.core.sendCmd("qchatSubscribeAsVisitor",{tag:{type:e.type||7,opeType:e.opeType},datas:e.serverIds.map((e=>({serverId:e})))}),r=t.content.failedArr;return e.serverIds.filter((e=>!r.some((t=>t.serverId===e)))).forEach((t=>{1===e.opeType?this.autoVisitorSubscribeServer.add(t):this.autoVisitorSubscribeServer.delete(t)})),{failedServers:t.content.failedArr.map((e=>e.serverId))}}))}deleteServer(e){this.autoServers.delete(e),this.autoVisitorSubscribeServer.has(e)&&this.subscribeServerAsVisitor({opeType:2,serverIds:[e]});var t=[];this.autoVisitorSubscribeChannel.forEach((r=>{if(0===r.indexOf(e)){var i=r.replace(`${e}&`,"");t.push({serverId:e,channelId:i})}})),t.length>0&&this.subscribeChannelAsVisitor({opeType:2,channels:t})}deleteAutoSetInServerId(e){this.autoServers.delete(e),this.autoVisitorSubscribeServer.delete(e),this.autoVisitorSubscribeChannel.forEach((t=>{0===t.indexOf(e)&&this.autoVisitorSubscribeChannel.delete(t)}))}deleteAutoSetInChannel(e,t){this.autoVisitorSubscribeChannel.delete(`${e}&${t}`)}unSubscribeChannel(e,t){this.subscribeChannelAsVisitor({opeType:2,channels:[{serverId:e,channelId:t}]})}isInSubscribeChannels(e,t){return this.autoVisitorSubscribeChannel.has(`${e}&${t}`)}isInAutoServers(e){return this.autoServers.has(e)}doAutoSubscribe(){var e=[];return chunk(Array.from(this.autoVisitorSubscribeServer),this.limitForBatchSubscribe).forEach((t=>{e.push(this.subscribeServerAsVisitor({opeType:1,serverIds:t}))})),chunk(Array.from(this.autoVisitorSubscribeChannel),this.limitForBatchSubscribe).forEach((t=>{e.push(this.subscribeChannelAsVisitor({opeType:1,channels:t.map((e=>{var t=e.indexOf("&");return{serverId:e.slice(0,t),channelId:e.slice(t+1)}}))}))})),Promise.all(e)}doAutoEnterServer(){return __awaiter(this,void 0,void 0,(function*(){var e=chunk(Array.from(this.autoServers),this.limitForBatchEnter),t=[];e.forEach((e=>{t.push(this.core.qchatServer.enterAsVisitor({serverIds:e}))})),(yield Promise.all(t)).forEach((e=>{e.failedServers.forEach((e=>{this.deleteAutoSetInServerId(e)}))}))}))}resumeSubscribe(e){return __awaiter(this,void 0,void 0,(function*(){e?(yield this.doAutoEnterServer(),yield this.doAutoSubscribe()):(this.autoServers.clear(),this.autoVisitorSubscribeChannel.clear(),this.autoVisitorSubscribeServer.clear())}))}cacheServer(e){e.forEach((e=>this.autoServers.add(e)))}}var Vs={serverId:{type:"string"},uid:{type:"string"},accid:{type:"string"},nick:{type:"string"},avatar:{type:"string"},ext:{type:"string"},type:{type:"number"},joinTime:{type:"number"},inviter:{type:"string"},validFlag:{type:"boolean"},createTime:{type:"number"},updateTime:{type:"number"}},Ls={limit:{type:"number"}};function formatMembers(e){return Array.isArray(e)&&e.length>0?e.map((e=>function formatMember(e){return format(Vs,e)}(e))):[]}var Us={"25_1":"qchatGetNeroomToken","25_2":"qchatUpdateRTCChannelConfig","25_3":"qchatGetRTCChannelConfig","25_4":"qchatGetRTCChannelMembers"},Ds={QChatRTCChannelConfigTag:{serverId:1,channelId:2,limit:3,audio:4,video:5},QChatRTCChannelConfigResultTag:{limit:1,audio:2,video:3},QChatGetRTCParams:{serverId:1,channelId:2},qchatGetRTCChannelMembersTag:{serverId:1,channelId:2},memberInfo:{serverId:1,accid:3,nick:4,avatar:5,ext:6,type:7,joinTime:8,inviter:9,validFlag:10,createTime:11,updateTime:12},QChatGetNeroomTokenResultTag:{token:1,expire:2},QChatGetNeroomTokenParams:{neroomDeviceId:1}},getCmdConfig$3=()=>{var e=invertSerializeMap(Ds);return{qchatGetNeroomToken:{sid:25,cid:1,service:"qchatMedia",params:[{type:"Property",name:"qchatGetNeroomTokenTag",reflectMapper:Ds.QChatGetNeroomTokenParams}],response:[{type:"Property",name:"neroomToken",reflectMapper:e.QChatGetNeroomTokenResultTag}]},qchatUpdateRTCChannelConfig:{sid:25,cid:2,service:"qchatMedia",params:[{type:"Property",name:"RTCChannelConfig",reflectMapper:Ds.QChatRTCChannelConfigTag}]},qchatGetRTCChannelConfig:{sid:25,cid:3,service:"qchatMedia",params:[{type:"Property",name:"qchatGetRTCChannelConfigTag",reflectMapper:Ds.QChatGetRTCParams}],response:[{type:"Property",name:"RTCChannelConfig",reflectMapper:e.QChatRTCChannelConfigResultTag}]},qchatGetRTCChannelMembers:{sid:25,cid:4,service:"qchatMedia",params:[{type:"Property",name:"qchatGetRTCChannelMembersTag",reflectMapper:Ds.QChatGetRTCParams}],response:[{type:"PropertyArray",name:"memberList",reflectMapper:e.memberInfo}]}}};var xs,qs={"24_10":"qchatSendMsg","24_11":"qchatOnMsg","24_12":"qchatOnRecvUnreadInfo","24_13":"qchatSendCustomSysMsg","24_14":"qchatOnSysMsg","24_16":"qchatGetHistoryMsg","24_17":"qchatMarkMessageRead","24_18":"qchatMultiSyncMessageRead","24_22":"qchatUpdateSystemNotification","24_23":"qchatMultiSyncSystemNotificationUpdate","24_24":"qchatSyncSystemNotification","24_25":"qchatUpdateMessage","24_26":"qchatRecvMessageUpdate","24_28":"qchatMarkSysMsgRead","24_94":"qchatMessageSearchByPage","24_100":"qchatGetMessageHistoryByIds","24_101":"qchatGetThreadMessages","24_102":"qchatUpdateQuickComment","24_103":"qchatGetQuickComments","24_108":"qchatGetThreadRootMessagesMeta","24_121":"qchatGetLastMessageOfChannels","24_127":"qchatGetMentionedMeMessages","25_6":"qchatMultiSyncServersMessageRead"},Bs={getHistoryMsgTag:{serverId:1,channelId:2,beginTime:3,endTime:4,excludeMsgId:5,limit:6,reverse:7},getThreadHistoryMsgTag:{beginTime:1,endTime:2,excludeMsgId:3,limit:4,reverse:5},qchatMsgTag:{serverId:1,channelId:2,fromAccount:3,fromClientType:4,fromDeviceId:5,fromNick:6,time:7,updateTime:8,type:9,body:10,attach:11,ext:12,msgIdClient:13,msgIdServer:14,resendFlag:15,status:16,pushPayload:17,pushContent:18,mentionAccids:19,mentionAll:20,env:21,callbackExt:22,replyMsgFromAccount:23,replyMsgTime:24,replyMsgIdServer:25,replyMsgIdClient:26,threadMsgFromAccount:27,threadMsgTime:28,threadMsgIdServer:29,threadMsgIdClient:30,useCustomContent:31,antiSpamContent:32,antiSpamBusinessId:33,antiSpamUsingYidun:34,yidunCallback:35,yidunAntiCheating:36,yidunAntiSpamExt:37,yidunAntiSpamRes:38,mentionRoleIds:41,accidsOfMentionedRoles:42,updateContent:39,updateOperatorInfo:40,subType:61,historyEnable:100,pushEnable:101,needBadge:102,needPushNick:103,notifyReason:104,routeEnable:105,isAntispam:106},sysMsg:{toType:1,serverId:2,channelId:3,toAccids:4,fromAccount:5,fromClientType:6,fromDeviceId:7,fromNick:8,time:9,updateTime:10,type:11,msgIdClient:12,msgIdServer:13,body:14,attach:15,ext:16,resendFlag:17,status:18,pushPayload:19,pushContent:20,env:21,callbackExt:22,persistEnable:100,pushEnable:101,needBadge:102,needPushNick:103,routeEnable:104},qchatMsgUpdateTag:{operatorAccount:1,operatorClientType:2,ps:3,ext:4,pushContent:5,pushPayload:6,env:7,routeEnable:100},markMsgReadTag:{serverId:1,channelId:2,time:3},qchatQuickCommentRequestTag:{serverId:1,channelId:2,fromAccount:3,msgIdServer:4,time:5,type:6,opeType:7,opeAccid:8},qchatQuickCommentQueryTag:{serverId:1,channelId:2,msgIdServerList:3},qchatGetLastMessageOfChannelsTag:{serverId:1,channelIdList:2},qchatMultiSyncServersMessageReadTag:{successServerIds:1,failServerIds:2,ackTimestamp:3},qchatMessageSearchByPageTag:{keyword:1,serverId:2,channelId:3,fromAccid:4,fromTime:5,toTime:6,msgTypes:7,subTypes:8,includeSelf:9,order:10,limit:11,sort:12,cursor:13},qchatPageQueryTag:{hasMore:1,nextTimetag:2,cursor:3},unreadInfo:is},getDeserializeTag$2=()=>invertSerializeMap(Bs),getCmdConfig$2=()=>{var e=getDeserializeTag$2();return{qchatSendMsg:{service:"qchatMsg",sid:24,cid:10,params:[{type:"Property",name:"qchatMsg",reflectMapper:Bs.qchatMsgTag}],response:[{type:"Property",name:"qchatMsg",reflectMapper:e.qchatMsgTag}]},qchatOnMsg:{service:"qchatMsg",sid:24,cid:11,response:[{type:"Property",name:"qchatMsg",reflectMapper:e.qchatMsgTag}]},qchatOnRecvUnreadInfo:{service:"qchatMsg",sid:24,cid:12,response:[{type:"Property",name:"qchatMsg",reflectMapper:e.qchatMsgTag}]},qchatSendCustomSysMsg:{service:"qchatMsg",sid:24,cid:13,params:[{type:"Property",name:"sysMsg",reflectMapper:Bs.sysMsg}],response:[{type:"Property",name:"sysMsg",reflectMapper:e.sysMsg}]},qchatOnSysMsg:{service:"qchatMsg",sid:24,cid:14,response:[{type:"Property",name:"sysMsg",reflectMapper:e.sysMsg}]},qchatGetHistoryMsg:{service:"qchatMsg",sid:24,cid:16,params:[{type:"Property",name:"getHistoryMsgTag",reflectMapper:Bs.getHistoryMsgTag}],response:[{type:"PropertyArray",name:"qchatMsgs",reflectMapper:e.qchatMsgTag}]},qchatUpdateMessage:{service:"qchatMsg",sid:24,cid:25,params:[{type:"Property",name:"qchatMsgUpdateTag",reflectMapper:Bs.qchatMsgUpdateTag},{type:"Property",name:"qchatMsg",reflectMapper:Bs.qchatMsgTag}],response:[{type:"Property",name:"qchatMsg",reflectMapper:e.qchatMsgTag}]},qchatRecvMessageUpdate:{service:"qchatMsg",sid:24,cid:26,response:[{type:"Property",name:"qchatMsgUpdateInfo",reflectMapper:e.qchatMsgUpdateTag},{type:"Property",name:"qchatMsg",reflectMapper:e.qchatMsgTag}]},qchatMarkMessageRead:{sid:24,cid:17,service:"qchatMsg",params:[{type:"Property",name:"markMsgReadTag",reflectMapper:Bs.markMsgReadTag}],response:[{type:"Property",name:"unreadInfo",reflectMapper:e.unreadInfo}]},qchatMultiSyncMessageRead:{sid:24,cid:18,service:"qchatMsg",response:[{type:"Property",name:"unreadInfo",reflectMapper:e.unreadInfo}]},qchatUpdateSystemNotification:{service:"qchatMsg",sid:24,cid:22,params:[{type:"Property",name:"qchatMsgUpdateTag",reflectMapper:Bs.qchatMsgUpdateTag},{type:"Property",name:"sysMsg",reflectMapper:Bs.sysMsg}],response:[{type:"Property",name:"sysMsg",reflectMapper:e.sysMsg}]},qchatMultiSyncSystemNotificationUpdate:{service:"qchatMsg",sid:24,cid:23,response:[{type:"Property",name:"qchatMsgUpdateTag",reflectMapper:e.qchatMsgUpdateTag},{type:"Property",name:"sysMsg",reflectMapper:e.sysMsg}]},qchatSyncSystemNotification:{service:"qchatMsg",sid:24,cid:24,response:[{type:"PropertyArray",name:"systemNotifications",reflectMapper:e.sysMsg}]},qchatMarkSysMsgRead:{service:"qchatMsg",sid:24,cid:28,params:[{type:"PropertyArray",name:"sysMsgs",reflectMapper:Bs.sysMsg}]},qchatMessageSearchByPage:{service:"qchatMsg",sid:24,cid:94,params:[{type:"Property",name:"qchatMessageSearchByPageTag",reflectMapper:Bs.qchatMessageSearchByPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:e.qchatPageQueryTag},{type:"PropertyArray",name:"datas",reflectMapper:e.qchatMsgTag}]},qchatGetMessageHistoryByIds:{service:"qchatMsg",sid:24,cid:100,params:[{type:"Property",name:"channelInfo",reflectMapper:{serverId:1,channelId:2}},{type:"PropertyArray",name:"messageReferList",reflectMapper:{msgIdServer:1,time:2}}],response:[{type:"PropertyArray",name:"qchatMsgs",reflectMapper:e.qchatMsgTag}]},qchatGetThreadMessages:{service:"qchatMsg",sid:24,cid:101,params:[{type:"Property",name:"qchatMsg",reflectMapper:Bs.qchatMsgTag},{type:"Property",name:"getThreadHistoryMsgTag",reflectMapper:Bs.getThreadHistoryMsgTag}],response:[{type:"Property",name:"thread",reflectMapper:e.qchatMsgTag},{type:"Property",name:"threadInfo",reflectMapper:{1:"messageCount",2:"lastMessageTimestamp"}},{type:"PropertyArray",name:"qchatMsgs",reflectMapper:e.qchatMsgTag}]},qchatUpdateQuickComment:{service:"qchatMsg",sid:24,cid:102,params:[{type:"Property",name:"tag",reflectMapper:Bs.qchatQuickCommentRequestTag}]},qchatGetQuickComments:{service:"qchatMsg",sid:24,cid:103,params:[{type:"Property",name:"tag",reflectMapper:Bs.qchatQuickCommentQueryTag}],response:[{type:"PropertyArray",name:"quickCommentResponse",reflectMapper:{1:"serverId",2:"channelId",3:"msgIdServer",4:"totalCount",5:"lastUpdateTime",6:"details"}}]},qchatGetThreadRootMessagesMeta:{service:"qchatMsg",sid:24,cid:108,params:[{type:"Property",name:"tag",reflectMapper:{serverId:1,channelId:2}},{type:"PropertyArray",name:"qchatMsgs",reflectMapper:{time:7,msgIdServer:14}}],response:[{type:"PropertyArray",name:"metas",reflectMapper:{1:"total",2:"timestamp",3:"msgIdServer",4:"msgTime"}}]},qchatGetLastMessageOfChannels:{service:"qchatMsg",sid:24,cid:121,params:[{type:"Property",name:"tag",reflectMapper:Bs.qchatGetLastMessageOfChannelsTag}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:e.qchatMsgTag}]},qchatMultiSyncServersMessageRead:{service:"qchatMsg",sid:25,cid:6,response:[{type:"Property",name:"qchatMultiSyncServersMessageReadTag",reflectMapper:e.qchatMultiSyncServersMessageReadTag}]},qchatGetMentionedMeMessages:{service:"qchatMsg",sid:24,cid:127,params:[{type:"Property",name:"tag",reflectMapper:{serverId:1,channelId:2,timestamp:3,limit:4}}],response:[{type:"Property",name:"page",reflectMapper:e.qchatPageQueryTag},{type:"PropertyArray",name:"datas",reflectMapper:e.qchatMsgTag}]}}};!function(e){e[e.Android=1]="Android",e[e.iOS=2]="iOS",e[e.PC=4]="PC",e[e.WindowsPhone=8]="WindowsPhone",e[e.Web=16]="Web",e[e.Server=32]="Server",e[e.Mac=64]="Mac",e[e.HarmonyOS=65]="HarmonyOS"}(xs||(xs={}));var Fs={"24_31":"qchatCreateServer","24_32":"qchatDeleteServer","24_33":"qchatUpdateServer","24_34":"qchatGetServers","24_35":"qchatGetServersByPage","24_36":"qchatInviteServerMembers","24_37":"qchatAcceptServerInvite","24_38":"qchatRejectInviteServer","24_39":"qchatApplyServerJoin","24_40":"qchatAcceptServerApply","24_41":"qchatRejectServerApply","24_42":"qchatKickServerMembers","24_43":"qchatLeaveServer","24_44":"qchatUpdateMyMemberInfo","24_45":"qchatUpdateServerMemberInfo","24_46":"qchatGetServerMembers","24_47":"qchatGetServerMembersByPage","24_104":"qchatUpdateServerMemberBan","24_105":"qchatGetBannedMembersByPage","24_91":"qchatServerSearchByPage","24_92":"qchatServerMemberSearchByPage","24_122":"qchatGenerateInviteCode","24_123":"qchatJoinByInviteCode","24_124":"qchatGetInviteApplyRecordOfServer","24_125":"qchatGetInviteApplyRecordOfSelf","25_5":"qchatClearServersUnread","25_7":"qchatSubscribeChannelsByServers","25_10":"qchatEnterAsVisitor","25_11":"qchatLeaveAsVisitor"},js={serverInfo:{serverId:1,name:3,icon:4,ext:5,owner:6,memberNumber:7,inviteMode:8,applyMode:9,validFlag:10,createTime:11,updateTime:12,channelNumber:13,categoryNumber:14,searchType:15,searchEnable:16,reorderWeight:17},antispamTag:{antiSpamBusinessId:1},memberInfo:{serverId:1,accid:3,nick:4,avatar:5,ext:6,type:7,joinTime:8,inviter:9,validFlag:10,createTime:11,updateTime:12},otherMemberInfo:{serverId:1,accid:3,nick:4,avatar:5,type:7,joinTime:8,inviter:9,validFlag:10,createTime:11,updateTime:12},getServerListPageTag:{timestamp:1,limit:2},getServerMemberListPageTag:{serverId:1,timetag:2,limit:3},updateServerMemberBanTag:{serverId:1,opeType:2,accid:3,ext:4},getBannedMembersByPageTag:{serverId:1,timetag:2,limit:3},serverMemberBanInfo:{serverId:1,appid:2,accid:3,ext:4,banTime:5,validFlag:6,createTime:7,updateTime:8},serverSearchByPageTag:{keyword:1,startTime:2,endTime:3,order:4,limit:5,serverType:6,searchType:7,sort:8,cursor:9},serverMemberSearchByPageTag:{serverId:1,keyword:3,limit:4},inviteRespParamTag:{requestId:1},applyRespParamTag:{requestId:1,expireTime:2},inviteApplyRecord:{accid:1,type:2,serverId:3,status:4,requestId:5,createTime:6,updateTime:7,expireTime:8,data:9,recordId:10},clearServersUnreadTag:{successServerIds:1,failServerIds:2,ackTimestamp:3},unreadInfo:is},getDeserializeTag$1=()=>invertSerializeMap(js),getCmdConfig$1=()=>{var e=getDeserializeTag$1();return{qchatCreateServer:{sid:24,cid:31,service:"qchatServer",params:[{type:"Property",name:"serverInfo",reflectMapper:js.serverInfo},{type:"Property",name:"antispamTag",reflectMapper:js.antispamTag}],response:[{type:"Property",name:"serverInfo",reflectMapper:e.serverInfo}]},qchatDeleteServer:{sid:24,cid:32,service:"qchatServer",params:[{type:"Long",name:"serverId"}]},qchatUpdateServer:{sid:24,cid:33,service:"qchatServer",params:[{type:"Property",name:"serverInfo",reflectMapper:js.serverInfo},{type:"Property",name:"antispamTag",reflectMapper:js.antispamTag}],response:[{type:"Property",name:"serverInfo",reflectMapper:e.serverInfo}]},qchatGetServers:{sid:24,cid:34,service:"qchatServer",params:[{type:"LongArray",name:"serverIds"}],response:[{type:"PropertyArray",name:"serverList",reflectMapper:e.serverInfo}]},qchatGetServersByPage:{sid:24,cid:35,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:js.getServerListPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.serverInfo}]},qchatInviteServerMembers:{sid:24,cid:36,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"StrArray",name:"accids"},{type:"String",name:"ps"},{type:"Property",name:"params",reflectMapper:{ttl:1}}],response:[{type:"StrArray",name:"failByOverAccids"},{type:"StrArray",name:"failByBanAccids"},{type:"Property",name:"record",reflectMapper:e.applyRespParamTag}]},qchatAcceptServerInvite:{sid:24,cid:37,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"String",name:"accid"},{type:"Property",name:"recordInfo",reflectMapper:js.inviteRespParamTag}]},qchatRejectInviteServer:{sid:24,cid:38,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"String",name:"accid"},{type:"String",name:"ps"},{type:"Property",name:"recordInfo",reflectMapper:js.inviteRespParamTag}]},qchatApplyServerJoin:{sid:24,cid:39,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"String",name:"ps"},{type:"Property",name:"params",reflectMapper:{ttl:1}}],response:[{type:"Property",name:"data",reflectMapper:e.applyRespParamTag}]},qchatAcceptServerApply:{sid:24,cid:40,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"String",name:"accid"},{type:"Property",name:"recordInfo",reflectMapper:js.applyRespParamTag}]},qchatRejectServerApply:{sid:24,cid:41,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"String",name:"accid"},{type:"String",name:"ps"},{type:"Property",name:"recordInfo",reflectMapper:js.applyRespParamTag}]},qchatKickServerMembers:{sid:24,cid:42,service:"qchatServer",params:[{type:"Long",name:"serverId"},{type:"StrArray",name:"accids"}]},qchatLeaveServer:{sid:24,cid:43,service:"qchatServer",params:[{type:"Long",name:"serverId"}]},qchatUpdateMyMemberInfo:{sid:24,cid:44,service:"qchatServer",params:[{type:"Property",name:"memberInfo",reflectMapper:js.memberInfo},{type:"Property",name:"antispamTag",reflectMapper:js.antispamTag}],response:[{type:"Property",name:"memberInfo",reflectMapper:e.memberInfo}]},qchatUpdateServerMemberInfo:{sid:24,cid:45,service:"qchatServer",params:[{type:"Property",name:"memberInfo",reflectMapper:js.otherMemberInfo},{type:"Property",name:"antispamTag",reflectMapper:js.antispamTag}],response:[{type:"Property",name:"memberInfo",reflectMapper:e.memberInfo}]},qchatGetServerMembers:{sid:24,cid:46,service:"qchatServer",params:[{type:"StrArray",name:"accids"}],response:[{type:"PropertyArray",name:"accidList",reflectMapper:e.memberInfo}]},qchatGetServerMembersByPage:{sid:24,cid:47,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:js.getServerMemberListPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.memberInfo}]},qchatUpdateServerMemberBan:{sid:24,cid:104,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:js.updateServerMemberBanTag}]},qchatGetBannedMembersByPage:{sid:24,cid:105,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:js.getBannedMembersByPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag"}},{type:"PropertyArray",name:"datas",reflectMapper:e.serverMemberBanInfo}]},qchatServerSearchByPage:{sid:24,cid:91,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:js.serverSearchByPageTag}],response:[{type:"Property",name:"listQueryTag",reflectMapper:{1:"hasMore",2:"nextTimetag",3:"cursor"}},{type:"PropertyArray",name:"datas",reflectMapper:e.serverInfo}]},qchatServerMemberSearchByPage:{sid:24,cid:92,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:js.serverMemberSearchByPageTag}],response:[{type:"PropertyArray",name:"members",reflectMapper:e.memberInfo}]},qchatGenerateInviteCode:{sid:24,cid:122,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:{serverId:1,ttl:2}}],response:[{type:"Property",name:"data",reflectMapper:{1:"serverId",2:"requestId",3:"inviteCode",4:"expireTime"}}]},qchatJoinByInviteCode:{sid:24,cid:123,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:{serverId:1,inviteCode:2,ps:3}}]},qchatGetInviteApplyRecordOfServer:{sid:24,cid:124,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:{serverId:1,fromTime:2,toTime:3,reverse:4,limit:5,cursor:6}}],response:[{type:"PropertyArray",name:"data",reflectMapper:e.inviteApplyRecord}]},qchatGetInviteApplyRecordOfSelf:{sid:24,cid:125,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:{fromTime:1,toTime:2,reverse:3,limit:4,cursor:5}}],response:[{type:"PropertyArray",name:"data",reflectMapper:e.inviteApplyRecord}]},qchatClearServersUnread:{sid:25,cid:5,service:"qchatServer",params:[{type:"LongArray",name:"serverIds"}],response:[{type:"Property",name:"clearServersUnreadTag",reflectMapper:e.clearServersUnreadTag}]},qchatSubscribeChannelsByServers:{sid:25,cid:7,service:"qchatServer",params:[{type:"Int",name:"type"},{type:"LongArray",name:"serverIds"}],response:[{type:"PropertyArray",name:"unreadInfos",reflectMapper:e.unreadInfo},{type:"String",name:"failServerIds"}]},qchatEnterAsVisitor:{sid:25,cid:10,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:{serverIds:1}}],response:[{type:"String",name:"failServerIds"}]},qchatLeaveAsVisitor:{sid:25,cid:11,service:"qchatServer",params:[{type:"Property",name:"tag",reflectMapper:{serverIds:1}}],response:[{type:"String",name:"failServerIds"}]}}},$s={"24_61":"qchatCreateServerRole","24_62":"qchatDeleteServerRole","24_63":"qchatUpdateServerRole","24_64":"qchatGetServerRoles","24_65":"qchatAddChannelRole","24_66":"qchatRemoveChannelRole","24_67":"qchatUpdateChannelRole","24_68":"qchatGetChannelRoles","24_69":"qchatAddMemberRole","24_70":"qchatRemoveMemberRole","24_71":"qchatUpdateMemberRole","24_72":"qchatGetMemberRoles","24_73":"qchatAddMembersToServerRole","24_74":"qchatRemoveMembersFromServerRole","24_75":"qchatGetMembersFromServerRole","24_76":"qchatGetServerRolesByAccid","24_77":"qchatGetExistingServerRolesByAccids","24_78":"qchatGetExistingChannelRolesByServerRoleIds","24_79":"qchatGetExistingAccidsOfMemberRoles","24_80":"qchatUpdateServerRolePriorities","24_81":"qchatGetExistingAccidsInServerRole","24_82":"qchatCheckPermission","24_83":"qchatAddChannelCategoryRole","24_84":"qchatRemoveChannelCategoryRole","24_85":"qchatUpdateChannelCategoryRole","24_86":"qchatGetChannelCategoryRole","24_87":"qchatAddChannelCategoryMemberRole","24_88":"qchatRemoveChannelCategoryMemberRole","24_89":"qchatUpdateChannelCategoryMemberRole","24_90":"qchatGetChannelCategoryMemberRole","24_126":"qchatCheckPermissions"},Gs={channelRole:{serverId:1,roleId:2,parentRoleId:3,channelId:4,name:5,icon:6,ext:7,auths:8,type:9,createTime:10,updateTime:11},memberRole:{serverId:1,id:2,accid:3,channelId:4,auths:5,createTime:6,updateTime:7,nick:8,avatar:9,ext:10,memberType:11,joinTime:12,inviter:13},antispamTag:{antiSpamBusinessId:1},serverRole:{serverId:1,roleId:2,name:3,icon:4,ext:5,auths:6,type:7,memberCount:8,priority:9,createTime:10,updateTime:11,isMember:12},getRoleByPagesTag:{serverId:1,channelId:2,time:3,limit:4},checkPermissionTag:{serverId:1,channelId:2,auth:3},member:{serverId:1,roleId:2,accid:3,createTime:4,updateTime:5,nick:6,avatar:7,ext:8,type:9,joinTime:10,inviter:11},qchatAddChannelCategoryRoleTag:{categoryId:3,serverId:4,parentRoleId:5},channelCategoryRole:{roleId:1,categoryId:3,serverId:4,parentRoleId:5,type:6,validFlag:7,createTime:8,updateTime:9,auths:10,name:11,icon:12,ext:13},qchatGetChannelCategoryRoleTag:{serverId:1,categoryId:2,timetag:3,limit:4},channelCategoryMemberRole:{id:1,accid:3,categoryId:4,serverId:5,validFlag:6,createTime:7,updateTime:8,auths:9,nick:10,avatar:11,ext:12,memberType:13,joinTime:14,inviter:15},qchatGetChannelCategoryMemberRoleTag:{serverId:1,categoryId:2,timetag:3,limit:4},checkPermissionsTag:{serverId:1,channelId:2,auths:3}},getDeserializeTag=()=>invertSerializeMap(Gs),getCmdConfig=()=>{var e=getDeserializeTag();return{qchatCreateServerRole:{service:"qchatRole",sid:24,cid:61,params:[{type:"Property",name:"serverRole",reflectMapper:Gs.serverRole},{type:"Property",name:"antispamTag",reflectMapper:Gs.antispamTag}],response:[{type:"Property",name:"serverRole",reflectMapper:e.serverRole}]},qchatDeleteServerRole:{service:"qchatRole",sid:24,cid:62,params:[{type:"Long",name:"serverId"},{type:"Long",name:"roleId"}]},qchatUpdateServerRole:{service:"qchatRole",sid:24,cid:63,params:[{type:"Property",name:"updateServerRoleTag",reflectMapper:{serverId:1,roleId:2,name:3,icon:4,ext:5,auths:6,priority:7}},{type:"Property",name:"antispamTag",reflectMapper:Gs.antispamTag}],response:[{type:"Property",name:"serverRole",reflectMapper:e.serverRole}]},qchatGetServerRoles:{service:"qchatRole",sid:24,cid:64,params:[{type:"Property",name:"getServerRolesTag",reflectMapper:{serverId:1,timetag:2,limit:3,priority:4,channelId:5,categoryId:6}}],response:[{type:"PropertyArray",name:"serverRoles",reflectMapper:e.serverRole}]},qchatAddChannelRole:{service:"qchatRole",sid:24,cid:65,params:[{type:"Property",name:"channelRole",reflectMapper:Gs.channelRole}],response:[{type:"Property",name:"channelRole",reflectMapper:e.channelRole}]},qchatRemoveChannelRole:{service:"qchatRole",sid:24,cid:66,params:[{type:"Long",name:"serverId"},{type:"Long",name:"channelId"},{type:"Long",name:"roleId"}]},qchatUpdateChannelRole:{service:"qchatRole",sid:24,cid:67,params:[{type:"Property",name:"updateChannelRoleTag",reflectMapper:{serverId:1,roleId:2,channelId:3,auths:4}}],response:[{type:"Property",name:"channelRole",reflectMapper:e.channelRole}]},qchatGetChannelRoles:{service:"qchatRole",sid:24,cid:68,params:[{type:"Property",name:"getChannelRolesTag",reflectMapper:{serverId:1,channelId:2,timetag:3,limit:4}}],response:[{type:"PropertyArray",name:"channelRoles",reflectMapper:e.channelRole}]},qchatAddMemberRole:{service:"qchatRole",sid:24,cid:69,params:[{type:"Property",name:"memberRole",reflectMapper:Gs.memberRole}],response:[{type:"Property",name:"memberRole",reflectMapper:e.memberRole}]},qchatRemoveMemberRole:{service:"qchatRole",sid:24,cid:70,params:[{type:"Property",name:"memberRole",reflectMapper:Gs.memberRole}]},qchatUpdateMemberRole:{service:"qchatRole",sid:24,cid:71,params:[{type:"Property",name:"updateMemberRoleTag",reflectMapper:{serverId:1,accid:2,channelId:3,auths:4}}],response:[{type:"Property",name:"memberRole",reflectMapper:e.memberRole}]},qchatGetMemberRoles:{service:"qchatRole",sid:24,cid:72,params:[{type:"Property",name:"getMemberRolesTag",reflectMapper:{serverId:1,channelId:2,timetag:3,limit:4}}],response:[{type:"PropertyArray",name:"memberRoles",reflectMapper:e.memberRole}]},qchatAddMembersToServerRole:{service:"qchatRole",sid:24,cid:73,params:[{type:"Long",name:"serverId"},{type:"Long",name:"roleId"},{type:"String",name:"accids"}],response:[{type:"Property",name:"accids",reflectMapper:{1:"successAccids",2:"failedAccids"}}]},qchatRemoveMembersFromServerRole:{service:"qchatRole",sid:24,cid:74,params:[{type:"Long",name:"serverId"},{type:"Long",name:"roleId"},{type:"String",name:"accids"}],response:[{type:"Property",name:"accids",reflectMapper:{1:"successAccids",2:"failedAccids"}}]},qchatGetMembersFromServerRole:{service:"qchatRole",sid:24,cid:75,params:[{type:"Property",name:"getMembersFromServerRoleTag",reflectMapper:{serverId:1,roleId:2,timetag:3,accid:4,limit:5}}],response:[{type:"PropertyArray",name:"members",reflectMapper:e.member}]},qchatGetServerRolesByAccid:{service:"qchatRole",sid:24,cid:76,params:[{type:"Property",name:"getServerRolesByAccidTag",reflectMapper:{serverId:1,accid:2,timetag:3,limit:4}}],response:[{type:"PropertyArray",name:"serverRoles",reflectMapper:e.serverRole}]},qchatGetExistingServerRolesByAccids:{service:"qchatRole",sid:24,cid:77,params:[{type:"Long",name:"serverId"},{type:"String",name:"accids"}],response:[{type:"String",name:"serverRoles"}]},qchatGetExistingChannelRolesByServerRoleIds:{service:"qchatRole",sid:24,cid:78,params:[{type:"Long",name:"serverId"},{type:"Long",name:"channelId"},{type:"String",name:"roleIds"}],response:[{type:"PropertyArray",name:"channelRoles",reflectMapper:e.channelRole}]},qchatGetExistingAccidsOfMemberRoles:{service:"qchatRole",sid:24,cid:79,params:[{type:"Long",name:"serverId"},{type:"Long",name:"channelId"},{type:"String",name:"accids"}],response:[{type:"PropertyArray",name:"memberRoles",reflectMapper:e.memberRole}]},qchatUpdateServerRolePriorities:{service:"qchatRole",sid:24,cid:80,params:[{type:"Long",name:"serverId"},{type:"PropertyArray",name:"serverRoles",reflectMapper:{serverId:1,roleId:2,priority:7}}],response:[{type:"PropertyArray",name:"serverRoles",reflectMapper:e.serverRole}]},qchatGetExistingAccidsInServerRole:{service:"qchatRole",sid:24,cid:81,params:[{type:"Long",name:"serverId"},{type:"Long",name:"roleId"},{type:"String",name:"accids"}],response:[{type:"PropertyArray",name:"members",reflectMapper:e.member}]},qchatCheckPermission:{service:"qchatRole",sid:24,cid:82,params:[{type:"Property",name:"checkPermissionTag",reflectMapper:Gs.checkPermissionTag}],response:[{type:"Bool",name:"checked"}]},qchatAddChannelCategoryRole:{service:"qchatRole",sid:24,cid:83,params:[{type:"Property",name:"qchatAddChannelCategoryRoleTag",reflectMapper:Gs.channelCategoryRole}],response:[{type:"Property",name:"channelCategoryRole",reflectMapper:e.channelCategoryRole}]},qchatRemoveChannelCategoryRole:{service:"qchatRole",sid:24,cid:84,params:[{type:"Long",name:"serverId"},{type:"Long",name:"categoryId"},{type:"Long",name:"roleId"}]},qchatUpdateChannelCategoryRole:{service:"qchatRole",sid:24,cid:85,params:[{type:"Property",name:"qchatUpdateChannelCategoryRoleTag",reflectMapper:Gs.channelCategoryRole}],response:[{type:"Property",name:"channelCategoryRole",reflectMapper:e.channelCategoryRole}]},qchatGetChannelCategoryRole:{service:"qchatRole",sid:24,cid:86,params:[{type:"Property",name:"qchatGetChannelCategoryRoleTag",reflectMapper:Gs.qchatGetChannelCategoryRoleTag}],response:[{type:"PropertyArray",name:"list",reflectMapper:e.channelCategoryRole}]},qchatAddChannelCategoryMemberRole:{service:"qchatRole",sid:24,cid:87,params:[{type:"Property",name:"qchatAddChannelCategoryMemberRoleTag",reflectMapper:Gs.channelCategoryMemberRole}],response:[{type:"Property",name:"channelCategoryMemberRole",reflectMapper:e.channelCategoryMemberRole}]},qchatRemoveChannelCategoryMemberRole:{service:"qchatRole",sid:24,cid:88,params:[{type:"Long",name:"serverId"},{type:"Long",name:"categoryId"},{type:"String",name:"accid"}]},qchatUpdateChannelCategoryMemberRole:{service:"qchatRole",sid:24,cid:89,params:[{type:"Property",name:"qchatUpdateChannelCategoryMemberRoleTag",reflectMapper:Gs.channelCategoryMemberRole}],response:[{type:"Property",name:"channelCategoryMemberRole",reflectMapper:e.channelCategoryMemberRole}]},qchatGetChannelCategoryMemberRole:{service:"qchatRole",sid:24,cid:90,params:[{type:"Property",name:"qchatGetChannelCategoryMemberRoleTag",reflectMapper:Gs.qchatGetChannelCategoryMemberRoleTag}],response:[{type:"PropertyArray",name:"list",reflectMapper:e.channelCategoryMemberRole}]},qchatCheckPermissions:{service:"qchatRole",sid:24,cid:126,params:[{type:"Property",name:"checkPermissionsTag",reflectMapper:Gs.checkPermissionsTag}],response:[{type:"PropertyArray",name:"checkPermissionsResult",reflectMapper:{1:"auth",2:"isAllow"}}]}}},Hs=["image","audio","video","file"],zs={time:{type:"number"},updateTime:{type:"number"},resendFlag:{type:"boolean"},persistEnable:{type:"boolean"},routeEnable:{type:"boolean"},pushEnable:{type:"boolean"},needBadge:{type:"boolean"},needPushNick:{type:"boolean"},type:{type:"enum",values:bs},fromClientType:{type:"enum",values:xs},status:{type:"number"},toAccids:{type:"object"},toType:{type:"number"},attach:{type:"object"},pushPayload:{type:"object"}};function generatorSysMsgForCmd(e,t){var r=Object.assign({},e),i=Object.assign({type:t||bs.custom},formatReverse(zs,r));return i.serverId&&i.channelId&&i.toAccids?i.toType=4:i.serverId&&i.toAccids?i.toType=3:i.serverId&&i.channelId?i.toType=2:i.serverId?i.toType=1:i.toAccids?i.toType=5:i.toType=0,i}var Ys={[bs.channelUpdateWhiteBlackIdentify]:function(e){var t=getDeserializeTag$4();return e.notify=formatUpdateWhiteBlackRole(deserialize(e.notify,t.qchatUpdateWhiteBlackRoleTag)),e},[bs.channelUpdateWhiteBlackIdentifyUser]:function(e){var t=getDeserializeTag$4();return e.notify=function formatUpdateWhiteBlackMembers(e){return format(os,e)}(deserialize(e.notify,t.qchatUpdateWhiteBlackMembersTag)),e},[bs.updateQuickComment]:function(e){var t=getDeserializeTag$2();return e.notify=function formatQuickCommentRequest(e){return format(Ks,e)}(deserialize(e.notify,t.qchatQuickCommentRequestTag)),e},[bs.channelCategoryCreate]:function(e){var t=getDeserializeTag$4();return e.categoryInfo=formatChannelCategory(deserialize(e.categoryInfo,t.QChatChannelCategoryInfo)),e},[bs.channelCategoryUpdate]:function(e){var t=getDeserializeTag$4();return e.categoryInfo=formatChannelCategory(deserialize(e.categoryInfo,t.QChatChannelCategoryInfo)),e},[bs.channelCategoryUpdateWhiteBlackIdentify]:function(e){var t=getDeserializeTag$4();return e.notify=formatUpdateWhiteBlackRole(deserialize(e.notify,t.qchatUpdateChannelCategoryWhiteBlackRoleTag)),e},[bs.channelCategoryUpdateWhiteBlackIdentifyUser]:function(e){var t=getDeserializeTag$4();return e.notify=formatUpdateWhiteBlackRole(deserialize(e.notify,t.qchatUpdateChannelCategoryWhiteBlackMembersTag)),e},[bs.serverIdentifyAdd]:function(e){var t=getDeserializeTag();return e.serverIdentifyInfo=formatRole(deserialize(e.serverIdentifyInfo,t.serverRole)),e},[bs.serverIdentifyRemove]:function(e){var t=getDeserializeTag();return e.serverIdentifyInfo=formatRole(deserialize(e.serverIdentifyInfo,t.serverRole)),e},[bs.serverIdentifyUpdate]:function(e){var t=getDeserializeTag();return e.serverIdentifyInfo=formatRole(deserialize(e.serverIdentifyInfo,t.serverRole)),e},[bs.channelIdentifyUpdate]:function(e){var t=getDeserializeTag();return e.channelIdentifyInfo=formatRole(deserialize(e.channelIdentifyInfo,t.channelRole)),e},[bs.userIdentifyUpdate]:function(e){var t=getDeserializeTag();return e.userIdentifyInfo=formatRole(deserialize(e.userIdentifyInfo,t.memberRole)),e},[bs.myMemberInfoUpdated]:function(e){var t=get(e,"userInfo.name"),r=get(e,"userInfo.icon");return e.updatedInfos=e.reuseServers.map((e=>{var i={serverId:e.serverId};return 1==(1&e.bits)&&"string"==typeof t&&Object.assign(i,{nickChanged:!0,nick:t}),2==(2&e.bits)&&"string"==typeof r&&Object.assign(i,{avatarChanged:!0,avatar:r}),i})),delete e.userInfo,delete e.reuseServers,e}};function formatSystemNotification(e,t){var r=format(zs,e);if(!r.attach)return r;var i=getDeserializeTag$1(),s=getDeserializeTag$4();if(r.attach.serverInfo&&(r.attach.serverInfo=formatServer(deserialize(r.attach.serverInfo,i.serverInfo))),r.attach.channelInfo&&(r.attach.channelInfo=formatChannel(deserialize(r.attach.channelInfo,s.channelInfo))),r.attach.serverMember&&(r.attach.serverMember=formatMember$1(deserialize(r.attach.serverMember,i.memberInfo))),Ys[r.attach.type]&&(r.attach=Ys[r.attach.type](r.attach)),r.attach.updateAuths)try{r.attach.updateAuths=formatRoleAuths(JSON.parse(r.attach.updateAuths))}catch(e){t.error("formatSystemNotification:JSON parse updateAuths error: ",e)}return r.attach.type&&(r.attach.rawType=r.attach.type,r.attach.type=bs[r.attach.type]),r}var Js={type:{type:"enum",values:Ts},fromClientType:{type:"enum",values:xs},status:{type:"number"},resendFlag:{type:"boolean"},mentionAll:{type:"boolean"},notifyReason:{type:"enum",values:Cs},pushEnable:{type:"boolean"},historyEnable:{type:"boolean"},needBadge:{type:"boolean"},needPushNick:{type:"boolean"},routeEnable:{type:"boolean"},time:{type:"number"},updateTime:{type:"number"},mentionAccids:{type:"object"},mentionRoleIds:{type:"object"},accidsOfMentionedRoles:{type:"object"},attach:{type:"object"},pushPayload:{type:"object"},isAntispam:{type:"boolean"},antiSpamInfo:{useCustomContent:{type:"boolean"},antiSpamContent:{type:"string"},antiSpamBusinessId:{type:"string"},antiSpamUsingYidun:{type:"boolean"},yidunCallback:{type:"string"},yidunAntiCheating:{type:"object"},yidunAntiSpamExt:{type:"object"},yidunAntiSpamRes:{type:"string"}},replyRefer:{fromAccount:{type:"string",rawKey:"replyMsgFromAccount"},time:{type:"number",rawKey:"replyMsgTime"},msgIdServer:{type:"string",rawKey:"replyMsgIdServer"},msgIdClient:{type:"string",rawKey:"replyMsgIdClient"}},threadRefer:{fromAccount:{type:"string",rawKey:"threadMsgFromAccount"},time:{type:"number",rawKey:"threadMsgTime"},msgIdServer:{type:"string",rawKey:"threadMsgIdServer"},msgIdClient:{type:"string",rawKey:"threadMsgIdClient"}}};function generatorMsgForCmd(e){var t=__rest(e,["onSendBefore","onUploadStart","onUploadDone","onUploadProgress"]),r=formatReverse(Js,t);if(r.msgIdClient=e.resendFlag?e.msgIdClient:Me(),!r.msgIdClient)throw new FormatError("msgIdClient is required for resend a message","msgIdClient","required");return e.replyMessage&&e.replyMessage.msgIdServer&&(r.replyMsgFromAccount=e.replyMessage.fromAccount,r.replyMsgTime=+e.replyMessage.time,r.replyMsgIdServer=e.replyMessage.msgIdServer,r.replyMsgIdClient=e.replyMessage.msgIdClient,e.replyMessage.threadRefer&&e.replyMessage.threadRefer.msgIdServer?(r.threadMsgFromAccount=e.replyMessage.threadRefer.fromAccount,r.threadMsgTime=+e.replyMessage.threadRefer.time,r.threadMsgIdServer=e.replyMessage.threadRefer.msgIdServer,r.threadMsgIdClient=e.replyMessage.threadRefer.msgIdClient):(r.threadMsgFromAccount=e.replyMessage.fromAccount,r.threadMsgTime=+e.replyMessage.time,r.threadMsgIdServer=e.replyMessage.msgIdServer,r.threadMsgIdClient=e.replyMessage.msgIdClient),delete r.replyMessage),r}function formatMsgOperatorInfo(e){return format({operatorClientType:{type:"enum",values:xs},pushPayload:{type:"object"}},e)}function formatMsg(e,t={},r){var i,s;return __awaiter(this,void 0,void 0,(function*(){var a=format(Js,e);a.deliveryStatus=t.deliveryStatus?_s[t.deliveryStatus]:_s[_s.success],t.time&&(a.time=t.time);var n=getDeserializeTag$2();if(a.updateContent){var o=JSON.parse(a.updateContent);o=format({status:{type:"number"}},o=deserialize(o,n.qchatMsgTag)),a.updateContent=o}if(a.updateOperatorInfo){var c=JSON.parse(a.updateOperatorInfo);c=formatMsgOperatorInfo(deserialize(c,n.qchatMsgUpdateTag)),a.updateOperatorInfo=c}return""===(null===(i=null==a?void 0:a.threadRefer)||void 0===i?void 0:i.fromAccount)&&delete a.threadRefer,""===(null===(s=null==a?void 0:a.replyRefer)||void 0===s?void 0:s.fromAccount)&&delete a.replyRefer,a.attach&&t.attachUrl&&(a.attach.url=t.attachUrl),yield function formatMsgAttach(e,t){return __awaiter(this,void 0,void 0,(function*(){if(!(Hs.includes(e.type)&&e.attach&&e.attach.url))return e;if(!t||!t.cloudStorage||"function"!=typeof t.cloudStorage.getPrivateUrl||"function"!=typeof t.cloudStorage.getOriginUrl)return e;if(e.attach.url.indexOf("_im_url=1")<0)return e.attach.url=t.cloudStorage.getPrivateUrl(e.attach.url),e;try{e.attach.url=yield t.cloudStorage.getOriginUrl(e.attach.url)}catch(t){throw new FormatError(`url "${e.attach.url}" parse error`,"message.attach.url","parse error")}return e}))}(a,r)}))}function formatMsgs(e,t={},r){return __awaiter(this,void 0,void 0,(function*(){if(!(Array.isArray(e)&&e.length>0))return[];var i=e.map((e=>formatMsg(e,t,r)));return yield Promise.all(i)}))}var Ws={totalCount:{type:"number"},lastUpdateTime:{type:"number"},details:{type:"object"}};var Ks={type:{type:"number"},time:{type:"number"},opeType:{type:"number"}};var Qs={includeSelf:{type:"number"},order:{type:"enum",values:Zi},sort:{type:"enum",values:Ss},msgTypes:{type:"object"},subTypes:{type:"object"}};var Xs={hasMore:{type:"boolean"},nextTimetag:{type:"number"},cursor:{type:"string"}};var Zs={6:function(e){return this.core.qchatChannel.subscribeForVisitorService.deleteAutoSetInServerId(e.serverId),!0},16:function(e){return this.core.qchatChannel.subscribeForVisitorService.deleteAutoSetInChannel(e.serverId,e.channelId),!0},26:function(e){var t=get(e,"attach.addAccids");return t&&t.includes(this.core.account)&&this.core.eventBus.emit("qchatChannel/serverIdentifyChange",e),!0},27:function(e){var t=get(e,"attach.deleteAccids");return t&&t.includes(this.core.account)&&this.core.eventBus.emit("qchatChannel/serverIdentifyChange",e),!0},31:function(e){var t,r;return 1===e.attach.event?(null===(r=null===(t=this.core.qchatChannel)||void 0===t?void 0:t.config)||void 0===r?void 0:r.autoSubscribe)&&this.core.qchatChannel.subscribeChannel({type:1,opeType:1,channels:[{serverId:e.serverId,channelId:e.channelId}],isInternalTrigger:!0}):2===e.attach.event&&(this.core.eventBus.emit("qchatChannel/autoUnSubscribe",e),this.core.eventBus.emit("qchatMedia/serverOrChannelLeave",e)),!0},32:function(e){var t,r;return 2===e.attach.event?(this.core.eventBus.emit("qchatChannel/autoUnSubscribe",e),this.core.eventBus.emit("qchatMedia/serverOrChannelLeave",e)):1===e.attach.event&&(this.core.qchatChannel.subscribeForVisitorService.deleteServer(e.serverId),(null===(r=null===(t=this.core.qchatChannel)||void 0===t?void 0:t.config)||void 0===r?void 0:r.autoSubscribe)&&this.core.qchatServer.subscribeServer({type:4,opeType:1,servers:[{serverId:e.serverId}],isInternalTrigger:!0})),!0},34:function(e){return 2===e.attach.event&&this.core.qchatChannel.subscribeForVisitorService.unSubscribeChannel(e.serverId,e.channelId),!0},101:function(e){var t=pick(e,["serverId","channelId","ext","fromAccount","fromNick","time"]);return this.logger.log("qchat on recvTypingEvent: ",t),this.core.emit("recvTypingEvent",t),this.core.qchatMsg.emit("recvTypingEvent",t),!1}};class NotificationModuleService{constructor(e){this.core=e,this.logger=e.logger}sendSystemNotification(e){return __awaiter(this,void 0,void 0,(function*(){var t=formatSystemNotification((yield this.core.sendCmd("qchatSendCustomSysMsg",{sysMsg:generatorSysMsgForCmd(e)})).content.sysMsg,this.logger);return this.logger.getDebugMode()?this.logger.debug("sendCustomSysMsg success",t):this.logger.log("sendCustomSysMsg success",t.serverId,t.channelId,t.msgIdServer),t}))}updateSystemNotification(e){return __awaiter(this,void 0,void 0,(function*(){var{systemNotification:t}=e,r=__rest(e,["systemNotification"]),i=generatorSysMsgForCmd(pick(t,["msgIdServer","type","body","ext","status"]));return formatSystemNotification((yield this.core.sendCmd("qchatUpdateSystemNotification",{sysMsg:i,qchatMsgUpdateTag:Object.assign(Object.assign({},r),{operatorAccount:this.core.account,operatorClientType:xs.Web,pushPayload:JSON.stringify(e.pushPayload),routeEnable:Qe.boolean(e,"routeEnable")})})).content.sysMsg,this.logger)}))}markSystemNotificationsRead(e){return __awaiter(this,void 0,void 0,(function*(){yield this.core.sendCmd("qchatMarkSysMsgRead",{sysMsgs:e.systemNotifications.map((e=>function generatorSysMsgMarkersForCmd(e){var t=pick(e,["msgIdServer","type"]);return formatReverse(zs,t)}(e)))})}))}onSysMsg(e){var t=e.content.sysMsg;if(t){var r=formatSystemNotification(t,this.core.logger),i=Zs[bs[r.type]];if(i)if(!1===i.call(this,r))return;var s={feature:"default",systemNotifications:[r]};this.logger.log("qchat on systemNotification: ",s),this.core.emit("systemNotification",s),this.core.qchatMsg.emit("systemNotification",s)}else this.core.logger.warn("No sysMsg in onSysMsg packet")}onMultiSysMsg(e){var t=e.content.sysMsg;if(t){var r=formatSystemNotification(t,this.logger);this.core.emit("systemNotificationUpdate",r),this.core.qchatMsg.emit("systemNotificationUpdate",r)}}onSyncSysMsg(e){var t=e.content.systemNotifications;if(t&&t.length>0){var r=t.map((e=>formatSystemNotification(e,this.logger)));this.core.emit("systemNotification",{feature:"sync",systemNotifications:r}),this.core.qchatMsg.emit("systemNotification",{feature:"sync",systemNotifications:r})}else this.logger.warn("sync system notification not exist")}}var ea=["image","audio","video","file"];class MessageModuleService{constructor(e){this.markMessageRead=throttle((e=>__awaiter(this,void 0,void 0,(function*(){var t=formatUnreadInfo((yield this.core.sendCmd("qchatMarkMessageRead",{markMsgReadTag:e})).content.unreadInfo);this.core.eventBus.emit("qchatChannel/updateUnreads",[t])}))),200),this.core=e,this.logger=e.logger}sendMessage(e){var t,r,i,s;return __awaiter(this,void 0,void 0,(function*(){ea.indexOf(e.type)>-1&&(e.attach=yield this.doSendFile(e));var a,n=generatorMsgForCmd(Object.assign({fromAccount:this.core.account},e)),o=yield formatMsg(n,{time:(new Date).getTime(),deliveryStatus:_s.sending},this.core);try{e.onSendBefore&&e.onSendBefore(o)}catch(e){this.logger.error("sendMsg: options.onSendBefore error",e)}try{a=yield this.core.sendCmd("qchatSendMsg",{qchatMsg:n})}catch(e){var c=yield formatMsg(n,{time:(new Date).getTime(),deliveryStatus:_s.failed,attachUrl:null===(t=o.attach)||void 0===t?void 0:t.url},this.core);throw e.msg=c,e}var{content:d}=a,l=yield formatMsg(Object.assign({},d.qchatMsg),{deliveryStatus:_s.success,attachUrl:null===(r=o.attach)||void 0===r?void 0:r.url},this.core);if(l.isAntispam)throw{code:10403,msg:l,message:(null===(i=null==l?void 0:l.antiSpamInfo)||void 0===i?void 0:i.yidunAntiSpamRes)||"message has be antispam",isAntispam:!0,yidunAntiSpamRes:(null===(s=null==l?void 0:l.antiSpamInfo)||void 0===s?void 0:s.yidunAntiSpamRes)||""};return l}))}doSendFile(e){return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"enum",values:["image","audio","video","file"]},attach:{type:"object",rules:{url:{type:"string",allowEmpty:!1}},required:!1},maxSize:{type:"number",min:1,required:!1}},e);var t=e.attach;if(!t){if(!this.core.cloudStorage||!this.core.cloudStorage.uploadFile)throw new Error('Service "cloudStorage" does not exist');try{t=yield this.core.cloudStorage.uploadFile(e)}catch(e){throw this.logger.error("sendFile:: upload File error or abort.",e),e}}return t}))}resendMessage(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){var i,s=generatorMsgForCmd(Object.assign(Object.assign({},e),{resendFlag:!0}));s.deliveryStatus=_s.sending;try{i=yield this.core.sendCmd("qchatSendMsg",{qchatMsg:s})}catch(e){var a=yield formatMsg(s,{time:(new Date).getTime(),deliveryStatus:_s.failed},this.core);throw e.msg=a,e}var{content:n}=i,o=yield formatMsg(Object.assign({},n.qchatMsg),{deliveryStatus:_s.success},this.core);if(o.isAntispam)throw{code:10403,msg:o,message:(null===(t=null==o?void 0:o.antiSpamInfo)||void 0===t?void 0:t.yidunAntiSpamRes)||"message has be antispam",isAntispam:!0,yidunAntiSpamRes:(null===(r=null==o?void 0:o.antiSpamInfo)||void 0===r?void 0:r.yidunAntiSpamRes)||""};return o}))}doUpdateMessage(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){var{message:i}=e,s=__rest(e,["message"]),a=generatorMsgForCmd(i);a.msgIdClient=void 0,a.time=i.time;var n=yield this.core.sendCmd("qchatUpdateMessage",{qchatMsg:a,qchatMsgUpdateTag:Object.assign(Object.assign({},s),{operatorAccount:this.core.account,operatorClientType:xs.Web,pushPayload:JSON.stringify(e.pushPayload),routeEnable:Qe.boolean(e,"routeEnable")})}),o=yield formatMsg(n.content.qchatMsg,{},this.core);if(this.core.eventBus.emit("qchatChannel/changeUnread",o,!0),n.content.qchatMsg.isAntispam)throw{code:10403,msg:a,message:(null===(t=n.content.qchatMsg)||void 0===t?void 0:t.yidunAntiSpamRes)||"message has be antispam",isAntispam:!0,yidunAntiSpamRes:(null===(r=n.content.qchatMsg)||void 0===r?void 0:r.yidunAntiSpamRes)||""};return o}))}getHistoryMessage(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.core.sendCmd("qchatGetHistoryMsg",{getHistoryMsgTag:Object.assign(Object.assign({},e),{reverse:e.reverse?1:0})}),{content:r}=t;return yield Promise.all(r.qchatMsgs.map((e=>formatMsg(e,{},this.core))))}))}getMentionedMeMessages(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.core.sendCmd("qchatGetMentionedMeMessages",{tag:e}),{content:r}=t;return{pageInfo:function formatPageInfo(e){return format(Xs,e)}(r.page),messages:yield Promise.all(r.datas.map((e=>formatMsg(e,{},this.core))))}}))}areMentionedMeMessages(e){return __awaiter(this,void 0,void 0,(function*(){for(var t={},r=0;r<e.length;r++){var i=e[r];i.fromAccount!==this.core.account?t[i.msgIdClient]=yield this.core.qchatChannel.subscribeModuleService.getMentionedFlag(i,!0):t[i.msgIdClient]=!1}return t}))}getLastMessageOfChannels(e){return __awaiter(this,void 0,void 0,(function*(){var t=(yield this.core.sendCmd("qchatGetLastMessageOfChannels",{tag:e})).content.msgs;return(yield formatMsgs(t,{},this.core)).reduce(((e,t)=>(e[t.channelId]=t,e)),{})}))}messageSearchByPage(e){return __awaiter(this,void 0,void 0,(function*(){var t,r=yield this.core.sendCmd("qchatMessageSearchByPage",{qchatMessageSearchByPageTag:Object.assign(Object.assign({},(t=e,formatReverse(Qs,t))),{includeSelf:e.includeSelf?1:""})}),{datas:i,listQueryTag:s}=r.content,a=yield formatMsgs(i,{},this.core);return{listQueryTag:{hasMore:1==+s.hasMore,nextTimetag:s.nextTimetag?parseInt(s.nextTimetag):0,cursor:s.cursor},datas:a}}))}onMsg(e){return __awaiter(this,void 0,void 0,(function*(){var t=e.content.qchatMsg;if(t){var r=yield formatMsg(t,{},this.core);this.core.eventBus.emit("qchatChannel/changeUnread",r,!1),this.core.emit("message",r),this.core.qchatMsg.emit("message",r)}else this.logger.warn("No qchatMsg in qchatMsg packet")}))}onRecvUnreadInfo(e){return __awaiter(this,void 0,void 0,(function*(){var t=e.content.qchatMsg;if(t){var r=yield formatMsg(t);this.core.eventBus.emit("qchatChannel/changeUnread",r,!1)}}))}onMultiSyncRead(e){var t=e.content.unreadInfo;if(t){var r=formatUnreadInfo(t);this.core.eventBus.emit("qchatChannel/updateUnreads",[r])}}onMultiSyncServersRead(e){var t=e.content.qchatMultiSyncServersMessageReadTag;if(t){var{successServerIds:r,ackTimestamp:i}=formatClearServersUnread(t);this.core.eventBus.emit("qchatChannel/clearUnreadCountByServers",r,i)}}onRecvMsgUpdate(e){return __awaiter(this,void 0,void 0,(function*(){var t=e.content.qchatMsg,r=e.content.qchatMsgUpdateInfo;if(t){var i=yield formatMsg(t,{},this.core),s=formatMsgOperatorInfo(r);this.core.eventBus.emit("qchatChannel/changeUnread",i,!0),this.core.emit("messageUpdate",i,s),this.core.qchatMsg.emit("messageUpdate",i,s)}}))}}class ExtendModuleService{constructor(e){this._sendTypingEvent=throttle((e=>__awaiter(this,void 0,void 0,(function*(){yield this.core.sendCmd("qchatSendCustomSysMsg",{sysMsg:generatorSysMsgForCmd(Object.assign(Object.assign({},e),{resendFlag:!1,persistEnable:!1,routeEnable:!1,pushEnable:!1,needBadge:!1,needPushNick:!1}),bs.msgTyping)})}))),3e3),this.core=e,this.logger=e.logger,this.lastChannelIdInTyping=""}getMessageHistoryByIds(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.core.sendCmd("qchatGetMessageHistoryByIds",{channelInfo:{serverId:e.serverId,channelId:e.channelId},messageReferList:e.messageReferList});return Promise.all(t.content.qchatMsgs.map((e=>formatMsg(e))))}))}getReferMessages(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){if(!(null===(t=e.message.replyRefer)||void 0===t?void 0:t.msgIdServer)||!(null===(r=e.message.threadRefer)||void 0===r?void 0:r.msgIdServer))throw new Error("Message has no reply");var i=yield this.getMessageHistoryByIds({serverId:e.message.serverId,channelId:e.message.channelId,messageReferList:[e.message.replyRefer,e.message.threadRefer]});return e.referType===Ns[Ns.all]?{replyMessage:i[0],threadMessage:i[1]}:e.referType===Ns[Ns.reply]?{replyMessage:i[0]}:e.referType===Ns[Ns.thread]?{threadMessage:i[1]}:{replyMessage:i[0],threadMessage:i[1]}}))}getThreadMessages(e){var t;return __awaiter(this,void 0,void 0,(function*(){var r;r=(null===(t=e.message.threadRefer)||void 0===t?void 0:t.msgIdServer)?Object.assign({serverId:e.message.serverId,channelId:e.message.channelId},e.message.threadRefer):e.message;var i=yield this.core.sendCmd("qchatGetThreadMessages",{qchatMsg:r,getThreadHistoryMsgTag:Object.assign(Object.assign({},e.messageQueryOption),{reverse:Qe.boolean(e.messageQueryOption,"reverse")})}),s=yield formatMsg(i.content.thread),a=yield Promise.all(i.content.qchatMsgs.map((e=>formatMsg(e))));return{thread:s,threadInfo:{messageCount:+i.content.threadInfo.messageCount,lastMessageTimestamp:+i.content.threadInfo.lastMessageTimestamp},messages:a}}))}getThreadRootMessagesMeta(e){return __awaiter(this,void 0,void 0,(function*(){var{threadRootMessages:t}=e,r=__rest(e,["threadRootMessages"]),i=(yield this.core.sendCmd("qchatGetThreadRootMessagesMeta",{qchatMsgs:t,tag:r})).content.metas;return i&&i.length>0?i.map((e=>Object.assign(Object.assign({},e),{total:parseInt(e.total),timestamp:parseInt(e.timestamp),msgTime:parseInt(e.msgTime)}))):[]}))}getQuickComments(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.core.sendCmd("qchatGetQuickComments",{tag:{serverId:e.serverId,channelId:e.channelId,msgIdServerList:JSON.stringify(e.msgList.map((e=>e.msgIdServer)))}}),{quickCommentResponse:r}=t.content;return function formatQuickComments(e){var t=e.map((e=>{var t=format(Ws,e);return t.details=t.details.map((e=>{var t=e.createTime?parseInt(e.createTime):0;return t=isNaN(t)?0:t,{count:e.count,hasSelf:e.self,severalAccids:e.topN,type:e.type,createTime:t}})),t})),r={};return t.forEach((e=>r[e.msgIdServer]=e)),r}(r)}))}updateQuickComment(e,t){return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number"},commentMessage:{type:"object",rules:{msgIdServer:{type:"string",allowEmpty:!1}}}},e);var{serverId:r,channelId:i,fromAccount:s,msgIdServer:a,time:n}=e.commentMessage;yield this.core.sendCmd("qchatUpdateQuickComment",{tag:{serverId:r,channelId:i,fromAccount:s,msgIdServer:a,time:n,type:e.type,opeType:t,opeAccid:this.core.account}})}))}sendTypingEvent(e){return __awaiter(this,void 0,void 0,(function*(){if(e.channelId===this.lastChannelIdInTyping)return this.logger.log("qchatMsg sendTypingEvent throttle"),void this._sendTypingEvent(e);this.lastChannelIdInTyping=e.channelId,this._sendTypingEvent.flush(),this._sendTypingEvent(e)}))}}class CategoryModuleService{constructor(e){this.core=e}addChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},parentRoleId:{type:"string",allowEmpty:!1}},e),formatChannelCategoryRole((yield this.core.sendCmd("qchatAddChannelCategoryRole",{qchatAddChannelCategoryRoleTag:e})).content.channelCategoryRole)}))}removeChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatRemoveChannelCategoryRole",e)}))}updateChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},auths:{type:"object"}},e);var t=yield this.core.sendCmd("qchatUpdateChannelCategoryRole",{qchatUpdateChannelCategoryRoleTag:generatorRoleForCmd(e)});if(406===t.raw.code)throw new CustomError("No update required",{},406);return formatChannelCategoryRole(t.content.channelCategoryRole)}))}getChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},timetag:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1}},e),function formatChannelCategoryRoles(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatChannelCategoryRole(e))):[]}((yield this.core.sendCmd("qchatGetChannelCategoryRole",{qchatGetChannelCategoryRoleTag:e})).content.list)}))}addChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1}},e),formatChannelCategoryMemberRole((yield this.core.sendCmd("qchatAddChannelCategoryMemberRole",{qchatAddChannelCategoryMemberRoleTag:e})).content.channelCategoryMemberRole)}))}removeChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatRemoveChannelCategoryMemberRole",e)}))}updateChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1},auths:{type:"object"}},e);var t=yield this.core.sendCmd("qchatUpdateChannelCategoryMemberRole",{qchatUpdateChannelCategoryMemberRoleTag:generatorRoleForCmd(e)});if(406===t.raw.code)throw new CustomError("No update required",{},406);return formatChannelCategoryMemberRole(t.content.channelCategoryMemberRole)}))}getChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},timetag:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1}},e),function formatChannelCategoryMemberRoles(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatChannelCategoryMemberRole(e))):[]}((yield this.core.sendCmd("qchatGetChannelCategoryMemberRole",{qchatGetChannelCategoryMemberRoleTag:e})).content.list)}))}}class V2NIMConversationIdUtilImpl{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 V2NIMMessageModelImpl{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((r=>{r.conversationId===e&&t.push(r)})),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 r=this.messages.keys().next().value;r&&this.messages.delete(r)}this.messages.set(e,t)}deleteMessage(e){this.messages.delete(e)}deleteMessages(e,t){this.messages.forEach((r=>{e===r.conversationId&&(!t||t&&r.createTime<t)&&this.messages.delete(r.messageClientId)}))}}var ta={accountId:{type:"string",allowEmpty:!1},content:{type:"object",required:!1,rules:{msg:{type:"string",allowEmpty:!1},type:{type:"number",allowEmpty:!1}}},messages:{type:"array",required:!1,rules:{msg:{type:"string",allowEmpty:!1},type:{type:"number"},role:{type:"enum",values:["assistant","user","system"]}}},promptVariables:{type:"jsonstr",required:!1},modelConfigParams:{type:"object",required:!1,rules:{prompt:{type:"string",required:!1},maxTokens:{type:"number",required:!1},topP:{type:"number",required:!1},temperature:{type:"number",required:!1}}},aiStream:{type:"boolean",required:!1}},ra=Object.assign({requestId:{type:"string",allowEmpty:!1}},ta),ia={requestId:{type:"string",allowEmpty:!1},accountId:{type:"string",allowEmpty:!1}},sa=[1,3,2,0],aa=[2,7,12,100,6,1,-1,4,5,11,0,10,3],na={routeEnabled:{type:"boolean",required:!1},routeEnvironment:{type:"string",required:!1}},oa={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},forceContent:{type:"string",required:!1},forcePushAccountIds:{type:"array",required:!1,itemType:"string"}},ca={antispamEnabled:{type:"boolean",required:!1},antispamBusinessId:{type:"string",required:!1},antispamCustomMessage:{type:"string",required:!1},antispamCheating:{type:"string",required:!1},antispamExtension:{type:"string",required:!1}},da={messageConfig:{type:"object",required:!1,rules:{readReceiptEnabled:{type:"boolean",required:!1},lastMessageUpdateEnabled:{type:"boolean",required:!1},historyEnabled:{type:"boolean",required:!1},roamingEnabled:{type:"boolean",required:!1},onlineSyncEnabled:{type:"boolean",required:!1},offlineEnabled:{type:"boolean",required:!1},unreadEnabled:{type:"boolean",required:!1}}},routeConfig:{type:"object",required:!1,rules:na},pushConfig:{type:"object",required:!1,rules:oa},antiSpamConfig:{type:"object",required:!1,rules:ca},robotConfig:{type:"object",required:!1,rules:{accountId:{type:"string",required:!1},topic:{type:"string",required:!1},function:{type:"string",required:!1},customContent:{type:"string",required:!1}}},aiConfig:{type:"object",required:!1,rules:ta},targetConfig:{type:"object",required:!1,rules:{receiverIds:{type:"array",itemType:"string"},inclusive:{type:"boolean"},newMemberVisible:{type:"boolean",required:!1}}},clientAntispamEnabled:{type:"boolean",required:!1},clientAntispamReplace:{type:"string",required:!1}},la={message:{type:"object",rules:{text:{type:"string",required:!1},messageType:{type:"enum",values:aa},messageClientId:{type:"string",allowEmpty:!1}}},params:{type:"object",rules:da,required:!1},replyMessage:{type:"object",rules:{conversationType:{type:"enum",values:[1,3,2,0]},receiverId:{type:"string",allowEmpty:!1},senderId:{type:"string",allowEmpty:!1},messageClientId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},createTime:{type:"number"}}}},ma={conversationId:{type:"string",allowEmpty:!1},message:{type:"object",rules:{text:{type:"string",required:!1},messageType:{type:"enum",values:aa},messageClientId:{type:"string",allowEmpty:!1},attachment:{type:"object",required:!1,rules:{file:{type:"file",required:!1}}}}},params:{type:"object",required:!1,rules:da}},pa={message:{type:"object",rules:{messageClientId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},conversationType:{type:"enum",values:sa},createTime:{type:"number"}}},params:{type:"object",rules:{postscript:{type:"string",required:!1},serverExtension:{type:"string",required:!1},pushContent:{type:"string",required:!1},pushPayload:{type:"string",required:!1},env:{type:"string",required:!1}},required:!1}},ua={conversationId:{type:"string",allowEmpty:!1},messageTypes:{type:"array",required:!1,itemType:"enum",values:aa},beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},limit:{type:"number",min:1,required:!1},direction:{type:"enum",values:[1,0],required:!1},anchorMessage:{type:"object",required:!1,rules:{messageServerId:{type:"string",allowEmpty:!1},createTime:{type:"number"}}}},ha={conversationType:{type:"enum",values:sa},receiverId:{type:"string",allowEmpty:!1},senderId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},messageClientId:{type:"string",allowEmpty:!1}},ga={messageRefers:{type:"array",required:!0,rules:ha}},va={conversationId:{type:"string",allowEmpty:!1},conversationType:{type:"enum",values:sa},receiverId:{type:"string",allowEmpty:!1},senderId:{type:"string",allowEmpty:!1},messageClientId:{type:"string",allowEmpty:!1},createTime:{type:"number"}},ya={messages:{type:"array",rules:va}},fa={conversationId:{type:"string",allowEmpty:!1},serverExtension:{type:"string",required:!1},onlineSync:{type:"boolean",required:!1},deleteRoam:{type:"boolean",required:!1},clearMode:{type:"enum",values:[0,1,2],required:!1}},Ia={serverExtension:{type:"string",required:!1}},Ma={messageClientId:{type:"string",allowEmpty:!1},conversationType:{type:"enum",values:[1]},receiverId:{type:"string",allowEmpty:!1},createTime:{type:"number"}},Sa={messages:{type:"array",rules:{messageClientId:{type:"string",allowEmpty:!1},conversationType:{type:"enum",values:[2]},receiverId:{type:"string",allowEmpty:!1},createTime:{type:"number"}},min:1}},Ta={voiceUrl:{type:"string",required:!1,allowEmpty:!1},file:{type:"file",required:!1},voicePath:{type:"string",required:!1,allowEmpty:!1},mimeType:{type:"string",required:!1,allowEmpty:!1},sampleRate:{type:"string",required:!1,allowEmpty:!1},duration:{type:"number",required:!0,min:0},sceneName:{type:"string",required:!1}},_a={message:{type:"object",rules:{conversationType:{type:"enum",values:sa},receiverId:{type:"string",allowEmpty:!1},senderId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},messageClientId:{type:"string",allowEmpty:!1},createTime:{type:"number"}}},index:{type:"number",min:1},serverExtension:{type:"string",required:!1},pushConfig:{type:"object",required:!1,rules:{pushEnabled:{type:"boolean",required:!1},needBadge:{type:"boolean",required:!1},title:{type:"string",required:!1,allowEmpty:!1},content:{type:"string",required:!1,allowEmpty:!1},pushPayload:{type:"string",required:!1,allowEmpty:!1}}}},Ca={messages:{type:"array",rules:{conversationType:{type:"enum",values:[1,3,2,0]},receiverId:{type:"string",allowEmpty:!1},senderId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},messageClientId:{type:"string",allowEmpty:!1},createTime:{type:"number"}}}},Ea={params:{type:"object",rules:{collectionType:{type:"number",min:1},collectionData:{type:"string",allowEmpty:!1},serverExtension:{type:"string",required:!1},uniqueId:{type:"string",required:!1}}}},ba={collections:{type:"array",min:1,rules:{collectionId:{type:"string",allowEmpty:!1},createTime:{type:"number"}}}},Na={serverExtension:{type:"string",required:!1},collection:{type:"object",rules:{collectionId:{type:"string",allowEmpty:!1},collectionType:{type:"number"},createTime:{type:"number"}}}},Aa={beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},limit:{type:"number",min:1,required:!1},direction:{type:"enum",required:!1,values:[1,0]},collectionType:{type:"number",required:!1},anchorCollection:{type:"object",required:!1,rules:{collectionId:{type:"string",allowEmpty:!1,required:!1},createTime:{type:"number",required:!1}}}},Ra={keyword:{type:"string",allowEmpty:!1},beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},sortOrder:{type:"enum",values:[1,0],required:!1},conversationLimit:{type:"number",min:0,required:!1},messageLimit:{type:"number",min:1,required:!1},p2pAccountIds:{type:"array",required:!1,itemType:"string"},teamIds:{type:"array",required:!1,itemType:"string"},senderAccountIds:{type:"array",required:!1,itemType:"string"},messageTypes:{type:"array",required:!1,itemType:"enum",values:aa},messageSubtypes:{type:"array",required:!1,itemType:"number"}},Oa={conversationId:{type:"string",required:!1,allowEmpty:!1},keywordList:{type:"array",required:!1,itemType:"string"},keywordMatchType:{type:"enum",values:[1,0],required:!1},senderAccountIds:{type:"array",required:!1,itemType:"string"},messageTypes:{type:"array",required:!1,itemType:"enum",values:aa},messageSubtypes:{type:"array",required:!1,itemType:"number"},searchStartTime:{type:"number",required:!1},searchTimePeriod:{type:"number",required:!1},limit:{type:"number",min:1,required:!1},direction:{type:"enum",values:[0,1],required:!1},pageToken:{type:"string",required:!1}},ka={message:{type:"object",rules:{receiverId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},conversationType:{type:"enum",values:[2]}}}},wa={messages:{type:"array",rules:{receiverId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},conversationType:{type:"enum",values:[2]}},min:1}},Pa={sceneName:{type:"string",required:!1},name:{type:"string",required:!1}},Va=Object.assign(Object.assign({},Pa),{duration:{type:"number",required:!1}}),La=Object.assign(Object.assign({},Va),{width:{type:"number",required:!1},height:{type:"number",required:!1}}),Ua=Object.assign(Object.assign({},Pa),{width:{type:"number",required:!1},height:{type:"number",required:!1}}),Da={messageRefer:{type:"object",required:!0,rules:ha},beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},limit:{type:"number",min:1,required:!1},direction:{type:"enum",values:[1,0],required:!1},excludeMessageServerId:{type:"string",required:!1,allowEmpty:!1}},xa={senderId:{type:"string",allowEmpty:!1},receiverId:{type:"string",allowEmpty:!1},createTime:{type:"number"},messageClientId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1}},qa={subType:{type:"number",min:0,required:!1},text:{type:"string",required:!1},attachment:{type:"object",required:!1},serverExtension:{type:"string",required:!1},routeConfig:{type:"object",required:!1,rules:na},pushConfig:{type:"object",required:!1,rules:oa},antiSpamConfig:{type:"object",required:!1,rules:ca},clientAntispamEnabled:{type:"boolean",required:!1},clientAntispamReplace:{type:"string",required:!1}},Ba={messageClientId:{type:"string",allowEmpty:!1},messageServerId:{type:"string",allowEmpty:!1},createTime:{type:"number"},aiConfig:{type:"object",rules:ta}},Fa={operationType:{type:"enum",values:[0,1,2]},updateContent:{type:"string",allowEmpty:!0,required:!1}},ja={operationType:{type:"enum",values:[2,1],required:!0}};class ReceiptUtil{constructor(e,t){this.receiptDatas={},this.minActionTime=0,this.core=e,this.service=t}reset(){this.receiptDatas={}}checkReceiptDataReliable(e){if(!this.minActionTime)return!0;var t=this.getReceiptData(e);return!!t&&(!!t.actionTime&&t.actionTime>=this.minActionTime)}getReceiptData(e){return this.receiptDatas[e]}setReceiptData(e,t){this.receiptDatas[e]=this.receiptDatas[e]||{},Object.assign(this.receiptDatas[e],t)}sendP2PMessageReceipt(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(Ma,e,"",!0),e.senderId===this.core.account)throw new ValidateErrorV2({detail:{reason:`sendP2PMessageReceipt. sender: ${e.senderId} is not allowed to send msg receipt`}});yield this.core.sendCmd("v2SendP2PMessageReceipt",{tag:{receiverId:e.senderId,messageClientId:e.messageClientId,createTime:e.createTime}})}))}isPeerRead(e){var t;if(1!==e.conversationType)return!1;if(e.senderId!==this.core.account)return!1;if(e.senderId===this.core.account&&e.receiverId===this.core.account)return!0;var r=this.core.V2NIMConversationIdUtil.messageConversationId(e),i=(null===(t=this.getReceiptData(r))||void 0===t?void 0:t.receiptTime)||0;return this.checkReceiptDataReliable(r)||this.getP2pMessageReceiptsFromServer([r]),e.createTime<=i}getP2PMessageReceipt(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(validateConversationId(this.core.account,e),1!==this.core.V2NIMConversationIdUtil.parseConversationType(e))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getP2PMessageReceipt: conversationId is not p2p conversationId"}});return this.checkReceiptDataReliable(e)||(yield this.getP2pMessageReceiptsFromServer([e])),{conversationId:e,timestamp:(null===(t=this.getReceiptData(e))||void 0===t?void 0:t.receiptTime)||0}}))}getP2pMessageReceiptsFromServer(e){return __awaiter(this,void 0,void 0,(function*(){if(e.length){var t=yield this.core.sendCmd("v2GetP2PMessageReceipts",{tags:e.map((e=>({type:1,id:this.core.V2NIMConversationIdUtil.parseConversationTargetId(e)})))}),{datas:r}=t.content,i=t.content.actionTime||this.core.timeOrigin.getNTPTime();this.core.eventBus.emit("V2NIMSync/updateTimetag",{p2pMsgReceiptV2:i}),e.forEach((e=>{this.setReceiptData(e,{receiptTime:0,actionTime:i})}));var s=[];r.forEach((e=>{var t,r=this.core.V2NIMConversationIdUtil.p2pConversationId(e.id),a=+e.msgTime||0;a>((null===(t=this.getReceiptData(r))||void 0===t?void 0:t.receiptTime)||0)&&s.push({conversationId:r,timestamp:a}),this.setReceiptData(r,{receiptTime:a,actionTime:i})})),s.length>0&&this.service.emit("onReceiveP2PMessageReadReceipts",s)}}))}getTeamMessageReceipts(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(wa,{messages:e},"",!0),e.some((e=>e.senderId!==this.core.account)))throw new V2NIMErrorImpl({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 V2NIMErrorImpl({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 __awaiter(this,void 0,void 0,(function*(){if(validate(ka,{message:e},"",!0),e.senderId!==this.core.account)throw new V2NIMErrorImpl({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 __awaiter(this,void 0,void 0,(function*(){if(e.some((t=>t.conversationId!==e[0].conversationId)))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getTeamMessageReceipts: conversationId not same"}});if(validate(Sa,{messages:e},"",!0),e.some((e=>e.senderId===this.core.account)))throw new V2NIMErrorImpl({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),r=e.createTime;return this.setReceiptData(t,{receiptTime:r}),{conversationId:t,timestamp:r}}));this.service.emit("onReceiveP2PMessageReadReceipts",t)}syncP2pMessagReceiptsV2Handler(e){var{ctx:t,contents:r}=e.content,{minTimetag:i,maxTimetag:s}=t;for(var a in this.minActionTime=i,r.forEach((e=>{var t=this.core.V2NIMConversationIdUtil.p2pConversationId(e.id);this.setReceiptData(t,{receiptTime:e.msgTime})})),this.receiptDatas){var n=this.receiptDatas[a];(!n.actionTime||n.actionTime>=i)&&this.setReceiptData(a,{actionTime:s})}}onP2PMessageReceiptsHandler(e){var{senderId:t,createTime:r,actionTime:i}=e.content.data,s=this.core.V2NIMConversationIdUtil.p2pConversationId(t);this.setReceiptData(s,{receiptTime:r,actionTime:i}),this.core.eventBus.emit("V2NIMSync/updateTimetag",{p2pMsgReceiptV2:i}),this.service.emit("onReceiveP2PMessageReadReceipts",[{conversationId:s,timestamp:r}])}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 $a={"4_37":"v2TeamJoinActionList","4_38":"v2TeamJoinActionListSync","4_39":"v2TeamJoinActionClearSync","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","31_39":"v2TeamJoinActionDelete","31_40":"v2TeamJoinActionClear","8_41":"v2TeamJoinActionDeleteMultiSync","8_42":"v2TeamJoinActionClearMultiSync","8_101":"v2TeamCreateMultiSync","8_109":"v2TeamSync","8_119":"v2TeamMemberUpdateMultiSync","8_126":"v2TeamMembersOfSelfInSync","21_101":"v2SuperTeamCreateMultiSync","21_109":"v2SuperTeamSync","21_110":"v2SuperTeamMemberUpdateMultiSync","21_111":"v2SuperTeamMembersOfSelfInSync"},Ga={antispamBusinessId:1},Ha="V2NIMTeamService",za={teamId:1,name:3,teamType:{id:4,retConverter:e=>0==+e?1:+e},ownerAccountId:5,memberLimit:{id:6,retType:"number"},isTeamEffective:{id:8,converter:boolToInt,retType:"boolean"},memberCount:{id:9,retType:"number"},memberUpdateTime:{id:10,retType:"number"},createTime:{id:11,retType:"number"},updateTime:{id:12,retType:"number"},isValidTeam:{id:13,retDef:!0,retConverter:(e,t)=>1==+t[8]&&1==+e},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"}},Ya={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[]}}}},Ja={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[]}}}},Wa={accountIds:{id:1,converter:e=>JSON.stringify(e)},operation:2},Ka={fromAccountId:1,targetAccountId:2,operatorAccountId:3,status:{id:4,retType:"number"},timestamp:{id:5,retType:"number"},updateTimestamp:{id:6,retType:"number"},postscriptHistory:{id:7,retConverter:e=>{if(e&&"string"==typeof e)try{return JSON.parse(e).map((e=>({fromAccount:e.accid,time:e.time,content:e.msg})))}catch(e){return}}},serverId:8,teamId:9,teamType:{id:10,retType:"number"},finished:{id:11,retType:"boolean"},serverExtension:12},Qa={serverId:1,teamType:{id:2,retType:"number"},teamId:3,serverTime:{id:4,retType:"number"}},Xa={timestamp:{id:1,retType:"number"},type:{id:2,retType:"number"},serverTime:{id:3,retType:"number"}},Za={teamId:1,teamType:2,roleQueryType:3,onlyChatBanned:{id:4,converter:e=>+e},nextToken:5,limit:6,direction:7},en={v2TeamCreate:{sid:31,cid:1,service:Ha,params:[{type:"Property",name:"team",reflectMapper:za},{type:"StrArray",name:"inviteeAccountIds"},{type:"String",name:"postscript"},{type:"Property",name:"antispamConfig",reflectMapper:Ga}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)},{type:"StrArray",name:"failedList"}]},v2SuperTeamCreate:{sid:32,cid:1,service:Ha,params:[{type:"Property",name:"team",reflectMapper:za},{type:"StrArray",name:"inviteeAccountIds"},{type:"String",name:"postscript"},{type:"Property",name:"antispamConfig",reflectMapper:Ga}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)},{type:"StrArray",name:"failedList"}]},v2TeamInviteMembers:{sid:31,cid:5,service:Ha,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:Ha,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:Ha,params:[{type:"Property",name:"team",reflectMapper:za},{type:"Property",name:"antispamConfig",reflectMapper:Ga}],response:[{type:"Long",name:"teamId"},{type:"Long",name:"timestamp"}]},v2SuperTeamUpdateInfo:{sid:32,cid:8,service:Ha,params:[{type:"Property",name:"team",reflectMapper:za},{type:"Property",name:"antispamConfig",reflectMapper:Ga}],response:[{type:"Long",name:"timestamp"}]},v2TeamLeave:{sid:31,cid:8,service:Ha,params:[{type:"Long",name:"teamId"}]},v2SuperTeamLeave:{sid:32,cid:7,service:Ha,params:[{type:"Long",name:"teamId"}]},v2TeamGetInfo:{sid:31,cid:9,service:Ha,params:[{type:"Long",name:"teamId"}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)}]},v2SuperTeamGetInfo:{sid:32,cid:9,service:Ha,params:[{type:"Long",name:"teamId"}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)}]},v2TeamGetByIds:{sid:31,cid:34,service:Ha,params:[{type:"LongArray",name:"teamIds"}],response:[{type:"PropertyArray",name:"teams",reflectMapper:invertSerializeItem(za)},{type:"LongArray",name:"tids"}]},v2SuperTeamGetByIds:{sid:32,cid:36,service:Ha,params:[{type:"LongArray",name:"teamIds"}],response:[{type:"PropertyArray",name:"teams",reflectMapper:invertSerializeItem(za)},{type:"LongArray",name:"tids"}]},v2TeamDismiss:{sid:31,cid:12,service:Ha,params:[{type:"Long",name:"teamId"}]},v2SuperTeamDismiss:{sid:32,cid:4,service:Ha,params:[{type:"Long",name:"teamId"}]},v2TeamAcceptInvitation:{sid:31,cid:21,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)}]},v2SuperTeamAcceptInvitation:{sid:32,cid:23,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)}]},v2TeamRejectInvite:{sid:31,cid:22,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2SuperTeamRejectInvite:{sid:32,cid:24,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2TeamKickMembers:{sid:31,cid:6,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2SuperTeamKickMembers:{sid:32,cid:6,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2TeamApplyToJoin:{sid:31,cid:13,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"ps"}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)},{type:"Int",name:"isInTeam"}]},v2SuperTeamApplyToJoin:{sid:32,cid:20,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"ps"}],response:[{type:"Property",name:"team",reflectMapper:invertSerializeItem(za)},{type:"Int",name:"isInTeam"}]},v2TeamAcceptJoinApplication:{sid:31,cid:14,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},v2SuperTeamAcceptJoinApplication:{sid:32,cid:21,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"}]},v2TeamRejectJoinApplication:{sid:31,cid:15,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2SuperTeamRejectJoinApplication:{sid:32,cid:22,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"from"},{type:"String",name:"ps"}]},v2TeamAddManagers:{sid:31,cid:16,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2SuperTeamAddManagers:{sid:32,cid:26,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2TeamRemoveManagers:{sid:31,cid:17,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2SuperTeamRemoveManagers:{sid:32,cid:27,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}]},v2TeamTransferOwner:{sid:31,cid:18,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Bool",name:"leave"}]},v2SuperTeamTransferOwner:{sid:32,cid:31,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"account"},{type:"Bool",name:"leave"}]},v2TeamUpdateSelfMemberInfo:{sid:31,cid:19,service:Ha,params:[{type:"Property",name:"teamMember",reflectMapper:Ya},{type:"Property",name:"specialFollowUpdate",reflectMapper:Wa},{type:"Property",name:"antispam",reflectMapper:Ga}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ya)}]},v2SuperTeamUpdateSelfMemberInfo:{sid:32,cid:10,service:Ha,params:[{type:"Property",name:"teamMember",reflectMapper:Ja},{type:"Property",name:"specialFollowUpdate",reflectMapper:Wa},{type:"Property",name:"antispam",reflectMapper:Ga}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ja)}]},v2TeamUpdateMember:{sid:31,cid:20,service:Ha,params:[{type:"Property",name:"teamMember",reflectMapper:Ya},{type:"Property",name:"antispam",reflectMapper:Ga}]},v2SuperTeamUpdateMember:{sid:32,cid:30,service:Ha,params:[{type:"Property",name:"teamMember",reflectMapper:Ja},{type:"Property",name:"antispam",reflectMapper:Ga}]},v2TeamGetMemberInvitor:{sid:31,cid:33,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}],response:[{type:"StrStrMap",name:"accountsMap"}]},v2SuperTeamGetMemberInvitor:{sid:32,cid:35,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accounts"}],response:[{type:"StrStrMap",name:"accountsMap"}]},v2TeamMemberSetChatBannedStatus:{sid:31,cid:25,service:Ha,params:[{type:"Long",name:"teamId"},{type:"String",name:"accountId"},{type:"Int",name:"chatBanned"}]},v2SuperTeamMemberSetChatBannedStatus:{sid:32,cid:29,service:Ha,params:[{type:"Long",name:"teamId"},{type:"StrArray",name:"accountId"},{type:"Int",name:"chatBanned"}]},v2TeamSetChatBannedMode:{sid:31,cid:32,service:Ha,params:[{type:"Long",name:"teamId"},{type:"Int",name:"chatBannedMode"}]},v2SuperTeamSetChatBannedMode:{sid:32,cid:28,service:Ha,params:[{type:"Long",name:"teamId"},{type:"Int",name:"chatBannedMode"}]},v2TeamMemberGetListByIds:{sid:31,cid:35,service:Ha,params:[{type:"StrArray",name:"tag"}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ya)}]},v2SuperTeamMemberGetListByIds:{sid:32,cid:37,service:Ha,params:[{type:"StrArray",name:"tag"}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ja)}]},v2TeamMemberGetList:{sid:31,cid:36,service:Ha,params:[{type:"Property",name:"tag",reflectMapper:Za}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ya)},{type:"Property",name:"pageInfo",reflectMapper:{1:"hasMore",2:"nextToken"}}]},v2TeamSync:{sid:8,cid:109,service:Ha,response:[{type:"Long",name:"timetag"},{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(za)}]},v2TeamCreateMultiSync:{sid:8,cid:101,service:Ha,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(za)}]},v2TeamMemberUpdateMultiSync:{sid:8,cid:119,service:Ha,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ya)}]},v2TeamMembersOfSelfInSync:{sid:8,cid:126,service:Ha,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ya)},{type:"Long",name:"timetag"}]},v2SuperTeamSync:{sid:21,cid:109,service:Ha,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Object.assign(Object.assign({},za),{teamType:{id:4,retConverter:()=>2}}))},{type:"Bool",name:"isAll"},{type:"Long",name:"timetag"}]},v2SuperTeamCreateMultiSync:{sid:21,cid:101,service:Ha,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Object.assign(Object.assign({},za),{teamType:{id:4,retConverter:()=>2}}))}]},v2SuperTeamMemberUpdateMultiSync:{sid:21,cid:110,service:Ha,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ja)}]},v2SuperTeamMembersOfSelfInSync:{sid:21,cid:111,service:Ha,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ja)},{type:"Long",name:"timetag"}]},v2TeamJoinActionDelete:{sid:31,cid:39,service:Ha,params:[{type:"Property",name:"tag",reflectMapper:Qa}],response:[{type:"Long",name:"serverTime"}]},v2TeamJoinActionClear:{sid:31,cid:40,service:Ha,params:[{type:"Property",name:"tag",reflectMapper:Xa}],response:[{type:"Long",name:"serverTime"}]},v2TeamJoinActionDeleteMultiSync:{sid:8,cid:41,service:Ha,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Qa)}]},v2TeamJoinActionClearMultiSync:{sid:8,cid:42,service:Ha,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Xa)}]},v2TeamJoinActionList:{sid:4,cid:37,service:Ha,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ka)},{type:"Long",name:"serverTime"}]},v2TeamJoinActionListSync:{sid:4,cid:38,service:Ha,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ka)},{type:"Long",name:"serverTime"}]},v2TeamJoinActionClearSync:{sid:4,cid:39,service:Ha,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Ka)},{type:"PropertyArray",name:"clearInfos",reflectMapper:invertSerializeItem(Xa)},{type:"Long",name:"serverTime"}]}};function formatTeamNotificationAttachData(e,t){if(!e)return{};var r=e;return r.tinfo&&(r.tinfo=function formatTeamFromTinfo(e){return deserialize(e,invertSerializeItem(za))}(r.tinfo),r.tinfo.teamType=t),r.uinfos,void 0!==r.mute&&(r.mute=parseInt(r.mute)),r}function generateTeamByTeamId(e,t,r={}){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,isTeamEffective:!0},r)}function generateMemberByTeamId(e,t,r,i={}){return Object.assign({teamId:e,teamType:t,accountId:r,joinTime:0,inTeam:!0,memberRole:0,chatBanned:!1},i)}function processTeamMembers(e,t=1){return e.map((e=>function processTeamMember(e,t=1){return e.teamType=t,e.chatBanned=void 0!==e.chatBanned&&e.chatBanned,e}(e,t)))}function completeMessage(e,t,r){var i,s=Object.assign(Object.assign({},t),{conversationId:e.V2NIMConversationIdUtil.messageConversationId(t),isSelf:t.senderId===e.account,sendingState:1,messageStatus:{errorCode:(null===(i=null==t?void 0:t.messageStatus)||void 0===i?void 0:i.errorCode)||200},messageSource:r||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 a=get(s.streamConfig,"isStream");if(!1===a)delete s.streamConfig;else if(!0===a&&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 completeMessageStreamConfig(e){e.streamConfig&&e.aiConfig&&(e.aiConfig.aiStream=!0,e.aiConfig.aiStreamStatus=e.streamConfig.status,e.aiConfig.aiRAGs&&(e.streamConfig.rags=e.aiConfig.aiRAGs));if(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}e.aiConfig&&void 0===e.aiConfig.accountId&&delete e.aiConfig;return e}(s)}return s.aiConfig&&void 0===s.aiConfig.accountId&&delete s.aiConfig,formatMessageAttachment(s,e)}function formatMessageAttachment(e,t){return 5===e.messageType?function formatNotificationMessage(e,t){var r,i,s,a,n,o=t.attachment||{};if(t.attachment&&"type"in t.attachment)return t;var c=void 0;if(null===(r=o.data)||void 0===r?void 0:r.tinfo){var{id:d,data:l}=o,m=d>400?2:1,{tinfo:p}=formatTeamNotificationAttachData(Object.assign({},l),m);c={},c=__rest(p,["teamId"])}var u=Object.assign(Object.assign(Object.assign(Object.assign({raw:o.raw,type:convertNotificationType(e,o.id)},c?{updatedTeamInfo:c}:{}),{targetIds:(null===(i=o.data)||void 0===i?void 0:i.ids)||((null===(s=o.data)||void 0===s?void 0:s.id)?[o.data.id]:[])}),"string"==typeof(null===(a=o.data)||void 0===a?void 0:a.attach)?{serverExtension:o.data.attach}:{}),"number"==typeof(null===(n=o.data)||void 0===n?void 0:n.mute)?{chatBanned:0!==o.data.mute}:{});return Object.assign(Object.assign({},t),{attachment:u})}(t,e):100===e.messageType?function formatCustomMessage(e,t){var r,i,s;if("string"==typeof(null===(r=t.attachment)||void 0===r?void 0:r.raw)&&(null===(s=null===(i=e.V2NIMMessageService)||void 0===i?void 0:i.customAttachmentParsers)||void 0===s?void 0:s.length)>0){var a=t.subType||0,n=e.V2NIMMessageService.customAttachmentParsers,o=t.attachment.raw;n.some((r=>{try{var i=r(a,o);if(isPlainObject(i))return i.raw=o,t.attachment=i,!0}catch(t){return e.logger.warn(`customAttachmentParser: subType ${a}, raw: ${o}. parse error with ${t}`),!1}return!1}))}return t}(t,e):e}function completeMessageRefer(e,t){return Object.assign(Object.assign({},t),{conversationId:e.V2NIMConversationIdUtil.messageConversationId(t)})}function formatMessageRefer(e,t){var{createTime:r,senderId:i,receiverId:s,conversationType:a}=t;return{conversationType:a,conversationId:e.V2NIMConversationIdUtil.messageConversationId({conversationType:a,senderId:i,receiverId:s}),senderId:t.senderId,receiverId:t.receiverId,messageServerId:t.messageServerId,createTime:r,messageClientId:t.messageClientId}}function formatRevokeMessage(e,t){var r={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:r,conversationId:e.V2NIMConversationIdUtil.messageConversationId(Object.assign(Object.assign({},t),{conversationType:r,senderId:t.senderId,receiverId:t.receiverId})),senderId:t.senderId,receiverId:t.receiverId,messageServerId:t.messageServerId,createTime:t.deleteMsgCreatetime,messageClientId:t.messageClientId}}}function formatClearHistoryNotification(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 convertNotificationType(e,t){var r={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===r[t]&&e.logger.warn(`[V2NIMMessageService] undefined notification type: ${t}`),"number"==typeof r[t]?r[t]:-1}function formatSearchCloudMessageListEx(e,t){var r=[],i={};for(var s in t.forEach((e=>{var t=e.conversationId;i[t]||(i[t]={conversationId:t,messages:[],count:0}),i[t].messages.push(e),i[t].count++})),i){var a=i[s];r.push(a)}return r}function attachmentToRaw(e,t){if(!t)return"";switch(e){case 100:return t.raw||"";case 1:case 3:case 2:case 6:return function mediaAttachmentToRaw(e){var t=e,{width:r,height:i,duration:s,path:a,file:n,raw:o,ctx:c,payload:d,bucketName:l,objectName:m,token:p,ext:u}=t,h=__rest(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({},h),void 0===u?{}:{ext:g}),void 0===r?{}:{w:r}),void 0===i?{}:{h:i}),void 0===s?{}:{dur:s}))}(t);case 4:return function locationAttachmentToRaw(e){return JSON.stringify({lat:e.latitude,lng:e.longitude,title:e.address})}(t);case 12:return function callAttachmentToRaw(e){var t=__rest(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)}}function rawToAttachment(e,t){var r;try{switch(r=JSON.parse(e),t){case 100:return{raw:e};case 4:return function locationRawToAttachment(e,t){return{latitude:t.lat,longitude:t.lng,address:t.title,raw:e}}(e,r);case 2:case 3:case 1:case 6:return function mediaRawToAttachment(e,t){var{w:r,h:i,dur:s,ext:a}=t,n=__rest(t,["w","h","dur","ext"]),o="string"==typeof a&&"."!==a[0]?`.${a}`:a;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n),void 0===a?{}:{ext:o}),void 0===r?{}:{width:r}),void 0===i?{}:{height:i}),void 0===s?{}:{duration:s}),{raw:e})}(e,r);case 12:return function callRawToAttachment(e,t){return Object.assign(Object.assign({},t),{durations:t.durations.map((e=>({accountId:e.accid,duration:e.duration}))),raw:e})}(e,r);default:return"object"==typeof r&&r?Object.assign(Object.assign({},r),{raw:e}):{raw:e}}}catch(t){return"object"==typeof r&&r?Object.assign(Object.assign({},r),{raw:e}):{raw:e}}}class FileUtil{constructor(e){this.core=e}doSendFile(e,t){return __awaiter(this,void 0,void 0,(function*(){var r=e.attachment;try{var[i,s]=yield this.core.V2NIMStorageService._uploadFile({taskId:e.messageClientId,uploadParams:{fileObj:(null==r?void 0:r.file)||(null==r?void 0:r.path),sceneName:null==r?void 0:r.sceneName}},t,{fileType:e.messageType}),a=Object.assign(Object.assign({},r),{uploadState:1});void 0!==s.w&&(a.width=a.width||s.w),void 0!==s.h&&(a.height=a.height||s.h),void 0!==s.dur&&(a.duration=a.duration||s.dur),a.ext=a.ext&&-1===a.ext.indexOf(".")?`.${a.ext}`:a.ext;var n=["w","h","dur","ext","name"];for(var o in s)n.includes(o)||(a[o]=s[o]);var{raw:c,file:d,path:l}=a,m=__rest(a,["raw","file","path"]);e.attachment=JSON.parse(JSON.stringify(m)),e.attachment&&(e.attachment.raw=attachmentToRaw(e.messageType,e.attachment))}catch(t){throw e.attachment&&(e.attachment.uploadState=2),t}}))}cancelMessageAttachmentUpload(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({messageClientId:{type:"string",allowEmpty:!1}},e,"",!0),![2,6,1,3].includes(e.messageType))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`cancelMessageAttachmentUpload: messageType ${e.messageType} incorrect`}});if(2===e.sendingState||1===e.sendingState)throw new V2NIMErrorImpl({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 tn="V2NIMMessageService",rn={"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","4_32":"syncP2pMessagReceiptsV2","30_11":"v2SendP2PMessageReceipt","31_28":"v2SendTeamMessageReceipts","32_2":"v2SendSuperTeamMessage","7_12":"onP2PMessageReceipts","8_31":"onTeamMessageReceipts","31_29":"v2GetTeamMessageReceipts","31_30":"v2GetTeamMessageReceiptDetail","30_35":"v2GetP2PMessageReceipts","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"};var sn={conversationType:{id:0,converter:conversationTypeV2ToV1,retConverter:conversationTypeV1ToV2},receiverId:1,senderId:2,fromClientType:{id:4,retType:"number"},fromDeviceId:5,fromNick:6,createTime:{id:7,retType:"number"},messageType:{id:8,retType:"number"},text:9,attachment:{id:10,converter:(e,t)=>attachmentToRaw(t.messageType,e),retConverter:(e,t)=>rawToAttachment(e,Number(t[8]))},messageClientId:11,messageServerId:12,resend:{id:13,converter:boolToInt,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:boolToInt,retType:"boolean"},antispamCustomMessageEnabled:{id:21,def:e=>get(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:boolToInt,retType:"boolean"},antispamEnabled:{id:25,access:"antispamConfig.antispamEnabled",converter:boolToInt,retType:"boolean"},needAck:{id:26,access:"messageConfig.readReceiptEnabled",converter:boolToInt,retType:"boolean"},lastMessageUpdateEnabled:{id:28,access:"messageConfig.lastMessageUpdateEnabled",converter:boolToInt,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:boolToInt,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:objectToJSONString,retConverter:stringToJSONObject},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:objectToJSONString,retConverter:emptyFunc},aiAgentMessages:{id:58,access:"aiConfig.messages",converter:objectToJSONString,retConverter:emptyFunc},aiAgentPromptVariables:{id:59,access:"aiConfig.promptVariables",retConverter:emptyFunc},aiAgentModelConfigParams:{id:60,access:"aiConfig.modelConfigParams",converter:objectToJSONString,retConverter:emptyFunc},errorCode:{id:61,access:"messageStatus.errorCode",converter:emptyFunc,retType:"number"},modifyTime:{id:62,retType:"number"},modifyAccountId:63,aiStream:{id:65,access:"aiConfig.aiStream",retAccess:"streamConfig.isStream",converter:boolToInt,retConverter:intToBool},aiRAGs:{id:66,access:"aiConfig.aiRAGs",retConverter:function aiAgentStreamAIRAGsRetConverter$1(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:boolToInt,retType:"boolean"},roamingEnabled:{id:101,access:"messageConfig.roamingEnabled",converter:boolToInt,retType:"boolean"},onlineSyncEnabled:{id:102,access:"messageConfig.onlineSyncEnabled",converter:boolToInt,retType:"boolean"},routeEnabled:{id:105,access:"routeConfig.routeEnabled",converter:boolToInt,retType:"boolean"},isInBlackList:{id:106,access:"isInBlackList",converter:boolToInt,retType:"boolean"},pushEnable:{id:107,access:"pushConfig.pushEnabled",converter:boolToInt,retType:"boolean"},offlineEnabled:{id:108,access:"messageConfig.offlineEnabled",converter:boolToInt,retType:"boolean"},unreadEnabled:{id:109,access:"messageConfig.unreadEnabled",converter:boolToInt,retType:"boolean"},pushNickEnabled:{id:110,access:"pushConfig.pushNickEnabled",converter:boolToInt,retType:"boolean"},msgAckSnapshot:{id:112,retType:"number"},receiverIds:{id:154,access:"targetConfig.receiverIds",converter:objectToJSONString,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:()=>{}},actionTime:{id:163,retType:"number"}},an=invertSerializeItem(sn),nn={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};invertSerializeItem(nn);var cn={version:1,md5:2,nosurl:3,thesaurus:4},dn={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},ln={receiverId:0,messageServerId:1,readCount:{id:100,retType:"number"},unreadCount:{id:101,retType:"number"},messageClientId:102,latestReadAccount:103},mn={v2BatchMarkRead:{sid:4,cid:5,service:tn,hasPacketResponse:!1,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]},v2SendP2pMessage:{sid:30,cid:1,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},onMsg:{sid:7,cid:2,service:tn,response:[{type:"Property",name:"msg",reflectMapper:invertSerializeItem(sn)}]},syncOfflineMsgs:{sid:4,cid:4,service:tn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(sn)}]},syncRoamingMsgs:{sid:4,cid:9,service:tn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(sn)}]},v2SendP2PMessageReceipt:{sid:30,cid:11,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem({actionTime:{id:163,retType:"number"}})}]},v2RevokeMessage:{sid:30,cid:13,service:tn,params:[{type:"Property",name:"tag",reflectMapper:dn}]},v2DeleteMessage:{sid:30,cid:23,service:tn,params:[{type:"Property",name:"tag",reflectMapper:nn}],response:[{type:"Long",name:"timetag"}]},v2DeleteMessages:{sid:30,cid:24,service:tn,params:[{type:"PropertyArray",name:"tag",reflectMapper:nn}],response:[{type:"Long",name:"timetag"}]},v2SendTeamMessage:{sid:31,cid:2,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2SendTeamMessageReceipts:{sid:31,cid:28,service:tn,params:[{type:"PropertyArray",name:"tag",reflectMapper:ln}],response:[{type:"PropertyArray",name:"tag",reflectMapper:invertSerializeItem(ln)}]},v2SendSuperTeamMessage:{sid:32,cid:2,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2RevokeSuperTeamMessage:{sid:32,cid:17,service:tn,params:[{type:"Property",name:"tag",reflectMapper:dn}]},syncP2PMessagReceipts:{sid:4,cid:12,service:tn,response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(sn)}]},syncP2pMessagReceiptsV2:{sid:4,cid:32,service:tn,response:[{type:"Property",name:"ctx",reflectMapper:invertSerializeItem({minTimetag:{id:1,retType:"number"},maxTimetag:{id:2,retType:"number"}})},{type:"PropertyArray",name:"contents",reflectMapper:invertSerializeItem({id:1,msgTime:{id:2,retType:"number"}})}]},onP2PMessageReceipts:{sid:7,cid:12,service:tn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2GetTeamMessageReceipts:{sid:31,cid:29,service:tn,params:[{type:"PropertyArray",name:"tag",reflectMapper:ln}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(ln)}]},v2GetTeamMessageReceiptDetail:{sid:31,cid:30,service:tn,params:[{type:"Property",name:"tag",reflectMapper:ln,select:["receiverId","messageServerId"]}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(ln)},{type:"StrArray",name:"readAccountList"},{type:"StrArray",name:"unreadAccountList"}]},onTeamMessageReceipts:{sid:8,cid:31,service:tn,response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(ln)}]},onRevokeMessage:{sid:7,cid:14,service:tn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(dn)}]},syncRevokeMessage:{sid:7,cid:15,service:tn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(dn)}]},syncOnDeleteMessages:{sid:4,cid:21,service:tn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(nn)}]},onDeleteMessage:{sid:7,cid:123,service:tn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(nn)}]},onDeleteMessages:{sid:7,cid:124,service:tn,response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(nn)}]},v2DownloadLocalAntiSpamVocabs:{sid:29,cid:17,service:tn,params:[{type:"Property",name:"tag",reflectMapper:cn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(cn)}]},v2MessageP2pModify:{sid:30,cid:31,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2MessageTeamModify:{sid:31,cid:37,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2MessageSuperTeamModify:{sid:32,cid:38,service:tn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2MessageOnModified:{sid:7,cid:33,service:tn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2MessageSyncModified:{sid:4,cid:27,service:tn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(sn)},{type:"Long",name:"time"}]},v2MessageSuperTeamSyncModified:{sid:4,cid:28,service:tn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(sn)},{type:"Long",name:"time"}]},v2GetP2PMessageReceipts:{sid:30,cid:35,service:tn,params:[{type:"PropertyArray",name:"tags",reflectMapper:{type:1,id:2}}],response:[{type:"Long",name:"actionTime"},{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem({type:1,id:2,msgTime:3})}]}};function conversationTypeV2ToV1(e){return 1===e?0:2===e?1:3===e?5:void 0}function conversationTypeV1ToV2(e){var t=parseInt(e);return 0===t?1:1===t?2:5===t?3:0}var pn="V2NIMNotificationService",un={"30_7":"v2SendCustomNotification","32_16":"v2SendCustomNotificationWithSuperTeam","7_3":"onSysNotification","21_19":"onSysNotification","4_6":"v2SyncOfflineSysNotifications","4_18":"v2SyncOfflineSysNotifications","7_14":"v2NotificationRevoke","21_18":"v2NotificationRevoke","21_117":"v2NotificationRevoke","4_19":"v2NotificationSyncRevoke","7_15":"v2NotificationSyncRevoke","4_16":"syncBroadcastMsg","7_17":"onBroadcastMsg"},hn={timestamp:{id:0,retType:"number"},type:{id:1,retType:"number"},receiverId:2,senderId:3,postscript:4,content:5,idServer:6,offlineEnabled:{id:7,converter:boolToInt,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:boolToInt,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:boolToInt,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:boolToInt,retType:"boolean",access:"routeConfig.routeEnabled"},pushEnabled:{id:107,converter:boolToInt,retType:"boolean",access:"pushConfig.pushEnabled"},unreadEnabled:{id:109,converter:boolToInt,retType:"boolean",access:"notificationConfig.unreadEnabled"},pushNickEnabled:{id:110,converter:boolToInt,retType:"boolean",access:"pushConfig.pushNickEnabled"}},gn={id:1,senderId:2,timestamp:{id:4,retType:"number"},content:5},vn={v2SendCustomNotification:{sid:30,cid:7,service:pn,params:[{type:"Property",name:"tag",reflectMapper:hn}]},v2SendCustomNotificationWithSuperTeam:{sid:32,cid:16,service:pn,params:[{type:"Property",name:"tag",reflectMapper:hn}]},onSysNotification:{sid:7,cid:3,service:pn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(hn)}]},syncBroadcastMsg:{sid:4,cid:16,service:pn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(gn)}]},onBroadcastMsg:{sid:7,cid:17,service:pn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(gn)}]},v2SyncOfflineSysNotifications:{sid:4,cid:9,service:pn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(hn)}]},v2NotificationRevoke:{sid:7,cid:14,service:pn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(hn)}]},v2NotificationSyncRevoke:{sid:7,cid:15,service:pn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(hn)},{type:"Long",name:"timetag"},{type:"Byte",name:"type"}]}},yn="YSFService",fn={"4_5":"ysfBatchMarkRead","101_1":"ysfSendMessage","101_2":"ysfOnMsg","4_100":"ysfSyncOfflineMsgs","101_3":"ysfOnSysNotification","101_7":"ysfSendCustomNotification","4_101":"ysfSyncSysNotification"},In={ysfBatchMarkRead:{sid:4,cid:5,service:yn,hasPacketResponse:!1,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]},ysfSendMessage:{sid:101,cid:1,service:yn,params:[{type:"Property",name:"tag",reflectMapper:sn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},ysfOnMsg:{sid:101,cid:2,service:yn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(sn)}]},ysfSyncOfflineMsgs:{sid:4,cid:100,service:yn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(sn)}]},ysfOnSysNotification:{sid:101,cid:3,service:yn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(hn)}]},ysfSendCustomNotification:{sid:101,cid:7,service:yn,params:[{type:"Property",name:"tag",reflectMapper:hn}]},ysfSyncSysNotification:{sid:4,cid:101,service:yn,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(hn)}]}},Mn={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 NotificationUtil{constructor(e){this.core=e}generateNotificationTag(e,t,r={}){var i=this.core.V2NIMConversationIdUtil.parseConversationType(e),s=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e),a=Date.now(),n={1:100,2:101,3:103};return Object.assign(Object.assign({},r),{notificationConfig:Object.assign({unreadEnabled:!0,offlineEnabled:!0},null==r?void 0:r.notificationConfig),pushConfig:Object.assign({pushEnabled:!0,pushNickEnabled:!0},null==r?void 0:r.pushConfig),antispamConfig:Object.assign({antispamEnabled:!0},null==r?void 0:r.antispamConfig),routeConfig:Object.assign({routeEnabled:!0},null==r?void 0:r.routeConfig),timestamp:a,type:n[i],receiverId:s,content:t})}}function getFileOrPath(e){var t="object"==typeof e?e:void 0,r="string"==typeof e?e:void 0;if(!t&&!r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getFileOrPath::incorrect file and path"}});if("string"==typeof r)if(0===r.indexOf("nim-external")){var i=document.getElementById(r);if(!(i&&i.files&&i.files[0]))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_FILE_NOT_FOUND,detail:{reason:`getFileOrPath::file not exist: ${r}`}});t=i.files[0]}else if("BROWSER"===ve.platform)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`getFileOrPath::incorrect path: ${r}`}});if("object"==typeof t&&void 0===t.size)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"getFileOrPath::file no size"}});return{file:t,path:r}}var Sn={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 V2NIMStorageUtil extends V2Service{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 __awaiter(this,void 0,void 0,(function*(){this.checkV2();var r=e;validate(Sn,{attachment:r,thumbSize:t},"",!0),t.width=t.width||0,t.height=t.height||0,0===t.width&&0===t.height&&(t.width=150);var i=r.url;try{i=yield this.core.V2NIMStorageService.shortUrlToLong(r.url)}catch(e){this.core.logger.warn("shortUrlToLong error:",e)}return{url:this.core.cloudStorage.getThumbUrl(i,t)}}))}getVideoCoverUrl(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2();var r=e;validate(Sn,{attachment:r,thumbSize:t},"",!0),t.width=t.width||0,t.height=t.height||0,0===t.width&&0===t.height&&(t.width=150);var i=r.url;try{i=yield this.core.V2NIMStorageService.shortUrlToLong(r.url)}catch(e){this.core.logger.warn("shortUrlToLong error:",e)}return{url:this.core.cloudStorage.getVideoCoverUrl(i,t)}}))}}class V2NIMStorageServiceImpl extends V2Service{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(CloudStorageService,"cloudStorage"),this.core._registerDep(V2NIMStorageUtil,"V2NIMStorageUtil")}addCustomStorageScene(e,t){return this.checkV2(),validate({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:Me(),uploadParams:e}}uploadFile(e,t){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate({taskId:{type:"string",allowEmpty:!1}},e,"fileTask",!0),(yield this._uploadFile(e,t))[0]}))}uploadFileWithMetaInfo(e,t){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate({taskId:{type:"string",allowEmpty:!1}},e,"fileTask",!0),function formatV2NIMFileMetaInfo(e){var{url:t,name:r,size:i,ext:s,md5:a,h:n,w:o,orientation:c,dur:d,audioCodec:l,videoCodec:m,container:p}=e;return JSON.parse(JSON.stringify({url:t,name:r,size:i,ext:s,md5:a,height:n,width:o,orientation:c,duration:d,audioCodec:l,videoCodec:m,container:p}))}((yield this._uploadFile(e,t))[1])}))}_uploadFile(e,t,r){var i;return __awaiter(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:a}=e,{file:n,path:o}=getFileOrPath(s.fileObj),{fileType:c}=r||{};if(this.uploadingMessageInfo[a])throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_ALREADY_EXIST,detail:{reason:"V2NIMStorageService.uploadFile: repeat upload"}});try{var d={};n?d.file=n:o&&(0===(null==o?void 0:o.indexOf("nim-external"))?d.fileInput=o:d.filePath=o);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 m=yield this.getFileMd5(this.core.pluginMap["browser-md5-file"],a,d.file);d.md5=m}d.onUploadProgress=e=>{"function"==typeof t&&t(Math.round(100*e.percentage))},d.onUploadStart=e=>{var t;if(null===(t=this.uploadingMessageInfo[a])||void 0===t?void 0:t.abort)return e.abort(),void delete this.uploadingMessageInfo[a];this.uploadingMessageInfo[a]={abort:!1,task:e}},this.uploadingMessageInfo[a]={abort:!1};var p=yield this.core.cloudStorage.uploadFile(d);if(null===(i=this.uploadingMessageInfo[a])||void 0===i?void 0:i.abort)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:"upload file aborted"}});return delete this.uploadingMessageInfo[a],[p.url,p]}catch(e){throw delete this.uploadingMessageInfo[a],this.core.logger.error("sendFile:: upload File error or abort.",e),e}}))}cancelUploadFile(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),yield this._cancelUploadFile(e.taskId)}))}_cancelUploadFile(e){return __awaiter(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 V2NIMErrorImpl({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,r){return __awaiter(this,void 0,void 0,(function*(){return new Promise(((i,s)=>{var a,n=new e;(null===(a=this.uploadingMessageInfo[t])||void 0===a?void 0:a.abort)?s(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:"upload file aborted"}})):this.uploadingMessageInfo[t]={abort:!1,task:n};try{n.md5(r,((e,t)=>{"aborted"===e?s(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CANCELLED,detail:{reason:e}})):e?s(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"md5 calculate error in callback",rawError:e}})):i(t)}))}catch(e){s(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"md5 calculate error",rawError:e}}))}}))}))}shortUrlToLong(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.cloudStorage.getOriginUrl(e)}))}getImageThumbUrl(e,t){return __awaiter(this,void 0,void 0,(function*(){return this.core.V2NIMStorageUtil.getImageThumbUrl(e,t)}))}getVideoCoverUrl(e,t){return __awaiter(this,void 0,void 0,(function*(){return this.core.V2NIMStorageUtil.getVideoCoverUrl(e,t)}))}}class V2NIMMessageCreatorImpl extends V2Service{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:Me(),messageType:e,createTime:this.core.timeOrigin.getNTPTime(),sendingState:0,messageStatus:{errorCode:200},messageSource:0,fromClientType:16,isSelf:!0},t),t.attachment?{attachment:Object.assign(Object.assign({},t.attachment),{raw:attachmentToRaw(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(),validate({text:{type:"string",allowEmpty:!1}},{text:e},"",!0),this.createMessage(0,{text:e})}createImageMessage(e,t,r,i,s){this.checkV2(),validate(Ua,{name:t,sceneName:r,width:i,height:s},"",!0);var a=this.createGenericFileMessageAttachment(e,t,r,void 0,i,s,"jpeg");return this.createMessage(1,{attachment:a,attachmentUploadState:0})}createAudioMessage(e,t,r,i){this.checkV2(),validate(Va,{name:t,sceneName:r,duration:i},"",!0);var s=this.createGenericFileMessageAttachment(e,t,r,i,void 0,void 0,"aac");return this.createMessage(2,{attachment:s,attachmentUploadState:0})}createVideoMessage(e,t,r,i,s,a){this.checkV2(),validate(La,{name:t,sceneName:r,duration:i,width:s,height:a},"",!0);var n=this.createGenericFileMessageAttachment(e,t,r,i,s,a,"mp4");return this.createMessage(3,{attachment:n,attachmentUploadState:0})}createFileMessage(e,t,r){this.checkV2(),validate(Pa,{name:t,sceneName:r},"",!0);var i=this.createGenericFileMessageAttachment(e,t,r,void 0,void 0,void 0,"txt");return this.createMessage(6,{attachment:i,attachmentUploadState:0})}createGenericFileMessageAttachment(e,t,r,i,s,a,n){if(r=r||this.defaultNosSceneName,!this.core.V2NIMStorageService.hasStorageScene)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2NIMStorageService not exist"}});if(!this.core.V2NIMStorageService.hasStorageScene(r))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sceneName: "+r+" has not been added"}});var{file:o,path:c}=getFileOrPath(e),d=Object.assign(Object.assign(Object.assign({name:t,uploadState:0,sceneName:r||this.defaultNosSceneName},i?{duration:i}:{}),s?{width:s}:{}),a?{height:a}:{});if(o){var l=o.name.lastIndexOf("."),m=-1===l?o.name:o.name.substring(0,l);d.name=d.name||m,d.size=o.size,d.ext=`.${getFileExtension(o.name)||getFileExtension(t||"")||n}`}else if(c){var p=c.lastIndexOf("/"),u=c.lastIndexOf("."),h=-1===u?c.substring(p+1):c.substring(p+1,u);d.name=d.name||h,d.ext=`.${getFileExtension(c)||getFileExtension(t||"")||n}`}return d=JSON.parse(JSON.stringify(d)),c?d.path=c:o&&(d.file=o),d}createLocationMessage(e,t,r){return this.checkV2(),validate({latitude:{type:"number",allowEmpty:!1},longitude:{type:"number",allowEmpty:!1},address:{type:"string",allowEmpty:!1}},{latitude:e,longitude:t,address:r},"",!0),this.createMessage(4,{attachment:{latitude:e,longitude:t,address:r}})}createCustomMessage(e,t){return this.checkV2(),validate({text:{type:"string"}},{text:e},"",!0),validate({rawAttachment:{type:"string"}},{rawAttachment:t},"",!0),this.createMessage(100,{text:e,attachment:{raw:t}})}createCustomMessageWithAttachment(e,t){return this.checkV2(),validate({raw:{type:"string"}},e,"attachment",!0),validate({subType:{type:"number",min:0,required:!1}},{subType:t},"",!0),this.createMessage(100,t?{attachment:e,subType:t}:{attachment:e})}createCallMessage(e,t,r,i,s){return this.checkV2(),validate({type:{type:"number",allowEmpty:!1}},{type:e},"",!0),validate({channelId:{type:"string",allowEmpty:!1}},{channelId:t},"",!0),validate({status:{type:"number",allowEmpty:!1}},{status:r},"",!0),validate({durations:{type:"array",allowEmpty:!1}},{durations:i},"",!0),this.createMessage(12,{text:s||"",attachment:{type:e,channelId:t,durations:i,status:r}})}createForwardMessage(e){this.checkV2();if(!e||[11,5,7,10].includes(e.messageType))return null;var t={messageClientId:Me(),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(),validate({text:{type:"string",allowEmpty:!1}},{text:e},"",!0),this.createMessage(10,{text:e})}}class V2NIMMessageAttachmentCreatorImpl{constructor(){this.name="V2NIMMessageAttachmentCreator"}createLocationMessageAttachment(e,t,r){return{latitude:"number"==typeof e?e:0,longitude:"number"==typeof t?t:0,address:"string"==typeof r?r:""}}createCustomMessageAttachment(e){return{raw:"string"==typeof e?e:""}}}class V2NIMClientAntispamUtilImpl{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 __awaiter(this,void 0,void 0,(function*(){if(this.config.enable&&!this.vocabInfo)try{var e=yield this.core.sendCmd("v2DownloadLocalAntiSpamVocabs",{tag:{version:0,md5:""}});e.content.data&&(this.vocabInfo=Object.assign(Object.assign({},e.content.data),{thesaurus: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(validate({text:{type:"string",required:!0,allowEmpty:!1},replace:{type:"string"}},{text:e,replace:t},"",!0),!this.vocabInfo)return{operateType:0,replacedText:e};for(var r=e,i=0;i<this.vocabInfo.thesaurus.length;i++){var s=this.filterContent(r,this.vocabInfo.thesaurus[i],t);if(r=s.replacedText,2===s.operateType||3===s.operateType)return s}return{operateType:r===e?0:1,replacedText:r}}filterContent(e,t,r){for(var i=0;i<t.keys.length;i++){var s=t.keys[i],a=s.match||t.match,n=s.operate||t.operate,o=void 0;try{o=this.matchContent(e,s.key,a,n,r)}catch(e){}if(o&&(e=o.replacedText,2===o.operateType||3===o.operateType))return o}return{operateType:1,replacedText:e}}matchContent(e,t,r,i,s){var a=!1,n=null;if(1===r){if(e.indexOf(t)>=0){a=!0;var o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n=new RegExp(o,"g")}}else 2===r&&(n=new RegExp(t,"g")).test(e)&&(a=!0);if(a&&n)switch(i){case 1:return{operateType:1,replacedText:e.replace(n,s)};case 2:return{operateType:2,replacedText:e};case 3:return{operateType:3,replacedText:e}}return{operateType:0,replacedText:e}}}class YSFServiceImpl extends V2Service{constructor(e){super("YSFService",e),this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),this.core._registerDep(V2NIMMessageCreatorImpl,"V2NIMMessageCreator"),this.core._registerDep(V2NIMMessageAttachmentCreatorImpl,"V2NIMMessageAttachmentCreator"),this.core._registerDep(V2NIMClientAntispamUtilImpl,"V2NIMClientAntispamUtil"),this.core._registerDep(V2NIMStorageServiceImpl,"V2NIMStorageService"),this.sendUtil=new SendUtil(this.core,this),this.fileUtil=new FileUtil(this.core),this.model=new V2NIMMessageModelImpl,this.notificationUtil=new NotificationUtil(this.core),registerParser({cmdMap:fn,cmdConfig:In})}emit(e,...t){var r,i=`${this.name}::emit ${e.toString()}`;if("onSendMessage"===e){var s=t[0];this.logger.log(`${i}`,`${s.messageClientId}/${s.messageServerId};createTime:${s.createTime};`,`sendingState:${s.sendingState};attachmentUploadState:${s.attachmentUploadState||0};messageStatus:${null===(r=s.messageStatus)||void 0===r?void 0:r.errorCode}`)}else if("onReceiveMessages"===e){var a=t[0];this.logger.log(`${i}`,a.map((e=>`${e.messageClientId}/${e.messageServerId};createTime:${e.createTime}`)))}else if("onReceiveCustomNotifications"===e){var n=t[0];this.logger.log(`${i}`,n.map((e=>`sender:${e.senderId};receiver:${e.receiverId};ctype:${e.conversationType};time:${e.timestamp}`)))}else this.logger.log(`${i}`,...t);return super.emit(e,...t)}sendMessage(e,t,r={},i){return __awaiter(this,void 0,void 0,(function*(){validate({message:{type:"object"}},{message:e},"",!0),e.messageClientId=e.messageClientId||Me(),validate(ma,{conversationId:t,message:e,params:r},"",!0),validateConversationId(this.core.account,t);var s=this.core.timeOrigin.getTimeNode(),{messageBeforeSend:a,clientAntispamResult:n,hiddenParams:o}=this.sendUtil.prepareMessage(e,t,r),c=yield this.sendUtil.doSendMessage({apiCallingTimeNode:s,messageBeforeSend:a,clientAntispamResult:n,hiddenParams:o,progress:i});return c.message.senderId===c.message.receiverId&&this.markMsgsAck([c.message]),c}))}sendCustomNotification(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e),validate(Mn,{content:t,params:r},"",!0);var i=this.notificationUtil.generateNotificationTag(e,t,r);i.type=100,yield this.core.sendCmd("ysfSendCustomNotification",{tag:i})}))}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=fillIdServer(e,e.content.data,"messageServerId"),r=completeMessage(this.core,t);delete r.__clientExt,this.emit("onReceiveMessages",[r]),this.model.upsertMessages([r]),this.markMsgsAck([r])}ysfSyncOfflineMsgsHandler(e){var t=e.content.datas;t=t.map((e=>completeMessage(this.core,e))),this.markMsgsAck(t),this.emit("onReceiveMessages",t),this.model.upsertMessages(t)}ysfOnSysNotificationHandler(e){var t=fillIdServer(e,e.content.data,"idServer");this.markNotificationAck([t]);var r=this.processSystemNotification(t);r&&this.emit("onReceiveCustomNotifications",[r])}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 SendUtil{constructor(e,t){this.uploadingMessageInfo={},this.core=e,this.service=t}prepareMessage(e,t,r,i){var s=this.checkIfResend(e),a=this.generateSendMessage({message:e,params:r,resend:s,conversationId:t,replyMessage:i}),n=Object.assign({},r.targetConfig?{targetConfig:r.targetConfig}:{}),{clientAntispamResult:o,text:c}=this.checkIfAntispam(r,a);return a.text=c,a.clientAntispamHit=!!o&&3===o.operateType,{messageBeforeSend:a,clientAntispamResult:o,hiddenParams:n}}checkIfAntispam(e,t){var r,i=t.text;if(e.clientAntispamEnabled&&(0===t.messageType||10===t.messageType))if(1===(r=this.core.V2NIMClientAntispamUtil.checkTextAntispam?this.core.V2NIMClientAntispamUtil.checkTextAntispam(t.text||"",e.clientAntispamReplace):{operateType:0,replacedText:""}).operateType)i=r.replacedText;else if(2===r.operateType)throw this.service.emit("onSendMessage",Object.assign(Object.assign({},t),{sendingState:2,messageStatus:{errorCode:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM}})),new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM,detail:{reason:"sendMessage: text intercepted by client antispam"}});return{clientAntispamResult:r,text:i}}doMsgReceiveReport(e,t){if(e.senderId!==this.core.account){var r=get(e,"__clientExt.statistics.apiCallingTime")||0,i=get(e,"__clientExt.statistics.sendTime")||0,s=get(e,"__clientExt.statistics.attachUploadDuration")||0,a=this.core.timeOrigin.getNTPTime(),n=e.createTime,o=this.core.timeOrigin.checkNodeReliable(t.__receiveTimeNode)?this.core.timeOrigin.getNTPTime(t.__receiveTimeNode):a;this.core.reporter.report("msgReceive",{msgId:e.messageServerId,clientId:e.messageClientId,serverTime:e.createTime,receiveTime:o,fromAccid:e.senderId,toAccid:e.receiverId,type:conversationTypeV2ToV1(e.conversationType),tid:1===e.conversationType?"":e.receiverId,apiCallingTime:r,sendTime:i,attachUploadDuration:s,callbackTime:a,preHandleTime:a,result:200,failReason:"",rt:a-n})}}checkIfResend(e){var t=this.service.model.getMessageById(e.messageClientId),r=!1;if("messageServerId"in e&&"0"!==e.messageServerId&&""!==e.messageServerId)throw new V2NIMErrorImpl({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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sendMessage: message has already been sent"}});return t&&(r=!0),r}doSendMessage(e){var t;return __awaiter(this,void 0,void 0,(function*(){var r,i,{apiCallingTimeNode:s,messageBeforeSend:a,clientAntispamResult:n,hiddenParams:o,progress:c}=e,d={},l=this.service instanceof YSFServiceImpl;if(l)r="ysfSendMessage";else if(1===a.conversationType)r="v2SendP2pMessage";else if(2===a.conversationType)r="v2SendTeamMessage";else{if(3!==a.conversationType)throw new ValidateErrorV2({detail:{reason:`conversationType: ${a.conversationType} is not supported`}});r="v2SendSuperTeamMessage"}if(this.service.sendMessageFn(a),!l&&this.core.eventBus.emit("forwardSend/V2NIMMessageService/sendMsg",a),!a.attachment||!("uploadState"in a.attachment)||a.attachment.url||0!==a.attachment.uploadState&&2!==a.attachment.uploadState)this.service.emit("onSendMessage",a);else{var m=Date.now();try{a.attachmentUploadState=3,a.attachment.uploadState=3,this.service.emit("onSendMessage",a),yield this.service.fileUtil.doSendFile(a,c),a.attachmentUploadState=1,a.attachment.uploadState=1,this.service.emit("onSendMessage",a)}catch(e){throw a.attachmentUploadState=2,a.attachment.uploadState=2,a.sendingState=2,a.messageStatus={errorCode:e.code||de.V2NIM_ERROR_CODE_UNKNOWN},this.service.emit("onSendMessage",a),d.attachUploadDuration=Date.now()-m,this.doSendMessageFailed(s,d,a,e),e}d.attachUploadDuration=Date.now()-m}this.core.timeOrigin.checkNodeReliable(s)&&(d.apiCallingTime=this.core.timeOrigin.getNTPTime(s),d.sendTime=this.core.timeOrigin.getNTPTime(),a.__clientExt={statistics:d});try{i=yield this.core.sendCmd(r,{tag:Object.assign({},a,o)})}catch(e){throw this.doSendMessageFailed(s,d,a,e),a.sendingState=2,a.messageStatus={errorCode:e.code||de.V2NIM_ERROR_CODE_UNKNOWN},this.service.emit("onSendMessage",a),e}var p=get(i,"content.data.errorCode"),u=Object.assign(Object.assign(Object.assign(Object.assign({},a),i.content.data),a.aiConfig?{aiConfig:Object.assign(Object.assign({},a.aiConfig),(null===(t=i.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,u);var h=u.antispamResult;return h&&(u.messageStatus.errorCode=de.V2NIM_ERROR_CODE_SERVER_ANTISPAM),delete u.antispamResult,this.service.emit("onSendMessage",u),Object.assign(Object.assign({message:u},h?{antispamResult:h}:{}),n?{clientAntispamResult:n}:{})}))}doSendMessageFailed(e,t,r,i){var s=Object.assign(Object.assign({},r),{sendingState:2});this.core.eventBus.emit("forwardSend/V2NIMMessageService/sendMsg",s),this.service.sendMessageFn(s),this.doMsgSendReport(e,t,r,i)}doMsgSendReport(e,t,r,i){t.apiCallingTime=this.core.timeOrigin.getNTPTime(e),t.sendTime=this.core.timeOrigin.getNTPTime();var s=this.core.timeOrigin.getNTPTime(),a=get(i,"detail.reason");this.core.reporter.report("msgSend",{msgId:r.messageServerId,clientId:r.messageClientId,msgTime:r.createTime,fromAccid:r.senderId,toAccid:r.receiverId,type:conversationTypeV2ToV1(r.conversationType),tid:1===r.conversationType?"":r.receiverId,result:i?i.code:200,failReason:a||(null==i?void 0:i.message)||"",rt:s-t.apiCallingTime,apiCallingTime:t.apiCallingTime,sendTime:t.sendTime,attachUploadDuration:t.attachUploadDuration,apiCallbackTime:s})}generateSendMessage(e){var t,r,{conversationId:i,replyMessage:s,resend:a,message:n,params:o}=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(i),m=this.core.V2NIMConversationIdUtil.parseConversationTargetId(i);o.pushConfig&&!0!==o.pushConfig.forcePush&&(delete o.pushConfig.forcePushContent,delete o.pushConfig.forcePushAccountIds);var p={},u={};if(o.aiConfig){var h=get(o,"aiConfig.content.msg"),g=get(o,"aiConfig.content.type")||0;h?u={msg:h,type:g}:void 0===h&&0===n.messageType&&(u={msg:n.text||"",type:g}),(p=Object.assign({aiStreamStatus:0,aiStream:!1},o.aiConfig)).aiStatus=1,void 0!==u.msg&&(p.content=u)}var v=null===(r=null===(t=this.core.V2NIMUserService)||void 0===t?void 0:t.model)||void 0===r?void 0:r.getUser(this.core.account),y=(null==v?void 0:v.updateTime)||0;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n),c),{messageConfig:Object.assign(Object.assign({},n.messageConfig),o.messageConfig),routeConfig:Object.assign(Object.assign({},n.routeConfig),o.routeConfig),pushConfig:Object.assign(Object.assign({},n.pushConfig),o.pushConfig),antispamConfig:Object.assign(Object.assign({},n.antispamConfig),o.antispamConfig),robotConfig:Object.assign(Object.assign({},n.robotConfig),o.robotConfig)}),p&&p.accountId?{aiConfig:p}:{}),n.attachment?{attachment:Object.assign({},n.attachment)}:{}),{resend:a,senderId:this.core.account,conversationType:l,receiverId:m,conversationId:this.core.V2NIMConversationIdUtil.messageConversationId({conversationType:l,senderId:this.core.account,receiverId:m})}),y?{userUpdateTime:y}:{}),{sendingState:3})}}class ModifyUtil{constructor(e,t){this.core=e,this.service=t}checkIfModify(e,t){if("0"===e.messageServerId)throw new V2NIMErrorImpl({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 V2NIMErrorImpl({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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`modifyMessage: messageType ${e.messageType} can not modify attachment`}});var r=["subType","text","serverExtension","attachment"];if(!r.some((e=>void 0!==get(t,e))))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"modifyMessage: missing modified params"}});if(r.every((r=>"attachment"===r?e.attachment&&t.attachment?attachmentToRaw(e.messageType,e.attachment)===attachmentToRaw(e.messageType,t.attachment):!t.attachment:get(e,r)===get(t,r))))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"modifyMessage: no change"}})}prepareMessage(e,t){var r=this.generateSendMessage(e,t),{clientAntispamResult:i,text:s}=this.checkIfAntispam(t,r);return r.text=s,r.clientAntispamHit=!!i&&3===i.operateType,{messageBeforeSend:r,clientAntispamResult:i}}modifyMessage(e,t){return __awaiter(this,void 0,void 0,(function*(){var r;if(1===e.conversationType)r="v2MessageP2pModify";else if(2===e.conversationType)r="v2MessageTeamModify";else{if(3!==e.conversationType)throw new ValidateErrorV2({detail:{reason:`conversationType: ${e.conversationType} is not supported`}});r="v2MessageSuperTeamModify"}var i=yield this.core.sendCmd(r,{tag:e});if(t&&3===t.operateType)return{errorCode:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM,clientAntispamResult:t};var s=Object.assign(Object.assign({},e),i.content.data),a=s.antispamResult;if(a)return Object.assign({errorCode:de.V2NIM_ERROR_CODE_SERVER_ANTISPAM,antispamResult:a},t?{clientAntispamResult:t}:{});delete s.antispamResult;var n=completeMessage(this.core,s);return this.service.model.upsertMessages([n]),this.core.eventBus.emit("V2NIMMessageService/modifyMsg",n),this.core.eventBus.emit("forwardSend/V2NIMMessageService/modifyMsg",n),Object.assign(Object.assign({errorCode:200,message:n},a?{antispamResult:a}:{}),t?{clientAntispamResult:t}:{})}))}checkIfAntispam(e,t){var r,i=t.text;if(e.clientAntispamEnabled&&(0===t.messageType||10===t.messageType))if(1===(r=this.core.V2NIMClientAntispamUtil.checkTextAntispam?this.core.V2NIMClientAntispamUtil.checkTextAntispam(t.text||"",e.clientAntispamReplace):{operateType:0,replacedText:""}).operateType)i=r.replacedText;else if(2===r.operateType)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_CLIENT_ANTISPAM,detail:{reason:"sendMessage: text intercepted by client antispam"}});return{clientAntispamResult:r,text:i}}generateSendMessage(e,t){var r;return Object.assign(Object.assign({messageConfig:{lastMessageUpdateEnabled:null===(r=e.messageConfig)||void 0===r?void 0:r.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 DeleteUtil{constructor(e,t){this.emitRevokeMessage=e=>{var t=e.map((e=>{var t=formatRevokeMessage(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 __awaiter(this,void 0,void 0,(function*(){if(validate(pa,{message:e,params:t},"",!0),validateConversationId(this.core.account,e.conversationId),1===e.conversationType&&e.senderId!==this.core.account)throw new V2NIMErrorImpl({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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"revokeMessage: cannot revoke message with invalid messageServerId: "+e.messageServerId}});var r=3===e.conversationType?"v2RevokeSuperTeamMessage":"v2RevokeMessage",i={1:7,2:8,3:12},s=Object.assign(Object.assign(Object.assign({},e),t),{attach:t&&t.serverExtension,sysMsgType:i[e.conversationType],opeAccount:this.core.account});yield this.core.sendCmd(r,{tag:s});var a={1:1,2:2,3:3},n=[JSON.parse(JSON.stringify({postscript:t&&t.postscript,revokeType:a[e.conversationType],revokeAccountId:this.core.account,serverExtension:t&&t.serverExtension,messageRefer:formatMessageRefer(this.core,e)}))];this.revokeMessagesFn(n),this.core.eventBus.emit("forwardSend/V2NIMMessageService/revokeMessage",s)}))}deleteMessage(e,t){return __awaiter(this,void 0,void 0,(function*(){if(validate(va,e,"",!0),3===e.sendingState)this.service.fileUtil.cancelMessageAttachmentUpload(e);else if(1!==e.sendingState&&2!==e.sendingState)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`deleteMessage: cannot delete message with sendingState: ${e.sendingState}`}});var r={messageRefer:formatMessageRefer(this.core,e),serverExtension:t},i=this.core.timeOrigin.getNTPTime();e.messageServerId&&"0"!==e.messageServerId&&1===e.sendingState&&(i=(yield this.core.sendCmd("v2DeleteMessage",{tag:r})).content.timetag);var s=[{serverExtension:t,messageRefer:formatMessageRefer(this.core,e),deleteTime:i}];this.core.eventBus.emit("forwardSend/V2NIMMessageService/deleteSelfMsgs",[Object.assign(Object.assign({},r),{deleteTime:i})]),this.deleteMessagesFn(s)}))}deleteMessages(e,t){return __awaiter(this,void 0,void 0,(function*(){validate(ya,{messages:e},"",!0);var r=[],i=[];if(0===e.length)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"deleteMessages: message array length is 0"}});for(var s=e[0].conversationId,a=0;a<e.length;a++){if(3===e[a].sendingState)this.service.fileUtil.cancelMessageAttachmentUpload(e[a]);else if(1!==e[a].sendingState&&2!==e[a].sendingState)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`deleteMessages: sendingState incorrect:${e[a].sendingState}, please check message at index: ${a}`}});if(a>=1&&e[a].conversationId!==s)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"deleteMessages: only allow to delete messages from same conversation"}});e[a].messageServerId&&"0"!==e[a].messageServerId?r.push(e[a]):i.push(e[a])}var n=this.core.timeOrigin.getNTPTime(),o=[...i];try{if(r.length>0){var c=yield this.core.sendCmd("v2DeleteMessages",{tag:r.map((e=>({messageRefer:e,serverExtension:t})))});n=c.content.timetag,o=[...o,...r]}}catch(e){if(0===i.length)throw e;this.logger.warn("V2NIMMessageService:deleteMessages: delete messages with serverId failed")}var d=o.map((e=>({serverExtension:t,messageRefer:formatMessageRefer(this.core,e),deleteTime:n})));this.core.eventBus.emit("forwardSend/V2NIMMessageService/deleteSelfMsgs",o.map((e=>({messageRefer:e,serverExtension:t,deleteTime:n})))),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 AIUtil{constructor(e,t){this.core=e,this.service=t,this.logger=e.logger}stopAIStreamMessage(e,t){var r;return __awaiter(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===(r=e.aiConfig)||void 0===r?void 0:r.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 r,i,s,a,n,o,c,d;return __awaiter(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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:`msg::regenAIMessage streamCache is not complete, msgId:${e.messageClientId}`}})}else if(-1===(null===(r=e.streamConfig)||void 0===r?void 0:r.status)||1===(null===(i=e.streamConfig)||void 0===i?void 0:i.status))throw new V2NIMErrorImpl({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===(a=e.threadReply)||void 0===a?void 0:a.senderId,replyMsgToAccount:null===(n=e.threadReply)||void 0===n?void 0:n.receiverId,replyMsgTime:null===(o=e.threadReply)||void 0===o?void 0:o.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 V2NIMErrorImpl({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 V2NIMMMessageHandlerImpl{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=fillIdServer(e,e.content.msg,"messageServerId"),{_conversationOnlineSyncNotify:r,_conversationOnlineSyncData:i}=t,s=__rest(t,["_conversationOnlineSyncNotify","_conversationOnlineSyncData"]),a=completeMessage(this.core,s,1),n=this.service._filterMessage(a);this.logger.log(`v2OnMsgHandler::recvMsg ${a.messageClientId}/${a.messageServerId}/${a.createTime};isHitFilter:${n}`),3===a.conversationType?this.core.eventBus.emit("V2NIMSync/updateTimetag",{superTeamRoamingMsgs:a.createTime,offlineMsgs:a.createTime}):this.core.eventBus.emit("V2NIMSync/updateTimetag",{roamingMsgs:a.createTime,offlineMsgs:a.createTime}),this.service.config.compatibleWithV1||(this.service.markMsgsAck([a]),this.service.sendUtil.doMsgReceiveReport(a,e)),delete a.__clientExt,this.setAIStreamPlaceholder([a]),5!==a.messageType&&this.core.V2NIMUserService.checkUserUpdate&&this.core.V2NIMUserService.checkUserUpdate(a,a.userUpdateTime),5===a.messageType&&this.core.eventBus.emit("V2NIMTeamService/notification",t),n||(this.service.emit("onReceiveMessages",[a]),this.model.upsertMessages([a]),r&&this.core.eventBus.emit("V2NIMConversationService/conversationOnlineSyncNotify",{content:{info:JSON.parse(r),data:JSON.parse(i)}},a),this.core.eventBus.emit("V2NIMMessageService/onMsg",a))}syncOfflineMsgsHandler(e){var t=e.content.datas;t=t.map((e=>completeMessage(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=>completeMessage(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)}syncP2pMessagReceiptsV2Handler(e){this.receiptUtil.syncP2pMessagReceiptsV2Handler(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,r={serverExtension:t.serverExtension,deleteTime:t.deleteTime,messageRefer:completeMessageRefer(this.core,t.messageRefer)};this.service.deleteUtil.deleteMessagesFn([r])}onDeleteMessagesHandler(e){var t=e.content.data.map((e=>({serverExtension:e.serverExtension,deleteTime:e.deleteTime,messageRefer:completeMessageRefer(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:completeMessageRefer(this.core,e.messageRefer)})));this.service.emit("onMessageDeletedNotifications",t)}v2MessageOnModifiedHandler(e){var t=completeMessage(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=>completeMessage(this.core,e))).filter((e=>{var t,r=(null===(t=this.model.getMessageById(e.messageClientId))||void 0===t?void 0:t.modifyTime)||0;return(e.modifyTime||0)>r}));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 V2NIMMessageEventImpl{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 r,i,s,a=`${this.service.name}::emit ${e.toString()}`;if("onSendMessage"===e){var n=t[0];this.logger.log(`${a}`,`${n.messageClientId}/${n.messageServerId}/${n.createTime};`,`sendingState:${n.sendingState};attachmentUploadState:${n.attachmentUploadState||0};messageStatus:${null===(r=n.messageStatus)||void 0===r?void 0:r.errorCode};config.lastMsg:${null===(i=n.messageConfig)||void 0===i?void 0:i.lastMessageUpdateEnabled};config.unread:${null===(s=n.messageConfig)||void 0===s?void 0:s.unreadEnabled}`)}else if("onReceiveMessages"===e||"onReceiveMessagesModified"===e){var o=t[0];this.logger.log(`${a}`,o.map((e=>{var t,r;return`${e.messageClientId}/${e.messageServerId}/${e.createTime};config.lastMsg:${null===(t=e.messageConfig)||void 0===t?void 0:t.lastMessageUpdateEnabled};config.unread:${null===(r=e.messageConfig)||void 0===r?void 0:r.unreadEnabled}`})))}else if("onMessageRevokeNotifications"===e){var c=t[0];this.logger.log(`${a}`,c.map((e=>`msg:${e.messageRefer.messageClientId}/${e.messageRefer.messageServerId};revokeAccountId:${e.revokeAccountId}`)))}else if("onMessageDeletedNotifications"===e){var d=t[0];this.logger.log(`${a}`,d.map((e=>`msg:${e.messageRefer.messageClientId}/${e.messageRefer.messageServerId};deleteTime:${e.deleteTime}`)))}else this.logger.log(`${a}`,...t)}}class V2NIMMessageServiceImpl extends V2Service{constructor(e,t={}){super("V2NIMMessageService",e),this.customAttachmentParsers=[],this.config={compatibleWithV1:!0},this.filterFn=void 0,this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),this.core._registerDep(V2NIMMessageCreatorImpl,"V2NIMMessageCreator"),this.core._registerDep(V2NIMMessageAttachmentCreatorImpl,"V2NIMMessageAttachmentCreator"),this.core._registerDep(V2NIMClientAntispamUtilImpl,"V2NIMClientAntispamUtil"),this.receiptUtil=new ReceiptUtil(this.core,this),this.fileUtil=new FileUtil(this.core),this.sendUtil=new SendUtil(this.core,this),this.modifyUtil=new ModifyUtil(this.core,this),this.deleteUtil=new DeleteUtil(this.core,this),this.aiUtil=new AIUtil(this.core,this),this.model=new V2NIMMessageModelImpl,this.event=new V2NIMMessageEventImpl(this.core,this),this.handler=new V2NIMMMessageHandlerImpl(this.core,this),"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:rn,cmdConfig:mn}),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 V2NIMErrorImpl({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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2NIMMessageExtendUtil is not registered"}})}getMessageList(e){return __awaiter(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),t=this._filterMessagesByFn(t)}))}getMessageListEx(e){return __awaiter(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,r,i){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.addQuickComment(e,t,r,i)}removeQuickComment(e,t,r){return this.checkV2(),this.checkExtendUtil(),this.core.V2NIMMessageExtendUtil.removeQuickComment(e,t,r)}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 __awaiter(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=[],r=[];e.forEach((e=>{e.senderId===this.core.account&&e.senderId!==e.receiverId||(1===e.conversationType?t.push(e):2===e.conversationType&&r.push(e))})),t.length>0&&this.core.sendCmd("v2BatchMarkRead",{sid:7,cid:2,ids:t.map((e=>e.messageServerId))}),r.length>0&&this.core.sendCmd("v2BatchMarkRead",{sid:8,cid:3,ids:r.map((e=>e.messageServerId))})}}sendMessage(e,t,r={},i){var s;return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate({message:{type:"object"}},{message:e},"",!0),e.messageClientId=e.messageClientId||Me(),e.conversationId&&e.conversationId!==t)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"sendMessage: message.conversationId is not equal to conversationId"}});validate(ma,{conversationId:t,message:e,params:r},"",!0),validateConversationId(this.core.account,t);var a=this.core.V2NIMConversationIdUtil.parseConversationType(t);if((2===a||3===a)&&r.robotConfig&&!r.robotConfig.accountId)throw new ValidateErrorV2({detail:{reason:"When conversationType is team or superTeam, account is required in robotInfo account is required"}});if(2!==a&&3!==a||!r.targetConfig)r.targetConfig=void 0;else{var n=r.targetConfig.receiverIds;if(3===a&&!1===r.targetConfig.inclusive)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"setting inclusive to false for super teams is not allowed"}});if(0===(n=n.filter((e=>e&&e!==this.core.account))).length)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"receiverIds cannot be empty or only contain yourself"}});r.targetConfig.receiverIds=n}(null===(s=r.aiConfig)||void 0===s?void 0:s.aiStream)&&this.aiUtil.checkAI();var o,c=this.core.timeOrigin.getTimeNode(),{messageBeforeSend:d,clientAntispamResult:l,hiddenParams:m}=this.sendUtil.prepareMessage(e,t,r);this.logger.log(`V2SendMessage start:${d.messageClientId}/${d.createTime};conversation:${t};`,`NTPTime:${this.core.timeOrigin.getNTPTime(c)}`);try{o=yield this.sendUtil.doSendMessage({apiCallingTimeNode:c,messageBeforeSend:d,clientAntispamResult:l,hiddenParams:m,progress:i})}catch(e){throw this.logger.warn(`V2SendMessage end:${d.messageClientId}.`,e instanceof V2NIMErrorImpl?`failed:${e.code}`:"failed"),e}return o.message.senderId===o.message.receiverId&&this.markMsgsAck([o.message]),this.logger.log(`V2SendMessage end:${o.message.messageClientId}/${o.message.messageServerId}/${o.message.createTime}`),o}))}replyMessage(e,t,r={},i){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate({message:{type:"object"}},{message:e},"",!0),e.messageClientId=e.messageClientId||Me(),validate(la,{message:e,replyMessage:t,params:r},"",!0),validateConversationId(this.core.account,t.conversationId),(2===e.conversationType||3===e.conversationType)&&r.robotConfig&&!r.robotConfig.accountId)throw new ValidateErrorV2({detail:{reason:"When conversationType is team or superTeam, account is required in robotInfo account is required"}});var s=this.core.timeOrigin.getTimeNode(),{messageBeforeSend:a,clientAntispamResult:n,hiddenParams:o}=this.sendUtil.prepareMessage(e,t.conversationId,r,t),c=yield this.sendUtil.doSendMessage({apiCallingTimeNode:s,messageBeforeSend:a,clientAntispamResult:n,hiddenParams:o,progress:i});return c.message.senderId===c.message.receiverId&&this.markMsgsAck([c.message]),c}))}modifyMessage(e,t){this.checkV2(),this.checkLogin(),validate(xa,e,"message",!0),validate(qa,t,"params",!0),this.modifyUtil.checkIfModify(e,t);var{messageBeforeSend:r,clientAntispamResult:i}=this.modifyUtil.prepareMessage(e,t);return this.modifyUtil.modifyMessage(r,i)}stopAIStreamMessage(e,t){if(this.checkV2(),this.aiUtil.checkAI(),validate(Ba,e,"message",!0),validate(Fa,t,"params",!0),2===t.operationType&&!t.updateContent)throw new V2NIMErrorImpl({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(),validate(Ba,e,"message",!0),validate(ja,t,"params",!0),this.aiUtil.regenAIMessage(e,t)}sendMessageFn(e){if(e.msgAckSnapshot){var t=e.msgAckSnapshot,r={conversationId:e.conversationId,messageServerId:e.messageServerId,messageClientId:e.messageClientId,readCount:0,unreadCount:Number(t)};delete e.msgAckSnapshot,this.emit("onReceiveTeamMessageReadReceipts",[r])}e=formatMessageAttachment(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 r=ve.localStorage.getItem(`nim_${this.core.account}_${e}_clearTime`),i=r?parseInt(r):0;return i>0?t.filter((e=>e.createTime>=i)):t}}var Tn={super_team:3,p2p:1,team:2},_n={3:"super_team",1:"p2p",0:"p2p",2:"team"};function getConvInfoFromSessionId(e,t="|"){var r=e.indexOf(t);if(-1===r)return{target:"",type:0};var i=e.slice(0,r);return{target:e.slice(r+1),type:Tn[i]||0}}function getSessionIdFromConvInfo(e,t){return`${_n[e]}|${t}`}class V2NIMLocalConversationModelImpl{constructor(){this.map=new Map,this.capacity=1e4,this.readTimeMap=new Map,this.stickTopMap=new Map}reset(){this.map.clear(),this.readTimeMap.clear(),this.stickTopMap.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)}getAll(){return Array.from(this.map.values()).sort(((e,t)=>t.sortOrder-e.sortOrder))}getStickTopList(){return Array.from(this.map.values()).filter((e=>e.stickTop)).sort(((e,t)=>t.sortOrder-e.sortOrder))}getByOption(e,t,r){var{conversationTypes:i,onlyUnread:s}=r,a=[];this.map.forEach((e=>{i&&i.length>0&&!i.includes(e.type)||s&&!e.unreadCount||r.ignoreMuted&&e.mute||a.push(e)})),a=a.sort(((e,t)=>t.sortOrder-e.sortOrder));var n=0;e>0&&(n=findIndexWithinTargetValue(a,"sortOrder",e),a[n]&&a[n].sortOrder===e&&(n+=1));var o=a.slice(n).length;return(a=a.slice(n,n+t)).length>0?{offset:o>t?a[a.length-1].sortOrder:0,finished:!(o>t),conversationList:a}:{offset:0,finished:!0,conversationList:a}}upsert(e){var t=e.conversationId,r=this.map.get(t);if(!r){var i=this.processConversation(Object.assign({stickTop:this.getStickTop(t),localExtension:"",lastMessage:null,unreadCount:0,sortOrder:0,createTime:0,updateTime:0},e));return this.setLRU(t,i),i.unreadCount>0}var s=e.unreadCount!==r.unreadCount,a=Object.assign({},r,e);return a=this.processConversation(a),this.setLRU(t,a),s}setLRU(e,t){if(this.map.has(e))this.map.delete(e);else if(this.map.size>=this.capacity){var r=this.map.keys().next().value;r&&this.map.delete(r)}this.map.set(e,t)}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}updateStickTop(e,t){t?this.stickTopMap.set(e,!0):this.stickTopMap.delete(e)}getStickTop(e){return this.stickTopMap.get(e)||!1}}var Cn,En={"4_14":"v2LocalConvSyncReadTime","4_20":"v2LocalConvSyncSuperTeamReadTime","4_33":"v2LocalConvSyncP2pReadTimeV2","4_34":"v2LocalConvSyncTeamReadTimeV2","4_35":"v2LocalConvSyncSuperTeamReadTimeV2","4_22":"v2LocalConvSyncMoreRoaming","4_23":"v2LocalConvSyncStickTop","4_25":"v2LocalConvSyncReliableInfo","7_16":"v2LocalConvMarkReadTime","7_25":"v2LocalConvMultiMarkReadTime","7_116":"v2LocalConvMultiSyncReadTime","21_25":"v2LocalConvSuperTeamMarkReadTime","21_32":"v2LocalConvSuperTeamMultiMarkReadTime","21_125":"v2LocalConvSuperTeamMultiSyncReadTime","33_12":"v2LocalConvStickTopAdd","33_13":"v2LocalConvStickTopDelete","23_112":"v2LocalConvStickTopMultiSyncAdd","23_113":"v2LocalConvStickTopMultiSyncDelete","23_114":"v2LocalConvStickTopMultiSyncUpdate"},bn="V2NIMLocalConversationService",Nn={id:1,ext:2,createTime:{id:3,retType:"number"},updateTime:{id:4,retType:"number"}},An={scene:1,to:2,timetag:3},Rn={actionTime:1},On={minTimetag:{id:1,retType:"number"},maxTimetag:{id:2,retType:"number"}},kn={id:1,msgTime:{id:2,retType:"number"}},wn={v2LocalConvSyncReadTime:{sid:4,cid:14,service:bn,response:[{type:"StrLongMap",name:"p2p"},{type:"LongLongMap",name:"team"},{type:"Long",name:"timetag"}]},v2LocalConvSyncSuperTeamReadTime:{sid:4,cid:20,service:bn,response:[{type:"LongLongMap",name:"superTeam"}]},v2LocalConvSyncP2pReadTimeV2:{sid:4,cid:33,service:bn,response:[{type:"Property",name:"ctx",reflectMapper:invertSerializeItem(On)},{type:"PropertyArray",name:"contents",reflectMapper:invertSerializeItem(kn)}]},v2LocalConvSyncTeamReadTimeV2:{sid:4,cid:34,service:bn,response:[{type:"Property",name:"ctx",reflectMapper:invertSerializeItem(On)},{type:"PropertyArray",name:"contents",reflectMapper:invertSerializeItem(kn)}]},v2LocalConvSyncSuperTeamReadTimeV2:{sid:4,cid:35,service:bn,response:[{type:"Property",name:"ctx",reflectMapper:invertSerializeItem(On)},{type:"PropertyArray",name:"contents",reflectMapper:invertSerializeItem(kn)}]},v2LocalConvSyncMoreRoaming:{sid:4,cid:22,service:bn,response:[]},v2LocalConvSyncStickTop:{sid:4,cid:23,service:bn,response:[{type:"Long",name:"timetag"},{type:"Bool",name:"isThereAnyChange"},{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Nn)}]},v2LocalConvSyncReliableInfo:{sid:4,cid:25,service:bn,response:[]},v2LocalConvMarkReadTime:{sid:7,cid:16,service:bn,params:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Rn)}]},v2LocalConvMultiMarkReadTime:{sid:7,cid:25,service:bn,ignoreErrCodes:[700],params:[{type:"PropertyArray",name:"tags",reflectMapper:An}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(An)},{type:"Property",name:"data",reflectMapper:invertSerializeItem(Rn)}]},v2LocalConvMultiSyncReadTime:{sid:7,cid:116,service:bn,response:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"},{type:"Long",name:"actionTime"}]},v2LocalConvSuperTeamMarkReadTime:{sid:21,cid:25,service:bn,params:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Rn)}]},v2LocalConvSuperTeamMultiMarkReadTime:{sid:21,cid:32,service:bn,ignoreErrCodes:[700],params:[{type:"PropertyArray",name:"tags",reflectMapper:An}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(An)},{type:"Property",name:"data",reflectMapper:invertSerializeItem(Rn)}]},v2LocalConvSuperTeamMultiSyncReadTime:{sid:21,cid:125,service:bn,response:[{type:"Long",name:"to"},{type:"Long",name:"timetag"},{type:"Long",name:"actionTime"}]},v2LocalConvStickTopAdd:{sid:33,cid:12,service:bn,params:[{type:"Property",name:"tag",reflectMapper:Nn}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Nn)}]},v2LocalConvStickTopDelete:{sid:33,cid:13,service:bn,params:[{type:"Property",name:"tag",reflectMapper:Nn}],response:[{type:"Long",name:"timetag"}]},v2LocalConvStickTopMultiSyncAdd:{sid:23,cid:112,service:bn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Nn)}]},v2LocalConvStickTopMultiSyncDelete:{sid:23,cid:113,service:bn,response:[{type:"Long",name:"timetag"},{type:"Property",name:"data",reflectMapper:invertSerializeItem(Nn)}]},v2LocalConvStickTopMultiSyncUpdate:{sid:23,cid:114,service:bn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Nn)}]}};class V2NIMLocalConversationUnreadImpl{constructor(e,t){this.totalUnreadCount=void 0,this.unreadCountByFilter={},this.currentConversationId=void 0,this._setCurrConvThrottle=throttle((()=>{this.currentConversationId&&this._setCurrConv(this.currentConversationId)}),5e3,{leading:!1}),this.core=e,this.service=t,this.model=t.model,this.logger=t.logger}reset(){this.totalUnreadCount=void 0,this.unreadCountByFilter={},this.currentConversationId=void 0,this._setCurrConvThrottle.flush()}getTotalUnreadCount(){return this.totalUnreadCount||0}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||0,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),r=this.getUnreadCountByFilter(t),i=this.unreadCountByFilter[e];this.unreadCountByFilter[e]=r,t.equals=equals$1.bind(t),i!==r&&this.service.emit("onUnreadCountChangedByFilter",t,r)}))}clearUnreadCount(e){var t=e.reduce(((e,t)=>(this.service.model.upsert({conversationId:t.conversationId,type:t.type,unreadCount:0})&&e.push(t.conversationId),e)),[]);if(t.length>0){var r=t.map((e=>this.service.model.getById(e)));this.service.triggerConversationChanged(r),this.digestUnreadCountChange()}}getUnreadCountByIds(e){return(e=uniq(e)).reduce(((e,t)=>{var r=this.service.model.getById(t);return e+(r&&r.unreadCount||0)}),0)}getUnreadCountByFilter(e){var t=this.service.model.count();return this.service.model.getByOption(0,t,{conversationTypes:e.conversationTypes,ignoreMuted:e.ignoreMuted}).conversationList.reduce(((e,t)=>e+(t.unreadCount||0)),0)}isMessageUnread(e,t=0){var r;return e.createTime>t&&e.senderId!==this.core.account&&!1!==(null===(r=e.messageConfig)||void 0===r?void 0:r.unreadEnabled)}isMessageReferUnread(e,t=0){var r=this.core.V2NIMMessageService.model.getMessageById(e.messageClientId);return r?this.isMessageUnread(r,t):e.createTime>t&&e.senderId!==this.core.account}countUnreadByMessageInMemory(e,t=0){var r=0;return this.core.V2NIMMessageService.model.getMessagesByConversationId(e).forEach((e=>{this.isMessageUnread(e,t)&&r++})),r}addFilter(e){var t=generateFilterKey$1(e);if(void 0!==this.unreadCountByFilter[t])throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_ALREADY_EXIST});var r=JSON.parse(t),i=this.getUnreadCountByFilter(r);this.unreadCountByFilter[t]=i,this.service.emit("onUnreadCountChangedByFilter",r,i)}deleteFilter(e){var t=generateFilterKey$1(e);if(void 0===this.unreadCountByFilter[t])throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST});delete this.unreadCountByFilter[t]}markConversationRead(e){return __awaiter(this,void 0,void 0,(function*(){var t=this.model.getById(e),r=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e),i=this.core.V2NIMConversationIdUtil.parseConversationType(e),s=this.model.getReadTime(e);if(!t)return s||this.core.timeOrigin.getNTPTime();var a=this.service.compute.computeReadTimeForMark(t);return s>=a?(this.logger.log(`V2LocalConv::markConversationRead currentReadTime >= readTime ${e},${s},${a}`),s):(3===i?yield this.core.sendCmd("v2LocalConvSuperTeamMarkReadTime",{timetag:a,to:r}):yield this.core.sendCmd("v2LocalConvMarkReadTime",{scene:1===i?0:2===i?1:2,timetag:a,to:r}),this.model.updateReadTime(e,a),a)}))}markMultiConversationRead(e){return __awaiter(this,void 0,void 0,(function*(){var t={cmd:"v2LocalConvSuperTeamMultiMarkReadTime",params:[]},r={cmd:"v2LocalConvMultiMarkReadTime",params:[]};e.forEach((e=>{var i=this.model.getById(e);if(i){var s=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e),a=this.core.V2NIMConversationIdUtil.parseConversationType(e),n=this.model.getReadTime(e),o=this.service.compute.computeReadTimeForMark(i);if(!(n>=o)){var c={conversationId:e,scene:1===a?0:2===a?1:2,timetag:o,to:s};3===a?t.params.push(c):r.params.push(c)}}}));var i=chunk(t.params,50),s=chunk(r.params,50);for(var a of i){try{yield this.core.sendCmd(t.cmd,{tags:a})}catch(e){this.logger.warn("markMultiConversationRead::error:",a.map((e=>e.conversationId)),e)}a.forEach((e=>{this.model.updateReadTime(e.conversationId,e.timetag)}))}for(var n of s){try{yield this.core.sendCmd(r.cmd,{tags:n})}catch(e){this.logger.warn("markMultiConversationRead::error:",n.map((e=>e.conversationId)),e)}n.forEach((e=>{this.model.updateReadTime(e.conversationId,e.timetag)}))}}))}setCurrentConversation(e){var t=this.currentConversationId;this.currentConversationId=e,this.currentConversationId&&this._setCurrConv(this.currentConversationId),t&&t!==this.currentConversationId&&(this._setCurrConvThrottle.flush(),this._setCurrConv(t))}_setCurrConv(e){var t=this.model.getById(e),r=(null==t?void 0:t.unreadCount)||0;t&&(t.unreadCount=0),t&&r>0&&(this.service.triggerConversationChanged([t]),this._digest()),this.markConversationRead(e).catch((e=>{this.logger.warn("_setConv markRead failed",e)}))}}function generateFilterKey$1(e){var{conversationTypes:t}=e;return t&&(t=t.sort()),JSON.stringify({conversationGroupId:e.conversationGroupId,conversationTypes:t,ignoreMuted:e.ignoreMuted})}function equals$1(e){return JSON.stringify(this)===generateFilterKey$1(e)}function formatLastMessageFromMessage(e,t,r=0,i){var s,a;t=formatMessageAttachment(t,e);var{messageType:n,subType:o,text:c,attachment:d,serverExtension:l}=t,m="";if(t.senderId!==e.account&&5!==n){m=get(t,"fromNick");var p=null===(a=null===(s=e.V2NIMFriendService)||void 0===s?void 0:s.model)||void 0===a?void 0:a.getFriend(t.senderId);p&&p.alias&&(m=p.alias)}return JSON.parse(JSON.stringify({lastMessageState:r,messageRefer:formatMessageRefer(e,t),messageType:n,subType:o,text:c,attachment:d,serverExtension:l,callbackExtension:t.callbackExtension,sendingState:i,senderName:m}))}function formatConversationFields(e,t){return t&&t.length>0?t.map((t=>formatConversationField(e,t))):[]}function formatConversationField(e,t){var r=t;if("string"==typeof r.lastMessage)if(""===r.lastMessage);else if(1===r.lastMessageState){var i=formatRevokeMessage(e,deserialize(JSON.parse(r.lastMessage),invertSerializeItem(dn)));r.lastMessage=function formatLastMessageFromNotification(e,t){var{messageRefer:r,revokeAccountId:i,revokeType:s,callbackExtension:a,serverExtension:n,postscript:o}=t,c=function calcSenderNameFromNotification(e,t,r,i){var s,a,n,o,c,d,l,m;if(t!==e.account){var p=null===(a=null===(s=e.V2NIMFriendService)||void 0===s?void 0:s.model)||void 0===a?void 0:a.getFriend(t);if(p&&p.alias)return p.alias;if(2===r){var u=null===(o=null===(n=e.V2NIMTeamService)||void 0===n?void 0:n.memberModel)||void 0===o?void 0:o.getById(i,1,t);if(u&&u.teamNick)return u.teamNick}else if(3===r){var h=null===(d=null===(c=e.V2NIMTeamService)||void 0===c?void 0:c.memberModel)||void 0===d?void 0:d.getById(i,1,t);if(h&&h.teamNick)return h.teamNick}var g=null===(m=null===(l=e.V2NIMUserService)||void 0===l?void 0:l.model)||void 0===m?void 0:m.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:r,revokeAccountId:i,revokeType:s,callbackExtension:a,serverExtension:n,text:o||"",senderName:c}))}(e,i)}else if(0===r.lastMessageState){var s=deserialize(JSON.parse(r.lastMessage),invertSerializeItem(sn));r.lastMessage=formatLastMessageFromMessage(e,s,r.lastMessageState,s.senderId===e.account?1:void 0)}else 2===r.lastMessageState&&delete r.lastMessage;return r}function formatConversationByField(e){var{version:t,deleteFlag:r}=e;return{conversation:__rest(e,["version","deleteFlag"]),version:t,deleteFlag:r}}!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"}(Cn||(Cn={}));class V2NIMLocalConversationComputeImpl{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)}computeFromExternal(e){var t,r,i;if(0===e.type)return e;var s=this.core.V2NIMConversationIdUtil.parseConversationType(e.conversationId),a=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e.conversationId),n={};if((null===(t=this.core.V2NIMSettingService)||void 0===t?void 0:t.name)&&(n.mute=this.core.V2NIMSettingService.getConversationMuteStatus(e.conversationId)),1===s&&this.hasUserService){var o,c=this.core.V2NIMUserService.model.getUser(a),d=this.hasFriendService?this.core.V2NIMFriendService.model.getFriend(a):void 0;e.conversationId===(null===(r=e.lastMessage)||void 0===r?void 0:r.messageRefer.conversationId)&&(o=null===(i=e.lastMessage)||void 0===i?void 0:i.senderName),n.name=(null==d?void 0:d.alias)||(null==c?void 0:c.name)||o||a,n.avatar=(null==c?void 0:c.avatar)||""}else if(2===s&&this.hasTeamService){var l=this.core.V2NIMTeamService.model.getById(a,1);n.name=(null==l?void 0:l.name)||a,n.avatar=(null==l?void 0:l.avatar)||""}else if(3===s&&this.hasTeamService){var m=this.core.V2NIMTeamService.model.getById(a,2);n.name=(null==m?void 0:m.name)||a,n.avatar=(null==m?void 0:m.avatar)||""}return Object.assign(e,n),e}computeSortOrder(e,t){return t?e?t+1e15:t:e?1e15:0}computeReadTimeForMark(e){var t,r,i,s=e.conversationId,a=this.service.model.getReadTime(s);if(null===(r=null===(t=null==e?void 0:e.lastMessage)||void 0===t?void 0:t.messageRefer)||void 0===r?void 0:r.createTime)i=e.lastMessage.messageRefer.createTime;else{if(0===e.unreadCount&&a>0)return a;if(!this.core.timeOrigin.checkNodeReliable())return a||0;i=this.core.timeOrigin.getNTPTime()}return i}computeConvWithLastMsg(e,t){var r,i=t||this.core.V2NIMMessageService.model.getLastMessageOfConversation(e.conversationId);if(i&&!1!==(null===(r=i.messageConfig)||void 0===r?void 0:r.lastMessageUpdateEnabled)){var s=formatLastMessageFromMessage(this.core,i,0,i.sendingState);e.lastMessage=s,e.createTime=e.createTime||i.createTime,e.updateTime=i.createTime,e.sortOrder=this.computeSortOrder(e.stickTop,i.createTime)}return e}computeConvWithUnread(e,t){var r=this.service.model.getReadTime(e.conversationId),i=this.service.unread.currentConversationId;if(i&&(null==t?void 0:t.conversationId)===i)return e.unreadCount=0,this.service.unread._setCurrConvThrottle(),e;var s=e.unreadCount||0;return t?t&&this.service.unread.isMessageUnread(t)&&(s+=1):s=this.service.unread.countUnreadByMessageInMemory(e.conversationId,r),e.unreadCount=s,e}computeConvByMsgsCache(e,t){var r,i=this.service.model.getById(e),s=this.core.V2NIMConversationIdUtil.parseConversationType(e),a=this.core.V2NIMMessageService.model.getLastMessageOfConversation(e),n=null==t?void 0:t.updateTime,o=0;o=n||(a&&a.createTime?a.createTime:i&&i.updateTime?i.updateTime:this.core.timeOrigin.getNTPTime());var c=this.service.model.getStickTop(e),d=Object.assign(Object.assign({conversationId:e,type:s,stickTop:c,localExtension:(null==i?void 0:i.localExtension)||"",lastMessage:null,unreadCount:0},t),{createTime:(null==i?void 0:i.createTime)||o,updateTime:o,sortOrder:this.computeSortOrder(c,o)});if(a&&!1!==(null===(r=a.messageConfig)||void 0===r?void 0:r.lastMessageUpdateEnabled)){var l=formatLastMessageFromMessage(this.core,a,0,a.sendingState);d.lastMessage=l}return d}}class V2NIMLocalConversationHandlerImpl{constructor(e,t){this.core=e,this.service=t,this.model=this.service.model,this.unread=this.service.unread,this.logger=this.core.logger}v2LocalConvSyncStickTopHandler(e){var{timetag:t,isThereAnyChange:r,datas:i}=e.content;if(r){var s=this.model.getAll(),a=i.map((e=>{var{target:t,type:r}=getConvInfoFromSessionId(e.id),i=this.core.V2NIMConversationIdUtil.conversationId(r,t);return this.model.updateStickTop(i,!0),i}));s.forEach((e=>{a.includes(e.conversationId)?(e.stickTop=!0,e.updateTime=e.updateTime>t?e.updateTime:t):e.stickTop=!1,this.model.updateStickTop(e.conversationId,e.stickTop)})),this.model.bulkUpsert(s)}}v2LocalConvSyncReadTimeHandler(e){var t=e.content.p2p||{},r=e.content.team.m_map||{};this.logger.log("v2SyncLocalConvAck::",t,r),Object.keys(t).forEach((e=>{var r=this.core.V2NIMConversationIdUtil.p2pConversationId(e),i=this.model.getReadTime(r);t[e]>i&&(this.model.updateReadTime(r,t[e]),this.service.emit("onConversationReadTimeUpdated",r,t[e]))})),Object.keys(r).forEach((e=>{var t=this.core.V2NIMConversationIdUtil.teamConversationId(e),i=this.model.getReadTime(t);r[e]>i&&(this.model.updateReadTime(t,r[e]),this.service.emit("onConversationReadTimeUpdated",t,r[e]))}))}v2LocalConvSyncSuperTeamReadTimeHandler(e){var t=e.content.superTeam.m_map;this.logger.log("v2SyncLocalSuperTeamConvAck::",t),Object.keys(t).forEach((e=>{var r=this.core.V2NIMConversationIdUtil.superTeamConversationId(e),i=this.model.getReadTime(r);t[e]>i&&(this.model.updateReadTime(r,t[e]),this.service.emit("onConversationReadTimeUpdated",r,t[e]))}))}v2LocalConvSyncP2pReadTimeV2Handler(){}v2LocalConvSyncTeamReadTimeV2Handler(){}v2LocalConvSyncSuperTeamReadTimeV2Handler(){}v2LocalConvMultiSyncReadTimeHandler(e){var t=e.content,r=`${0===t.scene?"p2p":1===t.scene?"team":"super_team"}-${t.to}`,{type:i,target:s}=getConvInfoFromSessionId(r,"-"),a=this.core.V2NIMConversationIdUtil.conversationId(i,s),n=this.model.getById(a),o=null==n?void 0:n.unreadCount,c=this.model.getReadTime(a);t.timetag<=c?this.logger.warn(`v2LocalConvMultiSyncReadTimeHandler: ${a} do not need update ack ${t.timetag}/${c}`):(this.model.updateReadTime(a,t.timetag),this.service.emit("onConversationReadTimeUpdated",a,t.timetag),n?(n=this.service.compute.computeConvWithUnread(n),this.model.upsert(n),this.service.unread.digestUnreadCountChange(),void 0===o&&n.unreadCount>0?this.service.triggerConversationCreated(n):"number"==typeof o&&n.unreadCount!==o&&this.service.triggerConversationChanged([n])):this.logger.log(`v2LocalConvMultiSyncReadTimeHandler: ${a} not exist`))}v2LocalConvSuperTeamMultiSyncReadTimeHandler(e){this.v2LocalConvMultiSyncReadTimeHandler(e)}v2LocalConvStickTopMultiSyncAddHandler(e){var{data:t}=e.content,{target:r,type:i}=getConvInfoFromSessionId(t.id),s=this.core.V2NIMConversationIdUtil.conversationId(i,r);this.model.updateStickTop(s,!0);var a=this.model.getById(s);a&&(a.stickTop=!0,a.updateTime=a.updateTime>t.updateTime?a.updateTime:t.updateTime,a.sortOrder=this.service.compute.computeSortOrder(!0,t.updateTime),this.model.upsert(a),this.service.triggerConversationChanged([a]))}v2LocalConvStickTopMultiSyncDeleteHandler(e){var{data:t,timetag:r}=e.content,{target:i,type:s}=getConvInfoFromSessionId(t.id),a=this.core.V2NIMConversationIdUtil.conversationId(s,i);this.model.updateStickTop(a,!1);var n=this.model.getById(a);n&&(n.stickTop=!1,n.updateTime=n.updateTime>r?n.updateTime:r,n.sortOrder=this.service.compute.computeSortOrder(!1,r),this.model.upsert(n),this.service.triggerConversationChanged([n]))}}class V2NIMLocalConversationEventImpl{constructor(e,t){this.core=e,this.service=t,this.model=this.service.model,this.compute=this.service.compute,this.logger=this.core.logger}setListener(){this.core.eventBus.on("V2NIMLoginService/syncing",(()=>this.service.emit("onSyncStarted"))),this.core.eventBus.on("V2NIMLoginService/syncDone",this.onSyncDone.bind(this)),this.core.eventBus.on("V2NIMMessageService/sendMessage",this.sendMsg.bind(this)),this.core.eventBus.on("V2NIMMessageService/onMsg",this.recvMsg.bind(this)),this.core.eventBus.on("V2NIMMessageService/modifyMsg",this.modifyMsg.bind(this)),this.core.eventBus.on("V2NIMMessageService/deleteMessages",this.deleteMessages.bind(this)),this.core.eventBus.on("V2NIMMessageService/revokeMessages",this.deleteMessages.bind(this)),this.core.eventBus.on("V2NIMMessageLogUtil/onClearHistoryNotifications",this.clearMessages.bind(this)),this.core.eventBus.on("V2NIMMessageService/roamingMsgs",this.generateConv.bind(this)),this.core.eventBus.on("V2NIMMessageService/offlineMsgs",this.generateConv.bind(this)),this.core.eventBus.on("V2NIMSettingService/setMute",this.setMute.bind(this))}beforeEmit(e,...t){var r,i=`${this.service.name}::emit ${e.toString()}`;if("onConversationCreated"===e){var s=t[0],a=null===(r=s.lastMessage)||void 0===r?void 0:r.messageRefer;this.logger.log(`${i}`,`id:${s.conversationId};unread:${s.unreadCount};lastMsg:${(null==a?void 0:a.messageClientId)||""}/${(null==a?void 0:a.messageServerId)||""}`)}else if("onConversationChanged"===e){var n=t[0];this.logger.log(`${i}`,n.map((e=>{var t,r=null===(t=e.lastMessage)||void 0===t?void 0:t.messageRefer;return`id:${e.conversationId};unread:${e.unreadCount};lastMsg:${(null==r?void 0:r.messageClientId)||""}/${(null==r?void 0:r.messageServerId)||""}`})))}else this.logger.log(`${i}`,...t)}onSyncDone(e){if(e)this.service.emit("onSyncFailed",e);else{var t=this.model.getAll();(t=t.map((e=>{var t=e.conversationId,r=this.compute.computeConvByMsgsCache(t);return r=this.compute.computeConvWithUnread(r),r=this.compute.computeFromExternal(r),this.model.upsert(r),this.model.getById(t)}))).length>0&&(this.service.triggerConversationChanged(t),this.service.unread.resetTotalAfterSyncDone()),this.service.emit("onSyncFinished")}}generateConv(e){uniq(e.map((e=>e.conversationId))).forEach((e=>{var t=this.compute.computeConvByMsgsCache(e);this.model.upsert(t)}))}setMute(e,t){var r=this.model.getById(e);r&&r.mute!==t&&(r.mute=t,this.model.upsert(r),this.service.triggerConversationChanged([r]))}deleteMessages(e){var t=new Set;e.forEach((e=>{var r,i=e.messageRefer.conversationId,s=this.model.getById(i);if(s){if(e.messageRefer.messageClientId===(null===(r=s.lastMessage)||void 0===r?void 0:r.messageRefer.messageClientId)){t.add(i);var a=this.core.V2NIMMessageService.model.getLastMessageOfConversation(i);s.lastMessage=a?formatLastMessageFromMessage(this.core,a,0,a.sendingState):void 0}var n=this.model.getReadTime(i);if(s.unreadCount>0&&this.service.unread.isMessageReferUnread(e.messageRefer,n)&&(t.add(i),s.unreadCount--),"deleteTime"in e)e.deleteTime>s.updateTime&&(s.updateTime=e.deleteTime,s.sortOrder=this.compute.computeSortOrder(s.stickTop,s.updateTime));else{var o=this.core.timeOrigin.getNTPTime();s.updateTime=o,s.sortOrder=this.compute.computeSortOrder(s.stickTop,o)}this.model.upsert(s)}}));var r=Array.from(t);!this.core.V2NIMLoginService.dataSync.checkSyncing()&&r.length>0&&(this.service.triggerConversationChanged(r.map((e=>this.model.getById(e)))),this.service.unread.digestUnreadCountChange())}sendMsg(e){var t=e.conversationId,r=this.model.getById(t);if(r){var i=r.lastMessage,s=this.updateCauseMessage(r,e);i!==s.lastMessage&&this.service.triggerConversationChanged([s])}else{var a=this.createCauseMessage(t,e);if(!a)return;this.service.triggerConversationCreated(a)}}recvMsg(e){var t=e.conversationId,r=this.model.getById(t);if(r){var i=r.lastMessage,s=r.unreadCount,a=this.updateCauseMessage(r,e);a=this.compute.computeConvWithUnread(a,e);var n=i!==(a=this.compute.computeFromExternal(a)).lastMessage,o=s!==a.unreadCount;this.model.upsert(a),(n||o)&&this.service.triggerConversationChanged([a])}else{var c=this.createCauseMessage(t,e);if(!c)return;c=this.compute.computeConvWithUnread(c,e),c=this.compute.computeFromExternal(c),this.model.upsert(c),this.service.triggerConversationCreated(c)}this.service.unread.digestUnreadCountChange()}updateCauseMessage(e,t){return e=this.compute.computeConvWithLastMsg(e,t),this.model.upsert(e),this.model.getById(e.conversationId)}createCauseMessage(e,t){var r,i,s;if(!1!==(null===(r=t.messageConfig)||void 0===r?void 0:r.unreadEnabled)||!1!==(null===(i=t.messageConfig)||void 0===i?void 0:i.lastMessageUpdateEnabled)){var a=this.core.V2NIMConversationIdUtil.parseConversationType(e),n=this.model.getStickTop(e),o=!1===(null===(s=t.messageConfig)||void 0===s?void 0:s.lastMessageUpdateEnabled)?void 0:formatLastMessageFromMessage(this.core,t,0,t.sendingState),c=this.core.timeOrigin.getNTPTime(),d={conversationId:e,type:a,createTime:o?t.createTime:c,updateTime:o?t.createTime:c,sortOrder:this.compute.computeSortOrder(n,o?t.createTime:c),stickTop:n,localExtension:"",lastMessage:o,unreadCount:0};return this.model.upsert(d),d}}clearMessages(e){var t=new Set;e.forEach((e=>{var{conversationId:r,deleteTime:i}=e,s=this.model.getById(r);s&&(s.unreadCount>0&&(s.unreadCount=0,t.add(r)),s.lastMessage&&s.lastMessage.messageRefer.createTime<=e.deleteTime&&(s.lastMessage=void 0,t.add(r)),i>s.updateTime&&(s.updateTime=i,s.sortOrder=this.compute.computeSortOrder(s.stickTop,s.updateTime)),this.model.upsert(s))}));var r=Array.from(t);!this.core.V2NIMLoginService.dataSync.checkSyncing()&&r.length>0&&(this.service.triggerConversationChanged(r.map((e=>this.model.getById(e)))),this.service.unread.digestUnreadCountChange())}modifyMsg(e){var t,r=e.conversationId,i=e.messageClientId,s=this.model.getById(r),a=this.core.V2NIMMessageService.model.getMessageById(i);if(s||a)if(s)e.messageClientId===(null===(t=s.lastMessage)||void 0===t?void 0:t.messageRefer.messageClientId)&&(s.lastMessage=formatLastMessageFromMessage(this.core,e,0,e.sendingState),this.service.triggerConversationChanged([s]));else{var n=this.createCauseMessage(r,e);if(!n)return;this.service.triggerConversationCreated(n)}}}var Pn={type:"array",itemRules:{type:"enum",values:[1,2,3]},min:1};class V2NIMConversationModelImpl{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,r){var{conversationTypes:i,onlyUnread:s,conversationGroupIds:a}=r,n=[];this.map.forEach((e=>{if((!(i&&i.length>0)||i.includes(e.type))&&(!s||e.unreadCount)&&(!r.ignoreMuted||!e.mute)){if(a){var t=e.groupIds,o=(null==t?void 0:t.length)||0;if(0===a.length&&o>0)return;if(a.length>0&&0===o)return;if(a.length>0&&o>0&&!a.some((e=>t&&t.includes(e))))return}n.push(e)}})),n=n.sort(((e,t)=>t.sortOrder-e.sortOrder));var o=0;e>0&&(o=findIndexWithinTargetValue(n,"sortOrder",e),n[o]&&n[o].sortOrder===e&&(o+=1));var c=n.slice(o).length;return(n=n.slice(o,o+t)).length>0?{offset:c>t?n[n.length-1].sortOrder:0,finished:!(c>t),conversationList:n}:{offset:0,finished:!0,conversationList:n}}upsert(e){var t=e.conversationId,r=this.map.get(t);if(!r)return e=this.processConversation(Object.assign({},e)),this.map.set(t,e),e.unreadCount>0;var i=e.unreadCount!==r.unreadCount,s=Object.assign({},r,e);return s=this.processConversation(s),this.map.set(t,s),i}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 isEqual(e,t){var r=typeof e;if(r!==typeof t)return!1;if("object"===r){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 i=0;i<e.length;i++)if(!isEqual(e[i],t[i]))return!1;return!0}if(e instanceof RegExp&&t instanceof RegExp)return e.toString()===t.toString();if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(null===e&&null===t)return!0;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var s in e)if(!isEqual(e[s],t[s]))return!1;return!0}return e===t}class V2NIMConversationVersionCacheImpl{constructor(e,t){this.fieldVersion={},this.conversationIdsForBackFill={},this.tempPacket=[],this.isSyncing=!1,this.nextCursor=0,this.core=e,this.service=t}reset(){this.tempPacket=[],this.fieldVersion={},this.conversationIdsForBackFill={},this.isSyncing=!1,this.nextCursor=0}doSync(){return __awaiter(this,void 0,void 0,(function*(){var e;this.isSyncing=!0,this.service.emit("onSyncStarted"),this.core.V2NIMLoginService.dataSync.switchDataSync({type:1,state:2,subType:"conversationSync"});try{e=yield this.core.sendCmd("v2ConversationSync",{tag:{cursor:this.nextCursor}})}catch(e){var t=e;if(t.code===de.V2NIM_ERROR_CODE_CANCELLED)return;return this.isSyncing=!1,this.service.emit("onSyncFailed",t),this.core.V2NIMLoginService.dataSync.switchDataSync({type:1,state:3,error:t,subType:"conversationSync"}),void this.processTempPacket()}var r=0===parseInt(get(e,"content.info.syncType")),i=get(e,"content.info.nextCursor");this.doSyncAndSuccess(r,i)}))}doSyncAndSuccess(e,t){e&&this.service.model.sort(),this.isSyncing=!1,this.nextCursor=parseInt(t)||0,this.service.unread.resetTotalAfterSyncDone(),this.service.unread.digestUnreadCountChange(),this.service.emit("onSyncFinished"),this.core.V2NIMLoginService.dataSync.switchDataSync({type:1,state:3,subType:"conversationSync"}),this.processTempPacket()}setBackFillIds(e){return e.forEach((e=>{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?formatLastMessageFromMessage(this.core,t,e.lastMessageState,t.sendingState):""}else this.conversationIdsForBackFill[e.conversationId]=!1;delete e.lastMessageState})),e}recvConversationFromSyncAction(e){var{syncType:t}=get(e,"content.info"),r=formatConversationFields(this.core,get(e,"content.datas"));0===(t=parseInt(t))?(r.forEach((e=>{this.initFieldVersion(e.conversationId,e.version)})),r=this.setBackFillIds(r),this.setModel(r)):(r=this.setBackFillIds(r),this.recvConversationForCreated(r)<r.length&&this.recvConversationForChanged(r))}recvConversation(e){if(this.isSyncing)this.tempPacket.push(e);else{var t=formatConversationFields(this.core,get(e,"content.datas")).filter((e=>!!e.conversationId)),r=get(e,"content.info"),i=t.map((e=>`id:${e.conversationId}, ver:${e.version}`)).join(";");if(this.core.logger.getDebugMode()?this.core.logger.debug(`V2NIMConversation::recvConversation: ${i}.`,r,t):this.core.logger.log(`V2NIMConversation::recvConversation: ${i}.`,r),2===r.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()}if(12!==r.type)r.type,t=this.setBackFillIds(t),this.recvConversationForCreated(t)<t.length&&this.recvConversationForChanged(t);else this.compareAndClearUnreadInModel(r)}}recvConversationForCreated(e){var t=e.filter((e=>!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 r=this.service.model.getById(t.conversationId);return r&&this.service.triggerConversationCreated(r),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 r=t.map((e=>this.service.model.getById(e.conversationId))).filter((e=>!!e));this.service.triggerConversationChanged(r)}}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:r,deleteFlag:i,type:s}=e,a={},n=0;return["stickTop","groupIds","serverExtension","localExtension","lastMessage","lastMessageState","unreadCount","sortOrder","createTime","updateTime","lastReadTime"].forEach((i=>{var s=i;if(void 0!==e[s]){var o=this.fieldVersion[r];o&&"number"==typeof o[s]&&o[s]>=t||(this.fieldVersion[r]=this.fieldVersion[r]||{},this.fieldVersion[r][s]=t,a[s]=e[s],n+=1)}})),n?Object.assign(Object.assign({},a),{conversationId:r,deleteFlag:i,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 r=Date.now();return Object.assign({conversationId:e,type:this.core.V2NIMConversationIdUtil.parseConversationType(e),stickTop:!1,localExtension:"",serverExtension:"",unreadCount:0,lastReadTime:0,createTime:r,updateTime:r,sortOrder:r},t)}updateModel(e){var{deleteFlag:t,conversation:r}=formatConversationByField(e);if(t){var i=this.service.model.deleteById(r.conversationId);return!!(i&&i.unreadCount>0)}return this.service.model.upsert(r)}setModel(e){var t=e.filter((e=>!e.deleteFlag)).map((e=>formatConversationByField(e).conversation));this.service.model.set(t)}updateModelWithLastMessage(e,t,r,i){var s=this.service.model.getById(e),a=t?formatLastMessageFromMessage(this.core,t,r,i):void 0;if(!isEqual(null==s?void 0:s.lastMessage,a))if(s){var n=Object.assign(Object.assign({},s),{sortOrder:a?s.stickTop?a.messageRefer.createTime+1e15:a.messageRefer.createTime:s.sortOrder,lastMessage:a});this.service.model.upsert(n),this.service.triggerConversationChanged([n])}else{this.initFieldVersion(e,-1);var o=this.initConversation(e,{lastMessage:a});this.service.model.upsert(o),this.service.triggerConversationCreated(o)}}updateModelByRevoke(e){var t=[];e.forEach((e=>{var{postscript:r,messageRefer:i}=e,s=__rest(e,["postscript","messageRefer"]),a=i.conversationId,n=this.service.model.getById(a);n&&n.lastMessage&&n.lastMessage.messageRefer.messageClientId===i.messageClientId&&1!==n.lastMessage.lastMessageState&&(n.lastMessage.lastMessageState=1,r&&(n.lastMessage.text=r),Object.assign(n.lastMessage,s),this.service.model.upsert(n),t.push(n))})),t.length>0&&this.service.triggerConversationChanged(t)}compareAndUpdateModel(e){this.core.logger.log("V2NIMConversation::compareAndUpdateModel",e.map((e=>e.conversationId)));var t=!1,r=[];e.forEach((e=>{var i=this.compare(e);if(i){var s=this.service.model.getById(e.conversationId);this.updateModel(i)&&(t=!0);var a=this.service.model.getById(e.conversationId);a&&(s?r.push(a):this.service.triggerConversationCreated(a))}})),r.length>0&&this.service.triggerConversationChanged(r),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 r=this.service.model.deleteById(t);return!!!!(r&&r.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 r=[];Object.keys(this.fieldVersion).forEach((i=>{var s=this.fieldVersion[i];if(void 0===s.groupIds||e>s.groupIds){s.groupIds=e;var a=this.service.model.getById(i);if(a&&a.groupIds&&a.groupIds.length>0){var n=a.groupIds.filter((e=>e!==t));if(n.length!==a.groupIds.length){var o=Object.assign(Object.assign({},a),{groupIds:n});this.service.model.upsert(o),o&&r.push(o)}}}})),r.length>0&&this.service.triggerConversationChanged(r)}compareAndClearUnreadInModel(e){var{oneClickClearUnreadType:t,oneClickClearUnreadVersion:r,oneClickClearUnreadLastReadTime:i,oneClickClearUnreadConversationType:s,oneClickClearUnreadGroupId:a}=e;this.core.logger.log(`V2NIMConversation::compareAndClearUnreadInModel.ver:${r};type:${t};lastReadTime:${i};filter:${s||""};grounp:${a||""}`);var n=[],o=[];if(1===t)o=this.service.model.getAll();else if(s||a){var c=this.service.model.count();o=this.service.model.getByOption(0,c,{conversationTypes:s,conversationGroupIds:a?[a]:void 0}).conversationList}o.forEach((e=>{var t=e.conversationId,s=this.fieldVersion[t];if(void 0===s.unreadCount||r>s.unreadCount){s.unreadCount=r,s.lastReadTime=r;var a=e.unreadCount,o=Object.assign(Object.assign({},e),{lastReadTime:i,unreadCount:0});this.service.model.upsert(o),a>0&&n.push(o)}})),n.length>0&&this.service.triggerConversationChanged(n),this.service.unread.digestUnreadCountChange()}backfillLastMsg(e,t){var r=e=uniq(e);(t||0!==(r=e.filter((e=>this.conversationIdsForBackFill[e]))).length)&&r.forEach((e=>{var t=get(this.service.model.getById(e),"lastMessage.messageRefer.messageClientId"),r=this.service.compute.hasMessageService?this.core.V2NIMMessageService.model.getLastMessageOfConversation(e):void 0;(r&&r.messageClientId)!==t&&(this.conversationIdsForBackFill[e]=!1,r?this.updateModelWithLastMessage(e,r,2,r.sendingState):this.updateModelWithLastMessage(e,void 0,2,0))}))}}var Vn={"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"},Ln="V2NIMConversationService",Un={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"}},Dn={type:{id:1,retType:"number"},oneClickClearUnreadType:{id:2,retType:"number"},oneClickClearUnreadConversationType:{id:3,retConverter:stringToJSONObject},oneClickClearUnreadGroupId:{id:4,retType:"string"},oneClickClearUnreadVersion:{id:5,retType:"number"},oneClickClearUnreadLastReadTime:{id:6,retType:"number"}},xn={v2ConversationCreate:{sid:28,cid:1,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Un)}]},v2ConversationDelete:{sid:28,cid:2,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,clearMessage:2}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Un)}]},v2ConversationUpdate:{sid:28,cid:3,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,serverExtension:2}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Un)}]},v2ConversationSetTop:{sid:28,cid:4,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,stickTop:2}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Un)}]},v2ConversationUnreadClear:{sid:28,cid:5,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Un)}]},v2ConversationGet:{sid:28,cid:6,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Un)}]},v2ConversationGetByIds:{sid:28,cid:7,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationGetList:{sid:28,cid:8,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{cursor:1,limit:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"hasMore",2:"offset"}}]},v2ConversationsDelete:{sid:28,cid:17,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1,clearMessage:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationsUnreadClear:{sid:28,cid:18,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationSync:{sid:28,cid:19,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{cursor:1}}],response:[{type:"Property",name:"info",reflectMapper:{1:"nextCursor",2:"syncType"}}]},v2ConversationNotifySync:{sid:28,cid:20,service:Ln,response:[{type:"Property",name:"info",reflectMapper:{1:"nextCursor",2:"syncType"}},{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)}]},v2ConversationNotifySyncOnline:{sid:28,cid:21,service:Ln,response:[{type:"Property",name:"info",reflectMapper:invertSerializeItem(Dn)},{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)}]},v2ConversationClearTotalUnread:{sid:28,cid:23,service:Ln,response:[{type:"Property",name:"info",reflectMapper:invertSerializeItem(Dn)}]},v2ConversationClearTypeUnread:{sid:28,cid:24,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{conversationType:1}}],response:[{type:"Property",name:"info",reflectMapper:invertSerializeItem(Dn)}]},v2ConversationClearGroupUnread:{sid:28,cid:25,service:Ln,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1}}],response:[{type:"Property",name:"info",reflectMapper:invertSerializeItem(Dn)}]},syncConversationReadTime:{sid:4,cid:14,service:Ln,response:[{type:"StrLongMap",name:"p2p"},{type:"LongLongMap",name:"team"},{type:"Long",name:"timetag"}]},syncSuperTeamReadTime:{sid:4,cid:20,service:Ln,response:[{type:"LongLongMap",name:"superTeam"}]},v2SyncSessionsWithMoreRoaming:{sid:4,cid:22,service:Ln,response:[]},v2SyncSessionReliableInfo:{sid:4,cid:25,service:Ln,response:[]},v2MarkConversationReadTime:{sid:30,cid:16,service:Ln,params:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}]},v2MarkSuperTeamReadTime:{sid:32,cid:25,service:Ln,params:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}]},v2MultiDeviceConversationReadTime:{sid:30,cid:116,service:Ln,response:[{type:"Byte",name:"scene"},{type:"String",name:"to"},{type:"Long",name:"timetag"}]},v2MultiDeviceSuperTeamReadTime:{sid:21,cid:125,service:Ln,response:[{type:"Long",name:"to"},{type:"Long",name:"timetag"}]}};class V2NIMConversationUnreadImpl{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),r=this.getUnreadCountByFilter(t),i=this.unreadCountByFilter[e];this.unreadCountByFilter[e]=r,t.equals=equals.bind(t),i!==r&&this.service.emit("onUnreadCountChangedByFilter",t,r)}))}getUnreadCountByIds(e){return e.reduce(((e,t)=>{var r=this.service.model.getById(t);return e+(r&&r.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=generateFilterKey(e);if(void 0!==this.unreadCountByFilter[t])throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_ALREADY_EXIST});var r=JSON.parse(t),i=this.getUnreadCountByFilter(r);this.unreadCountByFilter[t]=i,this.service.emit("onUnreadCountChangedByFilter",r,i)}deleteFilter(e){var t=generateFilterKey(e);if(void 0===this.unreadCountByFilter[t])throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST});delete this.unreadCountByFilter[t]}}function generateFilterKey(e){var{conversationTypes:t}=e;return t&&(t=t.sort()),JSON.stringify({conversationGroupId:e.conversationGroupId,conversationTypes:t,ignoreMuted:e.ignoreMuted})}function equals(e){return JSON.stringify(this)===generateFilterKey(e)}var qn={createTime:{type:"number"},updateTime:{type:"number"}};function formatConversationGroups(e){return e&&e.length>0?e.map((e=>formatConversationGroup(e))):[]}function formatConversationGroup(e){return format(qn,e)}function formatFailedMap(e){var t=JSON.parse(e);return Object.keys(t).map((e=>({conversationId:e,error:new V2NIMErrorImpl({code:t[e]})})))}var Bn,Fn={type:{type:"number"},deleteVersion:{type:"number"},conversationIds:{type:"object"}};function formatConversationGroupNotify(e){return format(Fn,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"}(Bn||(Bn={}));class V2NIMConversationComputeImpl{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,r,i,s,a;if(0===e.type)return e;var n=this.core.V2NIMConversationIdUtil.parseConversationType(e.conversationId),o=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===n&&this.hasUserService){var d,l=this.core.V2NIMUserService.model.getUser(o),m=this.hasFriendService?this.core.V2NIMFriendService.model.getFriend(o):void 0;e.conversationId!==(null===(r=e.lastMessage)||void 0===r?void 0:r.messageRefer.conversationId)||0!==(null===(i=e.lastMessage)||void 0===i?void 0:i.lastMessageState)&&2!==(null===(s=e.lastMessage)||void 0===s?void 0:s.lastMessageState)||(d=null===(a=e.lastMessage)||void 0===a?void 0:a.senderName),c.name=(null==m?void 0:m.alias)||(null==l?void 0:l.name)||d||o,c.avatar=(null==l?void 0:l.avatar)||""}else if(2===n&&this.hasTeamService){var p=this.core.V2NIMTeamService.model.getById(o,1);c.name=(null==p?void 0:p.name)||o,c.avatar=(null==p?void 0:p.avatar)||""}else if(3===n&&this.hasTeamService){var u=this.core.V2NIMTeamService.model.getById(o,2);c.name=(null==u?void 0:u.name)||o,c.avatar=(null==u?void 0:u.avatar)||""}return Object.assign(e,c),e}computeReadTimeForMark(e){var t,r,i,s=e.conversationId,a=this.service.model.getReadTime(s);if(null===(r=null===(t=null==e?void 0:e.lastMessage)||void 0===t?void 0:t.messageRefer)||void 0===r?void 0:r.createTime)i=e.lastMessage.messageRefer.createTime;else{if(!this.core.timeOrigin.checkNodeReliable())return a||0;i=this.core.timeOrigin.getNTPTime()}return i}}class V2NIMConversationHandlerImpl{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,r,i;if(this.ifEnabled){if(null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.p2p)for(var[s,a]of Object.entries(e.content.p2p))this.model.updateReadTime(this.core.V2NIMConversationIdUtil.p2pConversationId(s),a),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.p2pConversationId(s),a);if(null===(i=null===(r=null==e?void 0:e.content)||void 0===r?void 0:r.team)||void 0===i?void 0:i.m_map)for(var[n,o]of Object.entries(e.content.team.m_map))this.model.updateReadTime(this.core.V2NIMConversationIdUtil.teamConversationId(n),o),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.teamConversationId(n),o)}}syncSuperTeamReadTimeHandler(e){var t,r;if(this.ifEnabled&&(null===(r=null===(t=null==e?void 0:e.content)||void 0===t?void 0:t.superTeam)||void 0===r?void 0:r.m_map))for(var[i,s]of Object.entries(e.content.superTeam.m_map))this.model.updateReadTime(this.core.V2NIMConversationIdUtil.superTeamConversationId(i),s),this.service.emit("onConversationReadTimeUpdated",this.core.V2NIMConversationIdUtil.superTeamConversationId(i),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 V2NIMConversationEventImpl{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 r,i,s=`${this.service.name}::emit ${e.toString()}`;if("onConversationCreated"===e){var a=t[0];this.logger.log(`${s}`,`id:${a.conversationId};unread:${a.unreadCount};lastMsg:${null===(r=a.lastMessage)||void 0===r?void 0:r.messageRefer.messageClientId}/${null===(i=a.lastMessage)||void 0===i?void 0:i.messageRefer.messageServerId}`)}else if("onConversationChanged"===e){var n=t[0];this.logger.log(`${s}`,n.map((e=>{var t,r;return`id:${e.conversationId};unread:${e.unreadCount};lastMsg:${null===(t=e.lastMessage)||void 0===t?void 0:t.messageRefer.messageClientId}/${null===(r=e.lastMessage)||void 0===r?void 0:r.messageRefer.messageServerId}`})))}else this.logger.log(`${s}`,...t)}conversationOnlineSyncNotify(e,t){var r;!1!==(null===(r=null==t?void 0:t.messageConfig)||void 0===r?void 0:r.lastMessageUpdateEnabled)&&(e.content.info=deserialize(e.content.info,invertSerializeItem(Dn)),e.content.data=deserialize(e.content.data,invertSerializeItem(Un)),t&&(e.content.data.lastMessage=formatLastMessageFromMessage(this.core,t,0)),e.content.datas=[e.content.data],this.service.handler.v2ConversationNotifySyncOnlineHandler.call(this,e))}sendMessage(e,t){var r,i;1===t&&!0===(null===(r=e.messageConfig)||void 0===r?void 0:r.historyEnabled)||!1!==(null===(i=null==e?void 0:e.messageConfig)||void 0===i?void 0:i.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=uniq(e.map((e=>e.conversationId)));this.versionCache.backfillLastMsg(t,!1)}setMute(e,t){var r=this.model.getById(e);r&&r.mute!==t&&(r.mute=t,this.model.upsert(r),this.service.triggerConversationChanged([r]))}}class V2NIMConversationServiceImpl extends V2Service{constructor(e,t={}){super("V2NIMConversationService",e),this.config={},this.model=new V2NIMConversationModelImpl,this.versionCache=new V2NIMConversationVersionCacheImpl(this.core,this),this.unread=new V2NIMConversationUnreadImpl(this.core,this),this.compute=new V2NIMConversationComputeImpl(this.core,this),this.event=new V2NIMConversationEventImpl(this.core,this),this.handler=new V2NIMConversationHandlerImpl(this.core,this),this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),"v2"===this.core.options.apiVersion&&!0===this.core.options.enableV2CloudConversation&&(registerParser({cmdMap:Vn,cmdConfig:xn}),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 V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2CloudConversation is not enabled"}})}getConversationList(e,t){this.checkEnable(),this.checkV2(),validate({offset:{type:"number",min:0}},{offset:e},"",!0),validate({limit:{type:"number",min:1}},{limit:t},"",!0),this.core.V2NIMLoginService.checkIllegalState();var r=this.model.getByOption(e,t,{});return r.conversationList=this.compute.computeConvs(r.conversationList),Promise.resolve(r)}getConversationListByOption(e,t,r){this.checkEnable(),this.checkV2(),validate({offset:{type:"number",min:0}},{offset:e},"",!0),validate({limit:{type:"number",min:1}},{limit:t},"",!0),validate({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:r},"",!0),this.core.V2NIMLoginService.checkIllegalState();var i=this.model.getByOption(e,t,r);return i.conversationList=this.compute.computeConvs(i.conversationList),Promise.resolve(i)}getConversation(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validateConversationId(this.core.account,e);var t=this.model.getById(e);if(t)return this.compute.computeConv(t);throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST})}))}getConversationListByIds(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({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 t=this.compute.computeConvs(t)}))}createConversation(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validateConversationId(this.core.account,e);var t=get(yield this.core.sendCmd("v2ConversationCreate",{tag:{conversationId:e}}),"content.data"),r=formatConversationField(this.core,t);this.versionCache.compareAndUpdateModel([r]);var i=this.model.getById(e);if(i)return this.compute.computeConv(i);throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST})}))}deleteConversation(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validateConversationId(this.core.account,e),validate({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 __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0),validate({clearMessage:{type:"boolean",required:!1}},{clearMessage:t},"",!0);var r=formatFailedMap(get(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 r.length<e.length&&(t&&this.core.eventBus.emit("V2NIMConversationService/deleteConversation",e),this.versionCache.compareAndDeleteModel(e)),r}))}getStickTopConversationList(){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.model.getStickTopList()}))}stickTopConversation(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validateConversationId(this.core.account,e),validate({stickTop:{type:"boolean"}},{stickTop:t},"",!0);var r=get(yield this.core.sendCmd("v2ConversationSetTop",{tag:{conversationId:e,stickTop:Number(t)}}),"content.data"),i=formatConversationField(this.core,r);this.versionCache.compareAndUpdateModel([i])}))}updateConversation(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validateConversationId(this.core.account,e),validate({updateInfo:{type:"object",required:!0,rules:{serverExtension:{type:"string"}}}},{updateInfo:t},"",!0);var r=get(yield this.core.sendCmd("v2ConversationUpdate",{tag:Object.assign({conversationId:e},t)}),"content.data"),i=formatConversationField(this.core,r);this.versionCache.compareAndUpdateModel([i])}))}updateConversationLocalExtension(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validateConversationId(this.core.account,e),validate({localExtension:{type:"string"}},{localExtension:t},"",!0);var r=this.model.getById(e);if(!r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST});if(r.localExtension!==t){var i=Object.assign(Object.assign({},r),{localExtension:t});this.model.upsert(i),this.triggerConversationChanged([i])}}))}getTotalUnreadCount(){return this.checkEnable(),this.checkV2(),this.unread.getTotalUnreadCount()||0}getUnreadCountByIds(e){this.checkEnable(),this.checkV2(),validate({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0);var t=this.unread.getUnreadCountByIds(e);return Promise.resolve(t)}getUnreadCountByFilter(e){this.checkEnable(),this.checkV2(),this.valiteFilter(e);var t=this.unread.getUnreadCountByFilter(e);return Promise.resolve(t)}clearTotalUnreadCount(){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2();var e=get(yield this.core.sendCmd("v2ConversationClearTotalUnread"),"content.info");this.versionCache.compareAndClearUnreadInModel(e)}))}clearUnreadCountByIds(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0);var t=yield this.core.sendCmd("v2ConversationsUnreadClear",{tag:{conversationIds:JSON.stringify(e)}}),r=formatConversationFields(this.core,get(t,"content.datas")),i=formatFailedMap(get(t,"content.info.failedMap"));return this.versionCache.compareAndUpdateModel(r),i}))}clearUnreadCountByGroupId(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({groupId:{type:"string"}},{groupId:e},"",!0),yield this.core.sendCmd("v2ConversationClearGroupUnread",{tag:{groupId:e}})}))}clearUnreadCountByTypes(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({types:Pn},{types:e},"",!0);var t=get(yield this.core.sendCmd("v2ConversationClearTypeUnread",{tag:{conversationType:JSON.stringify(e)}}),"content.info");this.versionCache.compareAndClearUnreadInModel(t)}))}markConversationRead(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),this.checkLogin(),validateConversationId(this.core.account,e);var t=this.model.getById(e);if(!t)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Conversation not exist"}});var r=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e),i=this.core.V2NIMConversationIdUtil.parseConversationType(e),s=this.model.getReadTime(e),a=this.compute.computeReadTimeForMark(t);return s>=a?(this.logger.log(`V2Conv::markConversationRead currentReadTime >= readTime ${e},${s},${a}`),s):(3===i?yield this.core.sendCmd("v2MarkSuperTeamReadTime",{timetag:a,to:r}):yield this.core.sendCmd("v2MarkConversationReadTime",{scene:1===i?0:2===i?1:2,timetag:a,to:r}),this.model.updateReadTime(e,a),a)}))}getConversationReadTime(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkEnable(),this.checkV2(),validateConversationId(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(validate({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 V2NIMErrorImpl({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)}}var jn={"28_9":"v2ConversationGroupCreate","28_10":"v2ConversationGroupDelete","28_11":"v2ConversationGroupUpdate","28_12":"v2ConversationGroupGet","28_13":"v2ConversationGroupsGet","28_14":"v2ConversationGroupListGet","28_15":"v2ConversationGroupAddTo","28_16":"v2ConversationGroupRemoveFrom","28_22":"v2ConversationGroupNotifySyncOnline"},$n="V2NIMConversationGroupService",Gn={groupId:1,name:2,serverExtension:3,createTime:4,updateTime:5},Hn={v2ConversationGroupCreate:{sid:28,cid:9,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{conversationIds:1,name:2,serverExtension:3}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Gn)},{type:"PropertyArray",name:"conversations",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationGroupDelete:{sid:28,cid:10,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1}}],response:[{type:"Property",name:"info",reflectMapper:{1:"type",2:"deleteVersion",3:"groupList"}}]},v2ConversationGroupUpdate:{sid:28,cid:11,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1,name:2,serverExtension:3}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Gn)}]},v2ConversationGroupGet:{sid:28,cid:12,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1}}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Gn)}]},v2ConversationGroupsGet:{sid:28,cid:13,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{groupIds:1}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Gn)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationGroupListGet:{sid:28,cid:14,service:$n,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Gn)}]},v2ConversationGroupAddTo:{sid:28,cid:15,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1,conversationIds:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationGroupRemoveFrom:{sid:28,cid:16,service:$n,params:[{type:"Property",name:"tag",reflectMapper:{groupId:1,conversationIds:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Un)},{type:"Property",name:"info",reflectMapper:{1:"failedMap"}}]},v2ConversationGroupNotifySyncOnline:{sid:28,cid:22,service:$n,response:[{type:"Property",name:"info",reflectMapper:{1:"type",2:"deleteVersion",3:"conversationIds"}},{type:"Property",name:"data",reflectMapper:invertSerializeItem(Gn)}]}};var zn="V2NIMMessageLogUtil",Yn={"30_6":"v2GetMessageList","33_2":"v2GetMessageListByRefers","30_9":"v2ClearRoamingMessage","30_18":"v2ClearHistoryMessage","7_118":"onClearHistoryMessage","4_24":"syncClearHistoryMessage","31_23":"v2GetTeamMessageList","32_14":"v2GetSuperTeamMessageList"},Jn={conversationType:{id:0,retType:"number"},receiverId:1,deleteRoam:{id:2,converter:boolToInt},teamId:3,onlineSync:{id:4,converter:boolToInt},deleteTime:{id:6,retType:"number"},serverExtension:7},Wn=[{type:"Long",name:"beginTime"},{type:"Long",name:"endTime"},{type:"Long",name:"lastMsgId"},{type:"Int",name:"limit"},{type:"Bool",name:"direction"},{type:"LongArray",name:"msgTypes"}],Kn={v2GetMessageList:{sid:30,cid:6,service:zn,params:[{type:"String",name:"to"},...Wn],response:[{type:"PropertyArray",name:"msgs",reflectMapper:invertSerializeItem(sn)}]},v2GetMessageListByRefers:{sid:33,cid:2,service:zn,params:[{type:"PropertyArray",name:"tag",reflectMapper:sn,select:["conversationType","senderId","receiverId","createTime","messageServerId"]}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:invertSerializeItem(sn)}]},v2ClearRoamingMessage:{sid:30,cid:9,service:zn,params:[{type:"StrArray",name:"conversationIds"}]},v2ClearHistoryMessage:{sid:30,cid:18,service:zn,params:[{type:"Property",name:"tag",reflectMapper:Jn}],response:[{type:"Long",name:"timetag"}]},v2GetTeamMessageList:{sid:31,cid:23,service:zn,params:[{type:"Long",name:"to"},...Wn],response:[{type:"PropertyArray",name:"msgs",reflectMapper:invertSerializeItem(sn)}]},v2GetSuperTeamMessageList:{sid:32,cid:14,service:zn,params:[{type:"Long",name:"to"},...Wn],response:[{type:"PropertyArray",name:"msgs",reflectMapper:invertSerializeItem(sn)}]},onClearHistoryMessage:{sid:7,cid:118,service:zn,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Jn)}]},syncClearHistoryMessage:{sid:4,cid:24,service:zn,response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(Jn)}]}};var Qn="V2NIMMessageExtendUtil",Xn={"29_5":"v2VoiceToText","33_15":"v2PinMessage","33_16":"v2UpdatePinMessage","33_17":"v2UnpinMessage","23_18":"onPinMessage","23_19":"onUpdatePinMessage","23_20":"onUnpinMessage","23_115":"onPinMessage","23_116":"onUpdatePinMessage","23_117":"onUnpinMessage","33_21":"v2GetPinMessageList","33_3":"v2AddQuickComment","33_4":"v2RemoveQuickComment","33_7":"v2GetQuickComment","23_5":"onAddQuickComment","23_6":"onRemoveQuickComment","23_103":"onAddQuickComment","23_104":"onRemoveQuickComment","33_8":"v2AddCollection","33_9":"v2RemoveCollections","33_10":"v2UpdateCollectionExtension","33_11":"v2GetCollectionListByOption","30_26":"v2SearchCloudMessagesGroupByConversation","30_27":"v2SearchCloudMessages","30_34":"v2SearchCloudMessagesEx","33_1":"v2GetThreadMessageList"},Zn={conversationType:{id:1,converter:conversationTypeV2ToV1,retConverter:conversationTypeV1ToV2,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"}},eo={conversationType:{id:1,access:"messageRefer.conversationType",retConverter:conversationTypeV1ToV2},senderId:{id:2,access:"messageRefer.senderId"},receiverId:{id:3,access:"messageRefer.receiverId"},time:{id:4,access:"messageRefer.createTime",converter:boolToInt,retType:"number"},messageServerId:{id:5,access:"messageRefer.messageServerId"},messageClientId:{id:6,access:"messageRefer.messageClientId"},operatorId:7,serverExtension:8,createTime:{id:9,converter:boolToInt,retType:"number"},updateTime:{id:10,converter:boolToInt,retType:"number"}},ro={operatorId:1,index:{id:2,retType:"number"},createTime:{id:3,retType:"number"},serverExtension:4,pushEnabled:{id:5,access:"pushConfig.pushEnabled",converter:boolToInt},needBadge:{id:6,access:"pushConfig.needBadge",converter:boolToInt},title:{id:7,access:"pushConfig.title"},pushContent:{id:8,access:"pushConfig.pushContent"},pushPayload:{id:9,access:"pushConfig.pushPayload"}},io={accid:1,serverExtension:2,createTime:{id:3,retType:"number"},updateTime:{id:4,retType:"number"}},so={collectionId:1,collectionType:{id:2,retType:"number"},collectionData:3,serverExtension:4,uniqueId:5,createTime:{id:6,retType:"number"},updateTime:{id:7,retType:"number"}},ao={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(",")}},no={keywordList:{id:1,converter:e=>objectToJSONString(e)},keywordMatchType:2,searchStartTime:3,searchTimePeriod:4,pageToken:5,limit:7,direction:8,conversationId:9,senderAccountIds:{id:12,converter:e=>e.join(",")},messageTypes:{id:13,converter:e=>e.join(",")},messageSubtypes:{id:14,converter:e=>e.join(",")}},oo=Object.assign(Object.assign({},ao),{conversationLimit:4}),co={v2PinMessage:{sid:33,cid:15,service:Qn,params:[{type:"Property",name:"msg",reflectMapper:sn,select:["conversationType","receiverId","senderId","createTime","messageClientId","messageServerId"]},{type:"Property",name:"msgPin",reflectMapper:io}],response:[{type:"Long",name:"timetag"}]},v2UnpinMessage:{sid:33,cid:17,service:Qn,params:[{type:"Property",name:"msg",reflectMapper:sn,select:["conversationType","receiverId","senderId","createTime","messageClientId","messageServerId"]},{type:"Property",name:"msgPin",reflectMapper:io}],response:[{type:"Long",name:"timetag"}]},v2UpdatePinMessage:{sid:33,cid:16,service:Qn,params:[{type:"Property",name:"msg",reflectMapper:sn,select:["conversationType","receiverId","senderId","createTime","messageClientId","messageServerId"]},{type:"Property",name:"msgPin",reflectMapper:io}],response:[{type:"Long",name:"timetag"}]},v2GetPinMessageList:{sid:33,cid:21,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:{conversationId:1,timetag:2}}],response:[{type:"Long",name:"timetag"},{type:"Bool",name:"changed"},{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(eo)}]},v2VoiceToText:{sid:29,cid:5,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:{mimeType:0,sampleRate:1,voiceUrl:2,duration:3}}],response:[{type:"String",name:"data"}]},v2AddQuickComment:{sid:33,cid:3,service:Qn,params:[{type:"Property",name:"message",reflectMapper:sn,select:["conversationType","senderId","receiverId","createTime","messageClientId","messageServerId"]},{type:"Property",name:"quickComment",reflectMapper:ro}],response:[{type:"Long",name:"timetag"}]},v2RemoveQuickComment:{sid:33,cid:4,service:Qn,params:[{type:"Property",name:"message",reflectMapper:sn,select:["conversationType","senderId","receiverId","createTime","messageClientId","messageServerId"]},{type:"Property",name:"quickComment",reflectMapper:ro}],response:[{type:"Long",name:"timetag"}]},onAddQuickComment:{sid:23,cid:5,service:Qn,response:[{type:"Property",name:"message",reflectMapper:invertSerializeItem(sn)},{type:"Property",name:"quickComment",reflectMapper:invertSerializeItem(ro)}]},onRemoveQuickComment:{sid:23,cid:6,service:Qn,response:[{type:"Property",name:"message",reflectMapper:invertSerializeItem(sn)},{type:"Property",name:"quickComment",reflectMapper:invertSerializeItem(ro)}]},v2GetQuickComment:{sid:33,cid:7,service:Qn,params:[{type:"PropertyArray",name:"tag",reflectMapper:Zn}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(Zn)}]},onPinMessage:{sid:23,cid:18,service:Qn,response:[{type:"Property",name:"msg",reflectMapper:invertSerializeItem(sn)},{type:"Property",name:"pinInfo",reflectMapper:invertSerializeItem(io)}]},onUpdatePinMessage:{sid:23,cid:19,service:Qn,response:[{type:"Property",name:"msg",reflectMapper:invertSerializeItem(sn)},{type:"Property",name:"pinInfo",reflectMapper:invertSerializeItem(io)}]},onUnpinMessage:{sid:23,cid:20,service:Qn,response:[{type:"Property",name:"msg",reflectMapper:invertSerializeItem(sn)},{type:"Property",name:"pinInfo",reflectMapper:invertSerializeItem(io)}]},v2AddCollection:{sid:33,cid:8,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:so}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(so)}]},v2RemoveCollections:{sid:33,cid:9,service:Qn,params:[{type:"PropertyArray",name:"tag",reflectMapper:so,select:["collectionId","createTime"]}],response:[{type:"Int",name:"data"}]},v2UpdateCollectionExtension:{sid:33,cid:10,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:so}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(so)}]},v2GetCollectionListByOption:{sid:33,cid:11,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:{beginTime:1,endTime:2,excludeId:3,limit:4,direction:5,collectionType:6}}],response:[{type:"Long",name:"total"},{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(so)}]},v2SearchCloudMessagesGroupByConversation:{sid:30,cid:26,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:oo}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2SearchCloudMessages:{sid:30,cid:27,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:ao}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(sn)}]},v2SearchCloudMessagesEx:{sid:30,cid:34,service:Qn,params:[{type:"Property",name:"tag",reflectMapper:no}],response:[{type:"PropertyArray",name:"msgs",reflectMapper:invertSerializeItem(sn)},{type:"Int",name:"hasMore"},{type:"String",name:"nextPageToken"}]},v2GetThreadMessageList:{sid:33,cid:1,service:Qn,params:[{type:"Property",name:"messageRefer",reflectMapper:sn},{type:"Property",name:"tag",reflectMapper:{beginTime:1,endTime:2,excludeMessageServerId:3,limit:4,reverse:5}}],response:[{type:"Property",name:"message",reflectMapper:invertSerializeItem(sn)},{type:"Property",name:"replyResult",reflectMapper:invertSerializeItem({total:{id:1,retType:"number"},timestamp:{id:2,retType:"number"}})},{type:"PropertyArray",name:"replyList",reflectMapper:invertSerializeItem(sn)}]}};var lo,mo={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}},po={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}},mo)},uo={type:"array",min:1,itemType:"string"},ho={type:"boolean"},go={type:"string"},vo={type:"string",allowEmpty:!1},yo={type:"object",rules:{antispamBusinessId:{type:"string",required:!1}},required:!1},fo={teamId:{type:"string",regExp:/^[1-9]\d*$/,allowEmpty:!1}},Io={teamIds:{type:"array",itemRules:{type:"string",allowEmpty:!1,regExp:/^[1-9]\d*$/},min:1}},Mo={teamType:{type:"enum",values:[1,2]}},So={teamTypes:{type:"array",itemType:"enum",values:[1,2],required:!1}},To={inviteeParams:{type:"object",required:!0,rules:{inviteeAccountIds:uo,postscript:Object.assign(Object.assign({},go),{required:!1}),serverExtension:Object.assign(Object.assign({},go),{required:!1})}}},_o={updateTeamInfoParams:{type:"object",required:!0,rules:Object.assign({name:{type:"string",allowEmpty:!1,required:!1},memberLimit:{type:"number",min:1,required:!1}},mo)}},Co={type:"enum",values:[0,2]},Eo={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}}}}}},bo={chatBannedMode:{type:"enum",values:[0,1]}},No={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}}}},Ao={teamId:fo.teamId,teamType:{type:"enum",values:[1,2]},operatorAccountId:{type:"string",allowEmpty:!1}},Ro={actionType:{type:"enum",values:[0,2,1,3,4,5]}},Oo={actionType:{type:"enum",values:[2]}},ko={actionType:{type:"enum",values:[0]}},wo={types:{type:"array",itemType:"enum",values:[0,2,1,3,4,5],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}},Po={teamId:fo.teamId,teamType:Mo.teamType,accountIds:uo},Vo={accountId:{type:"string",allowEmpty:!1},teamNick:{type:"string"},antispamConfig:{type:"object",required:!1,rules:{antispamBusinessId:{type:"string",required:!1}}}};class V2NIMTeamModelImpl{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 r=this.chooseMap(e),i=0;return r.forEach((e=>{t&&e.isValidTeam&&i++,t||i++})),i}chooseMap(e){return 2===e?this.superTeamMap:1===e?this.teamMap:new Map}getById(e,t,r=!0){var i=this.chooseMap(t).get(e);if(i){if(r&&i.isValidTeam)return i;if(!r)return i}}getAll(e,t=!0){var r=this.chooseMap(e);return Array.from(r.values()).filter((e=>!(!t||!e.isValidTeam)||(!t||void 0))).sort(((e,t)=>t.updateTime-e.updateTime))}upsert(e){var t=e.teamId,r=e.teamType,i=this.chooseMap(r),s=i.get(t)||{},a=Object.assign({},s,e);return i.set(t,a),a}deleteById(e,t){var r=this.getById(e,t);if(r)return r.isValidTeam=!1,r}searchTeamByKeyword(e){var t=[];return this.teamMap.forEach((r=>{r.name.includes(e)&&t.push(r)})),this.superTeamMap.forEach((r=>{r.name.includes(e)&&t.push(r)})),t}}class V2NIMTeamMemberModelImpl{constructor(){this.teamMembers=[],this.superTeamMembers=[],this.maxSize=11e3}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,r){return this.chooseList(t).find((t=>t.teamId===e&&t.accountId===r))}upsert(e){var t=e.teamType,r=e.teamId,i=this.chooseList(t),s=i.findIndex((t=>t.teamId===r&&t.accountId===e.accountId));-1===s?i.push(e):i[s]=Object.assign(Object.assign({},i[s]),e),i.length>this.maxSize&&i.shift()}deleteByAccount(e,t,r){var i=this.chooseList(t),s=i.findIndex((t=>t.teamId===e&&t.accountId===r));if(-1!==s){var a=i[s];return a.inTeam=!1,i.splice(s,1),a}}deleteByTeamId(e,t){var r=this.chooseList(t).filter((t=>t.teamId!==e));2===t?this.superTeamMembers=r:this.teamMembers=r}}class V2NIMTeamNotificationImpl{constructor(e,t){this.core=e,this.service=t}processNotification(e){var{attachment:t,senderId:r,receiverId:i,createTime:s}=e,{id:a,data:n}=t,o=a>400?2:1,{id:c,ids:d,tinfo:l,mute:m}=formatTeamNotificationAttachData(n,o),p=this.service.model.getById(i,o);switch(this.core.logger.log(`v2Team::processNotification, notificationType:${a}, teamId:${i}`,n),a){case lo.SUPER_TEAM_INVITATION:case lo.TEAM_INVITATION:d.includes(this.core.account)&&this.onTeamJoined(l),this.onTeamMembersJoined(l,d.filter((e=>e!==this.core.account)));break;case lo.SUPER_TEAM_INVITE_ACCEPT:case lo.TEAM_INVITE_ACCEPT:r===this.core.account?(this.onTeamJoined(l),this.service.notificationModel.markExpired(l.teamId,l.teamType,r,s)):this.onTeamMemberJoined(l,r);break;case lo.SUPER_TEAM_APPLY_ACCEPT:case lo.TEAM_APPLY_ACCEPT:c===this.core.account?(this.onTeamJoined(l),this.service.notificationModel.markExpired(l.teamId,l.teamType,c,s)):this.onTeamMemberJoined(l,c);break;case lo.SUPER_TEAM_ADD_MANAGER:case lo.TEAM_ADD_MANAGER:this.updateTeamMemberRole(i,o,d,{memberRole:2,updateTime:s});break;case lo.SUPER_TEAM_REMOVE_MANAGER:case lo.TEAM_REMOVE_MANAGER:this.updateTeamMemberRole(i,o,d,{memberRole:0,updateTime:s});break;case lo.SUPER_TEAM_KICK:case lo.TEAM_KICK:this.onTeamInfoUpdated(l),d.forEach((e=>{e===this.core.account?this.onTeamLeft(i,o,!0):this.onTeamMemberKicked(r,l.teamId,l.teamType,e)}));break;case lo.SUPER_TEAM_LEAVE:case lo.TEAM_LEAVE:l?this.onTeamInfoUpdated(l):p&&r===this.core.account&&(p.isValidTeam=!1,this.onTeamInfoUpdated(p)),r===this.core.account?this.onTeamLeft(i,o,!1):this.onTeamMemberLeft(i,o,r);break;case lo.SUPER_TEAM_DISMISS:case lo.TEAM_DISMISS:this.onTeamDismissed(i,o);break;case lo.SUPER_TEAM_UPDATE:case lo.TEAM_UPDATED:this.onTeamInfoUpdated(l);break;case lo.SUPER_TEAM_TRANSFER_OWNER:case lo.TEAM_TRANSFER_OWNER:this.onTeamInfoUpdated(l),this.updateTeamMemberRole(i,o,[r,l.ownerAccountId],[{memberRole:0,updateTime:s},{memberRole:1,updateTime:s,joinTime:s}],!1);break;case lo.SUPER_TEAM_MEMBER_MUTE:case lo.TEAM_MEMBER_MUTE:this.service.model.upsert(l),this.updateTeamMemberRole(i,o,c?[c]:d,{chatBanned:0!==m,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,r){var i=this.service.model.deleteById(e,t)||generateTeamByTeamId(e,t,{isValidTeam:!1,isTeamEffective:!0});this.service.memberModel.deleteByAccount(e,t,this.core.account),this.service.emit("onTeamLeft",i,r)}onTeamDismissed(e,t){var r=this.service.model.deleteById(e,t);r||(r=generateTeamByTeamId(e,t,{isValidTeam:!1,isTeamEffective:!1})),r.isTeamEffective=!1,this.service.model.upsert(r),this.service.memberModel.deleteByTeamId(e,t),this.service.emit("onTeamDismissed",r)}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 r=e.updateTime||e.createTime,i=generateMemberByTeamId(e.teamId,e.teamType,t,{joinTime:r,updateTime:r});this.service.emit("onTeamMemberJoined",[i])}onTeamMembersJoined(e,t){var r=e.updateTime||e.createTime,i=t.map((t=>generateMemberByTeamId(e.teamId,e.teamType,t,{joinTime:r,updateTime:r})));0!==i.length&&(this.service.model.upsert(e),this.service.emit("onTeamInfoUpdated",e),this.service.emit("onTeamMemberJoined",i))}onTeamMemberLeft(e,t,r){var i=this.service.memberModel.deleteByAccount(e,t,r);i||(i=generateMemberByTeamId(e,t,r,{inTeam:!1})),this.service.emit("onTeamMemberLeft",[i])}onTeamMemberKicked(e,t,r,i){var s=this.service.memberModel.deleteByAccount(t,r,i);s||(s=generateMemberByTeamId(t,r,i,{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),r=this.core.V2NIMSettingService.getConversationMuteStatus(t);this.core.eventBus.emit("V2NIMSettingService/setMute",t,r)}})),this.service.emit("onTeamMemberInfoUpdated",e)}updateTeamMemberRole(e,t,r,i,s=!0){return __awaiter(this,void 0,void 0,(function*(){var a=r.filter(((r,s)=>{var a=this.service.memberModel.getById(e,t,r);return a&&this.service.memberModel.upsert(Object.assign(Object.assign({},a),Array.isArray(i)?i[s]:i)),!a}));if(s&&a.length>0)try{(yield this.service.getTeamMemberListByIds(e,t,a)).forEach((e=>this.service.memberModel.upsert(e)))}catch(e){this.core.logger.warn("v2Team::processNotification, getTeamMemberListByIds failed",e)}var n=r.map(((r,a)=>{var n=this.service.memberModel.getById(e,t,r);return n||s?n:generateMemberByTeamId(e,t,r,Array.isArray(i)?i[a]:i)})).filter((e=>!!e));n.length>0&&this.onTeamMemberInfoUpdated(n)}))}processSysNotification(e){if(!this.service.config.enableServerV2TeamJoinActionInfo){var{receiverId:t,postscript:r,senderId:i,timestamp:s,content:a}=e,n={};try{n=JSON.parse(a)}catch(e){this.core.logger.warn("v2Team::processSysNotification, parse content failed",a)}var o={0:0,1:1,2:2,3:3,15:0,16:1,17:2,18:3}[e.type],c=this.core.account,d="",l="";switch(o){case 0:d=i,l="";break;case 1:d=c,l="";break;case 2:d=i,l=c;break;case 3:d=c,l=i}var m={actionType:o,teamId:t,teamType:e.type>=15?2:1,operatorAccountId:i,postscript:r,timestamp:s,actionStatus:0,read:!1,fromAccountId:d,targetAccountId:l,serverId:"",updateTimestamp:s};n.attach&&(m.serverExtension=n.attach),this.core.logger.log("v2Team::processSysNotification, type:",e.type,m),this.service.notificationModelOld.create(m),this.service.emit("onReceiveTeamJoinActionInfo",m)}}updateTeamActionStatus(e,t){this.service.notificationModelOld.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))}setSyncTimestamp(e){e&&this.core.eventBus.emit("V2NIMSync/updateTimetag",{teamApplyList:e})}}!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"}(lo||(lo={}));var Lo="NIM_TEAM_OPERATION_READ_TIME_{ACCOUNT_ID}";class V2NIMTeamNotificationModelImpl{constructor(){this.datas=new Map,this.readTime=0,this.prefix=Lo,this.maxCount=1e3}reset(){this.datas.clear()}setReadTimePrefix(e){this.prefix=Lo.replace("{ACCOUNT_ID}",e),this.readTime=Number(ve.localStorage.getItem(this.prefix))||0,this.readTime>0&&this.datas.forEach((e=>{e.updateTimestamp<=this.readTime&&(e.read=!0)}))}getReadTime(){return this.readTime}getByOption(e){var{types:t,status:r,offset:i=0,limit:s=50}=e,a=Array.from(this.datas.values()).filter((e=>!(t&&t.length>0&&!t.includes(e.actionType))&&!(r&&r.length>0&&!r.includes(e.actionStatus)))).sort(((e,t)=>t.updateTimestamp-e.updateTimestamp)),n=a.slice(i,i+s),o=i+s>=a.length;return{infos:n,finished:o,offset:o?0:i+s}}setAllRead(){var e=0;this.datas.forEach((t=>{t.read=!0,e=Math.max(e,t.updateTimestamp)})),e&&(this.readTime=e,ve.localStorage.setItem(this.prefix,e.toString()))}setRead(e){var t=this.datas.get(e.serverId);t&&t.updateTimestamp&&(this.datas.forEach((e=>{e.updateTimestamp<=t.updateTimestamp&&(e.read=!0)})),this.readTime=t.updateTimestamp,ve.localStorage.setItem(this.prefix,t.updateTimestamp.toString()))}getUnreadCount(){var e=0;return this.datas.forEach((t=>{t.read||e++})),e}delete(e){this.datas.delete(e)}deleteByOption(e){var t=e.timestamp,r=e.type;this.datas.forEach((e=>{e.updateTimestamp<=t&&(r===q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL||r===q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_NORMAL&&1===e.teamType||r===q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_SUPER&&2===e.teamType)&&this.datas.delete(e.serverId)}))}upsert(e){e.serverId&&this.setLRU(e.serverId,e)}setLRU(e,t){if(this.datas.has(e))this.datas.delete(e);else if(this.datas.size>=this.maxCount){var r=this.datas.keys().next().value;r&&this.datas.delete(r)}this.datas.set(e,t)}updateStatus(e,t){if(0!==t){var r=this.datas.get(e);r&&0===r.actionStatus&&(r.actionStatus=t,this.datas.set(e,r))}}markExpired(e,t,r,i){this.datas.forEach((s=>{s.teamId===e&&s.teamType===t&&(s.fromAccountId===r&&0===s.actionType||s.targetAccountId===r&&2===s.actionType)&&0===s.actionStatus&&(s.actionStatus=3,s.updateTimestamp=i,this.datas.set(s.serverId,s))}))}getById(e){return this.datas.get(e)}}class V2NIMTeamNotificationModelOldImpl{constructor(){this.list=[],this.maxCount=1e3}reset(){this.list=[]}checkSameAction(e,t,r=!1){return e.teamId===t.teamId&&e.teamType===t.teamType&&e.actionType===t.actionType&&e.operatorAccountId===t.operatorAccountId&&(!r||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))}deleteByOption(e){var t=e.timestamp,r=e.type;this.list=this.list.filter((e=>!(e.updateTimestamp<=t&&(r===q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL||r===q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_NORMAL&&1===e.teamType||r===q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_SUPER&&2===e.teamType))))}getByOption(e){var{types:t,status:r,offset:i=0,limit:s=50}=e,a=[];this.list.forEach((e=>{t&&t.length>0&&!t.includes(e.actionType)||r&&r.length>0&&!r.includes(e.actionStatus)||a.push(e)})),a=a.sort(((e,t)=>t.timestamp-e.timestamp));var n=0;i>0&&(n=findIndexWithinTargetValue(a,"timestamp",i),a[n]&&a[n].timestamp===i&&(n+=1));var o=a.slice(n).length;return(a=a.slice(n,n+s)).length>0?{offset:o>s?a[a.length-1].timestamp:0,finished:!(o>s),infos:a}:{offset:0,finished:!0,infos:a}}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 V2NIMTeamEventImpl{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.notificationModel.setReadTimePrefix(this.core.account),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=generateMemberByTeamId(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 r=`${this.service.name}::emit ${e.toString()}`;if("onTeamCreated"===e||"onTeamDismissed"===e||"onTeamJoined"===e||"onTeamLeft"===e||"onTeamInfoUpdated"===e){var i=t[0];this.logger.log(`${r}`,`team:${i.teamId}_${i.teamType};updateTime:${i.updateTime}`)}else if("onTeamMemberJoined"===e||"onTeamMemberLeft"===e||"onTeamMemberInfoUpdated"===e){var s=t[0];this.logger.log(`${r}`,s.map((e=>`team:${e.teamId}_${e.teamType};account:${e.accountId}`)))}else if("onTeamMemberKicked"===e){var a=t[0],n=t[1];this.logger.log(`${r}`,`operator${a}`,n.map((e=>`team:${e.teamId}_${e.teamType};account:${e.accountId}`)))}else this.logger.log(`${r}`,...t)}onSyncDone(e){e?this.service.emit("onSyncFailed",e):this.service.emit("onSyncFinished")}}var Uo={1:2,2:5,3:3,4:0,5:4,6:1},Do={1:0,2:1,3:2,4:0,5:1,6:2};class V2NIMTeamHandlerImpl{constructor(e,t){this.core=e,this.service=t,this.model=t.model,this.memberModel=t.memberModel,this.notificationModel=t.notificationModel,this.notificationModelOld=t.notificationModelOld,this.logger=this.core.logger}get useServerNotification(){return this.service.config.enableServerV2TeamJoinActionInfo}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 r=generateMemberByTeamId(t.teamId,t.teamType,this.core.account,{memberRole:1});this.memberModel.upsert(r),this.service.emit("onTeamCreated",t)}v2SuperTeamCreateMultiSyncHandler(e){var t=e.content.data;this.model.upsert(t);var r=generateMemberByTeamId(t.teamId,t.teamType,this.core.account,{memberRole:1});this.memberModel.upsert(r),this.service.emit("onTeamCreated",t)}v2TeamMemberUpdateMultiSyncHandler(e){var t=e.content.data;t.teamType=1;var r=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&&r&&r.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 r=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&&r&&r.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),this.service.notificationModel.markExpired(e.teamId,e.teamType,e.accountId,e.joinTime)}))}v2SuperTeamMembersOfSelfInSyncHandler(e){e.content.datas.forEach((e=>{e.teamType=2,this.memberModel.upsert(e),this.service.notificationModel.markExpired(e.teamId,e.teamType,e.accountId,e.joinTime)}))}v2TeamJoinActionDeleteMultiSyncHandler(e){if(this.useServerNotification){var t=e.content.data;t&&(this.notificationModel.delete(t.serverId),this.service.notification.setSyncTimestamp(t.serverTime))}}v2TeamJoinActionClearMultiSyncHandler(e){if(this.useServerNotification){var t=e.content.data;this.notificationModel.deleteByOption({timestamp:t.timestamp,type:t.type}),this.service.notification.setSyncTimestamp(t.serverTime)}}v2TeamJoinActionListHandler(e){if(this.useServerNotification){var t=e.content.datas,r=e.content.serverTime;t.forEach((e=>{var t=this.completeTeamJoinAction(e);this.notificationModel.upsert(t),this.triggerEventFromJoinAction(t)})),this.service.notification.setSyncTimestamp(r)}}triggerEventFromJoinAction(e){this.service.emit("onReceiveTeamJoinActionInfo",e)}v2TeamJoinActionListSyncHandler(e){if(this.useServerNotification){var t=e.content.datas,r=e.content.serverTime;t.forEach((e=>{var t=this.notificationModel.getById(e.serverId),r=this.completeTeamJoinAction(e);this.notificationModel.upsert(r),t&&t.actionStatus!==r.actionStatus?this.triggerEventFromJoinAction(r):t||!1!==r.read||0!==r.actionStatus||this.triggerEventFromJoinAction(r)})),this.service.notification.setSyncTimestamp(r)}}completeTeamJoinAction(e){var t=this.notificationModel.getReadTime(),r=this.core.account,i=this.notificationModel.getById(e.serverId),s=!!this.model.getById(e.teamId,e.teamType);if("number"==typeof e.status){e.actionType=Uo[e.status];var a=e.finished||!1,n=Do[e.status];e.actionStatus=a&&0===n?3:n}return delete e.status,delete e.finished,0===e.actionStatus&&s&&(e.fromAccountId===r&&0===e.actionType||e.targetAccountId===r&&2===e.actionType)&&(e.actionStatus=3),e.updateTimestamp<=t?e.read=!0:e.operatorAccountId===r?e.read="boolean"!=typeof(null==i?void 0:i.read)||i.read:e.operatorAccountId!==r&&(e.read=!1),e.postscriptHistory&&e.postscriptHistory.length>0&&(e.postscript=e.postscriptHistory[e.postscriptHistory.length-1].content),e}v2TeamJoinActionClearSyncHandler(e){e.content.datas.forEach((e=>{this.notificationModel.delete(e.serverId),this.notificationModelOld.delete(e)})),e.content.clearInfos.forEach((e=>{var t=e.timestamp,r=e.type,i={timestamp:t||this.core.timeOrigin.getNTPTime(),type:r||q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL};this.notificationModel.deleteByOption(i),this.notificationModelOld.deleteByOption(i)}));var t=e.content.serverTime;this.service.notification.setSyncTimestamp(t)}}var xo="V2NIMUserService",qo={"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"},Bo={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"}},Fo={v2UpdateBlockList:{sid:34,cid:3,service:xo,params:[{type:"String",name:"accountId"},{type:"Bool",name:"addToBlockList"}]},v2GetUserList:{sid:34,cid:7,service:xo,params:[{type:"StrArray",name:"accountIds"}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(Bo)}]},v2UpdateSelfUserProfile:{sid:34,cid:10,service:xo,params:[{type:"Property",name:"tag",reflectMapper:Bo}],response:[{type:"Long",name:"updateTime"}]},onUpdateUserProfile:{sid:3,cid:110,service:xo,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Bo)}]},onUpdateBlockList:{sid:3,cid:103,service:xo,response:[{type:"String",name:"accountId"},{type:"Bool",name:"addToBlockList"}]},syncBlockAndMuteList:{sid:3,cid:8,service:xo,response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem({accountId:0,isMute:{id:1,retType:"boolean"},isBlock:{id:2,retType:"boolean"}})},{type:"Long",name:"timetag"}]},v2SyncSelfUserInfo:{sid:3,cid:109,service:xo,response:[{type:"Property",name:"user",reflectMapper:invertSerializeItem(Bo)}]},v2SetP2PMessageMuteMode:{sid:34,cid:5,service:xo,params:[{type:"String",name:"accountId"},{type:"Bool",name:"muteMode"}]},v2OnUpdateMuteList:{sid:3,cid:105,service:xo,response:[{type:"String",name:"accountId"},{type:"Bool",name:"mute"}]}};class V2NIMUserModelImpl{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 jo={type:"string",required:!0,allowEmpty:!1},$o={type:"string",required:!1,allowEmpty:!0},Go={name:{type:"string",required:!1,allowEmpty:!0},avatar:$o,sign:$o,email:$o,birthday:$o,mobile:$o,gender:{type:"number",required:!1},serverExtension:$o};class V2NIMUserServiceImpl extends V2Service{constructor(e){super("V2NIMUserService",e),registerParser({cmdMap:qo,cmdConfig:Fo}),this.model=new V2NIMUserModelImpl,"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 r=`${this.name}::emit ${e.toString()}`;if("onUserProfileChanged"===e){var i=t[0];this.logger.log(`${r}`,i.map((e=>`id:${e.accountId};name:${e.name};updateTime:${e.updateTime}`)))}else if("onBlockListAdded"===e){var s=t[0];this.logger.log(`${r}`,`id:${s.accountId};name:${s.name};updateTime:${s.updateTime}`)}else this.logger.log(`${r}`,...t);return super.emit(e,...t)}getUserList(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this._getUserList(e)}))}_getUserList(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({accountIds:uo},{accountIds:e},"",!0);var r=[];e.forEach((e=>{this.model.getUser(e)||r.push(e)}));var i=null;r.length>0&&(i=yield this.core.sendCmd("v2GetUserList",{accountIds:r})),((null===(t=null==i?void 0:i.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 __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate({accountIds:{type:"array",min:1,max:500,itemType:"string"}},{accountIds:e},"",!0);var t=(yield this.core.sendCmd("v2GetUserList",{accountIds:e})).content.data||[],r=[];t.forEach((e=>{var t=this.model.getUser(e.accountId);this.compareUserForUpdate(t,e)&&r.push(e),this.model.setUser(e)}));var i=e.reduce(((e,t)=>{var r=this.model.getUser(t);return r&&e.push(r),e}),[]);return r.length>0&&this.emit("onUserProfileChanged",r),i}))}compareUserForUpdate(e,t){return!e||!("number"==typeof e.updateTime&&"number"==typeof t.updateTime&&e.updateTime>=t.updateTime)}updateSelfUserProfile(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Go,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 __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),e===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot block yourself"}});validate({accountId:jo},{accountId:e},"",!0),yield this.core.sendCmd("v2UpdateBlockList",{accountId:e,addToBlockList:!0}),this.model.addToBlockList([e]),this.emitBlockListAdded(e)}))}removeUserFromBlockList(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),e===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot unblock yourself"}});validate({accountId:jo},{accountId:e},"",!0),yield this.core.sendCmd("v2UpdateBlockList",{accountId:e,addToBlockList:!1}),this.model.removeFromBlockList([e]),this.emit("onBlockListRemoved",e)}))}searchUserByOption(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate({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 V2NIMErrorImpl({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(),validate({accountIds:uo},{accountIds:e},"",!0),Promise.resolve(this.model.checkBlock(e))}updateUserProfileInMemory(e){return __awaiter(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 __awaiter(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 r=e.senderId;r!==this.core.account&&this.refreshUserInfo(r,t)}refreshUserInfo(e,t=0){return __awaiter(this,void 0,void 0,(function*(){if(e&&"string"==typeof e){var r=this.model.getUser(e),i=[];if(!r||r&&"number"==typeof r.updateTime&&"number"==typeof t&&!isNaN(r.updateTime)&&!isNaN(t)&&r.updateTime<t)try{i=(yield this.core.sendCmd("v2GetUserList",{accountIds:[e]})).content.data}catch(t){return void this.logger.warn(`V2NIMUserService:refreshUserInfo: failed for ${e}`)}for(var s of i)this.model.setUser(s),this.emit("onUserProfileChanged",[s])}}))}emitBlockListAdded(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this._getUserList([e]);1===t.length&&this.emit("onBlockListAdded",t[0])}))}v2OnUpdateMuteListHandler(e){return __awaiter(this,void 0,void 0,(function*(){var{accountId:t,mute:r}=e.content,i=r?1:0;this.core.eventBus.emit("v2NIMUserService/updateMuteList",t,i)}))}}var Ho="V2NIMFriendService",zo={"35_1":"v2AddFriend","35_2":"v2DeleteFriend","35_3":"v2SetFriendInfo","35_4":"v2IncFriendInfo","35_8":"v2FriendOperationDelete","35_9":"v2FriendOperationClear","12_108":"v2FriendOperationDeleteMultiSync","12_109":"v2FriendOperationClearMultiSync","12_101":"v2OnAddFriend","12_102":"v2OnDeleteFriend","12_103":"v2OnUpdateFriendInfo","12_5":"v2SyncFriendList","12_6":"v2SyncFriendUserList","12_107":"v2FriendOperationListSync","4_31":"v2FriendOperationListOnline","4_40":"v2FriendJoinActionClearSync"},Yo={applicantAccountId:1,recipientAccountId:2,operatorAccountId:3,status:{id:4,retConverter:e=>{switch(e){case"1":return 4;case"2":return 0;case"3":return 1;case"4":return 2}}},timestamp:{id:6,retType:"number"},updateTimestamp:{id:7,retType:"number"},postscriptHistory:{id:8,retConverter:e=>{if(e&&"string"==typeof e)try{return JSON.parse(e).map((e=>({fromAccount:e.accid,time:e.time,content:e.msg})))}catch(e){return}}},serverId:9},Jo={serverId:1,serverTime:{id:2,retType:"number"}},Wo={serverTime:{id:1,retType:"number"}},Ko={timestamp:{id:1,retType:"number"},type:{id:2,retType:"number"},serverTime:{id:3,retType:"number"}},Qo={accountId:4,relationShip:{id:5,retType:"number"},source:{id:7,retType:"number"},alias:8,serverExtension:10,createTime:{id:11,retType:"number"},updateTime:{id:12,retType:"number"},customerExtension:13},Xo={v2AddFriend:{sid:35,cid:1,service:Ho,params:[{type:"String",name:"accountId"},{type:"Byte",name:"verifyType"},{type:"String",name:"postscript"}],response:[]},v2DeleteFriend:{sid:35,cid:2,service:Ho,params:[{type:"String",name:"accountId"},{type:"Property",name:"params",reflectMapper:{deleteAlias:{id:1,converter:boolToInt}}}]},v2SetFriendInfo:{sid:35,cid:3,service:Ho,params:[{type:"Property",name:"tag",reflectMapper:Qo}]},v2OnAddFriend:{sid:12,cid:101,service:Ho,response:[{type:"String",name:"accountId"},{type:"Byte",name:"verifyType"},{type:"String",name:"postscript"},{type:"Property",name:"ext",reflectMapper:invertSerializeItem({serverExt:1})}]},v2OnDeleteFriend:{sid:12,cid:102,service:Ho,response:[{type:"String",name:"accountId"}]},v2OnUpdateFriendInfo:{sid:12,cid:103,service:Ho,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Qo)}]},v2SyncFriendList:{sid:12,cid:5,service:Ho,response:[{type:"PropertyArray",name:"friends",reflectMapper:invertSerializeItem(Qo)},{type:"Long",name:"timetag"}]},v2SyncFriendUserList:{sid:12,cid:6,service:Ho,response:[{type:"PropertyArray",name:"users",reflectMapper:invertSerializeItem(Bo)}]},v2IncFriendInfo:{sid:35,cid:4,service:Ho,params:[{type:"Long",name:"timetag"}],response:[{type:"PropertyArray",name:"friends",reflectMapper:invertSerializeItem(Qo)},{type:"Long",name:"timetag"}]},v2FriendOperationListSync:{sid:12,cid:107,service:Ho,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Yo)},{type:"Long",name:"serverTime"}]},v2FriendOperationListOnline:{sid:4,cid:31,service:Ho,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Yo)}]},v2FriendOperationDelete:{sid:35,cid:8,service:Ho,params:[{type:"Property",name:"tag",reflectMapper:Jo}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Wo)}]},v2FriendOperationDeleteMultiSync:{sid:12,cid:108,service:Ho,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Jo)}]},v2FriendOperationClearMultiSync:{sid:12,cid:109,service:Ho,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ko)}]},v2FriendOperationClear:{sid:35,cid:9,service:Ho,params:[{type:"Property",name:"tag",reflectMapper:Ko}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Wo)}]},v2FriendJoinActionClearSync:{sid:4,cid:40,service:Ho,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Yo)},{type:"PropertyArray",name:"clearInfos",reflectMapper:invertSerializeItem(Ko)},{type:"Long",name:"serverTime"}]}},Zo={accountId:{type:"string",required:!0,allowEmpty:!1},params:{type:"object",required:!0,rules:{addMode:{type:"enum",required:!0,values:[1,2]},postscript:{type:"string",required:!1,allowEmpty:!0}}}},ec={accountId:{type:"string",required:!0,allowEmpty:!1},params:{type:"object",required:!1,rules:{deleteAlias:{type:"boolean",required:!1}}}},tc={accountId:{type:"string",required:!0,allowEmpty:!1},params:{type:"object",required:!1,rules:{alias:{type:"string",required:!1,allowEmpty:!0},serverExtension:{type:"string",required:!1,allowEmpty:!0}}}},rc={applicantAccountId:{type:"string",allowEmpty:!1},recipientAccountId:{type:"string",allowEmpty:!1},operatorAccountId:{type:"string",required:!1,allowEmpty:!1},postscript:{type:"string",required:!1,allowEmpty:!0},status:{type:"enum",values:[1,4,3,0,2]},timestamp:{type:"number",min:1},serverId:{type:"string",required:!1}};function checkApplication(e,t){if(validate(rc,e,"",!0),e&&e.applicantAccountId!==t&&e.recipientAccountId!==t)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Friend application is not your own"}})}var ic={offset:{type:"number",required:!1},limit:{type:"number",required:!1},status:{type:"array",itemType:"enum",required:!1,values:[1,4,3,0,2]}};class V2NIMFriendNotificationImpl{constructor(e,t){this.core=e,this.service=t}processSysNotification(e){if(6===e.type){var t=e.senderId;this.core.V2NIMFriendService.handleDeleteFriend(t,2)}else if(5===e.type&&!this.service.config.enableServerV2FriendAddApplication)try{var r=JSON.parse(e.content);if(1===(null==r?void 0:r.vt)){this.core.V2NIMFriendService.handleAddFriend(e.senderId);var i={applicantAccountId:e.senderId,recipientAccountId:e.receiverId,operatorAccountId:e.senderId,postscript:e.postscript,serverId:"",timestamp:e.timestamp,updateTimestamp:e.timestamp,status:4,read:!1};this.service.notificationModelOld.appendFriendAddApplication(i),this.service.notificationModelOld.updateFriendAddApplicationStatus(i.applicantAccountId,4,i.applicantAccountId)}else if(2===(null==r?void 0:r.vt)){var s={applicantAccountId:e.senderId,recipientAccountId:e.receiverId,operatorAccountId:e.senderId,postscript:e.postscript,timestamp:e.timestamp,serverId:"",updateTimestamp:e.timestamp,status:0,read:!1};this.service.handleApplyFriend(s),this.service.notificationModelOld.appendFriendAddApplication(s)}else if(3===(null==r?void 0:r.vt)){this.core.V2NIMFriendService.handleAddFriend(e.senderId);var a={applicantAccountId:e.receiverId,recipientAccountId:e.senderId,operatorAccountId:e.senderId,timestamp:e.timestamp,serverId:"",updateTimestamp:e.timestamp,postscript:e.postscript,status:1,read:!1};this.service.notificationModelOld.appendFriendAddApplication(a)}else if(4===(null==r?void 0:r.vt)){var n={applicantAccountId:e.receiverId,recipientAccountId:e.senderId,operatorAccountId:e.senderId,timestamp:e.timestamp,serverId:"",updateTimestamp:e.timestamp,postscript:e.postscript,status:2,read:!1};this.service.notificationModelOld.appendFriendAddApplication(n),this.service.emit("onFriendAddRejected",n)}}catch(e){this.core.logger.warn("V2NIMFriendNotificationImpl::processSysNotification, parse content error:",e)}}setSyncTimestamp(e){e&&this.core.eventBus.emit("V2NIMSync/updateTimetag",{friendOperatorList:e,friendApplyInfoDeleteOrClear:e})}}class V2NIMFriendModelImpl{constructor(){this.validFriendIds=new Set,this.friendMap=new Map,this.friendTimetag=0}reset(){this.friendMap.clear(),this.validFriendIds.clear()}upsertFriend(e,t){delete t.relationShip;var r=this.friendMap.get(e)||{},i=Object.assign({accountId:e},r,t);return this.friendMap.set(e,i),this.validFriendIds.add(e),i}addFriend(e){this.validFriendIds.add(e)}deleteFriend(e){this.validFriendIds.delete(e)}getFriend(e){return this.validFriendIds.has(e)?this.friendMap.get(e):void 0}getFriendList(){return Array.from(this.validFriendIds.values()).map((e=>this.getFriend(e))).filter((e=>!!e))}getFriendListBySearchOption(e){return Array.from(this.validFriendIds.values()).map((e=>this.getFriend(e))).filter((t=>{var r=void 0===e.searchAlias||e.searchAlias;return void 0!==t&&(!!(r&&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}}var sc="NIM_FRIEND_OPERATION_READ_TIME_{ACCOUNT_ID}";class V2NIMFriendNotificationModelImpl{constructor(){this.datas=new Map,this.readTime=0,this.prefix=sc,this.maxCount=1e3}reset(){this.datas.clear()}setReadTimePrefix(e){this.prefix=sc.replace("{ACCOUNT_ID}",e),this.readTime=Number(ve.localStorage.getItem(this.prefix))||0,this.readTime>0&&this.datas.forEach((e=>{e.updateTimestamp<=this.readTime&&(e.read=!0)}))}getReadTime(){return this.readTime}getByOption(e,t){var r=void 0===e.offset?0:e.offset,i=Array.from(this.datas.values()).sort(((e,t)=>t.updateTimestamp-e.updateTimestamp));e.status&&e.status.length>0&&(i=i.filter((t=>{var r;return null===(r=e.status)||void 0===r?void 0:r.includes(t.status)})));var s=e.type?e.type:0;i=i.filter((e=>0===s?e.operatorAccountId!==t:1===s?e.applicantAccountId===t:2!==s||e.recipientAccountId===t));var a=e.limit||50,n=i.slice(r,r+a),o=r+a>=i.length;return{infos:n,finished:o,offset:o?0:r+a}}setAllRead(){var e=0;this.datas.forEach((t=>{t.read=!0,e=Math.max(e,t.updateTimestamp)})),e&&(this.readTime=e,ve.localStorage.setItem(this.prefix,e.toString()))}setRead(e){var t=this.datas.get(e.serverId);t&&t.updateTimestamp&&(this.datas.forEach((e=>{e.updateTimestamp<=t.updateTimestamp&&(e.read=!0)})),this.readTime=t.updateTimestamp,ve.localStorage.setItem(this.prefix,t.updateTimestamp.toString()))}getUnreadCount(){var e=0;return this.datas.forEach((t=>{t.read||e++})),e}delete(e){this.datas.delete(e)}deleteByOption(e,t){var r=e.timestamp,i=e.type;this.datas.forEach((e=>{e.updateTimestamp<=r&&(3===i||1===i&&e.applicantAccountId===t||2===i&&e.recipientAccountId===t)&&this.datas.delete(e.serverId)}))}upsert(e){e.serverId&&this.setLRU(e.serverId,e)}setLRU(e,t){if(this.datas.has(e))this.datas.delete(e);else if(this.datas.size>=this.maxCount){var r=this.datas.keys().next().value;r&&this.datas.delete(r)}this.datas.set(e,t)}clear(){this.datas.clear()}updateStatus(e,t){if(0!==t){var r=this.datas.get(e);r&&0===r.status&&(r.status=t,this.datas.set(e,r))}}getById(e){return this.datas.get(e)}}class V2NIFriendEventImpl{constructor(e,t){this.core=e,this.service=t,this.logger=this.core.logger}setListener(){this.core.eventBus.on("V2NIMFriendService/sysNotification",this.service.notification.processSysNotification.bind(this.service.notification)),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",this.setOperationReadTime.bind(this))}beforeEmit(e,...t){var r=`${this.service.name}::emit ${e.toString()}`;if("onFriendAdded"===e||"onFriendInfoChanged"===e){var i=t[0];this.logger.log(`${r}`,`${i.accountId};updateTime:${i.updateTime}`)}else this.logger.log(`${r}`,...t)}setOperationReadTime(){this.service.notificationModel.setReadTimePrefix(this.core.account)}}function completeFriendOperation(e,t,r,i){return e.updateTimestamp<=t?e.read=!0:0!==e.status&&4!==e.status||e.applicantAccountId!==r?(i&&0===i.status&&e.status,e.read=!1):e.read=!0,e.postscriptHistory&&e.postscriptHistory.length>0&&(e.postscript=e.postscriptHistory[e.postscriptHistory.length-1].content),e}class V2NIMMFriendHandlerImpl{constructor(e,t){this.core=e,this.service=t,this.model=t.model,this.notificationModel=t.notificationModel,this.notificationModelOld=t.notificationModelOld,this.logger=this.core.logger}get useServerNotification(){return this.service.config.enableServerV2FriendAddApplication}v2OnAddFriendHandler(e){if(!this.useServerNotification){var{accountId:t,verifyType:r,postscript:i}=e.content;if(1===r)this.service.handleAddFriend(t),this.notificationModelOld.updateFriendAddApplicationStatus(t,4,this.core.account);else if(2===r){var s={applicantAccountId:this.core.account,recipientAccountId:t,operatorAccountId:this.core.account,postscript:i,timestamp:this.core.timeOrigin.getNTPTime(),updateTimestamp:this.core.timeOrigin.getNTPTime(),serverId:"",status:0,read:!1};this.service.handleApplyFriend(s)}else if(3===r)this.service.handlePassFriendApply(t);else if(4===r){var a={applicantAccountId:t,recipientAccountId:this.core.account,operatorAccountId:this.core.account,postscript:i,timestamp:this.core.timeOrigin.getNTPTime(),serverId:"",updateTimestamp:this.core.timeOrigin.getNTPTime(),status:2,read:!1};this.service.handleRejectFriendApply(a)}}}v2OnDeleteFriendHandler(e){var{accountId:t}=e.content;this.service.handleDeleteFriend(t)}v2OnUpdateFriendInfoHandler(e){var{data:t}=e.content,r=this.model.upsertFriend(t.accountId,t);this.service.emit("onFriendInfoChanged",this.service.computedField(r))}v2SyncFriendListHandler(e){var{friends:t,timetag:r}=e.content;this.model.setFriendTimetag(r),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)}))}v2FriendOperationListSyncHandler(e){if(this.useServerNotification){var t=e.content.datas,r=e.content.serverTime,i=this.notificationModel.getReadTime();t.map((e=>completeFriendOperation(e,i,this.core.account))).forEach((e=>{var t=this.notificationModel.getById(e.serverId);t&&t.status!==e.status?this.triggerEventFromOperation(e):t||!1!==e.read||0!==e.status||this.triggerEventFromOperation(e),this.notificationModel.upsert(e)})),this.service.notification.setSyncTimestamp(r)}}v2FriendOperationListOnlineHandler(e){if(this.useServerNotification){var t=e.content.data,r=this.notificationModel.getReadTime(),i=this.notificationModel.getById(t.serverId),s=completeFriendOperation(t,r,this.core.account,i);this.notificationModel.upsert(s),this.triggerEventFromOperation(s),this.service.notification.setSyncTimestamp(s.updateTimestamp)}}triggerEventFromOperation(e){var t=this.core.account;0===e.status&&e.operatorAccountId!==t?this.service.emit("onFriendAddApplication",e):2===e.status&&e.operatorAccountId!==t?this.service.emit("onFriendAddRejected",e):(1===e.status||4===e.status)&&this.service.handleAddFriend(e.applicantAccountId===this.core.account?e.recipientAccountId:e.applicantAccountId)}get hasUserService(){var e;return!!(null===(e=this.core.V2NIMUserService)||void 0===e?void 0:e.name)}v2FriendOperationDeleteMultiSyncHandler(e){if(this.useServerNotification){var t=e.content.data,r=t.serverTime;this.notificationModel.delete(t.serverId),this.service.notification.setSyncTimestamp(r)}}v2FriendOperationClearMultiSyncHandler(e){if(this.useServerNotification){var t=e.content.data,r=t.serverTime;this.notificationModel.deleteByOption({timestamp:t.timestamp,type:t.type},this.core.account),this.service.notification.setSyncTimestamp(r)}}v2FriendJoinActionClearSyncHandler(e){e.content.datas.forEach((e=>{this.notificationModel.delete(e.serverId),this.notificationModelOld.deleteApplication(e)})),e.content.clearInfos.forEach((e=>{var t=e.timestamp,r=e.type,i={timestamp:t||this.core.timeOrigin.getNTPTime(),type:r||3};this.notificationModel.deleteByOption(i,this.core.account),this.notificationModelOld.deleteByOption(i,this.core.account)}));var t=e.content.serverTime;this.service.notification.setSyncTimestamp(t)}}class V2NIMFriendNotificationModelOldImpl{constructor(){this.list=[],this.maxCount=1e3}reset(){this.list=[]}updateFriendAddApplicationStatus(e,t,r){if(0!==t)for(var i of this.list)i.applicantAccountId===e&&0===i.status&&(i.status=t,i.operatorAccountId=r)}getAddApplicationList(e){var t=void 0===e.offset?0:e.offset,r=this.list.filter((t=>{var r=e.status||[];return 0===r.length||!!r.includes(t.status)})).reverse(),i=e.limit||50,s=r.slice(t,t+i),a=t+i>=r.length;return{infos:s,finished:a,offset:a?0:t+i}}checkSameApplication(e,t,r=!1){return e.applicantAccountId===t.applicantAccountId&&e.recipientAccountId===t.recipientAccountId&&(!r||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))}deleteByOption(e,t){var r=e.timestamp,i=e.type;this.list=this.list.filter((e=>!(e.timestamp<=r&&(3===i||1===i&&e.applicantAccountId===t||2===i&&e.recipientAccountId===t))))}}var ac={muteMode:{type:"enum",values:[2,0,1]}},nc={accountId:{type:"string",required:!0,allowEmpty:!1},muteMode:{type:"enum",required:!0,values:[2,0,1]}},oc={type:"object",required:!1,rules:{certificateName:{type:"string",required:!0,allowEmpty:!1},appId:{type:"string",required:!1,allowEmpty:!1},appKey:{type:"string",required:!1,allowEmpty:!1},secret:{type:"string",required:!1,allowEmpty:!1}}},cc={config:{type:"object",required:!0,rules:{apns:oc,hwPush:oc,miPush:oc,vivoPush:oc,oppoPush:oc,honorPush:oc,fcmPush:oc,mzPush:oc}}},dc="V2NIMSettingService",lc={"34_1":"v2SetDeviceToken","34_2":"v2SetAppBackground","34_15":"v2SetPushMobileOnDesktopOnline","3_115":"v2SettingMutilSyncDonnop","4_13":"v2SettingSyncDonnop"},mc={need:{id:1,converter:e=>e?2:1,retConverter:e=>"2"===e}},pc={v2SetDeviceToken:{sid:34,cid:1,service:dc,params:[{type:"String",name:"certificateName"},{type:"String",name:"pushDeviceToken"},{type:"Int",name:"pushkit"}]},v2SetAppBackground:{sid:34,cid:2,service:dc,params:[{type:"Bool",name:"isBackground"},{type:"Int",name:"badge"}]},v2SetPushMobileOnDesktopOnline:{sid:34,cid:15,service:dc,params:[{type:"Property",name:"tag",reflectMapper:mc}]},v2SettingMutilSyncDonnop:{sid:3,cid:115,service:dc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(mc)},{type:"Long",name:"timetag"}]},v2SettingSyncDonnop:{sid:4,cid:13,service:dc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(mc)},{type:"Long",name:"timetag"}]}};class V2NIMSettingHandlerImpl{constructor(e,t){this.core=e,this.service=t}v2SettingMutilSyncDonnopHandler(e){var{need:t}=e.content.data;this.service.needToPushMobileOnDesktopOnline=t,this.service.emit("onPushMobileOnDesktopOnline",t)}v2SettingSyncDonnopHandler(e){var{need:t}=e.content.data;this.service.needToPushMobileOnDesktopOnline=t,this.service.emit("onPushMobileOnDesktopOnline",t)}}class V2NIMSettingPushImpl{constructor(e,t){this.offlinePushPlugin=void 0,this.offlinePushConfig=void 0,this.authConfig=void 0,this.aosPushInfo=void 0,this.appBackgroundOptions={badge:0,isBackground:!1},this.setTokenAndBackgroundStateAfterLogin=e=>{this.aosPushInfo=e,this.logger.log("OfflinePushService: setToken, deviceClientId:",null==e?void 0:e.clientId),this.offlinePushPlugin&&(this.logger.log("OfflinePushService: setToken plugin is provided"),this.logger.log("OfflinePushService: setToken pushType is: ",e&&e.pushType),this.regToken(),this.core.sendCmd("v2SetAppBackground",{isBackground:this.appBackgroundOptions.isBackground,badge:this.appBackgroundOptions.badge||0}))},this.core=e,this.service=t,this.logger=e.logger}getRNDeviceInfo(){var e;return this.logger.log("OfflinePushService:getDeviceInfo start"),null===(e=this.offlinePushPlugin)||void 0===e||e.init(JSON.stringify(this.authConfig),((e,t,r)=>{if(this.logger.log(`OfflinePushService:: type: ${e}, tokenName: ${t}, token: ${r}`),r){var i="",s=ve.getSystemInfo()||{},a=s.os?s.os.toLowerCase():"";this.aosPushInfo&&this.aosPushInfo.pushType?i=this.aosPushInfo.pushType:"ios"===a?i="":"android"===a&&(i="8"),this.pushTokenToServer(i,r)}else this.logger.warn("OfflinePushService:: token is empty. Please check your parameters")})),new Promise(((e,t)=>{var r;null===(r=this.offlinePushPlugin)||void 0===r||r.getDeviceInfo((r=>{try{this.logger.log(`OfflinePushService:getDeviceInfo result ${r?JSON.stringify(r):""}`),e(JSON.parse(r))}catch(e){t(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"OfflinePushService:getDeviceInfo error"}}))}})),setTimeout((()=>{t(new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"OfflinePushService:getDeviceInfo timeout"}}))}),2e3)}))}pushTokenToServer(e,t){var r,i,s,a,n,o,c,d,l="",m=this.offlinePushConfig;switch(e){case"5":l=null===(r=null==m?void 0:m.miPush)||void 0===r?void 0:r.certificateName;break;case"6":l=null===(i=null==m?void 0:m.hwPush)||void 0===i?void 0:i.certificateName;break;case"7":l=null===(s=null==m?void 0:m.mzPush)||void 0===s?void 0:s.certificateName;break;case"8":l=null===(a=null==m?void 0:m.fcmPush)||void 0===a?void 0:a.certificateName;break;case"9":l=null===(n=null==m?void 0:m.vivoPush)||void 0===n?void 0:n.certificateName;break;case"10":l=null===(o=null==m?void 0:m.oppoPush)||void 0===o?void 0:o.certificateName;break;case"11":l=null===(c=null==m?void 0:m.honorPush)||void 0===c?void 0:c.certificateName;break;default:l=null===(d=null==m?void 0:m.apns)||void 0===d?void 0:d.certificateName}if(""===l||void 0===l)this.logger.warn("OfflinePushService:: certificate name is empty for push type: ",e);else try{if("UNIAPP"===ve.platform){var p=Mi.parse("557d1e3cafa43e2589a588270c53d56f"),u=Mi.stringify(Li.decrypt(t,p));this.logger.log("OfflinePushService:: token",u),this.core.sendCmd("v2SetDeviceToken",{certificateName:l,pushDeviceToken:u,pushkit:0})}else this.core.sendCmd("v2SetDeviceToken",{certificateName:l,pushDeviceToken:t,pushkit:0})}catch(e){return this.logger.log("OfflinePushService:: decrypt error",e),void this.logger.warn("OfflinePushService:: token before decrypt",t)}}regToken(){var e=ve.getSystemInfo()||{},t=e.os?e.os.toLowerCase():"";if(this.logger.log("OfflinePushService: os",t),"ios"===t||"android"===t)if(!this.offlinePushPlugin||"UNIAPP"===ve.platform&&"function"!=typeof this.offlinePushPlugin.getDeviceToken||"React Native"===ve.platform&&"android"===t&&"function"!=typeof this.offlinePushPlugin.init||"React Native"===ve.platform&&"ios"===t&&"function"!=typeof this.offlinePushPlugin.checkPermissions)this.logger.warn("OfflinePushService: plugin is not correct, please check your plugin according to Yunxin Official Documentation");else{"React Native"===ve.platform&&ve.envPayload.AppState&&ve.envPayload.AppState.addEventListener("change",this.handleRNAppStateChange.bind(this));var r="";this.aosPushInfo&&this.aosPushInfo.pushType?r=this.aosPushInfo.pushType:"ios"===t?r="":"android"===t&&(r="8"),this.logger.log("OfflinePushService:: prepare to get device token. suggestPushType: "+r),this.logger.log("OfflinePushService push config",JSON.stringify(this.authConfig,null,2),"platform",ve.platform),"UNIAPP"===ve.platform?this.offlinePushPlugin.getDeviceToken({suggestPushType:r,config:this.authConfig},(e=>{e?(this.logger.log("OfflinePushService:: token is :"+e),this.pushTokenToServer(r,e)):this.logger.warn("OfflinePushService:: token is empty. Please check your parameters")})):"React Native"===ve.platform&&"android"===t?(this.logger.log("OfflinePushService:: onLogin",this.core.account,typeof r,r),this.offlinePushPlugin.onLogin(this.core.account,parseInt(r),!1,"")):"React Native"===ve.platform&&"ios"===t?this.offlinePushPlugin.checkPermissions((()=>{this.logger.log("OfflinePushService addEventListener requestPermissions");try{this.offlinePushPlugin.requestPermissions()}catch(e){this.logger.log("OfflinePushService:: requestPermissions error",e)}this.offlinePushPlugin.addEventListener("register",(e=>{this.logger.log(`OfflinePushService:: ios token: ${e}`),this.pushTokenToServer(r,e)})),this.offlinePushPlugin.addEventListener("registrationError",(e=>{this.logger.log("OfflinePushService:: ios registerError",e)}))})):this.logger.error(`OfflinePushService:: platform is not supported. Please check your parameters. Platform: ${ve.platform}. os: ${t}`)}else this.logger.warn("OfflinePushService: only Android or IOS support offline push")}handleRNAppStateChange(e){this.logger.log(`push::handleAppStateChange: pushConfig ios/aos; state: ${e}`),this.appBackgroundOptions={badge:this.core.V2NIMLocalConversationService.getTotalUnreadCount(),isBackground:"background"===e||"inactive"===e},this.setAppBackground(this.appBackgroundOptions.isBackground,this.appBackgroundOptions.badge)}setOfflinePushConfig(e,t){var r,i,s,a,n,o,c,d,l,m,p,u,h,g,v,y,f,I,M,S,T,_,C,E,b,N,A,R,O,k,w,P,V,L,U,D;this.logger.log("setOfflinePushConfig","plugin",e,"config",t),this.offlinePushPlugin=e,this.offlinePushConfig=t,this.authConfig={xmAppId:null===(i=null===(r=this.offlinePushConfig)||void 0===r?void 0:r.miPush)||void 0===i?void 0:i.appId,xmAppKey:null===(a=null===(s=this.offlinePushConfig)||void 0===s?void 0:s.miPush)||void 0===a?void 0:a.appKey,xmCertificateName:null===(o=null===(n=this.offlinePushConfig)||void 0===n?void 0:n.miPush)||void 0===o?void 0:o.certificateName,hwAppId:null===(d=null===(c=this.offlinePushConfig)||void 0===c?void 0:c.hwPush)||void 0===d?void 0:d.appId,hwCertificateName:null===(m=null===(l=this.offlinePushConfig)||void 0===l?void 0:l.hwPush)||void 0===m?void 0:m.certificateName,oppoAppId:null===(u=null===(p=this.offlinePushConfig)||void 0===p?void 0:p.oppoPush)||void 0===u?void 0:u.appId,oppoAppKey:null===(g=null===(h=this.offlinePushConfig)||void 0===h?void 0:h.oppoPush)||void 0===g?void 0:g.appKey,oppoAppSecret:null===(y=null===(v=this.offlinePushConfig)||void 0===v?void 0:v.oppoPush)||void 0===y?void 0:y.secret,oppoCertificateName:null===(I=null===(f=this.offlinePushConfig)||void 0===f?void 0:f.oppoPush)||void 0===I?void 0:I.certificateName,vivoAppId:null===(S=null===(M=this.offlinePushConfig)||void 0===M?void 0:M.vivoPush)||void 0===S?void 0:S.appId,vivoAppKey:null===(_=null===(T=this.offlinePushConfig)||void 0===T?void 0:T.vivoPush)||void 0===_?void 0:_.appKey,vivoCertificateName:null===(E=null===(C=this.offlinePushConfig)||void 0===C?void 0:C.vivoPush)||void 0===E?void 0:E.certificateName,fcmCertificateName:null===(N=null===(b=this.offlinePushConfig)||void 0===b?void 0:b.fcmPush)||void 0===N?void 0:N.certificateName,mzAppId:null===(R=null===(A=this.offlinePushConfig)||void 0===A?void 0:A.mzPush)||void 0===R?void 0:R.appId,mzAppKey:null===(k=null===(O=this.offlinePushConfig)||void 0===O?void 0:O.mzPush)||void 0===k?void 0:k.appKey,mzCertificateName:null===(P=null===(w=this.offlinePushConfig)||void 0===w?void 0:w.mzPush)||void 0===P?void 0:P.certificateName,apnsCertificateName:null===(L=null===(V=this.offlinePushConfig)||void 0===V?void 0:V.apns)||void 0===L?void 0:L.certificateName,honorCertificateName:null===(D=null===(U=this.offlinePushConfig)||void 0===U?void 0:U.honorPush)||void 0===D?void 0:D.certificateName}}setAppBackground(e,t){return __awaiter(this,void 0,void 0,(function*(){this.appBackgroundOptions={isBackground:e,badge:t||0},yield this.core.sendCmd("v2SetAppBackground",{isBackground:e,badge:t||0})}))}}class V2NIMSettingMuteImpl{constructor(e,t){this.p2pMessageMuteModeChangeHandler=(e,t)=>{this.service.emit("onP2PMessageMuteModeChanged",e,t),this.hasUserService&&this.core.V2NIMUserService.model.setAccountMuteMode(e,t);var r=this.core.V2NIMConversationIdUtil.p2pConversationId(e),i=1===t;this.core.eventBus.emit("V2NIMSettingService/setMute",r,i)},this.core=e,this.service=t}get hasUserService(){var e;return!!(null===(e=this.core.V2NIMUserService)||void 0===e?void 0:e.name)}get hasTeamService(){var e;return!!(null===(e=this.core.V2NIMTeamService)||void 0===e?void 0:e.name)}getConversationMuteStatus(e){if("string"!=typeof e)return!1;var t=this.core.V2NIMConversationIdUtil.parseConversationType(e),r=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e);return 3===t?0!==this.getTeamMessageMuteMode(r,2):2===t?0!==this.getTeamMessageMuteMode(r,1):!(1!==t||!this.hasUserService)&&!!this.core.V2NIMUserService.model.muteList.has(r)}setTeamMessageMuteMode(e,t,r){return __awaiter(this,void 0,void 0,(function*(){var i=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",s={teamId:e,teamType:t,accountId:this.core.account,bits:r};yield this.core.sendCmd(i,{teamMember:s}),this.core.V2NIMTeamService.memberModel.upsert(s),this.service.emit("onTeamMessageMuteModeChanged",e,t,r);var a=1===t?this.core.V2NIMConversationIdUtil.teamConversationId(e):this.core.V2NIMConversationIdUtil.superTeamConversationId(e),n=this.getConversationMuteStatus(a);this.core.eventBus.emit("V2NIMSettingService/setMute",a,n)}))}getTeamMessageMuteMode(e,t){var r;return"string"!=typeof e||"number"!=typeof t?0:this.hasTeamService?3&((null===(r=this.core.V2NIMTeamService.memberModel.getById(e,t,this.core.account))||void 0===r?void 0:r.bits)||0):0}getAllTeamMessageMuteMode(e){if(!this.hasTeamService)return Promise.resolve({});var t=this.core.V2NIMTeamService.memberModel.chooseList(e),r={};return t.forEach((e=>{if(e.accountId===this.core.account){var t=e.bits||0;r[e.teamId]=3&t}})),Promise.resolve(r)}setP2PMessageMuteMode(e,t){return __awaiter(this,void 0,void 0,(function*(){yield this.core.sendCmd("v2SetP2PMessageMuteMode",{accountId:e,muteMode:1===t}),this.p2pMessageMuteModeChangeHandler(e,t)}))}getP2PMessageMuteMode(e){return this.hasUserService&&this.core.V2NIMUserService.model.muteList.has(e)?1:0}getP2PMessageMuteList(){return this.hasUserService?Promise.resolve(Array.from(this.core.V2NIMUserService.model.muteList)):Promise.resolve([])}}class V2NIMSettingEventImpl{constructor(e,t){this.core=e,this.service=t,this.push=t.push,this.mute=t.mute}setListener(){this.core.eventBus.on("V2NIMSettingService/updateBits",((e,t,r)=>{this.service.emit("onTeamMessageMuteModeChanged",e,t,r)})),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",this.push.setTokenAndBackgroundStateAfterLogin.bind(this.push)),this.core.eventBus.on("v2NIMUserService/updateMuteList",this.mute.p2pMessageMuteModeChangeHandler.bind(this.mute)),this.core.eventBus.on("forwardReceive/v2NIMSettingService/setP2PMessageMuteMode",this.mute.p2pMessageMuteModeChangeHandler.bind(this.mute))}}var uc={"27_1":"v2NIMSync","27_10":"v2QChatSync"},hc={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,friendOperatorList:32,p2pMsgReceiptV2:33,p2pSessionAckV2:34,teamSessionAckV2:35,superTeamSessionAckV2:36,teamApplyList:38,friendApplyInfoDeleteOrClear:39,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"}]}};class V2NIMAIModelImpl{constructor(){this.aiStreamMap=new Map}reset(){this.aiStreamMap.clear()}getAiStream(e){return this.aiStreamMap.get(e)}getAiStreamIsComplete(e){var t=this.aiStreamMap.get(e);return!t||t.isComplete}getAiStreamQueryStatus(e){var t=this.aiStreamMap.get(e);return t?t.queryStatus:0}upsertAiStreamChunks(e,t,r){var i=this.aiStreamMap.get(e);return i&&!i.isComplete&&(i.chunks[t]=r),i||{isComplete:!1,queryStatus:0,chunks:[]}}setAiStream(e,t,r=!1){var i=this.aiStreamMap.get(e);return i?this.aiStreamMap.set(e,Object.assign(Object.assign({},i),t)):r&&this.aiStreamMap.set(e,Object.assign({isComplete:!1,queryStatus:0,chunks:[]},t)),this.aiStreamMap.get(e)||{isComplete:!1,queryStatus:0,chunks:[]}}completeAiStream(e){var t=this.aiStreamMap.get(e);t&&this.aiStreamMap.set(e,Object.assign(Object.assign({},t),{isComplete:!0,queryStatus:0,chunks:[],aiRAGs:void 0}))}}var gc="V2NIMAIService",vc={"4_26":"v2AIChatNotify","29_35":"v2AIProxyModelCall","29_36":"v2AIGetUserList","4_29":"v2AIOnStreamMessageChunk","4_30":"v2AIChatStreamNotify","29_38":"v2AIStopModelStreamCall","29_39":"v2AIStreamQuery","29_40":"v2AIRegenMessage"},yc={accountId:1,messages:{id:2,converter:objectToJSONString,retConverter:stringToJSONObject},requestId:3,content:{id:4,converter:objectToJSONString,retConverter:stringToJSONObject},promptVariables:5,modelConfigParams:{id:6,converter:objectToJSONString,retConverter:stringToJSONObject},antispamBusinessId:7,antispamEnabled:{id:8,converter:boolToInt},aiStream:{id:9,converter:boolToInt}},fc={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=stringToJSONObject(e)){var t=Object.keys(e).reduce(((t,r)=>(t[function camelCase(e){return(e=e||"").split("_").map(((e,t)=>0===t?e:e[0].toUpperCase()+e.slice(1))).join("")}(r)]=e[r],t)),{});if("string"==typeof t.promptKeys)try{t.promptKeys=JSON.parse(t.promptKeys)}catch(e){}return t}}},yunxinConfig:{id:13,retConverter:e=>{if(e=stringToJSONObject(e))return e}},valid:{id:14,retType:"boolean"},createTime:{id:15,retType:"number"},updateTime:{id:16,retType:"number"}};function aiAgentStreamContentRetConverter(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 aiAgentStreamAIRAGsRetConverter(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 Ic={code:{id:1,retType:"number"},accountId:2,requestId:3,content:{id:4,retConverter:aiAgentStreamContentRetConverter},aiRAGs:{id:5,retConverter:aiAgentStreamAIRAGsRetConverter},timestamp:{id:6,retType:"number"},aiStreamStatus:{id:7,retType:"number"},aiStream:{id:8,retType:"boolean"}},Mc={serverId:1,clientId:2,type:{id:3,retType:"number"},from:4,to:5,aiAccount:6,startIndex:{id:7,retType:"number"},endIndex:{id:8,retType:"number"},excludeIndex:{id:9,converter:objectToJSONString}},Sc={serverId:1,clientId:2,type:{id:3,retType:"number"},content:{id:4,retConverter:aiAgentStreamContentRetConverter},aiRAGs:{id:6,retConverter:aiAgentStreamAIRAGsRetConverter}},Tc={v2AIChatNotify:{sid:4,cid:26,service:gc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ic)}]},v2AIProxyModelCall:{sid:29,cid:35,service:gc,params:[{type:"Property",name:"tag",reflectMapper:yc}]},v2AIGetUserList:{sid:29,cid:36,service:gc,params:[{type:"Property",name:"tag",reflectMapper:{pageToken:1,limit:2}}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(fc)},{type:"Property",name:"queryTag",reflectMapper:invertSerializeItem({hasMore:{id:16,retType:"boolean"},nextToken:2})}]},v2AIOnStreamMessageChunk:{sid:4,cid:29,service:gc,response:[{type:"Property",name:"msg",reflectMapper:invertSerializeItem(sn)}]},v2AIChatStreamNotify:{sid:4,cid:30,service:gc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Ic)}]},v2AIStopModelStreamCall:{sid:29,cid:38,service:gc,params:[{type:"Property",name:"tag",reflectMapper:{serverId:1,clientId:2,type:{id:3,retType:"number"},from:4,to:5,aiAccount:6,opeType:{id:7,retType:"number"},updateContent:{id:8},messageTime:{id:11,retType:"number"}}}]},v2AIStreamQuery:{sid:29,cid:39,service:gc,params:[{type:"Property",name:"tag",reflectMapper:Mc}],response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(Sc)}]},v2AIRegenMessage:{sid:29,cid:40,service:gc,params:[{type:"Property",name:"tag",reflectMapper:{fromAccount:1,to:2,aiAccount:3,serverId:4,clientId:5,time:{id:6,retType:"number"},type:{id:7,retType:"number"},opeType:{id:8,retType:"number"},replyMsgFromAccount:9,replyMsgToAccount:10,replyMsgTime:{id:11,retType:"number"},replyMsgIdServer:12,replyMsgIdClient:13}}]}};class V2NIMAIEventImpl{constructor(e,t){this.core=e,this.service=t,this.logger=this.core.logger}setListener(){}beforeEmit(e,...t){var r,i,s=`${this.service.name}::emit ${e.toString()}`;if("onProxyAIModelCall"===e){var a=t[0];this.logger.log(`${s}`,`requestId:${a.requestId};aiStreamStatus:${a.aiStreamStatus}`)}else if("onProxyAIModelStreamCall"===e){var n=t[0];this.logger.log(`${s}`,`requestId:${n.requestId};chunkIndex:${null===(r=n.content)||void 0===r?void 0:r.lastChunk.index};chunkTime:${null===(i=n.content)||void 0===i?void 0:i.lastChunk.chunkTime}`)}else this.logger.log(`${s}`,...t)}}class V2NIMAIHandlerImpl{constructor(e,t){this.core=e,this.service=t,this.model=t.model,this.logger=this.core.logger}v2AIChatNotifyHandler(e){var t=e.content.data;t&&t.requestId&&(this.model.completeAiStream(t.requestId),t.aiStreamStatus=t.aiStreamStatus||0,t.aiStream=t.aiStream||!1,t.content&&(t.content.msg=t.content.msg||""),this.service.emit("onProxyAIModelCall",t))}v2AIChatStreamNotifyHandler(e){var t=e.content.data;if(t&&t.requestId&&t.content&&t.content.msg){var r=this.model.getAiStream(t.requestId);if(r||(r=this.model.setAiStream(t.requestId,{isComplete:!1,queryStatus:0,chunks:[]},!0)),!r.isComplete){var{lastChunk:i}=t.content;if(0===i.index&&t.aiRAGs&&(r=this.model.setAiStream(t.requestId,{aiRAGs:t.aiRAGs})),this.logger.log(`V2AI::streamNotify requestId:${t.requestId};index:${i.index};cacheChunkLength:${r.chunks.length};chunkTime:${i.chunkTime}.`),0===r.chunks.length&&i.index>0)this.logger.log(`V2AI::streamNotify requestId:${t.requestId};chunks missing 0,currentIdx:${i.index},needQuery:${0===r.queryStatus}.`),0===r.queryStatus&&(r=this.model.setAiStream(t.requestId,{queryStatus:1}),this.service._queryAiStream({clientId:t.requestId,type:4,from:this.core.account,aiAccount:t.accountId,startIndex:0,endIndex:i.index-1}));else if(i.index>0&&r.chunks.length>0&&void 0===r.chunks[i.index-1]){var s=r.chunks.reduce(((e,t,r)=>(void 0!==t&&e.push(r),e)),[]);this.logger.log(`V2AI::streamNotify requestId:${t.requestId};out of order,currenIdx:${i.index},cacheIdx:[${s.join(",")}],needReport:${!r.hasReported}.`),r.hasReported||(r=this.model.setAiStream(t.requestId,{hasReported:!0}),this.reportOutOfOrder({requestId:t.requestId,cacheIds:s,targetIndex:i.index,target:"4-30"}))}(r=this.model.upsertAiStreamChunks(t.requestId,i.index,i.content)).chunks[0]||1!==r.queryStatus?(t.content.msg=r.chunks.join(""),r.aiRAGs&&(t.aiRAGs=r.aiRAGs),this.service.emit("onProxyAIModelStreamCall",t)):this.logger.log(`V2AI::streamNotify requestId:${t.requestId};chunks ignore index:${i.index};queryStatus:${r.queryStatus}.`)}}}v2AIOnStreamMessageChunkHandler(e){var t,r,i;return __awaiter(this,void 0,void 0,(function*(){var s=completeMessage(this.core,e.content.msg);if(s.streamConfig&&s.streamConfig.lastChunk){var a=this.model.getAiStream(s.messageClientId);if(!a||!a.isComplete){a||(a=this.model.setAiStream(s.messageClientId,{isComplete:!1,queryStatus:0,chunks:[]},!0));var n=s.streamConfig.lastChunk,o=s.messageClientId,c=(null===(t=s.aiConfig)||void 0===t?void 0:t.aiRAGs)||s.streamConfig.rags;if(c&&(a.aiRAGs&&(c=[...a.aiRAGs,...c]),a=this.model.setAiStream(o,{aiRAGs:c})),this.logger.log(`V2AI::aiStream requestId:${o};index:${n.index};cacheChunkLength:${a.chunks.length};chunkTime:${n.chunkTime}.`),0===a.chunks.length&&n.index>0){if(this.logger.log(`V2AI::msg:aiStream requestId:${o};chunks missing 0,currentIdx:${n.index},needQuery:${0===a.queryStatus}.`),0===a.queryStatus){a=this.model.setAiStream(o,{queryStatus:1});var d={0:0,1:5,2:6,3:7},l=(null===(r=s.aiConfig)||void 0===r?void 0:r.accountId)?s.conversationType:d[s.conversationType];this.service._queryAiStream({serverId:s.messageServerId,clientId:o,type:l,from:s.senderId,to:s.receiverId,aiAccount:null===(i=s.aiConfig)||void 0===i?void 0:i.accountId,startIndex:0,endIndex:n.index-1})}}else if(n.index>0&&a.chunks.length>0&&void 0===a.chunks[n.index-1]){var m=a.chunks.reduce(((e,t,r)=>(void 0!==t&&e.push(r),e)),[]);this.logger.log(`V2AI::msg:aiStream requestId:${o};out of order,currenIdx:${n.index};streamCache.chunks:${JSON.stringify(a.chunks)},cacheIdx:[${m.join(",")}],needReport:${!a.hasReported}.`),a.hasReported||(a=this.model.setAiStream(o,{hasReported:!0}),this.reportOutOfOrder({requestId:o,cacheIds:m,targetIndex:n.index,target:"4-29"}))}(a=this.model.upsertAiStreamChunks(o,n.index,n.content)).chunks[0]||1!==a.queryStatus?(s.streamConfig.status=-1,s.aiConfig&&(s.aiConfig.aiStreamStatus=-1),s.text=a.chunks.join(""),a.aiRAGs&&s.aiConfig&&(s.aiConfig.aiRAGs=a.aiRAGs),a.aiRAGs&&s.streamConfig&&(s.streamConfig.rags=a.aiRAGs),a.msg&&(s=Object.assign({},a.msg,Object.assign({text:s.text,modifyTime:n.chunkTime,modifyAccountId:a.msg.senderId,streamConfig:s.streamConfig},s.aiConfig?{aiConfig:s.aiConfig}:{}))),this.core.eventBus.emit("V2NIMAIService/receiveMessagesModified",[s])):this.logger.log(`V2AI::msg:callStream requestId:${o};chunks ignore index:${n.index};queryStatus:${a.queryStatus}.`)}}}))}reportOutOfOrder(e){this.core.reporter.reportTraceStart("exceptions",{user_id:this.core.account,trace_id:get(this.core,"clientSocket.socket.sessionId"),action:2,exception_service:0}),this.core.reporter.reportTraceUpdateV2("exceptions",{code:0,context:e.requestId,description:`[${e.cacheIds.join(",")}],${e.targetIndex}`,operation_type:2,target:e.target,net_connect:!0}),this.core.reporter.reportTraceEnd("exceptions",4)}}var _c={"18_1":"v2SignallingCreateRoom","18_2":"v2SignallingDelayRoom","18_3":"v2SignallingCloseRoom","18_4":"v2SignallingJoinRoom","18_5":"v2SignallingLeaveRoom","18_6":"v2SignallingInvite","18_7":"v2SignallingCancelInvite","18_16":"v2SignallingCall","18_17":"v2SignallingCallSetup","18_8":"v2SignallingRejectInvite","18_9":"v2SignallingAcceptInvite","18_10":"v2SignallingSendControl","15_11":"v2SignallingOnlineEvent","15_12":"v2SignallingMultiClientEvent","15_13":"v2SignallingOfflineEvent","15_14":"v2SignallingSyncChannels","18_15":"v2SignallingGetRoomInfo"},Cc="V2NIMSignallingService",Ec={accountId:1,uid:{id:2,retType:"number"},joinTime:{id:3,retType:"number"},expireTime:{id:4,retType:"number"},deviceId:5},bc={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:boolToInt,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:boolToInt,retType:"boolean",def:1},members:{id:18,retAccess:"members",retConverter:e=>{try{return JSON.parse(e).map((e=>deserialize(e,invertSerializeItem(Ec))))}catch(e){return}}},attach:{id:19,retConverter:stringToJSONObject},serverExtension:{id:20,retDef:""},offlineEnabled:{id:21,converter:boolToInt,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"}},Nc={v2SignallingCall:{sid:18,cid:16,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingCallSetup:{sid:18,cid:17,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingCreateRoom:{sid:18,cid:1,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingDelayRoom:{sid:18,cid:2,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingCloseRoom:{sid:18,cid:3,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingJoinRoom:{sid:18,cid:4,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingLeaveRoom:{sid:18,cid:5,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingInvite:{sid:18,cid:6,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingCancelInvite:{sid:18,cid:7,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingRejectInvite:{sid:18,cid:8,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}]},v2SignallingAcceptInvite:{sid:18,cid:9,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}]},v2SignallingSendControl:{sid:18,cid:10,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}]},v2SignallingOnlineEvent:{sid:15,cid:11,service:Cc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingMultiClientEvent:{sid:15,cid:12,service:Cc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingOfflineEvent:{sid:15,cid:13,service:Cc,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(bc)}]},v2SignallingSyncChannels:{sid:15,cid:14,service:Cc,response:[{type:"PropertyArray",name:"datas",reflectMapper:invertSerializeItem(bc)}]},v2SignallingGetRoomInfo:{sid:18,cid:15,service:Cc,params:[{type:"Property",name:"tag",reflectMapper:bc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(bc)}]},v2SignallingBatchMarkRead:{sid:4,cid:5,hasPacketResponse:!1,service:Cc,params:[{type:"Byte",name:"sid"},{type:"Byte",name:"cid"},{type:"LongArray",name:"ids"}]}},Ac={calleeAccountId:{type:"string",required:!0,allowEmpty:!1},requestId:{type:"string",required:!0,allowEmpty:!1},channelType:{type:"enum",values:[1,3,2]},channelName:{type:"string",required:!1,allowEmpty:!0},channelExtension:{type:"string",required:!1,allowEmpty:!0},serverExtension:{type:"string",required:!1,allowEmpty:!0},signallingConfig:{type:"object",required:!1,rules:{offlineEnabled:{type:"boolean",required:!1},unreadEnabled:{type:"boolean",required:!1},selfUid:{type:"number",required:!1}}},pushConfig:{type:"object",required:!1,rules:{pushEnabled:{type:"boolean",required:!1},pushTitle:{type:"string",required:!1,allowEmpty:!0},pushContent:{type:"string",required:!1,allowEmpty:!0},pushPayload:{type:"string",required:!1,allowEmpty:!0}}},rtcConfig:{type:"object",required:!1,rules:{rtcChannelName:{type:"string",required:!1,allowEmpty:!0},rtcTokenTtl:{type:"number",required:!1},rtcParams:{type:"string",required:!1,allowEmpty:!0}}}},Rc={channelId:{type:"string",required:!0,allowEmpty:!1},callerAccountId:{type:"string",required:!0,allowEmpty:!1},requestId:{type:"string",required:!0,allowEmpty:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0},signallingConfig:{type:"object",required:!1,rules:{offlineEnabled:{type:"boolean",required:!1},unreadEnabled:{type:"boolean",required:!1},selfUid:{type:"number",required:!1}}},rtcConfig:{type:"object",required:!1,rules:{rtcChannelName:{type:"string",required:!1,allowEmpty:!0},rtcTokenTtl:{type:"number",required:!1},rtcParams:{type:"string",required:!1,allowEmpty:!0}}}},Oc={channelType:{type:"enum",values:[1,3,2]},channelName:{type:"string",required:!1,allowEmpty:!0},channelExtension:{type:"string",required:!1,allowEmpty:!0}},kc={channelId:{type:"string",required:!0,allowEmpty:!1},offlineEnabled:{type:"boolean",required:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0}},wc={channelId:{type:"string",required:!0,allowEmpty:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0},signallingConfig:{type:"object",required:!1,rules:{offlineEnabled:{type:"boolean",required:!1},unreadEnabled:{type:"boolean",required:!1},selfUid:{type:"number",required:!1}}},rtcConfig:{type:"object",required:!1,rules:{rtcChannelName:{type:"string",required:!1,allowEmpty:!0},rtcTokenTtl:{type:"number",required:!1},rtcParams:{type:"string",required:!1,allowEmpty:!0}}}},Pc={channelId:{type:"string",required:!0,allowEmpty:!1},offlineEnabled:{type:"boolean",required:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0}},Vc={channelId:{type:"string",required:!0,allowEmpty:!1},inviteeAccountId:{type:"string",required:!0,allowEmpty:!1},requestId:{type:"string",required:!0,allowEmpty:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0},signallingConfig:{type:"object",required:!1,rules:{offlineEnabled:{type:"boolean",required:!1},unreadEnabled:{type:"boolean",required:!1},selfUid:{type:"number",required:!1}}},pushConfig:{type:"object",required:!1,rules:{pushEnabled:{type:"boolean",required:!1},pushTitle:{type:"string",required:!1,allowEmpty:!0},pushContent:{type:"string",required:!1,allowEmpty:!0},pushPayload:{type:"string",required:!1,allowEmpty:!0}}}},Lc={channelId:{type:"string",required:!0,allowEmpty:!1},inviteeAccountId:{type:"string",required:!0,allowEmpty:!1},requestId:{type:"string",required:!0,allowEmpty:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0},offlineEnabled:{type:"boolean",required:!1},pushConfig:{type:"object",required:!1,rules:{pushEnabled:{type:"boolean",required:!1},pushTitle:{type:"string",required:!1,allowEmpty:!0},pushContent:{type:"string",required:!1,allowEmpty:!0},pushPayload:{type:"string",required:!1,allowEmpty:!0}}}},Uc={channelId:{type:"string",allowEmpty:!1},receiverAccountId:{type:"string",required:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0}},Dc={channelId:{type:"string",allowEmpty:!1},inviterAccountId:{type:"string",allowEmpty:!1},requestId:{type:"string",allowEmpty:!1},serverExtension:{type:"string",required:!1,allowEmpty:!0},offlineEnabled:{type:"boolean",required:!1}},xc=Dc;function formatSignalingEvent(e){var t,r=e.attach,i={eventType:r.type,channelInfo:e.channelInfo,operatorAccountId:e.fromAccid,time:e.time,serverExtension:e.serverExtension,requestId:e.requestId,pushConfig:e.pushConfig,unreadEnabled:null===(t=e.signallingConfig)||void 0===t?void 0:t.unreadEnabled},{fromAccid:s,toAccid:a}=e;switch(i.eventType){case 1:break;case 2:i.member={accountId:r.member[1],uid:Number(r.member[2]),joinTime:Number(r.member[3]),expireTime:Number(r.member[4]),deviceId:r.member[5]};break;case 3:case 4:i.operatorAccountId=s,i.inviteeAccountId=a,i.inviterAccountId=s;break;case 5:case 6:i.operatorAccountId=s,i.inviterAccountId=a,i.inviteeAccountId=s}return JSON.parse(JSON.stringify(i))}var qc,Bc={"19_1":"v2PublishEvent","14_2":"v2OnUserStatusChange","19_3":"v2SubscribeUserStatus","19_4":"v2UnsubscribeUserStatus","19_5":"v2UnsubscribeAllUserStatus","19_6":"v2QuerySubscribeEvent","19_7":"v2QueryAllSubscribeEvent","14_9":"v2OnMultiUserStatusChange"},Fc="V2NIMSubscriptionService",jc={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:boolToInt},publishTime:{id:10,retType:"number"},serverId:11,clientType:{id:12,retType:"number"},serverExtension:13,extensionReceived:14,accountId:103},$c={eventType:{id:1,retType:"number"},duration:{id:2,retType:"number"},immediateSync:{id:3,retType:"number",converter:boolToInt},accountId:102,subscribeTime:{id:105,retType:"number"}},Gc={v2PublishEvent:{sid:19,cid:1,service:Fc,params:[{type:"Property",name:"tag",reflectMapper:jc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(jc)}]},v2OnUserStatusChange:{sid:14,cid:2,service:Fc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(jc)}]},v2SubscribeUserStatus:{sid:19,cid:3,service:Fc,params:[{type:"Property",name:"tag",reflectMapper:$c},{type:"StrArray",name:"accountIds"}],response:[{type:"StrArray",name:"failedList"}]},v2UnsubscribeUserStatus:{sid:19,cid:4,service:Fc,params:[{type:"Property",name:"tag",reflectMapper:$c},{type:"StrArray",name:"accountIds"}],response:[{type:"StrArray",name:"failedList"}]},v2UnsubscribeAllUserStatus:{sid:19,cid:5,service:Fc,params:[{type:"Property",name:"tag",reflectMapper:$c}]},v2QuerySubscribeEvent:{sid:19,cid:6,service:Fc,params:[{type:"Property",name:"tag",reflectMapper:$c},{type:"StrArray",name:"accountIds"}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem($c)}]},v2QueryAllSubscribeEvent:{sid:19,cid:7,service:Fc,params:[{type:"Property",name:"tag",reflectMapper:$c}],response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem($c)}]},v2OnMultiUserStatusChange:{sid:14,cid:9,service:Fc,response:[{type:"PropertyArray",name:"data",reflectMapper:invertSerializeItem(jc)}]}},Hc={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}},zc={accountIds:{type:"array",required:!1,itemType:"string",max:100}},Yc={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"}(qc||(qc={}));var Jc="V2NIMPassthroughService",Wc={"22_1":"v2ProxyRequest","22_2":"v2ProxyOnRequest"},Kc={zone:1,path:2,method:3,header:4,body:5},Qc={v2ProxyRequest:{sid:22,cid:1,service:Jc,params:[{type:"Property",name:"tag",reflectMapper:Kc}],response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem(Kc)}]},v2ProxyOnRequest:{sid:22,cid:2,service:Jc,response:[{type:"Property",name:"data",reflectMapper:invertSerializeItem({fromAccountId:1,body:2,time:{id:3,retType:"number"}})}]}},Xc={path:{type:"string",allowEmpty:!1},zone:{type:"string",required:!1},method:{type:"enum",values:[qc.V2NIM_PROXY_REQUEST_METHOD_DELETE,qc.V2NIM_PROXY_REQUEST_METHOD_GET,qc.V2NIM_PROXY_REQUEST_METHOD_POST,qc.V2NIM_PROXY_REQUEST_METHOD_PUT],required:!1},header:{type:"jsonstr",required:!1},body:{type:"string",required:!1}};!function setAdapters(e){merge(ve,e())}((()=>{var e=uni.getSystemInfoSync()||{},t="app"===e.uniPlatform,r="mp-weixin"===e.uniPlatform;return Object.assign({setLogger:setLogger,platform:"UNIAPP",localStorage:Ve,request:requestFn,WebSocket:WebsocketFn,uploadFile:uploadFileFn,getFileUploadInformation:getFileUploadInformationFn,getSystemInfo:getSystemInfoFn,net:Ue,powerMonitor:new PowerMonitor},t?{logStorage:LogStorageForAppImpl}:r?{logStorage:LogStorageForMiniAppImpl}:{})})),NIM.registerService(class V1NIMLoginServiceImpl extends V2Service{constructor(e,t){super("V1NIMLoginService",e),this.account="",this.token="",this.deviceId="",this.processId="",this.clientSession="",this.status="unconnected",this.config=dt,this.isManualLoginAttempt=!1,this.core._registerDep(MiscService,"misc"),registerParser({cmdMap:He,cmdConfig:Je}),e.V1NIMLoginService=this,t&&this.setOptions(t);var r=new V1ClientSocket(this.core,this);this.clientSocket=r,"v1"===this.core.options.apiVersion&&(this.core.clientSocket=r,this.core.auth=this),this.lbs=new V1NIMLoginLbs(e),this.authenticator=new V1NIMLoginAuthenticator(e),this.doLoginStepsManager=new PromiseManager}reset(){this.lbs.reset()}setOptions(e){var t,r,i;e&&Object.keys(e).length>0?(this.config=assignOptions(this.config,e),this.account=e.account||this.core.options.account,this.token=e.token||this.core.options.token,this.core.options=Object.assign(Object.assign({},this.core.options),this.config)):(this.config=assignOptions(this.core.options,this.config),this.account=this.core.options.account,this.token=this.core.options.token),null===(r=null===(t=this.core.clientSocket)||void 0===t?void 0:t.setLinkSSL)||void 0===r||r.call(t,null===(i=this.config.linkSSL)||void 0===i||i);var s="",a="";this.config.isFixedDeviceId?(s=ve.localStorage.getItem("__NIM_DEVC_ID__")||Me(),a=ve.localStorage.getItem("__NIM_CLIENT_SESSION_ID__")||Me(),ve.localStorage.setItem("__NIM_DEVC_ID__",s),ve.localStorage.setItem("__NIM_CLIENT_SESSION_ID__",a)):(s=Me(),a=Me()),this.deviceId=s,this.clientSession=a,this.core.reporter.setConfig({common:{dev_id:s}})}connect(e={}){return this.login(e)}login(e={}){return __awaiter(this,void 0,void 0,(function*(){this._checkApiVersion(),e.isAutoReconnect||(this.isManualLoginAttempt=!0,this.processId=Me()),yield this._connect(e),this.core.abtest.abtRequest();try{yield this.doLogin(e.isAutoReconnect),this.processId=Me(),this.isManualLoginAttempt=!1}catch(e){throw this.isManualLoginAttempt=!1,e}}))}_connect(e={}){return __awaiter(this,void 0,void 0,(function*(){if(!/^(unconnected|waitReconnect)$/.test(this.core.status)){var t=`NIM status is ${this.core.status}, and would not connect`;return this.logger.warn(t),Promise.reject(t)}this.clientSocket.beforeConnect(),this.core.reporter.reportTraceCancel("login"),this.core.reporter.reportTraceStart("login",{user_id:this.core.options.account,action:e.isAutoReconnect?"auto_login":"manual_login",binary_websocket:!1,process_id:this.processId}),this.core.reporter.reportTraceUpdateV2("login",{code:0,description:JSON.stringify(Object.assign(Object.assign({},this.core.options),{account:"***",token:"***"})),operation_type:"conf_init",succeed:!0,duration:0,target:""},{asyncParams:ve.net.getNetworkStatus()});var r=yield this.lbs.getLbsInfos();try{var i=yield this.clientSocket.connect({linkUrls:r,isAutoReconnect:e.isAutoReconnect},((e,t)=>{this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:t,code:e.code||408,description:`ws_handshake_failed:${e.message}`,succeed:!1},{asyncParams:ve.net.getNetworkStatus()})}));i&&this.core.reporter.reportTraceUpdateV2("login",{operation_type:"TCP",target:i,code:200,succeed:!0},{asyncParams:ve.net.getNetworkStatus()})}catch(e){throw this.core.reporter.reportTraceEnd("login",!1),e}}))}doLogin(e=!1){return __awaiter(this,void 0,void 0,(function*(){var t;try{t=yield this.authenticator.verifyAuthentication(e),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"protocol",target:"2-3",code:200,succeed:!0},{asyncParams:ve.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("login",!0),this.core.status="logined"}catch(e){var r=e,i=get(r,"data.disconnect_reason")||"",s=415===r.code?JSON.stringify({disconnect_reason:i}):r.message;if(this.core.logger.warn("nim login:: login failed",e),this.core.reporter.reportTraceUpdateV2("login",{operation_type:"protocol",target:"2-3",code:r.code||0,succeed:!1,description:s},{asyncParams:ve.net.getNetworkStatus()}),this.core.reporter.reportTraceEnd("login",!1),this.clientSocket.doDisconnect(Ze.OFFLINE,this.isManualLoginAttempt?"FailedToInitializeLogin":"ReconnectLoginFailed",e),this.isManualLoginAttempt)throw e;return}try{var a=t.loginTime?parseInt(t.loginTime):Date.now();yield this.core.cloudStorage.init(a)}catch(e){this.core.logger.error("NIM:login cloudStorage init failed ",e)}this.core.eventBus.emit("logined",t),this.core.emit("logined",t),this.emit("logined",t),this.core.logger.log("login done"),this.clientSocket.resetConnectStatus(),this.clientSocket.ping()}))}disconnect(){return this.logout()}logout(){return __awaiter(this,void 0,void 0,(function*(){switch(this._checkApiVersion(),this.doLoginStepsManager.clear(),this.status){case"logined":try{yield this.clientSocket.sendCmd("logout",void 0,{timeout:1e3}),this.clientSocket.doDisconnect(Ze.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData()}catch(e){this.logger.error("Instance::disconnect sendCmd:logout error",e),this.clientSocket.doDisconnect(Ze.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData()}break;case"connected":case"connecting":case"waitReconnect":return this.clientSocket.doDisconnect(Ze.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),Promise.resolve();case"unconnected":case"destroyed":return Promise.resolve()}}))}kick(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkApiVersion();var r=yield this.clientSocket.sendCmd("kick",e);return null===(t=r.content)||void 0===t?void 0:t.deviceIds}))}_checkApiVersion(){if("v1"!==this.core.options.apiVersion)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:'apiVersion is not "v1"'}})}nimLoginClientChangeHandler(e){if(e.error)this.logger.error("nimLoginClientChangeHandler:: error, ",e.error);else{var{datas:t,state:r}=e.content,i=formatMultiPortLoginInfo(t,r);i.length>0&&(this.core.emit("multiPortLogin",i),this.emit("multiPortLogin",i))}}kickedHandler(e){if(e.error)this.logger.error("kickedHandler:: error, ",e.error);else{var t=function formatBeKickedTag$1(e){var t=format({clientType:{type:"enum",values:je},customClientType:{type:"number"}},e),r=Xe[t.reason];return r=r||{reason:"unknow",message:"Unknown reason"},Object.assign(t,r)}(e.content);this.logger.warn("kicked::",t),this.clientSocket.doDisconnect(Ze.KICKED,t),this.core._clearModuleData()}}getConnectStatus(){switch(this.core.status){case"unconnected":case"destroyed":default:return 0;case"connecting":return 2;case"connected":case"logined":return 1;case"waitReconnect":return 3}}getLoginStatus(){switch(this.core.status){case"unconnected":case"destroyed":case"waitReconnect":default:return 0;case"connecting":case"connected":return 2;case"logined":return 1}}getLoginUser(){return this.core.options.account}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;return this.logger.log(`${r}`,...t),super.emit(e,...t)}},"V1NIMLoginService"),NIM.registerService(class MsgService extends Service$1{constructor(e){super("msg",e),this.onV2SendMessage=e=>{var t=formatMsg$1(e,{account:this.core.account,featureValue:Ge.default});t.status=e.status,this.core.eventBus.emit("session/updateForNewMsg",t)},this.onV2ModifyMessage=e=>{var t,r=`${Fe[e.scene]}-${e.to===this.core.account?e.from:e.to}`,i=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:r}),s=formatMsg$1(e,i?{account:this.core.account,sessionAck:i.ack,msgReceiptTime:i.msgReceiptTime}:{account:this.core.account});this.core.eventBus.emit("session/updateForModifyMsg",s)},this.onV2RecallMsg=e=>{var t=formatDeletedMsgs([e],getSceneFromRecallSysMsg(+e.type));this.core.eventBus.emit("session/updateForDeletedMsg",t)},this.onV2DeleteSelfMsgs=e=>{var t=formatDeletedMsgs(e);this.core.eventBus.emit("session/updateForDeletedMsg",t)},this.service=new ModuleService$2(e),registerParser({cmdMap:er,cmdConfig:sr}),this.registerListener()}registerListener(){this.core.eventBus.on("forwardReceive/msg/sendMsg",this.onV2SendMessage),this.core.eventBus.on("forwardReceive/msg/modifyMsg",this.onV2ModifyMessage),this.core.eventBus.on("forwardReceive/msg/recallMsg",this.onV2RecallMsg),this.core.eventBus.on("forwardReceive/msg/deleteSelfMsgs",this.onV2DeleteSelfMsgs)}sendTextMsg(e){return validate({body:{type:"string",allowEmpty:!1}},e),this.sendMsg(Object.assign(Object.assign({},e),{type:"text"}))}sendTipMsg(e){return validate({body:{type:"string",allowEmpty:!1}},e),this.sendMsg(Object.assign(Object.assign({},e),{type:"tip"}))}sendGeoLocationMsg(e){return validate({attach:{type:"object",rules:{title:{type:"string",allowEmpty:!1},lat:{type:"number"},lng:{type:"number"}}}},e),this.sendMsg(Object.assign(Object.assign({},e),{type:"geo",attach:JSON.stringify(e.attach)}))}sendCustomMsg(e){return validate({attach:{type:"string",allowEmpty:!1}},e),this.sendMsg(Object.assign(Object.assign({},e),{type:"custom"}))}sendMsg(e){var t;if(validate({scene:{type:"enum",values:getEnumKeys(Fe)},type:{type:"enum",values:getEnumKeys(Be)},to:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1},setting:{type:"object",rules:{resendFlag:{type:"boolean",required:!1},needSaveHistory:{type:"boolean",required:!1},needRoaming:{type:"boolean",required:!1},needOffline:{type:"boolean",required:!1},needSelfSync:{type:"boolean",required:!1},needRouted:{type:"boolean",required:!1},needUpdateSession:{type:"boolean",required:!1}},required:!1},antiSpamInfo:{type:"object",required:!1,rules:{clientAntispamHitting:{type:"boolean",required:!1},antiSpamUsingYidun:{type:"boolean",required:!1}}},pushInfo:{type:"object",required:!1,rules:Ht},robotInfo:{type:"object",required:!1,rules:zt},teamSpecializationInfo:{type:"object",required:!1,rules:{needACK:{type:"boolean",required:!1}}}},e),"team"===e.scene&&e.robotInfo&&!e.robotInfo.account)throw new ValidateError('When "scene" equals "team", account is required in robotInfo',{key:"account"},"required");var r,i="p2p"===e.scene?"sendMsg":"team"===e.scene?"sendTeamMsg":"sendSuperTeamMsg",s=generatorMsgForCmd$1(e,this.core.account,this.core.config.deviceId,null===(t=this.core.user)||void 0===t?void 0:t.myInfo),a=formatMsg$1(Object.assign(Object.assign({},s),{time:(new Date).getTime()}),{account:this.core.account,featureValue:Ge.default,statusValue:$e.sending});try{e.onSendBefore&&e.onSendBefore(a)}catch(e){this.logger.error("sendMsg: options.onSendBefore error",e)}return this.core.eventBus.emit("session/updateForNewMsg",a),this.core.eventBus.emit("forwardSend/msg/sendMsg",s),this.core.sendCmd(i,{msg:s}).then((t=>{var{content:i,error:n}=t;if(r=i.msg,n)throw n;var o=formatMsg$1(Object.assign(Object.assign({},s),i.msg),{account:this.core.account,featureValue:Ge.default,statusValue:$e.sent});return o.from===o.to&&this.markMsgsAck([o]),this.core.eventBus.emit("session/updateForNewMsg",o),this.core.eventBus.emit("forwardSend/msg/sendMsg",Object.assign(Object.assign({},generatorMsgForCmd$1(o,o.from,o.fromDeviceId)),{idClient:o.idClient,status:"sent"})),this.core.reporter.report("msgSend",{msgId:o.idServer,clientId:o.idClient,msgTime:o.time,fromAccid:"p2p"===e.scene?this.core.account:"",toAccid:o.to,type:Fe[o.scene],roomId:"",tid:"p2p"===e.scene?"":o.to,result:200,failReason:"",rt:Date.now()-a.time}),o})).catch((t=>{var i=formatMsg$1(Object.assign(Object.assign(Object.assign({},s),{time:(new Date).getTime()}),r),{account:this.core.account,featureValue:Ge.default,statusValue:7101===t.code?$e.refused:$e.sendFailed});throw t.msg=i,this.core.eventBus.emit("session/updateForNewMsg",i),this.core.eventBus.emit("forwardSend/msg/sendMsg",Object.assign(Object.assign({},generatorMsgForCmd$1(i,i.from,i.fromDeviceId)),{status:"sendFailed"})),this.core.reporter.report("msgSend",{msgId:i.idServer,clientId:i.idClient,msgTime:i.time,fromAccid:"p2p"===e.scene?this.core.account:"",toAccid:i.to,type:Fe[i.scene],roomId:"",tid:"p2p"===e.scene?"":i.to,result:null==t?void 0:t.code,failReason:(null==t?void 0:t.message)||"",rt:Date.now()-a.time}),t}))}resendMsg(e){return __awaiter(this,void 0,void 0,(function*(){validate({msg:{type:"object",rules:{idClient:{type:"string",allowEmpty:!1}}}},e);var t=e.msg,r=Object.assign(Object.assign({},t),{attach:t.attach?JSON.stringify(t.attach):void 0,setting:{resendFlag:!0}});if(t.from!==this.core.account)throw new Error(`You can only resend messages that you sent: ${t.idClient}`);return this.sendMsg(r)}))}forwardMsg(e){return __awaiter(this,void 0,void 0,(function*(){validate({msg:{type:"object",rules:{idClient:{type:"string",allowEmpty:!1}}},scene:{type:"enum",values:getEnumKeys(Fe)},to:{type:"string",allowEmpty:!1}},e);var t=e.msg,r=Object.assign(Object.assign({},t),{scene:e.scene,to:e.to,attach:t.attach?JSON.stringify(t.attach):void 0});return this.sendMsg(r)}))}sendImageMsg(e){return this.doSendFile(Object.assign(Object.assign({},e),{type:"image"}))}sendFileMsg(e){return this.doSendFile(Object.assign(Object.assign({},e),{type:"file"}))}sendAudioMsg(e){return this.doSendFile(Object.assign(Object.assign({},e),{type:"audio"}))}sendVideoMsg(e){return this.doSendFile(Object.assign(Object.assign({},e),{type:"video"}))}doSendFile(e){return __awaiter(this,void 0,void 0,(function*(){validate({scene:{type:"enum",values:getEnumKeys(Fe)},to:{type:"string",allowEmpty:!1},type:{type:"string",allowEmpty:!1},attach:{type:"object",rules:{url:{type:"string",allowEmpty:!1}},required:!1},maxSize:{type:"number",min:1,required:!1}},e);var t=e.attach;if(!t){if(!this.core.cloudStorage||!this.core.cloudStorage.uploadFile)throw new Error('Service "cloudStorage" does not exist');try{t=yield this.core.cloudStorage.uploadFile(e)}catch(e){throw this.logger.error("sendFile:: upload File error or abort.",e),e}}return this.sendMsg(Object.assign(Object.assign({},e),{attach:JSON.stringify(t),type:e.type}))}))}recallMsg(e){return __awaiter(this,void 0,void 0,(function*(){validate({msg:{type:"object",rules:{idClient:{type:"string",allowEmpty:!1},idServer:{type:"string",allowEmpty:!1},scene:{type:"enum",values:getEnumKeys(Fe)},time:{type:"number"}}},pushInfo:{type:"object",required:!1,rules:Xt},ps:{type:"string",allowEmpty:!1,required:!1}},e);var t=e.msg,r=processPushInfoInMsg({time:t.time,type:{p2p:7,team:8,superTeam:12}[t.scene],to:t.to,from:t.from,ps:e.ps,attach:e.attach,deletedIdClient:t.idClient,deletedIdServer:t.idServer,opeAccount:t.from,env:e.env,pushInfo:e.pushInfo});yield this.core.sendCmd({p2p:"recallMsg",team:"recallMsg",superTeam:"recallSuperTeamMsg"}[t.scene],{recallMsgTag:r});var i=formatDeletedMsgs([Object.assign({},t,{deletedMsgCreateTime:t.time})]);return this.core.eventBus.emit("session/updateForDeletedMsg",i),this.core.eventBus.emit("forwardSend/msg/recallMsg",r),t}))}deleteSelfMsgs(e){return __awaiter(this,void 0,void 0,(function*(){validate({msgs:{type:"array",rules:{scene:{type:"enum",values:["p2p","team"]},from:{type:"string",allowEmpty:!1},to:{type:"string",allowEmpty:!1},idServer:{type:"string",allowEmpty:!1},idClient:{type:"string",allowEmpty:!1},time:{type:"number",allowEmpty:!1}}},ext:{type:"string",allowEmpty:!1,required:!1}},e);var t=e.msgs.map((t=>({scene:"p2p"===t.scene?1:2,from:t.from,to:t.to,idServer:t.idServer,idClient:t.idClient,deletedMsgCreateTime:t.time,ext:e.ext}))),r=yield this.core.sendCmd("deleteSelfMsgs",{deletedMsgs:t}),i=formatDeletedMsgs(t.map((e=>{var t;return Object.assign({},e,{time:null===(t=null==r?void 0:r.content)||void 0===t?void 0:t.timetag})})));return this.core.eventBus.emit("session/updateForDeletedMsg",i),this.core.eventBus.emit("forwardSend/msg/deleteSelfMsgs",t.map((e=>{var t;return Object.assign(Object.assign({},e),{time:null===(t=null==r?void 0:r.content)||void 0===t?void 0:t.timetag})}))),i}))}sendMsgReceipt(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){validate({msg:{type:"object",rules:{idClient:{type:"string",allowEmpty:!1},target:{type:"string",allowEmpty:!1},time:{type:"number"}}}},e);var i=e.msg;if("p2p"===i.scene&&"in"===i.flow){var s={to:i.target,idClient:i.idClient,time:i.time},a=yield this.core.sendCmd("sendMsgReceipt",{msgReceiptTag:s}),n=parseInt(null===(r=null===(t=a.content)||void 0===t?void 0:t.msgReceiptTag)||void 0===r?void 0:r.time);return Object.assign(Object.assign({},s),{time:n?Math.min(n,s.time):s.time})}this.logger.warn(`Msg scene: ${i.scene}, flow: ${i.flow} is not allowed to send msg receipt`)}))}sendTeamMsgReceipt(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamMsgReceipts:{type:"array",rules:{teamId:{type:"string",allowEmpty:!1},idClient:{type:"string",allowEmpty:!1},idServer:{type:"string",allowEmpty:!1}},max:50}},e);var t=e.teamMsgReceipts;this.core.sendCmd("sendTeamMsgReceipt",{teamMsgReceipts:t})}))}getTeamMsgReads(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({teamMsgReceipts:{type:"array",rules:{teamId:{type:"string",allowEmpty:!1},idClient:{type:"string",allowEmpty:!1},idServer:{type:"string",allowEmpty:!1}}}},e);var r=e.teamMsgReceipts,i=yield this.core.sendCmd("getTeamMsgReads",{teamMsgReceipts:r}),s=null===(t=i.content)||void 0===t?void 0:t.teamMsgReceipts;return s=s?s.map((e=>Object.assign(Object.assign({},e),{read:parseInt(e.read),unread:parseInt(e.unread)}))):[]}))}getTeamMsgReadAccounts(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamMsgReceipt:{type:"object",rules:{teamId:{type:"string",allowEmpty:!1},idClient:{type:"string",allowEmpty:!1},idServer:{type:"string",allowEmpty:!1}}}},e);var t=e.teamMsgReceipt;return(yield this.core.sendCmd("getTeamMsgReadAccounts",{teamMsgReceiptTag:t})).content}))}markMsgsAck(e){if(e&&e.length>0){var t=[],r=[];e.forEach((e=>{"p2p"===e.scene&&"in"===e.flow?t.push(e):"team"===e.scene&&"in"===e.flow&&r.push(e)})),t.length>0&&this.core.sendCmd("batchMarkRead",{sid:7,cid:2,ids:t.map((e=>e.idServer))}),r.length>0&&this.core.sendCmd("batchMarkRead",{sid:8,cid:3,ids:r.map((e=>e.idServer))})}}onMsgHandler(e){var t;if(e.error)this.logger.error("msgHandler::recvError",e.error);else{var r=fillIdServer(e,e.content.msg,"idServer"),i=getSessionId(r,this.core.account),s=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:i}),a=formatMsg$1(r,s?{account:this.core.account,sessionAck:s.ack,msgReceiptTime:s.msgReceiptTime}:{account:this.core.account});this.logger.getDebugMode()?this.logger.debug("msgHandler::recvMsg",a.idClient,a.idServer,a):this.logger.log("msgHandler::recvMsg",a.idClient,a.idServer),this.markMsgsAck([a]),this.core.eventBus.emit("session/updateForNewMsg",a),"superTeam"===a.scene?this.core.eventBus.emit("sync/updateTimetag",{superTeamRoamingMsgs:a.time}):this.core.eventBus.emit("sync/updateTimetag",{roamingMsgs:a.time}),this.core.emit("msg",a),"notification"===a.type?this.core.eventBus.emit("team/onNotification",a):"out"!==a.flow&&this.doMsgReceiveReport(a,e),"notification"!==a.type&&this.core.user.checkUserUpdate(a)}}doMsgReceiveReport(e,t){if(e.from!==this.core.account){var r="p2p"===e.scene,i=get(e,"__clientExt.statistics.apiCallingTime")||0,s=get(e,"__clientExt.statistics.sendTime")||0,a=get(e,"__clientExt.statistics.attachUploadDuration")||0,n=this.core.timeOrigin.getNTPTime(),o=e.time,c=this.core.timeOrigin.checkNodeReliable(t.__receiveTimeNode)?this.core.timeOrigin.getNTPTime(t.__receiveTimeNode):n;this.core.reporter.report("msgReceive",{msgId:e.idServer,clientId:e.idClient,serverTime:o,receiveTime:c,fromAccid:e.from,toAccid:e.to,type:Fe[e.scene],tid:r?"":e.to,apiCallingTime:i,sendTime:s,attachUploadDuration:a,callbackTime:n,preHandleTime:n,result:200,failReason:"",rt:n-o})}}nimOnTeamMsgsHandler(e){e.content.datas.forEach((t=>{this.onMsgHandler(Object.assign({},e,{content:{msg:t}}))}))}syncRoamingMsgsHandler(e){var t,r,i=e.content.msgs||[];if(0!==i.length){var s=getSessionId(i[0],this.core.account),a=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:s}),n=(i=formatMsgs$1(i,a?{account:this.core.account,featureValue:Ge.roam,sessionAck:a.ack,msgReceiptTime:a.msgReceiptTime}:{account:this.core.account,featureValue:Ge.roam}))[0].time,o={timetag:n,sessionId:s,msgs:reverse(i)};"function"!=typeof(null===(r=this.core.sync)||void 0===r?void 0:r.getSyncDoneFlag)||this.core.sync.getSyncDoneFlag()||this.core.eventBus.emit("session/syncMsgs",o),this.core.emit("syncRoamingMsgs",o),"superTeam"===i[0].scene?this.core.eventBus.emit("sync/updateTimetag",{superTeamRoamingMsgs:n}):this.core.eventBus.emit("sync/updateTimetag",{roamingMsgs:n})}}syncOfflineMsgsHandler(e){var t=e.content.msgs||[];if(0!==t.length){var r={},i=[];t.forEach((e=>{var t=getSessionId(e,this.core.account),s=this.core.session.getSessionWithUncomplete({id:t}),a=formatMsg$1(e,s?{account:this.core.account,featureValue:Ge.leave,sessionAck:s.ack,msgReceiptTime:s.msgReceiptTime}:{account:this.core.account,featureValue:Ge.leave});i.push(a),r[a.sessionId]?r[a.sessionId].push(a):r[a.sessionId]=[a]})),this.markMsgsAck(i);var s=0;Object.keys(r).forEach((e=>{var t=r[e].sort(((e,t)=>t.time-e.time));(t=removeDupMsgsByIdClient(t))[0].time>s&&(s=t[0].time);var i={timetag:t[0].time,sessionId:e,msgs:t};this.core.eventBus.emit("session/syncMsgs",i),this.core.emit("syncOfflineMsgs",i)})),this.core.eventBus.emit("sync/updateTimetag",{offlineMsgs:s})}}syncDeleteSelfMsgsHandler(e){var t,r=null===(t=e.content)||void 0===t?void 0:t.deletedMsgs;r&&r.length>0||this.logger.warn("syncDeleteSelfMsgs:: no msgs");var i=r[r.length-1].time;this.core.eventBus.emit("sync/updateTimetag",{deleteSelfMsgs:i})}onDeleteSelfMsgHandler(e){var t=formatDeletedMsgs([e.content.deletedMsg]);this.core.eventBus.emit("session/updateForDeletedMsg",t),this.core.emit("deleteSelfMsgs",t)}onDeleteSelfMsgsHandler(e){var t=formatDeletedMsgs(e.content.deletedMsgs);this.core.eventBus.emit("session/updateForDeletedMsg",t),this.core.emit("deleteSelfMsgs",t)}onBroadcastMsgHandler(e){var t=e.content.msg,r=this.service.processBroadcastMsg([t]);this.core.emit("broadcastMsgs",r)}syncBroadcastMsgHandler(e){var t=e.content.msgs,r=this.service.processBroadcastMsg(t);this.core.emit("broadcastMsgs",r)}},"msg"),NIM.registerService(class UserService extends Service$1{constructor(e){super("user",e),this.userInfoMap=new Map,this.myInfo=formatUser({}),registerParser({cmdMap:Ft,cmdConfig:Gt})}setBlack(e){return validate({account:{type:"string",allowEmpty:!1},isAdd:{type:"boolean"}},e),this.core.sendCmd("setBlack",e).then((()=>{this.core.eventBus.emit("forwardSend/user/updateBlackList",e.account,e.isAdd)}))}setMute(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1},isAdd:{type:"boolean"}},e),yield this.core.sendCmd("setMute",e).then((()=>{})),this.core.eventBus.emit("forwardSend/user/setMute",e.account,e.isAdd)}))}getRelations(){return this.core.sendCmd("syncRelations",{timetag:0})}getBlackList(){return __awaiter(this,void 0,void 0,(function*(){return(yield this.core.sendCmd("syncRelations",{timetag:0})).blackList||[]}))}getMuteList(){return __awaiter(this,void 0,void 0,(function*(){return(yield this.core.sendCmd("syncRelations",{timetag:0})).muteList||[]}))}updatePushToken(){return __awaiter(this,void 0,void 0,(function*(){this.logger.error("This function is deprecated, please use nim.offlinePush.setOfflinePushConfig instead")}))}updateAppBackground(){return __awaiter(this,void 0,void 0,(function*(){this.logger.error("This function is deprecated, please use nim.offlinePush.setOfflinePushConfig instead")}))}getUsersNameCardFromServer(e){return validate({accounts:{type:"array",max:150,itemType:"string"}},e),this.core.sendCmd("getUsersNameCardFromServer",pick(e,["accounts"])).then((t=>{var{content:r}=t;return this.logger.log("user:: getUsers done",e.accounts),r&&r.users?r.users.map((e=>formatUser(e))):[]}))}updateMyNameCard(e){if(validate({nick:{type:"string",required:!1},avatar:{type:"string",required:!1},signature:{type:"string",required:!1},gender:{type:"enum",values:getEnumKeys(Tt),required:!1},email:{type:"string",required:!1},birth:{type:"string",required:!1},tel:{type:"string",required:!1},ext:{type:"string",required:!1}},e),0===Object.keys(e).length)return Promise.resolve(this.myInfo);var t=pick(e,["nick","avatar","signature","email","birth","tel","ext"]);return e.gender&&(t.gender=Tt[e.gender]),this.core.sendCmd("updateMyNameCard",{user:t}).then((r=>{var{content:i}=r;return i&&i.timetag&&this.core.eventBus.emit("sync/updateTimetag",{myInfo:+i.timetag}),e.gender&&(t.gender=e.gender),this.myInfo=Object.assign({},this.myInfo,t),this.core.eventBus.emit("forwardSend/user/updateUserInfo",t),this.myInfo}))}checkUserUpdate(e){var t=e.from;if(t!==this.core.account){var r=this.userInfoMap.get(t);if(r){var i=r.updateTime,s=e.userUpdateTime;!isNaN(i)&&!isNaN(s)&&"number"==typeof i&&"number"==typeof s&&i<s&&this.refreshUserInfo(t)}else this.refreshUserInfo(t)}}refreshUserInfo(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.getUsersNameCardFromServer({accounts:[e]});for(var r of t)this.userInfoMap.set(r.account,r),this.core.emit("updateUserInfo",r)}))}onUpdateBlackListHandler(e){var{content:t}=e;t.account?this.core.emit("updateBlackList",t):this.logger.warn("onUpdateBlackListHandler: no account")}onUpdateMuteListHandler(e){var{content:t}=e;t.account?this.core.emit("updateMuteList",t):this.logger.warn("onUpdateBlackListHandler: no account")}syncRelationsHandler(e){var{content:t}=e,{list:r,timetag:i}=t,s={blackList:[],muteList:[]};return i&&this.core.eventBus.emit("sync/updateTimetag",{relations:i}),r&&r.length&&r.forEach((e=>{var t=function formatRelationMember(e){var t={account:e.account,updateTime:+e.updateTime,createTime:+e.createTime};return"1"===e.isMuted&&(t.isMuted=!0),"1"===e.isBlack&&(t.isBlack=!0),t}(e);t.isBlack&&s.blackList.push(t),t.isMuted&&s.muteList.push(t)})),this.core.emit("relations",s),Promise.resolve(s)}syncMyNameCardHandler(e){e.content.user&&(this.myInfo=formatUser(e.content.user),this.core.emit("syncMyNameCard",this.myInfo),this.core.eventBus.emit("sync/updateTimetag",{myInfo:e.content.timetag}))}onUpdateMyNameCardHandler(e){var t=e.content.user;t?(Object.assign(this.myInfo,formatUser(t)),this.core.emit("updateMyNameCard",this.myInfo)):this.logger.warn("onUpdateMyNameCardHandler no user info")}},"user"),NIM.registerService(class SessionService extends Service$1{constructor(e,t){super("session",e),this.list=new Map,this.unreadCountFilterFn=e=>!0,this.lastMessageFilterFn=e=>!0,this.initEventListeners(),registerParser({cmdMap:dr,cmdConfig:pr}),this.stickTopService=new StickTopService(e),this.unreadModule=new UnreadModuleService(e),t&&this.setOptions(t)}setOptions(e){"function"==typeof(null==e?void 0:e.unreadCountFilterFn)&&(this.unreadCountFilterFn=e.unreadCountFilterFn),"function"==typeof(null==e?void 0:e.lastMessageFilterFn)&&(this.lastMessageFilterFn=e.lastMessageFilterFn)}reset(){this.list.forEach((e=>{e.unreadMsgs=[]})),this.list.clear()}initEventListeners(){this.core.eventBus.on("session/syncMsgs",this.onSyncMsgs.bind(this)),this.core.eventBus.on("session/updateForNewMsg",this.updateSessionWithMsg.bind(this)),this.core.eventBus.on("session/updateForModifyMsg",this.updateSessionByModifyMsg.bind(this)),this.core.eventBus.on("session/updateForClearMsg",((e,t=!0)=>{e&&e.length>0&&e.forEach((e=>{this.updateSession({id:e.sessionId,lastMsg:null,unread:0,unreadMsgs:[]},t)}))})),this.core.eventBus.on("session/updateForDeletedMsg",this.updateSessionForDeletedMsg.bind(this))}createSession(e,t){try{var{scene:r,accid:i}=getAccountFromSessionId(e);return{id:e,scene:r,to:i,lastMsg:t,updateTime:t?t.time:0,unread:0,unreadMsgs:[],ack:0}}catch(t){throw this.logger.error(`Failed to create session with ${e}`,t),new Error(`Failed to create session with ${e}`)}}getSession(e){validate({id:{type:"string",allowEmpty:!1}},e);var t=this.list.get(e.id);if(this.isSessionComplete(t))return t}getSessionWithUncomplete(e){return this.list.get(e.id)}getAllSessions(){var e=[];for(var[t,r]of this.list)this.isSessionComplete(r)&&e.push(r);return e}getSessions(e){validate({limit:{type:"number",required:!1},lastSessionId:{type:"string",allowEmpty:!1,required:!1},desc:{type:"boolean",required:!1}},e);var t=[],{limit:r=100,desc:i=!0}=e,{lastSessionId:s}=e,a=0;if(i){for(var[n,o]of this.list){if(s===n)break;this.isSessionComplete(o)&&t.push(o)}return t.slice(-r).reverse()}for(var[c,d]of this.list)if(s)c===s&&(s=void 0);else if(this.isSessionComplete(d)){if(++a>r)break;t.push(d)}return t}resetSessionUnreadCount(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({id:{type:"string",allowEmpty:!1}},e),validate({id:{type:"string",allowEmpty:!1}},e);var r=e.id,i=this.list.get(r);if(!i)throw this.logger.warn("resetSessionUnreadCount: can not find session "+r),new Error("Session::canSessionResetUnreadCount: can not find session "+r);var s=!1;try{s=this.unreadModule.canSessionResetUnreadCount(i)}catch(e){this.logger.warn(e)}if(!1!==s){var{accid:a,scene:n}=getAccountFromSessionId(r),o={to:a,timetag:(null===(t=null==i?void 0:i.lastMsg)||void 0===t?void 0:t.time)||i.updateTime||0},c="markSuperTeamSessionAck";return"superTeam"!==n&&(o.scene="p2p"===n?0:1,c="markSessionAck"),this.core.sendCmd(c,o).then((()=>{var e=this.storeUnreadByAck(r,o.timetag);e&&this.core.emit("updateSession",e)}))}}))}resetMultiSessionUnreadCount(e){return __awaiter(this,void 0,void 0,(function*(){validate({ids:{type:"array",itemType:"string",min:1}},e);var t=e.ids.map((e=>this.list.get(e))).filter(((t,r)=>!!t||(this.logger.warn("Session::canSessionResetUnreadCount: can not find session "+e.ids[r]),!1))),{superTeam:r,p2pOrTeam:i}=this.unreadModule.filterSessionForResetUnreadCount(t),s=chunk(r.params,50),a=chunk(i.params,50);for(var n of s)yield this.core.sendCmd(r.cmd,{datas:n}),n.forEach((e=>{var t=this.storeUnreadByAck(e.sessionId,e.timetag);t&&this.core.emit("updateSession",t)}));for(var o of a)yield this.core.sendCmd(i.cmd,{datas:o}),o.forEach((e=>{var t=this.storeUnreadByAck(e.sessionId,e.timetag);t&&this.core.emit("updateSession",t)}))}))}resetAllSessionsUnreadCount(){var e=[];return this.list.forEach((t=>{e.push(t.id)})),0===e.length?Promise.resolve():this.resetMultiSessionUnreadCount({ids:e})}deleteSession(e){return __awaiter(this,void 0,void 0,(function*(){validate({id:{type:"string",allowEmpty:!1},isSyncToServer:{type:"boolean",required:!1}},e),this.list.delete(e.id),this.core.msgLog&&e.isSyncToServer&&(yield this.core.msgLog.deleteRoamingMsgs({ids:[e.id]}))}))}deleteAllSessionsFromLocal(){this.list.clear()}addStickTopSession(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.stickTopService.addStickTopSession(e);return this.list.set(t.id,t),t}))}deleteStickTopSession(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.stickTopService.deleteStickTopSession(e);return this.list.set(t.id,t),t}))}updateStickTopSession(e){return __awaiter(this,void 0,void 0,(function*(){var t=yield this.stickTopService.updateStickTopSession(e);return this.list.set(t.id,t),t}))}nimMultiSyncAddStickTopSessionHandler(e){var t=this.stickTopService.stickTopSessionHandler(e.content.data);this.list.set(t.id,t),this.core.emit("updateSession",t)}nimMultiSyncDeleteStickTopSessionHandler(e){var t=this.stickTopService.stickTopSessionHandler({id:e.content.data.id,updateTime:e.content.timetag,ext:""},!1);this.list.set(t.id,t),this.core.emit("updateSession",t)}nimMultiSyncUpdateStickTopSessionHandler(e){var t=this.stickTopService.stickTopSessionHandler(e.content.data);this.list.set(t.id,t),this.core.emit("updateSession",t)}nimSyncStickTopSessionsHandler(e){if(this.core.eventBus.emit("sync/updateTimetag",{stickTopSessions:e.content.timetag}),e.content.isThereAnyChange){var t=e.content.datas,r=[];this.list.forEach((e=>{var t;e&&(null===(t=null==e?void 0:e.stickTopInfo)||void 0===t?void 0:t.isStickOnTop)&&r.push(e)})),r.forEach((e=>{var r=e.id,i=t.find((e=>{var{scene:t,accid:i}=getAccountFromSessionId(e.id,"|");return`${t}-${i}`===r}));if(!i){var s={},{scene:a,accid:n}=getAccountFromSessionId(r,"-");s.id=`${a}|${n}`,s.ext="",s.isTop=!1,t.push(s)}})),t.forEach((e=>{var t;!1===e.isTop?(delete e.isTop,t=this.stickTopService.stickTopSessionHandler(e,!1)):t=this.stickTopService.stickTopSessionHandler(e),this.list.set(t.id,t)}))}}updateSessionWithMsg(e){var t,r,i=!0,s=!0,a="boolean"!=typeof(null===(t=e.pushInfo)||void 0===t?void 0:t.needPushBadge)||(null===(r=e.pushInfo)||void 0===r?void 0:r.needPushBadge);try{i=!!this.unreadCountFilterFn(e)}catch(e){this.logger.error("session:updateSessionWithMsg, unreadCountFilterFn error",e)}try{s=!!this.lastMessageFilterFn(e)}catch(e){this.logger.error("session:updateSessionWithMsg, lastMessageFilterFn error",e)}var n=this.list.get(e.sessionId)||this.createSession(e.sessionId),o=!1;if(this.logger.log("session:updateSessionWithMsg, pending ",e.sessionId,e.idClient,e.idServer,s,i),s&&(!n.lastMsg||n.lastMsg.time<e.time||e.status===$e[$e.sending]||n.lastMsg.status===$e[$e.sending])&&(n.lastMsg=e,n.updateTime=e.time,o=!0),i&&a&&e.status===$e[$e.unread]&&e.time>(n.ack||0)){n.unread++;var c=n.unreadMsgs||[];c.unshift(e),c.sort(((e,t)=>t.time-e.time)),n.unreadMsgs=c,o=!0}o&&(this.logger.log("session:updateSessionWithMsg updating ",n.id,n.unread,n.lastMsg&&n.lastMsg.idClient),this.list.set(n.id,n),this.core.emit("updateSession",n))}updateSessionByModifyMsg(e){var t=this.list.get(e.sessionId)||this.createSession(e.sessionId),r=t.unreadMsgs||[],i=r.findIndex((t=>t.idClient===e.idClient));i>-1&&(r[i]=e),t.unreadMsgs=r,this.list.set(t.id,t);var s=!0;try{s=!!this.lastMessageFilterFn(e)}catch(e){this.logger.error("session:updateSessionByModifyMsg, lastMessageFilterFn error",e)}s&&(t.lastMsg&&t.lastMsg.idClient!==e.idClient||(t.lastMsg=e,t.updateTime=e.time,this.logger.log("session:updateSessionByModifyMsg updating ",t.id,t.unread,t.lastMsg&&t.lastMsg.idClient),this.list.set(t.id,t),this.core.emit("updateSession",t)))}storeUnreadByAck(e,t){var r=this.list.get(e)||this.createSession(e);if(!(r.ack&&t<r.ack)){var i=r.unreadMsgs||[],s=[],a=[],n=0;return r.unreadMsgs=[],i.length>0&&(i.forEach((e=>{a.includes(e.idClient)||e.time>t&&(n++,a.push(e.idClient),s.push(e))})),r.unreadMsgs=s.sort(((e,t)=>t.time-e.time))),r.ack=t,r.unread=n,r.lastMsg&&"unread"===r.lastMsg.status&&t>=r.lastMsg.time&&(r.lastMsg.status="read"),this.list.set(e,r),r}this.logger.warn("storeUnreadByAck: not need update ack",e,t,r.ack)}updateSession(e,t=!0){var r=e.id,i=this.list.get(r)||this.createSession(e.id),s=Object.assign(i,e);return this.list.set(r,s),this.logger.log("updateSession: update",t,pick(e,["id","ack","unread"]),s.lastMsg&&s.lastMsg.idClient),t&&this.core.emit("updateSession",s),s}isSessionComplete(e){return!!e&&(!!(e.id&&e.scene&&e.to)&&void 0!==e.lastMsg)}syncSessionAckHandler(e){var t=e.content.p2p||{},r=e.content.team.m_map||{};this.logger.log("syncSessionAck::",t,r),Object.keys(t).forEach((e=>{this.updateSession({id:"p2p-"+e,ack:t[e]},!1)})),Object.keys(r).forEach((e=>{this.updateSession({id:"team-"+e,ack:r[e]},!1)}))}syncSuperTeamSessionAckHandler(e){var t=e.content.superTeam.m_map;this.logger.log("syncSuperTeamSessionAck::",t),Object.keys(t).forEach((e=>{this.updateSession({id:"superTeam-"+e,ack:t[e]},!1)}))}syncMarkSessionAckHandler(e){var t=e.content,r=`${0===t.scene?"p2p":1===t.scene?"team":"superTeam"}-${t.to}`,i=this.list.get(r);if(i&&i.ack&&t.timetag<i.ack)this.logger.warn(`syncMarkSessionAckHandler: ${r} do not need update ack`,i.ack,t.timetag);else{var s=this.storeUnreadByAck(r,t.timetag);s&&this.core.emit("updateSession",s)}}syncMarkSuperTeamSessionAckHandler(e){e.content.scene=5,this.syncMarkSessionAckHandler(e)}onSyncDone(){var e=[];this.list.forEach(((t,r)=>{e.push(this.storeUnreadByAck(r,t.ack||0))})),this.list.clear(),e.sort(((e,t)=>e.updateTime-t.updateTime)).forEach((e=>{this.list.set(e.id,e)})),(e=e.filter((e=>this.isSessionComplete(e))).sort(((e,t)=>t.updateTime-e.updateTime))).length>0&&this.core.emit("sessions",e)}onSyncMsgs(e){var t=this.list.get(e.sessionId),r=[];try{r=e.msgs.filter((e=>{var t,r,i="boolean"!=typeof(null===(t=e.pushInfo)||void 0===t?void 0:t.needPushBadge)||(null===(r=e.pushInfo)||void 0===r?void 0:r.needPushBadge);return this.unreadCountFilterFn(JSON.parse(JSON.stringify(e)))&&i}))}catch(e){this.logger.error("session:onSyncMsgs, unreadCountFilterFn error ",e)}var i,s=[];try{s=e.msgs.filter((e=>this.lastMessageFilterFn(JSON.parse(JSON.stringify(e)))))}catch(e){this.logger.error("session:onSyncMsgs, lastMessageFilterFn error ",e)}s&&s.length>0&&(i=s[s.length-1],i=s[0].time>i.time?s[0]:i);var a=i?i.time:0;t||(t=i?this.createSession(e.sessionId,i):this.createSession(e.sessionId)),t.unreadMsgs=t.unreadMsgs?r.concat(t.unreadMsgs).filter((e=>e.status===$e[$e.unread])):r.filter((e=>e.status===$e[$e.unread])),t.updateTime&&t.updateTime>=a||(t.updateTime=a),t.lastMsg&&t.lastMsg.time>=a||(t.lastMsg=i),this.list.set(t.id,t)}updateSessionForDeletedMsg(e){var t={};e.forEach((e=>{var r=e.to===this.core.account?e.from:e.to,i=`${e.scene}-${r}`,s=this.list.get(i);if(s){var a=s.unreadMsgs.some((t=>t.idClient===e.idClient)),n=!0;try{n=!!this.unreadCountFilterFn(e)}catch(e){this.logger.error("session:updateSessionForDeletedMsg, unreadCountFilterFn error",e)}var o=s.ack||0;if(n&&a&&o<e.time&&e.from!==this.core.account&&s.unread>0&&(s.unread=s.unread-1,s.unreadMsgs&&s.unreadMsgs.length>0)){var c=function findIndex(e,t){e=e||[],t=t||{};for(var r=0;r<e.length;r++){var i=!0;for(var s in t)if(e[r][s]!==t[s]){i=!1;break}if(i)return r}return-1}(s.unreadMsgs,{idClient:e.idClient});c>=0&&s.unreadMsgs.splice(c,1)}s.lastMsg&&s.lastMsg.idClient===e.idClient&&(s.lastMsg=null),t[s.id]=!0}})),Object.keys(t).forEach((e=>{var t=this.list.get(e);t&&this.core.emit("updateSession",t)}))}multiSyncMsgReceiptHandler(e){var t,r=null===(t=e.content)||void 0===t?void 0:t.msgReceiptTag;if(r){this.updateSessionMsgReceiptTime([r],!0),r.msgReceiptTime=r.time,r.sessionId=`p2p-${r.from}`;var i=__rest(r,["time","from"]);this.core.emit("msgReceipts",[i])}}syncMsgReceiptsHandler(e){var t,r=null===(t=e.content)||void 0===t?void 0:t.msgReceipts;r&&this.updateSessionMsgReceiptTime(r,!1)}updateSessionMsgReceiptTime(e,t=!0){e&&e.length>0&&e.forEach((e=>{var r=this.list.get(`p2p-${e.from}`);r||(r=this.createSession(`p2p-${e.from}`));var i=parseInt(e.time);r.msgReceiptTime&&r.msgReceiptTime>=i||(r.msgReceiptTime=i,r.lastMsg&&"sent"===r.lastMsg.status&&i>=r.lastMsg.time&&(r.lastMsg.status="receipt"),this.logger.log(`session: update session ${r.id} msgReceiptTime: ${r.msgReceiptTime}`),this.list.set(r.id,r),t&&this.core.emit("updateSession",r))}))}},"session"),NIM.registerService(class TeamService extends Service$1{constructor(e){super("team",e),this.myTeamMembersMap=new Map,this.service=new ModuleService$1(e),this.setListeners(),registerParser({cmdMap:Dt,cmdConfig:Bt})}setListeners(){this.core.eventBus.on("forwardReceive/team/updateMyMemberInfo",(e=>{this.emitMemberUpdate(e)})),this.core.eventBus.on("team/onNotification",(e=>this.notificationHandler(e)))}reset(){this.myTeamMembersMap.clear()}mergeMyTeamMembers(e){e.forEach((e=>{var t=e.teamId,r=this.myTeamMembersMap.get(t),i=Object.assign({},r,e);this.myTeamMembersMap.set(t,i)}))}getTeamInfo(e){return __awaiter(this,void 0,void 0,(function*(){return validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1}},e),formatTeam((yield this.core.sendCmd("getTeamInfo",{teamId:e.teamId})).content.team)}))}getTeams(){return __awaiter(this,void 0,void 0,(function*(){return formatTeams((yield this.core.sendCmd("getTeams",{timetag:0})).content.teams)}))}getTeamsById(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamIds:{type:"array",itemType:"string"}},e);var t=yield this.core.sendCmd("getTeamsById",{teamIds:e.teamIds});return{teams:formatTeams(t.content.teams),tids:t.content.tids}}))}createTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"enum",values:["advanced","normal"]},name:{type:"string",allowEmpty:!1},level:{type:"number",required:!1},accounts:{type:"array",itemType:"string",required:!1},ps:{type:"string",allowEmpty:!0,max:5e3,required:!1},joinMode:{type:"enum",values:["noVerify","needVerify","rejectAll"],required:!1},beInviteMode:{type:"enum",values:["noVerify","needVerify"],required:!1},inviteMode:{type:"enum",values:["manager","all"],required:!1},updateTeamMode:{type:"enum",values:["manager","all"],required:!1},updateExtMode:{type:"enum",values:["manager","all"],required:!1},intro:{type:"string",allowEmpty:!0,required:!1},announcement:{type:"string",allowEmpty:!0,required:!1},avatar:{type:"string",allowEmpty:!0,required:!1},ext:{type:"string",allowEmpty:!0,required:!1}},e);var t=generateTeam(e),r=formatTeam((yield this.core.sendCmd("createTeam",{team:t,accounts:e.accounts||[],ps:e.ps||""})).content.team);return this.core.eventBus.emit("forwardSend/team/created",r),r}))}dismissTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1}},e),yield this.core.sendCmd("dismissTeam",{teamId:e.teamId})}))}leaveTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1}},e),yield this.core.sendCmd("leaveTeam",{teamId:e.teamId})}))}transferTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},account:{type:"string",allowEmpty:!1},leave:{type:"boolean"}},e),yield this.core.sendCmd("transferTeam",e)}))}updateTeamInfo(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},joinMode:{type:"enum",values:["noVerify","needVerify","rejectAll"],required:!1},beInviteMode:{type:"enum",values:["noVerify","needVerify"],required:!1},inviteMode:{type:"enum",values:["manager","all"],required:!1},updateTeamMode:{type:"enum",values:["manager","all"],required:!1},updateExtMode:{type:"enum",values:["manager","all"],required:!1},intro:{type:"string",allowEmpty:!0,required:!1},announcement:{type:"string",allowEmpty:!0,required:!1},avatar:{type:"string",allowEmpty:!0,required:!1},ext:{type:"string",allowEmpty:!0,required:!1}},e);var t=generateTeam(e);return yield this.core.sendCmd("updateTeamInfo",{team:t}),formatTeam(t)}))}getTeamMembers(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",required:!1}},e);var r=yield this.core.sendCmd("getTeamMembers",{teamId:e.teamId,timetag:0}),i=formatTeamMembers(null===(t=r.content)||void 0===t?void 0:t.teamMembers);return e.accounts&&e.accounts.length>0?i.filter((t=>{var r;return null===(r=e.accounts)||void 0===r?void 0:r.includes(t.account)})):i}))}getMutedTeamMembers(e){return __awaiter(this,void 0,void 0,(function*(){return validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1}},e),formatTeamMembers((yield this.core.sendCmd("getMutedTeamMembers",{teamId:e.teamId})).content.teamMembers)}))}addTeamMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",min:1},ps:{type:"string",allowEmpty:!0,max:5e3,required:!1}},e),yield this.core.sendCmd("addTeamMembers",{teamId:e.teamId,accounts:e.accounts,ps:e.ps||"",attach:e.ext||""})}))}removeTeamMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",min:1}},e),yield this.core.sendCmd("removeTeamMembers",{teamId:e.teamId,accounts:e.accounts})}))}applyTeam(e){return __awaiter(this,void 0,void 0,(function*(){return validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},ps:{type:"string",allowEmpty:!0,max:5e3,required:!1}},e),formatTeam((yield this.core.sendCmd("applyTeam",{teamId:e.teamId,ps:e.ps||""})).content.team)}))}addTeamManagers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",min:1,itemType:"string"}},e),yield this.core.sendCmd("addTeamManagers",e)}))}removeTeamManagers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",min:1,itemType:"string"}},e),yield this.core.sendCmd("removeTeamManagers",e)}))}updateMyMemberInfo(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},nickInTeam:{type:"string",allowEmpty:!0,required:!1},bitConfigMask:{type:"number",min:0,max:2,required:!1},ext:{type:"string",required:!1}},e);var t=generatorTeamMemberForCmd({teamId:e.teamId,nickInTeam:e.nickInTeam,bitConfigMask:e.bitConfigMask,ext:e.ext});yield this.core.sendCmd("updateMyMemberInfo",{teamMember:t});var r=formatTeamMember(Object.assign({updateTime:(new Date).getTime(),account:this.core.account},t)),i=this.emitMemberUpdate(r);return this.core.eventBus.emit("forwardSend/team/updateMyMemberInfo",i),r}))}emitMemberUpdate(e){e=formatTeamMember(e),this.mergeMyTeamMembers([e]),this.core.emit("updateTeamMember",e);var t=cloneDeep(this.myTeamMembersMap.get(e.teamId));return this.core.emit("myTeamMembers",[t]),t}updateMemberNick(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},account:{type:"string",allowEmpty:!1},nickInTeam:{type:"string",allowEmpty:!0}},e);var t=generatorTeamMemberForCmd({teamId:e.teamId,nickInTeam:e.nickInTeam,account:e.account});return yield this.core.sendCmd("updateNickInTeam",{teamMember:t}),formatTeamMember(Object.assign({updateTime:(new Date).getTime()},t))}))}muteTeamMember(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},account:{type:"string",allowEmpty:!1},mute:{type:"boolean"}},e),yield this.core.sendCmd("muteTeamMember",{teamId:e.teamId,account:e.account,mute:e.mute?1:0})}))}getTeamMemberInvitorAccid(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",max:200}},e);var r={teamId:e.teamId};e.accounts&&e.accounts.length>0&&(r.accounts=e.accounts);var i=yield this.core.sendCmd("getTeamMemberInvitorAccid",r);return(null===(t=i.content)||void 0===t?void 0:t.accountsMap)||{}}))}muteTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},mute:{type:"boolean"}},e),yield this.core.sendCmd("muteTeam",{teamId:e.teamId,mute:e.mute?1:0})}))}passTeamApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1}},e);try{yield this.core.sendCmd("passTeamApply",e),this.core.eventBus.emit("forwardSend/team/passTeamApply",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/team/passTeamApply",e,null==t?void 0:t.code),r}}))}rejectTeamApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1},ps:{type:"string",max:5e3,required:!1}},e);try{yield this.core.sendCmd("rejectTeamApply",{teamId:e.teamId,from:e.from,ps:e.ps||""}),this.core.eventBus.emit("forwardSend/team/rejectTeamApply",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/team/rejectTeamApply",e,null==t?void 0:t.code),r}}))}acceptTeamInvite(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1}},e);try{yield this.core.sendCmd("acceptTeamInvite",e),this.core.eventBus.emit("forwardSend/team/acceptTeamInvite",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/team/acceptTeamInvite",e,null==t?void 0:t.code),r}}))}rejectTeamInvite(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1},ps:{type:"string",max:5e3,required:!1}},e);try{yield this.core.sendCmd("rejectTeamInvite",{teamId:e.teamId,from:e.from,ps:e.ps||""}),this.core.eventBus.emit("forwardSend/team/rejectTeamInvite",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/team/rejectTeamInvite",e,null==t?void 0:t.code),r}}))}notifyTeamMsgReceiptsHandler(e){var t,r=null===(t=e.content)||void 0===t?void 0:t.teamMsgReceipts;r&&r.length>0&&(this.core.emit("teamMsgReceipts",r),this.core.emit("msgReceipts",r))}syncTeamsHandler(e){var t=e.content;this.core.eventBus.emit("sync/updateTimetag",{teams:parseInt(t.timetag)});var r=null==t?void 0:t.teams;if(r&&r.length){var i=formatTeams(r);this.core.emit("teams",i)}}syncCreateTeamHandler(e){var t=e.content,r=formatTeam(null==t?void 0:t.team),i=generatorMemberByTeam(r,r.owner,"owner");this.core.emit("createTeam",r,i)}syncUpdateTeamMemberHandler(e){var t=e.content,r=formatTeamMember(null==t?void 0:t.teamMember);r.updateTime||(r.updateTime=(new Date).getTime()),this.mergeMyTeamMembers([r]),this.core.emit("updateTeamMember",r);var i=cloneDeep(this.myTeamMembersMap.get(r.teamId));this.core.emit("myTeamMembers",[i])}syncMyTeamMembersHandler(e){var t=e.content;this.core.eventBus.emit("sync/updateTimetag",{myTeamMembers:parseInt(t.timetag)});var r=null==t?void 0:t.teamMembers.map((e=>formatTeamMember(e)));this.mergeMyTeamMembers(r),this.core.emit("myTeamMembers",cloneDeep(r))}notificationHandler(e){var{attach:t,scene:r,from:i,to:s,time:a,idServer:n,idClient:o}=e,{team:c,account:d,accounts:l,type:m}=t;if("team"===r)switch(this.logger.getDebugMode()?this.logger.debug("team::recvNotification",n,o,t):this.logger.log("team::recvNotification",n,o,s,m,d,l),m){case"updateTeam":c.updateTime=a,this.core.emit("updateTeam",c);break;case"addTeamMembers":this.service.notifyAddTeamMembers(c,l);break;case"acceptTeamInvite":this.service.notifyAddTeamMembers(c,[i]);break;case"passTeamApply":this.service.notifyAddTeamMembers(c,[d]);break;case"addTeamManagers":this.service.notifyUpdateTeamManagers(s,l,!0,a);break;case"removeTeamManagers":this.service.notifyUpdateTeamManagers(s,l,!1,a);break;case"removeTeamMembers":this.service.notifyRemoveTeamMembers(c,l);break;case"leaveTeam":this.service.notifyRemoveTeamMembers(c,[i]);break;case"dismissTeam":this.core.emit("dismissTeam",{teamId:s});break;case"transferTeam":this.service.notifyTransferTeam(c,i,d);break;case"updateTeamMemberMute":this.service.notifyUpdateTeamMembersMute(c,[d],t.mute)}}},"team"),NIM.registerService(class SystemMessageService extends Service$1{constructor(e){super("systemMessage",e),this.sysMsgUnread={total:0,friend:0,msg:0,team:0,superTeam:0},this.core.eventBus.on("logined",(()=>{this.initEventListeners()})),registerParser({cmdMap:hr,cmdConfig:yr})}initEventListeners(){this.core.eventBus.on("systemMessage/passFriendApply",(e=>{this.core.emit("updateSystemMessages",[{idServer:e.idServer,from:e.account,state:"pass",type:"friendRequest"}])})),this.core.eventBus.on("systemMessage/rejectFriendApply",(e=>{this.core.emit("updateSystemMessages",[{idServer:e.idServer,from:e.account,state:"decline",type:"friendRequest"}])}))}doMarkSysMsgAck(e){var t=[],r=[],i=["customSuperTeam"];e.forEach((e=>{e.idServer&&(i.includes(e.type)?r.push(e.idServer):t.push(e.idServer))})),t.length>0&&this.core.sendCmd("batchMarkRead",{sid:"7",cid:"3",ids:t}),r.length>0&&this.core.sendCmd("batchMarkRead",{sid:"21",cid:"19",ids:r})}sendCustomSysMsg(e){validate({to:{type:"string",allowEmpty:!1},type:{type:"enum",values:["customP2p","customTeam","customSuperTeam"]},attach:{type:"string",allowEmpty:!1},setting:{type:"object",rules:{needSaveOffline:{type:"boolean",required:!1},env:{type:"string",allowEmpty:!1,required:!1}},required:!1},pushInfo:{type:"object",required:!1,rules:Xt}},e);var t="customSuperTeam"===e.type?"sendSuperTeamCustomSysMsg":"sendCustomSysMsg";return this.core.sendCmd(t,{sysMsg:generatorSysMsgForCmd$1(e)}).then((()=>{this.logger.log("sendCustomSysMsg success")})).catch((e=>{throw this.logger.error("sendCustomSysMsg failed",e.message),e}))}onSysMsgHandler(e){var t,r=null===(t=e.content)||void 0===t?void 0:t.sysMsg;if(r){var i=formatSystemMessage(r=fillIdServer(e,e.content.sysMsg,"idServer"),this.logger,Kt.default);this.core.emit("sysMsg",i),this.doMarkSysMsgAck([i])}else this.logger.warn("onSysMsg no content.sysMsg")}syncOfflineSysMsgsHandler(e){if(e.content.sysMsgs&&e.content.sysMsgs.length>0){var t=e.content.sysMsgs.map((e=>formatSystemMessage(e,this.logger,Kt.leave)));this.core.emit("syncSysMsgs",t),this.doMarkSysMsgAck(t)}}onRecallMsgHandler(e){var t,r=null===(t=e.content)||void 0===t?void 0:t.sysMsg;if(r){var i=formatDeletedMsgs([r=fillIdServer(e,e.content.sysMsg,"idServer")],getSceneFromRecallSysMsg(+r.type));this.core.eventBus.emit("session/updateForDeletedMsg",i);var s=formatSystemMessage(r,this.logger,Kt.default);this.core.emit("sysMsg",s),this.doMarkSysMsgAck([s])}else this.logger.warn("onSysMsg no content.sysMsg")}syncRecallMsgOfflineAndRoamingHandler(e){var{timetag:t,type:r,sysMsgs:i}=e.content,s=parseInt(r),a=1===s?Kt.leave:Kt.roam,n=i.map((e=>formatSystemMessage(e,this.logger,a)));1===s&&this.doMarkSysMsgAck(n),this.core.eventBus.emit("sync/updateTimetag",{recallMsg:t}),this.core.emit("syncSysMsgs",n)}},"systemMessage"),NIM.registerService(class FriendService extends Service$1{constructor(e){super("friend",e),registerParser({cmdMap:Ir,cmdConfig:Tr})}getFriends(){var e;return __awaiter(this,void 0,void 0,(function*(){var t=yield this.core.sendCmd("getFriends",{timetag:0}),r=(null===(e=t.content)||void 0===e?void 0:e.friends)||[];return r=r.map((e=>reverseFriend(e)))}))}addFriend(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1},ps:{type:"string",allowEmpty:!1,required:!1}},e),yield this.core.sendCmd("friendReuqest",{account:e.account,type:1,ps:e.ps||""});var t=(new Date).getTime();return this.core.eventBus.emit("forwardSend/friend/addFriend",e.account),{account:e.account,createTime:t,updateTime:t,valid:!0,source:0,passRelationShip:1,relationShip:1,bitsExtension:0}}))}applyFriend(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("friendReuqest",{account:e.account,type:2,ps:e.ps||""})}))}passFriendApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1}},e);try{yield this.core.sendCmd("friendReuqest",{account:e.account,type:3,ps:e.ps||""}).then((t=>(this.core.eventBus.emit("systemMessage/passFriendApply",e),t))),this.core.eventBus.emit("forwardSend/friend/passFriendApply",e.account)}catch(t){throw this.core.eventBus.emit("forwardSend/friend/passFriendApply",e.account,t),t}}))}rejectFriendApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1}},e);try{yield this.core.sendCmd("friendReuqest",{account:e.account,type:4,ps:e.ps||""}).then((t=>(this.core.eventBus.emit("systemMessage/rejectFriendApply",e),t))),this.core.eventBus.emit("forwardSend/friend/rejectFriendApply",e.account,e.ps)}catch(t){throw this.core.eventBus.emit("forwardSend/friend/rejectFriendApply",e.account,e.ps,t),t}}))}deleteFriend(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1},delAlias:{type:"boolean"}},e),yield this.core.sendCmd("deleteFriend",{account:e.account,delFriendParams:{delAlias:!0===e.delAlias?1:0}}),this.core.eventBus.emit("forwardSend/friend/deleteFriend",e.account)}))}updateFriend(e){return __awaiter(this,void 0,void 0,(function*(){validate({account:{type:"string",allowEmpty:!1},alias:{type:"string"},ext:{type:"string",required:!1}},e),yield this.core.sendCmd("updateFriend",{updateFriendTag:e}),this.core.eventBus.emit("forwardSend/friend/updateFriend",e)}))}syncFriendRequestHandler(e){var t=function formatFriendRequest(e){var t=Object.assign({},e);try{t.ps=t.ps&&JSON.parse(t.ps)}catch(e){}if(t.type=fr[t.type],"addFriend"===t.type||"passFriendApply"===t.type){var r=(new Date).getTime();t.friend={account:e.account,alias:"",createTime:r,ext:"",updateTime:r,valid:!0}}return t}(e.content);this.core.emit("syncFriend",t)}syncDeleteFriendHandler(e){var t=e.content.account;this.logger.log(`friend::emit syncFriendAction: deleteFriend ${t}`),this.core.emit("syncFriend",{type:"deleteFriend",account:t})}syncUpdateFriendHandler(e){var t=reverseFriend(e.content.friend);this.logger.log("friend::emit syncFriendAction: updateFriend, ",null==t?void 0:t.account),this.core.emit("syncFriend",{type:"updateFriend",friend:t})}syncFriendsHandler(e){var t=e.content;this.core.eventBus.emit("sync/updateTimetag",{friends:parseInt(t.timetag)});var r=null==t?void 0:t.friends;if(r&&r.length){var i=r.map((e=>reverseFriend(e)));this.core.emit("friends",i)}}syncFriendUsersHandler(e){var t=e.content;this.core.eventBus.emit("sync/updateTimetag",{friendUsers:parseInt(t.timetag)});var r=null==t?void 0:t.users;if(r&&r.length){var i=r.map((e=>formatUser(e)));this.core.emit("users",i)}}},"friend"),NIM.registerService(class EventService extends Service$1{constructor(e){super("event",e),registerParser({cmdMap:_r,cmdConfig:br})}publishEvent(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number"},value:{type:"number"},ext:{type:"string",required:!1},validTime:{type:"number",min:60,max:2592e3,required:!1},broadcastType:{type:"number",required:!1},sync:{type:"boolean",required:!1}},e);var r=Object.assign(Object.assign({validTime:e.validTime||604800,broadcastType:e.broadcastType||2},e),{idClient:Me(),sync:!0===e.sync?1:0}),i=yield this.core.sendCmd("publishEvent",{msgEvent:r});return formatEvent((null===(t=i.content)||void 0===t?void 0:t.msgEvent)||{})}))}subscribeEvent(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number"},accounts:{type:"array",itemType:"string",max:100},subscribeTime:{type:"number",min:60,max:2592e3,required:!1}},e);var r=Object.assign(Object.assign({subscribeTime:2592e3},e),{sync:!0===e.sync?1:0}),i=yield this.core.sendCmd("subscribeEvent",{msgEventSubscribe:r,accounts:e.accounts});return{failedAccounts:(null===(t=i.content)||void 0===t?void 0:t.accounts)||[]}}))}unSubscribeEvents(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({type:{type:"number"},accounts:{type:"array",itemType:"string",max:100,required:!1}},e);var r,i={type:e.type};if(e.accounts&&e.accounts.length>0){var s=yield this.core.sendCmd("unSubscribeEventsByAccounts",{msgEventSubscribe:i,accounts:e.accounts});r=(null===(t=s.content)||void 0===t?void 0:t.accounts)||[]}else yield this.core.sendCmd("unSubscribeEventsByType",{msgEventSubscribe:i}),r=[];return{failedAccounts:r}}))}querySubscribeEvents(e){var t;return __awaiter(this,void 0,void 0,(function*(){var r;return validate({type:{type:"number"},accounts:{type:"array",itemType:"string",max:100,required:!1}},e),r=e.accounts&&e.accounts.length>0?yield this.core.sendCmd("querySubscribeEventsByAccounts",{msgEventSubscribe:{type:e.type},accounts:e.accounts}):yield this.core.sendCmd("querySubscribeEventsByType",{msgEventSubscribe:{type:e.type}}),formatSubscribes(null===(t=r.content)||void 0===t?void 0:t.msgEventSubscribes)}))}pushEventHandler(e){var t,r=(null===(t=e.content)||void 0===t?void 0:t.msgEvent)||{};this.core.emit("pushEvents",[formatEvent(r)])}pushEventsHandler(e){var t,r=(null===(t=e.content)||void 0===t?void 0:t.msgEvents)||{};this.core.emit("pushEvents",function formatEvents(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatEvent(e))):[]}(r))}},"event"),NIM.registerService(class MsgExtendService extends Service$1{constructor(e){super("msgExtend",e),registerParser({cmdMap:Ar,cmdConfig:kr})}getThreadMsgs(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({scene:{type:"enum",values:getEnumKeys(Fe)},threadMsgFromAccount:{type:"string",allowEmpty:!1},threadMsgIdServer:{type:"string",allowEmpty:!1},threadMsgTime:{type:"number"},threadMsgToAccount:{type:"string",allowEmpty:!1},beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},lastMsgId:{type:"string",allowEmpty:!1,required:!1},limit:{type:"number",min:1,max:100,required:!1},reverse:{type:"boolean",required:!1}},e);var r=yield this.core.sendCmd("getThreadMsgs",function generateThreadMsgsParams(e){var t={scene:Fe[e.scene],from:e.threadMsgFromAccount,to:e.threadMsgToAccount,time:e.threadMsgTime,idServer:e.threadMsgIdServer},r={limit:e.limit<100?e.limit:100,beginTime:"number"==typeof e.beginTime?e.beginTime:0,reverse:!0===e.reverse?1:0};return e.lastMsgId&&(r.lastMsgId=e.lastMsgId),{msg:t,threadMsgReq:r}}(e)),{msgs:i,threadMsg:s}=r.content,{threadMsgsMeta:a}=r.content,n=getSessionId(s,this.core.account),o=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:n});return{msgs:i=formatMsgs$1(i,o?{account:this.core.account,sessionAck:o.ack,msgReceiptTime:o.msgReceiptTime}:{account:this.core.account}),threadMsg:s=formatMsg$1(s,o?{account:this.core.account,sessionAck:o.ack,msgReceiptTime:o.msgReceiptTime}:{account:this.core.account}),total:parseInt(a.total),timetag:parseInt(a.lastMsgTime)}}))}getMsgsByIdServer(e){return __awaiter(this,void 0,void 0,(function*(){return validate({reqMsgs:{type:"array",rules:{scene:{type:"enum",values:getEnumKeys(Fe)},from:{type:"string",allowEmpty:!1},to:{type:"string",allowEmpty:!1},idServer:{type:"string",allowEmpty:!1},time:{type:"number"}},min:1,max:100}},e),(yield this.core.sendCmd("getMsgsByIdServer",{reqMsgs:e.reqMsgs.map((e=>Object.assign(Object.assign({},e),{scene:getEnumKeyByEnumValue(Fe,e.scene)})))})).content.msgs.map((e=>{var t,r=getSessionId(e,this.core.account),i=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:r});return formatMsg$1(e,i?{account:this.core.account,sessionAck:i.ack,msgReceiptTime:i.msgReceiptTime}:{account:this.core.account})}))}))}},"msgExtend"),NIM.registerService(class MsgLogService extends Service$1{constructor(e){super("msgLog",e),this.onV2ClearHistoryMessage=e=>{var t=formatClearResult(e);this.core.eventBus.emit("session/updateForClearMsg",[t],!0)},registerParser({cmdMap:Pr,cmdConfig:Ur}),this.registerListener()}registerListener(){this.core.eventBus.on("forwardReceive/msgLog/clearHistoryMsgsFromServer",this.onV2ClearHistoryMessage)}deleteRoamingMsgs(e){return __awaiter(this,void 0,void 0,(function*(){validate({ids:{type:"array",itemType:"string"}},e);var t=[];try{t=e.ids.map((e=>{var{scene:t,accid:r}=getAccountFromSessionId(e);return`${t}|${r}`}))}catch(t){throw this.logger.error(`Failed to delete roaming msgs with ${e.ids}`,t),new Error(`Failed to create session with ${e.ids}`)}yield this.core.sendCmd("deleteRoamingMsgs",{ids:t})}))}getHistoryMsgs(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){"function"!=typeof(null===(t=this.core.sync)||void 0===t?void 0:t.getSyncDoneFlag)||this.core.sync.getSyncDoneFlag()||this.logger.warn("Please call getHistoryMsgs after syncdone event"),validate({scene:{type:"enum",values:getEnumKeys(Fe)},to:{type:"string",allowEmpty:!1},beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},limit:{type:"number",min:1,max:100,required:!1},reverse:{type:"boolean",required:!1},lastMsgId:{type:"string",required:!1,allowEmpty:!1},asc:{type:"boolean",required:!1},msgTypes:{type:"array",itemType:"string",required:!1}},e);var i="p2p"===e.scene?"getHistoryMsgs":"team"===e.scene?"getHistoryTeamMsgs":"getHistorySuperTeamMsgs",s=yield this.core.sendCmd(i,assignOptions({beginTime:0,endTime:0,lastMsgId:0,limit:100,reverse:!1},Object.assign(Object.assign({},e),{msgTypes:e.msgTypes?e.msgTypes.map((e=>Be[e])):[]}))),{content:a}=s;if(!(a.msgs&&a.msgs.length>0))return[];var n=getSessionId(a.msgs[0],this.core.account),o=null===(r=this.core.session)||void 0===r?void 0:r.getSessionWithUncomplete({id:n}),c=formatMsgs$1(a.msgs,o?{account:this.core.account,sessionAck:o.ack,msgReceiptTime:o.msgReceiptTime}:{account:this.core.account});return!0===e.asc?c.sort(((e,t)=>e.time-t.time)):c}))}clearHistoryMsgsFromServer(e){return __awaiter(this,void 0,void 0,(function*(){validate({scene:{type:"enum",values:["p2p","team"]},to:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1},isSyncSelf:{type:"boolean",required:!1}},e);var t=Object.assign(Object.assign({isDeleteRoam:1},e),{type:"team"===e.scene?2:1,isSyncSelf:!0===e.isSyncSelf?1:0});t[2===t.type?"toTid":"otherAccid"]=e.to;var r=(yield this.core.sendCmd("clearHistoryMsgsFromServer",{clearHistoryMsgsFromServerReqTag:t})).content;return this.core.eventBus.emit("session/updateForClearMsg",[{sessionId:`${e.scene}-${e.to}`}],!0),this.core.eventBus.emit("forwardSend/msgLog/clearHistoryMsgsFromServer",Object.assign(Object.assign({},t),{time:r.timetag})),r}))}multiSyncClearServerHistoryMsgsHandler(e){var t=formatClearResult(e.content.data);this.core.eventBus.emit("session/updateForClearMsg",[t],!0),this.core.emit("clearServerHistoryMsgs",[t])}ftsCloudMsgLogs(e){return __awaiter(this,void 0,void 0,(function*(){return this.baseFtsCloudMsgLogs(e,"nimFtsCloudMsgLogs")}))}ftsCloudMsgLogsAggWithSession(e){return __awaiter(this,void 0,void 0,(function*(){return this.baseFtsCloudMsgLogs(e,"nimFtsCloudMsgLogsAggWithSession")}))}baseFtsCloudMsgLogs(e,t){return __awaiter(this,void 0,void 0,(function*(){if(validate({keyword:{type:"string",allowEmpty:!1},fromTime:{type:"number",required:!1},toTime:{type:"number",required:!1},sessionLimit:{type:"number",required:!1},msglogsLimit:{type:"number",required:!1},orderRule:{type:"enum",values:getEnumKeys(Nr),required:!1},p2pSessionList:{type:"array",itemType:"string",required:!1},teamSessionList:{type:"array",itemType:"string",required:!1},senderList:{type:"array",itemType:"string",required:!1},msgTypeList:{type:"array",itemType:"enum",values:getEnumKeys(Be),required:!1},msgSubTypeList:{type:"array",itemType:"number",required:!1}},e),e.fromTime&&e.toTime&&e.toTime<e.fromTime)throw new ValidateError("Request parameter error: toTime should be greater than fromTime",e,"");var r=function generateFtsTagForCmd(e){var t=format(xr,e);return Array.isArray(t.msgTypeList)&&(t.msgTypeList=t.msgTypeList.map((e=>Be[e])).join(",")),["p2pSessionList","teamSessionList","senderList","msgSubTypeList"].forEach((e=>{Array.isArray(t[e])&&(t[e]=t[e].join(","))})),t}(e);return(yield this.core.sendCmd(t,{tag:r})).content.datas.map((e=>{var t,r=getSessionId(e,this.core.account),i=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:r});return formatMsg$1(e,i?{account:this.core.account,sessionAck:i.ack,msgReceiptTime:i.msgReceiptTime}:{account:this.core.account})}))}))}syncClearServerHistoryMsgsHandler(e){var t=function formatClearResults(e){return Array.isArray(e)&&e.length>0?e.map((e=>formatClearResult(e))):[]}(e.content.datas);this.core.emit("clearServerHistoryMsgs",t)}},"msgLog"),NIM.registerService(class PassThroughService extends Service$1{constructor(e){super("passThrough",e),this.core=e,registerParser({cmdMap:qr,cmdConfig:jr})}request(e){return validate({path:{type:"string",allowEmpty:!1}},e),this.core.sendCmd("requestProxy",{requestProxyTag:e}).then((e=>{var{content:t}=e;return t.requestProxyTag}))}onRequestProxyHandler(e){var{proxyMsg:t}=e.content;t&&t.time&&(t.time=+t.time),this.core.emit("proxyMsg",t)}},"passThrough"),NIM.registerService(CloudStorageService,"cloudStorage"),NIM.registerService(class SuperTeamService extends Service$1{constructor(e){super("superTeam",e),this.mySuperTeamMembersMap=new Map,this.service=new ModuleService(e),registerParser({cmdMap:ui,cmdConfig:vi}),this.setListeners()}setListeners(){this.core.eventBus.on("forwardReceive/superTeam/updateMyMemberInfo",(e=>{this.emitMemberUpdate(e)})),this.core.eventBus.on("team/onNotification",(e=>this.notificationHandler(e)))}reset(){this.mySuperTeamMembersMap.clear()}mergeMySuperTeamMembers(e){e.forEach((e=>{var t=e.teamId,r=this.mySuperTeamMembersMap.get(t),i=Object.assign({},r,e);this.mySuperTeamMembersMap.set(t,i)}))}getSuperTeamInfo(e){return __awaiter(this,void 0,void 0,(function*(){return validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1}},e),formatSuperTeam((yield this.core.sendCmd("getSuperTeamInfo",{teamId:e.teamId})).content.superTeam)}))}getSuperTeams(){return __awaiter(this,void 0,void 0,(function*(){return formatSuperTeams((yield this.core.sendCmd("getSuperTeams",{timetag:0})).content.superTeams)}))}updateSuperTeamInfo(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},name:{type:"string",allowEmpty:!1,required:!1},joinMode:{type:"enum",values:["noVerify","needVerify","rejectAll"],required:!1},beInviteMode:{type:"enum",values:["noVerify","needVerify"],required:!1},inviteMode:{type:"enum",values:["manager","all"],required:!1},updateTeamMode:{type:"enum",values:["manager","all"],required:!1},updateExtMode:{type:"enum",values:["manager","all"],required:!1},intro:{type:"string",allowEmpty:!0,required:!1},announcement:{type:"string",allowEmpty:!0,required:!1},avatar:{type:"string",allowEmpty:!0,required:!1},ext:{type:"string",allowEmpty:!0,required:!1}},e);var t=function generateSuperTeam(e){var t=Object.assign({},e),r={joinMode:ii,beInviteMode:ai,inviteMode:oi,updateTeamMode:di,updateExtMode:mi};return["avatar","name","intro","announcement","ext"].forEach((e=>{void 0!==t[e]&&(t[e]=t[e].toString())})),Object.keys(r).forEach((e=>{void 0!==t[e]&&(t[e]=r[e][t[e]])})),t}(e);return yield this.core.sendCmd("updateSuperTeamInfo",{superTeam:t}),formatSuperTeam(t)}))}addSuperTeamMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",min:1},ps:{type:"string",allowEmpty:!0,max:5e3,required:!1}},e),yield this.core.sendCmd("addSuperTeamMembers",{teamId:e.teamId,accounts:e.accounts,ps:e.ps||"",attach:e.ext||""})}))}removeSuperTeamMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",min:1}},e),yield this.core.sendCmd("removeSuperTeamMembers",{teamId:e.teamId,accounts:e.accounts})}))}addSuperTeamManagers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",min:1,itemType:"string"}},e),yield this.core.sendCmd("addSuperTeamManagers",e)}))}removeSuperTeamManagers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",min:1,itemType:"string"}},e),yield this.core.sendCmd("removeSuperTeamManagers",e)}))}applySuperTeam(e){return __awaiter(this,void 0,void 0,(function*(){return validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},ps:{type:"string",allowEmpty:!0,max:5e3,required:!1}},e),formatSuperTeam((yield this.core.sendCmd("applySuperTeam",{teamId:e.teamId,ps:e.ps||""})).content.superTeam)}))}transferSuperTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},account:{type:"string",allowEmpty:!1},leave:{type:"boolean"}},e),yield this.core.sendCmd("transferSuperTeam",e)}))}muteSuperTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},mute:{type:"boolean"}},e),yield this.core.sendCmd("muteSuperTeam",{teamId:e.teamId,mute:e.mute?1:0})}))}muteSuperTeamMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string"},mute:{type:"boolean"}},e),yield this.core.sendCmd("muteSuperTeamMembers",{teamId:e.teamId,accounts:e.accounts,mute:e.mute?1:0})}))}updateMemberNick(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},account:{type:"string",allowEmpty:!1},nickInTeam:{type:"string",allowEmpty:!0}},e);var t=generatorSuperTeamMemberForCmd({teamId:e.teamId,nickInTeam:e.nickInTeam,account:e.account});return yield this.core.sendCmd("updateSuperTeamMemberNick",{teamMember:t}),formatSuperTeamMember(Object.assign({updateTime:(new Date).getTime()},t))}))}updateMyMemberInfo(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},nickInTeam:{type:"string",allowEmpty:!0,required:!1},bitConfigMask:{type:"number",min:0,max:2,required:!1},ext:{type:"string",required:!1}},e);var t=generatorSuperTeamMemberForCmd({teamId:e.teamId,nickInTeam:e.nickInTeam,bitConfigMask:e.bitConfigMask,ext:e.ext});yield this.core.sendCmd("updateMySuperTeamMemberInfo",{teamMember:t});var r=formatSuperTeamMember(Object.assign({updateTime:(new Date).getTime(),account:this.core.account},t)),i=this.emitMemberUpdate(r);return this.core.eventBus.emit("forwardSend/superTeam/updateMyMemberInfo",i),r}))}getSuperTeamMembersByAccounts(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},accounts:{type:"array",itemType:"string",max:20,min:1}},e);var r=e.accounts.map((t=>`${e.teamId}|${t}`)),i=yield this.core.sendCmd("getSuperTeamMembersByAccounts",{memberIds:r});return formatSuperTeamMembers(null===(t=i.content)||void 0===t?void 0:t.superTeamMembers)}))}getSuperTeamMembers(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},joinTime:{type:"number",min:0,required:!1},limit:{type:"number",min:1,max:1e3,required:!1},reverse:{type:"boolean",required:!1}},e);var r=yield this.core.sendCmd("getSuperTeamMembers",Object.assign({joinTime:0,limit:100,reverse:!1},e));return formatSuperTeamMembers(null===(t=r.content)||void 0===t?void 0:t.superTeamMembers)}))}queryMuteMembers(e){return __awaiter(this,void 0,void 0,(function*(){return validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},joinTime:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1},reverse:{type:"boolean",required:!1}},e),formatSuperTeamMembers((yield this.core.sendCmd("queryMuteSuperTeamMembers",Object.assign({limit:100,joinTime:0,reverse:!1},e))).content.superTeamMembers)}))}leaveSuperTeam(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1}},e),yield this.core.sendCmd("leaveSuperTeam",{teamId:e.teamId})}))}passSuperTeamApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1}},e);try{yield this.core.sendCmd("passSuperTeamApply",e),this.core.eventBus.emit("forwardSend/superTeam/passTeamApply",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/superTeam/passTeamApply",e,null==t?void 0:t.code),r}}))}rejectSuperTeamApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1},ps:{type:"string",max:5e3,required:!1}},e);try{yield this.core.sendCmd("rejectSuperTeamApply",{teamId:e.teamId,from:e.from,ps:e.ps||""}),this.core.eventBus.emit("forwardSend/superTeam/rejectSuperTeamApply",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/superTeam/rejectSuperTeamApply",e,null==t?void 0:t.code),r}}))}acceptSuperTeamInvite(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1}},e);try{yield this.core.sendCmd("acceptSuperTeamInvite",e),this.core.eventBus.emit("forwardSend/superTeam/acceptSuperTeamInvite",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/superTeam/acceptSuperTeamInvite",e,null==t?void 0:t.code),r}}))}rejectSuperTeamInvite(e){return __awaiter(this,void 0,void 0,(function*(){validate({teamId:{type:"string",regExp:/\d+/,allowEmpty:!1},from:{type:"string",allowEmpty:!1},ps:{type:"string",max:5e3,required:!1}},e);try{yield this.core.sendCmd("rejectSuperTeamInvite",{teamId:e.teamId,from:e.from,ps:e.ps||""}),this.core.eventBus.emit("forwardSend/superTeam/rejectSuperTeamInvite",e)}catch(r){var t=r;throw this.core.eventBus.emit("forwardSend/superTeam/rejectSuperTeamInvite",e,null==t?void 0:t.code),r}}))}emitMemberUpdate(e){e=formatSuperTeamMember(e),this.mergeMyTeamMembers([e]),this.core.emit("updateTeamMember",e);var t=cloneDeep(this.mySuperTeamMembersMap.get(e.teamId));return this.core.emit("myTeamMembers",[t]),t}mergeMyTeamMembers(e){e.forEach((e=>{var t=e.teamId,r=this.mySuperTeamMembersMap.get(t),i=Object.assign({},r,e);this.mySuperTeamMembersMap.set(t,i)}))}syncSuperTeamsHandler(e){var t=e.content;this.core.eventBus.emit("sync/updateTimetag",{superTeams:parseInt(t.timetag)});var r=null==t?void 0:t.teams;if(r&&r.length){var i=formatSuperTeams(r);this.core.emit("superTeams",i)}}syncCreateSuperTeamHandler(e){var t=e.content,r=formatSuperTeam(null==t?void 0:t.superTeam),i=generatorMemberBySuperTeam(r,r.owner,"owner");this.core.emit("createSuperTeam",r,i)}syncUpdateSuperTeamMemberHandler(e){var t=e.content,r=formatSuperTeamMember(null==t?void 0:t.teamMember);r.updateTime||(r.updateTime=(new Date).getTime()),this.mergeMySuperTeamMembers([r]),this.core.emit("updateSuperTeamMember",r);var i=cloneDeep(this.mySuperTeamMembersMap.get(r.teamId));this.core.emit("mySuperTeamMembers",[i])}syncMySuperTeamMembersHandler(e){var t=e.content;this.core.eventBus.emit("sync/updateTimetag",{mySuperTeamMembers:parseInt(t.timetag)});var r=null==t?void 0:t.teamMembers.map((e=>formatSuperTeamMember(e)));this.mergeMySuperTeamMembers(r),this.core.emit("mySuperTeamMembers",cloneDeep(r))}notificationHandler(e){var{attach:t,scene:r,from:i,to:s,time:a,idServer:n,idClient:o}=e,{team:c,account:d,accounts:l,type:m}=t;if("superTeam"===r)switch(this.logger.getDebugMode()?this.logger.debug("superTeam::recvNotification",n,o,t):this.logger.log("superTeam::recvNotification",n,o,s,m,d,l),m){case"updateSuperTeam":c.updateTime=a,this.core.emit("updateSuperTeam",c);break;case"addSuperTeamMembers":this.service.notifyAddSuperTeamMembers(c,l);break;case"acceptSuperTeamInvite":this.service.notifyAddSuperTeamMembers(c,[i]);break;case"passSuperTeamApply":this.service.notifyAddSuperTeamMembers(c,[d]);break;case"addSuperTeamManagers":this.service.notifyUpdateSuperTeamManagers(s,l,!0,a);break;case"removeSuperTeamManagers":this.service.notifyUpdateSuperTeamManagers(s,l,!1,a);break;case"removeSuperTeamMembers":this.service.notifyRemoveSuperTeamMembers(c,l);break;case"leaveSuperTeam":this.service.notifyRemoveSuperTeamMembers(c,[i]);break;case"dismissSuperTeam":this.core.emit("dismissSuperTeam",{teamId:s});break;case"transferSuperTeam":this.service.notifyTransferSuperTeam(c,i,d);break;case"updateSuperTeamMembersMute":this.service.notifyUpdateSuperTeamMembersMute(c,l,t.mute)}}},"superTeam"),NIM.registerService(class SyncService extends Service$1{constructor(e,t={}){super("sync",e),this.syncDoneFlag=!1,this.config={myInfo:!!e.user.name,offlineMsgs:!!e.msg.name,teams:!!e.team.name,myTeamMembers:!!e.team.name,roamingMsgs:!!e.msg.name,relations:!!e.user.name,friends:!!e.friend.name,friendUsers:!!e.user.name,msgReceipts:!!e.msg.name,broadcastMsgs:!!e.msg.name,recallMsg:!!e.msg.name,sessionAck:!!e.session.name,superTeamSessionAck:!!e.session.name,superTeams:!!e.superTeam.name,mySuperTeamMembers:!!e.superTeam.name,superTeamRoamingMsgs:!!e.superTeam.name,deleteSuperTeamMsg:!!e.superTeam.name,deleteSelfMsgs:!!e.msg.name,sessionHistoryMsgsDelete:!!e.msgLog.name,avSignal:!!e.signaling.name},this.setOptions(t),this.timetags={},this.initEventListeners(),registerParser({cmdMap:or,cmdConfig:cr})}setOptions(e){Object.assign(this.config,e)}reset(){this.timetags={},this.syncDoneFlag=!1}getSyncDoneFlag(){return this.syncDoneFlag}doSync(){var e;return __awaiter(this,void 0,void 0,(function*(){var t=this.genSyncParams();this.logger.log("sync::doSyncV1: ",t);try{var r=yield this.core.clientSocket.sendCmd("sync",{sync:t});this.core.logger.log("sync::doSyncV1 done in",null===(e=r.content)||void 0===e?void 0:e.timetag),this.syncDoneFlag=!0,this.core.emit("syncdone")}catch(e){return this.core.logger.error("sync::doSyncV1 error",e),this.syncDoneFlag=!0,void this.core.emit("syncdone")}}))}initEventListeners(){this.core.eventBus.on("logined",(()=>{this.syncDoneFlag=!1,this.doSync()})),this.core.eventBus.on("sync/updateTimetag",(e=>{Object.keys(e).forEach((t=>{e[t]>(this.timetags[t]||0)&&(this.timetags[t]=e[t])}))}))}genSyncParams(){return Object.keys(this.config).filter((e=>{var t=e;return this.config[t]})).reduce(((e,t)=>{var r=t;return e[r]=this.timetags[r]||0,e}),{})}handleImmediate(e){return this.core.session&&this.core.session.onSyncDone&&this.core.session.onSyncDone(),Promise.resolve(e)}delaySyncDone(e){var{hostEnvEnum:t}=ve.getSystemInfo();return 102===t?(this.core.logger.log("sync: emit ALIAPP sycnHandler, handle later"),new Promise((t=>{setTimeout((()=>{this.handleImmediate(e).then((()=>{t(e)}))}),100)}))):this.handleImmediate(e)}syncHandler(e){return this.delaySyncDone(e)}},"sync"),NIM.registerService(class PluginService extends Service$1{constructor(e){super("plugin",e),this.core=e,registerParser({cmdMap:yi,cmdConfig:fi})}getChatroomAddress(e){return __awaiter(this,void 0,void 0,(function*(){return validate({chatroomId:{type:"string",allowEmpty:!1},ipType:{type:"number",required:!1}},e),(yield this.core.sendCmd("getChatroomAddress",{chatroomId:e.chatroomId,isWeixinApp:"WXAPP"===ve.platform,ipType:e.ipType||0})).content.address}))}getQChatAddress(e){return __awaiter(this,void 0,void 0,(function*(){return validate({ipType:{type:"number",required:!1}},e),(yield this.core.sendCmd("getQChatAddress",{getQChatAddressTag:{ipType:(null==e?void 0:e.ipType)||0}})).content.address}))}},"plugin"),NIM.registerService(class OfflinePushService extends Service$1{constructor(e){super("offlinePush",e),this.plugin=void 0,this.authConfig=void 0,this.appBackgroundOptions={badge:0,isBackground:!1},this.setTokenAndBackgroundStateAfterLogin=e=>{this.plugin&&(this.regToken(e&&e.aosPushInfo),this.core.sendCmd("updateAppBackground",{isBackground:this.appBackgroundOptions.isBackground,badge:this.appBackgroundOptions.badge||0}))},registerParser({cmdMap:Ui,cmdConfig:Di}),this.core.eventBus.on("logined",this.setTokenAndBackgroundStateAfterLogin)}setOfflinePushConfig(e){e.plugin?(validate({plugin:{type:"object",required:!0},authConfig:{type:"object",required:!0}},e),this.plugin=e.plugin,this.authConfig=e.authConfig):this.logger.warn("setOfflinePushConfig: invoke setOfflinePushConfig without plugin. If you are not running iOS or android app, please ignore this notice.")}regToken(e){var t=ve.getSystemInfo()||{},r=t.os?t.os.toLowerCase():"";if(this.logger.log("OfflinePushService: os",r),"ios"===r||"android"===r)if(this.plugin&&"function"==typeof this.plugin.getDeviceToken){var i="";e&&e.pushType?i=e.pushType:"ios"===r?i="":"android"===r&&(i="8"),this.logger.log("OfflinePushService:: prepare to get device token. suggestPushType: "+i),this.logger.log("OfflinePushService push config",JSON.stringify(this.authConfig,null,2)),this.plugin.getDeviceToken({suggestPushType:i,config:this.authConfig},(e=>{e?(this.logger.log("OfflinePushService:: token is :"+e),this.pushTokenToServer(i,e)):this.logger.warn("OfflinePushService:: token is empty. Please check your parameters")}))}else this.logger.warn("OfflinePushService: plugin.getDeviceToken is not a function");else this.logger.warn("OfflinePushService: only Android or IOS support offline push")}pushTokenToServer(e,t){var r="",i=this.authConfig;switch(e){case"5":r=i.xmCertificateName;break;case"6":r=i.hwCertificateName;break;case"7":r=i.mzCertificateName;break;case"8":r=i.fcmCertificateName;break;case"9":r=i.vivoCertificateName;break;case"10":r=i.oppoCertificateName;break;case"11":r=i.honorCertificateName;break;default:r=i.apnsCertificateName}""===r||void 0===r?this.logger.warn("OfflinePushService:: certificate name is empty for push type: ",e):this.updatePushToken({tokenName:r,token:t,pushkit:0})}updatePushToken(e){return __awaiter(this,void 0,void 0,(function*(){var t;validate({tokenName:{type:"string",allowEmpty:!1,required:!0},token:{type:"string",allowEmpty:!1,required:!0},pushkit:{type:"number",required:!1}},e);try{var r=Mi.parse("557d1e3cafa43e2589a588270c53d56f");t=Mi.stringify(Li.decrypt(e.token,r)),this.logger.log("updatePushToken:: token",t)}catch(t){return this.logger.log("updatePushToken:: decrypt error",t),void this.logger.warn("updatePushToken:: token before decrypt",e.token)}yield this.core.sendCmd("updatePushToken",Object.assign(Object.assign({},e),{token:t}))}))}updateAppBackground(e){return __awaiter(this,void 0,void 0,(function*(){validate({isBackground:{type:"boolean",required:!0},badge:{type:"number",required:!1}},e),this.appBackgroundOptions={isBackground:e.isBackground,badge:e.badge||0},yield this.core.sendCmd("updateAppBackground",{isBackground:e.isBackground,badge:e.badge||0})}))}},"offlinePush"),NIM.registerService(class CloudSessionService extends Service$1{constructor(e){super("cloudSession",e),registerParser({cmdMap:xi,cmdConfig:Fi})}queryCloudSessionList(e){var t;return __awaiter(this,void 0,void 0,(function*(){validate({minTimestamp:{type:"number",min:0,required:!1},maxTimestamp:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1},includedLastMsg:{type:"boolean",required:!1}},e);var r=Object.assign({limit:100,includedLastMsg:!0},e);r.includedLastMsg=Qe.boolean(e,"includedLastMsg");var i=yield this.core.sendCmd("nimQueryCloudSessionList",{tag:r}),s=(null===(t=i.content)||void 0===t?void 0:t.tag)||{},a=i.content.sessions;return{hasMore:+s.hasMore>0,sessionList:formatCloudSessions(a,this.core.account,this.logger)}}))}queryCloudSession(e){return __awaiter(this,void 0,void 0,(function*(){validate({sessionId:{type:"string",allowEmpty:!1}},e);var{accid:t,scene:r}=getAccountFromSessionId(e.sessionId,"-");return formatCloudSession((yield this.core.sendCmd("nimQueryCloudSession",{tag:{sessionId:"superTeam"===r?`super_team|${t}`:`${r}|${t}`}})).content.session,this.core.account,this.logger)}))}updateCloudSession(e){return __awaiter(this,void 0,void 0,(function*(){validate({sessionId:{type:"string",allowEmpty:!1},ext:{type:"string",allowEmpty:!1,required:!1}},e);var{accid:t,scene:r}=getAccountFromSessionId(e.sessionId,"-");yield this.core.sendCmd("nimUpdateCloudSession",{tag:{sessionId:"superTeam"===r?`super_team|${t}`:`${r}|${t}`,ext:e.ext}})}))}deleteCloudSessionList(e){return __awaiter(this,void 0,void 0,(function*(){validate({sessionIdList:{type:"array",itemType:"string"}},e);var t=e.sessionIdList.map((e=>{var{accid:t,scene:r}=getAccountFromSessionId(e,"-");return{sessionId:"superTeam"===r?`super_team|${t}`:`${r}|${t}`}}));yield this.core.sendCmd("nimDeleteCloudSessionList",{tags:t})}))}nimMultiSyncUpdateCloudSessionHandler(e){var t=formatCloudSession(e.content.session,this.core.account,this.logger);this.core.emit("multiSyncUpdateCloudSession",t)}},"cloudSession"),NIM.registerService(SignalingService,"signaling"),NIM.registerService(class V2NIMLoginServiceImpl extends V2Service{constructor(e,t={}){var r;super("V2NIMLoginService",e),this.account="",this.previousLoginAccount="",this.token="",this.deviceId="",this.clientSession="",this.processId="",this.kickedDetail=null,this.binaryWebsocket=!0,this.core._registerDep(MiscService,"misc"),registerParser({cmdMap:lt,cmdConfig:ut}),"v2"===e.options.apiVersion&&(registerParser({cmdMap:mt,cmdConfig:ht}),this.core.auth=this),this.previousLoginManager=new PromiseManager,this.doLoginStepsManager=new PromiseManager,this.loginTimerManager=new TimerManager,this.loginOption=Object.assign({},St),this.config={lbsUrls:Te,linkUrl:Se,linkSSL:!0},this.setOptions(t),e.V2NIMLoginService=this,!1!==this.core.options.binaryWebsocket&&"function"==typeof Uint8Array?(this.binaryWebsocket=!0,r=new V2BinaryClientSocket(this.core)):(this.binaryWebsocket=!1,r=new V2ClientSocket(this.core)),this.clientSocket=r,"v2"===this.core.options.apiVersion&&(this.core.clientSocket=r),this.lifeCycle=new V2NIMLoginLifeCycle(e),this.reconnect=new V2NIMLoginReconnect(e),this.lbs=new V2NIMLoginLbs(e),this.authenticator=new V2NIMLoginAuthenticator(e),this.dataSync=new V2NIMLoginDataSync(e)}get hasSettingService(){var e;return!!(null===(e=this.core.V2NIMSettingService)||void 0===e?void 0:e.name)}setOptions(e){var t,r,i;validate({lbsUrls:{type:"array",itemType:"string",min:1,required:!1},linkUrl:{type:"string",allowEmpty:!1,required:!1}},e,"",!0),this.config=assignOptions(this.config,e),null===(r=null===(t=this.core.clientSocket)||void 0===t?void 0:t.setLinkSSL)||void 0===r||r.call(t,null===(i=this.config.linkSSL)||void 0===i||i);var s="",a="";this.config.isFixedDeviceId?(s=ve.localStorage.getItem("__NIM_DEVC_ID__")||Me(),a=ve.localStorage.getItem("__NIM_CLIENT_SESSION_ID__")||Me(),ve.localStorage.setItem("__NIM_DEVC_ID__",s),ve.localStorage.setItem("__NIM_CLIENT_SESSION_ID__",a)):(s=Me(),a=Me()),this.deviceId=s,this.clientSession=a,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,r={}){return __awaiter(this,void 0,void 0,(function*(){this._checkApiVersion();var i=ve.getSystemInfo()||{},s=i.os?i.os.toLowerCase():"";if("React Native"===ve.platform&&"android"===s&&this.hasSettingService&&get(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 ValidateErrorV2({detail:{reason:"Account must be string"}});if(validate(Mt,r,"",!0),0===(r=assignOptions(St,r)).authType&&!t)throw new ValidateErrorV2({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}`,r);else{if(1===this.getLoginStatus())return this.smoothForLogined(e,t,r);if(2===this.getLoginStatus())return this.smoothForLogining(e,t,r)}this.account=e,this.previousLoginAccount=e,this.token=t,this.processId=Me(),this.loginOption=assignOptions(St,r),this.kickedDetail=null,this.loginTimerManager.destroy(),this.loginTimerManager.addTimer((()=>{var e=new V2NIMErrorImpl({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 __awaiter(this,void 0,void 0,(function*(){return validate({roomId:{type:"string",regExp:/^\d+$/,required:!0,allowEmpty:!1},miniProgram:{type:"boolean",required:!1}},{roomId:e,miniProgram:t},"",!0),t=void 0===t?pendingIsMiniappEnv():t,(yield this.clientSocket.sendCmd("v2GetChatroomLinkAddress",{roomId:e,miniProgram:t})).content.linkAddress}))}multiTryDoLogin(e){return __awaiter(this,void 0,void 0,(function*(){for(var t=new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"loginFailed"}}),r=0;r<=this.loginOption.retryCount;r++){var i=`V2NIMLoginService::times of login try: ${r}`;r>0?this.logger.warn(i):this.logger.log(i);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: ${r}, 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,r;return __awaiter(this,void 0,void 0,(function*(){var i=!!e||this.authenticator.checkAutoLogin(this.loginOption.forceMode);this.core.reporter.reportTraceCancel("login"),this.core.reporter.reportTraceStart("login",i?{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:ve.net.getNetworkStatus()});var s=yield this.doLoginStepsManager.add(this.lbs.getLbsInfos());yield this.doLoginStepsManager.add(this.clientSocket.connect(s,e));var a=yield this.doLoginStepsManager.add(this.authenticator.verifyAuthentication(i));if(this.processId=Me(),this.clientSocket.resetSocketConfig(),this.reconnect.reset(),this.dataSync.reset(),this.lifeCycle.processEvent("loginSucc",void 0,Object.assign(Object.assign({},a),{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===(r=this.core.cloudStorage)||void 0===r?void 0:r.init))try{yield this.core.cloudStorage.init(a.timestamp)}catch(e){this.logger.warn("doLogin::cloudStorage init error",e)}return a}))}smoothForLogined(e,t,r){return __awaiter(this,void 0,void 0,(function*(){var i=this.checkIsSameLogin(e,t,r);return this.logger.warn(`V2NIMLoginService::smoothForLogined:Logined, isSameLogin ${i}`),i?void 0:(yield this.logout(),this.login(e,t,r))}))}smoothForLogining(e,t,r){return __awaiter(this,void 0,void 0,(function*(){var i=this.checkIsSameLogin(e,t,r);if(this.logger.warn(`V2NIMLoginService::smoothForLogining:Logining progress exists, abort the previous login attempt and start next attempt, isSameLogin ${i}`),this.previousLoginManager.clear(),this.reconnect.reset(),this.account=e,this.previousLoginAccount=e,this.token=t,this.loginOption=assignOptions(this.loginOption,r),!i)return this.doLoginStepsManager.clear(),this.clientSocket.doDisconnect(yt.ACTIVE,"Aborted"),this.reset(),this.lifeCycle.processEvent("logout"),yield Promise.resolve(),this.login(e,t,r);if(!this.originLoginPromise)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INTERNAL,detail:{reason:"NoPreviousLoginExists"}});this.reconnect.reset(),yield Promise.resolve(),yield this.multiTryDoLogin(this.originLoginPromise)}))}checkIsSameLogin(e,t,r){return this.account===e&&this.loginOption.authType===r.authType&&(0!==r.authType||this.token===t)}logout(){return __awaiter(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(yt.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),this.lifeCycle.processEvent("logout")}catch(e){this.logger.error("Instance::disconnect sendCmd:logout error",e),this.clientSocket.doDisconnect(yt.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),this.lifeCycle.processEvent("logout")}break;case 2:case 3:this.clientSocket.doDisconnect(yt.ACTIVE,"UserActiveDisconnect"),this.core._clearModuleData(),this.lifeCycle.processEvent("logout");break;case 0:throw this.core._clearModuleData(),new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE,detail:{reason:`Illegal logout. loginStatus ${t}. connectStatus ${e}`}});default:throw this.core._clearModuleData(),new V2NIMErrorImpl({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 uniqBy(e,t){e=e||[],t=t||"";for(var r=[],i=[],s=0;s<e.length;s++){var a=e[s][t];-1===i.indexOf(a)&&(i.push(a),r.push(e[s]))}return r}(this.authenticator.loginClients,"clientId").map((e=>pick(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 pick(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 __awaiter(this,void 0,void 0,(function*(){if(this._checkApiVersion(),validate({clientId:{type:"string",allowEmpty:!1}},e,"",!0),0===get(yield this.clientSocket.sendCmd("v2KickOffline",{clientIds:[e.clientId]}),"content.clientIds.length"))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_REQUEST_FAILED})}))}getKickedOfflineDetail(){return this.kickedDetail}checkLoginTerminalCode(e){return this.authenticator.checkLoginTerminalCode(e)}checkIllegalState(){if(!this.getLoginUser())throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_ILLEGAL_STATE})}_checkApiVersion(){if("v2"!==this.core.options.apiVersion)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:'apiVersion is not "v2"'}})}v2LoginHandler(e){if(e.error)throw this.clientSocket.doDisconnect(yt.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 formatBeKickedTag(e){return format({reason:{type:"number"},clientType:{type:"number"},customClientType:{type:"number"}},e)}(e.content);this.core.logger.warn("v2Bekicked::",t),this.kickedDetail=t,this.clientSocket.doDisconnect(yt.KICKED,t),this.core._clearModuleData(),this.lifeCycle.processEvent("kicked",new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_DISCONNECT,detail:{reason:"disconnect due to kicked"}}),t),this.emit("onKickedOffline",t)}}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;if("onLoginFailed"===e||"onDisconnected"===e||"onConnectFailed"===e){var i=t[0];this.logger.log(`${r}`,i.toString())}else if("onDataSync"===e){var s=t[2];this.logger.log(`${r}`,t[0],t[1],s&&s.toString())}else this.logger.log(`${r}`,...t);return super.emit(e,...t)}},"V2NIMLoginService"),NIM.registerService(class V2NIMLocalConversationServiceImpl extends V2Service{constructor(e,t={}){super("V2NIMLocalConversationService",e),this.config={},this.model=new V2NIMLocalConversationModelImpl,this.unread=new V2NIMLocalConversationUnreadImpl(this.core,this),this.compute=new V2NIMLocalConversationComputeImpl(this.core,this),this.event=new V2NIMLocalConversationEventImpl(this.core,this),this.handler=new V2NIMLocalConversationHandlerImpl(this.core,this),this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),this.core._registerDep(V2NIMMessageServiceImpl,"V2NIMMessageService"),"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:En,cmdConfig:wn}),this.setOptions(t),this.setListener())}setOptions(e){this.config=Object.assign(this.config,e)}setListener(){this.event.setListener()}reset(){this.model.reset(),this.unread.reset()}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}getConversationList(e,t){this.checkV2(),validate({offset:{type:"number",min:0}},{offset:e},"",!0),validate({limit:{type:"number",min:1}},{limit:t},"",!0),this.core.V2NIMLoginService.checkIllegalState();var r=this.model.getByOption(e,t,{});return r.conversationList=r.conversationList.map((e=>this.compute.computeFromExternal(e))),Promise.resolve(r)}getConversationListByOption(e,t,r){this.checkV2(),validate({offset:{type:"number",min:0}},{offset:e},"",!0),validate({limit:{type:"number",min:1}},{limit:t},"",!0),validate({conversationTypes:{type:"array",itemType:"number",required:!1},onlyUnread:{type:"boolean",required:!1}},r,"option",!0),this.core.V2NIMLoginService.checkIllegalState();var i=this.model.getByOption(e,t,r);return i.conversationList=i.conversationList.map((e=>this.compute.computeFromExternal(e))),Promise.resolve(i)}getConversation(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e);var t=this.model.getById(e);if(t)return this.compute.computeFromExternal(t);throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST})}))}getConversationListByIds(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate({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 t=t.map((e=>this.compute.computeFromExternal(e)))}))}createConversation(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e);var t=this.model.getById(e);if(t)return this.compute.computeFromExternal(t);var r=this.compute.computeConvByMsgsCache(e,{updateTime:this.core.timeOrigin.getNTPTime()});r=this.compute.computeConvWithUnread(r),r=this.compute.computeFromExternal(r),this.model.upsert(r);var i=this.model.getById(e);return this.triggerConversationCreated(i),i}))}deleteConversation(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e),validate({clearMessage:{type:"boolean",required:!1}},{clearMessage:t},"",!0),yield this.unread.markConversationRead(e);var r=this.model.deleteById(e);if(!r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST});t&&this.core.V2NIMMessageService.model.deleteMessages(e),!!(r&&r.unreadCount>0)&&this.unread.digestUnreadCountChange(),this.emit("onConversationDeleted",[e])}))}deleteConversationListByIds(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0),validate({clearMessage:{type:"boolean",required:!1}},{clearMessage:t},"",!0),yield this.unread.markMultiConversationRead(e);var r=!1;return e.forEach((e=>{t&&this.core.V2NIMMessageService.model.deleteMessages(e),this.model.deleteById(e)&&(r=!0)})),r&&this.unread.digestUnreadCountChange(),this.emit("onConversationDeleted",e),[]}))}getStickTopConversationList(){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.model.getStickTopList()}))}stickTopConversation(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e),validate({stickTop:{type:"boolean"}},{stickTop:t},"",!0);var r=this.model.getById(e);if((null==r?void 0:r.stickTop)!==t){var i=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e),s=this.core.V2NIMConversationIdUtil.parseConversationType(e),a=yield this.core.sendCmd(t?"v2LocalConvStickTopAdd":"v2LocalConvStickTopDelete",{tag:{id:getSessionIdFromConvInfo(s,i)}});this.model.updateStickTop(e,t);var n=a.content.timetag||a.content.data.updateTime;this.model.upsert({conversationId:e,type:s,stickTop:t,updateTime:n,sortOrder:this.compute.computeSortOrder(t,n)});var o=[this.model.getById(e)];this.triggerConversationChanged(o)}}))}updateConversationLocalExtension(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e),validate({localExtension:{type:"string"}},{localExtension:t},"",!0);var r=this.model.getById(e);if(!r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST});if(r.localExtension!==t){var i=Object.assign(Object.assign({},r),{localExtension:t});this.model.upsert(i),this.triggerConversationChanged([i])}}))}getTotalUnreadCount(){return this.checkV2(),this.unread.getTotalUnreadCount()||0}getUnreadCountByIds(e){this.checkV2(),validate({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0);var t=this.unread.getUnreadCountByIds(e);return Promise.resolve(t)}getUnreadCountByFilter(e){this.checkV2(),this.valiteFilter(e);var t=this.unread.getUnreadCountByFilter(e);return Promise.resolve(t)}clearTotalUnreadCount(){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.checkLogin();var e=this.model.getAll();yield this.unread.markMultiConversationRead(e.map((e=>e.conversationId))),this.unread.clearUnreadCount(e)}))}clearUnreadCountByIds(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.checkLogin(),validate({conversationIds:{type:"array",itemType:"string",min:1}},{conversationIds:e},"",!0);var t=[],r=[],i=new RegExp(`^${this.core.account}\\|[1-3]\\|`);if(e.forEach((e=>{i.test(e)?t.push(e):r.push(e)})),t.length>0){var s=t.map((e=>this.model.getById(e))).filter((e=>!!e));yield this.unread.markMultiConversationRead(t),this.unread.clearUnreadCount(s)}return r.map((e=>({conversationId:e,error:new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_RESOURCE_NOT_EXIST})})))}))}clearUnreadCountByTypes(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.checkLogin(),validate({types:Pn},{types:e},"",!0);var t=this.model.getByOption(0,1e3,{conversationTypes:e});yield this.unread.markMultiConversationRead(t.conversationList.map((e=>e.conversationId))),this.unread.clearUnreadCount(t.conversationList)}))}subscribeUnreadCountByFilter(e){var t;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.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)}getConversationReadTime(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validateConversationId(this.core.account,e),this.model.getReadTime(e)}))}markConversationRead(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.checkLogin(),validateConversationId(this.core.account,e),this.unread.markConversationRead(e)}))}setCurrentConversation(e){this.checkV2(),e&&validateConversationId(this.core.account,e),this.unread.setCurrentConversation(e)}valiteFilter(e){if(validate({filter:{type:"object",required:!0,rules:{conversationTypes:{type:"array",itemType:"number",required:!1},ignoreMuted:{type:"boolean",required:!1}}}},{filter:e},"",!0),void 0===e.conversationTypes&&!0!==e.ignoreMuted)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Filter cannot be empty"}})}triggerConversationChanged(e){e=e.map((e=>this.compute.computeFromExternal(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.computeFromExternal(e),delete(e=JSON.parse(JSON.stringify(e))).lastMessageState,this.emit("onConversationCreated",e)}},"V2NIMLocalConversationService"),NIM.registerService(V2NIMConversationServiceImpl,"V2NIMConversationService"),NIM.registerService(class V2NIMConversationGroupServiceImpl extends V2Service{constructor(e,t={}){super("V2NIMConversationGroupService",e),this.config={},this.core._registerDep(V2NIMConversationServiceImpl,"V2NIMConversationService"),"v2"===this.core.options.apiVersion&&!0===this.core.options.enableV2CloudConversation&&(registerParser({cmdMap:jn,cmdConfig:Hn}),this.setOptions(t))}setOptions(e){this.config=Object.assign(this.config,e)}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;if("onConversationsAddedToGroup"===e){var i=t[0],s=t[1];this.logger.log(`${r}`,`groupId:${i}`,`conversations:${s.map((e=>e.conversationId)).join(",")}`)}else this.logger.log(`${r}`,...t);return super.emit(e,...t)}get ifEnabled(){return!0===this.core.options.enableV2CloudConversation}checkEnable(){if(!0!==this.core.options.enableV2CloudConversation)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"V2CloudConversation is not enabled"}})}createConversationGroup(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({name:{type:"string",allowEmpty:!1}},{name:e},"",!0),validate({serverExtension:{type:"string",required:!1}},{serverExtension:t},"",!0),validate({conversationIds:{type:"array",itemType:"string",required:!1}},{conversationIds:r},"",!0);var i=yield this.core.sendCmd("v2ConversationGroupCreate",{tag:{name:e,serverExtension:t||"",conversationIds:r&&JSON.stringify(r)}}),s=formatConversationGroup(get(i,"content.data")),a=formatConversationFields(this.core,get(i,"content.conversations")),n=formatFailedMap(get(i,"content.info.failedMap"));return this.emit("onConversationGroupCreated",s),a.length>0&&(this.core.V2NIMConversationService.versionCache.compareAndUpdateModel(a),this.emit("onConversationsAddedToGroup",s.groupId,a.map((e=>this.core.V2NIMConversationService.model.getById(e.conversationId))).filter((e=>!!e)))),{group:s,failedList:n}}))}deleteConversationGroup(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({groupId:{type:"string",allowEmpty:!1}},{groupId:e},"",!0);var t=formatConversationGroupNotify(get(yield this.core.sendCmd("v2ConversationGroupDelete",{tag:{groupId:e}}),"content.info"));this.core.V2NIMConversationService.versionCache.compareAndDeleteGroupInModel(t.deleteVersion,e),this.emit("onConversationGroupDeleted",e)}))}updateConversationGroup(e,t,r){return __awaiter(this,void 0,void 0,(function*(){if(this.checkEnable(),this.checkV2(),validate({groupId:{type:"string",allowEmpty:!1}},{groupId:e},"",!0),validate({name:{type:"string",required:!1}},{name:t},"",!0),validate({serverExtension:{type:"string",required:!1}},{serverExtension:r},"",!0),void 0===t&&void 0===r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER});var i=formatConversationGroup(get(yield this.core.sendCmd("v2ConversationGroupUpdate",{tag:{groupId:e,name:t,serverExtension:r}}),"content.data"));this.emit("onConversationGroupChanged",i)}))}addConversationsToGroup(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({groupId:{type:"string",allowEmpty:!1}},{groupId:e},"",!0),validate({conversationIds:{type:"array",itemType:"string",min:1,allowEmpty:!1}},{conversationIds:t},"",!0);var r=yield this.core.sendCmd("v2ConversationGroupAddTo",{tag:{groupId:e,conversationIds:JSON.stringify(t)}}),i=get(r,"content.info.failedMap")||"",s=[];i&&(s=formatFailedMap(i));var a=formatConversationFields(this.core,get(r,"content.datas"));this.core.V2NIMConversationService.versionCache.compareAndUpdateModel(a);var n=a.map((e=>this.core.V2NIMConversationService.model.getById(e.conversationId))).filter((e=>!!e));return n.length>0&&this.emit("onConversationsAddedToGroup",e,n),s}))}removeConversationsFromGroup(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({groupId:{type:"string",allowEmpty:!1}},{groupId:e},"",!0),validate({conversationIds:{type:"array",itemType:"string",min:1,allowEmpty:!1}},{conversationIds:t},"",!0);var r=yield this.core.sendCmd("v2ConversationGroupRemoveFrom",{tag:{groupId:e,conversationIds:JSON.stringify(t)}}),i=get(r,"content.info.failedMap")||"",s=[];i&&(s=formatFailedMap(i));var a=formatConversationFields(this.core,get(r,"content.datas"));return this.core.V2NIMConversationService.versionCache.compareAndUpdateModel(a),this.emit("onConversationsRemovedFromGroup",e,a.map((e=>e.conversationId))),s}))}getConversationGroup(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkEnable(),this.checkV2(),validate({groupId:{type:"string",allowEmpty:!1}},{groupId:e},"",!0),formatConversationGroup(get(yield this.core.sendCmd("v2ConversationGroupGet",{tag:{groupId:e}}),"content.data"))}))}getConversationGroupList(){return __awaiter(this,void 0,void 0,(function*(){return this.checkEnable(),this.checkV2(),formatConversationGroups(get(yield this.core.sendCmd("v2ConversationGroupListGet"),"content.datas"))}))}getConversationGroupListByIds(e){return __awaiter(this,void 0,void 0,(function*(){this.checkEnable(),this.checkV2(),validate({groupIds:{type:"array",itemType:"string",min:1}},{groupIds:e},"",!0);var t=formatConversationGroups(get(yield this.core.sendCmd("v2ConversationGroupsGet",{tag:{groupIds:e&&JSON.stringify(e)}}),"content.datas"));return e.map((e=>t.filter((t=>t.groupId===e))[0])).filter((e=>!!e))}))}v2ConversationGroupNotifySyncOnlineHandler(e){if(this.ifEnabled){var t=formatConversationGroupNotify(get(e,"content.info")),{type:r,deleteVersion:i,conversationIds:s}=t,a=formatConversationGroup(get(e,"content.data"));if(this.core.logger.log("v2ConversationGroupNotifySyncOnlineHandler",t,a),1===r)this.emit("onConversationGroupCreated",a),s&&s.length>0&&this.emit("onConversationsAddedToGroup",a.groupId,s.map((e=>this.core.V2NIMConversationService.model.getById(e))).filter((e=>!!e)));else if(2===r)this.emit("onConversationGroupDeleted",a.groupId),this.core.V2NIMConversationService.versionCache.compareAndDeleteGroupInModel(i,a.groupId);else if(3===r)this.emit("onConversationGroupChanged",a);else if(4===r){var n=s.map((e=>this.core.V2NIMConversationService.model.getById(e))).filter((e=>!!e));this.emit("onConversationsAddedToGroup",a.groupId,n)}else 5===r&&this.emit("onConversationsRemovedFromGroup",a.groupId,s)}}},"V2NIMConversationGroupService"),NIM.registerService(V2NIMMessageServiceImpl,"V2NIMMessageService"),NIM.registerService(class V2NIMNotificationServiceImpl extends V2Service{constructor(e,t){super("V2NIMNotificationService",e),this.config={compatibleWithV1:!0},this.notificationUtil=new NotificationUtil(this.core),this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:un,cmdConfig:vn}),this.setOptions(t))}setOptions(e){var t;(null===(t=this.core.systemMessage)||void 0===t?void 0:t.name)?this.config.compatibleWithV1=!0:this.config.compatibleWithV1=!1,this.config=Object.assign(this.config,e)}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;if("onReceiveCustomNotifications"===e){var i=t[0];this.logger.log(`${r}`,i.map((e=>`sender:${e.senderId};receiver:${e.receiverId};ctype:${e.conversationType};time:${e.timestamp}`)))}else if("onReceiveBroadcastNotifications"===e){var s=t[0];this.logger.log(`${r}`,s.map((e=>`id:${e.id};sender:${e.senderId};time:${e.timestamp}`)))}else this.logger.log(`${r}`,...t);return super.emit(e,...t)}sendCustomNotification(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validateConversationId(this.core.account,e),validate(Mn,{content:t,params:r},"",!0);var i=3===this.core.V2NIMConversationIdUtil.parseConversationType(e)?"v2SendCustomNotificationWithSuperTeam":"v2SendCustomNotification",s=this.notificationUtil.generateNotificationTag(e,t,r);yield this.core.sendCmd(i,{tag:s})}))}processSystemNotification(e){var t=e.type;if([0,1,2,3,4,15,16,17,18].includes(t))this.core.eventBus.emit("V2NIMTeamService/sysNotification",e);else{if(![5,6].includes(t)){var r=Object.assign(Object.assign({},e),{conversationType:{100:1,101:2,102:1,103:3}[t]});return delete r.type,r}this.core.eventBus.emit("V2NIMFriendService/sysNotification",e)}}markBroadcastMsgAck(e){this.config.compatibleWithV1||this.core.sendCmd("v2BatchMarkRead",{sid:7,cid:17,ids:e.map((e=>e.id))})}syncBroadcastMsgHandler(e){var t=e.content.datas;this.markBroadcastMsgAck(t),t.forEach((e=>{this.core.eventBus.emit("V2NIMSync/updateTimetag",{broadcastMsgs:parseInt(e.id)})})),this.emit("onReceiveBroadcastNotifications",t)}onBroadcastMsgHandler(e){var t=e.content.data;this.markBroadcastMsgAck([t]),this.core.eventBus.emit("V2NIMSync/updateTimetag",{broadcastMsgs:parseInt(t.id)}),this.emit("onReceiveBroadcastNotifications",[t])}onSysNotificationHandler(e){var t=fillIdServer(e,e.content.data,"idServer");this.markSysNotificationAck([t]);var r=this.processSystemNotification(t);r&&this.emit("onReceiveCustomNotifications",[r])}v2SyncOfflineSysNotificationsHandler(e){this.markSysNotificationAck(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)}v2NotificationRevokeHandler(e){var t=fillIdServer(e,e.content.data,"idServer");this.markSysNotificationAck([t])}v2NotificationSyncRevokeHandler(e){var{type:t}=e.content;1===parseInt(t)&&this.markSysNotificationAck(e.content.datas)}markSysNotificationAck(e){if(!this.config.compatibleWithV1){var t=[],r=[],i=[15,16,17,18,103];e.forEach((e=>{e.idServer&&(i.includes(e.type)?r.push(e.idServer):t.push(e.idServer))})),t.length>0&&this.core.sendCmd("v2BatchMarkRead",{sid:"7",cid:"3",ids:t}),r.length>0&&this.core.sendCmd("v2BatchMarkRead",{sid:"21",cid:"19",ids:r})}}},"V2NIMNotificationService"),NIM.registerService(V2NIMStorageServiceImpl,"V2NIMStorageService"),NIM.registerService(V2NIMStorageUtil,"V2NIMStorageUtil"),NIM.registerService(class V2NIMTeamServiceImpl extends V2Service{constructor(e){super("V2NIMTeamService",e),this.config={enableServerV2TeamJoinActionInfo:!1},this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),this.model=new V2NIMTeamModelImpl,this.memberModel=new V2NIMTeamMemberModelImpl,this.notificationModel=new V2NIMTeamNotificationModelImpl,this.notificationModelOld=new V2NIMTeamNotificationModelOldImpl,this.notification=new V2NIMTeamNotificationImpl(e,this),this.event=new V2NIMTeamEventImpl(e,this),this.handler=new V2NIMTeamHandlerImpl(e,this),"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:$a,cmdConfig:en}),this.setListener())}setOptions(e){this.config=Object.assign(this.config,e)}setListener(){this.event.setListener()}reset(){this.model.reset(),this.memberModel.reset(),this.notificationModel.reset(),this.notificationModelOld.reset()}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}createTeam(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate({createTeamParams:po},{createTeamParams:e},"",!0),validate({inviteeAccountIds:Object.assign(Object.assign({},uo),{min:0,required:!1})},{inviteeAccountIds:t},"",!0),validate({antispamConfig:yo},{antispamConfig:i},"",!0);var s=2===e.teamType?"v2SuperTeamCreate":"v2TeamCreate",a=yield this.core.sendCmd(s,{team:e,inviteeAccountIds:t||[],postscript:r||"",antispamConfig:i}),n=a.content.team;return this.model.upsert(n),this.getTeamMemberListByIds(n.teamId,n.teamType,[this.core.account]).catch((e=>{this.core.logger.error("Get Member error after createTeam",e)})),this.emit("onTeamCreated",n),{team:n,failedList:a.content.failedList}}))}updateTeamInfo(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(_o,{updateTeamInfoParams:r},"",!0),validate({antispamConfig:yo},{antispamConfig:i},"",!0);var s=Object.assign({teamId:e,teamType:t},r),a=2===t?"v2SuperTeamUpdateInfo":"v2TeamUpdateInfo";yield this.core.sendCmd(a,{team:s,antispamConfig:i}),this.model.upsert(s)}))}leaveTeam(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0);var r=2===t?"v2SuperTeamLeave":"v2TeamLeave";yield this.core.sendCmd(r,{teamId:e}),this.model.deleteById(e,t)}))}getTeamInfo(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0);var r=2===t?"v2SuperTeamGetInfo":"v2TeamGetInfo",i=this.model.getById(e,t,!1);if(i)return i;var s=(yield this.core.sendCmd(r,{teamId:e})).content.team;return this.model.upsert(s),s}))}getTeamInfoFromCloud(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0);var r=this.model.getById(e,t,!1),i=2===t?"v2SuperTeamGetInfo":"v2TeamGetInfo",s=(yield this.core.sendCmd(i,{teamId:e})).content.team,a=!1;r?r.updateTime!==s.updateTime&&(a=!0):a=!0;var n=this.model.upsert(s);return a&&this.emit("onTeamInfoUpdated",n),s}))}getJoinedTeamList(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(So,{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))}))}getOwnerTeamList(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(So,{teamTypes:e},"",!0),this.core.V2NIMLoginService.checkIllegalState(),e&&0!==e.length||(e=[1,2]);var t=[];return e.forEach((e=>{var r=this.model.getAll(e).filter((e=>e.ownerAccountId===this.core.account));t=t.concat(r)})),t.sort(((e,t)=>e.createTime-t.createTime))}))}getManagerTeamList(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(So,{teamTypes:e},"",!0),this.core.V2NIMLoginService.checkIllegalState(),e&&0!==e.length||(e=[1,2]);var t=[],r=yield this.getJoinedTeamMembers(e),i=new Map;return r.filter((e=>1===e.memberRole||2===e.memberRole)).forEach((e=>{i.has(e.teamType)||i.set(e.teamType,new Set);var t=i.get(e.teamType);t&&t.add(e.teamId)})),e.forEach((e=>{var r=i.get(e);if(r&&r.size>0){var s=this.model.getAll(e).filter((e=>r.has(e.teamId)));t=t.concat(s)}})),t.sort(((e,t)=>e.createTime-t.createTime))}))}getJoinedTeamCount(e){this.checkV2(),validate(So,{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(),validate(So,{teamTypes:e},"",!0),this.core.V2NIMLoginService.checkIllegalState(),e&&0!==e.length||(e=[1,2]);var t=[];return e.forEach((e=>{var r=this.memberModel.chooseList(e).filter((e=>e.accountId===this.core.account));t=t.concat(r)})),Promise.resolve(t)}getTeamInfoByIds(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Io,{teamIds:e},"",!0),validate(Mo,{teamType:t},"",!0);var r=2===t?"v2SuperTeamGetByIds":"v2TeamGetByIds",i=e.map((e=>this.model.getById(e,t,!1))),s=e.filter(((e,t)=>!i[t]));if(0===s.length)return i;var a=(yield this.core.sendCmd(r,{teamIds:s})).content.teams;return i.map(((t,r)=>{if(t)return t;var i=e[r],s=a.find((e=>e.teamId===i));return s&&this.model.upsert(s),s})).filter((e=>!!e))}))}dismissTeam(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0);var r=2===t?"v2SuperTeamDismiss":"v2TeamDismiss";yield this.core.sendCmd(r,{teamId:e})}))}inviteMember(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({inviteeAccountIds:uo},{inviteeAccountIds:r},"",!0),validate({postscript:Object.assign(Object.assign({},go),{required:!1})},{postscript:i},"",!0);var s=2===t?"v2SuperTeamInviteMembers":"v2TeamInviteMembers";return(yield this.core.sendCmd(s,{teamId:e,accounts:r,ps:i||""})).content.abortedAccidList}))}inviteMemberEx(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(To,{inviteeParams:r},"",!0);var i=2===t?"v2SuperTeamInviteMembers":"v2TeamInviteMembers";return(yield this.core.sendCmd(i,{teamId:e,accounts:r.inviteeAccountIds,ps:r.postscript||"",attach:r.serverExtension})).content.abortedAccidList}))}acceptInvitation(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Ao,e,"invitationInfo",!0),validate(Oo,e,"invitationInfo",!0);var{teamType:t,teamId:r,operatorAccountId:i}=e,s=2===t?"v2SuperTeamAcceptInvitation":"v2TeamAcceptInvitation";try{var a=yield this.core.sendCmd(s,{teamId:r,from:i});return this.notification.updateTeamActionStatus(e,1),a.content.team}catch(t){var n=t;throw this.notification.checkIfExpired(n.code)&&this.notification.updateTeamActionStatus(e,3),t}}))}rejectInvitation(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Ao,e,"invitationInfo",!0),validate(Oo,e,"invitationInfo",!0),validate({postscript:Object.assign(Object.assign({},go),{required:!1})},{postscript:t},"",!0);var{teamType:r,teamId:i,operatorAccountId:s}=e,a=2===r?"v2SuperTeamRejectInvite":"v2TeamRejectInvite";try{yield this.core.sendCmd(a,{teamId:i,from:s,ps:t||""}),this.notification.updateTeamActionStatus(e,2)}catch(t){var n=t;throw this.notification.checkIfExpired(n.code)&&this.notification.updateTeamActionStatus(e,3),t}}))}kickMember(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({memberAccountIds:uo},{memberAccountIds:r},"",!0);var i=2===t?"v2SuperTeamKickMembers":"v2TeamKickMembers";yield this.core.sendCmd(i,{teamId:e,accounts:r})}))}applyJoinTeam(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0);var i=2===t?"v2SuperTeamApplyToJoin":"v2TeamApplyToJoin",s=yield this.core.sendCmd(i,{teamId:e,ps:r||""}),a=s.content.team,n=s.content.isInTeam;return a.isValidTeam=!!a.isValidTeam&&!!n,a}))}acceptJoinApplication(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Ao,e,"applicationInfo",!0),validate(ko,e,"applicationInfo",!0);var{teamType:t,teamId:r,operatorAccountId:i}=e,s=2===t?"v2SuperTeamAcceptJoinApplication":"v2TeamAcceptJoinApplication";try{yield this.core.sendCmd(s,{teamId:r,from:i}),this.notification.updateTeamActionStatus(e,1)}catch(t){var a=t;throw this.notification.checkIfExpired(a.code)&&this.notification.updateTeamActionStatus(e,3),t}}))}rejectJoinApplication(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Ao,e,"applicationInfo",!0),validate(ko,e,"applicationInfo",!0),validate({postscript:Object.assign(Object.assign({},go),{required:!1})},{postscript:t},"",!0);var{teamType:r,teamId:i,operatorAccountId:s}=e,a=2===r?"v2SuperTeamRejectJoinApplication":"v2TeamRejectJoinApplication";try{yield this.core.sendCmd(a,{teamId:i,from:s,ps:t||""}),this.notification.updateTeamActionStatus(e,2)}catch(t){var n=t;throw this.notification.checkIfExpired(n.code)&&this.notification.updateTeamActionStatus(e,3),t}}))}updateTeamMemberRole(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({memberAccountIds:uo},{memberAccountIds:r},"",!0),validate({memberRole:Co},{memberRole:i},"",!0);var s=2===i?"AddManagers":"RemoveManagers";s=2===t?`v2SuperTeam${s}`:`v2Team${s}`,yield this.core.sendCmd(s,{teamId:e,accounts:uniq(r)})}))}transferTeamOwner(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({accountId:vo},{accountId:r},"",!0),validate({leave:{type:"boolean",required:!1}},{leave:i},"",!0);var s=this.model.getById(e,t);if(s&&s.ownerAccountId===r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Transfer to self is not allowed"}});var a=2===t?"v2SuperTeamTransferOwner":"v2TeamTransferOwner";yield this.core.sendCmd(a,{teamId:e,account:r,leave:i||!1})}))}updateSelfTeamMemberInfo(e,t,r){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(Eo,{memberInfoParams:r},"",!0),void 0===r.teamNick&&void 0===r.serverExtension)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER});var i=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",s=Object.assign(Object.assign({},r),{teamId:e,accountId:this.core.account}),a=r.antispamConfig?{teamMember:s,specialFollowUpdate:{},antispam:r.antispamConfig}:{teamMember:s};yield this.core.sendCmd(i,a),yield this.notification.updateTeamMemberRole(e,t,[this.core.account],s);var n=this.memberModel.getById(e,t,this.core.account);if(this.core.V2NIMSettingService.name&&this.core.V2NIMConversationIdUtil.name){var o=1===t?this.core.V2NIMConversationIdUtil.teamConversationId(e):this.core.V2NIMConversationIdUtil.superTeamConversationId(e),c=this.core.V2NIMSettingService.getConversationMuteStatus(o);this.core.eventBus.emit("V2NIMSettingService/setMute",o,c)}this.core.eventBus.emit("forwardSend/V2NIMTeamService/updateSelfTeamMemberInfo",n)}))}updateTeamMemberNick(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({accountId:vo},{accountId:r},"",!0),validate({nick:go},{nick:i},"",!0),r===this.core.account)return this.updateSelfTeamMemberInfo(e,t,{teamNick:i});var s=2===t?"v2SuperTeamUpdateMember":"v2TeamUpdateMember";yield this.core.sendCmd(s,{teamMember:{teamNick:i,teamId:e,accountId:r}})}))}updateTeamMemberNickEx(e,t,r){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(Vo,r,"",!0),r.accountId===this.core.account)return this.updateSelfTeamMemberInfo(e,t,{teamNick:r.teamNick,antispamConfig:r.antispamConfig});var i=2===t?"v2SuperTeamUpdateMember":"v2TeamUpdateMember";yield this.core.sendCmd(i,{teamMember:{teamNick:r.teamNick,teamId:e,accountId:r.accountId},antispam:r.antispamConfig})}))}setTeamChatBannedMode(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(bo,{chatBannedMode:r},"",!0);var i=2===t?"v2SuperTeamSetChatBannedMode":"v2TeamSetChatBannedMode";yield this.core.sendCmd(i,{teamId:e,chatBannedMode:r}),this.model.upsert({teamId:e,teamType:t,chatBannedMode:r})}))}setTeamMemberChatBannedStatus(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({accountId:vo},{accountId:r},"",!0),validate({chatBanned:ho},{chatBanned:i},"",!0);var s=2===t?"v2SuperTeamMemberSetChatBannedStatus":"v2TeamMemberSetChatBannedStatus";yield this.core.sendCmd(s,{teamId:e,accountId:2===t?[r]:r,chatBanned:i?1:0})}))}getTeamMemberList(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(No,{queryOption:r},"",!0);var i=void 0===r.direction?0:r.direction;i=0===i?1:0;var s=yield this.core.sendCmd("v2TeamMemberGetList",{tag:Object.assign(Object.assign({teamId:e,teamType:t,onlyChatBanned:!1,nextToken:"",limit:100},r),{direction:i})}),a=s.content.datas,n=get(s,"raw.r.0");return 2===t&&n&&n.map&&(a=n.map((e=>deserialize(e,invertSerializeItem(Ja))))),{nextToken:s.content.pageInfo.nextToken||"",finished:!+s.content.pageInfo.hasMore,memberList:processTeamMembers(a,t)}}))}getTeamMemberListByIds(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({accountIds:uo},{accountIds:r},"",!0);for(var i=2===t?"v2SuperTeamMemberGetListByIds":"v2TeamMemberGetListByIds",s=r.map((t=>`${e}|${t}`)),a=[],n=0;n<s.length;n+=20){var o=processTeamMembers((yield this.core.sendCmd(i,{tag:s.slice(n,n+20)})).content.datas,t);a=a.concat(o),o.forEach((e=>this.memberModel.upsert(e)))}return a}))}getTeamMemberInvitor(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate({accountIds:uo},{accountIds:r},"",!0);var i=2===t?"v2SuperTeamGetMemberInvitor":"v2TeamGetMemberInvitor";return(yield this.core.sendCmd(i,{teamId:e,accounts:r})).content.accountsMap}))}searchTeamByKeyword(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.checkLogin(),validate({keyword:vo},{keyword:e},"",!0),this.model.searchTeamByKeyword(e)}))}addTeamMembersFollow(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Po,{teamId:e,teamType:t,accountIds:r},"",!0);var i=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",[s]=yield this.getTeamMemberListByIds(e,t,[this.core.account]),a=(yield this.core.sendCmd(i,{teamMember:{teamId:e},specialFollowUpdate:{accountIds:r,operation:1}})).content.data;Object.keys(a).length>0&&(Object.assign(s,a),this.emit("onTeamMemberInfoUpdated",[s]),this.memberModel.upsert(s))}))}removeTeamMembersFollow(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Po,{teamId:e,teamType:t,accountIds:r},"",!0);var[i]=yield this.getTeamMemberListByIds(e,t,[this.core.account]),s=2===t?"v2SuperTeamUpdateSelfMemberInfo":"v2TeamUpdateSelfMemberInfo",a=(yield this.core.sendCmd(s,{teamMember:{teamId:e},specialFollowUpdate:{accountIds:r,operation:0}})).content.data;Object.keys(a).length>0&&(Object.assign(i,a),this.emit("onTeamMemberInfoUpdated",[i]),this.memberModel.upsert(i))}))}getTeamJoinActionInfoList(e){return this.checkV2(),validate(wo,e,"option",!0),this.core.V2NIMLoginService.checkIllegalState(),Promise.resolve(this.config.enableServerV2TeamJoinActionInfo?this.notificationModel.getByOption(e):this.notificationModelOld.getByOption(e))}clearAllTeamJoinActionInfo(){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.config.enableServerV2TeamJoinActionInfo){var e=yield this.core.sendCmd("v2TeamJoinActionClear",{tag:{timestamp:this.core.timeOrigin.getNTPTime(),type:q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL}});this.notification.setSyncTimestamp(e.content.serverTime),this.notificationModel.reset()}this.notificationModelOld.reset()}))}clearAllTeamJoinActionInfoEx(e){return __awaiter(this,void 0,void 0,(function*(){this.core.V2NIMLoginService.checkIllegalState(),validate({timestamp:{type:"number",required:!1},type:{type:"enum",values:[q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL,q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_NORMAL,q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_SUPER],required:!1}},e,"",!0);var t={timestamp:e.timestamp||this.core.timeOrigin.getNTPTime(),type:e.type||q.V2NIM_TEAM_JOIN_ACTION_TEAM_TYPE_ALL};if(this.config.enableServerV2TeamJoinActionInfo){var r=yield this.core.sendCmd("v2TeamJoinActionClear",{tag:t});this.notification.setSyncTimestamp(r.content.serverTime),this.notificationModel.deleteByOption(t)}this.notificationModelOld.deleteByOption(t)}))}deleteTeamJoinActionInfo(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate(Ao,e,"",!0),validate(Ro,e,"",!0),validate({timestamp:{type:"number",min:1}},e,"",!0),this.config.enableServerV2TeamJoinActionInfo&&e.serverId){var t=yield this.core.sendCmd("v2TeamJoinActionDelete",{tag:{serverId:e.serverId,teamType:e.teamType,teamId:e.teamId}});this.notification.setSyncTimestamp(t.content.serverTime),this.notificationModel.delete(e.serverId)}this.notificationModelOld.delete(e)}))}setTeamJoinActionInfoRead(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),e?(validate(Ao,e,"",!0),validate(Ro,e,"",!0),this.notificationModel.setRead(e),this.notificationModelOld.setRead(e)):(this.notificationModel.setAllRead(),this.notificationModelOld.setAllRead())}))}getTeamJoinActionInfoUnreadCount(){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.config.enableServerV2TeamJoinActionInfo?this.notificationModel.getUnreadCount():this.notificationModelOld.getUnreadCount()}))}},"V2NIMTeamService"),NIM.registerService(V2NIMUserServiceImpl,"V2NIMUserService"),NIM.registerService(class V2NIMFriendServiceImpl extends V2Service{constructor(e){super("V2NIMFriendService",e),this.config={enableServerV2FriendAddApplication:!1},this.notification=new V2NIMFriendNotificationImpl(this.core,this),this.model=new V2NIMFriendModelImpl,this.notificationModel=new V2NIMFriendNotificationModelImpl,this.notificationModelOld=new V2NIMFriendNotificationModelOldImpl,this.event=new V2NIFriendEventImpl(this.core,this),this.handler=new V2NIMMFriendHandlerImpl(this.core,this),this.core._registerDep(V2NIMUserServiceImpl,"V2NIMUserService"),"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:zo,cmdConfig:Xo}),this.setListener())}reset(){this.model.reset(),this.notificationModel.reset(),this.notificationModelOld.reset()}setListener(){this.event.setListener()}setOptions(e){this.config=Object.assign(this.config,e)}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}addFriend(e,t){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),e===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot add yourself"}});validate(Zo,{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.notificationModelOld.updateFriendAddApplicationStatus(e,4,this.core.account))}))}deleteFriend(e,t){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),e===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"Cannot delete yourself"}});validate(ec,{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 __awaiter(this,void 0,void 0,(function*(){this.checkV2(),checkApplication(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 __awaiter(this,void 0,void 0,(function*(){this.checkV2(),checkApplication(e,this.core.account);try{yield this.core.sendCmd("v2AddFriend",{accountId:e.applicantAccountId,verifyType:4,postscript:t||""}),this.handleRejectFriendApply(Object.assign(Object.assign({},e),{postscript:t||"",operatorAccountId:this.core.account,updateTimestamp:this.core.timeOrigin.getNTPTime(),read:!1,status:2}))}catch(r){throw this.handleRejectFriendApply({applicantAccountId:e.applicantAccountId,recipientAccountId:e.recipientAccountId,operatorAccountId:this.core.account,postscript:t||"",serverId:"",timestamp:this.core.timeOrigin.getNTPTime(),updateTimestamp:this.core.timeOrigin.getNTPTime(),read:!1,status:3},r),r}}))}setFriendInfo(e,t){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(tc,{accountId:e,params:t},"",!0),e===this.core.account)throw new V2NIMErrorImpl({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 __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.computedFields(this.model.getFriendList())}))}getFriendByIds(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate({accountIds:{type:"array",itemType:"string",required:!0,min:1}},{accountIds:e},"",!0),this.computedFields(this.model.getFriendByIds(e))}))}checkFriend(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate({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 __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate(ic,e,"",!0),this.config.enableServerV2FriendAddApplication?this.notificationModel.getByOption(e,this.core.account):this.notificationModelOld.getAddApplicationList(e)}))}setAddApplicationRead(){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.notificationModel.setAllRead(),this.notificationModelOld.setAllApplicationRead()}))}setAddApplicationReadEx(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),e?(checkApplication(e,this.core.account),this.notificationModel.setRead(e),this.notificationModelOld.setApplicationRead(e)):(this.notificationModel.setAllRead(),this.notificationModelOld.setAllApplicationRead())}))}getAddApplicationUnreadCount(){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),this.config.enableServerV2FriendAddApplication?this.notificationModel.getUnreadCount():this.notificationModelOld.getAddApplicationUnreadCount()}))}clearAllAddApplication(){var e;return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState();var t=yield this.core.sendCmd("v2FriendOperationClear",{tag:{}}),r=null===(e=t.content.data)||void 0===e?void 0:e.serverTime;r&&this.core.eventBus.emit("V2NIMSync/updateTimetag",{friendOperatorList:r,friendApplyInfoDeleteOrClear:r}),this.notificationModel.clear(),this.notificationModelOld.clearApplicationList()}))}clearAllAddApplicationEx(e){var t;return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate({timestamp:{type:"number",required:!1},type:{type:"enum",values:[1,2,3],required:!1}},e,"",!0);var r=yield this.core.sendCmd("v2FriendOperationClear",{tag:e}),i=null===(t=r.content.data)||void 0===t?void 0:t.serverTime;i&&this.core.eventBus.emit("V2NIMSync/updateTimetag",{friendOperatorList:i,friendApplyInfoDeleteOrClear:i});var s={timestamp:"number"==typeof(null==e?void 0:e.timestamp)?e.timestamp:this.core.timeOrigin.getNTPTime(),type:"number"==typeof(null==e?void 0:e.type)?e.type:3};this.notificationModel.deleteByOption(s,this.core.account),this.notificationModelOld.deleteByOption(s,this.core.account)}))}deleteAddApplication(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),checkApplication(e,this.core.account),e.serverId){var r=yield this.core.sendCmd("v2FriendOperationDelete",{tag:{serverId:e.serverId}});this.notification.setSyncTimestamp(null===(t=r.content.data)||void 0===t?void 0:t.serverTime)}this.notificationModel.delete(e.serverId),this.notificationModelOld.deleteApplication(e)}))}searchFriendByOption(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),this.core.V2NIMLoginService.checkIllegalState(),validate({keyword:{type:"string",allowEmpty:!1},searchAccountId:{type:"boolean",required:!1}},e,"",!0),!(void 0===e.searchAlias||e.searchAlias)&&!e.searchAccountId)throw new V2NIMErrorImpl({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))}))}handleApplyFriend(e){this.emit("onFriendAddApplication",e)}handleAddFriend(e){return __awaiter(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 r=this.model.upsertFriend(e,t);this.emit("onFriendInfoChanged",this.computedField(r))}handlePassFriendApply(e,t){if(!this.config.enableServerV2FriendAddApplication){var r=t?null==t?void 0:t.code:200;if(!(r>=19e4||r===de.V2NIM_ERROR_CODE_FRIEND_OPERATION_RATE_LIMIT))if(200===r||r===de.V2NIM_ERROR_CODE_FRIEND_ALREADY_EXIST)this.notificationModelOld.updateFriendAddApplicationStatus(e,1,this.core.account),this.handleAddFriend(e);else{if(r>=500&&r<=599&&509!==r)return;this.notificationModelOld.updateFriendAddApplicationStatus(e,3,this.core.account)}}}handleRejectFriendApply(e,t){if(!this.config.enableServerV2FriendAddApplication){var r=t?null==t?void 0:t.code:200;if(!(r>=19e4||r===de.V2NIM_ERROR_CODE_FRIEND_OPERATION_RATE_LIMIT))if(200===r)this.emit("onFriendAddRejected",e),this.notificationModelOld.updateFriendAddApplicationStatus(e.applicantAccountId,2,this.core.account);else if(r===de.V2NIM_ERROR_CODE_FRIEND_ALREADY_EXIST)this.notificationModelOld.updateFriendAddApplicationStatus(e.applicantAccountId,1,this.core.account);else{if(r>=500&&r<=599&&509!==r)return;this.notificationModelOld.updateFriendAddApplicationStatus(e.applicantAccountId,3,this.core.account)}}}incrementSyncFriend(){return __awaiter(this,void 0,void 0,(function*(){var e=yield this.core.sendCmd("v2IncFriendInfo",{timetag:this.model.getFriendTimetag()}),{friends:t,timetag:r}=e.content;this.model.setFriendTimetag(r),t.forEach((e=>{this.model.upsertFriend(e.accountId,e)}))}))}computedFields(e){return e.map((e=>this.computedField(e)))}computedField(e){var t,r,i=null===(r=null===(t=this.core.V2NIMUserService)||void 0===t?void 0:t.model)||void 0===r?void 0:r.getUser(e.accountId);return i?Object.assign({},e,{userProfile:i}):e}},"V2NIMFriendService"),NIM.registerService(class V2NIMSettingServiceImpl extends V2Service{constructor(e){super("V2NIMSettingService",e),this.needToPushMobileOnDesktopOnline=!0,this.core._registerDep(V2NIMConversationIdUtilImpl,"V2NIMConversationIdUtil"),this.push=new V2NIMSettingPushImpl(e,this),this.mute=new V2NIMSettingMuteImpl(e,this),this.event=new V2NIMSettingEventImpl(e,this),this.handler=new V2NIMSettingHandlerImpl(e,this),"v2"===this.core.options.apiVersion&&(this.setListener(),registerParser({cmdMap:lc,cmdConfig:pc}))}get hasUserService(){var e;return!!(null===(e=this.core.V2NIMUserService)||void 0===e?void 0:e.name)}get hasTeamService(){var e;return!!(null===(e=this.core.V2NIMTeamService)||void 0===e?void 0:e.name)}setListener(){this.event.setListener()}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;return this.logger.log(`${r}`,...t),super.emit(e,...t)}getConversationMuteStatus(e){return this.mute.getConversationMuteStatus(e)}setTeamMessageMuteMode(e,t,r){if(!this.hasTeamService)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_MISUSE,detail:{reason:"setTeamMessageMuteMode: no team service"}});return this.checkV2(),validate(fo,{teamId:e},"",!0),validate(Mo,{teamType:t},"",!0),validate(ac,{muteMode:r},"",!0),this.mute.setTeamMessageMuteMode(e,t,r)}getTeamMessageMuteMode(e,t){return this.mute.getTeamMessageMuteMode(e,t)}getAllTeamMessageMuteMode(e){return this.checkV2(),this.checkLogin(),validate(Mo,{teamType:e},"",!0),this.mute.getAllTeamMessageMuteMode(e)}setP2PMessageMuteMode(e,t){if(this.checkV2(),validate(nc,{accountId:e,muteMode:t},"",!0),e===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"can not set mute mode for self"}});return this.mute.setP2PMessageMuteMode(e,t)}getP2PMessageMuteMode(e){return validate({accountId:{type:"string",required:!0,allowEmpty:!1}},{accountId:e},"",!0),this.mute.getP2PMessageMuteMode(e)}getP2PMessageMuteList(){return this.mute.getP2PMessageMuteList()}setAppBackground(e,t){return this.checkV2(),validate({isBackground:{type:"boolean"},badge:{type:"number",required:!1}},{isBackground:e,badge:t},"",!0),this.push.setAppBackground(e,t)}setOfflinePushConfig(e,t){validate(cc,{config:t},"",!0),this.push.setOfflinePushConfig(e,t)}setPushMobileOnDesktopOnline(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate({need:{type:"boolean",required:!1}},{need:e},"",!0),e=void 0===e||e,yield this.core.sendCmd("v2SetPushMobileOnDesktopOnline",{tag:{need:e}}),this.needToPushMobileOnDesktopOnline=e,this.emit("onPushMobileOnDesktopOnline",e)}))}getPushMobileOnDesktopOnline(){return this.checkLogin(),Promise.resolve(this.needToPushMobileOnDesktopOnline)}},"V2NIMSettingService"),NIM.registerService(class V2NIMSyncServiceImpl extends V2Service{constructor(e){super("V2NIMSyncService",e),this.teamKey=["teams","superTeams","myTeamMembers","mySuperTeamMembers","teamApplyList"],this.config={},this.timetags={},"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:uc,cmdConfig:hc}),this.setListener())}reset(){this.timetags={}}setListener(){this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",(()=>{this.doSync()})),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,r=!(!t.V2NIMConversationService.name&&!t.V2NIMLocalConversationService.name),i=!!t.V2NIMFriendService.name&&get(t.otherOptions,"V2NIMFriendServiceConfig.enableServerV2FriendAddApplication"),s=!!t.V2NIMTeamService.name&&get(t.otherOptions,"V2NIMTeamServiceConfig.enableServerV2TeamJoinActionInfo");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,friendOperatorList:i,friendApplyInfoDeleteOrClear:i,msgReceipts:!!t.V2NIMMessageService.name,p2pMsgReceiptV2:!!t.V2NIMMessageService.name,broadcastMsgs:!!t.V2NIMNotificationService.name,recallMsg:!!t.V2NIMMessageService.name,sessionAck:r,superTeamSessionAck:r,stickTopSessions:r,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,teamApplyList:s,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 __awaiter(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 r=(yield this.core.clientSocket.sendCmd("v2NIMSync",{tag:t})).content.timetag;this.setTimetags(r,e.filter((e=>"broadcastMsgs"!==e))),yield this.delaySyncDone(),yield this.handleImmediate(),this.core.logger.log("sync::basic sync complete in",r)}))}doTeamSync(){return __awaiter(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 r=null;try{r=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 i=r.content.timetag;this.setTimetags(i,this.teamKey),this.core.logger.log("sync::team sync complete in",i)}}))}doQchatSync(){return __awaiter(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 __awaiter(this,void 0,void 0,(function*(){var e=get(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"})}genSyncParams(e){return e.reduce(((e,t)=>{var r=t;return e[r]=this.timetags[r]||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}=ve.getSystemInfo();return 102===e?(this.core.logger.log("sync: emit ALIAPP sycnHandler, handle later"),new Promise((e=>{setTimeout((()=>{e()}),100)}))):Promise.resolve()}},"V2NIMSyncService"),NIM.registerService(class V2NIMAIServiceImpl extends V2Service{constructor(e){super("V2NIMAIService",e),this.model=new V2NIMAIModelImpl,this.event=new V2NIMAIEventImpl(this.core,this),this.handler=new V2NIMAIHandlerImpl(this.core,this),registerParser({cmdMap:vc,cmdConfig:Tc})}setListener(){this.event.setListener()}reset(){this.model.reset()}emit(e,...t){return this.event.beforeEmit(e,...t),super.emit(e,...t)}getAIUserList(){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),function formatAIUsers(e){return e&&e.length>0?e.map((e=>(e.modelType=e.aiModelType,e))):[]}((yield this.core.sendCmd("v2AIGetUserList",{tag:{}})).content.datas)}))}proxyAIModelCall(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(ra,e,"",!0),this.model.getAiStream(e.requestId))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,desc:"Same requestId",detail:{rawData:e.requestId}});this.model.setAiStream(e.requestId,{isComplete:!1,queryStatus:0,chunks:[]},!0),yield this.core.sendCmd("v2AIProxyModelCall",{tag:e})}))}stopAIModelStreamCall(e){return __awaiter(this,void 0,void 0,(function*(){validate(ia,e,"",!0),yield this.core.sendCmd("v2AIStopModelStreamCall",{tag:{clientId:e.requestId,aiAccount:e.accountId,type:4,from:this.core.account}}),this.logger.log(`V2AI::streamCallStop,requestId:${e.requestId}`),this.model.completeAiStream(e.requestId)}))}_queryAiStream(e){return __awaiter(this,void 0,void 0,(function*(){this.model.setAiStream(e.clientId,{queryStatus:1});try{var t=yield this.core.sendCmd("v2AIStreamQuery",{tag:e});this.model.setAiStream(e.clientId,{queryStatus:2});var r=t.content.datas;if(!(r&&r.length>0))return;r.forEach((e=>{var t=e.clientId,r=this.model.getAiStream(t);if(r&&(!r||!r.isComplete)&&e.content&&e.content.lastChunk){var i=e.content.lastChunk;this.model.upsertAiStreamChunks(t,i.index,i.content),0===i.index&&e.aiRAGs&&this.model.setAiStream(t,{aiRAGs:e.aiRAGs}),this.logger.log(`V2AI::queryAiStream requestId:${t};index:${i.index};cacheChunkLength:${r.chunks.length};chunkTime:${i.chunkTime}.`)}}))}catch(t){this.logger.warn(`V2AI::queryAiStream requestId:${e.clientId};error:`,t),this.model.setAiStream(e.clientId,{queryStatus:2})}}))}},"V2NIMAIService"),NIM.registerService(class DataStructureConverterImpl{constructor(e){this.name="DataStructureConverter",this.core=e}messageConvertToV1(e){var t,r=deserialize(serialize(e,sn),invertSerializeItem(tr)),i=getSessionId(r,this.core.account),s=null===(t=this.core.session)||void 0===t?void 0:t.getSessionWithUncomplete({id:i});return formatMsg$1(r,s?{account:this.core.account,sessionAck:s.ack,msgReceiptTime:s.msgReceiptTime}:{account:this.core.account})}messageConvertToV2(e){var t=deserialize(serialize(generatorMsgForCmd$1(e,e.from,e.fromDeviceId),tr),an);return(t=completeMessage(this.core,t)).sendingState="sending"===e.status?3:"sendFailed"===e.status?2:1,t}},"DataStructureConverter"),NIM.registerService(class V2NIMMessageConverterImpl{constructor(e){this.name="V2NIMMessageConverter",this.core=e}messageSerialization(e){if(!e)return null;var t=serialize(e,sn);return JSON.stringify(t)}messageDeserialization(e){var t,r,i,s,a,n,o,c,d,l,m,p,u,h,g,v,y,f,I,M,S,T,_;if(!e)return null;try{var C=deserialize(JSON.parse(e),an);return C.sendingState=0,1!==C.conversationType||C.senderId!==this.core.account&&C.receiverId!==this.core.account?2===C.conversationType?C.conversationId=this.core.V2NIMConversationIdUtil.teamConversationId(C.receiverId):3===C.conversationType&&(C.conversationId=this.core.V2NIMConversationIdUtil.superTeamConversationId(C.receiverId)):C.conversationId=this.core.V2NIMConversationIdUtil.p2pConversationId(C.senderId===this.core.account?C.receiverId:C.senderId),C.threadReply&&(C.threadReply.conversationType=C.conversationType,C.threadReply=completeMessageRefer(this.core,C.threadReply)),C.threadRoot&&(C.threadRoot.conversationType=C.conversationType,C.threadRoot=completeMessageRefer(this.core,C.threadRoot)),[1,3,2,0].includes(C.conversationType)||this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid conversationType(enum): ${C.conversationType}`),C.senderId&&"string"!=typeof C.senderId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid senderId(string): ${C.senderId}`),C.receiverId&&"string"!=typeof C.receiverId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid receiverId(string): ${C.receiverId}`),"createTime"in C&&isNaN(C.createTime)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid createTime(number): ${C.createTime}`),[2,7,12,100,6,1,-1,4,5,11,0,10,3].includes(C.messageType)||this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageType(enum): ${C.messageType}`),"subType"in C&&isNaN(C.subType)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid subType(number): ${C.subType}`),C.messageClientId&&"string"!=typeof C.messageClientId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageClientId(string): ${C.messageClientId}`),C.messageServerId&&"string"!=typeof C.messageServerId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageServerId(string): ${C.messageServerId}`),C.attachment&&"object"!=typeof C.attachment&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid attachment(object): ${C.attachment}`),C.text&&"string"!=typeof C.text&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid text(string): ${C.text}`),C.serverExtension&&"string"!=typeof C.serverExtension&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid serverExtension(string): ${C.serverExtension}`),C.callbackExtension&&"string"!=typeof C.callbackExtension&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid callbackExtension(string): ${C.callbackExtension}`),(null===(t=C.pushConfig)||void 0===t?void 0:t.pushContent)&&"string"!=typeof C.pushConfig.pushContent&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid pushContent(string): ${C.pushConfig.pushContent}`),(null===(r=C.pushConfig)||void 0===r?void 0:r.pushPayload)&&"string"!=typeof C.pushConfig.pushPayload&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid pushPayload(string): ${C.pushConfig.pushPayload}`),(null===(i=C.pushConfig)||void 0===i?void 0:i.forcePushContent)&&"string"!=typeof C.pushConfig.forcePushContent&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid forcePushContent(string): ${C.pushConfig.forcePushContent}`),(null===(s=C.pushConfig)||void 0===s?void 0:s.forcePushAccountIds)&&!Array.isArray(C.pushConfig.forcePushAccountIds)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid forcePushAccountIds(array): ${C.pushConfig.forcePushAccountIds}`),(null===(a=C.routeConfig)||void 0===a?void 0:a.routeEnvironment)&&"string"!=typeof C.routeConfig.routeEnvironment&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid routeEnvironment(string): ${C.routeConfig.routeEnvironment}`),(null===(n=C.antispamConfig)||void 0===n?void 0:n.antispamBusinessId)&&"string"!=typeof C.antispamConfig.antispamBusinessId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid antispamBusinessId(string): ${C.antispamConfig.antispamBusinessId}`),(null===(o=C.antispamConfig)||void 0===o?void 0:o.antispamCustomMessage)&&"string"!=typeof C.antispamConfig.antispamCustomMessage&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid antispamCustomMessage(string): ${C.antispamConfig.antispamCustomMessage}`),(null===(c=C.antispamConfig)||void 0===c?void 0:c.antispamCheating)&&"string"!=typeof C.antispamConfig.antispamCheating&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid antispamCheating(string): ${C.antispamConfig.antispamCheating}`),(null===(d=C.antispamConfig)||void 0===d?void 0:d.antispamExtension)&&"string"!=typeof C.antispamConfig.antispamExtension&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid antispamExtension(string): ${C.antispamConfig.antispamExtension}`),(null===(l=C.robotConfig)||void 0===l?void 0:l.accountId)&&"string"!=typeof C.robotConfig.accountId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid accountId(string): ${C.robotConfig.accountId}`),(null===(m=C.robotConfig)||void 0===m?void 0:m.topic)&&"string"!=typeof C.robotConfig.topic&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid topic(string): ${C.robotConfig.topic}`),(null===(p=C.robotConfig)||void 0===p?void 0:p.function)&&"string"!=typeof C.robotConfig.function&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid function(string): ${C.robotConfig.function}`),(null===(u=C.robotConfig)||void 0===u?void 0:u.customContent)&&"string"!=typeof C.robotConfig.customContent&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid customContent(string): ${C.robotConfig.customContent}`),(null===(h=C.threadRoot)||void 0===h?void 0:h.senderId)&&"string"!=typeof C.threadRoot.senderId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid senderId(string): ${C.threadRoot.senderId}`),(null===(g=C.threadRoot)||void 0===g?void 0:g.receiverId)&&"string"!=typeof C.threadRoot.receiverId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid receiverId(string): ${C.threadRoot.receiverId}`),(null===(v=C.threadRoot)||void 0===v?void 0:v.messageClientId)&&"string"!=typeof C.threadRoot.messageClientId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageClientId(string): ${C.threadRoot.messageClientId}`),(null===(y=C.threadRoot)||void 0===y?void 0:y.messageServerId)&&"string"!=typeof C.threadRoot.messageServerId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageServerId(string): ${C.threadRoot.messageServerId}`),C.threadRoot&&"createTime"in C.threadRoot&&isNaN(C.threadRoot.createTime)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid createTime(number): ${C.threadRoot.createTime}`),C.threadRoot&&![1,3,2,0].includes(C.threadRoot.conversationType)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid conversationType(enum): ${C.threadRoot.conversationType}`),(null===(f=C.threadRoot)||void 0===f?void 0:f.conversationId)&&"string"!=typeof C.threadRoot.conversationId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid conversationId(string): ${C.threadRoot.conversationId}`),(null===(I=C.threadReply)||void 0===I?void 0:I.senderId)&&"string"!=typeof C.threadReply.senderId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid senderId(string): ${C.threadReply.senderId}`),(null===(M=C.threadReply)||void 0===M?void 0:M.receiverId)&&"string"!=typeof C.threadReply.receiverId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid receiverId(string): ${C.threadReply.receiverId}`),(null===(S=C.threadReply)||void 0===S?void 0:S.messageClientId)&&"string"!=typeof C.threadReply.messageClientId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageClientId(string): ${C.threadReply.messageClientId}`),(null===(T=C.threadReply)||void 0===T?void 0:T.messageServerId)&&"string"!=typeof C.threadReply.messageServerId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid messageServerId(string): ${C.threadReply.messageServerId}`),C.threadReply&&"createTime"in C.threadReply&&isNaN(C.threadReply.createTime)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid createTime(number): ${C.threadReply.createTime}`),C.threadReply&&![1,3,2,0].includes(C.threadReply.conversationType)&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid conversationType(enum): ${C.threadReply.conversationType}`),(null===(_=C.threadReply)||void 0===_?void 0:_.conversationId)&&"string"!=typeof C.threadReply.conversationId&&this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid conversationId(string): ${C.threadReply.conversationId}`),delete C.__clientExt,delete C.userUpdateTime,C}catch(t){return this.core.logger.error(`V2NIMMessageConverterImpl.messageDeserialization: invalid message string: ${e}`),null}}},"V2NIMMessageConverter"),NIM.registerService(class V2NIMMessageLogUtil extends V2Service{constructor(e){super("V2NIMMessageLogUtil",e),this.clearHistoryMessageFn=e=>{var t=formatClearHistoryNotification(this.core,e);this.emitClearHistoryMessage([t])},this.core=e,this.service=this.core.V2NIMMessageService,"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:Yn,cmdConfig:Kn}),this.setListener())}setListener(){this.core.eventBus.on("forwardReceive/V2NIMMessageLogService/clearHistoryMessage",this.clearHistoryMessageFn)}getMessageListByRefers(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(ga,{messageRefers:e},"",!0),0===e.length)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getMessageListByRefers: messageRefers cannot be an empty array"}});var t=[],r=e.map((e=>{var r=this.service.model.getMessageById(e.messageClientId);return!r&&e.messageServerId&&"0"!==e.messageServerId&&t.push(e),r})),i=[];if(t.length>0){var s=yield this.core.sendCmd("v2GetMessageListByRefers",{tag:t});i=s.content.msgs}return r=r.map(((t,r)=>{if(t)return t;var s=e[r],a=i.find((e=>e.messageServerId===s.messageServerId));return a?completeMessage(this.core,a):void 0})).filter((e=>void 0!==e&&!this.service._filterMessage(e))),r=this._fillAIStreamMessages(r)}))}getMessageList(e){var t;return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(ua,e,"",!0),validateConversationId(this.core.account,e.conversationId);var r=this.core.V2NIMConversationIdUtil.parseConversationType(e.conversationId),i=this.core.V2NIMConversationIdUtil.parseConversationTargetId(e.conversationId),s=1===r?"v2GetMessageList":2===r?"v2GetTeamMessageList":"v2GetSuperTeamMessageList",a=e.beginTime||0,n=e.endTime||0;if(0!==a&&0!==n&&a>n)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getMessageList: beginTime cannot be greater than endTime"}});var o=void 0===e.direction?0:e.direction;if(e.anchorMessage)if(0===o){if(0===n)n=e.anchorMessage.createTime;else if(n!==e.anchorMessage.createTime)throw new V2NIMErrorImpl({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===a)a=e.anchorMessage.createTime;else if(a!==e.anchorMessage.createTime)throw new V2NIMErrorImpl({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:a,endTime:n,lastMsgId:c||0,limit:e.limit||50,direction:o,msgTypes:e.messageTypes?e.messageTypes.slice():[],to:i}),{content:l}=d,m=l.msgs.map((e=>completeMessage(this.core,e)));c&&(m=m.filter((e=>e.messageServerId!==c)));var p=this.getMessageListMonkeyPatch(m,e);return p=this._fillAIStreamMessages(p)}))}getMessageListMonkeyPatch(e,t){var r=t.conversationId,i=e,s=i.reduce(((e,t)=>(e[t.messageClientId]=!0,e)),{}),a=this.service.model.getMessagesByConversationId(r);a=a.sort(((e,r)=>1===t.direction?e.createTime-r.createTime:r.createTime-e.createTime));var n=0,o=t.beginTime||0,c=t.endTime||0;t.anchorMessage&&(0===t.direction?c=t.anchorMessage.createTime:o=t.anchorMessage.createTime,n=a.findIndex((e=>{var r;return e.messageClientId===(null===(r=t.anchorMessage)||void 0===r?void 0:r.messageClientId)})),n+=1);for(var d=n;d<a.length;d++){var l=a[d],m=!s[l.messageClientId],p=void 0===l.sendingState||1===l.sendingState,u=l.conversationId===r,h=l.createTime>o&&(l.createTime<c||0===c),g=!t.messageTypes||t.messageTypes.includes(l.messageType);m&&p&&u&&h&&g&&i.push(a[d])}return(i=i.sort(((e,r)=>1===t.direction?e.createTime-r.createTime:r.createTime-e.createTime))).slice(0,t.limit||50)}clearHistoryMessage(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(fa,e,"",!0),validateConversationId(this.core.account,e.conversationId);var{conversationId:t,deleteRoam:r,onlineSync:i,serverExtension:s}=e,a=this.core.V2NIMConversationIdUtil.parseConversationType(t),n=this.core.V2NIMConversationIdUtil.parseConversationTargetId(t),o={deleteRoam:r,onlineSync:i,serverExtension:s,conversationType:a};1===a?o.receiverId=n:o.teamId=n;var c=this.core.timeOrigin.getNTPTime();(e.clearMode=e.clearMode||0,0===e.clearMode)&&(c=(yield this.core.sendCmd("v2ClearHistoryMessage",{tag:o})).content.timetag);2===e.clearMode&&ve.localStorage.setItem(`nim_${this.core.account}_${t}_clearTime`,c.toString()),this.core.eventBus.emit("forwardSend/V2NIMMessageLogService/clearHistoryMessage",Object.assign(Object.assign({},o),{deleteTime:c})),this.emitClearHistoryMessage([{deleteTime:c,serverExtension:s,conversationId:t}])}))}clearRoamingMessage(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate({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 getSessionIdFromConvInfo(this.core.V2NIMConversationIdUtil.parseConversationType(e),t)}))}catch(t){throw this.logger.error(`V2NIMMessage::clearRoamingMessage with ${e}`,t),new V2NIMErrorImpl({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=>formatClearHistoryNotification(this.core,e)));this.emitClearHistoryMessage(t)}onClearHistoryMessageHandler(e){var t=formatClearHistoryNotification(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)}_fillAIStreamMessages(e){var t;return(null===(t=this.core)||void 0===t?void 0:t.V2NIMMessageService.aiUtil.hasAI())?e.map((e=>{var t,r,i;if(-1===(null===(t=null==e?void 0:e.streamConfig)||void 0===t?void 0:t.status)||1===(null===(r=null==e?void 0:e.streamConfig)||void 0===r?void 0:r.status)){var s=this.core.V2NIMAIService.model.getAiStream(e.messageClientId);e.text=(null===(i=null==s?void 0:s.chunks)||void 0===i?void 0:i.join(""))||e.text||"",(null==s?void 0:s.aiRAGs)&&(e.streamConfig.rags=s.aiRAGs),e.streamConfig.status=-1}return e})):e}},"V2NIMMessageLogUtil"),NIM.registerService(class V2NIMMessageExtendUtil extends V2Service{constructor(e){super("V2NIMMessageExtendUtil",e),this.core=e,this.service=this.core.V2NIMMessageService,"v2"===this.core.options.apiVersion&&registerParser({cmdMap:Xn,cmdConfig:co})}pinMessage(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(ha,e,"message",!0),validate(Ia,{serverExtension:t},"",!0);var r=yield this.core.sendCmd("v2PinMessage",{msg:e,msgPin:{serverExtension:t}});this.emitPinNotification({pinState:1,message:e,serverExtension:t,createTime:r.content.timetag,updateTime:r.content.timetag,operatorId:this.core.account})}))}unpinMessage(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(ha,e,"messageRefer",!0),validate(Ia,{serverExtension:t},"",!0);var r=yield this.core.sendCmd("v2UnpinMessage",{msg:e,msgPin:{serverExtension:t}});this.emitPinNotification({pinState:0,message:e,serverExtension:t,updateTime:r.content.timetag,operatorId:this.core.account})}))}updatePinMessage(e,t){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(ha,e,"message",!0),validate(Ia,{serverExtension:t},"",!0);var r=yield this.core.sendCmd("v2UpdatePinMessage",{msg:e,msgPin:{serverExtension:t}});this.emitPinNotification({pinState:2,message:e,serverExtension:t,updateTime:r.content.timetag,operatorId:this.core.account})}))}getPinnedMessageList(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),!this.core.V2NIMConversationIdUtil||!this.core.V2NIMConversationIdUtil.parseConversationType)throw new Error('Service "V2NIMConversationService" does not exist');validateConversationId(this.core.account,e);var t=this.core.V2NIMConversationIdUtil.convertToV1ConversationId(e);return t=t.replace("superTeam","super_team"),(yield this.core.sendCmd("v2GetPinMessageList",{tag:{conversationId:t,timetag:0}})).content.data.map((e=>Object.assign(Object.assign({},e),{messageRefer:Object.assign(Object.assign({},e.messageRefer),{conversationId:this.core.V2NIMConversationIdUtil.messageConversationId(e.messageRefer)})}))).sort(((e,t)=>t.updateTime-e.updateTime))}))}addQuickComment(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(_a,{message:e,index:t,serverExtension:r,pushConfig:i},"",!0);var s=yield this.core.sendCmd("v2AddQuickComment",{message:e,quickComment:{index:t,serverExtension:r,pushConfig:i}}),a={operationType:1,quickComment:{messageRefer:formatMessageRefer(this.core,e),createTime:s.content.timetag,index:t,serverExtension:r||"",operatorId:this.core.account}};this.core.V2NIMMessageService.emit("onMessageQuickCommentNotification",a)}))}removeQuickComment(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(ha,e,"messageRefer",!0),validate({index:{type:"number",min:1}},{index:t},"",!0),validate({serverExtension:{type:"string",required:!1}},{serverExtension:r},"",!0);var i=yield this.core.sendCmd("v2RemoveQuickComment",{message:e,quickComment:{index:t,serverExtension:r}}),s={operationType:2,quickComment:{messageRefer:formatMessageRefer(this.core,e),createTime:i.content.timetag,index:t,serverExtension:r||"",operatorId:this.core.account}};this.core.V2NIMMessageService.emit("onMessageQuickCommentNotification",s)}))}getQuickCommentList(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Ca,{messages:e},"",!0);var t={};return(yield this.core.sendCmd("v2GetQuickComment",{tag:e.map((e=>({messageRefer:e})))})).content.data.forEach((e=>{var r,i;try{if(!e.detail)return void(t[r=e.messageRefer.messageClientId]||(t[r]=[]));var s=JSON.parse(e.detail);t[i=e.messageRefer.messageClientId]||(t[i]=[]),s.forEach((r=>{t[e.messageRefer.messageClientId].push({messageRefer:Object.assign(Object.assign({},e.messageRefer),{conversationId:this.core.V2NIMConversationIdUtil.messageConversationId(e.messageRefer)}),operatorId:r[1],index:parseInt(r[2]),createTime:parseInt(r[3]),serverExtension:r[4]})}))}catch(t){this.logger.error("getQuickCommentList JSON Parse Error",e.detail,t)}})),t}))}voiceToText(e){return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(Ta,e,"",!0),!e.voicePath&&!e.voiceUrl&&!e.file)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"voiceToText: voicePath、voiceUrl、file cannot be empty at the same time"}});var{voicePath:t,file:r,mimeType:i,sampleRate:s,duration:a,sceneName:n}=e,o=n?this.core.V2NIMStorageService.getStorageScene(n):null,c=e.voiceUrl;if(!c){var d={};r?d.file=r:0===(null==t?void 0:t.indexOf("nim-external"))?d.fileInput=t:d.filePath=t,c=(yield this.core.cloudStorage.uploadFile(Object.assign({type:"audio",nosScenes:o?o.sceneName:void 0,nosSurvivalTime:o?o.expireTime:void 0},d))).url}return(yield this.core.sendCmd("v2VoiceToText",{tag:{voiceUrl:c,mimeType:i,sampleRate:s,duration:a}},{timeout:3e4})).content.data}))}onPinMessageHandler(e){return this.pinMessageChangeHandler(e,1)}onUnpinMessageHandler(e){return this.pinMessageChangeHandler(e,0)}onUpdatePinMessageHandler(e){return this.pinMessageChangeHandler(e,2)}pinMessageChangeHandler(e,t){var r=e.content.msg,i=e.content.pinInfo;r.conversationId=this.core.V2NIMConversationIdUtil.messageConversationId(r),this.emitPinNotification({pinState:t,message:r,serverExtension:i.serverExtension,createTime:i.createTime,updateTime:i.updateTime,operatorId:i.accid})}emitPinNotification(e){var t={pinState:e.pinState,pin:Object.assign(Object.assign({serverExtension:e.serverExtension||"",operatorId:e.operatorId},e.createTime?{createTime:e.createTime}:{}),{updateTime:e.updateTime,messageRefer:formatMessageRefer(this.core,e.message)})};this.core.V2NIMMessageService.emit("onMessagePinNotification",t)}onAddQuickCommentHandler(e){return this.onQuickCommentNotificationHandler(e,1)}onRemoveQuickCommentHandler(e){return this.onQuickCommentNotificationHandler(e,2)}onQuickCommentNotificationHandler(e,t){var r={operationType:t,quickComment:Object.assign({messageRefer:Object.assign(Object.assign({},e.content.message),{conversationId:this.core.V2NIMConversationIdUtil.messageConversationId(e.content.message)})},e.content.quickComment)};this.core.V2NIMMessageService.emit("onMessageQuickCommentNotification",r)}addCollection(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate(Ea,{params:e},"",!0),(yield this.core.sendCmd("v2AddCollection",{tag:e})).content.data}))}removeCollections(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate(ba,{collections:e},"",!0),(yield this.core.sendCmd("v2RemoveCollections",{tag:e})).content.data}))}updateCollectionExtension(e,t){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate(Na,{collection:e,serverExtension:t},"",!0),(yield this.core.sendCmd("v2UpdateCollectionExtension",{tag:Object.assign(Object.assign({},e),{serverExtension:t})})).content.data}))}getCollectionListByOption(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate(Aa,e,"",!0),(yield this.getCollectionListExByOption(e)).collectionList}))}getCollectionListExByOption(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Aa,e,"",!0);var i=e.beginTime||0,s=e.endTime||0,a=void 0===e.direction?0:e.direction;if(void 0!==(null===(t=e.anchorCollection)||void 0===t?void 0:t.collectionId))if(0===e.direction){if(0===s)s=e.anchorCollection.createTime;else if(s!==e.anchorCollection.createTime)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getCollectionListExByOption: When providing anchorCollection, when sorting in descending order, endTime does not need to be provided, or endTime should be equal to anchorCollection.createTime"}})}else if(0===i)i=e.anchorCollection.createTime;else if(i!==e.anchorCollection.createTime)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getCollectionListExByOption: When providing anchorCollection, when sorting in ascending order, there is no need to provide beginTime, or beginTime should be equal to anchorCollection.createTime"}});if(0!==i&&0!==s&&i>=s)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getCollectionListExByOption: beginTime cannot be greater than endTime"}});var n={beginTime:i,endTime:s,direction:a,limit:e.limit,collectionType:e.collectionType,excludeId:(null===(r=e.anchorCollection)||void 0===r?void 0:r.collectionId)?e.anchorCollection.collectionId:0};n.collectionType||delete n.collectionType;var o=yield this.core.sendCmd("v2GetCollectionListByOption",{tag:n});return{totalCount:o.content.total,collectionList:o.content.data}}))}searchCloudMessages(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Ra,e,"",!0);var t=e.beginTime||0,r=e.endTime||0;if(0!==t&&0!==r&&t>r)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"searchCloudMessages: beginTime cannot be greater than endTime"}});var i=void 0===e.sortOrder?0:e.sortOrder,s=e.conversationLimit||0,a=e.messageLimit||10,n=s>0?"v2SearchCloudMessagesGroupByConversation":"v2SearchCloudMessages",o=yield this.core.sendCmd(n,{tag:Object.assign(Object.assign({},e),{beginTime:t,endTime:r,sortOrder:i,conversationLimit:s,messageLimit:a})});return this.service._filterMessagesByFn(o.content.data.map((e=>completeMessage(this.core,e))))}))}searchCloudMessagesEx(e){var t,r,i;return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(Oa,e,"",!0),e.conversationId&&validateConversationId(this.core.account,e.conversationId),!(null===(t=e.keywordList)||void 0===t?void 0:t.length)&&!(null===(r=e.senderAccountIds)||void 0===r?void 0:r.length)&&!(null===(i=e.messageTypes)||void 0===i?void 0:i.length))throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"searchCloudMessagesEx: keywordList senderAccountIds messageTypes cannot be empty at the same time"}});0===e.searchTimePeriod&&delete e.searchTimePeriod;var s=yield this.core.sendCmd("v2SearchCloudMessagesEx",{tag:Object.assign({},e)}),{msgs:a,hasMore:n,nextPageToken:o}=s.content,c=this.service._filterMessagesByFn(a.map((e=>completeMessage(this.core,e)))).sort(((e,t)=>t.createTime-e.createTime));return{count:a.length,items:formatSearchCloudMessageListEx(this.core,c),hasMore:intToBool(n),nextPageToken:o}}))}getThreadMessageList(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(Da,e,"getThreadMessageList",!0),e.beginTime=e.beginTime||0,e.endTime&&e.beginTime>e.endTime)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"getThreadMessageList: beginTime cannot be greater than endTime"}});var t=yield this.core.sendCmd("v2GetThreadMessageList",{messageRefer:e.messageRefer,tag:{beginTime:e.beginTime,endTime:e.endTime,limit:e.limit,reverse:1===e.direction?1:0,excludeMessageServerId:e.excludeMessageServerId}}),{message:r,replyResult:i,replyList:s}=t.content,a=completeMessage(this.core,r),n=s.map((e=>completeMessage(this.core,e)));return n=this.service._filterMessagesByFn(n),n=this.service._filterMessageByClearTime(a.conversationId,n),{message:a,timestamp:i.timestamp,replyCount:i.total,replyList:n}}))}},"V2NIMMessageExtendUtil"),NIM.registerService(class V2NIMSignallingServiceImpl extends V2Service{constructor(e,t={}){super("V2NIMSignallingService",e),this.config={compatibleWithV1:!0},this.channels={},this.timer=0,this.pollingInterval=12e4,"v2"===this.core.options.apiVersion&&(registerParser({cmdMap:_c,cmdConfig:Nc}),this.setOptions(t))}reset(){this.timer=0,this.channels={}}setOptions(e){var t;(null===(t=this.core.signaling)||void 0===t?void 0:t.name)?this.config.compatibleWithV1=!0:this.config.compatibleWithV1=!1,this.config=Object.assign(this.config,e)}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;return this.logger.log(`${r}`,...t),super.emit(e,...t)}call(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(Ac,e,"",!0),e.calleeAccountId===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"You cannot call yourself"}});var r=void 0!==e.pushConfig&&(void 0!==e.pushConfig.pushEnabled&&e.pushConfig.pushEnabled),i=(yield this.core.sendCmd("v2SignallingCall",{tag:Object.assign(Object.assign({},e),{toAccid:e.calleeAccountId,offlineEnabled:void 0===(null===(t=e.signallingConfig)||void 0===t?void 0:t.offlineEnabled)||e.signallingConfig.offlineEnabled,pushConfig:Object.assign(Object.assign({},e.pushConfig||{}),{pushEnabled:r})})})).content.data;return this.channels[i.channelInfo.channelId]=cloneDeep(i.channelInfo),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1)),{callStatus:i.callStatus,rtcInfo:i.rtcInfo,roomInfo:{channelInfo:i.channelInfo,members:i.members}}}))}callSetup(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(Rc,e,"",!0),e.callerAccountId===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"callSetup: cannot be yourself"}});var r=(yield this.core.sendCmd("v2SignallingCallSetup",{tag:Object.assign(Object.assign({},e),{toAccid:e.callerAccountId,offlineEnabled:void 0===(null===(t=e.signallingConfig)||void 0===t?void 0:t.offlineEnabled)||e.signallingConfig.offlineEnabled})})).content.data;return this.channels[r.channelInfo.channelId]=cloneDeep(r.channelInfo),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1)),{callStatus:r.callStatus,rtcInfo:r.rtcInfo,roomInfo:{channelInfo:r.channelInfo,members:r.members}}}))}createRoom(e,t,r){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate(Oc,{channelType:e,channelName:t,channelExtension:r},"",!0),(yield this.core.sendCmd("v2SignallingCreateRoom",{tag:{channelType:e,channelName:t,channelExtension:r}})).content.data.channelInfo}))}delayRoom(e){return __awaiter(this,void 0,void 0,(function*(){this.checkV2();var t=yield this.core.sendCmd("v2SignallingDelayRoom",{tag:{channelId:e}});return{channelInfo:t.content.data.channelInfo,members:t.content.data.members}}))}closeRoom(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(kc,{channelId:e,offlineEnabled:t,serverExtension:r},"",!0),yield this.core.sendCmd("v2SignallingCloseRoom",{tag:{channelId:e,offlineEnabled:void 0!==t&&t,serverExtension:r}})}))}joinRoom(e){var t;return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(wc,e,"",!0);var r=(yield this.core.sendCmd("v2SignallingJoinRoom",{tag:Object.assign(Object.assign({},e),{offlineEnabled:void 0===(null===(t=e.signallingConfig)||void 0===t?void 0:t.offlineEnabled)||e.signallingConfig.offlineEnabled})})).content.data;this.channels[r.channelInfo.channelId]=cloneDeep(r.channelInfo),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1));var{channelInfo:i,members:s,rtcInfo:a}=r;return{roomInfo:{channelInfo:i,members:s},rtcInfo:a}}))}leaveRoom(e,t,r){return __awaiter(this,void 0,void 0,(function*(){this.checkV2(),validate(Pc,{channelId:e,offlineEnabled:t,serverExtension:r},"",!0),yield this.core.sendCmd("v2SignallingLeaveRoom",{tag:{channelId:e,offlineEnabled:void 0!==t&&t,serverExtension:r}}),delete this.channels[e]}))}invite(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(this.checkV2(),validate(Vc,e,"",!0),e.inviteeAccountId===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"invite: cannot be yourself"}});var r=void 0!==e.pushConfig&&(void 0!==e.pushConfig.pushEnabled&&e.pushConfig.pushEnabled);return(yield this.core.sendCmd("v2SignallingInvite",{tag:Object.assign(Object.assign({},e),{toAccid:e.inviteeAccountId,offlineEnabled:void 0===(null===(t=e.signallingConfig)||void 0===t?void 0:t.offlineEnabled)||e.signallingConfig.offlineEnabled,pushConfig:Object.assign(Object.assign({},e.pushConfig||{}),{pushEnabled:r})})})).content.data}))}cancelInvite(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkV2(),validate(Lc,e,"",!0),(yield this.core.sendCmd("v2SignallingCancelInvite",{tag:Object.assign(Object.assign({},e),{toAccid:e.inviteeAccountId})})).content.data}))}rejectInvite(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(Dc,e,"",!0),e.inviterAccountId===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"rejectInvite: cannot be yourself"}});yield this.core.sendCmd("v2SignallingRejectInvite",{tag:Object.assign(Object.assign({},e),{toAccid:e.inviterAccountId})})}))}acceptInvite(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(xc,e,"",!0),e.inviterAccountId===this.core.account)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:"acceptInvite: cannot be yourself"}});yield this.core.sendCmd("v2SignallingAcceptInvite",{tag:Object.assign(Object.assign({},e),{toAccid:e.inviterAccountId})})}))}sendControl(e,t,r){return __awaiter(this,void 0,void 0,(function*(){validate(Uc,{channelId:e,receiverAccountId:t,serverExtension:r},"",!0),yield this.core.sendCmd("v2SignallingSendControl",{tag:{channelId:e,toAccid:t,serverExtension:r}})}))}getRoomInfoByChannelName(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelName:{type:"string",allowEmpty:!1}},{channelName:e},"",!0);var t=yield this.core.sendCmd("v2SignallingGetRoomInfo",{tag:{channelName:e}}),{members:r,channelInfo:i}=t.content.data;return{channelInfo:i,members:r||[]}}))}aotoDelay(){return __awaiter(this,void 0,void 0,(function*(){var e=Object.keys(this.channels);if(0===e.length)return this.timer&&this.core.timerManager.deleteTimer(this.timer),void(this.timer=0);this.logger.log("v2Signlling:autoDelay",e);for(var t=0;t<e.length;t++){var r=e[t];try{var i=yield this.core.sendCmd("v2SignallingDelayRoom",{tag:{channelId:r}});this.channels[r]=i.content.data.channelInfo}catch(e){this.logger.warn(`signling:autoDelay ${r} failed`,e),delete this.channels[r]}}}))}v2SignallingOnlineEventHandler(e){var t=fillIdServer(e,e.content.data,"msgId","0"),r=t.msgId;!this.config.compatibleWithV1&&r&&parseInt(r)&&this.core.sendCmd("v2SignallingBatchMarkRead",{sid:15,cid:11,ids:[r]}),this.handleLeaveRoom(t),this.emit("onOnlineEvent",formatSignalingEvent(t))}v2SignallingMultiClientEventHandler(e){this.handleLeaveRoom(e.content.data),this.emit("onMultiClientEvent",formatSignalingEvent(e.content.data))}v2SignallingOfflineEventHandler(e){if(e.content.datas&&e.content.datas.length>0){if(!this.config.compatibleWithV1){var t=e.content.datas.map((e=>e.msgId));t.length>0&&this.core.sendCmd("v2SignallingBatchMarkRead",{sid:15,cid:11,ids:t})}var r=e.content.datas.map((e=>(this.handleLeaveRoom(e),formatSignalingEvent(e))));this.emit("onOfflineEvent",r)}}v2SignallingSyncChannelsHandler(e){if(this.timer=0,this.channels={},e.content.datas&&e.content.datas.length>0){var t=e.content.datas;t.forEach((e=>{var t=e.channelInfo.channelId;this.channels[t]=cloneDeep(e.channelInfo)})),this.timer||(this.timer=this.core.timerManager.addTimer(this.aotoDelay.bind(this),this.pollingInterval,-1)),this.emit("onSyncRoomInfoList",t)}}handleLeaveRoom(e){switch(e.attach.type){case 1:case 7:case 9:delete this.channels[e.channelInfo.channelId]}}},"V2NIMSignallingService"),NIM.registerService(class V2NIMSubscriptionServiceImpl extends V2Service{constructor(e){super("V2NIMSubscriptionService",e),"v2"===this.core.options.apiVersion&&registerParser({cmdMap:Bc,cmdConfig:Gc})}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;return this.logger.log(`${r}`,...t),super.emit(e,...t)}subscribeUserStatus(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkLogin(),this.checkV2(),validate(Hc,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 __awaiter(this,void 0,void 0,(function*(){this.checkLogin(),this.checkV2(),validate(zc,e,"",!0);var t=[];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=[]);return t}))}publishCustomUserStatus(e){return __awaiter(this,void 0,void 0,(function*(){return this.checkLogin(),this.checkV2(),validate(Yc,e,"",!0),(yield this.core.sendCmd("v2PublishEvent",{tag:Object.assign(Object.assign({},e),{eventType:1,uniqueId:Me(),duration:e.duration||60,onlineOnly:void 0===e.onlineOnly||e.onlineOnly,multiSync:void 0!==e.multiSync&&e.multiSync})})).content.data}))}queryUserStatusSubscriptions(e){return __awaiter(this,void 0,void 0,(function*(){this.checkLogin(),this.checkV2(),validate({accountIds:{type:"array",required:!0,itemType:"string",max:3e3}},{accountIds:e},"",!0);var t=[];if(e.length>0)for(var r=0;r<e.length;r+=100){var i=yield this.core.sendCmd("v2QuerySubscribeEvent",{tag:{eventType:1},accountIds:e.slice(r,r+100)});t=t.concat(i.content.data.map((e=>({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:r,extensionReceived:i}=t,s=__rest(t,["eventType","extensionReceived"]);1===r?this.emit("onUserStatusChanged",[Object.assign(Object.assign({},s),{extension:i})]):this.logger.log("v2OnUserStatusChangeHandler eventType = ",r,"msgEvent = ",t)}v2OnMultiUserStatusChangeHandler(e){var t=e.content.data.filter((e=>1===e.eventType)).map((e=>{var{eventType:t,extensionReceived:r}=e,i=__rest(e,["eventType","extensionReceived"]);return Object.assign(Object.assign({},i),{extension:r})}));t.length>0&&this.emit("onUserStatusChanged",t)}},"V2NIMSubscriptionService"),NIM.registerService(class V2NIMPassthroughServiceImpl extends V2Service{constructor(e){super("V2NIMPassthroughService",e),registerParser({cmdMap:Wc,cmdConfig:Qc})}emit(e,...t){var r=`${this.name}::emit ${e.toString()}`;return this.logger.log(`${r}`,...t),super.emit(e,...t)}httpProxy(e){return __awaiter(this,void 0,void 0,(function*(){if(validate(Xc,e,"",!0),e.method===qc.V2NIM_PROXY_REQUEST_METHOD_GET&&e.body||e.method===qc.V2NIM_PROXY_REQUEST_METHOD_POST&&!e.body||e.method===qc.V2NIM_PROXY_REQUEST_METHOD_PUT&&!e.body)throw new V2NIMErrorImpl({code:de.V2NIM_ERROR_CODE_INVALID_PARAMETER,detail:{reason:`method ${e.method}, incorrect body`}});return(yield this.core.sendCmd("v2ProxyRequest",{tag:e})).content.data}))}v2ProxyOnRequestHandler(e){var{data:t}=e.content;this.emit("onProxyNotify",t)}},"V2NIMPassthroughService"),NIM.registerService(YSFServiceImpl,"YSFService"),NIM.registerService(class QChatChannelService extends Service{constructor(e,t){super("qchatChannel",e),this.config={autoSubscribe:!1},this.core=e,registerParser({cmdMap:rs,cmdConfig:getCmdConfig$4()}),t&&this.setOptions(t),this.subscribeModuleService=new UnreadInfoModuleService(e),this.subscribeForVisitorService=new SubscribeForVisitorService(e),this.setListener()}setOptions(e){e&&(this.config=Object.assign(this.config,e))}setListener(){this.core.eventBus.on("logined",(e=>{this.subscribeModuleService.resumeSubscribe(e.isAutoReconnect),this.subscribeForVisitorService.resumeSubscribe(e.isAutoReconnect),this.config.autoSubscribe&&(this.subscribeModuleService.autoSubscribeServerMap={},this.subscribeModuleService.autoSubscribeUnreadMap={},this.subscribeModuleService.autoSubscribe())})),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLoginSucc",(e=>{this.subscribeModuleService.resumeSubscribe(e.isReconnect),this.subscribeForVisitorService.resumeSubscribe(e.isReconnect),this.config.autoSubscribe&&(this.subscribeModuleService.autoSubscribeServerMap={},this.subscribeModuleService.autoSubscribeUnreadMap={},this.subscribeModuleService.autoSubscribe())})),this.core.eventBus.on("qchatChannel/changeUnread",this.subscribeModuleService.changeUnread.bind(this.subscribeModuleService)),this.core.eventBus.on("qchatChannel/updateUnreads",this.subscribeModuleService.updateUnreads.bind(this.subscribeModuleService)),this.core.eventBus.on("qchatChannel/cacheSubscribe",this.subscribeModuleService.cacheSubscribe.bind(this.subscribeModuleService)),this.core.eventBus.on("qchatChannel/clearUnreadCountByServers",this.subscribeModuleService.clearUnreadCountByServers.bind(this.subscribeModuleService)),this.core.eventBus.on("qchatChannel/getRoleIdsByServerId",this.subscribeModuleService.getRoleIdsByServerId.bind(this.subscribeModuleService)),this.core.eventBus.on("qchatChannel/autoUnSubscribe",(e=>{if(this.logger.log("QChatChannel::enter autoUnSubscribe sysMsg is",e),e.type===bs[bs.channelVisibilityUpdate])this.logger.log("QChatChannel::begin autoUnSubscribe channel key is",`${e.serverId}_${e.channelId}`),this.subscribeModuleService._unSubscribeChannel(e.serverId,e.channelId),this.logger.log("QChatChannel::autoUnSubscribe channel done key is",`${e.serverId}_${e.channelId}`);else if(e.type===bs[bs.serverEnterLeave]){(this.subscribeModuleService.manualSubscribeServerMap[e.serverId]||this.subscribeModuleService.autoSubscribeServerMap[e.serverId])&&(this.logger.log("QChatChannel::begin autoUnSubscribe server key is",e.serverId),this.subscribeModuleService._unSubscribeServer(e.serverId),this.logger.log("QChatChannel::autoUnSubscribe server done key is",e.serverId));var t=this.subscribeModuleService.unreadServerCount[e.serverId];if(!t)return;this.logger.log("QChatChannel::begin autoUnSubscribe channels key is",Object.keys(t)),Object.keys(t).forEach((t=>{this.subscribeModuleService._unSubscribeChannel(e.serverId,t)})),this.logger.log("QChatChannel::autoUnSubscribe channels done key is",Object.keys(t))}})),this.core.eventBus.on("qchatChannel/serverIdentifyChange",(e=>{this.subscribeModuleService.changeCacheServerRoleIds(e)}))}createChannel(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Xi)},name:{type:"string",required:!1},topic:{type:"string",required:!1},ext:{type:"string",required:!1},visitorMode:{type:"number",required:!1}},e),formatChannel((yield this.core.sendCmd("qchatCreateChannel",{channelInfo:Object.assign(Object.assign({},e),{type:Xi[e.type]}),antispamTag:generateAntispamTag(e)})).content.channelInfo)}))}deleteChannel(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatDeleteChannel",e)}))}updateChannel(e){return __awaiter(this,void 0,void 0,(function*(){validate({channelId:{type:"string",min:1},serverId:{type:"string",required:!1},type:{type:"enum",values:getEnumKeys(Xi),required:!1},name:{type:"string",required:!1},topic:{type:"string",required:!1},ext:{type:"string",required:!1},visitorMode:{type:"number",required:!1}},e);var t=e;return e.type&&(t.type=Xi[e.type]),formatChannel((yield this.core.sendCmd("qchatUpdateChannel",{channelInfo:t,antispamTag:generateAntispamTag(e)})).content.channelInfo)}))}getChannels(e){return __awaiter(this,void 0,void 0,(function*(){return validate({channelIds:{type:"array",itemType:"string",min:1}},e),formatChannels((yield this.core.sendCmd("qchatGetChannels",e)).content.channelList)}))}getChannelsByPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},timetag:{type:"number"},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetChannelsByPage",{qchatGetChannelListPageTag:Object.assign({limit:100},e)}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatChannels(r)}}))}getMembersByPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},timetag:{type:"number"},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetMembersByPage",{qchatGetMembersByPageTag:e}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatMembers$1(r)}}))}updateWhiteBlackRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},roleId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Ki)},opeType:{type:"enum",values:getEnumKeys(Qi)}},e),yield this.core.sendCmd("qchatUpdateWhiteBlackRole",{qchatUpdateWhiteBlackRoleTag:Object.assign(Object.assign({},e),{type:Ki[e.type],opeType:Qi[e.opeType]})})}))}getWhiteBlackRolesPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Ki)},timetag:{type:"number"},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetWhiteBlackRolesPage",{qchatGetWhiteBlackRolesPageTag:Object.assign(Object.assign({},e),{type:Ki[e.type]})}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatRoles(r)}}))}updateWhiteBlackMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Ki)},opeType:{type:"enum",values:getEnumKeys(Qi)},toAccids:{type:"array",itemType:"string",min:1}},e),yield this.core.sendCmd("qchatUpdateWhiteBlackMembers",{qchatUpdateWhiteBlackMembersTag:Object.assign(Object.assign({},e),{type:Ki[e.type],opeType:Qi[e.opeType],toAccids:JSON.stringify(e.toAccids)})})}))}getWhiteBlackMembersPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Ki)},timetag:{type:"number"},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetWhiteBlackMembersPage",{qchatGetWhiteBlackMembersPageTag:Object.assign(Object.assign({limit:100},e),{type:Ki[e.type]})}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatMembers$1(r)}}))}getExistingWhiteBlackRoles(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Ki)},roleIds:{type:"array",itemType:"string",min:1}},e);var t=yield this.core.sendCmd("qchatGetExistingWhiteBlackRoles",{qchatGetExistingWhiteBlackRolesTag:Object.assign(Object.assign({},e),{type:Ki[e.type],roleIds:JSON.stringify(e.roleIds)})}),{datas:r}=t.content;return{datas:formatRoles(r)}}))}getExistingWhiteBlackMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},channelId:{type:"string",min:1},type:{type:"enum",values:getEnumKeys(Ki)},accids:{type:"array",itemType:"string",min:1}},e);var t=yield this.core.sendCmd("qchatGetExistingWhiteBlackMembers",{qchatGetExistingWhiteBlackMembersTag:Object.assign(Object.assign({},e),{type:Ki[e.type],accids:JSON.stringify(e.accids)})}),{datas:r}=t.content;return{datas:formatMembers$1(r)}}))}updateCategoryInfoOfChannel(e){return __awaiter(this,void 0,void 0,(function*(){return validate({channelId:{type:"string",min:1},categoryId:{type:"string",allowEmpty:!1,required:!1},syncMode:{type:"number",min:0,max:1,required:!1}},e),formatChannel((yield this.core.sendCmd("qchatUpdateCategoryInfoOfChannel",{qchatUpdateCategoryInfoOfChannelTag:e})).content.channelInfo)}))}createChannelCategory(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},name:{type:"string",allowEmpty:!1,required:!1},ext:{type:"string",required:!1},viewMode:{type:"number",min:0,max:1,required:!1}},e),formatChannelCategory((yield this.core.sendCmd("qchatCreateChannelCategory",{qchatCreateChannelCategoryTag:e})).content.QChatChannelCategoryInfo)}))}removeChannelCategory(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatRemoveChannelCategory",e)}))}updateChannelCategory(e){return __awaiter(this,void 0,void 0,(function*(){return validate({categoryId:{type:"string",allowEmpty:!1},name:{type:"string",allowEmpty:!1,required:!1},ext:{type:"string",required:!1},viewMode:{type:"number",min:0,max:1,required:!1}},e),formatChannelCategory((yield this.core.sendCmd("qchatUpdateChannelCategory",{qchatUpdateChannelCategoryTag:e})).content.QChatChannelCategoryInfo)}))}getChannelCategoriesByID(e){return __awaiter(this,void 0,void 0,(function*(){return validate({categoryIds:{type:"array",itemType:"string",min:1}},e),formatChannelCategorys((yield this.core.sendCmd("qchatGetChannelCategoriesByID",e)).content.channelCategoryList)}))}updateChannelCategoryWhiteBlackRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1},serverId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ki)},opeType:{type:"enum",values:getEnumKeys(Qi)},roleId:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatUpdateChannelCategoryWhiteBlackRole",{qchatUpdateChannelCategoryWhiteBlackRoleTag:Object.assign(Object.assign({},e),{type:Ki[e.type],opeType:Qi[e.opeType]})})}))}getChannelCategoryWhiteBlackRolesPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1},serverId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ki)},timetag:{type:"number",min:0},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetChannelCategoryWhiteBlackRolesPage",{qchatGetChannelCategoryWhiteBlackRolesPageTag:Object.assign(Object.assign({},e),{type:Ki[e.type]})}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatRoles(r)}}))}updateChannelCategoryWhiteBlackMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1},serverId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ki)},opeType:{type:"enum",values:getEnumKeys(Qi)},toAccids:{type:"array",itemType:"string",min:1}},e),yield this.core.sendCmd("qchatUpdateChannelCategoryWhiteBlackMembers",{qchatUpdateChannelCategoryWhiteBlackMembersTag:Object.assign(Object.assign({},e),{type:Ki[e.type],opeType:Qi[e.opeType],toAccids:JSON.stringify(e.toAccids)})})}))}getChannelCategoryWhiteBlackMembersPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1},serverId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ki)},timetag:{type:"number",min:0},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetChannelCategoryWhiteBlackMembersPage",{qchatGetChannelCategoryWhiteBlackMembersPageTag:Object.assign(Object.assign({},e),{type:Ki[e.type]})}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatMembers$1(r)}}))}getChannelCategoryWhiteBlackRoles(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1},serverId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ki)},roleIds:{type:"array",itemType:"string",min:1}},e);var t=yield this.core.sendCmd("qchatGetChannelCategoryWhiteBlackRoles",{qchatGetChannelCategoryWhiteBlackRolesTag:Object.assign(Object.assign({},e),{type:Ki[e.type],roleIds:JSON.stringify(e.roleIds)})}),{datas:r}=t.content;return formatRoles(r)}))}getChannelCategoryWhiteBlackMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({categoryId:{type:"string",allowEmpty:!1},serverId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ki)},accids:{type:"array",itemType:"string",min:1}},e);var t=yield this.core.sendCmd("qchatGetChannelCategoryWhiteBlackMembers",{qchatGetChannelCategoryWhiteBlackMembersTag:Object.assign(Object.assign({},e),{type:Ki[e.type],accids:JSON.stringify(e.accids)})}),{datas:r}=t.content;return formatMembers$1(r)}))}getChannelCategoriesPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},timetag:{type:"number",min:0},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetChannelCategoriesPage",{qchatGetChannelCategoriesPageTag:e}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatChannelCategorys(r)}}))}getChannelCategoryChannelsPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},categoryId:{type:"string",allowEmpty:!1},timetag:{type:"number",min:0},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetChannelCategoryChannelsPage",{qchatGetChannelCategoryChannelsPageTag:e}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatChannels(r)}}))}subscribeChannel(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({type:{type:"number",min:1,max:5},opeType:{type:"number",min:1,max:2}},e),this.config.autoSubscribe&&!e.isInternalTrigger&&5!==e.type)throw new CustomError("subscribe server failed, manual subscribe is not allowed in auto subscribe mode",{},403);var t=yield this.subscribeModuleService.subscribe(e);if(t.unreadInfos=formatUnreadInfos(t.unreadInfos),5!==e.type)return 1===e.opeType&&(e.channels=t.unreadInfos.map((e=>({serverId:e.serverId,channelId:e.channelId})))),this.logger.debug("QChatChannel::subscribeChannel:: cacheSubscribe ",e),this.config.autoSubscribe?this.subscribeModuleService.cacheAutoSubscribe(e):this.subscribeModuleService.cacheSubscribe(e),this.subscribeModuleService.updateUnreads(t.unreadInfos),t;this.subscribeModuleService.cacheSubscribe(e)}))}getChannelUnreadInfos(e){return __awaiter(this,void 0,void 0,(function*(){var t=formatUnreadInfos((yield this.core.sendCmd("qchatGetUnreadInfo",e)).content.unreadInfos);return this.subscribeModuleService.updateUnreads(t),t}))}getChannelSearchByPage(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({keyword:{type:"string",allowEmpty:!1},startTime:{type:"number",min:0,required:!1},endTime:{type:"number",min:1,required:!1},order:{type:"enum",values:getEnumKeys(Zi),required:!1},limit:{type:"number",min:1,required:!1},serverId:{type:"string",required:!1},sort:{type:"enum",values:getEnumKeys(Wi),required:!1},cursor:{type:"string",allowEmpty:!1,required:!1}},e),e.startTime&&e.endTime&&e.startTime>=e.endTime)throw new ValidateError("startTime more than endTime",e,"timeRule");var t=yield this.core.sendCmd("qchatGetChannelSearchByPage",{qchatGetChannelSearchByPageTag:Object.assign(Object.assign({},e),{order:e.order&&Zi[e.order],sort:e.sort&&Wi[e.sort]})}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag),cursor:i.cursor},datas:formatChannels(r)}}))}channelMemberSearch(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},keyword:{type:"string",allowEmpty:!1},limit:{type:"number",min:1,required:!1}},e),formatChannelMembers((yield this.core.sendCmd("qchatChannelMemberSearch",{qchatChannelMemberSearchTag:e})).content.datas)}))}subscribeAsVisitor(e){return __awaiter(this,void 0,void 0,(function*(){return validate({opeType:{type:"number",min:1,max:2},type:{type:"number",required:!1},channels:{type:"array",rules:{serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1}},min:1}},e),yield this.subscribeForVisitorService.subscribeChannelAsVisitor(e)}))}qchatAutoSubscribeNotificationHandler(e){var t=formatUnreadInfos(e.content.unreadInfos),r=e.content.serverIds;this.subscribeModuleService.updateUnreads(t);var i=[];if(r.length){var s={opeType:1};s.channels=r.map((e=>({serverId:e.serverId,channelId:""}))),s.type=4,i.push(s)}if(t.length){var a={opeType:1};a.channels=t.map((e=>({serverId:e.serverId,channelId:e.channelId}))),a.type=1,i.push(a)}if(i.length)for(var n of i)this.subscribeModuleService.cacheAutoSubscribe(n)}},"qchatChannel"),NIM.registerService(class QChatMediaService extends Service{constructor(e,t){super("qchatMedia",e),this.config={},this.tokenExpireTime=24e4,this.getTokenState=!1,this.core=e,registerParser({cmdMap:Us,cmdConfig:getCmdConfig$3()}),t&&this.setOptions(t),this.setListener(),this.tokenExpireTime=24e4,this.channelId="",this.serverId=""}setOptions(e){e&&(this.config=Object.assign(this.config,e),(null==e?void 0:e.neroom)&&this.setNeroom(e.neroom))}setNeroom(e){this.neroom=new e}setListener(){this.core.eventBus.on("disconnect",this._existRomm.bind(this)),this.core.eventBus.on("kicked",this._existRomm.bind(this)),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleLogout",this._existRomm.bind(this)),this.core.eventBus.on("V2NIMLoginService/loginLifeCycleKicked",this._existRomm.bind(this)),this.core.eventBus.on("qchatMedia/serverOrChannelLeave",(e=>__awaiter(this,void 0,void 0,(function*(){(e.type===bs[bs.channelVisibilityUpdate]&&e.channelId===this.channelId||e.type===bs[bs.serverEnterLeave]&&e.serverId===this.serverId)&&this.roomContext&&this.roomContext.roomUuid&&(yield this.disconnectChannel())}))))}_existRomm(){return __awaiter(this,void 0,void 0,(function*(){this.roomContext&&(yield this.disconnectChannel()),this.tokenTimer&&(this.core.timerManager.deleteTimer(this.tokenTimer),this.tokenTimer=void 0)}))}_checkPermission(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.core.qchatRole.checkPermission(e)}))}_checkConnectState(){if("connect"!==this.state)throw new CustomError("QChatMedia::you should connect first")}kickMemberOut(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);try{yield null===(t=this.roomContext)||void 0===t?void 0:t.kickMemberOut(e.accid)}catch(t){throw this.logger.error("QChatMedia::kickMemberOut error params is "+JSON.stringify(e),t),new CustomError("QChatMedia::kickMemberOut error",t)}}))}disconnectChannel(){var e;return __awaiter(this,void 0,void 0,(function*(){this.logger.debug("QChatMedia::disconnect begin disconnect");try{yield null===(e=this.roomContext)||void 0===e?void 0:e.leaveRoom()}catch(e){this.logger.error("QChatMedia::disconnect error",e)}this.authService&&(yield this.authService.logout()),this._setStateInit(),this.core.emit("qchatMediaDisconnect"),this.core.qchatMedia.emit("qchatMediaDisconnect")}))}_setStateInit(){this.logger.debug("QChatMedia::disconnect end"),this.roomContext=void 0,this.rtcController=void 0,this.state="init",this.tokenTimer&&(this.core.timerManager.deleteTimer(this.tokenTimer),this.tokenTimer=void 0),this.channelId="",this.serverId=""}muteAudio(e){var t,r,i,s,a;return __awaiter(this,void 0,void 0,(function*(){if(this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e),(null===(t=this.roomContext)||void 0===t?void 0:t.localMember.uuid)===e.accid)try{yield null===(r=this.rtcController)||void 0===r?void 0:r.muteMyAudio()}catch(e){throw this.logger.error("QChatMedia::muteAudio error",e),new CustomError("QChatMedia::muteAudio error",e)}else try{var n=null===(i=this.roomContext)||void 0===i?void 0:i.roomProperties.audioOff;if(n&&"offNotAllowSelfOn"===(null===(s=n.value)||void 0===s?void 0:s.split("_")[0]))if(!(yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneMicrophone"})))return void this.logger.error("QChatMedia::unMuteAudio not allow open auido");yield null===(a=this.rtcController)||void 0===a?void 0:a.muteMemberAudio(e.accid)}catch(t){throw this.logger.error("QChatMedia::muteAudio error params is "+JSON.stringify(e),t),new CustomError("QChatMedia::muteAudio error",t)}}))}unMuteAudio(e){var t,r,i,s,a;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);var n=null===(t=this.roomContext)||void 0===t?void 0:t.roomProperties.audioOff;if(n&&"offNotAllowSelfOn"===(null===(r=n.value)||void 0===r?void 0:r.split("_")[0])&&!(yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneMicrophone"})))return void this.logger.error("QChatMedia::unMuteAudio not allow open auido");if((null===(i=this.roomContext)||void 0===i?void 0:i.localMember.uuid)===e.accid)try{yield null===(s=this.rtcController)||void 0===s?void 0:s.unmuteMyAudio()}catch(e){throw this.logger.error("QChatMedia::unMuteAudio error",e),new CustomError("QChatMedia::unMuteAudio error",e)}else try{yield null===(a=this.rtcController)||void 0===a?void 0:a.unmuteMemberAudio(e.accid)}catch(t){throw this.logger.error("QChatMedia::unMuteAudio error params is "+JSON.stringify(e),t),new CustomError("QChatMedia::unMuteAudio error",t)}}))}muteVideo(e){var t,r,i,s,a;return __awaiter(this,void 0,void 0,(function*(){if(this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e),(null===(t=this.roomContext)||void 0===t?void 0:t.localMember.uuid)===e.accid)try{yield null===(r=this.rtcController)||void 0===r?void 0:r.muteMyVideo()}catch(e){throw this.logger.error("QChatMedia::muteVideo error",e),new CustomError("QChatMedia::muteVideo error",e)}else try{var n=null===(i=this.roomContext)||void 0===i?void 0:i.roomProperties.videoOff;if(n&&"offNotAllowSelfOn"===(null===(s=n.value)||void 0===s?void 0:s.split("_")[0]))if(!(yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneCamera"})))return void this.logger.error("QChatMedia::unMuteVideo not allow open video");yield null===(a=this.rtcController)||void 0===a?void 0:a.muteMemberVideo(e.accid)}catch(t){throw this.logger.error("QChatMedia::muteVideo error params is "+JSON.stringify(e),t),new CustomError("QChatMedia::muteVideo error",t)}}))}unMuteVideo(e){var t,r,i,s,a;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);var n=null===(t=this.roomContext)||void 0===t?void 0:t.roomProperties.videoOff;if(n&&"offNotAllowSelfOn"===(null===(r=n.value)||void 0===r?void 0:r.split("_")[0])&&!(yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneCamera"})))return void this.logger.error("QChatMedia::unMuteVideo not allow open video");if((null===(i=this.roomContext)||void 0===i?void 0:i.localMember.uuid)===e.accid)try{yield null===(s=this.rtcController)||void 0===s?void 0:s.unmuteMyVideo()}catch(e){throw this.logger.error("QChatMedia::unMuteVideo error",e),new CustomError("QChatMedia::unMuteVideo error",e)}else try{null===(a=this.rtcController)||void 0===a||a.unmuteMemberVideo(e.accid)}catch(e){throw this.logger.error("QChatMedia::unMuteVideo error",e),new CustomError("QChatMedia::unMuteVideo error",e)}}))}startScreenShare(){var e;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState();try{null===(e=this.rtcController)||void 0===e||e.startScreenShare()}catch(e){throw this.logger.error("QChatMedia::startScreenShare error",e),new CustomError("QChatMedia::startScreenShare error",e)}}))}stopScreenShare(){var e;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState();try{null===(e=this.rtcController)||void 0===e||e.stopScreenShare()}catch(e){throw this.logger.error("QChatMedia::stopScreenShare error",e),new CustomError("QChatMedia::stopScreenShare error",e)}}))}stopMemberScreenShare(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);try{null===(t=this.rtcController)||void 0===t||t.stopMemberScreenShare(e.accid)}catch(e){throw this.logger.error("QChatMedia::stopMemberScreenShare error",e),new CustomError("QChatMedia::stopMemberScreenShare error",e)}}))}subscribeRemoteVideoStream(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1},streamType:{type:"number",allowEmpty:!1,min:0,max:1}},e);try{null===(t=this.rtcController)||void 0===t||t.subscribeRemoteVideoStream(e.accid,e.streamType)}catch(e){throw this.logger.error("QChatMedia::subscribeRemoteVideoStream error",e),new CustomError("QChatMedia::subscribeRemoteVideoStream error",e)}}))}unSubscribeRemoteVideoStream(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1},streamType:{type:"number",allowEmpty:!1,min:0,max:1}},e);try{null===(t=this.rtcController)||void 0===t||t.unsubscribeRemoteVideoStream(e.accid,e.streamType)}catch(e){throw this.logger.error("QChatMedia::unSubscribeRemoteVideoStream error",e),new CustomError("QChatMedia::unSubscribeRemoteVideoStream error",e)}}))}setupVideoCanvas(e){var t;if(this._checkConnectState(),(null===(t=this.roomContext)||void 0===t?void 0:t.localMember.uuid)===e.accid)try{return this.rtcController.setupLocalVideoCanvas(e.videoView)}catch(e){throw this.logger.error("QChatMedia::setupVideoCanvas error",e),new CustomError("QChatMedia::setupVideoCanvas error",e)}else try{return this.rtcController.setupRemoteVideoCanvas(e.videoView,e.accid)}catch(e){throw this.logger.error("QChatMedia::setupVideoCanvas error",e),new CustomError("QChatMedia::setupVideoCanvas error",e)}}setupRemoteVideoSubStreamCanvas(e){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);try{return this.rtcController.setupRemoteVideoSubStreamCanvas(e.videoView,e.accid)}catch(e){throw this.logger.error("QChatMedia::setupRemoteVideoSubStreamCanvas error",e),new CustomError("QChatMedia::setupRemoteVideoSubStreamCanvas error",e)}}getScreenSharingUserUuid(){this._checkConnectState();try{return this.rtcController.getScreenSharingUserUuid()}catch(e){throw this.logger.error("QChatMedia::getScreenSharingUserUuid error",e),new CustomError("QChatMedia::getScreenSharingUserUuid error",e)}}initQChatMedia(e){return __awaiter(this,void 0,void 0,(function*(){if(this.neroom)if(void 0===this.state){try{this.neroom.initialize({appKey:this.core.options.appkey,serverConfig:e.serverConfig})}catch(e){throw this.logger.error("QChatMedia::initQChatMedia error",e),new CustomError("QChatMedia::initQChatMedia error",e)}this.authService=this.neroom.authService,this.roomService=this.neroom.roomService,this.messageChannelService=this.neroom.messageChannelService,this.state="init"}else this.logger.error("QChatMedia::init::you already init QChatMedia");else this.logger.warn("QChatMedia::init::you should import neroom SDK")}))}loginByIM(){var e;return __awaiter(this,void 0,void 0,(function*(){if("init"===this.state){var t=yield this._getToken(),r=get(this.core,"options.token")||get(this.core,"V2NIMLoginService.token");try{yield null===(e=this.authService)||void 0===e?void 0:e.loginByIM(this.core.account,t,r)}catch(e){throw this.logger.error("QChatMedia::loginByIM error",e),new CustomError("QChatMedia::loginByIM error",e)}this.state="login"}else this.logger.error("QChatMedia::connect::you should init before login")}))}_getToken(){var e;return __awaiter(this,void 0,void 0,(function*(){this.logger.log("QChatMedia::getToken begin getToken");var t=yield this.core.sendCmd("qchatGetNeroomToken",{qchatGetNeroomTokenTag:{neroomDeviceId:null===(e=this.neroom)||void 0===e?void 0:e.deviceId}}),{token:r,expire:i}=t.content.neroomToken;return this.logger.log(`QChatMedia::getToken success token is ${r},expire is ${i} `),this.tokenTimer||(this.logger.debug(`QChatMedia::getToken set token timer,expire is ${1e3*i-this.tokenExpireTime} `),this.tokenTimer=this.core.timerManager.addTimer((()=>__awaiter(this,void 0,void 0,(function*(){this.tokenTimer&&this.core.timerManager.deleteTimer(this.tokenTimer),this.tokenTimer=void 0;var e=yield this._getToken();this.authService&&this.authService.renewToken(e)}))),1e3*i-this.tokenExpireTime)),r}))}connectChannel(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){if(void 0!==this.state){"init"===this.state&&(yield this.loginByIM()),this.serverId=e.serverId,this.channelId=e.channelId;try{yield null===(t=this.roomService)||void 0===t?void 0:t.joinRoom({roomUuid:e.channelId,role:"qchatAudience",userName:this.core.account,initialProperties:{}},{})}catch(e){throw this.logger.error("QChatMedia::connectChannel error",e),new CustomError("QChatMedia::connectChannel error",e)}var i=null===(r=this.roomService)||void 0===r?void 0:r.getRoomContext(e.channelId);i?(this.roomContext=i,this.rtcController=this.roomContext.rtcController,this.state="connect",yield this.rtcController.joinRtcChannel(),this.core.emit("connectChannel"),this.core.qchatMedia.emit("connectChannel")):this.logger.error("QChatMedia::connect room not exited")}else this.logger.error("QChatMedia::connect::you should init before login")}))}updateRTCChannelInfo(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},limit:{type:"number",allowEmpty:!1}},e),yield this.core.sendCmd("qchatUpdateRTCChannelConfig",{RTCChannelConfig:Object.assign(Object.assign({},e),{audio:JSON.stringify(e.audio),video:JSON.stringify(e.video)})})}))}getRTCChannelInfo(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1}},e),function formatRTCChannelConfig(e){try{e.audio&&(e.audio=JSON.parse(e.audio))}catch(e){throw new ValidateError('result "audio" JSON parse error',{key:"audio"},"JSON parse error")}try{e.video&&(e.video=JSON.parse(e.video))}catch(e){throw new ValidateError('result "video" JSON parse error',{key:"video"},"JSON parse error")}return format(Ls,e)}((yield this.core.sendCmd("qchatGetRTCChannelConfig",{qchatGetRTCChannelConfigTag:e})).content.RTCChannelConfig)}))}getRTCChannelOnlineMembers(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1}},e),formatMembers((yield this.core.sendCmd("qchatGetRTCChannelMembers",{qchatGetRTCChannelMembersTag:e})).content.memberList)}))}addRTCChannelListener(){var e,t;this._checkConnectState();try{null===(e=this.authService)||void 0===e||e.addAuthListener({onAuthEvent:e=>__awaiter(this,void 0,void 0,(function*(){if(1026===e&&!this.getTokenState){this.logger.log("QChatMedia::loginByIM token expire,begin get new token "),this.getTokenState=!0;var t=yield this._getToken();this.authService&&(yield this.authService.renewToken(t)),this.getTokenState=!1}}))})}catch(e){throw this.getTokenState=!1,this.logger.error("QChatMedia::loginByIM addAuthListener error",e),new CustomError("QChatMedia::loginByIM addAuthListener error",e)}null===(t=this.roomContext)||void 0===t||t.addRoomListener({onRoomPropertiesChanged:e=>{var t,r,i,s,a,n;if(this.logger.log("QChatMedia::addRTCChannelListener::onRoomPropertiesChanged",e),e.audioOff){var o=null===(t=e.audioOff.value)||void 0===t?void 0:t.split("_")[0];"offNotAllowSelfOn"!==o&&"offAllowSelfOn"!==o||(null===(r=this.roomContext)||void 0===r?void 0:r.localMember.isAudioOn)&&(null===(i=this.rtcController)||void 0===i||i.muteMyAudio())}else if(e.videoOff){var c=null===(s=e.videoOff.value)||void 0===s?void 0:s.split("_")[0];"offNotAllowSelfOn"!==c&&"offAllowSelfOn"!==c||(null===(a=this.roomContext)||void 0===a?void 0:a.localMember.isVideoOn)&&(null===(n=this.rtcController)||void 0===n||n.muteMyVideo())}},onRoomPropertiesDeleted:e=>{this.logger.log("QChatMedia::addRTCChannelListener::onRoomPropertiesDeleted",e)},onMemberJoinRtcChannel:e=>{this.logger.log("QChatMedia::addRTCChannelListener::onMemberJoinRTCChannel",e);var t=e.map((e=>e.uuid));this.core.emit("memberJoinRTCChannel",t),this.core.qchatMedia.emit("memberJoinRTCChannel",t)},onMemberLeaveRoom:e=>{this.logger.log("QChatMedia::addRTCChannelListener::onMemberLeaveRoom",e);var t=e.map((e=>e.uuid));this.core.emit("memberLeaveRTCChannel",t),this.core.qchatMedia.emit("memberLeaveRTCChannel",t)},onRoomEnded:e=>{this.authService&&this.authService.logout(),this._setStateInit(),this.logger.log("QChatMedia::addRTCChannelListener::onRoomEnded",e),this.core.emit("RTCChannelEnded",e),this.core.qchatMedia.emit("RTCChannelEnded",e)},onRtcChannelError:e=>{this.logger.log("QChatMedia::addRTCChannelListener::onRtcChannelError",e),"SOCKET_ERROR"===e&&this.disconnectChannel(),this.core.emit("RTCChannelError",e),this.core.qchatMedia.emit("RTCChannelError",e)},onRtcAudioVolumeIndication:e=>{this.logger.log("QChatMedia::addRTCChannelListener::onRtcAudioVolumeIndication",e),this.core.emit("onRtcAudioVolumeIndication",e),this.core.qchatMedia.emit("onRtcAudioVolumeIndication",e)},onMemberAudioMuteChanged:(e,t,r)=>{this.logger.log("QChatMedia::addRTCChannelListener::onMemberAudioMuteChanged",e,t),this.core.emit("memberAudioMuteChanged",{memberAccId:e.uuid,mute:t,operateByAccId:r.uuid}),this.core.qchatMedia.emit("memberAudioMuteChanged",{memberAccId:e.uuid,mute:t,operateByAccId:r.uuid})},onMemberScreenShareStateChanged:(e,t,r)=>{this.logger.log("QChatMedia::addRTCChannelListener::onMemberScreenShareStateChanged",e,t),this.core.emit("memberScreenShareStateChanged",{memberAccId:e.uuid,isSharing:t,operateByAccId:r.uuid}),this.core.qchatMedia.emit("memberScreenShareStateChanged",{memberAccId:e.uuid,isSharing:t,operateByAccId:r.uuid})},onMemberVideoMuteChanged:(e,t,r)=>{this.logger.log("QChatMedia::addRTCChannelListener::onMemberVideoMuteChanged",e,t),this.core.emit("memberVideoMuteChanged",{memberAccId:e.uuid,mute:t,operateByAccId:r.uuid}),this.core.qchatMedia.emit("memberVideoMuteChanged",{memberAccId:e.uuid,mute:t,operateByAccId:r.uuid})}})}enumCameraDevices(){return this._checkConnectState(),this.rtcController.enumCameraDevices().then((e=>e.data),(e=>{throw this.logger.error("QChatMedia::enumCameraDevices error",e),new CustomError("QChatMedia::enumCameraDevices error",e)}))}enumPlayoutDevices(){return this._checkConnectState(),this.rtcController.enumPlayoutDevices().then((e=>e.data),(e=>{throw this.logger.error("QChatMedia::enumPlayoutDevices error",e),new CustomError("QChatMedia::enumPlayoutDevices error",e)}))}enumRecordDevices(){return this._checkConnectState(),this.rtcController.enumRecordDevices().then((e=>e.data),(e=>{throw this.logger.error("QChatMedia::enumRecordDevices error",e),new CustomError("QChatMedia::enumRecordDevices error",e)}))}removeRTCChannelListener(){var e,t;this._checkConnectState(),null===(e=this.roomContext)||void 0===e||e.removeRoomListener({}),null===(t=this.authService)||void 0===t||t.removeAuthListener({})}setSelectedCameraDevice(e){return this._checkConnectState(),validate({deviceId:{type:"string",allowEmpty:!1}},e),this.rtcController.setSelectedCameraDevice(e.deviceId).then((e=>e.data),(e=>{throw this.logger.error("QChatMedia::setSelectedCameraDevice error",e),new CustomError("QChatMedia::setSelectedCameraDevice error",e)}))}setSelectedPlayoutDevice(e){return this._checkConnectState(),validate({deviceId:{type:"string",allowEmpty:!1}},e),this.rtcController.setSelectedPlayoutDevice(e.deviceId).then((e=>e.data),(e=>{throw this.logger.error("QChatMedia::setSelectedPlayoutDevice error",e),new CustomError("QChatMedia::setSelectedPlayoutDevice error",e)}))}setSelectedRecordDevice(e){return this._checkConnectState(),validate({deviceId:{type:"string",allowEmpty:!1}},e),this.rtcController.setSelectedRecordDevice(e.deviceId).then((e=>e.data),(e=>{throw this.logger.error("QChatMedia::setSelectedRecordDevice error",e),new CustomError("QChatMedia::setSelectedRecordDevice error",e)}))}getRTCMembers(){return this._checkConnectState(),this.roomContext.remoteMembers.filter((e=>e.isInRtcChannel)).map((e=>({accid:e.uuid,isAudioOn:!!e.isAudioOn,isVideoOn:!!e.isVideoOn,isSharingScreen:!!e.isSharingScreen,properties:e.properties})))}subscribeRemoteVideoSubStream(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);try{null===(t=this.rtcController)||void 0===t||t.subscribeRemoteVideoSubStream(e.accid)}catch(e){throw this.logger.error("QChatMedia::subscribeRemoteVideoSubStream error",e),new CustomError("QChatMedia::subscribeRemoteVideoSubStream error",e)}}))}unsubscribeRemoteVideoSubStream(e){var t;return __awaiter(this,void 0,void 0,(function*(){this._checkConnectState(),validate({accid:{type:"string",allowEmpty:!1}},e);try{null===(t=this.rtcController)||void 0===t||t.unsubscribeRemoteVideoSubStream(e.accid)}catch(e){throw this.logger.error("QChatMedia::unsubscribeRemoteVideoSubStream error",e),new CustomError("QChatMedia::unsubscribeRemoteVideoSubStream error",e)}}))}muteAllAudio(){var e;return __awaiter(this,void 0,void 0,(function*(){if(this._checkConnectState(),yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneMicrophone"}))try{null===(e=this.roomContext)||void 0===e||e.updateRoomProperty("audioOff",JSON.stringify({value:`offNotAllowSelfOn_${(new Date).getTime()}`}))}catch(e){throw this.logger.error("QChatMedia::muteAllAudio error",e),new CustomError("QChatMedia::muteAllAudio error",e)}else this.logger.error("QChatMedia::connect::auth your have not RTCChannelOpenCloseEveryoneMicrophone auth")}))}muteAllVideo(){var e;return __awaiter(this,void 0,void 0,(function*(){if(this._checkConnectState(),yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneCamera"}))try{null===(e=this.roomContext)||void 0===e||e.updateRoomProperty("videoOff",JSON.stringify({value:`offNotAllowSelfOn_${(new Date).getTime()}`}))}catch(e){throw this.logger.error("QChatMedia::muteAllVideo error",e),new CustomError("QChatMedia::muteAllVideo error",e)}else this.logger.error("QChatMedia::connect::auth your have not RTCChannelOpenCloseEveryoneCamera auth")}))}unMuteAllAudio(){var e;return __awaiter(this,void 0,void 0,(function*(){if(this._checkConnectState(),yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneMicrophone"}))try{null===(e=this.roomContext)||void 0===e||e.updateRoomProperty("audioOff",JSON.stringify({value:`disable_${(new Date).getTime()}`}))}catch(e){throw this.logger.error("QChatMedia::unMuteAllAudio error",e),new CustomError("QChatMedia::unMuteAllAudio error",e)}else this.logger.error("QChatMedia::connect::auth your have not RTCChannelOpenCloseEveryoneMicrophone auth")}))}unMuteAllVideo(){var e;return __awaiter(this,void 0,void 0,(function*(){if(this._checkConnectState(),yield this._checkPermission({serverId:this.serverId,channelId:this.channelId,auth:"RTCChannelOpenCloseEveryoneCamera"}))try{null===(e=this.roomContext)||void 0===e||e.updateRoomProperty("videoOff",JSON.stringify({value:`disable_${(new Date).getTime()}`}))}catch(e){throw this.logger.error("QChatMedia::unMuteAllVideo error",e),new CustomError("QChatMedia::unMuteAllVideo error",e)}else this.logger.error("QChatMedia::connect::auth your have not RTCChannelOpenCloseEveryoneCamera auth")}))}},"qchatMedia"),NIM.registerService(class QChatMsgService extends Service{constructor(e){super("qchatMsg",e),this.core=e,this.lastChannelIdInMark="",registerParser({cmdMap:qs,cmdConfig:getCmdConfig$2()}),this.notificationModuleService=new NotificationModuleService(e),this.messageModuleService=new MessageModuleService(e),this.extendModuleService=new ExtendModuleService(e)}sendMessage(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(Ts)},ext:{type:"string",required:!1},mentionAll:{type:"boolean",required:!1},mentionAccids:{type:"array",itemType:"string",required:!1},mentionRoleIds:{type:"array",itemType:"string",required:!1,min:1},historyEnable:{type:"boolean",required:!1},pushEnable:{type:"boolean",required:!1}},e),yield this.messageModuleService.sendMessage(e)}))}updateMessage(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({message:{type:"object",rules:{serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number",min:0},body:{type:"string",required:!1},ext:{type:"string",required:!1}}}},e),"number"==typeof e.message.status&&e.message.status<1e4)throw new CustomError("Status should be greater than or equal to 10000");return yield this.messageModuleService.doUpdateMessage(e)}))}resendMessage(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},msgIdClient:{type:"string",allowEmpty:!1}},e),yield this.messageModuleService.resendMessage(e)}))}deleteMessage(e){return __awaiter(this,void 0,void 0,(function*(){validate({message:{type:"object",rules:{serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number",min:0}}}},e);var t=JSON.parse(JSON.stringify(e));return t.message.status=2,yield this.messageModuleService.doUpdateMessage(t)}))}revokeMessage(e){return __awaiter(this,void 0,void 0,(function*(){validate({message:{type:"object",rules:{serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number",min:0}}}},e);var t=JSON.parse(JSON.stringify(e));return t.message=pick(t.message,["serverId","channelId","msgIdServer","time"]),t.message.status=1,yield this.messageModuleService.doUpdateMessage(t)}))}markMessageRead(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string"},channelId:{type:"string"},time:{type:"number",min:0}},e),e.channelId!==this.lastChannelIdInMark&&this.messageModuleService.markMessageRead.flush(),this.lastChannelIdInMark=e.channelId,this.messageModuleService.markMessageRead(e)}))}replyMessage(e){validate({replyMessage:{type:"object",rules:{msgIdServer:{type:"string",allowEmpty:!1}}}},e);var t=e.replyMessage;if(e.serverId!==t.serverId||e.channelId!==t.channelId)throw new CustomError("Forbid replying to message from other server, channel");return this.sendMessage(e)}getMessageHistoryByIds(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},messageReferList:{type:"array",rules:{msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number"}}}},e),yield this.extendModuleService.getMessageHistoryByIds(e)}))}getReferMessages(e){return __awaiter(this,void 0,void 0,(function*(){return validate({message:{type:"object",rules:{msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number"}}},referType:{type:"enum",values:getEnumKeys(Ns),required:!1}},e),yield this.extendModuleService.getReferMessages(e)}))}getThreadMessages(e){return __awaiter(this,void 0,void 0,(function*(){return validate({message:{type:"object",rules:{msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number"}}},messageQueryOption:{type:"object",rules:{beginTime:{type:"number",required:!1},endTime:{type:"number",required:!1},excludeMsgId:{type:"string",required:!1},limit:{type:"number",required:!1},reverse:{type:"boolean",required:!1}}}},e),yield this.extendModuleService.getThreadMessages(e)}))}getThreadRootMessagesMeta(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},threadRootMessages:{type:"array",rules:{msgIdServer:{type:"string",allowEmpty:!1},time:{type:"number"}}}},e),yield this.extendModuleService.getThreadRootMessagesMeta(e)}))}sendSystemNotification(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1,required:!1},attach:{type:"object",required:!1}},e),yield this.notificationModuleService.sendSystemNotification(e)}))}updateSystemNotification(e){return __awaiter(this,void 0,void 0,(function*(){return validate({systemNotification:{type:"object",rules:{msgIdServer:{type:"string",allowEmpty:!1},type:{type:"enum",values:getEnumKeys(bs)},body:{type:"string",required:!1},ext:{type:"string",required:!1},status:{type:"number",required:!1}}}},e),yield this.notificationModuleService.updateSystemNotification(e)}))}markSystemNotificationsRead(e){return __awaiter(this,void 0,void 0,(function*(){validate({systemNotifications:{type:"array",rules:{msgIdServer:{type:"string",allowEmpty:!1},type:{type:"string",allowEmpty:!1}},min:1}},e),yield this.notificationModuleService.markSystemNotificationsRead(e)}))}getHistoryMessage(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},beginTime:{type:"number",min:0,required:!1},endTime:{type:"number",min:0,required:!1},excludeMsgId:{type:"string",allowEmpty:!1,required:!1},limit:{type:"number",min:1,required:!1},reverse:{type:"boolean",required:!1}},e),yield this.messageModuleService.getHistoryMessage(e)}))}getMentionedMeMessages(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},timestamp:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1}},e),yield this.messageModuleService.getMentionedMeMessages(e)}))}areMentionedMeMessages(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({messages:{type:"array",rules:{serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},msgIdServer:{type:"string",allowEmpty:!1}},min:1}},e),!e.messages.every((t=>e.messages[0].serverId===t.serverId)))throw new CustomError("Different serverId",e,10414);if(this.core.qchatChannel.subscribeForVisitorService.isInAutoServers(e.messages[0].serverId))throw new CustomError("Not allowed for visitor",e,10403);return yield this.messageModuleService.areMentionedMeMessages(e.messages)}))}addQuickComment(e){return __awaiter(this,void 0,void 0,(function*(){yield this.extendModuleService.updateQuickComment(e,1)}))}removeQuickComment(e){return __awaiter(this,void 0,void 0,(function*(){yield this.extendModuleService.updateQuickComment(e,2)}))}getQuickComments(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},msgList:{type:"array",rules:{msgIdServer:{type:"string",allowEmpty:!1}},min:1}},e),yield this.extendModuleService.getQuickComments(e)}))}sendTypingEvent(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1}},e),yield this.extendModuleService.sendTypingEvent(e)}))}getLastMessageOfChannels(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelIdList:{type:"array",itemType:"string"}},e),yield this.messageModuleService.getLastMessageOfChannels(e)}))}qchatOnMsgHandler(e){return __awaiter(this,void 0,void 0,(function*(){this.messageModuleService.onMsg(e)}))}qchatOnRecvUnreadInfoHandler(e){return __awaiter(this,void 0,void 0,(function*(){this.messageModuleService.onRecvUnreadInfo(e)}))}qchatOnSysMsgHandler(e){this.notificationModuleService.onSysMsg(e)}qchatMultiSyncMessageReadHandler(e){this.messageModuleService.onMultiSyncRead(e)}qchatMultiSyncSystemNotificationUpdateHandler(e){this.notificationModuleService.onMultiSysMsg(e)}qchatSyncSystemNotificationHandler(e){this.notificationModuleService.onSyncSysMsg(e)}qchatRecvMessageUpdateHandler(e){return __awaiter(this,void 0,void 0,(function*(){this.messageModuleService.onRecvMsgUpdate(e)}))}searchMsgByPage(e){return __awaiter(this,void 0,void 0,(function*(){return validate({keyword:{type:"string",allowEmpty:!1,required:!1},serverId:{type:"string",allowEmpty:!1,required:!0},channelId:{type:"string",allowEmpty:!1,required:!1},fromAccid:{type:"string",allowEmpty:!1,required:!1},fromTime:{type:"number",allowEmpty:!1,required:!1},toTime:{type:"number",allowEmpty:!1,required:!1},msgTypes:{type:"array",itemType:"string",allowEmpty:!1,required:!0},subTypes:{type:"array",itemType:"string",allowEmpty:!1,required:!1},includeSelf:{type:"boolean",allowEmpty:!1,required:!1},order:{type:"enum",values:getEnumKeys(Zi),required:!1},limit:{type:"number",min:0,required:!1},sort:{type:"enum",values:getEnumKeys(Ss),required:!1},cursor:{type:"string",allowEmpty:!1,required:!1}},e),yield this.messageModuleService.messageSearchByPage(e)}))}qchatMultiSyncServersMessageReadHandler(e){this.messageModuleService.onMultiSyncServersRead(e)}},"qchatMsg"),NIM.registerService(class QChatRoleService extends Service{constructor(e){super("qchatRole",e),this.core=e,registerParser({cmdMap:$s,cmdConfig:getCmdConfig()}),this.category=new CategoryModuleService(e)}createServerRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},name:{type:"string",allowEmpty:!1},priority:{type:"number",min:1},icon:{type:"string",required:!1},ext:{type:"string",required:!1}},e),formatRole((yield this.core.sendCmd("qchatCreateServerRole",{serverRole:Object.assign(Object.assign({},generatorRoleForCmd(e)),{type:gs.custom}),antispamTag:generateAntispamTag(e)})).content.serverRole)}))}updateServerRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},name:{type:"string",required:!1},icon:{type:"string",required:!1},ext:{type:"string",required:!1},priority:{type:"number",required:!1},auths:{type:"object",required:!1}},e),formatRole((yield this.core.sendCmd("qchatUpdateServerRole",{updateServerRoleTag:generatorRoleForCmd(e),antispamTag:generateAntispamTag(e)})).content.serverRole)}))}deleteServerRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatDeleteServerRole",e)}))}getServerRoles(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1,required:!1},categoryId:{type:"string",allowEmpty:!1,required:!1},limit:{type:"number",min:1,required:!1},priority:{type:"number",required:!1}},e);var t=yield this.core.sendCmd("qchatGetServerRoles",{getServerRolesTag:generatorRoleForCmd(e)}),r=t.content.serverRoles.filter((e=>1===parseInt(e.isMember)));return r=r.map((e=>e.roleId)),{roles:formatRoles(t.content.serverRoles),isMemberRoles:r}}))}addChannelRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},parentRoleId:{type:"string",allowEmpty:!1}},e),formatRole((yield this.core.sendCmd("qchatAddChannelRole",{channelRole:generatorRoleForCmd(e)})).content.channelRole)}))}getChannelRoles(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},timetag:{type:"number",required:!1},limit:{type:"number",min:1,required:!1}},e),formatRoles((yield this.core.sendCmd("qchatGetChannelRoles",{getChannelRolesTag:e})).content.channelRoles)}))}removeChannelRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatRemoveChannelRole",e)}))}updateChannelRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},auths:{type:"object",required:!1}},e);var t=yield this.core.sendCmd("qchatUpdateChannelRole",{updateChannelRoleTag:generatorRoleForCmd(e)});if(406===t.raw.code)throw new CustomError("No update required",{},406);return formatRole(t.content.channelRole)}))}addMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1}},e),formatRole((yield this.core.sendCmd("qchatAddMemberRole",{memberRole:e})).content.memberRole)}))}getMemberRoles(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},timetag:{type:"number",required:!1},limit:{type:"number",min:1,required:!1}},e),formatRoles((yield this.core.sendCmd("qchatGetMemberRoles",{getMemberRolesTag:e})).content.memberRoles)}))}removeMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1}},e),yield this.core.sendCmd("qchatRemoveMemberRole",{memberRole:e})}))}updateMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1},auths:{type:"object",required:!1}},e);var t=yield this.core.sendCmd("qchatUpdateMemberRole",{updateMemberRoleTag:generatorRoleForCmd(e)});if(406===t.raw.code)throw new CustomError("No update required",{},406);return formatRole(t.content.memberRole)}))}addMembersToServerRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},accids:{type:"array",itemType:"string",min:1}},e);var t=yield this.core.sendCmd("qchatAddMembersToServerRole",Object.assign(Object.assign({},e),{accids:JSON.stringify(e.accids)})),r=get(t,"content.accids.successAccids"),i=get(t,"content.accids.failedAccids");return{successAccids:r?JSON.parse(r):[],failedAccids:i?JSON.parse(i):[]}}))}removeMembersFromServerRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},accids:{type:"array",itemType:"string",min:1}},e);var t=yield this.core.sendCmd("qchatRemoveMembersFromServerRole",Object.assign(Object.assign({},e),{accids:JSON.stringify(e.accids)})),r=get(t,"content.accids.successAccids"),i=get(t,"content.accids.failedAccids");return{successAccids:r?JSON.parse(r):[],failedAccids:i?JSON.parse(i):[]}}))}getMembersFromServerRole(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},timetag:{type:"number",required:!1},accid:{type:"string",allowEmpty:!1,required:!1},limit:{type:"number",min:1,required:!1}},e),formatRoles((yield this.core.sendCmd("qchatGetMembersFromServerRole",{getMembersFromServerRoleTag:e})).content.members)}))}getServerRolesByAccid(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1},timetag:{type:"number",required:!1},limit:{type:"number",min:1,required:!1}},e),formatRoles((yield this.core.sendCmd("qchatGetServerRolesByAccid",{getServerRolesByAccidTag:e})).content.serverRoles)}))}getExistingServerRolesByAccids(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},accids:{type:"array",itemType:"string"}},e);var t=yield this.core.sendCmd("qchatGetExistingServerRolesByAccids",{serverId:e.serverId,accids:JSON.stringify(e.accids)});try{var r=JSON.parse(t.content.serverRoles);return Object.keys(r).forEach((e=>{r[e].forEach(((t,i)=>{r[e][i]=deserialize(t,getDeserializeTag().serverRole)})),r[e]=formatRoles(r[e])})),r}catch(r){throw this.logger.error(`can not parse serverRolesGroupByAccid from ${e.serverId} and ${e.accids}`,t.content.serverRoles),r}}))}getExistingChannelRolesByServerRoleIds(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},roleIds:{type:"array",itemType:"string"}},e),formatRoles((yield this.core.sendCmd("qchatGetExistingChannelRolesByServerRoleIds",{serverId:e.serverId,channelId:e.channelId,roleIds:JSON.stringify(e.roleIds)})).content.channelRoles)}))}getExistingAccidsOfMemberRoles(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1},accids:{type:"array",itemType:"string"}},e);var t=(yield this.core.sendCmd("qchatGetExistingAccidsOfMemberRoles",{serverId:e.serverId,channelId:e.channelId,accids:JSON.stringify(e.accids)})).content.memberRoles;return t&&t.length>0?t.map((e=>e.accid)):[]}))}getExistingAccidsInServerRole(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},roleId:{type:"string",allowEmpty:!1},accids:{type:"array",itemType:"string"}},e);var t=(yield this.core.sendCmd("qchatGetExistingAccidsInServerRole",{serverId:e.serverId,roleId:e.roleId,accids:JSON.stringify(e.accids)})).content.members;return t&&t.length>0?t.map((e=>e.accid)):[]}))}updateServerRolePriorities(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},serverRoles:{type:"array"}},e),formatRoles((yield this.core.sendCmd("qchatUpdateServerRolePriorities",{serverId:e.serverId,serverRoles:e.serverRoles.map((e=>({serverId:e.serverId,roleId:e.roleId,priority:e.priority})))})).content.serverRoles)}))}checkPermission(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1,required:!1},auth:{type:"string"}},e),(yield this.core.sendCmd("qchatCheckPermission",{checkPermissionTag:Object.assign(Object.assign({},e),{auth:fs[e.auth]||e.auth})})).content.checked}))}addChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.addChannelCategoryRole(e)}))}removeChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.removeChannelCategoryRole(e)}))}updateChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.updateChannelCategoryRole(e)}))}getChannelCategoryRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.getChannelCategoryRole(e)}))}addChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.addChannelCategoryMemberRole(e)}))}removeChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.removeChannelCategoryMemberRole(e)}))}updateChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.updateChannelCategoryMemberRole(e)}))}getChannelCategoryMemberRole(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.category.getChannelCategoryMemberRole(e)}))}checkPermissions(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},channelId:{type:"string",allowEmpty:!1,required:!1},auths:{type:"array",itemType:"string"}},e),this.core.logger.log("qchatRole::checkPermission options is",e);var t=yield this.core.sendCmd("qchatCheckPermissions",{checkPermissionsTag:Object.assign(Object.assign({},e),{auths:JSON.stringify(e.auths.map((e=>fs[e]||e)))})});this.core.logger.log("qchatRole::checkPermission result is",t.content);var r={};return t.content.checkPermissionsResult.forEach((e=>{r[e.auth]=e.isAllow})),this.core.logger.log("qchatRole::checkPermission auths is",r),formatRoleAuths(r)}))}},"qchatRole"),NIM.registerService(class QChatServerService extends Service{constructor(e){super("qchatServer",e),this.core=e,registerParser({cmdMap:Fs,cmdConfig:getCmdConfig$1()})}createServer(e){return __awaiter(this,void 0,void 0,(function*(){return validate({icon:{type:"string",required:!1},name:{type:"string",required:!1},ext:{type:"string",required:!1},searchType:{type:"number",required:!1,min:0},searchEnable:{type:"boolean",required:!1},inviteMode:{type:"number",min:0,max:1,required:!1},applyMode:{type:"number",min:0,max:1,required:!1}},e),formatServer((yield this.core.sendCmd("qchatCreateServer",{serverInfo:Object.assign(Object.assign({},e),{searchEnable:!1===e.searchEnable?0:1}),antispamTag:generateAntispamTag(e)})).content.serverInfo)}))}deleteServer(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1}},e),yield this.core.sendCmd("qchatDeleteServer",e)}))}updateServer(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",min:1},icon:{type:"string",required:!1},name:{type:"string",required:!1},ext:{type:"string",required:!1},searchType:{type:"number",required:!1,min:0},searchEnable:{type:"boolean",required:!1},inviteMode:{type:"number",min:0,max:1,required:!1},applyMode:{type:"number",min:0,max:1,required:!1}},e),formatServer((yield this.core.sendCmd("qchatUpdateServer",{serverInfo:Object.assign(Object.assign({},e),{searchEnable:!1===e.searchEnable?0:1}),antispamTag:generateAntispamTag(e)})).content.serverInfo)}))}getServers(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverIds:{type:"array",itemType:"string",min:1}},e),formatServers((yield this.core.sendCmd("qchatGetServers",e)).content.serverList)}))}getServersByPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({timestamp:{type:"number"},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetServersByPage",{tag:e}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatServers(r)}}))}inviteServerMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},accids:{type:"array",itemType:"string",min:1},ps:{type:"string"},params:{type:"object",rules:{ttl:{type:"number"}},required:!1}},e);var t=yield this.core.sendCmd("qchatInviteServerMembers",e),r=t.content.record||{};return{failByOverAccids:t.content.failByOverAccids,failByBanAccids:t.content.failByBanAccids,recordInfo:formatInviteApplyRecord(r)}}))}acceptServerInvite(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1},recordInfo:{type:"object",rules:{requestId:{type:"string",allowEmpty:!1}}}},e),yield this.core.sendCmd("qchatAcceptServerInvite",e)}))}rejectInviteServer(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},accid:{type:"string",min:1},ps:{type:"string"},recordInfo:{type:"object",rules:{requestId:{type:"string",allowEmpty:!1}}}},e),yield this.core.sendCmd("qchatRejectInviteServer",e)}))}applyServerJoin(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",min:1},ps:{type:"string"},params:{type:"object",rules:{ttl:{type:"number"}},required:!1}},e),formatInviteApplyRecord((yield this.core.sendCmd("qchatApplyServerJoin",e)).content.data)}))}acceptServerApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},accid:{type:"string",min:1},recordInfo:{type:"object",rules:{requestId:{type:"string",allowEmpty:!1}}}},e),yield this.core.sendCmd("qchatAcceptServerApply",e)}))}rejectServerApply(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},accid:{type:"string",min:1},ps:{type:"string"},recordInfo:{type:"object",rules:{requestId:{type:"string",allowEmpty:!1}}}},e),yield this.core.sendCmd("qchatRejectServerApply",e)}))}kickServerMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},accids:{type:"array",itemType:"string",min:1}},e),yield this.core.sendCmd("qchatKickServerMembers",e)}))}leaveServer(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1}},e),yield this.core.sendCmd("qchatLeaveServer",e)}))}updateMyMemberInfo(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",min:1},accid:{type:"string",required:!1},nick:{type:"string",allowEmpty:!0,required:!1},avatar:{type:"string",required:!1},ext:{type:"string",required:!1}},e),formatMember$1((yield this.core.sendCmd("qchatUpdateMyMemberInfo",{memberInfo:e,antispamTag:generateAntispamTag(e)})).content.memberInfo)}))}updateServerMemberInfo(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",min:1},accid:{type:"string",min:1},nick:{type:"string",required:!1},avatar:{type:"string",required:!1}},e),formatMember$1((yield this.core.sendCmd("qchatUpdateServerMemberInfo",{memberInfo:e,antispamTag:generateAntispamTag(e)})).content.memberInfo)}))}getServerMembers(e){return __awaiter(this,void 0,void 0,(function*(){validate({accids:{type:"array"}},e);var t=[];if(e.accids.length)for(var r of e.accids)t.push(`${r.serverId}|${r.accid}`);return formatMembers$1((yield this.core.sendCmd("qchatGetServerMembers",{accids:t})).content.accidList)}))}getServerMembersByPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",min:1},timetag:{type:"number"},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetServerMembersByPage",{tag:e}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatMembers$1(r)}}))}subscribeServer(e){var t,r,i,s;return __awaiter(this,void 0,void 0,(function*(){if(validate({type:{type:"number",min:4,max:4,required:!1},opeType:{type:"number",min:1,max:2}},e),(null===(r=null===(t=this.core.qchatChannel)||void 0===t?void 0:t.config)||void 0===r?void 0:r.autoSubscribe)&&!e.isInternalTrigger)throw new CustomError("subscribe server failed, manual subscribe is not allowed in auto subscribe mode",{},403);if(e.type||(e.type=4),e.servers.length){var a=Object.assign(Object.assign({},e),{channels:e.servers.map((e=>({serverId:e.serverId,channelId:""})))}),{failedChannels:n}=yield this.core.qchatChannel.subscribeModuleService.subscribe(a);return(null===(s=null===(i=this.core.qchatChannel)||void 0===i?void 0:i.config)||void 0===s?void 0:s.autoSubscribe)?this.core.qchatChannel.subscribeModuleService.cacheAutoSubscribe(a):this.core.qchatChannel.subscribeModuleService.cacheSubscribe(a),{failedServers:n}}}))}banServerMember(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1}},e),yield this.core.sendCmd("qchatUpdateServerMemberBan",{tag:Object.assign(Object.assign({},e),{opeType:1})})}))}unbanServerMember(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},accid:{type:"string",allowEmpty:!1},ext:{type:"string",required:!1}},e),yield this.core.sendCmd("qchatUpdateServerMemberBan",{tag:Object.assign(Object.assign({},e),{opeType:2})})}))}getBannedMembersByPage(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},timetag:{type:"number",min:0},limit:{type:"number",min:1,required:!1}},e);var t=yield this.core.sendCmd("qchatGetBannedMembersByPage",{tag:e}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag)},datas:formatServerMemberBanInfos(r)}}))}serverSearchByPage(e){return __awaiter(this,void 0,void 0,(function*(){if(validate({keyword:{type:"string",allowEmpty:!1},startTime:{type:"number",min:0,required:!1},endTime:{type:"number",min:0,required:!1},limit:{type:"number",min:1,required:!1},serverType:{type:"array",itemType:"number",min:0,required:!1},order:{type:"enum",values:getEnumKeys(Zi),required:!1},searchType:{type:"enum",values:getEnumKeys(ts)},sort:{type:"enum",values:getEnumKeys(es),required:!1},cursor:{type:"string",allowEmpty:!1,required:!1}},e),e.startTime&&e.endTime&&e.startTime>=e.endTime)throw new ValidateError("startTime more than endTime",e,"timeRule");var t=yield this.core.sendCmd("qchatServerSearchByPage",{tag:Object.assign(Object.assign({},e),{order:e.order&&Zi[e.order],searchType:ts[e.searchType],sort:e.sort&&es[e.sort],serverType:JSON.stringify(e.serverType)})}),{datas:r,listQueryTag:i}=t.content;return{listQueryTag:{hasMore:1==+i.hasMore,nextTimetag:parseInt(i.nextTimetag),cursor:i.cursor},datas:formatServers(r)}}))}serverMemberSearchByPage(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},keyword:{type:"string",allowEmpty:!1},limit:{type:"number",min:1,required:!1}},e),formatMembers$1((yield this.core.sendCmd("qchatServerMemberSearchByPage",{tag:e})).content.members)}))}generateInviteCode(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},ttl:{type:"number",min:0,required:!1}},e),function formatExpireTime(e){return format({expireTime:{type:"number"}},e)}((yield this.core.sendCmd("qchatGenerateInviteCode",{tag:e})).content.data)}))}joinByInviteCode(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverId:{type:"string",allowEmpty:!1},inviteCode:{type:"string",allowEmpty:!1},ps:{type:"string",required:!1}},e),yield this.core.sendCmd("qchatJoinByInviteCode",{tag:e})}))}getInviteApplyRecordOfServer(e){return __awaiter(this,void 0,void 0,(function*(){return validate({serverId:{type:"string",allowEmpty:!1},fromTime:{type:"number",min:0},toTime:{type:"number",min:0},reverse:{type:"boolean",required:!1},limit:{type:"number",min:1,required:!1},cursor:{type:"string",allowEmpty:!1,required:!1}},e),formatInviteApplyRecords((yield this.core.sendCmd("qchatGetInviteApplyRecordOfServer",{tag:Object.assign(Object.assign({},e),{reverse:e.reverse?1:0})})).content.data)}))}getInviteApplyRecordOfSelf(e){return __awaiter(this,void 0,void 0,(function*(){return validate({fromTime:{type:"number",min:0},toTime:{type:"number",min:0},reverse:{type:"boolean",required:!1},limit:{type:"number",min:1,required:!1},cursor:{type:"string",allowEmpty:!1,required:!1}},e),formatInviteApplyRecords((yield this.core.sendCmd("qchatGetInviteApplyRecordOfSelf",{tag:Object.assign(Object.assign({},e),{reverse:e.reverse?1:0})})).content.data)}))}markRead(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverIds:{type:"array",itemType:"string",required:!0}},e);var t=formatClearServersUnread((yield this.core.sendCmd("qchatClearServersUnread",e)).content.clearServersUnreadTag),{successServerIds:r,ackTimestamp:i}=t;return this.logger.log("qchatServer::clearServersUnread:: begin auto clear servers unreadInfo"),this.core.eventBus.emit("qchatChannel/clearUnreadCountByServers",r,i),t}))}subscribeAllChannel(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){if(validate({type:{type:"number",required:!0},serverIds:{type:"array",itemType:"string",required:!0,max:10}},e),null===(r=null===(t=this.core.qchatChannel)||void 0===t?void 0:t.config)||void 0===r?void 0:r.autoSubscribe)throw new CustomError("subscribe channel failed, manual subscribe is not allowed in auto subscribe mode.",{},403);var i=yield this.core.sendCmd("qchatSubscribeChannelsByServers",e,{timeout:3e4});i.content.unreadInfos=formatUnreadInfos(i.content.unreadInfos),i.content.failServerIds=formatFailServerIds(i.content.failServerIds);var s={type:e.type,opeType:1,channels:i.content.unreadInfos.map((e=>({serverId:e.serverId,channelId:e.channelId})))};return this.core.eventBus.emit("qchatChannel/cacheSubscribe",s),this.core.eventBus.emit("qchatChannel/getRoleIdsByServerId",e.serverIds),this.core.eventBus.emit("qchatChannel/updateUnreads",i.content.unreadInfos),i.content}))}enterAsVisitor(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverIds:{type:"array",itemType:"string",min:1}},e);var t=formatFailServerIds((yield this.core.sendCmd("qchatEnterAsVisitor",{tag:{serverIds:JSON.stringify(e.serverIds)}})).content.failServerIds),r=difference(e.serverIds,t);return this.core.qchatChannel.subscribeForVisitorService.cacheServer(r),{failedServers:t}}))}leaveAsVisitor(e){return __awaiter(this,void 0,void 0,(function*(){validate({serverIds:{type:"array",itemType:"string",min:1}},e);var t=formatFailServerIds((yield this.core.sendCmd("qchatLeaveAsVisitor",{tag:{serverIds:JSON.stringify(e.serverIds)}})).content.failServerIds);return difference(e.serverIds,t).forEach((e=>{this.core.qchatChannel.subscribeForVisitorService.deleteServer(e)})),{failedServers:t}}))}subscribeAsVisitor(e){return __awaiter(this,void 0,void 0,(function*(){return validate({opeType:{type:"number",min:1,max:2},type:{type:"number",required:!1},serverIds:{type:"array",itemType:"string",min:1}},e),e.serverIds.length?yield this.core.qchatChannel.subscribeForVisitorService.subscribeServerAsVisitor(e):{failedServers:[]}}))}},"qchatServer"),NIM.registerPrivateService(class EventForwardCenter{constructor(e){this.bindEvents=()=>{this.core.eventBus.on("forwardSend/msg/sendMsg",this.onV1SendMsg),this.core.eventBus.on("forwardSend/msg/recallMsg",this.onV1RecallMsg),this.core.eventBus.on("forwardSend/msg/deleteSelfMsgs",this.onV1DeleteSelfMsgs),this.core.eventBus.on("forwardSend/msgLog/clearHistoryMsgsFromServer",this.onV1ClearHistoryMessage),this.core.eventBus.on("forwardSend/V2NIMMessageService/sendMsg",this.onV2SendMsg),this.core.eventBus.on("forwardSend/V2NIMMessageService/modifyMsg",this.onV2ModifyMsg),this.core.eventBus.on("forwardSend/V2NIMMessageService/revokeMessage",this.onV2RevokeMessage),this.core.eventBus.on("forwardSend/V2NIMMessageService/deleteSelfMsgs",this.onV2DeleteSelfMsgs),this.core.eventBus.on("forwardSend/V2NIMMessageLogService/clearHistoryMessage",this.onV2ClearHistoryMessage),this.core.eventBus.on("forwardSend/team/created",this.onV1TeamCreated),this.core.eventBus.on("forwardSend/team/updateMyMemberInfo",this.onV1TeamMemberUpdate),this.core.eventBus.on("forwardSend/superTeam/updateMyMemberInfo",this.onV1SuperTeamMemberUpdate),this.core.eventBus.on("forwardSend/V2NIMTeamService/updateSelfTeamMemberInfo",this.onV2TeamMemberUpdate),this.core.eventBus.on("forwardSend/team/passTeamApply",((e,t)=>this.onV1TeamApply(e,1,1,t))),this.core.eventBus.on("forwardSend/superTeam/passSuperTeamApply",((e,t)=>{this.onV1TeamApply(e,2,1,t)})),this.core.eventBus.on("forwardSend/team/rejectTeamApply",((e,t)=>{this.onV1TeamApply(e,1,2,t)})),this.core.eventBus.on("forwardSend/superTeam/rejectSuperTeamApply",((e,t)=>{this.onV1TeamApply(e,2,2,t)})),this.core.eventBus.on("forwardSend/team/acceptTeamInvite",((e,t)=>{this.onV1TeamInvite(e,1,1,t)})),this.core.eventBus.on("forwardSend/superTeam/acceptSuperTeamInvite",((e,t)=>{this.onV1TeamInvite(e,2,1,t)})),this.core.eventBus.on("forwardSend/team/rejectTeamInvite",((e,t)=>{this.onV1TeamInvite(e,1,2,t)})),this.core.eventBus.on("forwardSend/superTeam/rejectSuperTeamInvite",((e,t)=>{this.onV1TeamInvite(e,2,2,t)})),this.core.eventBus.on("forwardSend/user/updateBlackList",this.onV1UpdateBlackList),this.core.eventBus.on("forwardSend/user/updateUserInfo",this.onV1UpdateUserInfo),this.core.eventBus.on("forwardSend/user/setMute",this.onV1SetMute),this.core.eventBus.on("forwardSend/friend/addFriend",this.onV1AddFriend),this.core.eventBus.on("forwardSend/friend/deleteFriend",this.onV1DeleteFriend),this.core.eventBus.on("forwardSend/friend/updateFriend",this.onV1UpdateFriend),this.core.eventBus.on("forwardSend/friend/passFriendApply",this.onV1PassFriendApply),this.core.eventBus.on("forwardSend/friend/rejectFriendApply",this.onV1RejectFriendApply)},this.onV1TeamApply=(e,t,r,i)=>{if(i){if(!this.core.V2NIMTeamService.notification.checkIfExpired(i))return;r=3}this.core.eventBus.emit("forwardReceive/V2NIMTeamService/updateTeamActionStatus",{teamId:e.teamId,teamType:t,operatorAccountId:e.from,actionType:0},r)},this.onV1TeamInvite=(e,t,r,i)=>{if(i){if(!this.core.V2NIMTeamService.notification.checkIfExpired(i.code))return;r=3}this.core.eventBus.emit("forwardReceive/V2NIMTeamService/updateTeamActionStatus",{teamId:e.teamId,teamType:t,operatorAccountId:e.from,actionType:2},r)},this.onV1PassFriendApply=(e,t)=>{this.core.eventBus.emit("forwardReceive/V2NIMFriendService/acceptAddApplication",e,t)},this.onV1RejectFriendApply=(e,t,r)=>{this.core.eventBus.emit("forwardReceive/V2NIMFriendService/rejectAddApplication",{applicantAccountId:e,recipientAccountId:this.core.account,operatorAccountId:this.core.account,postscript:t||"",timestamp:this.core.timeOrigin.getNTPTime(),read:!0,status:3},r)},this.onV1SetMute=(e,t)=>{this.core.eventBus.emit("forwardReceive/v2NIMSettingService/setP2PMessageMuteMode",e,t?1:0)},this.onV1UpdateFriend=e=>{this.core.eventBus.emit("forwardReceive/V2NIMFriendService/setFriendInfo",e.account,Object.assign(Object.assign({},"alias"in e?{alias:e.alias}:{}),"ext"in e?{serverExtension:e.ext}:{}))},this.onV1AddFriend=e=>{this.core.eventBus.emit("forwardReceive/V2NIMFriendService/addFriend",e)},this.onV1DeleteFriend=e=>{this.core.eventBus.emit("forwardReceive/V2NIMFriendService/deleteFriend",e)},this.onV1UpdateUserInfo=e=>{var t=deserialize(serialize(e,jt.user),invertSerializeItem(Bo));this.core.eventBus.emit("forwardReceive/V2NIMUserService/updateUserProfile",t)},this.onV1UpdateBlackList=(e,t)=>{this.core.eventBus.emit("forwardReceive/V2NIMUserService/updateBlockList",e,t)},this.onV1TeamCreated=e=>{var t=deserialize(serialize(generateTeam(e),xt.team),invertSerializeItem(za));this.core.eventBus.emit("forwardReceive/V2NIMTeamService/created",t)},this.onV1TeamMemberUpdate=e=>{(e=Object.assign({},e)).type&&(e.type={normal:0,owner:1,manager:2}[e.type]);var t=deserialize(serialize(e,xt.teamMember),invertSerializeItem(Ya));t.teamType=1,this.core.eventBus.emit("forwardReceive/V2NIMTeamService/updateSelfTeamMemberInfo",t)},this.onV1SuperTeamMemberUpdate=e=>{(e=Object.assign({},e)).type&&(e.type={normal:0,owner:1,manager:2}[e.type]);var t=deserialize(serialize(e,hi.superTeamMember),invertSerializeItem(Ja));t.teamType=2,this.core.eventBus.emit("forwardReceive/V2NIMTeamService/updateSelfTeamMemberInfo",t)},this.onV2TeamMemberUpdate=e=>{var t=e.teamType,r=serialize(e,Ya);if(2===t){var i=deserialize(r,invertSerializeItem(hi.superTeamMember));this.core.eventBus.emit("forwardReceive/superTeam/updateMyMemberInfo",i)}else{var s=deserialize(r,invertSerializeItem(xt.teamMember));this.core.eventBus.emit("forwardReceive/team/updateMyMemberInfo",s)}},this.onV1SendMsg=e=>{var t=deserialize(serialize(e,tr),an);(t=completeMessage(this.core,t)).sendingState="sending"===e.status?3:"sent"===e.status?1:2,this.core.eventBus.emit("forwardReceive/V2NIMMessageService/sendMsg",t)},this.onV2SendMsg=e=>{var t=deserialize(serialize(e,sn),invertSerializeItem(tr));t.status=3===e.sendingState?"sending":1===e.sendingState?"sent":"sendFailed",this.core.eventBus.emit("forwardReceive/msg/sendMsg",t)},this.onV2ModifyMsg=e=>{var t=deserialize(serialize(e,sn),invertSerializeItem(tr));this.core.eventBus.emit("forwardReceive/msg/modifyMsg",t)},this.onV1RecallMsg=e=>{e.deleteMsgCreatetime=e.time;var t=deserialize(serialize(e,rr.recallMsgTag),invertSerializeItem(dn));this.core.eventBus.emit("forwardReceive/V2NIMMessageService/revokeMessages",[t])},this.onV2RevokeMessage=e=>{var t=deserialize(serialize(e,dn),ir.recallMsgTag);this.core.eventBus.emit("forwardReceive/msg/recallMsg",t)},this.onV1DeleteSelfMsgs=e=>{var t=e.map((e=>deserialize(serialize(e,rr.deleteSelfMsgTag),invertSerializeItem(nn))));t.forEach((e=>{e.messageRefer=formatMessageRefer(this.core,e.messageRefer)})),this.core.eventBus.emit("forwardReceive/V2NIMMessageService/deleteMessages",t)},this.onV2DeleteSelfMsgs=e=>{var t=e.map((e=>deserialize(serialize(e,nn),ir.deleteSelfMsgTag)));this.core.eventBus.emit("forwardReceive/msg/deleteSelfMsgs",t)},this.onV1ClearHistoryMessage=e=>{var t=deserialize(serialize(e,Vr.clearHistoryMsgsFromServerReqTag),invertSerializeItem(Jn));this.core.eventBus.emit("forwardReceive/V2NIMMessageLogService/clearHistoryMessage",t)},this.onV2ClearHistoryMessage=e=>{var t=deserialize(serialize(e,Jn),Lr.clearHistoryMsgsFromServerReqTag);this.core.eventBus.emit("forwardReceive/msgLog/clearHistoryMsgsFromServer",t)},this.core=e,this.bindEvents()}},"eventForwardCenter"),e.V2NIMConst=me,e.default=NIM,Object.defineProperty(e,"__esModule",{value:!0})}));