jugglechat-websdk 1.9.4 → 1.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +115 -55
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* JuggleIM.js v1.9.
|
|
2
|
+
* JuggleIM.js v1.9.6
|
|
3
3
|
* (c) 2022-2025 JuggleIM
|
|
4
4
|
* Released under the MIT License.
|
|
5
|
-
*/const noop=()=>{},isObject=e=>"[object Object]"===Object.prototype.toString.call(e),isArray=e=>"[object Array]"===Object.prototype.toString.call(e),isFunction=e=>"[object Function]"===Object.prototype.toString.call(e),isString=e=>"[object String]"===Object.prototype.toString.call(e),isBoolean=e=>"[object Boolean]"===Object.prototype.toString.call(e),isUndefined=e=>"[object Undefined]"===Object.prototype.toString.call(e),isNull=e=>"[object Null]"===Object.prototype.toString.call(e),isNumber=e=>"[object Number]"===Object.prototype.toString.call(e),_isNaN=e=>isNaN(+e),stringify=e=>JSON.stringify(e),parse=t=>{let n={};try{n=JSON.parse(t)}catch(s){n=t}return n},forEach=(e,t)=>{t=t||noop;isObject(e)&&(()=>{for(var n in e)t(e[n],n,e)})(),isArray(e)&&(()=>{for(var n=0,s=e.length;n<s;n++)t(e[n],n,e)})()},isEmpty=e=>{let t=!0;return isObject(e)&&forEach(e,()=>{t=!1}),(isString(e)||isArray(e))&&(t=0===e.length),isNumber(e)&&(t=-1===e),t},rename=(e,t)=>{var n=isObject(e);n&&(e=[e]),e=parse(stringify(e));var s=function(e,n,s){delete s[n],n=t[n],s[n]=e};return forEach(e,e=>{forEach(e,(e,n,o)=>{var i=(n in t);(i?s:noop)(e,n,o)})}),isObject?e[0]:e},extend=(e,t)=>(t=isArray(t)?t:[t],forEach(t,t=>{for(let n in t){let s=t[n];isUndefined(s)||(e[n]=s)}}),e),Defer=Promise,deferred=e=>new Defer(e),templateFormat=(e,t,n)=>{isArray(t)||(t=[t]);let s=[],o=t=>e.replace(n||/\\?\{([^}]+)\}/g,(e,n)=>"\\"===e.charAt(0)?e.slice(1):void 0===t[n]?"{"+n+"}":t[n]);for(let r=0,i=t.length;r<i;r++)s.push(o(t[r]));return s.join("")},isContain=(e,t)=>-1<e.indexOf(t),isEqual=(e,t)=>e===t,Cache$1=e=>{isObject(e)||(e={});let t=(t,n)=>{e[t]=n},n=t=>e[t],s=t=>{delete e[t]},o=()=>{let t=[];for(let n in e)t.push(n);return t},i=()=>{e={}};return{set:t,get:n,remove:s,getKeys:o,clear:i}},map=(e,t)=>e.map(t),filter=(e,t)=>e.filter(t),uniq=(e,t)=>{let n=[],s={};return e.forEach(e=>{let n=t(e);s[n.key]=n.value}),forEach(s,e=>{n.push(e)}),n},some=(e,t)=>e.some(t),toJSON=e=>JSON.stringify(e),toArray=e=>{let t=[];return forEach(e,(e,n)=>{t.push([n,e])}),t},isInclude=(e,t)=>-1<e.indexOf(t),clone$1=e=>JSON.parse(JSON.stringify(e));// 暂时支持 String
|
|
6
|
-
function Index(){let e=0;this.add=()=>{e+=1},this.get=()=>e,this.reset=()=>{e=0}}function Observer(){let e=[];this.add=(t,n)=>{if(isFunction(t)){if(n)return e=[t];e.push(t)}},this.remove=t=>{e=filter(e,e=>e!==t)},this.emit=t=>{forEach(e,e=>{e(t)})}}function Prosumer(){let e=[],t=!1;this.produce=t=>{e.push(t)},this.consume=(n,s)=>{if(t)return;t=!0;let o=()=>{let i=e.shift();return isUndefined(i)?(t=!1,void(s&&s())):void n(i,o)};o()},this.isExeuting=function(){return t}}const getBrowser=()=>{let e=navigator.userAgent,t="",n="";return /(Msie|Firefox|Opera|Chrome|Netscape)\D+(\d[\d.]*)/.test(e)&&(t=RegExp.$1,n=RegExp.$2),/Version\D+(\d[\d.]*).*Safari/.test(e)&&(t="Safari",n=RegExp.$1),{name:t,version:n}},getUUID=()=>"j"+"xxxx-xxxx-xxxx".replace(/[xy]/g,function(e){let t=0|16*Math.random(),n="x"==e?t:8|3&t;return n.toString(16)}),getProtocol=(e="")=>{"undefined"==typeof location&&(location={protocol:"https:"});let t=location.protocol;isEqual(t,"file:")&&(t="http:"),(isInclude(e,"https://")||isInclude(e,"wss://"))&&(t="https:");let n={"http:":"ws:","https:":"wss:"},s=n[t];return{http:t,ws:s}},sort=(e,t)=>{const n=e.length;if(2>n)return e;for(let s=0;s<n-1;s++)for(let o=s+1;o<n;o++)t(e[o],e[s])&&([e[s],e[o]]=[e[o],e[s]]);return e},quickSort=(e,t)=>{if(2>e.length)return e;let n=e[0],s=[],o=[];for(let r=1;r<e.length;r++)t(e[r],n)?s.push(e[r]):o.push(e[r]);return[...quickSort(s,t),n,...quickSort(o,t)]},find=(e,t)=>{let n=e.length,s=-1;for(let o=0,i;o<n;o++)if(i=e[o],t(i)){s=o;break}return s},toObject=e=>{let t={};return forEach(e,(e={})=>{let n=e.key,s=e.value;t[n]=s}),t},decodeBase64=function(e){var t=String.fromCharCode;let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",o=0,r,a,d,
|
|
5
|
+
*/const noop=()=>{},isObject=e=>"[object Object]"===Object.prototype.toString.call(e),isArray=e=>"[object Array]"===Object.prototype.toString.call(e),isFunction=e=>"[object Function]"===Object.prototype.toString.call(e),isAsyncFunction=e=>"[object AsyncFunction]"===Object.prototype.toString.call(e),isString=e=>"[object String]"===Object.prototype.toString.call(e),isBoolean=e=>"[object Boolean]"===Object.prototype.toString.call(e),isFile=e=>"[object File]"===Object.prototype.toString.call(e),isUndefined=e=>"[object Undefined]"===Object.prototype.toString.call(e),isNull=e=>"[object Null]"===Object.prototype.toString.call(e),isNumber=e=>"[object Number]"===Object.prototype.toString.call(e),_isNaN=e=>isNaN(+e),stringify=e=>JSON.stringify(e),parse=t=>{let n={};try{n=JSON.parse(t)}catch(s){n=t}return n},forEach=(e,t)=>{t=t||noop;isObject(e)&&(()=>{for(var n in e)t(e[n],n,e)})(),isArray(e)&&(()=>{for(var n=0,s=e.length;n<s;n++)t(e[n],n,e)})()},isEmpty=e=>{let t=!0;return isObject(e)&&forEach(e,()=>{t=!1}),(isString(e)||isArray(e))&&(t=0===e.length),isNumber(e)&&(t=-1===e),t},rename=(e,t)=>{var n=isObject(e);n&&(e=[e]),e=parse(stringify(e));var s=function(e,n,s){delete s[n],n=t[n],s[n]=e};return forEach(e,e=>{forEach(e,(e,n,o)=>{var i=(n in t);(i?s:noop)(e,n,o)})}),isObject?e[0]:e},extend=(e,t)=>(t=isArray(t)?t:[t],forEach(t,t=>{for(let n in t){let s=t[n];isUndefined(s)||(e[n]=s)}}),e),Defer=Promise,deferred=e=>new Defer(e),templateFormat=(e,t,n)=>{isArray(t)||(t=[t]);let s=[],o=t=>e.replace(n||/\\?\{([^}]+)\}/g,(e,n)=>"\\"===e.charAt(0)?e.slice(1):void 0===t[n]?"{"+n+"}":t[n]);for(let r=0,i=t.length;r<i;r++)s.push(o(t[r]));return s.join("")},isContain=(e,t)=>-1<e.indexOf(t),isEqual=(e,t)=>e===t,Cache$1=e=>{isObject(e)||(e={});let t=(t,n)=>{e[t]=n},n=t=>e[t],s=t=>{delete e[t]},o=()=>{let t=[];for(let n in e)t.push(n);return t},i=()=>{e={}};return{set:t,get:n,remove:s,getKeys:o,clear:i}},map=(e,t)=>e.map(t),filter=(e,t)=>e.filter(t),uniq=(e,t)=>{let n=[],s={};return e.forEach(e=>{let n=t(e);s[n.key]=n.value}),forEach(s,e=>{n.push(e)}),n},some=(e,t)=>e.some(t),toJSON=e=>JSON.stringify(e),toArray=e=>{let t=[];return forEach(e,(e,n)=>{t.push([n,e])}),t},isInclude=(e,t)=>-1<e.indexOf(t),clone$1=e=>JSON.parse(JSON.stringify(e));// 暂时支持 String
|
|
6
|
+
function Index(){let e=0;this.add=()=>{e+=1},this.get=()=>e,this.reset=()=>{e=0}}function Observer(){let e=[];this.add=(t,n)=>{if(isFunction(t)){if(n)return e=[t];e.push(t)}},this.remove=t=>{e=filter(e,e=>e!==t)},this.emit=t=>{forEach(e,e=>{e(t)})}}function Prosumer(){let e=[],t=!1;this.produce=t=>{e.push(t)},this.consume=(n,s)=>{if(t)return;t=!0;let o=()=>{let i=e.shift();return isUndefined(i)?(t=!1,void(s&&s())):void n(i,o)};o()},this.isExeuting=function(){return t}}const getBrowser=()=>{let e=navigator.userAgent,t="",n="";return /(Msie|Firefox|Opera|Chrome|Netscape)\D+(\d[\d.]*)/.test(e)&&(t=RegExp.$1,n=RegExp.$2),/Version\D+(\d[\d.]*).*Safari/.test(e)&&(t="Safari",n=RegExp.$1),{name:t,version:n}},getUUID=()=>"j"+"xxxx-xxxx-xxxx".replace(/[xy]/g,function(e){let t=0|16*Math.random(),n="x"==e?t:8|3&t;return n.toString(16)}),getProtocol=(e="")=>{"undefined"==typeof location&&(location={protocol:"https:"});let t=location.protocol;isEqual(t,"file:")&&(t="http:"),(isInclude(e,"https://")||isInclude(e,"wss://"))&&(t="https:");let n={"http:":"ws:","https:":"wss:"},s=n[t];return{http:t,ws:s}},sort=(e,t)=>{const n=e.length;if(2>n)return e;for(let s=0;s<n-1;s++)for(let o=s+1;o<n;o++)t(e[o],e[s])&&([e[s],e[o]]=[e[o],e[s]]);return e},quickSort=(e,t)=>{if(2>e.length)return e;let n=e[0],s=[],o=[];for(let r=1;r<e.length;r++)t(e[r],n)?s.push(e[r]):o.push(e[r]);return[...quickSort(s,t),n,...quickSort(o,t)]},find=(e,t)=>{let n=e.length,s=-1;for(let o=0,i;o<n;o++)if(i=e[o],t(i)){s=o;break}return s},toObject=e=>{let t={};return forEach(e,(e={})=>{let n=e.key,s=e.value;t[n]=s}),t},decodeBase64=function(e){var t=String.fromCharCode;let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",s="",o=0,r,a,d,m,c,p,l;for(e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");o<e.length;)m=n.indexOf(e.charAt(o++)),c=n.indexOf(e.charAt(o++)),p=n.indexOf(e.charAt(o++)),l=n.indexOf(e.charAt(o++)),r=m<<2|c>>4,a=(15&c)<<4|p>>2,d=(3&p)<<6|l,s+=t(r),64!==p&&(s+=t(a)),64!==l&&(s+=t(d));return s=decodeURIComponent(escape(s)),s},isContinuous=(e,t)=>{e.sort((e,n)=>e[t]-n[t]);for(let n=0;n<e.length-1;n++)if(!isEmpty(e[n+1][t])&&e[n+1][t]!==e[n][t]+1)return!1;return!0},isBase64=e=>{var t=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$/;return t.test(e)};function iterator(e,t){let n=()=>{let s=e.splice(0,1);if(!isEmpty(s)){let o=isEqual(e.length,0);t(s[0],n,o)}};n()}function formatTime(e,t="yyyy-MM-dd hh:mm:ss"){var n=Math.floor;let s=new Date(e);var i={"M+":s.getMonth()+1,// 月份
|
|
7
7
|
"d+":s.getDate(),// 日
|
|
8
8
|
"h+":s.getHours(),// 小时
|
|
9
9
|
"m+":s.getMinutes(),// 分
|
|
@@ -15,7 +15,7 @@ S:s.getMilliseconds()// 毫秒
|
|
|
15
15
|
let groupBy=(e,t)=>{let n={};return forEach(e,e=>{let s=[];forEach(e,(e,n)=>{isInclude(t,n)&&s.push(e)});let o=s.join("_"),i=n[o]||[];i.push(e),n[o]=i}),n};const getDeviceID=()=>"xxxxxxxxxxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=0|16*Math.random(),n="x"==e?t:8|3&t;return n.toString(16)});function formatToQueryStr(e){return Object.entries(e).filter(([e,t])=>t!==void 0)// 过滤 undefined
|
|
16
16
|
.map(([e,t])=>{// 对键和值进行 URL 编码,处理特殊字符
|
|
17
17
|
const n=encodeURIComponent(e),s=encodeURIComponent(t??"");// null 转为空字符串
|
|
18
|
-
return`${n}=${s}`}).join("&")}var utils={Prosumer,Observer,isUndefined,isBoolean,isString,isObject,isArray,isFunction,stringify,parse,rename,extend,clone:clone$1,deferred,Defer,forEach,templateFormat,isContain,noop,Cache:Cache$1,map,filter,uniq,some,isEqual,isEmpty,toJSON,isInclude,isNull,isNumber,toArray,Index,getBrowser,getUUID,getProtocol,sort,find,quickSort,toObject,decodeBase64,isContinuous,isBase64,iterator,formatTime,isValidHMTime,getRandoms,groupBy,isNaN:_isNaN,getDeviceID,formatToQueryStr};function Emitter(){/*
|
|
18
|
+
return`${n}=${s}`}).join("&")}var utils={Prosumer,Observer,isUndefined,isBoolean,isString,isObject,isArray,isFunction,isFile,stringify,parse,rename,extend,clone:clone$1,deferred,Defer,forEach,templateFormat,isContain,noop,Cache:Cache$1,map,filter,uniq,some,isEqual,isEmpty,toJSON,isInclude,isNull,isNumber,toArray,Index,getBrowser,getUUID,getProtocol,sort,find,quickSort,toObject,decodeBase64,isContinuous,isBase64,iterator,formatTime,isValidHMTime,getRandoms,groupBy,isNaN:_isNaN,getDeviceID,formatToQueryStr,isAsyncFunction};function Emitter(){/*
|
|
19
19
|
EmitterEvents = {
|
|
20
20
|
name: [event1, event2, ...]
|
|
21
21
|
}
|
|
@@ -31,13 +31,17 @@ S_SYNC_CONVERSATION_NTF:"s_sync_conversation_ntf",S_PONG:"s_pong",CLIENT_CLEAR_M
|
|
|
31
31
|
// { name: 'end', type: 'String' },
|
|
32
32
|
// ]
|
|
33
33
|
// }
|
|
34
|
-
],CLEARUNREADCOUNT:[{name:"conversationType"},{name:"conversationId"},{name:"unreadIndex"}],SET_DRAFT:[{name:"conversationType"},{name:"conversationId"},{name:"draft"}],GET_DRAFT:[{name:"conversationType"},{name:"conversationId"}],REMOVECONVERSATION:[{name:"conversationType"},{name:"conversationId"}],INSERTCONVERSATION:[{name:"conversationType"},{name:"conversationId"}],GET_CONVERSATION:[{name:"conversationType"},{name:"conversationId"}],MUTE_CONVERSATION:[{name:"conversationType"},{name:"conversationId"},{name:"undisturbType"}],SET_TOP_CONVERSATION:[{name:"conversationType"},{name:"conversationId"},{name:"isTop"}],UNTOP_CONVERSATION:[{name:"conversationType"},{name:"conversationId"}],JOINCHATROOM:[{name:"id",type:"String"}],QUITCHATROOM:[{name:"id",type:"String"}],SET_CHATROOM_ATTRS:[{name:"id",type:"String"},{name:"attributes",type:"Array",children:[{name:"key"},{name:"value"}]}],REMOVE_CHATROOM_ATTRS:[{name:"id",type:"String"},{name:"attributes",type:"Array",children:[{name:"key"}]}],GET_CHATROOM_ATTRS:[{name:"id",type:"String"},{name:"attributes",type:"Array",children:[{name:"key"}]}],GET_ALL_CHATROOM_ATTRS:[{name:"id",type:"String"}],ADD_MSG_REACTION:[{name:"conversationType"},{name:"conversationId"},{name:"messageId"},{name:"reactionId",type:"String"}],REMOVE_MSG_REACTION:[{name:"conversationType"},{name:"conversationId"},{name:"messageId"},{name:"reactionId",type:"String"}],TRANSLATE:[{name:"sourceLang"},{name:"targetLang"},{name:"content",type:"Object"}],SET_TOP_MESSAGE:[{name:"conversationType"},{name:"conversationId"},{name:"messageId"}],GET_TOP_MESSAGE:[{name:"conversationType"},{name:"conversationId"}],ADD_FAVORITE_MESSAGE:[{name:"messages",type:"Array",children:[{name:"conversationType"},{name:"conversationId"},{name:"senderId"},{name:"messageId"}]}],CREATE_CONVERSATION_TAG:[{name:"id",type:"String"},{name:"name",type:"String"}],REMOVE_CONVERSATION_TAG:[{name:"id",type:"String"}],ADD_CONVERSATION_TO_TAG:[{name:"id",type:"String"},{name:"conversations",type:"Array",children:[{name:"conversationId"},{name:"conversationType"}]}],REMOVE_CONVERSATION_FROM_TAG:[{name:"id",type:"String"},{name:"conversations",type:"Array",children:[{name:"conversationId"},{name:"conversationType"}]}]},COMMAND_TOPICS={HISTORY_MESSAGES:"qry_hismsgs",CONVERSATIONS:"qry_convers",QUERY_TOP_CONVERSATIONS:"qry_top_convers",SYNC_CONVERSATIONS:"sync_convers",SYNC_MESSAGES:"sync_msgs",RECALL:"recall_msg",GET_MENTION_MSGS:"qry_mention_msgs",NTF:"ntf",MSG:"msg",STREAM_MSG:"stream_msg",CHATROOM_USER_NTF:"c_user_ntf",SEND_GROUP:"g_msg",SEND_PRIVATE:"p_msg",SEND_CHATROOM:"c_msg",GET_MERGE_MSGS:"qry_merged_msgs",GET_TOP_MSG:"get_top_msg",SET_TOP_MSG:"set_top_msg",DEL_TOP_MSG:"del_top_msg",MSG_ADD_FAVORITE:"add_favorite_msgs",MSG_REMOVE_FAVORITE:"del_favorite_msgs",MSG_QRY_FAVORITE:"qry_favorite_msgs",GET_FIRST_UNREAD_MSG:"qry_first_unread_msg",CLEAR_UNREAD:"clear_unread",REMOVE_CONVERSATION:"del_convers",INSERT_CONVERSATION:"add_conver",GET_CONVERSATION:"qry_conver",MUTE_CONVERSATION:"undisturb_convers",TOP_CONVERSATION:"top_convers",GET_UNREAD_TOTLAL_CONVERSATION:"qry_total_unread_count",CLEAR_UNREAD_TOTLAL_CONVERSATION:"clear_total_unread",MARK_CONVERSATION_UNREAD:"mark_unread",SET_ALL_DISTURB:"set_user_undisturb",GET_ALL_DISTURB:"get_user_undisturb",READ_MESSAGE:"mark_read",GET_READ_MESSAGE_DETAIL:"qry_read_detail",UPDATE_MESSAGE:"modify_msg",CLEAR_MESSAGE:"clean_hismsg",REMOVE_MESSAGE:"del_msg",GET_MSG_BY_IDS:"qry_hismsg_by_ids",GET_FILE_TOKEN:"file_cred",BATCH_TRANSLATE:"batch_trans",GET_USER_INFO:"qry_user_info",JOIN_CHATROOM:"c_join",QUIT_CHATROOM:"c_quit",SYNC_CHATROOM_MESSAGES:"c_sync_msgs",SYNC_CHATROOM_ATTRS:"c_sync_atts",SET_CHATROOM_ATTRIBUTES:"c_batch_add_att",REMOVE_CHATROOM_ATTRIBUTES:"c_batch_del_att",GET_CHATROOM_ATTRIBUTES:"fake_c_get_one",GET_ALL_CHATROOM_ATTRIBUTES:"fake_c_get_all",ADD_MSG_REACTION:"msg_exset",REMOVE_MSG_REACTION:"del_msg_exset",CONVERSATION_TAG_ADD:"tag_add_convers",CONVERSATION_TAG_REMOVE:"tag_del_convers",TAG_REMOVE:"del_user_conver_tags",CONVERSATION_TAG_QUERY:"qry_user_conver_tags",RTC_CREATE_ROOM:"rtc_create",RTC_JOIN_ROOM:"rtc_join",RTC_QUIT_ROOM:"rtc_quit",RTC_ACCEPT:"rtc_accept",RTC_HANGUP:"rtc_hangup",RTC_QRY_ROOM:"rtc_qry",RTC_PING:"rtc_ping",RTC_INVITE:"rtc_invite",RTC_UPDATE_STATE:"rtc_upd_state",RTC_INVITE_EVENT:"rtc_invite_event",RTC_ROOM_EVENT:"rtc_room_event",UPLOAD_PUSH_TOKEN:"reg_push_token",SWITCH_PUSH:"push_switch"},NOTIFY_TYPE={DEFAULT:0,MSG:1,CHATROOM:2,CHATROOM_ATTR:3,CHATROOM_EVENT:4,CHATROOM_DESTORY:5},CONNECT_TOOL={START_TIME:"connect_start_time",RECONNECT_FREQUENCY:"reconnect_frequency",RECONNECT_COUNT:"reconnect_count"},LOG_LEVEL={NONE:0,FATAL:1,ERROR:2,WARN:3,INFO:4,DEBUG:5,VERBOSE:6},LOG_MODULE={INIT:"J-Init",DB_OPEN:"DB-Open",DB_CLOSE:"DB-Close",PB_PARSE:"PB-Parse",PB_MATCH:"PB-Match",WS_RECEIVE:"WS-Receive",WS_SEND:"WS-Send",WS_CONNECT:"WS-Connect",NAV_START:"Nav-Start",NAV_REQEST:"Nav-Request",HB_START:"HB-Start",HB_STOP:"HB-Stop",CON_CONNECT:"CON-Connect",CON_STATUS:"CON-Status",CON_DISCONNECT:"CON-Disconnect",CON_TOKEN:"CON-Token",CON_RECONNECT:"CON-Reconnect",MSG_SYNC:"MSG-Sync",MSG_DELETE:"MSG-Delete",MSG_RECALL:"MSG-Recall",MSG_CLEAR:"MSG-Clear",MSG_GROUP_READ_DETAIL:"MSG-GroupReadDetail",MSG_GET_LIST:"MSG-Get",MSG_GET_MERGE:"MSG-GetMerge",MSG_GET_MENTION:"MSG-GetMention",MSG_REGISTER:"MSG-Register",MSG_SEND:"MSG-ST",MSG_SEND_MASS:"MSG-ST-MASS",MSG_SEND_MERGE:"MSG-ST-MERGE",MSG_SEND_FILE:"MSG-ST-FILE",MSG_RECEIVE:"MSG-ST-RECEIVE",MSG_UPDATE:"MSG-UPDATE",CHATROOM_ATTR_RECEIVE:"CHATROOM_ATTR_RECEIVE",CHATROOM_ATTR_SET:"CHATROOM_ATTR_SET",CHATROOM_ATTR_REMOVE:"CHATROOM_ATTR_REMOVE",CHATROOM_USER_REJOIN:"CHATROOM_USER_REJOIN",CHATROOM_USER_JOIN:"CHATROOM_USER_JOIN",CHATROOM_USER_QUIT:"CHATROOM_USER_QUIT",CHATROOM_SERVER_EVENT:"CHATROOM_SERVER_EVENT",CHATROOM_DESTORYED:"CHATROOM_DESTORYED",CONV_SYNC:"CONV-Sync",CONV_DELETE:"CONV-Delete",CONV_CLEAR_UNREAD:"CONV-ClearUnread",CONV_CLEAR_TOTAL:"CONV-ClearTotal",CONV_MUTE:"CONV-Mute",CONV_TOP:"CONV-Top"},CHATROOM_ATTR_OP_TYPE={NONE:0,ADD:1,DEL:2},CHATROOM_EVENT_TYPE={JOIN:0,QUIT:1,KICK:2,FALLOUT:3},MEDIA_TYPE={AUDIO:0,VIDEO:1},EVENT={STATE_CHANGED:"state_changed",MESSAGE_RECEIVED:"message_received",MESSAGE_RECALLED:"message_recalled",MESSAGE_UPDATED:"message_updated",MESSAGE_SET_TOP:"message_set_top",MESSAGE_READ:"message_read",MESSAGE_REMOVED:"message_removed",MESSAGE_CLEAN:"message_clean",MESSAGE_CLEAN_SOMEONE:"message_clean_someone",MESSAGE_REACTION_CHANGED:"message_reaction_changed",TAG_ADDED:"tag_added",TAG_REMOVED:"tag_removed",TAG_CHANGED:"tag_changed",TAG_CONVERSATION_ADDED:"tag_conversation_added",TAG_CONVERSATION_REMOVED:"tag_conversation_removed",CONVERSATION_SYNC_FINISHED:"conversation_sync_finished",CONVERSATION_UNDISTURBED:"conversation_undisturb",CONVERSATION_TOP:"conversation_top",CONVERSATION_CLEARUNREAD:"conversation_clearunead",CLEAR_TOTAL_UNREADCOUNT:"conversation_total_unreadcount",CONVERSATION_CHANGED:"conversation_changed",CONVERSATION_ADDED:"conversation_added",CONVERSATION_REMOVED:"conversation_removed",CHATROOM_ATTRIBUTE_UPDATED:"chatroom_attr_updated",CHATROOM_ATTRIBUTE_DELETED:"chatroom_attr_deleted",CHATROOM_DESTROYED:"chatroom_destroyed",CHATROOM_USER_QUIT:"chatroom_user_quit",CHATROOM_USER_KICKED:"chatroom_user_kicked",RTC_ROOM_EVENT:"rtc_room_event",RTC_INVITE_EVENT:"rtc_invite_event",RTC_FINISHED_1V1_EVENT:"rtc_finished_1v1_event",STREAM_APPENDED:"stream_appended",STREAM_COMPLETED:"stream_completed"},CONNECT_STATE={CONNECTED:0,CONNECTING:1,DISCONNECTED:2,CONNECT_FAILED:3,DB_OPENED:4,DB_CLOSED:5,RECONNECTING:6},CONVERATION_TYPE={PRIVATE:1,GROUP:2,CHATROOM:3,SYSTEM:4},MESSAGE_ORDER={// 获取新的历史消息
|
|
34
|
+
],CLEARUNREADCOUNT:[{name:"conversationType"},{name:"conversationId"},{name:"unreadIndex"}],SET_DRAFT:[{name:"conversationType"},{name:"conversationId"},{name:"draft"}],GET_DRAFT:[{name:"conversationType"},{name:"conversationId"}],REMOVECONVERSATION:[{name:"conversationType"},{name:"conversationId"}],INSERTCONVERSATION:[{name:"conversationType"},{name:"conversationId"}],GET_CONVERSATION:[{name:"conversationType"},{name:"conversationId"}],MUTE_CONVERSATION:[{name:"conversationType"},{name:"conversationId"},{name:"undisturbType"}],SET_TOP_CONVERSATION:[{name:"conversationType"},{name:"conversationId"},{name:"isTop"}],UNTOP_CONVERSATION:[{name:"conversationType"},{name:"conversationId"}],JOINCHATROOM:[{name:"id",type:"String"}],QUITCHATROOM:[{name:"id",type:"String"}],SET_CHATROOM_ATTRS:[{name:"id",type:"String"},{name:"attributes",type:"Array",children:[{name:"key"},{name:"value"}]}],REMOVE_CHATROOM_ATTRS:[{name:"id",type:"String"},{name:"attributes",type:"Array",children:[{name:"key"}]}],GET_CHATROOM_ATTRS:[{name:"id",type:"String"},{name:"attributes",type:"Array",children:[{name:"key"}]}],GET_ALL_CHATROOM_ATTRS:[{name:"id",type:"String"}],ADD_MSG_REACTION:[{name:"conversationType"},{name:"conversationId"},{name:"messageId"},{name:"reactionId",type:"String"}],REMOVE_MSG_REACTION:[{name:"conversationType"},{name:"conversationId"},{name:"messageId"},{name:"reactionId",type:"String"}],TRANSLATE:[{name:"sourceLang"},{name:"targetLang"},{name:"content",type:"Object"}],SET_TOP_MESSAGE:[{name:"conversationType"},{name:"conversationId"},{name:"messageId"}],GET_TOP_MESSAGE:[{name:"conversationType"},{name:"conversationId"}],ADD_FAVORITE_MESSAGE:[{name:"messages",type:"Array",children:[{name:"conversationType"},{name:"conversationId"},{name:"senderId"},{name:"messageId"}]}],CREATE_CONVERSATION_TAG:[{name:"id",type:"String"},{name:"name",type:"String"}],REMOVE_CONVERSATION_TAG:[{name:"id",type:"String"}],ADD_CONVERSATION_TO_TAG:[{name:"id",type:"String"},{name:"conversations",type:"Array",children:[{name:"conversationId"},{name:"conversationType"}]}],REMOVE_CONVERSATION_FROM_TAG:[{name:"id",type:"String"},{name:"conversations",type:"Array",children:[{name:"conversationId"},{name:"conversationType"}]}],ADD_MOMENT:[],REMOVE_MOMENT:[{name:"momentIds",type:"Array"}],GET_MOMENT_LIST:[],GET_MOMENT_INFO:[{name:"momentId",type:"String"}],ADD_COMMENT:[{name:"momentId",type:"String"},{name:"content",type:"Object"}],REMOVE_COMMENT:[{name:"momentId",type:"String"},{name:"commentIds",type:"Array"}],GET_COMMENT_LIST:[{name:"momentId",type:"String"}],ADD_REACTION:[{name:"momentId",type:"String"},{name:"reaction",type:"Object"}],DELETE_REACTION:[{name:"momentId",type:"String"},{name:"reaction",type:"Object"}],GET_REACTION_LIST:[{name:"momentId",type:"String"}]},COMMAND_TOPICS={HISTORY_MESSAGES:"qry_hismsgs",CONVERSATIONS:"qry_convers",QUERY_TOP_CONVERSATIONS:"qry_top_convers",SYNC_CONVERSATIONS:"sync_convers",SYNC_MESSAGES:"sync_msgs",RECALL:"recall_msg",GET_MENTION_MSGS:"qry_mention_msgs",NTF:"ntf",MSG:"msg",STREAM_MSG:"stream_msg",CHATROOM_USER_NTF:"c_user_ntf",SEND_GROUP:"g_msg",SEND_PRIVATE:"p_msg",SEND_CHATROOM:"c_msg",GET_MERGE_MSGS:"qry_merged_msgs",GET_TOP_MSG:"get_top_msg",SET_TOP_MSG:"set_top_msg",DEL_TOP_MSG:"del_top_msg",MSG_ADD_FAVORITE:"add_favorite_msgs",MSG_REMOVE_FAVORITE:"del_favorite_msgs",MSG_QRY_FAVORITE:"qry_favorite_msgs",GET_FIRST_UNREAD_MSG:"qry_first_unread_msg",CLEAR_UNREAD:"clear_unread",REMOVE_CONVERSATION:"del_convers",INSERT_CONVERSATION:"add_conver",GET_CONVERSATION:"qry_conver",MUTE_CONVERSATION:"undisturb_convers",TOP_CONVERSATION:"top_convers",GET_UNREAD_TOTLAL_CONVERSATION:"qry_total_unread_count",CLEAR_UNREAD_TOTLAL_CONVERSATION:"clear_total_unread",MARK_CONVERSATION_UNREAD:"mark_unread",SET_ALL_DISTURB:"set_user_undisturb",GET_ALL_DISTURB:"get_user_undisturb",READ_MESSAGE:"mark_read",GET_READ_MESSAGE_DETAIL:"qry_read_detail",UPDATE_MESSAGE:"modify_msg",CLEAR_MESSAGE:"clean_hismsg",REMOVE_MESSAGE:"del_msg",GET_MSG_BY_IDS:"qry_hismsg_by_ids",GET_FILE_TOKEN:"file_cred",BATCH_TRANSLATE:"batch_trans",GET_USER_INFO:"qry_user_info",JOIN_CHATROOM:"c_join",QUIT_CHATROOM:"c_quit",SYNC_CHATROOM_MESSAGES:"c_sync_msgs",SYNC_CHATROOM_ATTRS:"c_sync_atts",SET_CHATROOM_ATTRIBUTES:"c_batch_add_att",REMOVE_CHATROOM_ATTRIBUTES:"c_batch_del_att",GET_CHATROOM_ATTRIBUTES:"fake_c_get_one",GET_ALL_CHATROOM_ATTRIBUTES:"fake_c_get_all",ADD_MSG_REACTION:"msg_exset",REMOVE_MSG_REACTION:"del_msg_exset",CONVERSATION_TAG_ADD:"tag_add_convers",CONVERSATION_TAG_REMOVE:"tag_del_convers",TAG_REMOVE:"del_user_conver_tags",CONVERSATION_TAG_QUERY:"qry_user_conver_tags",RTC_CREATE_ROOM:"rtc_create",RTC_JOIN_ROOM:"rtc_join",RTC_QUIT_ROOM:"rtc_quit",RTC_ACCEPT:"rtc_accept",RTC_HANGUP:"rtc_hangup",RTC_QRY_ROOM:"rtc_qry",RTC_PING:"rtc_ping",RTC_INVITE:"rtc_invite",RTC_UPDATE_STATE:"rtc_upd_state",RTC_INVITE_EVENT:"rtc_invite_event",RTC_ROOM_EVENT:"rtc_room_event",UPLOAD_PUSH_TOKEN:"reg_push_token",SWITCH_PUSH:"push_switch"},NOTIFY_TYPE={DEFAULT:0,MSG:1,CHATROOM:2,CHATROOM_ATTR:3,CHATROOM_EVENT:4,CHATROOM_DESTORY:5},CONNECT_TOOL={START_TIME:"connect_start_time",RECONNECT_FREQUENCY:"reconnect_frequency",RECONNECT_COUNT:"reconnect_count"},LOG_LEVEL={NONE:0,FATAL:1,ERROR:2,WARN:3,INFO:4,DEBUG:5,VERBOSE:6},LOG_MODULE={INIT:"J-Init",DB_OPEN:"DB-Open",DB_CLOSE:"DB-Close",PB_PARSE:"PB-Parse",PB_MATCH:"PB-Match",WS_RECEIVE:"WS-Receive",WS_SEND:"WS-Send",WS_CONNECT:"WS-Connect",NAV_START:"Nav-Start",NAV_REQEST:"Nav-Request",HB_START:"HB-Start",HB_STOP:"HB-Stop",CON_CONNECT:"CON-Connect",CON_STATUS:"CON-Status",CON_DISCONNECT:"CON-Disconnect",CON_TOKEN:"CON-Token",CON_RECONNECT:"CON-Reconnect",MSG_SYNC:"MSG-Sync",MSG_DELETE:"MSG-Delete",MSG_RECALL:"MSG-Recall",MSG_CLEAR:"MSG-Clear",MSG_GROUP_READ_DETAIL:"MSG-GroupReadDetail",MSG_GET_LIST:"MSG-Get",MSG_GET_MERGE:"MSG-GetMerge",MSG_GET_MENTION:"MSG-GetMention",MSG_REGISTER:"MSG-Register",MSG_SEND:"MSG-ST",MSG_SEND_MASS:"MSG-ST-MASS",MSG_SEND_MERGE:"MSG-ST-MERGE",MSG_SEND_FILE:"MSG-ST-FILE",MSG_RECEIVE:"MSG-ST-RECEIVE",MSG_UPDATE:"MSG-UPDATE",CHATROOM_ATTR_RECEIVE:"CHATROOM_ATTR_RECEIVE",CHATROOM_ATTR_SET:"CHATROOM_ATTR_SET",CHATROOM_ATTR_REMOVE:"CHATROOM_ATTR_REMOVE",CHATROOM_USER_REJOIN:"CHATROOM_USER_REJOIN",CHATROOM_USER_JOIN:"CHATROOM_USER_JOIN",CHATROOM_USER_QUIT:"CHATROOM_USER_QUIT",CHATROOM_SERVER_EVENT:"CHATROOM_SERVER_EVENT",CHATROOM_DESTORYED:"CHATROOM_DESTORYED",CONV_SYNC:"CONV-Sync",CONV_DELETE:"CONV-Delete",CONV_CLEAR_UNREAD:"CONV-ClearUnread",CONV_CLEAR_TOTAL:"CONV-ClearTotal",CONV_MUTE:"CONV-Mute",CONV_TOP:"CONV-Top"},CHATROOM_ATTR_OP_TYPE={NONE:0,ADD:1,DEL:2},CHATROOM_EVENT_TYPE={JOIN:0,QUIT:1,KICK:2,FALLOUT:3},MEDIA_TYPE={AUDIO:0,VIDEO:1},EVENT={STATE_CHANGED:"state_changed",MESSAGE_RECEIVED:"message_received",MESSAGE_RECALLED:"message_recalled",MESSAGE_UPDATED:"message_updated",MESSAGE_SET_TOP:"message_set_top",MESSAGE_READ:"message_read",MESSAGE_REMOVED:"message_removed",MESSAGE_CLEAN:"message_clean",MESSAGE_CLEAN_SOMEONE:"message_clean_someone",MESSAGE_REACTION_CHANGED:"message_reaction_changed",TAG_ADDED:"tag_added",TAG_REMOVED:"tag_removed",TAG_CHANGED:"tag_changed",TAG_CONVERSATION_ADDED:"tag_conversation_added",TAG_CONVERSATION_REMOVED:"tag_conversation_removed",CONVERSATION_SYNC_FINISHED:"conversation_sync_finished",CONVERSATION_UNDISTURBED:"conversation_undisturb",CONVERSATION_TOP:"conversation_top",CONVERSATION_CLEARUNREAD:"conversation_clearunead",CLEAR_TOTAL_UNREADCOUNT:"conversation_total_unreadcount",CONVERSATION_CHANGED:"conversation_changed",CONVERSATION_ADDED:"conversation_added",CONVERSATION_REMOVED:"conversation_removed",CHATROOM_ATTRIBUTE_UPDATED:"chatroom_attr_updated",CHATROOM_ATTRIBUTE_DELETED:"chatroom_attr_deleted",CHATROOM_DESTROYED:"chatroom_destroyed",CHATROOM_USER_QUIT:"chatroom_user_quit",CHATROOM_USER_KICKED:"chatroom_user_kicked",RTC_ROOM_EVENT:"rtc_room_event",RTC_INVITE_EVENT:"rtc_invite_event",RTC_FINISHED_1V1_EVENT:"rtc_finished_1v1_event",STREAM_APPENDED:"stream_appended",STREAM_COMPLETED:"stream_completed"},CONNECT_STATE={CONNECTED:0,CONNECTING:1,DISCONNECTED:2,CONNECT_FAILED:3,DB_OPENED:4,DB_CLOSED:5,RECONNECTING:6},CONVERATION_TYPE={PRIVATE:1,GROUP:2,CHATROOM:3,SYSTEM:4},MESSAGE_ORDER={// 获取新的历史消息
|
|
35
35
|
FORWARD:1,// 获取旧的历史消息
|
|
36
|
-
BACKWARD:0},CONVERSATION_ORDER={FORWARD:0,BACKWARD:1},MENTION_ORDER={FORWARD:1,BACKWARD:0},UPLOAD_TYPE={NONE:0,QINIU:1,ALI:4,S3:2,MINIO:3},UNDISTURB_TYPE={DISTURB:1,UNDISTURB:0},ErrorMessages=[{code:0,msg:"\u94FE\u63A5\u6210\u529F",name:"CONNECT_SUCCESS"},{code:11e3,msg:"\u9ED8\u8BA4\u9519\u8BEF",name:"CONNECT_ERROR"},{code:11001,msg:"\u672A\u4F20 Appkey",name:"CONNECT_APPKEY_IS_REQUIRE"},{code:11002,msg:"\u672A\u4F20 Token",name:"CONNECT_TOKEN_NOT_EXISTS"},{code:11003,msg:"Appkey \u4E0D\u5B58\u5728",name:"CONNECT_APPKEY_NOT_EXISTS"},{code:11004,msg:"Token \u4E0D\u5408\u6CD5",name:"CONNECT_TOKEN_ILLEGAL"},{code:11005,msg:"Token \u672A\u6388\u6743",name:"CONNECT_TOKEN_UNAUTHORIZED"},{code:11006,msg:"Token \u5DF2\u8FC7\u671F",name:"CONNECT_TOKEN_EXPIRE"},{code:11007,msg:"\u9700\u8981\u91CD\u5B9A\u5411",name:"CONNECT_REDIRECT"},{code:11008,msg:"\u4E0D\u652F\u6301\u7684\u5E73\u53F0\u7C7B\u578B",name:"CONNECT_UNSUPPORT_PLATFORM"},{code:11009,msg:"App \u5DF2\u5C01\u7981",name:"CONNECT_APP_BLOCKED"},{code:11010,msg:"\u7528\u6237\u5DF2\u5C01\u7981",name:"CONNECT_USER_BLOCKED"},{code:11011,msg:"\u88AB\u8E22\u4E0B\u7EBF",name:"CONNECT_USER_KICKED"},{code:11012,msg:"\u6CE8\u9500\u4E0B\u7EBF",name:"CONNECT_USER_LOGOUT"},{code:11013,msg:"\u4E0D\u652F\u6301\u7684\u4FE1\u4EE4",name:"CONNECT_SIGNAL_UNSUPPORT"},{code:11014,msg:"\u63A5\u53E3\u8C03\u7528\u8D85\u9891\uFF0C\u9ED8\u8BA4 100 \u6B21/\u79D2",name:"COMMAND_OVER_FREQUENCY"},{code:11020,msg:"\u5B89\u5168\u57DF\u540D\u6821\u9A8C\u5931\u8D25",name:"CONNECT_SECURITY_DOMAIN_ERROR"},{code:10102,msg:"\u7528\u6237\u4E0D\u5B58\u5728",name:"CONNECT_USER_NOT_EXISTS"},{code:10104,msg:"\u65F6\u533A\u4E0D\u5408\u6CD5",name:"PARAMS_TIMEZONE_ILLEGAL"},{code:12004,msg:"\u6D88\u606F\u683C\u5F0F\u4E0D\u5408\u6CD5",name:"PARAMS_MESSAGE_ILLEGAL"},{code:12005,msg:"\u5F53\u524D\u7528\u6237\u88AB\u5BF9\u65B9\u62C9\u9ED1",name:"REJECTED_BY_BLACKLIST"},{code:12006,msg:"\u6D88\u606F\u6269\u5C55\uFF0C\u5B57\u6BB5\u91CD\u590D",name:"KV_DUPLICATION"},{code:12007,msg:"\u6D88\u606F\u547D\u4E2D\u654F\u611F\u8BCD\u7B56\u7565\uFF0C\u88AB\u62E6\u622A",name:"MESSAGE_SENSITIVE_WORDS"},{code:13002,msg:"\u7528\u6237\u4E0D\u662F\u7FA4\u7EC4\u6210\u5458",name:"GROUP_NOT_GROUP_MEMBER"},{code:13003,msg:"\u7FA4\u7EC4\u88AB\u7981\u8A00",name:"GROUP_BANNED"},{code:13004,msg:"\u7FA4\u6210\u5458\u88AB\u7981\u8A00",name:"GROUP_MEMBER_BANNED"},{code:13005,msg:"\u7FA4\u6210\u5458\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650",name:"GROUP_MEMBER_OVERFLOW"},{code:14004,msg:"\u804A\u5929\u5BA4\u5C5E\u6027\u4E0D\u5B58\u5728",name:"CHATROOM_KV_NOT_EXISTS"},{code:14006,msg:"\u804A\u5929\u5BA4\u5DF2\u88AB\u9500\u6BC1",name:"CHATROOM_DESTROY"},{code:14007,msg:"\u5F53\u524D\u7528\u6237\u5DF2\u88AB\u7981\u8A00",name:"CHATROOM_MEMBER_BANNED"},{code:14008,msg:"\u5F53\u524D\u7528\u6237\u5DF2\u88AB\u5C01\u7981",name:"CHATROOM_MEMBER_BLOCKED"},{code:14001,msg:"\u672A\u52A0\u5165\u804A\u5929\u5BA4",name:"CHATROOM_NOT_JOIN"},{code:14002,msg:"\u804A\u5929\u5BA4\u5C5E\u6027\u4E2A\u6570\u8D85\u9650\u5236",name:"CHATROOM_ATTR_EXCEED_LIMIT"},{code:14003,msg:"\u4E0D\u53EF\u64CD\u4F5C\u5176\u5B83\u6210\u5458\u8BBE\u7F6E\u7684\u804A\u5929\u5BA4\u5C5E\u6027",name:"CHATROOM_ATTR_EXISTS"},{code:14005,msg:"\u804A\u5929\u5BA4\u4E0D\u5B58\u5728",name:"CHATROOM_NOT_EXISTS"},{code:11100,msg:"\u5165\u53C2pb\u89E3\u6790\u5931\u8D25",name:"PB_ERROR"},{code:13001,msg:"\u7FA4\u7EC4\u4E0D\u5B58\u5728",name:"GROUP_NOT_EXISTS"},{code:25e3,msg:"\u53C2\u6570\u7F3A\u5931\uFF0C\u8BF7\u68C0\u67E5\u4F20\u5165\u53C2\u6570",name:"ILLEGAL_PARAMS"},{code:25001,msg:"\u8FDE\u63A5\u5DF2\u5B58\u5728",name:"CONNECTION_EXISTS"},{code:25002,msg:"\u8FDE\u63A5\u4E0D\u5B58\u5728",name:"CONNECTION_NOT_READY"},{code:25003,msg:"\u53C2\u6570\u7C7B\u578B\u4E0D\u6B63\u786E",name:"ILLEGAL_TYPE_PARAMS"},{code:25004,msg:"\u8FDE\u63A5\u5F02\u5E38,\u4FE1\u4EE4\u53D1\u9001\u8D85\u65F6",name:"COMMAND_FAILED"},{code:25005,msg:"\u4E0A\u4F20\u6587\u4EF6\u7EC4\u4EF6\u4E3A\u7A7A",name:"UPLOAD_PLUGIN_ERROR"},{code:25006,msg:"\u4E0A\u4F20\u6587\u4EF6\u7EC4\u4EF6\u4E0E OSS \u5B58\u50A8\u4E0D\u4E00\u81F4",name:"UPLOAD_PLUGIN_NOTMATCH"},{code:25007,msg:"\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",name:"UPLOADING_FILE_ERROR"},{code:25008,msg:"\u5355\u6B21\u5408\u5E76\u8F6C\u53D1\u6D88\u606F\u6761\u6570\u4E0A\u9650\u4E3A 20 \u6761",name:"TRANSFER_MESSAGE_COUNT_EXCEED"},{code:25009,msg:"\u672A\u5EFA\u7ACB\u672C\u5730\u6570\u636E\u5E93\u8FDE\u63A5\uFF0C\u8BF7\u4F18\u5148\u8C03\u7528\u8FDE\u63A5\u65B9\u6CD5",name:"DATABASE_NOT_OPENED"},{code:25010,msg:"Web SDK \u65B9\u6CD5\u672A\u5B9E\u73B0\uFF0C\u8BF7\u786E\u5B9A\u4F7F\u7528 PC SDK \u8C03\u7528",name:"SDK_FUNC_NOT_DEFINED"},{code:25011,msg:"\u5F15\u7528\u6D88\u606F\u5FC5\u987B\u4F20\u5165\u5B8C\u6210\u7684 Message \u5BF9\u8C61",name:"SEND_REFER_MESSAGE_ERROR"},{code:25012,msg:"IM \u670D\u52A1\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u8BBE\u5907\u7F51\u7EDC\u662F\u5426\u53EF\u7528",name:"IM_SERVER_CONNECT_ERROR"},{code:25013,msg:"\u53C2\u6570\u4E0D\u53EF\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u4F20\u5165\u53C2\u6570",name:"ILLEGAL_PARAMS_EMPTY"},{code:25014,msg:"SDK \u5185\u90E8\u6B63\u5728\u8FDE\u63A5\uFF0C\u65E0\u9700\u91CD\u590D\u8C03\u7528 connect \u65B9\u6CD5",name:"REPREAT_CONNECTION"},{code:25015,msg:"\u6D88\u606F\u91CD\u590D\u53D1\u9001\uFF0C\u76F8\u540C\u7684 tid \u4E14\u6B63\u5728\u53D1\u9001\u4E2D\uFF0C\u65E0\u9700\u518D\u6B21\u53D1\u9001\u6D88\u606F",name:"MESSAGE_SEND_REPETITION"},{code:25016,msg:"\u9605\u8BFB\u540E\u9500\u6BC1\u6D88\u606F\u65F6\u95F4\u957F\u5EA6\u5FC5\u987B\u5927\u4E8E 0 ms",name:"MESSAGE_LIFETIME_AFTER_READ_ERROR"},{code:25017,msg:"\u5B9A\u65F6\u5220\u9664\u6D88\u606F\u65F6\u95F4\u957F\u5EA6\u5FC5\u987B\u5927\u4E8E 0 ms",name:"MESSAGE_LIFETIME_ERROR"},{code:21200,msg:"\u6D88\u606F\u64A4\u56DE\u6210\u529F",name:"MESSAGE_RECALL_SUCCESS"},{code:0,msg:"\u5185\u90E8\u4E1A\u52A1\u8C03\u7528\u6210\u529F",name:"COMMAND_SUCCESS"}];// 以下是对外暴露枚举
|
|
36
|
+
BACKWARD:0},CONVERSATION_ORDER={FORWARD:0,BACKWARD:1},MENTION_ORDER={FORWARD:1,BACKWARD:0},UPLOAD_TYPE={NONE:0,QINIU:1,ALI:4,S3:2,MINIO:3},UNDISTURB_TYPE={DISTURB:1,UNDISTURB:0},ErrorMessages=[{code:0,msg:"\u94FE\u63A5\u6210\u529F",name:"CONNECT_SUCCESS"},{code:11e3,msg:"\u9ED8\u8BA4\u9519\u8BEF",name:"CONNECT_ERROR"},{code:11001,msg:"\u672A\u4F20 Appkey",name:"CONNECT_APPKEY_IS_REQUIRE"},{code:11002,msg:"\u672A\u4F20 Token",name:"CONNECT_TOKEN_NOT_EXISTS"},{code:11003,msg:"Appkey \u4E0D\u5B58\u5728",name:"CONNECT_APPKEY_NOT_EXISTS"},{code:11004,msg:"Token \u4E0D\u5408\u6CD5",name:"CONNECT_TOKEN_ILLEGAL"},{code:11005,msg:"Token \u672A\u6388\u6743",name:"CONNECT_TOKEN_UNAUTHORIZED"},{code:11006,msg:"Token \u5DF2\u8FC7\u671F",name:"CONNECT_TOKEN_EXPIRE"},{code:11007,msg:"\u9700\u8981\u91CD\u5B9A\u5411",name:"CONNECT_REDIRECT"},{code:11008,msg:"\u4E0D\u652F\u6301\u7684\u5E73\u53F0\u7C7B\u578B",name:"CONNECT_UNSUPPORT_PLATFORM"},{code:11009,msg:"App \u5DF2\u5C01\u7981",name:"CONNECT_APP_BLOCKED"},{code:11010,msg:"\u7528\u6237\u5DF2\u5C01\u7981",name:"CONNECT_USER_BLOCKED"},{code:11011,msg:"\u88AB\u8E22\u4E0B\u7EBF",name:"CONNECT_USER_KICKED"},{code:11012,msg:"\u6CE8\u9500\u4E0B\u7EBF",name:"CONNECT_USER_LOGOUT"},{code:11013,msg:"\u4E0D\u652F\u6301\u7684\u4FE1\u4EE4",name:"CONNECT_SIGNAL_UNSUPPORT"},{code:11014,msg:"\u63A5\u53E3\u8C03\u7528\u8D85\u9891\uFF0C\u9ED8\u8BA4 100 \u6B21/\u79D2",name:"COMMAND_OVER_FREQUENCY"},{code:11020,msg:"\u5B89\u5168\u57DF\u540D\u6821\u9A8C\u5931\u8D25",name:"CONNECT_SECURITY_DOMAIN_ERROR"},{code:10102,msg:"\u7528\u6237\u4E0D\u5B58\u5728",name:"CONNECT_USER_NOT_EXISTS"},{code:10104,msg:"\u65F6\u533A\u4E0D\u5408\u6CD5",name:"PARAMS_TIMEZONE_ILLEGAL"},{code:12004,msg:"\u6D88\u606F\u683C\u5F0F\u4E0D\u5408\u6CD5",name:"PARAMS_MESSAGE_ILLEGAL"},{code:12005,msg:"\u5F53\u524D\u7528\u6237\u88AB\u5BF9\u65B9\u62C9\u9ED1",name:"REJECTED_BY_BLACKLIST"},{code:12006,msg:"\u6D88\u606F\u6269\u5C55\uFF0C\u5B57\u6BB5\u91CD\u590D",name:"KV_DUPLICATION"},{code:12007,msg:"\u6D88\u606F\u547D\u4E2D\u654F\u611F\u8BCD\u7B56\u7565\uFF0C\u88AB\u62E6\u622A",name:"MESSAGE_SENSITIVE_WORDS"},{code:13002,msg:"\u7528\u6237\u4E0D\u662F\u7FA4\u7EC4\u6210\u5458",name:"GROUP_NOT_GROUP_MEMBER"},{code:13003,msg:"\u7FA4\u7EC4\u88AB\u7981\u8A00",name:"GROUP_BANNED"},{code:13004,msg:"\u7FA4\u6210\u5458\u88AB\u7981\u8A00",name:"GROUP_MEMBER_BANNED"},{code:13005,msg:"\u7FA4\u6210\u5458\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650",name:"GROUP_MEMBER_OVERFLOW"},{code:14004,msg:"\u804A\u5929\u5BA4\u5C5E\u6027\u4E0D\u5B58\u5728",name:"CHATROOM_KV_NOT_EXISTS"},{code:14006,msg:"\u804A\u5929\u5BA4\u5DF2\u88AB\u9500\u6BC1",name:"CHATROOM_DESTROY"},{code:14007,msg:"\u5F53\u524D\u7528\u6237\u5DF2\u88AB\u7981\u8A00",name:"CHATROOM_MEMBER_BANNED"},{code:14008,msg:"\u5F53\u524D\u7528\u6237\u5DF2\u88AB\u5C01\u7981",name:"CHATROOM_MEMBER_BLOCKED"},{code:14001,msg:"\u672A\u52A0\u5165\u804A\u5929\u5BA4",name:"CHATROOM_NOT_JOIN"},{code:14002,msg:"\u804A\u5929\u5BA4\u5C5E\u6027\u4E2A\u6570\u8D85\u9650\u5236",name:"CHATROOM_ATTR_EXCEED_LIMIT"},{code:14003,msg:"\u4E0D\u53EF\u64CD\u4F5C\u5176\u5B83\u6210\u5458\u8BBE\u7F6E\u7684\u804A\u5929\u5BA4\u5C5E\u6027",name:"CHATROOM_ATTR_EXISTS"},{code:14005,msg:"\u804A\u5929\u5BA4\u4E0D\u5B58\u5728",name:"CHATROOM_NOT_EXISTS"},{code:11100,msg:"\u5165\u53C2pb\u89E3\u6790\u5931\u8D25",name:"PB_ERROR"},{code:13001,msg:"\u7FA4\u7EC4\u4E0D\u5B58\u5728",name:"GROUP_NOT_EXISTS"},{code:25e3,msg:"\u53C2\u6570\u7F3A\u5931\uFF0C\u8BF7\u68C0\u67E5\u4F20\u5165\u53C2\u6570",name:"ILLEGAL_PARAMS"},{code:25001,msg:"\u8FDE\u63A5\u5DF2\u5B58\u5728",name:"CONNECTION_EXISTS"},{code:25002,msg:"\u8FDE\u63A5\u4E0D\u5B58\u5728",name:"CONNECTION_NOT_READY"},{code:25003,msg:"\u53C2\u6570\u7C7B\u578B\u4E0D\u6B63\u786E",name:"ILLEGAL_TYPE_PARAMS"},{code:25004,msg:"\u8FDE\u63A5\u5F02\u5E38,\u4FE1\u4EE4\u53D1\u9001\u8D85\u65F6",name:"COMMAND_FAILED"},{code:25005,msg:"\u4E0A\u4F20\u6587\u4EF6\u7EC4\u4EF6\u4E3A\u7A7A",name:"UPLOAD_PLUGIN_ERROR"},{code:25006,msg:"\u4E0A\u4F20\u6587\u4EF6\u7EC4\u4EF6\u4E0E OSS \u5B58\u50A8\u4E0D\u4E00\u81F4",name:"UPLOAD_PLUGIN_NOTMATCH"},{code:25007,msg:"\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5",name:"UPLOADING_FILE_ERROR"},{code:25008,msg:"\u5355\u6B21\u5408\u5E76\u8F6C\u53D1\u6D88\u606F\u6761\u6570\u4E0A\u9650\u4E3A 20 \u6761",name:"TRANSFER_MESSAGE_COUNT_EXCEED"},{code:25009,msg:"\u672A\u5EFA\u7ACB\u672C\u5730\u6570\u636E\u5E93\u8FDE\u63A5\uFF0C\u8BF7\u4F18\u5148\u8C03\u7528\u8FDE\u63A5\u65B9\u6CD5",name:"DATABASE_NOT_OPENED"},{code:25010,msg:"Web SDK \u65B9\u6CD5\u672A\u5B9E\u73B0\uFF0C\u8BF7\u786E\u5B9A\u4F7F\u7528 PC SDK \u8C03\u7528",name:"SDK_FUNC_NOT_DEFINED"},{code:25011,msg:"\u5F15\u7528\u6D88\u606F\u5FC5\u987B\u4F20\u5165\u5B8C\u6210\u7684 Message \u5BF9\u8C61",name:"SEND_REFER_MESSAGE_ERROR"},{code:25012,msg:"IM \u670D\u52A1\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u8BBE\u5907\u7F51\u7EDC\u662F\u5426\u53EF\u7528",name:"IM_SERVER_CONNECT_ERROR"},{code:25013,msg:"\u53C2\u6570\u4E0D\u53EF\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u4F20\u5165\u53C2\u6570",name:"ILLEGAL_PARAMS_EMPTY"},{code:25014,msg:"SDK \u5185\u90E8\u6B63\u5728\u8FDE\u63A5\uFF0C\u65E0\u9700\u91CD\u590D\u8C03\u7528 connect \u65B9\u6CD5",name:"REPREAT_CONNECTION"},{code:25015,msg:"\u6D88\u606F\u91CD\u590D\u53D1\u9001\uFF0C\u76F8\u540C\u7684 tid \u4E14\u6B63\u5728\u53D1\u9001\u4E2D\uFF0C\u65E0\u9700\u518D\u6B21\u53D1\u9001\u6D88\u606F",name:"MESSAGE_SEND_REPETITION"},{code:25016,msg:"\u9605\u8BFB\u540E\u9500\u6BC1\u6D88\u606F\u65F6\u95F4\u957F\u5EA6\u5FC5\u987B\u5927\u4E8E 0 ms",name:"MESSAGE_LIFETIME_AFTER_READ_ERROR"},{code:25017,msg:"\u5B9A\u65F6\u5220\u9664\u6D88\u606F\u65F6\u95F4\u957F\u5EA6\u5FC5\u987B\u5927\u4E8E 0 ms",name:"MESSAGE_LIFETIME_ERROR"},{code:21200,msg:"\u6D88\u606F\u64A4\u56DE\u6210\u529F",name:"MESSAGE_RECALL_SUCCESS"},{code:21300,msg:"\u53D1\u5E03\u670B\u53CB\u5708\u53C2\u6570\u4E0D\u6B63\u786E\uFF0Ccontent \u548C mediaList \u5FC5\u987B\u4E8C\u9009\u4E00\u6216\u90FD\u4F20\u5982",name:"MOMENT_ADD_PARAM_ERROR"},{code:21301,msg:"\u53D1\u5E03\u670B\u53CB\u5708\u53C2\u6570\u4E0D\u6B63\u786E\uFF0CmediaList \u5FC5\u987B\u662F\u6570\u7EC4",name:"MOMENT_ADD_PARAM_MDL_ERROR"},{code:0,msg:"\u5185\u90E8\u4E1A\u52A1\u8C03\u7528\u6210\u529F",name:"COMMAND_SUCCESS"}];// 以下是对外暴露枚举
|
|
37
37
|
function getErrorType(){let e={};return utils.forEach(ErrorMessages,t=>{let{name:n,code:s,msg:o}=t;e[n]={code:s,msg:o}}),e}let ErrorType=getErrorType(),MESSAGE_TYPE={TEXT:"jg:text",STREAM_TEXT:"jgs:text",IMAGE:"jg:img",VOICE:"jg:voice",VIDEO:"jg:video",FILE:"jg:file",MERGE:"jg:merge",RECALL:"jg:recall",RECALL_INFO:"jg:recallinfo",READ_MSG:"jg:readntf",READ_GROUP_MSG:"jg:grpreadntf",MODIFY:"jg:modify",CLEAR_MSG:"jg:cleanmsg",CLEAR_UNREAD:"jg:clearunread",CALL_1V1_FINISHED:"jg:callfinishntf",COMMAND_DELETE_MSGS:"jg:delmsgs",COMMAND_UNDISTURB:"jg:undisturb",COMMAND_TOPCONVERS:"jg:topconvers",COMMAND_REMOVE_CONVERS:"jg:delconvers",COMMAND_ADD_CONVER:"jg:addconver",COMMAND_CLEAR_TOTALUNREAD:"jg:cleartotalunread",COMMAND_MARK_UNREAD:"jg:markunread",COMMAND_LOG_REPORT:"jg:logcmd",COMMAND_MSG_EXSET:"jg:msgexset",COMMAND_MSG_SET_TOP:"jg:topmsg",COMMAND_CONVERSATION_TAG_ADD:"jg:tagaddconvers",COMMAND_RTC_1V1_FINISHED:"jg:callfinishntf",// 删除 TAG 下会话
|
|
38
38
|
COMMAND_REMOVE_CONVERS_FROM_TAG:"jg:tagdelconvers",// 删除 TAG
|
|
39
39
|
COMMAND_CONVERSATION_TAG_REMOVE:"jg:delconvertags",// CLIENT_* 约定为客户端定义适用
|
|
40
|
-
CLIENT_REMOVE_MSGS:"jgc:removemsgs",CLIENT_REMOVE_CONVERS:"jgc:removeconvers",CLIENT_MARK_UNREAD:"jgc:markunread"},MENTION_TYPE={ALL:1,SOMEONE:2,ALL_SOMEONE:3},FILE_TYPE={IMAGE:1,AUDIO:2,VIDEO:3,FILE:4},MESSAGE_SENT_STATE={NONE:0,SENDING:1,SUCCESS:2,FAILED:3,UPLOADING:4},DISCONNECT_TYPE={DISCONNECT:1,CLOSE:2,ERROR:3,SERVER:4},UNREAD_TAG={READ:0,UNREAD:1},SET_SEARCH_CONTENT_TYPE={APPEND:1,REPLACE:2},CONVERSATION_TAG={jg_all:{id:"jg_all",type:1,name:"\u6D88\u606F"},jg_unread:{id:"jg_unread",type:1,name:"\u672A\u8BFB"},jg_mentionme:{id:"jg_mentionme",type:1,name:"@\u6211"},jg_private:{id:"jg_private",type:1,name:"\u5355\u804A"},jg_group:{id:"jg_group",type:1,name:"\u7FA4\u804A"}},CONVERATION_TAG_TYPE={USER:0,SYSNTEM:1,GLOBAL:2},RTC_STATE={NONE:0,INCOMING:1,OUTGOING:2,CONNECTING:3,CONNECTED:4},RTC_ROOM_TYPE={ONE_ONE:0,ONE_MORE:1},RTC_INVITE_TYPE={NONE:0,INVITE:1,ACCEPT:2,REJECT:3,CANCEL:4,TIMEOUT:5},RTC_CHANNEL={ZEGO:0},STREAM_EVENT={NONE:0,MESSAGE:1,FINISHED:2},USER_TYPE={USER:0,BOT:1},CONVERSATION_TOP_TYPE={BY_TOP_TIME:0,BY_MESSAGE_TIME:1},PLATFORM_TYPE={ANDROID:1,IOS:2,WEB:3,PC:4},PUSH_CHANNEL={NONE:0,APPLE:1,HUAWEI:2,XIAOMI:3}
|
|
40
|
+
CLIENT_REMOVE_MSGS:"jgc:removemsgs",CLIENT_REMOVE_CONVERS:"jgc:removeconvers",CLIENT_MARK_UNREAD:"jgc:markunread"},MENTION_TYPE={ALL:1,SOMEONE:2,ALL_SOMEONE:3},FILE_TYPE={IMAGE:1,AUDIO:2,VIDEO:3,FILE:4},MESSAGE_SENT_STATE={NONE:0,SENDING:1,SUCCESS:2,FAILED:3,UPLOADING:4},DISCONNECT_TYPE={DISCONNECT:1,CLOSE:2,ERROR:3,SERVER:4},UNREAD_TAG={READ:0,UNREAD:1},SET_SEARCH_CONTENT_TYPE={APPEND:1,REPLACE:2},CONVERSATION_TAG={jg_all:{id:"jg_all",type:1,name:"\u6D88\u606F"},jg_unread:{id:"jg_unread",type:1,name:"\u672A\u8BFB"},jg_mentionme:{id:"jg_mentionme",type:1,name:"@\u6211"},jg_private:{id:"jg_private",type:1,name:"\u5355\u804A"},jg_group:{id:"jg_group",type:1,name:"\u7FA4\u804A"}},CONVERATION_TAG_TYPE={USER:0,SYSNTEM:1,GLOBAL:2},RTC_STATE={NONE:0,INCOMING:1,OUTGOING:2,CONNECTING:3,CONNECTED:4},RTC_ROOM_TYPE={ONE_ONE:0,ONE_MORE:1},RTC_INVITE_TYPE={NONE:0,INVITE:1,ACCEPT:2,REJECT:3,CANCEL:4,TIMEOUT:5},RTC_CHANNEL={ZEGO:0},STREAM_EVENT={NONE:0,MESSAGE:1,FINISHED:2},USER_TYPE={USER:0,BOT:1},CONVERSATION_TOP_TYPE={BY_TOP_TIME:0,BY_MESSAGE_TIME:1},PLATFORM_TYPE={ANDROID:1,IOS:2,WEB:3,PC:4},PUSH_CHANNEL={NONE:0,APPLE:1,HUAWEI:2,XIAOMI:3},MOMENT_ORDER={// 正序
|
|
41
|
+
ASC:1,// 倒序
|
|
42
|
+
DESC:0},COMMENT_ORDER={// 正序
|
|
43
|
+
ASC:1,// 倒序
|
|
44
|
+
DESC:0},RESPONSE_CODE={SUCCESS:0};var ENUM=/*#__PURE__*/Object.freeze({__proto__:null,STORAGE:STORAGE,HEART_TIMEOUT:HEART_TIMEOUT,SYNC_MESSAGE_TIME:SYNC_MESSAGE_TIME,CONNECT_ACK_INDEX:CONNECT_ACK_INDEX,PONG_INDEX:PONG_INDEX,SIGNAL_NAME:SIGNAL_NAME,PLATFORM:PLATFORM,MSG_TOP_ACTION_TYPE:MSG_TOP_ACTION_TYPE,SIGNAL_CMD:SIGNAL_CMD,QOS:QOS,FUNC_PARAM_CHECKER:FUNC_PARAM_CHECKER,COMMAND_TOPICS:COMMAND_TOPICS,NOTIFY_TYPE:NOTIFY_TYPE,CONNECT_TOOL:CONNECT_TOOL,LOG_LEVEL:LOG_LEVEL,LOG_MODULE:LOG_MODULE,CHATROOM_ATTR_OP_TYPE:CHATROOM_ATTR_OP_TYPE,CHATROOM_EVENT_TYPE:CHATROOM_EVENT_TYPE,MEDIA_TYPE:MEDIA_TYPE,EVENT:EVENT,CONNECT_STATE:CONNECT_STATE,CONVERATION_TYPE:CONVERATION_TYPE,MESSAGE_ORDER:MESSAGE_ORDER,CONVERSATION_ORDER:CONVERSATION_ORDER,MENTION_ORDER:MENTION_ORDER,UPLOAD_TYPE:UPLOAD_TYPE,UNDISTURB_TYPE:UNDISTURB_TYPE,ErrorMessages:ErrorMessages,ErrorType:ErrorType,MESSAGE_TYPE:MESSAGE_TYPE,MENTION_TYPE:MENTION_TYPE,FILE_TYPE:FILE_TYPE,MESSAGE_SENT_STATE:MESSAGE_SENT_STATE,DISCONNECT_TYPE:DISCONNECT_TYPE,UNREAD_TAG:UNREAD_TAG,SET_SEARCH_CONTENT_TYPE:SET_SEARCH_CONTENT_TYPE,CONVERSATION_TAG:CONVERSATION_TAG,CONVERATION_TAG_TYPE:CONVERATION_TAG_TYPE,RTC_STATE:RTC_STATE,RTC_ROOM_TYPE:RTC_ROOM_TYPE,RTC_INVITE_TYPE:RTC_INVITE_TYPE,RTC_CHANNEL:RTC_CHANNEL,STREAM_EVENT:STREAM_EVENT,USER_TYPE:USER_TYPE,CONVERSATION_TOP_TYPE:CONVERSATION_TOP_TYPE,PLATFORM_TYPE:PLATFORM_TYPE,PUSH_CHANNEL:PUSH_CHANNEL,MOMENT_ORDER:MOMENT_ORDER,COMMENT_ORDER:COMMENT_ORDER,RESPONSE_CODE:RESPONSE_CODE});function Cache(){let e={},t=(t,n)=>{e[t]=n},n=t=>e[t]||{},s=t=>{delete e[t]},o=()=>{e={}},i=()=>e;return{set:t,get:n,remove:s,clear:o,getAll:i}}function WebStorage(){return localStorage}function UniStorage(){let e=e=>{uni.removeStorageSync(e)},t=e=>uni.getStorageSync(e),n=(e,t)=>{uni.setStorageSync(e,t)};return{removeItem:e,getItem:t,setItem:n}}let JStorage={};JStorage="undefined"==typeof uni?WebStorage():UniStorage();var JStorage$1=JStorage;let storageCacher=Cache(),_storage_private_prefix_="",getKey=e=>`${STORAGE.PREFIX}_${_storage_private_prefix_}_${e}`,set=(e,t)=>{let n=getKey(e),s={data:t};storageCacher.set(n,s),JStorage$1.setItem(n,utils.toJSON(s))},get=e=>{let t=getKey(e),n=storageCacher.get(t),s=n.data;if(!utils.isUndefined(s))return s;let o=JStorage$1.getItem(t);o=utils.parse(o)||{data:{}},storageCacher.set(t,o);let i=o.data;return i},remove=e=>{let t=getKey(e);storageCacher.remove(e),JStorage$1.removeItem(t)},setPrefix=e=>{_storage_private_prefix_=e};// 动态设置 storage key 前缀,例如 _appkey_userid_
|
|
41
45
|
var Storage={get,set,remove,setPrefix};/*!
|
|
42
46
|
* protobuf.js v7.2.6 (c) 2016, daniel wirtz
|
|
43
47
|
* compiled tue, 16 jan 2024 22:54:38 utc
|
|
@@ -48,7 +52,7 @@ var Storage={get,set,remove,setPrefix};/*!
|
|
|
48
52
|
更新版本需要修改:
|
|
49
53
|
1、对外暴露方式,i.util.global.protobuf 直接修改为了 JProtobuf
|
|
50
54
|
2、eval 替换成 new Function
|
|
51
|
-
*/let JProtobuf={};!function(_){var e=Math.min,a=Math.pow,d=Math.floor,p=String.fromCharCode;!function(s,o,e){var n=function i(e){var t=o[e];return t||s[e][0].call(t=o[e]={exports:{}},i,t,t.exports),t.exports}(e[0]);JProtobuf=n,"function"==typeof define&&define.amd&&define(["long"],function(e){return e&&e.isLong&&(n.util.Long=e,n.configure()),n}),"object"==typeof module&&module&&module.exports&&(module.exports=n)}({1:[function(e,t,s){t.exports=function(e,t){for(var i=Array(arguments.length-1),n=0,a=2,d=!0;a<arguments.length;)i[n++]=arguments[a++];return new Promise(function(s,o){i[n]=function(e){if(d)if(d=!1,e)o(e);else{for(var t=Array(arguments.length-1),i=0;i<t.length;)t[i++]=arguments[i];s.apply(null,t)}};try{e.apply(t||null,i)}catch(e){d&&(d=!1,o(e))}})}},{}],2:[function(e,t,s){s.length=function(e){var t=e.length;if(!t)return 0;for(var s=0;1<--t%4&&"="==(e[0|t]||"");)++s;return Math.ceil(3*e.length)/4-s};for(var d=Array(64),o=Array(123),n=0;64>n;)o[d[n]=26>n?n+65:52>n?n+71:62>n?n-4:43|n-59]=n++;s.encode=function(a,t,c){for(var n=null,m=[],s=0,l=0,E,g;t<c;)g=a[t++],0===l?(m[s++]=d[g>>2],E=(3&g)<<4,l=1):1===l?(m[s++]=d[E|g>>4],E=(15&g)<<2,l=2):2===l?(m[s++]=d[E|g>>6],m[s++]=d[63&g],l=0):void 0,8191<s&&((n=n||[]).push(p.apply(String,m)),s=0);return l&&(m[s++]=d[E],m[s++]=61,1===l&&(m[s++]=61)),n?(s&&n.push(p.apply(String,m.slice(0,s))),n.join("")):p.apply(String,m.slice(0,s))};var i="invalid encoding";s.decode=function(a,t,i){for(var d=i,e=0,p=0,c,m;p<a.length&&(m=a.charCodeAt(p++),!(61==m&&1<e));){if((m=o[m])===_)throw Error("invalid encoding");0===e?(c=m,e=1):1===e?(t[i++]=c<<2|(48&m)>>4,c=m,e=2):2===e?(t[i++]=(15&c)<<4|(60&m)>>2,c=m,e=3):3===e?(t[i++]=(3&c)<<6|m,e=0):void 0}if(1===e)throw Error("invalid encoding");return i-d},s.test=function(e){return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},{}],3:[function(e,t,s){function o(e,s){function p(m){if("string"!=typeof m){var l=c();if(o.verbose&&void 0,l="return "+l,m){for(var E=Object.keys(m),n=Array(E.length+1),r=Array(E.length),e=0;e<E.length;)n[e]=E[e],r[e]=m[E[e++]];return n[e]=l,Function.apply(null,n).apply(null,r)}return Function(l)()}for(var g=Array(arguments.length-1),T=0;T<g.length;)g[T]=arguments[++T];if(T=0,m=m.replace(/%([%dfijs])/g,function(e,t){var s=g[T++];return"d"===t||"f"===t?""+ +(""+s):"i"===t?""+d(s):"j"===t?JSON.stringify(s):"s"===t?""+s:"%"}),T!==g.length)throw Error("parameter count mismatch");return a.push(m),p}function c(n){return"function "+(n||s||"")+"("+(e&&e.join(",")||"")+"){\n "+a.join("\n ")+"\n}"}"string"==typeof e&&(s=e,e=_);var a=[];return p.toString=c,p}(t.exports=o).verbose=!1},{}],4:[function(e,t,s){function n(){this.i={}}(t.exports=n).prototype.on=function(e,t,s){return(this.i[e]||(this.i[e]=[])).push({fn:t,ctx:s||this}),this},n.prototype.off=function(e,t){if(e===_)this.i={};else if(t===_)this.i[e]=[];else for(var s=this.i[e],n=0;n<s.length;)s[n].fn===t?s.splice(n,1):++n;return this},n.prototype.emit=function(e){var t=this.i[e];if(t){for(var s=[],n=1;n<arguments.length;)s.push(arguments[n++]);for(n=0;n<t.length;)t[n].fn.apply(t[n++].ctx,s)}return this}},{}],5:[function(e,t,i){function a(o,n,p){return n="function"==typeof n?(p=n,{}):n||{},p?!n.xhr&&s&&s.readFile?s.readFile(o,function(e,t){return e&&"undefined"!=typeof XMLHttpRequest?a.xhr(o,n,p):e?p(e):p(null,n.binary?t:t.toString("utf8"))}):a.xhr(o,n,p):d(a,this,o,n)}t.exports=a;var d=e(1),s=e(7)("fs");a.xhr=function(s,o,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){if(4!==r.readyState)return _;if(0!==r.status&&200!==r.status)return n(Error("status "+r.status));if(o.binary){if(!(e=r.response))for(var e=[],s=0;s<r.responseText.length;++s)e.push(255&r.responseText.charCodeAt(s));return n(null,"undefined"==typeof Uint8Array?e:new Uint8Array(e))}return n(null,r.responseText)},o.binary&&("overrideMimeType"in r&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.responseType="arraybuffer"),r.open("GET",s),r.send()}},{1:1,7:7}],6:[function(e,t,s){function n(_){var C=Math.LN2,S=Math.log;function O(s,o,p,n){var r=Math.round,c=0>o?1:0;s(0===(o=c?-o:o)?0<1/o?0:2147483648:isNaN(o)?2143289344:34028234663852886e22<o?(2139095040|c<<31)>>>0:11754943508222875e-54>o?(c<<31|r(o/1401298464324817e-60))>>>0:(c<<31|127+(s=d(S(o)/C))<<23|8388607&r(8388608*(o*a(2,-s))))>>>0,p,n)}function t(e,s,o){return e=e(s,o),s=2*(e>>31)+1,o=255&e>>>23,e&=8388607,255==o?e?NaN:1/0*s:0==o?1401298464324817e-60*s*e:s*a(2,o-150)*(8388608+e)}function n(e,t,s){y[0]=e,t[s]=A[0],t[s+1]=A[1],t[s+2]=A[2],t[s+3]=A[3]}function i(e,t,s){y[0]=e,t[s]=A[3],t[s+1]=A[2],t[s+2]=A[1],t[s+3]=A[0]}function e(e,t){return A[0]=e[t],A[1]=e[t+1],A[2]=e[t+2],A[3]=e[t+3],y[0]}function s(e,t){return A[3]=e[t],A[2]=e[t+1],A[1]=e[t+2],A[0]=e[t+3],y[0]}function o(p,t,i,n,c,e){var s=0>n?1:0,m;0===(n=s?-n:n)?(p(0,c,e+t),p(0<1/n?0:2147483648,c,e+i)):isNaN(n)?(p(0,c,e+t),p(2146959360,c,e+i)):17976931348623157e292<n?(p(0,c,e+t),p((2146435072|s<<31)>>>0,c,e+i)):22250738585072014e-324>n?(p((m=n/5e-324)>>>0,c,e+t),p((s<<31|m/4294967296)>>>0,c,e+i)):(p(4503599627370496*(m=n*a(2,-(n=1024===(n=d(S(n)/C))?1023:n)))>>>0,c,e+t),p((s<<31|n+1023<<20|1048575&1048576*m)>>>0,c,e+i))}function r(s,o,d,p,c){return o=s(p,c+o),s=s(p,c+d),p=2*(s>>31)+1,c=2047&s>>>20,d=4294967296*(1048575&s)+o,2047==c?d?NaN:1/0*p:0==c?5e-324*p*d:p*a(2,c-1075)*(d+4503599627370496)}function l(e,t,s){N[0]=e,t[s]=M[0],t[s+1]=M[1],t[s+2]=M[2],t[s+3]=M[3],t[s+4]=M[4],t[s+5]=M[5],t[s+6]=M[6],t[s+7]=M[7]}function p(e,t,s){N[0]=e,t[s]=M[7],t[s+1]=M[6],t[s+2]=M[5],t[s+3]=M[4],t[s+4]=M[3],t[s+5]=M[2],t[s+6]=M[1],t[s+7]=M[0]}function I(e,t){return M[0]=e[t],M[1]=e[t+1],M[2]=e[t+2],M[3]=e[t+3],M[4]=e[t+4],M[5]=e[t+5],M[6]=e[t+6],M[7]=e[t+7],N[0]}function R(e,t){return M[7]=e[t],M[6]=e[t+1],M[5]=e[t+2],M[4]=e[t+3],M[3]=e[t+4],M[2]=e[t+5],M[1]=e[t+6],M[0]=e[t+7],N[0]}var y,A,N,M,v;return"undefined"==typeof Float32Array?(_.writeFloatLE=O.bind(null,E),_.writeFloatBE=O.bind(null,T),_.readFloatLE=t.bind(null,m),_.readFloatBE=t.bind(null,g)):(y=new Float32Array([-0]),A=new Uint8Array(y.buffer),v=128===A[3],_.writeFloatLE=v?n:i,_.writeFloatBE=v?i:n,_.readFloatLE=v?e:s,_.readFloatBE=v?s:e),"undefined"==typeof Float64Array?(_.writeDoubleLE=o.bind(null,E,0,4),_.writeDoubleBE=o.bind(null,T,4,0),_.readDoubleLE=r.bind(null,m,0,4),_.readDoubleBE=r.bind(null,g,4,0)):(N=new Float64Array([-0]),M=new Uint8Array(N.buffer),v=128===M[7],_.writeDoubleLE=v?l:p,_.writeDoubleBE=v?p:l,_.readDoubleLE=v?I:R,_.readDoubleBE=v?R:I),_}function E(e,t,s){t[s]=255&e,t[s+1]=255&e>>>8,t[s+2]=255&e>>>16,t[s+3]=e>>>24}function T(e,t,s){t[s]=e>>>24,t[s+1]=255&e>>>16,t[s+2]=255&e>>>8,t[s+3]=255&e}function m(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function g(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}t.exports=n(n)},{}],7:[function(e,t,s){function n(e){try{var t=new Function("require")(e);if(t&&(t.length||Object.keys(t).length))return t}catch(e){}return null}t.exports=n},{}],8:[function(s,t,o){var a=o.isAbsolute=function(e){return /^(?:\/|\w+:)/.test(e)},e=o.normalize=function(e){var s=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),o=a(e),e="";o&&(e=s.shift()+"/");for(var n=0;n<s.length;)".."===s[n]?0<n&&".."!==s[n-1]?s.splice(--n,2):o?s.splice(n,1):++n:"."===s[n]?s.splice(n,1):++n;return e+s.join("/")};o.resolve=function(s,o,r){return r||(o=e(o)),!a(o)&&(s=(s=r?s:e(s)).replace(/(?:\/|^)[^/]+$/,"")).length?e(s+"/"+o):o}},{}],9:[function(e,t,s){t.exports=function(a,i,n){var d=n||8192,r=d>>>1,e=null,p=d;return function(n){return 1>n||r<n?a(n):(d<p+n&&(e=a(d),p=0),n=i.call(e,p,p+=n),(7&p&&(p=1+(7|p)),n))}}},{}],10:[function(e,t,s){s.length=function(e){for(var t=0,s=0,o;s<e.length;++s)128>(o=e.charCodeAt(s))?t+=1:2048>o?t+=2:55296==(64512&o)&&56320==(64512&e.charCodeAt(s+1))?(++s,t+=4):t+=3;return t},s.read=function(a,t,d){if(1>d-t)return"";for(var n=null,c=[],s=0,m;t<d;)128>(m=a[t++])?c[s++]=m:191<m&&224>m?c[s++]=(31&m)<<6|63&a[t++]:239<m&&365>m?(m=((7&m)<<18|(63&a[t++])<<12|(63&a[t++])<<6|63&a[t++])-65536,c[s++]=55296+(m>>10),c[s++]=56320+(1023&m)):c[s++]=(15&m)<<12|(63&a[t++])<<6|63&a[t++],8191<s&&((n=n||[]).push(p.apply(String,c)),s=0);return n?(s&&n.push(p.apply(String,c.slice(0,s))),n.join("")):p.apply(String,c.slice(0,s))},s.write=function(a,t,i){for(var d=i,s=0,p,c;s<a.length;++s)128>(p=a.charCodeAt(s))?t[i++]=p:(2048>p?t[i++]=192|p>>6:(55296==(64512&p)&&56320==(64512&(c=a.charCodeAt(s+1)))?(++s,t[i++]=240|(p=65536+((1023&p)<<10)+(1023&c))>>18,t[i++]=128|63&p>>12):t[i++]=224|p>>12,t[i++]=128|63&p>>6),t[i++]=128|63&p);return i-d}},{}],11:[function(s,t,o){function n(s,o){e.test(s)||(s="google/protobuf/"+s+".proto",o={nested:{google:{nested:{protobuf:{nested:o}}}}}),n[s]=o}t.exports=n;var e=/\/|\./;n("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),n("duration",{Duration:t={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),n("timestamp",{Timestamp:t}),n("empty",{Empty:{fields:{}}}),n("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),n("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),n("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),n.get=function(e){return n[e]||null}},{}],12:[function(e,t,s){function a(a,t,i,n){var r=!1;if(!t.resolvedType){var d=!1;switch(t.type){case"double":case"float":a("m%s=Number(d%s)",n,n);break;case"uint32":case"fixed32":a("m%s=d%s>>>0",n,n);break;case"int32":case"sint32":case"sfixed32":a("m%s=d%s|0",n,n);break;case"uint64":d=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":a("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,d)("else if(typeof d%s===\"string\")",n)("m%s=parseInt(d%s,10)",n,n)("else if(typeof d%s===\"number\")",n)("m%s=d%s",n,n)("else if(typeof d%s===\"object\")",n)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",n,n,n,d?"true":"");break;case"bytes":a("if(typeof d%s===\"string\")",n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length >= 0)",n)("m%s=d%s",n,n);break;case"string":a("m%s=String(d%s)",n,n);break;case"bool":a("m%s=Boolean(d%s)",n,n)}}else if(t.resolvedType instanceof c){a("switch(d%s){",n);for(var p=t.resolvedType.values,s=Object.keys(p),o=0;o<s.length;++o)p[s[o]]!==t.typeDefault||r||(a("default:")("if(typeof(d%s)===\"number\"){m%s=d%s;break}",n,n,n),t.repeated||a("break"),r=!0),a("case%j:",s[o])("case %i:",p[s[o]])("m%s=%j",n,p[s[o]])("break");a("}")}else a("if(typeof d%s!==\"object\")",n)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",n,i,n);return a}function r(s,t,o,n){if(t.resolvedType)t.resolvedType instanceof c?s("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s",n,o,n,n,o,n,n):s("d%s=types[%i].toObject(m%s,o)",n,o,n);else{var i=!1;switch(t.type){case"double":case"float":s("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",n,n,n,n);break;case"uint64":i=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":s("if(typeof m%s===\"number\")",n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",n,n,n,n,i?"true":"",n);break;case"bytes":s("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:s("d%s=m%s",n,n)}}return s}var c=e(15),m=e(37);s.fromObject=function(o){var t=o.fieldsArray,i=m.codegen(["d"],o.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return i("return new this.ctor");i("var m=new this.ctor");for(var n=0;n<t.length;++n){var d=t[n].resolve(),p=m.safeProp(d.name);d.map?(i("if(d%s){",p)("if(typeof d%s!==\"object\")",p)("throw TypeError(%j)",d.fullName+": object expected")("m%s={}",p)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",p),a(i,d,n,p+"[ks[i]]")("}")("}")):d.repeated?(i("if(d%s){",p)("if(!Array.isArray(d%s))",p)("throw TypeError(%j)",d.fullName+": array expected")("m%s=[]",p)("for(var i=0;i<d%s.length;++i){",p),a(i,d,n,p+"[i]")("}")("}")):(d.resolvedType instanceof c||i("if(d%s!=null){",p),a(i,d,n,p),d.resolvedType instanceof c||i("}"))}return i("return m")},s.toObject=function(d){var t=d.fieldsArray.slice().sort(m.compareFieldsById);if(!t.length)return m.codegen()("return {}");for(var i=m.codegen(["m","o"],d.name+"$toObject")("if(!o)")("o={}")("var d={}"),n=[],l=[],e=[],s=0;s<t.length;++s)t[s].partOf||(t[s].resolve().repeated?n:t[s].map?l:e).push(t[s]);if(n.length){for(i("if(o.arrays||o.defaults){"),s=0;s<n.length;++s)i("d%s=[]",m.safeProp(n[s].name));i("}")}if(l.length){for(i("if(o.objects||o.defaults){"),s=0;s<l.length;++s)i("d%s={}",m.safeProp(l[s].name));i("}")}if(e.length){for(i("if(o.defaults){"),s=0;s<e.length;++s){var E=e[s],g=m.safeProp(E.name),T;E.resolvedType instanceof c?i("d%s=o.enums===String?%j:%j",g,E.resolvedType.valuesById[E.typeDefault],E.typeDefault):E.long?i("if(util.Long){")("var n=new util.Long(%i,%i,%j)",E.typeDefault.low,E.typeDefault.high,E.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",g)("}else")("d%s=o.longs===String?%j:%i",g,E.typeDefault.toString(),E.typeDefault.toNumber()):E.bytes?(T="["+Array.prototype.slice.call(E.typeDefault).join(",")+"]",i("if(o.bytes===String)d%s=%j",g,p.apply(String,E.typeDefault))("else{")("d%s=%s",g,T)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",g,g)("}")):i("d%s=%j",g,E.typeDefault)}i("}")}for(var y=!1,s=0;s<t.length;++s){var E=t[s],_=d.e.indexOf(E),g=m.safeProp(E.name);E.map?(y||(y=!0,i("var ks2")),i("if(m%s&&(ks2=Object.keys(m%s)).length){",g,g)("d%s={}",g)("for(var j=0;j<ks2.length;++j){"),r(i,E,_,g+"[ks2[j]]")("}")):E.repeated?(i("if(m%s&&m%s.length){",g,g)("d%s=[]",g)("for(var j=0;j<m%s.length;++j){",g),r(i,E,_,g+"[j]")("}")):(i("if(m%s!=null&&m.hasOwnProperty(%j)){",g,E.name),r(i,E,_,g),E.partOf&&i("if(o.oneofs)")("d%s=%j",m.safeProp(E.partOf.name),E.name)),i("}")}return i("return d")}},{15:15,37:37}],13:[function(e,t,s){t.exports=function(p){var t=d.codegen(["r","l"],p.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(p.fieldsArray.filter(function(e){return e.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");p.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var i=0;i<p.fieldsArray.length;++i){var c=p.e[i].resolve(),m=c.resolvedType instanceof o?"int32":c.type,l="m"+d.safeProp(c.name);t("case %i: {",c.id),c.map?(t("if(%s===util.emptyObject)",l)("%s={}",l)("var c2 = r.uint32()+r.pos"),a.defaults[c.keyType]===_?t("k=null"):t("k=%j",a.defaults[c.keyType]),a.defaults[m]===_?t("value=null"):t("value=%j",a.defaults[m]),t("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",c.keyType)("case 2:"),a.basic[m]===_?t("value=types[%i].decode(r,r.uint32())",i):t("value=r.%s()",m),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),a.long[c.keyType]===_?t("%s[k]=value",l):t("%s[typeof k===\"object\"?util.longToHash(k):k]=value",l)):c.repeated?(t("if(!(%s&&%s.length))",l,l)("%s=[]",l),a.packed[m]!==_&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",l,m)("}else"),a.basic[m]===_?t(c.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",l,i):t("%s.push(r.%s())",l,m)):a.basic[m]===_?t(c.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",l,i):t("%s=r.%s()",l,m),t("break")("}")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),i=0;i<p.e.length;++i){var E=p.e[i];E.required&&t("if(!m.hasOwnProperty(%j))",E.name)("throw util.ProtocolError(%j,{instance:m})","missing required '"+E.name+"'")}return t("return m")};var o=e(15),a=e(36),d=e(37)},{15:15,36:36,37:37}],14:[function(e,t,s){function d(e,t,s,n){t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",s,n,(3|t.id<<3)>>>0,(4|t.id<<3)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",s,n,(2|t.id<<3)>>>0)}t.exports=function(c){for(var t=a.codegen(["m","w"],c.name+"$encode")("if(!w)")("w=Writer.create()"),n=c.fieldsArray.slice().sort(a.compareFieldsById),r=0,l;r<n.length;++r){var E=n[r].resolve(),g=c.e.indexOf(E),T=E.resolvedType instanceof p?"int32":E.type,y=m.basic[T];l="m"+a.safeProp(E.name),E.map?(t("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",l,E.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",l)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(2|E.id<<3)>>>0,8|m.mapKey[E.keyType],E.keyType),y===_?t("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",g,l):t(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|y,T,l),t("}")("}")):E.repeated?(t("if(%s!=null&&%s.length){",l,l),E.packed&&m.packed[T]!==_?t("w.uint32(%i).fork()",(2|E.id<<3)>>>0)("for(var i=0;i<%s.length;++i)",l)("w.%s(%s[i])",T,l)("w.ldelim()"):(t("for(var i=0;i<%s.length;++i)",l),y===_?d(t,E,g,l+"[i]"):t("w.uint32(%i).%s(%s[i])",(E.id<<3|y)>>>0,T,l)),t("}")):(E.optional&&t("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",l,E.name),y===_?d(t,E,g,l):t("w.uint32(%i).%s(%s)",(E.id<<3|y)>>>0,T,l))}return t("return w")};var p=e(15),m=e(36),a=e(37)},{15:15,36:36,37:37}],15:[function(o,t,i){function n(d,t,i,n,r,e){if(a.call(this,d,i),t&&"object"!=typeof t)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=r||{},this.valuesOptions=e,this.reserved=_,t)for(var s=Object.keys(t),o=0;o<s.length;++o)"number"==typeof t[s[o]]&&(this.valuesById[this.values[s[o]]=t[s[o]]]=s[o])}t.exports=n;var a=o(24),s=(((n.prototype=Object.create(a.prototype)).constructor=n).className="Enum",o(23)),d=o(37);n.fromJSON=function(e,s){return e=new n(e,s.values,s.options,s.comment,s.comments),e.reserved=s.reserved,e},n.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,d.toObject(["options",this.options,"valuesOptions",this.valuesOptions,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:_,"comment",e?this.comment:_,"comments",e?this.comments:_])},n.prototype.add=function(e,t,s,n){if(!d.isString(e))throw TypeError("name must be a string");if(!d.isInteger(t))throw TypeError("id must be an integer");if(this.values[e]!==_)throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(this.valuesById[t]!==_){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return n&&(this.valuesOptions===_&&(this.valuesOptions={}),this.valuesOptions[e]=n||null),this.comments[e]=s||null,this},n.prototype.remove=function(e){if(!d.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this.valuesOptions&&delete this.valuesOptions[e],this},n.prototype.isReservedId=function(e){return s.isReservedId(this.reserved,e)},n.prototype.isReservedName=function(e){return s.isReservedName(this.reserved,e)}},{23:23,24:24,37:37}],16:[function(s,t,i){function d(a,t,i,n,d,E,u){if(m.isObject(n)?(u=d,E=n,n=d=_):m.isObject(d)&&(u=E,E=d,d=_),p.call(this,a,E),!m.isInteger(t)||0>t)throw TypeError("id must be a non-negative integer");if(!m.isString(i))throw TypeError("type must be a string");if(n!==_&&!l.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(d!==_&&!m.isString(d))throw TypeError("extend must be a string");this.rule=(n="proto3_optional"===n?"optional":n)&&"optional"!==n?n:_,this.type=i,this.id=t,this.extend=d||_,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!m.Long&&c.long[i]!==_,this.bytes="bytes"===i,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this.o=null,this.comment=u}t.exports=d;var p=s(24),n=(((d.prototype=Object.create(p.prototype)).constructor=d).className="Field",s(15)),c=s(36),m=s(37),l=/^required|optional|repeated$/,e;d.fromJSON=function(e,t){return new d(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(d.prototype,"packed",{get:function(){return null===this.o&&(this.o=!1!==this.getOption("packed")),this.o}}),d.prototype.setOption=function(e,t,s){return"packed"===e&&(this.o=null),p.prototype.setOption.call(this,e,t,s)},d.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,m.toObject(["rule","optional"!==this.rule&&this.rule||_,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:_])},d.prototype.resolve=function(){var s;return this.resolved?this:((this.typeDefault=c.defaults[this.type])===_?(this.resolvedType=(this.declaringField||this).parent.lookupTypeOrEnum(this.type),this.typeDefault=this.resolvedType instanceof e?null:this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof n&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(this.options.packed===_||!this.resolvedType||this.resolvedType instanceof n)||delete this.options.packed,Object.keys(this.options).length||(this.options=_)),this.long?(this.typeDefault=m.Long.fromNumber(this.typeDefault,"u"==(this.type[0]||"")),Object.freeze&&Object.freeze(this.typeDefault)):this.bytes&&"string"==typeof this.typeDefault&&(m.base64.test(this.typeDefault)?m.base64.decode(this.typeDefault,s=m.newBuffer(m.base64.length(this.typeDefault)),0):m.utf8.write(this.typeDefault,s=m.newBuffer(m.utf8.length(this.typeDefault)),0),this.typeDefault=s),this.defaultValue=this.map?m.emptyObject:this.repeated?m.emptyArray:this.typeDefault,this.parent instanceof e&&(this.parent.ctor.prototype[this.name]=this.defaultValue),p.prototype.resolve.call(this))},d.d=function(o,n,a,e){return"function"==typeof n?n=m.decorateType(n).name:n&&"object"==typeof n&&(n=m.decorateEnum(n).name),function(s,t){m.decorateType(s.constructor).add(new d(t,o,n,a,{default:e}))}},d.u=function(n){e=n}},{15:15,24:24,36:36,37:37}],17:[function(e,t,s){var o=t.exports=e(18);o.build="light",o.load=function(e,t,s){return(t="function"==typeof t?(s=t,new o.Root):t||new o.Root).load(e,s)},o.loadSync=function(e,t){return(t=t||new o.Root).loadSync(e)},o.encoder=e(14),o.decoder=e(13),o.verifier=e(40),o.converter=e(12),o.ReflectionObject=e(24),o.Namespace=e(23),o.Root=e(29),o.Enum=e(15),o.Type=e(35),o.Field=e(16),o.OneOf=e(25),o.MapField=e(20),o.Service=e(33),o.Method=e(22),o.Message=e(21),o.wrappers=e(41),o.types=e(36),o.util=e(37),o.ReflectionObject.u(o.Root),o.Namespace.u(o.Type,o.Service,o.Enum),o.Root.u(o.Type),o.Field.u(o.Type)},{12:12,13:13,14:14,15:15,16:16,18:18,20:20,21:21,22:22,23:23,24:24,25:25,29:29,33:33,35:35,36:36,37:37,40:40,41:41}],18:[function(s,t,o){function n(){e.util.u(),e.Writer.u(e.BufferWriter),e.Reader.u(e.BufferReader)}var e=o;e.build="minimal",e.Writer=s(42),e.BufferWriter=s(43),e.Reader=s(27),e.BufferReader=s(28),e.util=s(39),e.rpc=s(31),e.roots=s(30),e.configure=n,n()},{27:27,28:28,30:30,31:31,39:39,42:42,43:43}],19:[function(e,t,s){t=t.exports=e(17),t.build="full",t.tokenize=e(34),t.parse=e(26),t.common=e(11),t.Root.u(t.Type,t.parse,t.common)},{11:11,17:17,26:26,34:34}],20:[function(e,t,i){function a(a,t,i,n,r,e){if(d.call(this,a,t,n,_,_,r,e),!o.isString(i))throw TypeError("keyType must be a string");this.keyType=i,this.resolvedKeyType=null,this.map=!0}t.exports=a;var d=e(16),n=(((a.prototype=Object.create(d.prototype)).constructor=a).className="MapField",e(36)),o=e(37);a.fromJSON=function(e,t){return new a(e,t.id,t.keyType,t.type,t.options,t.comment)},a.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,o.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:_])},a.prototype.resolve=function(){if(this.resolved)return this;if(n.mapKey[this.keyType]===_)throw Error("invalid key type: "+this.keyType);return d.prototype.resolve.call(this)},a.d=function(s,n,r){return"function"==typeof r?r=o.decorateType(r).name:r&&"object"==typeof r&&(r=o.decorateEnum(r).name),function(e,t){o.decorateType(e.constructor).add(new a(t,s,n,r))}}},{16:16,36:36,37:37}],21:[function(s,t,o){function n(e){if(e)for(var t=Object.keys(e),s=0;s<t.length;++s)this[t[s]]=e[t[s]]}t.exports=n;var e=s(39);n.create=function(e){return this.$type.create(e)},n.encode=function(e,t){return this.$type.encode(e,t)},n.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},n.decode=function(e){return this.$type.decode(e)},n.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},n.verify=function(e){return this.$type.verify(e)},n.fromObject=function(e){return this.$type.fromObject(e)},n.toObject=function(e,t){return this.$type.toObject(e,t)},n.prototype.toJSON=function(){return this.$type.toObject(this,e.toJSONOptions)}},{39:39}],22:[function(e,t,s){function n(a,t,i,n,r,c,m,l,E){if(p.isObject(r)?(m=r,r=c=_):p.isObject(c)&&(m=c,c=_),t!==_&&!p.isString(t))throw TypeError("type must be a string");if(!p.isString(i))throw TypeError("requestType must be a string");if(!p.isString(n))throw TypeError("responseType must be a string");d.call(this,a,m),this.type=t||"rpc",this.requestType=i,this.requestStream=!!r||_,this.responseType=n,this.responseStream=!!c||_,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=l,this.parsedOptions=E}t.exports=n;var d=e(24),p=(((n.prototype=Object.create(d.prototype)).constructor=n).className="Method",e(37));n.fromJSON=function(e,t){return new n(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment,t.parsedOptions)},n.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,p.toObject(["type","rpc"!==this.type&&this.type||_,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",e?this.comment:_,"parsedOptions",this.parsedOptions])},n.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),d.prototype.resolve.call(this))}},{24:24,37:37}],23:[function(d,t,i){function n(e,t){if(!e||!e.length)return _;for(var s={},n=0;n<e.length;++n)s[e[n].name]=e[n].toJSON(t);return s}function a(e,t){c.call(this,e,t),this.nested=_,this.f=null}function p(e){return e.f=null,e}t.exports=a;var c=d(24),m=(((a.prototype=Object.create(c.prototype)).constructor=a).className="Namespace",d(16)),l=d(37),E=d(25),u,g,T;a.fromJSON=function(e,t){return new a(e,t.options).addJSON(t.nested)},a.arrayToJSON=n,a.isReservedId=function(e,t){if(e)for(var s=0;s<e.length;++s)if("string"!=typeof e[s]&&e[s][0]<=t&&e[s][1]>t)return!0;return!1},a.isReservedName=function(e,t){if(e)for(var s=0;s<e.length;++s)if(e[s]===t)return!0;return!1},Object.defineProperty(a.prototype,"nestedArray",{get:function(){return this.f||(this.f=l.toArray(this.nested))}}),a.prototype.toJSON=function(e){return l.toObject(["options",this.options,"nested",n(this.nestedArray,e)])},a.prototype.addJSON=function(e){if(e)for(var t=Object.keys(e),n=0,s;n<t.length;++n)s=e[t[n]],this.add((s.fields===_?s.values===_?s.methods===_?s.id===_?a:m:g:T:u).fromJSON(t[n],s));return this},a.prototype.get=function(e){return this.nested&&this.nested[e]||null},a.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof T)return this.nested[e].values;throw Error("no such enum: "+e)},a.prototype.add=function(e){if(!(e instanceof m&&e.extend!==_||e instanceof u||e instanceof E||e instanceof T||e instanceof g||e instanceof a))throw TypeError("object must be a valid nested object");if(this.nested){var t=this.get(e.name);if(t){if(!(t instanceof a&&e instanceof a)||t instanceof u||t instanceof g)throw Error("duplicate name '"+e.name+"' in "+this);for(var s=t.nestedArray,n=0;n<s.length;++n)e.add(s[n]);this.remove(t),this.nested||(this.nested={}),e.setOptions(t.options,!0)}}else this.nested={};return(this.nested[e.name]=e).onAdd(this),p(this)},a.prototype.remove=function(e){if(!(e instanceof c))throw TypeError("object must be a ReflectionObject");if(e.parent!==this)throw Error(e+" is not a member of "+this);return delete this.nested[e.name],Object.keys(this.nested).length||(this.nested=_),e.onRemove(this),p(this)},a.prototype.define=function(e,s){if(l.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var o=this,i;0<e.length;)if(i=e.shift(),!(o.nested&&o.nested[i]))o.add(o=new a(i));else if(!((o=o.nested[i])instanceof a))throw Error("path conflicts with non-namespace objects");return s&&o.addJSON(s),o},a.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof a?e[t++].resolveAll():e[t++].resolve();return this.resolve()},a.prototype.lookup=function(s,o,d){if("boolean"==typeof o?(d=o,o=_):o&&!Array.isArray(o)&&(o=[o]),l.isString(s)&&s.length){if("."===s)return this.root;s=s.split(".")}else if(!s.length)return this;if(""===s[0])return this.root.lookup(s.slice(1),o);var p=this.get(s[0]);if(!p){for(var c=0;c<this.nestedArray.length;++c)if(this.f[c]instanceof a&&(p=this.f[c].lookup(s,o,!0)))return p;}else if(1===s.length){if(!o||~o.indexOf(p.constructor))return p;}else if(p instanceof a&&(p=p.lookup(s.slice(1),o,!0)))return p;return null===this.parent||d?null:this.parent.lookup(s,o)},a.prototype.lookupType=function(e){var t=this.lookup(e,[u]);if(t)return t;throw Error("no such type: "+e)},a.prototype.lookupEnum=function(e){var t=this.lookup(e,[T]);if(t)return t;throw Error("no such Enum '"+e+"' in "+this)},a.prototype.lookupTypeOrEnum=function(e){var t=this.lookup(e,[u,T]);if(t)return t;throw Error("no such Type or Enum '"+e+"' in "+this)},a.prototype.lookupService=function(e){var t=this.lookup(e,[g]);if(t)return t;throw Error("no such Service '"+e+"' in "+this)},a.u=function(e,t,s){u=e,g=t,T=s}},{16:16,24:24,25:25,37:37}],24:[function(s,t,i){function n(e,t){if(!a.isString(e))throw TypeError("name must be a string");if(t&&!a.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}(t.exports=n).className="ReflectionObject";var a=s(37),e;Object.defineProperties(n.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),n.prototype.toJSON=function(){throw Error()},n.prototype.onAdd=function(n){this.parent&&this.parent!==n&&this.parent.remove(this),this.parent=n,this.resolved=!1,n=n.root,n instanceof e&&n.h(this)},n.prototype.onRemove=function(n){n=n.root,n instanceof e&&n.a(this),this.parent=null,this.resolved=!1},n.prototype.resolve=function(){return this.resolved||this.root instanceof e&&(this.resolved=!0),this},n.prototype.getOption=function(e){return this.options?this.options[e]:_},n.prototype.setOption=function(e,t,s){return s&&this.options&&this.options[e]!==_||((this.options||(this.options={}))[e]=t),this},n.prototype.setParsedOption=function(o,i,t){this.parsedOptions||(this.parsedOptions=[]);var n=this.parsedOptions,s,d;return t?(s=n.find(function(e){return Object.prototype.hasOwnProperty.call(e,o)}))?(d=s[o],a.setProperty(d,t,i)):((s={})[o]=a.setProperty({},t,i),n.push(s)):((d={})[o]=i,n.push(d)),this},n.prototype.setOptions=function(e,t){if(e)for(var s=Object.keys(e),n=0;n<s.length;++n)this.setOption(s[n],e[s[n]],t);return this},n.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},n.u=function(n){e=n}},{37:37}],25:[function(a,t,i){function d(e,t,s,o){if(Array.isArray(t)||(s=t,t=_),p.call(this,e,s),t!==_&&!Array.isArray(t))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=o}function o(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}t.exports=d;var p=a(24),e=(((d.prototype=Object.create(p.prototype)).constructor=d).className="OneOf",a(16)),r=a(37);d.fromJSON=function(e,t){return new d(e,t.oneof,t.options,t.comment)},d.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,r.toObject(["options",this.options,"oneof",this.oneof,"comment",e?this.comment:_])},d.prototype.add=function(n){if(n instanceof e)return n.parent&&n.parent!==this.parent&&n.parent.remove(n),this.oneof.push(n.name),this.fieldsArray.push(n),o(n.partOf=this),this;throw TypeError("field must be a Field")},d.prototype.remove=function(n){if(!(n instanceof e))throw TypeError("field must be a Field");var t=this.fieldsArray.indexOf(n);if(0>t)throw Error(n+" is not a member of "+this);return this.fieldsArray.splice(t,1),-1<(t=this.oneof.indexOf(n.name))&&this.oneof.splice(t,1),n.partOf=null,this},d.prototype.onAdd=function(e){p.prototype.onAdd.call(this,e);for(var t=0,s;t<this.oneof.length;++t)s=e.get(this.oneof[t]),s&&!s.partOf&&(s.partOf=this).fieldsArray.push(s);o(this)},d.prototype.onRemove=function(e){for(var t=0,s;t<this.fieldsArray.length;++t)(s=this.fieldsArray[t]).parent&&s.parent.remove(s);p.prototype.onRemove.call(this,e)},d.d=function(){for(var e=Array(arguments.length),n=0;n<arguments.length;)e[n]=arguments[n++];return function(n,t){r.decorateType(n.constructor).add(new d(t,e)),Object.defineProperty(n,t,{get:r.oneOfGetter(e),set:r.oneOfSetter(e)})}}},{16:16,24:24,37:37}],26:[function(e,t,s){function ee(U,t,G){function q(e,t,s){var n=ee.filename;return s||(ee.filename=null),Error("illegal "+(t||"token")+" '"+e+"' ("+(n?n+", ":"")+"line "+Y.line+")")}function L(){var e=[],n;do if("\""!==(n=Q())&&"'"!==n)throw q(n);while((e.push(Q()),W(n),"\""===(n=J())||"'"===n));return e.join("")}function k(s){var o=Q();switch(o){case"'":case"\"":return K(o),L();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{var n=o,a=!0,r=1;switch("-"==(n[0]||"")&&(r=-1,n=n.substring(1)),n){case"inf":case"INF":case"Inf":return r*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(i.test(n))return r*parseInt(n,10);if(l.test(n))return r*parseInt(n,16);if(T.test(n))return r*parseInt(n,8);if(S.test(n))return r*parseFloat(n);throw q(n,"number",!0)}catch(e){if(s&&D.test(o))return o;throw q(o,"value")}}function O(e,t){for(var s;t&&("\""===(s=J())||"'"===s)?e.push(L()):e.push([s=P(Q()),W("to",!0)?P(Q()):s]),W(",",!0););W(";")}function P(e,t){switch(e){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(t||"-"!=(e[0]||"")){if(r.test(e))return parseInt(e,10);if(u.test(e))return parseInt(e,16);if(C.test(e))return parseInt(e,8)}throw q(e,"id")}function A(o,t){switch(t){case"option":return V(o,t),W(";"),1;case"message":return F(o),1;case"enum":return N(o),1;case"service":var i=o,a=t,d;if(R.test(a=Q()))return x(d=new m(a),function(a){if(!A(d,a)){if("rpc"!==a)throw q(a);var p=d,i=v(),n=a;if(!R.test(a=Q()))throw q(a,"name");var r=a,c,m,l;if(W("("),W("stream",!0)&&(m=!0),!D.test(a=Q()))throw q(a);if(c=a,W(")"),W("returns"),W("("),W("stream",!0)&&(l=!0),!D.test(a=Q()))throw q(a);a=a,W(")");var u=new E(r,n,c,a,m,l);u.comment=i,x(u,function(e){if("option"!==e)throw q(e);V(u,e),W(";")}),p.add(u)}}),i.add(d),1;throw q(a,"service name");case"extend":var p=o,i=t,s;if(D.test(i=Q()))return s=i,x(null,function(e){switch(e){case"required":case"repeated":H(p,e,s);break;case"optional":H(p,$?"proto3_optional":"optional",s);break;default:if(!$||!D.test(e))throw q(e);K(e),H(p,"optional",s)}}),1;throw q(i,"reference")}}function x(s,t,o){var n=Y.line,e;if(s&&("string"!=typeof s.comment&&(s.comment=v()),s.filename=ee.filename),W("{",!0)){for(;"}"!==(e=Q());)t(e);W(";",!0)}else o&&o(),W(";"),s&&("string"!=typeof s.comment||M)&&(s.comment=v(n)||s.comment)}function F(e,t){if(!R.test(t=Q()))throw q(t,"type name");var a=new n(t);x(a,function(d){if(!A(a,d))switch(d){case"map":var t=a,i=(W("<"),Q());if(y.mapKey[i]===_)throw q(i,"type");W(",");var m=Q();if(!D.test(m))throw q(m,"type");W(">");var r=Q();if(!R.test(r))throw q(r,"name");W("=");var l=new p(X(r),P(Q()),i,m);x(l,function(e){if("option"!==e)throw q(e);V(l,e),W(";")},function(){j(l)}),t.add(l);break;case"required":case"repeated":H(a,d);break;case"optional":H(a,$?"proto3_optional":"optional");break;case"oneof":if(r=a,i=d,!R.test(i=Q()))throw q(i,"name");var s=new c(X(i));x(s,function(e){"option"===e?(V(s,e),W(";")):(K(e),H(s,"optional"))}),r.add(s);break;case"extensions":O(a.extensions||(a.extensions=[]));break;case"reserved":O(a.reserved||(a.reserved=[]),!0);break;default:if(!$||!D.test(d))throw q(d);K(d),H(a,"optional")}}),e.add(a)}function H(p,t,i){var m=Q();if("group"===m){var l=p,o=t,E=Q(),T,C;if(R.test(E))return C=g.lcFirst(E),E===C&&(E=g.ucFirst(E)),W("="),S=P(Q()),(T=new n(E)).group=!0,(C=new d(C,S,E,o)).filename=ee.filename,x(T,function(e){switch(e){case"option":V(T,e),W(";");break;case"required":case"repeated":H(T,e);break;case"optional":H(T,$?"proto3_optional":"optional");break;case"message":F(T);break;case"enum":N(T);break;default:throw q(e)}}),void l.add(T).add(C);throw q(E,"name")}for(;m.endsWith(".")||J().startsWith(".");)m+=Q();if(!D.test(m))throw q(m,"type");var S=Q();if(!R.test(S))throw q(S,"name");S=X(S),W("=");var O=new d(S,P(Q()),m,t,i);x(O,function(e){if("option"!==e)throw q(e);V(O,e),W(";")},function(){j(O)}),"proto3_optional"===t?(o=new c("_"+S),O.setOption("proto3_optional",!0),o.add(O),p.add(o)):p.add(O),$||!O.repeated||y.packed[m]===_&&y.basic[m]!==_||O.setOption("packed",!1,!0)}function N(e,t){if(!R.test(t=Q()))throw q(t,"name");var a=new o(t);x(a,function(s){switch(s){case"option":V(a,s),W(";");break;case"reserved":O(a.reserved||(a.reserved=[]),!0);break;default:var t=a,o=s;if(!R.test(o))throw q(o,"name");W("=");var n=P(Q(),!0),i={options:_,setOption:function(e,t){this.options===_&&(this.options={}),this.options[e]=t}};return x(i,function(e){if("option"!==e)throw q(e);V(i,e),W(";")},function(){j(i)}),void t.add(o,n,i.comment,i.options)}}),e.add(a)}function V(o,t){var a=W("(",!0);if(!D.test(t=Q()))throw q(t,"name");var d=t,p=d,a=(a&&(W(")"),p=d="("+d+")",t=J(),f.test(t)&&(c=t.slice(1),d+=t,Q())),W("="),function n(a,i){if(W("{",!0)){for(var t={};!W("}",!0);){if(!R.test(oe=Q()))throw q(oe,"name");if(null===oe)throw q(oe,"end of input");var r=oe,d,p;if(W(":",!0),"{"===J())d=n(a,i+"."+oe);else if("["!==J())d=k(!0),B(a,i+"."+oe,d);else if(d=[],W("[",!0)){for(;p=k(!0),d.push(p),W(",",!0););W("]"),void 0!==p&&B(a,i+"."+oe,p)}var c=t[r];c&&(d=[].concat(c).concat(d)),t[r]=d,W(",",!0),W(";",!0)}return t}var m=k(!0);return B(a,i,m),m}(o,d)),c;t=p,d=a,p=c,(a=o).setParsedOption&&a.setParsedOption(t,d,p)}function B(e,t,s){e.setOption&&e.setOption(t,s)}function j(e){if(W("[",!0)){for(;V(e,"option"),W(",",!0););W("]")}}t instanceof I||(G=t,t=new I);for(var M=(G=G||ee.defaults).preferTrailingComment||!1,Y=a(U,G.alternateCommentMode||!1),Q=Y.next,K=Y.push,J=Y.peek,W=Y.skip,v=Y.cmnt,b=!0,$=!1,z=t,X=G.keepCase?function(e){return e}:g.camelCase,Z,te,ne,se,oe,ie,re;null!==(oe=Q());)switch(oe){case"package":if(!b)throw q(oe);if(Z!==_)throw q("package");if(Z=Q(),!D.test(Z))throw q(Z,"name");z=z.define(Z),W(";");break;case"import":if(!b)throw q(oe);switch(re=ie=void 0,J()){case"weak":re=ne=ne||[],Q();break;case"public":Q();default:re=te=te||[]}ie=L(),W(";"),re.push(ie);break;case"syntax":if(!b)throw q(oe);if(W("="),se=L(),!($="proto3"===se)&&"proto2"!==se)throw q(se,"syntax");W(";");break;case"option":V(z,oe),W(";");break;default:if(A(z,oe)){b=!1;continue}throw q(oe)}return ee.filename=null,{package:Z,imports:te,weakImports:ne,syntax:se,root:t}}(t.exports=ee).filename=null,ee.defaults={keepCase:!1};var a=e(34),I=e(29),n=e(35),d=e(16),p=e(20),c=e(25),o=e(15),m=e(33),E=e(22),y=e(36),g=e(37),i=/^[1-9][0-9]*$/,r=/^-?[1-9][0-9]*$/,l=/^0[x][0-9a-fA-F]+$/,u=/^-?0[x][0-9a-fA-F]+$/,T=/^0[0-7]+$/,C=/^-?0[0-7]+$/,S=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,R=/^[a-zA-Z_][a-zA-Z_0-9]*$/,D=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,f=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/},{15:15,16:16,20:20,22:22,25:25,29:29,33:33,34:34,35:35,36:36,37:37}],27:[function(m,t,i){function E(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function n(e){this.buf=e,this.pos=0,this.len=e.length}function u(){return p.Buffer?function(e){return(n.create=function(e){return p.Buffer.isBuffer(e)?new c(e):o(e)})(e)}:o}function g(){var n=new e(0,0),t=0;if(!(4<this.len-this.pos)){for(;3>t;++t){if(this.pos>=this.len)throw E(this);if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*t)>>>0,128>this.buf[this.pos++])return n}return n.lo=(n.lo|(127&this.buf[this.pos++])<<7*t)>>>0,n}for(;4>t;++t)if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*t)>>>0,128>this.buf[this.pos++])return n;if(n.lo=(n.lo|(127&this.buf[this.pos])<<28)>>>0,n.hi=(n.hi|(127&this.buf[this.pos])>>4)>>>0,128>this.buf[this.pos++])return n;if(t=0,4<this.len-this.pos){for(;5>t;++t)if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,128>this.buf[this.pos++])return n;}else for(;5>t;++t){if(this.pos>=this.len)throw E(this);if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,128>this.buf[this.pos++])return n}throw Error("invalid varint encoding")}function l(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function d(){if(this.pos+8>this.len)throw E(this,8);return new e(l(this.buf,this.pos+=4),l(this.buf,this.pos+=4))}t.exports=n;var p=m(39),e=p.LongBits,s=p.utf8,o="undefined"==typeof Uint8Array?function(e){if(Array.isArray(e))return new n(e);throw Error("illegal buffer")}:function(e){if(e instanceof Uint8Array||Array.isArray(e))return new n(e);throw Error("illegal buffer")},c,T;n.create=u(),n.prototype.c=p.Array.prototype.subarray||p.Array.prototype.slice,n.prototype.uint32=(T=4294967295,function(){if(T=(127&this.buf[this.pos])>>>0,128>this.buf[this.pos++]||(T=(T|(127&this.buf[this.pos])<<7)>>>0,128>this.buf[this.pos++]||(T=(T|(127&this.buf[this.pos])<<14)>>>0,128>this.buf[this.pos++]||(T=(T|(127&this.buf[this.pos])<<21)>>>0,128>this.buf[this.pos++]||(T=(T|(15&this.buf[this.pos])<<28)>>>0,128>this.buf[this.pos++]||!((this.pos+=5)>this.len))))))return T;throw this.pos=this.len,E(this,10)}),n.prototype.int32=function(){return 0|this.uint32()},n.prototype.sint32=function(){var e=this.uint32();return 0|e>>>1^-(1&e)},n.prototype.bool=function(){return 0!==this.uint32()},n.prototype.fixed32=function(){if(this.pos+4>this.len)throw E(this,4);return l(this.buf,this.pos+=4)},n.prototype.sfixed32=function(){if(this.pos+4>this.len)throw E(this,4);return 0|l(this.buf,this.pos+=4)},n.prototype.float=function(){if(this.pos+4>this.len)throw E(this,4);var e=p.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},n.prototype.double=function(){if(this.pos+8>this.len)throw E(this,4);var e=p.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},n.prototype.bytes=function(){var e=this.uint32(),s=this.pos,o=this.pos+e;if(o>this.len)throw E(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(s,o):s===o?(e=p.Buffer)?e.alloc(0):new this.buf.constructor(0):this.c.call(this.buf,s,o)},n.prototype.string=function(){var e=this.bytes();return s.read(e,0,e.length)},n.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw E(this,e);this.pos+=e}else do if(this.pos>=this.len)throw E(this);while(128&this.buf[this.pos++]);return this},n.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},n.u=function(e){c=e,n.create=u(),c.u();var t=p.Long?"toLong":"toNumber";p.merge(n.prototype,{int64:function(){return g.call(this)[t](!1)},uint64:function(){return g.call(this)[t](!0)},sint64:function(){return g.call(this).zzDecode()[t](!1)},fixed64:function(){return d.call(this)[t](!0)},sfixed64:function(){return d.call(this)[t](!1)}})}},{39:39}],28:[function(o,t,i){function n(e){s.call(this,e)}t.exports=n;var s=o(27),r=((n.prototype=Object.create(s.prototype)).constructor=n,o(39));n.u=function(){r.Buffer&&(n.prototype.c=r.Buffer.prototype.slice)},n.prototype.string=function(){var n=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=e(this.pos+n,this.len)):this.buf.toString("utf-8",this.pos,this.pos=e(this.pos+n,this.len))},n.u()},{27:27,39:39}],29:[function(c,t,i){function n(e){a.call(this,"",e),this.deferred=[],this.files=[]}function m(){}function l(s,t){var o=t.parent.lookup(t.extend),i;if(o)return i=new e(t.fullName,t.id,t.type,t.rule,_,t.options),o.get(i.name)||((i.declaringField=t).extensionField=i,o.add(i)),1}t.exports=n;var a=c(23),e=(((n.prototype=Object.create(a.prototype)).constructor=n).className="Root",c(16)),s=c(15),o=c(25),E=c(37),u,g,T;n.fromJSON=function(e,t){return t=t||new n,e.options&&t.setOptions(e.options),t.addJSON(e.nested)},n.prototype.resolvePath=E.path.resolve,n.prototype.fetch=E.fetch,n.prototype.load=function C(d,p,y){function S(e,t){if(y){if(o)throw e;var s=y;y=null,s(e,t)}}function O(e){var n=e.lastIndexOf("google/protobuf/");return-1<n&&(e=e.substring(n),e in T)?e:null}function f(s,t){try{if(E.isString(t)&&"{"==(t[0]||"")&&(t=JSON.parse(t)),E.isString(t)){g.filename=s;var d=g(t,c,p),r=0,m;if(d.imports)for(;r<d.imports.length;++r)(m=O(d.imports[r])||c.resolvePath(s,d.imports[r]))&&a(m);if(d.weakImports)for(r=0;r<d.weakImports.length;++r)(m=O(d.weakImports[r])||c.resolvePath(s,d.weakImports[r]))&&a(m,!0)}else c.setOptions(t.options).addJSON(t.nested)}catch(e){S(e)}o||u||S(null,c)}function a(e,s){if(e=O(e)||e,!~c.files.indexOf(e))if(c.files.push(e),e in T)o?f(e,T[e]):(++u,setTimeout(function(){--u,f(e,T[e])}));else if(o){var i;try{i=E.fs.readFileSync(e).toString("utf8")}catch(e){return void(s||S(e))}f(e,i)}else++u,c.fetch(e,function(n,t){--u,y&&(n?s?u||S(null,c):S(n):f(e,t))})}"function"==typeof p&&(y=p,p=_);var c=this;if(!y)return E.asPromise(C,c,d,p);var o=y===m,u=0;E.isString(d)&&(d=[d]);for(var t=0,I;t<d.length;++t)(I=c.resolvePath("",d[t]))&&a(I);return o?c:(u||S(null,c),_)},n.prototype.loadSync=function(e,t){if(E.isNode)return this.load(e,t,m);throw Error("not supported")},n.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(e){return"'extend "+e.extend+"' in "+e.parent.fullName}).join(", "));return a.prototype.resolveAll.call(this)};var y=/^[A-Z]/;n.prototype.h=function(r){if(r instanceof e)r.extend===_||r.extensionField||l(0,r)||this.deferred.push(r);else if(r instanceof s)y.test(r.name)&&(r.parent[r.name]=r.values);else if(!(r instanceof o)){if(r instanceof u)for(var t=0;t<this.deferred.length;)l(0,this.deferred[t])?this.deferred.splice(t,1):++t;for(var a=0;a<r.nestedArray.length;++a)this.h(r.f[a]);y.test(r.name)&&(r.parent[r.name]=r)}},n.prototype.a=function(o){var t;if(o instanceof e)o.extend!==_&&(o.extensionField?(o.extensionField.parent.remove(o.extensionField),o.extensionField=null):-1<(t=this.deferred.indexOf(o))&&this.deferred.splice(t,1));else if(o instanceof s)y.test(o.name)&&delete o.parent[o.name];else if(o instanceof a){for(var r=0;r<o.nestedArray.length;++r)this.a(o.f[r]);y.test(o.name)&&delete o.parent[o.name]}},n.u=function(e,t,s){u=e,g=t,T=s}},{15:15,16:16,23:23,25:25,37:37}],30:[function(e,t,s){t.exports={}},{}],31:[function(e,t,s){s.Service=e(32)},{32:32}],32:[function(e,t,s){function n(e,t,s){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");a.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=!!t,this.responseDelimited=!!s}t.exports=n;var a=e(39);((n.prototype=Object.create(a.EventEmitter.prototype)).constructor=n).prototype.rpcCall=function s(d,n,p,i,e){if(!i)throw TypeError("request must be specified");var r=this;if(!e)return a.asPromise(s,r,d,n,p,i);if(!r.rpcImpl)return setTimeout(function(){e(Error("already ended"))},0),_;try{return r.rpcImpl(d,n[r.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(n,t){if(n)return r.emit("error",n,d),e(n);if(null===t)return r.end(!0),_;if(!(t instanceof p))try{t=p[r.responseDelimited?"decodeDelimited":"decode"](t)}catch(n){return r.emit("error",n,d),e(n)}return r.emit("data",t,d),e(null,t)})}catch(n){return r.emit("error",n,d),setTimeout(function(){e(n)},0),_}},n.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{39:39}],33:[function(a,t,i){function d(n,t){e.call(this,n,t),this.methods={},this.l=null}function n(e){return e.l=null,e}t.exports=d;var e=a(23),o=(((d.prototype=Object.create(e.prototype)).constructor=d).className="Service",a(22)),p=a(37),c=a(31);d.fromJSON=function(s,t){var i=new d(s,t.options);if(t.methods)for(var n=Object.keys(t.methods),r=0;r<n.length;++r)i.add(o.fromJSON(n[r],t.methods[n[r]]));return t.nested&&i.addJSON(t.nested),i.comment=t.comment,i},d.prototype.toJSON=function(s){var t=e.prototype.toJSON.call(this,s),o=!!s&&!!s.keepComments;return p.toObject(["options",t&&t.options||_,"methods",e.arrayToJSON(this.methodsArray,s)||{},"nested",t&&t.nested||_,"comment",o?this.comment:_])},Object.defineProperty(d.prototype,"methodsArray",{get:function(){return this.l||(this.l=p.toArray(this.methods))}}),d.prototype.get=function(n){return this.methods[n]||e.prototype.get.call(this,n)},d.prototype.resolveAll=function(){for(var n=this.methodsArray,t=0;t<n.length;++t)n[t].resolve();return e.prototype.resolve.call(this)},d.prototype.add=function(s){if(this.get(s.name))throw Error("duplicate name '"+s.name+"' in "+this);return s instanceof o?n((this.methods[s.name]=s).parent=this):e.prototype.add.call(this,s)},d.prototype.remove=function(s){if(s instanceof o){if(this.methods[s.name]!==s)throw Error(s+" is not a member of "+this);return delete this.methods[s.name],s.parent=null,n(this)}return e.prototype.remove.call(this,s)},d.prototype.create=function(a,t,i){for(var n=new c.Service(a,t,i),e=0,d,m;e<this.methodsArray.length;++e)m=p.lcFirst((d=this.l[e]).resolve().name).replace(/[^$\w_]/g,""),n[m]=p.codegen(["r","c"],p.isReserved(m)?m+"_":m)("return this.rpcCall(m,q,s,r,c)")({m:d,q:d.resolvedRequestType.ctor,s:d.resolvedResponseType.ctor});return n}},{22:22,23:23,31:31,37:37}],34:[function(o,t,i){function n(e){return e.replace(u,function(e,t){return"\\"===t||""===t?t:r[t]||""})}function a(T,C){function a(e){return Error("illegal "+e+" (line "+I+")")}function y(e){return T[0|e]||""}function t(a,d,i){var p={type:T[0|a++]||"",lineEmpty:!1,leading:i},i=C?2:3,e=a-i,E;do if(0>--e||"\n"==(E=T[0|e]||"")){p.lineEmpty=!0;break}while(" "===E||"\t"===E);for(var g=T.substring(a,d).split(l),o=0;o<g.length;++o)g[o]=g[o].replace(C?m:c,"").trim();p.text=g.join("\n").trim(),A[I]=p,R=I}function i(e){var n=g(e),e=T.substring(e,n);return /^\s*\/\//.test(e)}function g(e){for(var t=e;t<O&&"\n"!==y(t);)t++;return t}function o(){if(0<N.length)return N.shift();if(M){var c="'"===M?d:s,m=(c.lastIndex=S-1,c.exec(T));if(m)return S=c.lastIndex,r(M),M=null,n(m[1]);throw a("string")}var d=0===S,l,_,R,A,v;do{if(S===O)return null;for(l=!1;E.test(R=y(S));)if("\n"===R&&(d=!0,++I),++S===O)return null;if("/"===y(S)){if(++S===O)throw a("comment");if("/"!==y(S)){if("*"!==(R=y(S)))return"/";A=S+1,v=C||"*"===y(A);do if("\n"===R&&++I,++S===O)throw a("comment");while((_=R,R=y(S),"*"!==_||"/"!==R));++S,v&&(t(A,S-2,d),d=!0)}else if(C){if(v=!1,i((A=S)-1))for(v=!0;(S=g(S))!==O&&(S++,d&&i(S)););else S=e(O,g(S)+1);v&&(t(A,S,d),d=!0),I++}else{for(v="/"===y(A=S+1);"\n"!==y(++S);)if(S===O)return null;++S,v&&(t(A,S-1,d),d=!0),++I}l=!0}}while(l);var h=S;if(p.lastIndex=0,!p.test(y(h++)))for(;h<O&&!p.test(y(h));)++h;return c=T.substring(S,S=h),"\""!=c&&"'"!=c||(M=c),c}function r(e){N.push(e)}function u(){if(!N.length){var e=o();if(null===e)return null;r(e)}return N[0]}T=T.toString();var S=0,O=T.length,I=1,R=0,A={},N=[],M=null;return Object.defineProperty({next:o,peek:u,push:r,skip:function(e,t){var s=u();if(s===e)return o(),!0;if(t)return!1;throw a("token '"+s+"', '"+e+"' expected")},cmnt:function(e){var t=null,s;return e===_?(s=A[I-1],delete A[I-1],s&&(C||"*"===s.type||s.lineEmpty)&&(t=s.leading?s.text:null)):(R<e&&u(),s=A[e],delete A[e],!s||s.lineEmpty||!C&&"/"!==s.type||(t=s.leading?null:s.text)),t}},"line",{get:function(){return I}})}t.exports=a;var p=/[\s{}=;:[\],'"()<>]/g,s=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,d=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,c=/^ *[*/]+ */,m=/^\s*\*?\/*/,l=/\n/g,E=/\s/,u=/\\(.?)/g,r={0:"\0",r:"\r",n:"\n",t:"\t"};a.unescape=n},{}],35:[function(E,t,i){function g(e,t){m.call(this,e,t),this.fields={},this.oneofs=_,this.extensions=_,this.reserved=_,this.group=_,this.p=null,this.e=null,this.v=null,this.b=null}function n(e){return e.p=e.e=e.v=null,delete e.encode,delete e.decode,delete e.verify,e}t.exports=g;var m=E(23),o=(((g.prototype=Object.create(m.prototype)).constructor=g).className="Type",E(15)),u=E(25),T=E(16),C=E(20),a=E(33),r=E(21),e=E(27),s=E(42),c=E(37),d=E(14),p=E(13),l=E(40),S=E(12),y=E(41);Object.defineProperties(g.prototype,{fieldsById:{get:function(){if(!this.p){this.p={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var s=this.fields[e[t]],o=s.id;if(this.p[o])throw Error("duplicate id "+o+" in "+this);this.p[o]=s}}return this.p}},fieldsArray:{get:function(){return this.e||(this.e=c.toArray(this.fields))}},oneofsArray:{get:function(){return this.v||(this.v=c.toArray(this.oneofs))}},ctor:{get:function(){return this.b||(this.ctor=g.generateConstructor(this)())},set:function(e){for(var t=e.prototype,s=(t instanceof r||((e.prototype=new r).constructor=e,c.merge(e.prototype,t)),e.$type=e.prototype.$type=this,c.merge(e,r,!0),this.b=e,0);s<this.fieldsArray.length;++s)this.e[s].resolve();for(var o={},s=0;s<this.oneofsArray.length;++s)o[this.v[s].resolve().name]={get:c.oneOfGetter(this.v[s].oneof),set:c.oneOfSetter(this.v[s].oneof)};s&&Object.defineProperties(e.prototype,o)}}}),g.generateConstructor=function(e){for(var t=c.codegen(["p"],e.name),n=0,s;n<e.fieldsArray.length;++n)(s=e.e[n]).map?t("this%s={}",c.safeProp(s.name)):s.repeated&&t("this%s=[]",c.safeProp(s.name));return t("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},g.fromJSON=function(d,t){for(var i=new g(d,t.options),n=(i.extensions=t.extensions,i.reserved=t.reserved,Object.keys(t.fields)),p=0;p<n.length;++p)i.add((void 0===t.fields[n[p]].keyType?T:C).fromJSON(n[p],t.fields[n[p]]));if(t.oneofs)for(n=Object.keys(t.oneofs),p=0;p<n.length;++p)i.add(u.fromJSON(n[p],t.oneofs[n[p]]));if(t.nested)for(n=Object.keys(t.nested),p=0;p<n.length;++p){var c=t.nested[n[p]];i.add((c.id===_?c.fields===_?c.values===_?c.methods===_?m:a:o:g:T).fromJSON(n[p],c))}return t.extensions&&t.extensions.length&&(i.extensions=t.extensions),t.reserved&&t.reserved.length&&(i.reserved=t.reserved),t.group&&(i.group=!0),t.comment&&(i.comment=t.comment),i},g.prototype.toJSON=function(e){var t=m.prototype.toJSON.call(this,e),s=!!e&&!!e.keepComments;return c.toObject(["options",t&&t.options||_,"oneofs",m.arrayToJSON(this.oneofsArray,e),"fields",m.arrayToJSON(this.fieldsArray.filter(function(e){return!e.declaringField}),e)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:_,"reserved",this.reserved&&this.reserved.length?this.reserved:_,"group",this.group||_,"nested",t&&t.nested||_,"comment",s?this.comment:_])},g.prototype.resolveAll=function(){for(var e=this.fieldsArray,t=0;t<e.length;)e[t++].resolve();for(var s=this.oneofsArray,t=0;t<s.length;)s[t++].resolve();return m.prototype.resolveAll.call(this)},g.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},g.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);if(e instanceof T&&e.extend===_){if((this.p||this.fieldsById)[e.id])throw Error("duplicate id "+e.id+" in "+this);if(this.isReservedId(e.id))throw Error("id "+e.id+" is reserved in "+this);if(this.isReservedName(e.name))throw Error("name '"+e.name+"' is reserved in "+this);return e.parent&&e.parent.remove(e),(this.fields[e.name]=e).message=this,e.onAdd(this),n(this)}return e instanceof u?(this.oneofs||(this.oneofs={}),(this.oneofs[e.name]=e).onAdd(this),n(this)):m.prototype.add.call(this,e)},g.prototype.remove=function(e){if(e instanceof T&&e.extend===_){if(this.fields&&this.fields[e.name]===e)return delete this.fields[e.name],e.parent=null,e.onRemove(this),n(this);throw Error(e+" is not a member of "+this)}if(e instanceof u){if(this.oneofs&&this.oneofs[e.name]===e)return delete this.oneofs[e.name],e.parent=null,e.onRemove(this),n(this);throw Error(e+" is not a member of "+this)}return m.prototype.remove.call(this,e)},g.prototype.isReservedId=function(e){return m.isReservedId(this.reserved,e)},g.prototype.isReservedName=function(e){return m.isReservedName(this.reserved,e)},g.prototype.create=function(e){return new this.ctor(e)},g.prototype.setup=function(){for(var o=this.fullName,a=[],i=0;i<this.fieldsArray.length;++i)a.push(this.e[i].resolve().resolvedType);this.encode=d(this)({Writer:s,types:a,util:c}),this.decode=p(this)({Reader:e,types:a,util:c}),this.verify=l(this)({types:a,util:c}),this.fromObject=S.fromObject(this)({types:a,util:c}),this.toObject=S.toObject(this)({types:a,util:c});var o=y[o],m;return o&&((m=Object.create(this)).fromObject=this.fromObject,this.fromObject=o.fromObject.bind(m),m.toObject=this.toObject,this.toObject=o.toObject.bind(m)),this},g.prototype.encode=function(e,t){return this.setup().encode(e,t)},g.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},g.prototype.decode=function(e,t){return this.setup().decode(e,t)},g.prototype.decodeDelimited=function(n){return n instanceof e||(n=e.create(n)),this.decode(n,n.uint32())},g.prototype.verify=function(e){return this.setup().verify(e)},g.prototype.fromObject=function(e){return this.setup().fromObject(e)},g.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},g.d=function(e){return function(n){c.decorateType(n,e)}}},{12:12,13:13,14:14,15:15,16:16,20:20,21:21,23:23,25:25,27:27,33:33,37:37,40:40,41:41,42:42}],36:[function(s,o,i){function n(e,t){var s=0,o={};for(t|=0;s<e.length;)o[a[s+t]]=e[s++];return o}var s=s(37),a=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];i.basic=n([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=n([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",s.emptyArray,null]),i.long=n([0,0,0,1,1],7),i.mapKey=n([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=n([1,5,0,0,0,5,5,0,0,0,1,1,0])},{37:37}],37:[function(d,n,t){var p=n.exports=d(39),s=d(30),o=(p.codegen=d(3),p.fetch=d(5),p.path=d(8),p.fs=p.inquire("fs"),p.toArray=function(e){if(e){for(var t=Object.keys(e),s=Array(t.length),n=0;n<t.length;)s[n]=e[t[n++]];return s}return[]},p.toObject=function(s){for(var t={},o=0;o<s.length;){var i=s[o++],a=s[o++];a!==_&&(t[i]=a)}return t},/\\/g),i=/"/g,c=(p.isReserved=function(e){return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},p.safeProp=function(e){return!/^[$\w_]+$/.test(e)||p.isReserved(e)?"[\""+e.replace(o,"\\\\").replace(i,"\\\"")+"\"]":"."+e},p.ucFirst=function(e){return(e[0]||"").toUpperCase()+e.substring(1)},/_([a-z])/g),m=(p.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(c,function(e,t){return t.toUpperCase()})},p.compareFieldsById=function(e,t){return e.id-t.id},p.decorateType=function(e,t){return e.$type?(t&&e.$type.name!==t&&(p.decorateRoot.remove(e.$type),e.$type.name=t,p.decorateRoot.add(e.$type)),e.$type):(t=new(l=l||d(35))(t||e.name),p.decorateRoot.add(t),t.ctor=e,Object.defineProperty(e,"$type",{value:t,enumerable:!1}),Object.defineProperty(e.prototype,"$type",{value:t,enumerable:!1}),t)},0),l,E;p.decorateEnum=function(e){var t;return e.$type||(t=new(E=E||d(15))("Enum"+m++,e),p.decorateRoot.add(t),Object.defineProperty(e,"$type",{value:t,enumerable:!1}),t)},p.setProperty=function(e,t,s){if("object"!=typeof e)throw TypeError("dst must be an object");if(t)return function a(s,o,i){var t=o.shift();return"__proto__"!==t&&"prototype"!==t&&(0<o.length?s[t]=a(s[t]||{},o,i):((o=s[t])&&(i=[].concat(o).concat(i)),s[t]=i)),s}(e,t=t.split("."),s);throw TypeError("path must be specified")},Object.defineProperty(p,"decorateRoot",{get:function(){return s.decorated||(s.decorated=new(d(29)))}})},{15:15,29:29,3:3,30:30,35:35,39:39,5:5,8:8}],38:[function(a,t,i){function d(e,t){this.lo=e>>>0,this.hi=t>>>0}t.exports=d;var e=a(39),r=d.zero=new d(0,0),n=(r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1},d.zeroHash="\0\0\0\0\0\0\0\0",d.fromNumber=function(e){var s,o;return 0===e?r:(o=(e=(s=0>e)?-e:e)>>>0,e=(e-o)/4294967296>>>0,s&&(e=~e>>>0,o=~o>>>0,4294967295<++o&&(o=0,4294967295<++e&&(e=0))),new d(o,e))},d.from=function(n){if("number"==typeof n)return d.fromNumber(n);if(e.isString(n)){if(!e.Long)return d.fromNumber(parseInt(n,10));n=e.Long.fromString(n)}return n.low||n.high?new d(n.low>>>0,n.high>>>0):r},d.prototype.toNumber=function(e){var n;return!e&&this.hi>>>31?(e=1+~this.lo>>>0,n=~this.hi>>>0,-(e+4294967296*(n=e?n:n+1>>>0))):this.lo+4294967296*this.hi},d.prototype.toLong=function(n){return e.Long?new e.Long(0|this.lo,0|this.hi,!!n):{low:0|this.lo,high:0|this.hi,unsigned:!!n}},String.prototype.charCodeAt);d.fromHash=function(e){return"\0\0\0\0\0\0\0\0"===e?r:new d((n.call(e,0)|n.call(e,1)<<8|n.call(e,2)<<16|n.call(e,3)<<24)>>>0,(n.call(e,4)|n.call(e,5)<<8|n.call(e,6)<<16|n.call(e,7)<<24)>>>0)},d.prototype.toHash=function(){return p(255&this.lo,255&this.lo>>>8,255&this.lo>>>16,this.lo>>>24,255&this.hi,255&this.hi>>>8,255&this.hi>>>16,this.hi>>>24)},d.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},d.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},d.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,s=this.hi>>>24;return 0==s?0==t?16384>e?128>e?1:2:2097152>e?3:4:16384>t?128>t?5:6:2097152>t?7:8:128>s?9:10}},{39:39}],39:[function(o,t,i){function a(s,t,o){for(var n=Object.keys(t),i=0;i<n.length;++i)s[n[i]]!==_&&o||(s[n[i]]=t[n[i]]);return s}function e(e){function s(e,t){return this instanceof s?void(Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,s):Object.defineProperty(this,"stack",{value:Error().stack||""}),t&&a(this,t)):new s(e,t)}return s.prototype=Object.create(Error.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:_,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),s}var s=i;s.asPromise=o(1),s.base64=o(2),s.EventEmitter=o(4),s.float=o(6),s.inquire=o(7),s.utf8=o(10),s.pool=o(9),s.LongBits=o(38),s.isNode=!!("undefined"!=typeof global&&global&&global.process&&global.process.versions&&global.process.versions.node),s.global=s.isNode&&global||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,s.emptyArray=Object.freeze?Object.freeze([]):[],s.emptyObject=Object.freeze?Object.freeze({}):{},s.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&d(e)===e},s.isString=function(e){return"string"==typeof e||e instanceof String},s.isObject=function(e){return e&&"object"==typeof e},s.isset=s.isSet=function(e,t){var s=e[t];return null!=s&&e.hasOwnProperty(t)&&("object"!=typeof s||0<(Array.isArray(s)?s:Object.keys(s)).length)},s.Buffer=function(){try{var e=s.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),s.y=null,s.w=null,s.newBuffer=function(e){return"number"==typeof e?s.Buffer?s.w(e):new s.Array(e):s.Buffer?s.y(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},s.Array="undefined"==typeof Uint8Array?Array:Uint8Array,s.Long=s.global.dcodeIO&&s.global.dcodeIO.Long||s.global.Long||s.inquire("long"),s.key2Re=/^true|false|0|1$/,s.key32Re=/^-?(?:0|[1-9][0-9]*)$/,s.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,s.longToHash=function(e){return e?s.LongBits.from(e).toHash():s.LongBits.zeroHash},s.longFromHash=function(e,n){return e=s.LongBits.fromHash(e),s.Long?s.Long.fromBits(e.lo,e.hi,n):e.toNumber(!!n)},s.merge=a,s.lcFirst=function(e){return(e[0]||"").toLowerCase()+e.substring(1)},s.newError=e,s.ProtocolError=e("ProtocolError"),s.oneOfGetter=function(e){for(var s={},t=0;t<e.length;++t)s[e[t]]=1;return function(){for(var e=Object.keys(this),t=e.length-1;-1<t;--t)if(1===s[e[t]]&&this[e[t]]!==_&&null!==this[e[t]])return e[t]}},s.oneOfSetter=function(e){return function(n){for(var t=0;t<e.length;++t)e[t]!==n&&delete this[e[t]]}},s.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},s.u=function(){var e=s.Buffer;e?(s.y=e.from!==Uint8Array.from&&e.from||function(n,t){return new e(n,t)},s.w=e.allocUnsafe||function(n){return new e(n)}):s.y=s.w=null}},{1:1,10:10,2:2,38:38,4:4,6:6,7:7,9:9}],40:[function(e,t,s){function d(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function n(o,t,i,n){if(!t.resolvedType)switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":o("if(!util.isInteger(%s))",n)("return%j",d(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":o("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",d(t,"integer|Long"));break;case"float":case"double":o("if(typeof %s!==\"number\")",n)("return%j",d(t,"number"));break;case"bool":o("if(typeof %s!==\"boolean\")",n)("return%j",d(t,"boolean"));break;case"string":o("if(!util.isString(%s))",n)("return%j",d(t,"string"));break;case"bytes":o("if(!(%s&&typeof %s.length===\"number\"||util.isString(%s)))",n,n,n)("return%j",d(t,"buffer"))}else if(t.resolvedType instanceof a){o("switch(%s){",n)("default:")("return%j",d(t,"enum value"));for(var r=Object.keys(t.resolvedType.values),e=0;e<r.length;++e)o("case %i:",t.resolvedType.values[r[e]]);o("break")("}")}else o("{")("var e=types[%i].verify(%s);",i,n)("if(e)")("return%j+e",t.name+".")("}");return o}t.exports=function(a){var t=p.codegen(["m"],a.name+"$verify")("if(typeof m!==\"object\"||m===null)")("return%j","object expected"),i=a.oneofsArray,c={};i.length&&t("var p={}");for(var r=0;r<a.fieldsArray.length;++r){var m=a.e[r].resolve(),l="m"+p.safeProp(m.name),E;m.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",l,m.name),m.map?(t("if(!util.isObject(%s))",l)("return%j",d(m,"object"))("var k=Object.keys(%s)",l)("for(var i=0;i<k.length;++i){"),function(e,t,s){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",s)("return%j",d(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",s)("return%j",d(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",s)("return%j",d(t,"boolean key"))}}(t,m,"k[i]"),n(t,m,r,l+"[k[i]]")("}")):m.repeated?(t("if(!Array.isArray(%s))",l)("return%j",d(m,"array"))("for(var i=0;i<%s.length;++i){",l),n(t,m,r,l+"[i]")("}")):(m.partOf&&(E=p.safeProp(m.partOf.name),1===c[m.partOf.name]&&t("if(p%s===1)",E)("return%j",m.partOf.name+": multiple values"),c[m.partOf.name]=1,t("p%s=1",E)),n(t,m,r,l)),m.optional&&t("}")}return t("return null")};var a=e(15),p=e(37)},{15:15,37:37}],41:[function(e,t,s){var a=e(21);s[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(1+e["@type"].lastIndexOf("/")),t=this.lookup(t),s;if(t)return~(s="."==(e["@type"][0]||"")?e["@type"].slice(1):e["@type"]).indexOf("/")||(s="/"+s),this.create({type_url:s,value:t.encode(t.fromObject(e)).finish()})}return this.fromObject(e)},toObject:function(o,d){var i="",p="",c,m;return d&&d.json&&o.type_url&&o.value&&(p=o.type_url.substring(1+o.type_url.lastIndexOf("/")),i=o.type_url.substring(0,1+o.type_url.lastIndexOf("/")),(c=this.lookup(p))&&(o=c.decode(o.value))),!(o instanceof this.ctor)&&o instanceof a?(c=o.$type.toObject(o,d),m="."===o.$type.fullName[0]?o.$type.fullName.slice(1):o.$type.fullName,c["@type"]=p=(i=""===i?"type.googleapis.com/":i)+m,c):this.toObject(o,d)}}},{21:21}],42:[function(m,t,i){function E(e,t,s){this.fn=e,this.len=t,this.next=_,this.val=s}function n(){}function g(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function a(){this.len=0,this.head=new E(n,0,0),this.tail=this.head,this.states=null}function c(){return C.Buffer?function(){return(a.create=function(){return new u})()}:function(){return new a}}function l(e,t,s){t[s]=255&e}function d(e,t){this.len=e,this.next=_,this.val=t}function p(e,t,s){for(;e.hi;)t[s++]=128|127&e.lo,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;127<e.lo;)t[s++]=128|127&e.lo,e.lo>>>=7;t[s++]=e.lo}function T(e,t,s){t[s]=255&e,t[s+1]=255&e>>>8,t[s+2]=255&e>>>16,t[s+3]=e>>>24}t.exports=a;var C=m(39),e=C.LongBits,s=C.base64,o=C.utf8,u;a.create=c(),a.alloc=function(e){return new C.Array(e)},C.Array!==Array&&(a.alloc=C.pool(a.alloc,C.Array.prototype.subarray)),a.prototype.g=function(e,t,s){return this.tail=this.tail.next=new E(e,t,s),this.len+=t,this},(d.prototype=Object.create(E.prototype)).fn=function(e,s,o){for(;127<e;)s[o++]=128|127&e,e>>>=7;s[o]=e},a.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new d(128>(e>>>=0)?1:16384>e?2:2097152>e?3:268435456>e?4:5,e)).len,this},a.prototype.int32=function(n){return 0>n?this.g(p,10,e.fromNumber(n)):this.uint32(n)},a.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},a.prototype.int64=a.prototype.uint64=function(n){return n=e.from(n),this.g(p,n.length(),n)},a.prototype.sint64=function(n){return n=e.from(n).zzEncode(),this.g(p,n.length(),n)},a.prototype.bool=function(e){return this.g(l,1,e?1:0)},a.prototype.sfixed32=a.prototype.fixed32=function(e){return this.g(T,4,e>>>0)},a.prototype.sfixed64=a.prototype.fixed64=function(n){return n=e.from(n),this.g(T,4,n.lo).g(T,4,n.hi)},a.prototype.float=function(e){return this.g(C.float.writeFloatLE,4,e)},a.prototype.double=function(e){return this.g(C.float.writeDoubleLE,8,e)};var S=C.Array.prototype.set?function(e,t,s){t.set(e,s)}:function(e,t,s){for(var n=0;n<e.length;++n)t[s+n]=e[n]};a.prototype.bytes=function(e){var o=e.length>>>0,r;return o?(C.isString(e)&&(r=a.alloc(o=s.length(e)),s.decode(e,r,0),e=r),this.uint32(o).g(S,o,e)):this.g(l,1,0)},a.prototype.string=function(e){var t=o.length(e);return t?this.uint32(t).g(o.write,t,e):this.g(l,1,0)},a.prototype.fork=function(){return this.states=new g(this),this.head=this.tail=new E(n,0,0),this.len=0,this},a.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new E(n,0,0),this.len=0),this},a.prototype.ldelim=function(){var e=this.head,t=this.tail,s=this.len;return this.reset().uint32(s),s&&(this.tail.next=e.next,this.tail=t,this.len+=s),this},a.prototype.finish=function(){for(var e=this.head.next,s=this.constructor.alloc(this.len),o=0;e;)e.fn(e.val,s,o),o+=e.len,e=e.next;return s},a.u=function(e){u=e,a.create=c(),u.u()}},{39:39}],43:[function(a,t,i){function n(){o.call(this)}function s(e,t,s){40>e.length?r.utf8.write(e,t,s):t.utf8Write?t.utf8Write(e,s):t.write(e,s)}t.exports=n;var o=a(42),r=((n.prototype=Object.create(o.prototype)).constructor=n,a(39));n.u=function(){n.alloc=r.w,n.writeBytesBuffer=r.Buffer&&r.Buffer.prototype instanceof Uint8Array&&"set"===r.Buffer.prototype.set.name?function(e,t,s){t.set(e,s)}:function(e,t,s){if(e.copy)e.copy(t,s,0,e.length);else for(var o=0;o<e.length;)t[s++]=e[o++]}},n.prototype.bytes=function(e){var s=(e=r.isString(e)?r.y(e,"base64"):e).length>>>0;return this.uint32(s),s&&this.g(n.writeBytesBuffer,s,e),this},n.prototype.string=function(e){var t=r.Buffer.byteLength(e);return this.uint32(t),t&&this.g(s,t,e),this},n.u()},{39:39,42:42}]},{},[19])}();var $protobuf={...JProtobuf};/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/const $root=($protobuf.roots["default"]||($protobuf.roots["default"]=new $protobuf.Root)).addJSON({codec:{nested:{ConnectMsgBody:{fields:{protoId:{type:"string",id:1},sdkVersion:{type:"string",id:2},appkey:{type:"string",id:3},token:{type:"string",id:4},deviceId:{type:"string",id:5},platform:{type:"string",id:6},deviceCompany:{type:"string",id:7},deviceModel:{type:"string",id:8},deviceOsVersion:{type:"string",id:9},pushToken:{type:"string",id:10},networkId:{type:"string",id:11},ispNum:{type:"string",id:12},clientIp:{type:"string",id:13},packageName:{type:"string",id:14},pushChannel:{type:"string",id:15},ext:{type:"string",id:16},clientSession:{type:"string",id:17}}},ConnectAckMsgBody:{fields:{code:{type:"int32",id:1},userId:{type:"string",id:2},session:{type:"string",id:3},timestamp:{type:"int64",id:4},ext:{type:"string",id:5}}},DisconnectMsgBody:{fields:{code:{type:"int32",id:1},timestamp:{type:"int64",id:2},ext:{type:"string",id:3}}},PublishMsgBody:{fields:{index:{type:"int32",id:1},topic:{type:"string",id:2},targetId:{type:"string",id:3},timestamp:{type:"int64",id:4},data:{type:"bytes",id:5}}},PublishAckMsgBody:{fields:{index:{type:"int32",id:1},code:{type:"int32",id:2},msgId:{type:"string",id:3},timestamp:{type:"int64",id:4},msgIndex:{type:"int64",id:5},memberCount:{type:"int32",id:6},clientMsgId:{type:"string",id:7},modifiedMsg:{type:"DownMsg",id:8}}},QueryMsgBody:{fields:{index:{type:"int32",id:1},topic:{type:"string",id:2},targetId:{type:"string",id:3},timestamp:{type:"int64",id:4},data:{type:"bytes",id:5}}},QueryAckMsgBody:{fields:{index:{type:"int32",id:1},code:{type:"int32",id:2},timestamp:{type:"int64",id:3},data:{type:"bytes",id:4}}},QueryConfirmMsgBody:{fields:{index:{type:"int32",id:1}}},ImWebsocketMsg:{oneofs:{testof:{oneof:["connectMsgBody","ConnectAckMsgBody","disconnectMsgBody","publishMsgBody","pubAckMsgBody","qryMsgBody","qryAckMsgBody","qryConfirmMsgBody"]}},fields:{version:{type:"int32",id:1},cmd:{type:"int32",id:2},qos:{type:"int32",id:3},payload:{type:"bytes",id:4},connectMsgBody:{type:"ConnectMsgBody",id:11},ConnectAckMsgBody:{type:"ConnectAckMsgBody",id:12},disconnectMsgBody:{type:"DisconnectMsgBody",id:13},publishMsgBody:{type:"PublishMsgBody",id:14},pubAckMsgBody:{type:"PublishAckMsgBody",id:15},qryMsgBody:{type:"QueryMsgBody",id:16},qryAckMsgBody:{type:"QueryAckMsgBody",id:17},qryConfirmMsgBody:{type:"QueryConfirmMsgBody",id:18}}},ChannelType:{values:{Private:1,Group:2,Chatroom:3,System:4}},PushData:{fields:{title:{type:"string",id:1},pushId:{type:"string",id:2},pushText:{type:"string",id:3},pushExtraData:{type:"string",id:4}}},QryHisMsgsReq:{fields:{converId:{type:"string",id:1},type:{type:"ChannelType",id:2},startTime:{type:"int64",id:3},count:{type:"int32",id:4},order:{type:"int32",id:5},msgTypes:{rule:"repeated",type:"string",id:6}}},DownMsgSet:{fields:{msgs:{rule:"repeated",type:"DownMsg",id:1},syncTime:{type:"int64",id:2},isFinished:{type:"bool",id:3},targetUserInfo:{type:"UserInfo",id:4},groupInfo:{type:"GroupInfo",id:5}}},UpMsg:{fields:{msgType:{type:"string",id:1},msgContent:{type:"bytes",id:2},flags:{type:"int32",id:3},clientUid:{type:"string",id:4},pushData:{type:"PushData",id:5},mentionInfo:{type:"MentionInfo",id:6},referMsg:{type:"DownMsg",id:7},toUserIds:{rule:"repeated",type:"string",id:8},mergedMsgs:{type:"MergedMsgs",id:9},SearchText:{type:"string",id:10},lifeTime:{type:"int64",id:11},lifeTimeAfterRead:{type:"int64",id:12},subChannel:{type:"string",id:13},msgTime:{type:"int64",id:51}}},MentionInfo:{fields:{mentionType:{type:"MentionType",id:1},targetUsers:{rule:"repeated",type:"UserInfo",id:2}}},MentionType:{values:{MentionDefault:0,MentionAll:1,MentionSomeone:2}},DownMsg:{fields:{targetId:{type:"string",id:1},type:{type:"ChannelType",id:2},msgType:{type:"string",id:3},senderId:{type:"string",id:4},msgId:{type:"string",id:5},msgIndex:{type:"int64",id:6},msgContent:{type:"bytes",id:7},msgTime:{type:"int64",id:8},flags:{type:"int32",id:9},isSend:{type:"bool",id:10},platform:{type:"string",id:11},clientUid:{type:"string",id:12},pushData:{type:"PushData",id:13},mentionInfo:{type:"MentionInfo",id:14},isRead:{type:"bool",id:15},referMsg:{type:"DownMsg",id:16},targetUserInfo:{type:"UserInfo",id:17},groupInfo:{type:"GroupInfo",id:18},mergedMsgs:{type:"MergedMsgs",id:19},undisturbType:{type:"int32",id:20},memberCount:{type:"int32",id:21},readCount:{type:"int32",id:22},unreadIndex:{type:"int64",id:23},msgItems:{rule:"repeated",type:"StreamMsgItem",id:24},msgExtSet:{rule:"repeated",type:"MsgExtItem",id:25},msgExts:{rule:"repeated",type:"MsgExtItem",id:26},converTags:{rule:"repeated",type:"ConverTag",id:27},searchText:{type:"string",id:29},grpMemberInfo:{type:"GrpMemberInfo",id:30},destroyTime:{type:"int64",id:31},lifeTimeAfterRead:{type:"int64",id:32},isDelete:{type:"bool",id:33},subChannel:{type:"string",id:34},toUserIds:{rule:"repeated",type:"string",id:35},readTime:{type:"int64",id:36}}},GrpMemberInfo:{fields:{grpDisplayName:{type:"string",id:1},extFields:{rule:"repeated",type:"KvItem",id:2},updatedTime:{type:"int64",id:3}}},StreamMsgItem:{fields:{event:{type:"StreamEvent",id:1},subSeq:{type:"int64",id:2},partialContent:{type:"bytes",id:3}}},StreamDownMsg:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},msgItems:{rule:"repeated",type:"StreamMsgItem",id:4}}},StreamEvent:{values:{DefaultStreamEvent:0,StreamMessage:1,StreamComplete:2}},MergedMsgs:{fields:{channelType:{type:"ChannelType",id:1},userId:{type:"string",id:2},targetId:{type:"string",id:3},msgs:{rule:"repeated",type:"SimpleMsg",id:4}}},GroupInfo:{fields:{groupId:{type:"string",id:1},groupName:{type:"string",id:2},groupPortrait:{type:"string",id:3},isMute:{type:"int32",id:4},extFields:{rule:"repeated",type:"KvItem",id:5},updatedTime:{type:"int64",id:6}}},KvItem:{fields:{key:{type:"string",id:1},value:{type:"string",id:2}}},UserIdReq:{fields:{userId:{type:"string",id:1}}},UserInfo:{fields:{userId:{type:"string",id:1},nickname:{type:"string",id:2},userPortrait:{type:"string",id:3},extFields:{rule:"repeated",type:"KvItem",id:4},updatedTime:{type:"int64",id:5},settings:{rule:"repeated",type:"KvItem",id:6},statuses:{rule:"repeated",type:"KvItem",id:7},userType:{type:"UserType",id:8}}},UserType:{values:{User:0,Bot:1}},SyncConversationsReq:{fields:{startTime:{type:"int64",id:1},count:{type:"int32",id:2}}},QryConversationsReq:{fields:{startTime:{type:"int64",id:1},count:{type:"int32",id:2},order:{type:"int32",id:3},targetId:{type:"string",id:5},channelType:{type:"ChannelType",id:6},tag:{type:"string",id:7}}},QryConversationsResp:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1},isFinished:{type:"bool",id:2}}},ClearUnreadReq:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1}}},DelConversationReq:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1}}},ConversationsReq:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1}}},Conversation:{fields:{userId:{type:"string",id:1},targetId:{type:"string",id:2},channelType:{type:"ChannelType",id:3},sortTime:{type:"int64",id:4},unreadCount:{type:"int64",id:5},msg:{type:"DownMsg",id:6},latestReadIndex:{type:"int64",id:7},mentions:{type:"Mentions",id:8},isTop:{type:"int32",id:9},topUpdatedTime:{type:"int64",id:10},undisturbType:{type:"int32",id:11},targetUserInfo:{type:"UserInfo",id:12},groupInfo:{type:"GroupInfo",id:13},syncTime:{type:"int64",id:14},isDelete:{type:"int32",id:15},latestUnreadIndex:{type:"int64",id:16},unreadTag:{type:"int32",id:17},latestReadMsgId:{type:"string",id:18},latestReadMsgTime:{type:"int64",id:19},converTags:{rule:"repeated",type:"ConverTag",id:20}}},Mentions:{fields:{isMentioned:{type:"bool",id:1},mentionMsgCount:{type:"int32",id:2},senders:{rule:"repeated",type:"UserInfo",id:3},mentionMsgs:{rule:"repeated",type:"MentionMsg",id:4}}},MentionMsg:{fields:{senderId:{type:"string",id:1},msgId:{type:"string",id:2},msgTime:{type:"int64",id:3},mentionType:{type:"MentionType",id:4}}},SyncMsgReq:{fields:{syncTime:{type:"int64",id:1},containsSendBox:{type:"bool",id:2},sendBoxSyncTime:{type:"int64",id:3},chatroomId:{type:"string",id:4}}},SyncChatroomReq:{fields:{chatroomId:{type:"string",id:1},syncTime:{type:"int64",id:2},count:{type:"int32",id:3}}},SyncChatroomMsgResp:{fields:{msgs:{rule:"repeated",type:"DownMsg",id:1}}},Notify:{fields:{type:{type:"NotifyType",id:1},syncTime:{type:"int64",id:2},chatroomId:{type:"string",id:3}}},NotifyType:{values:{Default:0,Msg:1,ChatroomMsg:2,ChatroomAtt:3,ChatroomEvent:4,ChatroomDestroy:5}},RecallMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},msgTime:{type:"int64",id:4},exts:{rule:"repeated",type:"KvItem",id:5}}},MarkReadReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgs:{rule:"repeated",type:"SimpleMsg",id:3},indexScopes:{rule:"repeated",type:"IndexScope",id:4}}},SimpleMsg:{fields:{msgId:{type:"string",id:1},msgTime:{type:"int64",id:2},msgIndex:{type:"int64",id:3}}},IndexScope:{fields:{startIndex:{type:"int64",id:1},endIndex:{type:"int64",id:2}}},ModifyMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},msgTime:{type:"int64",id:4},msgSeqNo:{type:"int64",id:5},msgContent:{type:"bytes",id:6},msgType:{type:"string",id:7}}},CleanHisMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},cleanMsgTime:{type:"int64",id:3},cleanScope:{type:"int32",id:4}}},QryHisMsgByIdsReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgIds:{rule:"repeated",type:"string",id:3}}},ChatRoomReq:{fields:{chatId:{type:"string",id:1},chatName:{type:"string",id:2},isAutoCreate:{type:"bool",id:3}}},QryTotalUnreadCountReq:{fields:{time:{type:"int64",id:1},filter:{type:"ConverFilter",id:2}}},ConverFilter:{fields:{channelTypes:{rule:"repeated",type:"ChannelType",id:1},ignoreConvers:{rule:"repeated",type:"SimpleConversation",id:2},tag:{type:"string",id:4}}},SimpleConversation:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},QryTotalUnreadCountResp:{fields:{totalCount:{type:"int64",id:1}}},QryMentionMsgsReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},startIndex:{type:"int64",id:3},count:{type:"int32",id:4},order:{type:"int32",id:5},latestReadIndex:{type:"int64",id:6}}},QryMentionMsgsResp:{fields:{mentionMsgs:{rule:"repeated",type:"DownMsg",id:1},isFinished:{type:"bool",id:2}}},QMentionMsg:{fields:{mentionType:{type:"MentionType",id:1},senderInfo:{type:"UserInfo",id:2},msg:{type:"DownMsg",id:3}}},QryUploadTokenResp:{oneofs:{ossOf:{oneof:["qiniuCred","preSignResp"]}},fields:{ossType:{type:"OssType",id:1},qiniuCred:{type:"QiniuCredResp",id:11},preSignResp:{type:"PreSignResp",id:12}}},PreSignResp:{fields:{url:{type:"string",id:1},objKey:{type:"string",id:2},policy:{type:"string",id:3},signVersion:{type:"string",id:4},credential:{type:"string",id:5},date:{type:"string",id:6},signature:{type:"string",id:7},downloadUrl:{type:"string",id:8}}},OssType:{values:{DefaultOss:0,QiNiu:1,S3:2,Minio:3,Oss:4}},QiniuCredResp:{fields:{domain:{type:"string",id:1},token:{type:"string",id:2}}},QryUploadTokenReq:{fields:{fileType:{type:"FileType",id:1},ext:{type:"string",id:2}}},FileType:{values:{DefaultFileType:0,Image:1,Audio:2,Video:3,File:4}},QryReadDetailReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3}}},QryReadDetailResp:{fields:{readCount:{type:"int32",id:1},memberCount:{type:"int32",id:2},readMembers:{rule:"repeated",type:"MemberReadDetailItem",id:3},unreadMembers:{rule:"repeated",type:"MemberReadDetailItem",id:4}}},MemberReadDetailItem:{fields:{member:{type:"UserInfo",id:1},time:{type:"int64",id:2}}},QryMergedMsgsReq:{fields:{startTime:{type:"int64",id:1},count:{type:"int32",id:2},order:{type:"int32",id:3}}},UndisturbConversReq:{fields:{userId:{type:"string",id:1},items:{rule:"repeated",type:"UndisturbConverItem",id:2}}},UndisturbConverItem:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},undisturbType:{type:"int32",id:3}}},QryTopConversReq:{fields:{startTime:{type:"int64",id:1},sortType:{type:"TopConverSortType",id:2},order:{type:"int32",id:3}}},TopConverSortType:{values:{ByTopTime:0,BySortTime:1}},DelHisMsgsReq:{fields:{senderId:{type:"string",id:1},targetId:{type:"string",id:2},channelType:{type:"ChannelType",id:3},msgs:{rule:"repeated",type:"SimpleMsg",id:4},delScope:{type:"int32",id:5}}},QryConverReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},SyncChatroomAttResp:{fields:{atts:{rule:"repeated",type:"ChatAttItem",id:1}}},ChatAtts:{fields:{chatId:{type:"string",id:1},atts:{rule:"repeated",type:"ChatAttItem",id:2},isComplete:{type:"bool",id:3},isFinished:{type:"bool",id:4}}},ChatAttItem:{fields:{key:{type:"string",id:1},value:{type:"string",id:2},attTime:{type:"int64",id:3},userId:{type:"string",id:4},optType:{type:"ChatAttOptType",id:5}}},ChatAttOptType:{values:{ChatAttOpt_Default:0,ChatAttOpt_Add:1,ChatAttOpt_Del:2}},UserUndisturb:{fields:{switch:{type:"bool",id:1},timezone:{type:"string",id:2},rules:{rule:"repeated",type:"UserUndisturbItem",id:3}}},UserUndisturbItem:{fields:{start:{type:"string",id:1},end:{type:"string",id:2}}},Nil:{fields:{}},ChatAttBatchReq:{fields:{atts:{rule:"repeated",type:"ChatAttReq",id:1}}},ChatAttBatchResp:{fields:{attResps:{rule:"repeated",type:"ChatAttResp",id:1}}},ChatAttReq:{fields:{key:{type:"string",id:1},value:{type:"string",id:2},isForce:{type:"bool",id:3},isAutoDel:{type:"bool",id:4},msg:{type:"UpMsg",id:5}}},ChatAttResp:{fields:{key:{type:"string",id:1},code:{type:"int32",id:2},attTime:{type:"int64",id:3},msgCode:{type:"int32",id:11},msgId:{type:"string",id:12},msgTime:{type:"int64",id:13},msgSeq:{type:"int64",id:14}}},QryFirstUnreadMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},ChrmEvent:{fields:{eventType:{type:"ChrmEventType",id:1},chatId:{type:"string",id:2},userId:{type:"string",id:3},eventTime:{type:"int64",id:4}}},ChrmEventType:{values:{Join:0,Quit:1,Kick:2,Fallout:3}},MsgExt:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},ext:{type:"MsgExtItem",id:4}}},MsgExtItem:{fields:{key:{type:"string",id:1},value:{type:"string",id:2},timestamp:{type:"int64",id:3},userInfo:{type:"UserInfo",id:4}}},TagConvers:{fields:{tag:{type:"string",id:1},tagName:{type:"string",id:2},convers:{rule:"repeated",type:"SimpleConversation",id:11}}},UserConverTags:{fields:{tags:{rule:"repeated",type:"ConverTag",id:1}}},ConverTag:{fields:{tag:{type:"string",id:1},tagName:{type:"string",id:2},tagType:{type:"ConverTagType",id:3}}},ConverTagType:{values:{UserTag:0,SystemTag:1,GlobalTag:2}},RtcRoomReq:{fields:{roomType:{type:"RtcRoomType",id:1},roomId:{type:"string",id:2},joinMember:{type:"RtcMember",id:3}}},RtcRoomType:{values:{OneOne:0,OneMore:1}},RtcMember:{fields:{member:{type:"UserInfo",id:1},rtcState:{type:"RtcState",id:2},callTime:{type:"int64",id:3},connectTime:{type:"int64",id:4},hangupTime:{type:"int64",id:5},inviter:{type:"UserInfo",id:6}}},RtcState:{values:{RtcStateDefault:0,RtcIncoming:1,RtcOutgoing:2,RtcConnecting:3,RtcConnected:4}},RtcRoom:{fields:{roomType:{type:"RtcRoomType",id:1},roomId:{type:"string",id:2},owner:{type:"UserInfo",id:3},rtcChannel:{type:"RtcChannel",id:4},rtcMediaType:{type:"RtcMediaType",id:5},ext:{type:"string",id:6},members:{rule:"repeated",type:"RtcMember",id:51}}},RtcInviteReq:{fields:{targetIds:{rule:"repeated",type:"string",id:1},roomType:{type:"RtcRoomType",id:2},roomId:{type:"string",id:3},rtcChannel:{type:"RtcChannel",id:4},rtcMediaType:{type:"RtcMediaType",id:5},ext:{type:"string",id:6}}},RtcMediaType:{values:{RtcAudio:0,RtcVideo:1}},InviteType:{values:{RtcInvite:0,RtcAccept:1,RtcHangup:2}},RtcInviteEvent:{fields:{inviteType:{type:"InviteType",id:1},user:{type:"UserInfo",id:2},room:{type:"RtcRoom",id:3},targetUsers:{rule:"repeated",type:"UserInfo",id:4}}},RtcAnswerReq:{fields:{targetId:{type:"string",id:1},roomId:{type:"string",id:2}}},RtcChannel:{values:{Zego:0}},RtcAuth:{fields:{zegoAuth:{type:"ZegoAuth",id:1}}},ZegoAuth:{fields:{token:{type:"string",id:1}}},RtcRoomEvent:{fields:{roomEventType:{type:"RtcRoomEventType",id:1},members:{rule:"repeated",type:"RtcMember",id:2},room:{type:"RtcRoom",id:3},reason:{type:"RtcRoomQuitReason",id:4},eventTime:{type:"int64",id:5}}},RtcRoomEventType:{values:{DefaultRtcRoomEvent:0,RtcJoin:1,RtcQuit:2,RtcDestroy:3,RtcStateChg:4}},RtcRoomQuitReason:{values:{Active:0,CallTimeout:1,PingTimeout:2}},TransReq:{fields:{items:{rule:"repeated",type:"TransItem",id:1},targetLang:{type:"string",id:2},sourceLang:{type:"string",id:3}}},TransItem:{fields:{key:{type:"string",id:1},content:{type:"string",id:2}}},SetTopMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3}}},GetTopMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},TopMsg:{fields:{msg:{type:"DownMsg",id:1},operator:{type:"UserInfo",id:2},createdTime:{type:"int64",id:3}}},FavoriteMsgIds:{fields:{items:{rule:"repeated",type:"FavoriteMsgIdItem",id:1}}},FavoriteMsgIdItem:{fields:{senderId:{type:"string",id:1},receiverId:{type:"string",id:2},channelType:{type:"ChannelType",id:3},msgId:{type:"string",id:4}}},QryFavoriteMsgsReq:{fields:{limit:{type:"int64",id:1},offset:{type:"string",id:2}}},FavoriteMsgs:{fields:{items:{rule:"repeated",type:"FavoriteMsg",id:1},offset:{type:"string",id:2}}},FavoriteMsg:{fields:{msg:{type:"DownMsg",id:1},createdTime:{type:"int64",id:2}}},RegPushTokenReq:{fields:{deviceId:{type:"string",id:1},platform:{type:"Platform",id:2},pushChannel:{type:"PushChannel",id:3},pushToken:{type:"string",id:4},packageName:{type:"string",id:5}}},Platform:{values:{DefaultPlatform:0,Android:1,iOS:2,Web:3,PC:4}},PushChannel:{values:{DefaultChannel:0,Apple:1,Huawei:2,Xiaomi:3}},PushSwitch:{fields:{switch:{type:"int32",id:1}}}}}});function WebRequest(){let e=()=>{},t=(e,t)=>{for(var n in e)t(e[n],n,e)},n=(n,s,o)=>{s=s||{},o=o||{success:e,fail:e,progress:e};let i=new XMLHttpRequest,r=s.method||"GET";i.open(r,n,!0);let a=s.headers||{};t(a,(e,t)=>{i.setRequestHeader(t,e)});let d=s.body||{},p=()=>/^(200|202)$/.test(i.status),c=s.timeout;return c&&(i.timeout=c),i.onreadystatechange=function(){if(4==i.readyState){let{responseText:e}=i;e=e||"{}";let t=JSON.parse(e);if(p())o.success(t,i);else{let{status:e}=i,n={status:e,result:t};o.fail(n)}}},i.upload.onprogress=function(e){e.lengthComputable&&o.progress&&o.progress(e)},i.onerror=e=>{o.fail(e)},i.send(d),i};return{requestNormal:n,uploadFile:n}}function WebEncoder(){let e=e=>new TextEncoder().encode(e),t=e=>new TextDecoder().decode(e);return{encoder:e,decoder:t}}function UniEncoder(){var e=String.fromCharCode;let t=e=>{var t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);return t.split("").forEach(function(e,t){n[t]=e.charCodeAt(0)}),n},n=t=>{var n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),s=Array(n.length);return n.forEach(function(t,n){s[n]=e(t)}),decodeURIComponent(escape(s.join("")))};return{encoder:t,decoder:n}}let JTextEncoder={};JTextEncoder="undefined"==typeof uni?WebEncoder():UniEncoder();var JTextEncoder$1=JTextEncoder;function UniRequest(){// url: 'https://jugglechat-file.oss-cn-beijing.aliyuncs.com',
|
|
55
|
+
*/let JProtobuf={};!function(_){var e=Math.min,a=Math.pow,d=Math.floor,m=String.fromCharCode;!function(s,o,e){var n=function i(e){var t=o[e];return t||s[e][0].call(t=o[e]={exports:{}},i,t,t.exports),t.exports}(e[0]);JProtobuf=n,"function"==typeof define&&define.amd&&define(["long"],function(e){return e&&e.isLong&&(n.util.Long=e,n.configure()),n}),"object"==typeof module&&module&&module.exports&&(module.exports=n)}({1:[function(e,t,s){t.exports=function(e,t){for(var i=Array(arguments.length-1),n=0,a=2,d=!0;a<arguments.length;)i[n++]=arguments[a++];return new Promise(function(s,o){i[n]=function(e){if(d)if(d=!1,e)o(e);else{for(var t=Array(arguments.length-1),i=0;i<t.length;)t[i++]=arguments[i];s.apply(null,t)}};try{e.apply(t||null,i)}catch(e){d&&(d=!1,o(e))}})}},{}],2:[function(e,t,s){s.length=function(e){var t=e.length;if(!t)return 0;for(var s=0;1<--t%4&&"="==(e[0|t]||"");)++s;return Math.ceil(3*e.length)/4-s};for(var d=Array(64),o=Array(123),n=0;64>n;)o[d[n]=26>n?n+65:52>n?n+71:62>n?n-4:43|n-59]=n++;s.encode=function(a,t,c){for(var n=null,p=[],s=0,l=0,E,g;t<c;)g=a[t++],0===l?(p[s++]=d[g>>2],E=(3&g)<<4,l=1):1===l?(p[s++]=d[E|g>>4],E=(15&g)<<2,l=2):2===l?(p[s++]=d[E|g>>6],p[s++]=d[63&g],l=0):void 0,8191<s&&((n=n||[]).push(m.apply(String,p)),s=0);return l&&(p[s++]=d[E],p[s++]=61,1===l&&(p[s++]=61)),n?(s&&n.push(m.apply(String,p.slice(0,s))),n.join("")):m.apply(String,p.slice(0,s))};var i="invalid encoding";s.decode=function(a,t,i){for(var d=i,e=0,m=0,c,p;m<a.length&&(p=a.charCodeAt(m++),!(61==p&&1<e));){if((p=o[p])===_)throw Error("invalid encoding");0===e?(c=p,e=1):1===e?(t[i++]=c<<2|(48&p)>>4,c=p,e=2):2===e?(t[i++]=(15&c)<<4|(60&p)>>2,c=p,e=3):3===e?(t[i++]=(3&c)<<6|p,e=0):void 0}if(1===e)throw Error("invalid encoding");return i-d},s.test=function(e){return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},{}],3:[function(e,t,s){function o(e,s){function m(p){if("string"!=typeof p){var l=c();if(o.verbose&&void 0,l="return "+l,p){for(var E=Object.keys(p),n=Array(E.length+1),r=Array(E.length),e=0;e<E.length;)n[e]=E[e],r[e]=p[E[e++]];return n[e]=l,Function.apply(null,n).apply(null,r)}return Function(l)()}for(var g=Array(arguments.length-1),T=0;T<g.length;)g[T]=arguments[++T];if(T=0,p=p.replace(/%([%dfijs])/g,function(e,t){var s=g[T++];return"d"===t||"f"===t?""+ +(""+s):"i"===t?""+d(s):"j"===t?JSON.stringify(s):"s"===t?""+s:"%"}),T!==g.length)throw Error("parameter count mismatch");return a.push(p),m}function c(n){return"function "+(n||s||"")+"("+(e&&e.join(",")||"")+"){\n "+a.join("\n ")+"\n}"}"string"==typeof e&&(s=e,e=_);var a=[];return m.toString=c,m}(t.exports=o).verbose=!1},{}],4:[function(e,t,s){function n(){this.i={}}(t.exports=n).prototype.on=function(e,t,s){return(this.i[e]||(this.i[e]=[])).push({fn:t,ctx:s||this}),this},n.prototype.off=function(e,t){if(e===_)this.i={};else if(t===_)this.i[e]=[];else for(var s=this.i[e],n=0;n<s.length;)s[n].fn===t?s.splice(n,1):++n;return this},n.prototype.emit=function(e){var t=this.i[e];if(t){for(var s=[],n=1;n<arguments.length;)s.push(arguments[n++]);for(n=0;n<t.length;)t[n].fn.apply(t[n++].ctx,s)}return this}},{}],5:[function(e,t,i){function a(o,n,m){return n="function"==typeof n?(m=n,{}):n||{},m?!n.xhr&&s&&s.readFile?s.readFile(o,function(e,t){return e&&"undefined"!=typeof XMLHttpRequest?a.xhr(o,n,m):e?m(e):m(null,n.binary?t:t.toString("utf8"))}):a.xhr(o,n,m):d(a,this,o,n)}t.exports=a;var d=e(1),s=e(7)("fs");a.xhr=function(s,o,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){if(4!==r.readyState)return _;if(0!==r.status&&200!==r.status)return n(Error("status "+r.status));if(o.binary){if(!(e=r.response))for(var e=[],s=0;s<r.responseText.length;++s)e.push(255&r.responseText.charCodeAt(s));return n(null,"undefined"==typeof Uint8Array?e:new Uint8Array(e))}return n(null,r.responseText)},o.binary&&("overrideMimeType"in r&&r.overrideMimeType("text/plain; charset=x-user-defined"),r.responseType="arraybuffer"),r.open("GET",s),r.send()}},{1:1,7:7}],6:[function(e,t,s){function n(_){var C=Math.LN2,S=Math.log;function O(s,o,m,n){var r=Math.round,c=0>o?1:0;s(0===(o=c?-o:o)?0<1/o?0:2147483648:isNaN(o)?2143289344:34028234663852886e22<o?(2139095040|c<<31)>>>0:11754943508222875e-54>o?(c<<31|r(o/1401298464324817e-60))>>>0:(c<<31|127+(s=d(S(o)/C))<<23|8388607&r(8388608*(o*a(2,-s))))>>>0,m,n)}function t(e,s,o){return e=e(s,o),s=2*(e>>31)+1,o=255&e>>>23,e&=8388607,255==o?e?NaN:1/0*s:0==o?1401298464324817e-60*s*e:s*a(2,o-150)*(8388608+e)}function n(e,t,s){y[0]=e,t[s]=A[0],t[s+1]=A[1],t[s+2]=A[2],t[s+3]=A[3]}function i(e,t,s){y[0]=e,t[s]=A[3],t[s+1]=A[2],t[s+2]=A[1],t[s+3]=A[0]}function e(e,t){return A[0]=e[t],A[1]=e[t+1],A[2]=e[t+2],A[3]=e[t+3],y[0]}function s(e,t){return A[3]=e[t],A[2]=e[t+1],A[1]=e[t+2],A[0]=e[t+3],y[0]}function o(m,t,i,n,c,e){var s=0>n?1:0,p;0===(n=s?-n:n)?(m(0,c,e+t),m(0<1/n?0:2147483648,c,e+i)):isNaN(n)?(m(0,c,e+t),m(2146959360,c,e+i)):17976931348623157e292<n?(m(0,c,e+t),m((2146435072|s<<31)>>>0,c,e+i)):22250738585072014e-324>n?(m((p=n/5e-324)>>>0,c,e+t),m((s<<31|p/4294967296)>>>0,c,e+i)):(m(4503599627370496*(p=n*a(2,-(n=1024===(n=d(S(n)/C))?1023:n)))>>>0,c,e+t),m((s<<31|n+1023<<20|1048575&1048576*p)>>>0,c,e+i))}function r(s,o,d,m,c){return o=s(m,c+o),s=s(m,c+d),m=2*(s>>31)+1,c=2047&s>>>20,d=4294967296*(1048575&s)+o,2047==c?d?NaN:1/0*m:0==c?5e-324*m*d:m*a(2,c-1075)*(d+4503599627370496)}function l(e,t,s){N[0]=e,t[s]=M[0],t[s+1]=M[1],t[s+2]=M[2],t[s+3]=M[3],t[s+4]=M[4],t[s+5]=M[5],t[s+6]=M[6],t[s+7]=M[7]}function p(e,t,s){N[0]=e,t[s]=M[7],t[s+1]=M[6],t[s+2]=M[5],t[s+3]=M[4],t[s+4]=M[3],t[s+5]=M[2],t[s+6]=M[1],t[s+7]=M[0]}function I(e,t){return M[0]=e[t],M[1]=e[t+1],M[2]=e[t+2],M[3]=e[t+3],M[4]=e[t+4],M[5]=e[t+5],M[6]=e[t+6],M[7]=e[t+7],N[0]}function R(e,t){return M[7]=e[t],M[6]=e[t+1],M[5]=e[t+2],M[4]=e[t+3],M[3]=e[t+4],M[2]=e[t+5],M[1]=e[t+6],M[0]=e[t+7],N[0]}var y,A,N,M,v;return"undefined"==typeof Float32Array?(_.writeFloatLE=O.bind(null,E),_.writeFloatBE=O.bind(null,T),_.readFloatLE=t.bind(null,m),_.readFloatBE=t.bind(null,g)):(y=new Float32Array([-0]),A=new Uint8Array(y.buffer),v=128===A[3],_.writeFloatLE=v?n:i,_.writeFloatBE=v?i:n,_.readFloatLE=v?e:s,_.readFloatBE=v?s:e),"undefined"==typeof Float64Array?(_.writeDoubleLE=o.bind(null,E,0,4),_.writeDoubleBE=o.bind(null,T,4,0),_.readDoubleLE=r.bind(null,m,0,4),_.readDoubleBE=r.bind(null,g,4,0)):(N=new Float64Array([-0]),M=new Uint8Array(N.buffer),v=128===M[7],_.writeDoubleLE=v?l:p,_.writeDoubleBE=v?p:l,_.readDoubleLE=v?I:R,_.readDoubleBE=v?R:I),_}function E(e,t,s){t[s]=255&e,t[s+1]=255&e>>>8,t[s+2]=255&e>>>16,t[s+3]=e>>>24}function T(e,t,s){t[s]=e>>>24,t[s+1]=255&e>>>16,t[s+2]=255&e>>>8,t[s+3]=255&e}function m(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function g(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}t.exports=n(n)},{}],7:[function(e,t,s){function n(e){try{var t=new Function("require")(e);if(t&&(t.length||Object.keys(t).length))return t}catch(e){}return null}t.exports=n},{}],8:[function(s,t,o){var a=o.isAbsolute=function(e){return /^(?:\/|\w+:)/.test(e)},e=o.normalize=function(e){var s=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),o=a(e),e="";o&&(e=s.shift()+"/");for(var n=0;n<s.length;)".."===s[n]?0<n&&".."!==s[n-1]?s.splice(--n,2):o?s.splice(n,1):++n:"."===s[n]?s.splice(n,1):++n;return e+s.join("/")};o.resolve=function(s,o,r){return r||(o=e(o)),!a(o)&&(s=(s=r?s:e(s)).replace(/(?:\/|^)[^/]+$/,"")).length?e(s+"/"+o):o}},{}],9:[function(e,t,s){t.exports=function(a,i,n){var d=n||8192,r=d>>>1,e=null,m=d;return function(n){return 1>n||r<n?a(n):(d<m+n&&(e=a(d),m=0),n=i.call(e,m,m+=n),(7&m&&(m=1+(7|m)),n))}}},{}],10:[function(e,t,s){s.length=function(e){for(var t=0,s=0,o;s<e.length;++s)128>(o=e.charCodeAt(s))?t+=1:2048>o?t+=2:55296==(64512&o)&&56320==(64512&e.charCodeAt(s+1))?(++s,t+=4):t+=3;return t},s.read=function(a,t,d){if(1>d-t)return"";for(var n=null,c=[],s=0,p;t<d;)128>(p=a[t++])?c[s++]=p:191<p&&224>p?c[s++]=(31&p)<<6|63&a[t++]:239<p&&365>p?(p=((7&p)<<18|(63&a[t++])<<12|(63&a[t++])<<6|63&a[t++])-65536,c[s++]=55296+(p>>10),c[s++]=56320+(1023&p)):c[s++]=(15&p)<<12|(63&a[t++])<<6|63&a[t++],8191<s&&((n=n||[]).push(m.apply(String,c)),s=0);return n?(s&&n.push(m.apply(String,c.slice(0,s))),n.join("")):m.apply(String,c.slice(0,s))},s.write=function(a,t,i){for(var d=i,s=0,m,c;s<a.length;++s)128>(m=a.charCodeAt(s))?t[i++]=m:(2048>m?t[i++]=192|m>>6:(55296==(64512&m)&&56320==(64512&(c=a.charCodeAt(s+1)))?(++s,t[i++]=240|(m=65536+((1023&m)<<10)+(1023&c))>>18,t[i++]=128|63&m>>12):t[i++]=224|m>>12,t[i++]=128|63&m>>6),t[i++]=128|63&m);return i-d}},{}],11:[function(s,t,o){function n(s,o){e.test(s)||(s="google/protobuf/"+s+".proto",o={nested:{google:{nested:{protobuf:{nested:o}}}}}),n[s]=o}t.exports=n;var e=/\/|\./;n("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),n("duration",{Duration:t={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),n("timestamp",{Timestamp:t}),n("empty",{Empty:{fields:{}}}),n("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),n("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),n("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),n.get=function(e){return n[e]||null}},{}],12:[function(e,t,s){function a(a,t,i,n){var r=!1;if(!t.resolvedType){var d=!1;switch(t.type){case"double":case"float":a("m%s=Number(d%s)",n,n);break;case"uint32":case"fixed32":a("m%s=d%s>>>0",n,n);break;case"int32":case"sint32":case"sfixed32":a("m%s=d%s|0",n,n);break;case"uint64":d=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":a("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,d)("else if(typeof d%s===\"string\")",n)("m%s=parseInt(d%s,10)",n,n)("else if(typeof d%s===\"number\")",n)("m%s=d%s",n,n)("else if(typeof d%s===\"object\")",n)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",n,n,n,d?"true":"");break;case"bytes":a("if(typeof d%s===\"string\")",n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length >= 0)",n)("m%s=d%s",n,n);break;case"string":a("m%s=String(d%s)",n,n);break;case"bool":a("m%s=Boolean(d%s)",n,n)}}else if(t.resolvedType instanceof c){a("switch(d%s){",n);for(var m=t.resolvedType.values,s=Object.keys(m),o=0;o<s.length;++o)m[s[o]]!==t.typeDefault||r||(a("default:")("if(typeof(d%s)===\"number\"){m%s=d%s;break}",n,n,n),t.repeated||a("break"),r=!0),a("case%j:",s[o])("case %i:",m[s[o]])("m%s=%j",n,m[s[o]])("break");a("}")}else a("if(typeof d%s!==\"object\")",n)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",n,i,n);return a}function r(s,t,o,n){if(t.resolvedType)t.resolvedType instanceof c?s("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s",n,o,n,n,o,n,n):s("d%s=types[%i].toObject(m%s,o)",n,o,n);else{var i=!1;switch(t.type){case"double":case"float":s("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",n,n,n,n);break;case"uint64":i=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":s("if(typeof m%s===\"number\")",n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",n,n,n,n,i?"true":"",n);break;case"bytes":s("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:s("d%s=m%s",n,n)}}return s}var c=e(15),p=e(37);s.fromObject=function(o){var t=o.fieldsArray,i=p.codegen(["d"],o.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return i("return new this.ctor");i("var m=new this.ctor");for(var n=0;n<t.length;++n){var d=t[n].resolve(),m=p.safeProp(d.name);d.map?(i("if(d%s){",m)("if(typeof d%s!==\"object\")",m)("throw TypeError(%j)",d.fullName+": object expected")("m%s={}",m)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",m),a(i,d,n,m+"[ks[i]]")("}")("}")):d.repeated?(i("if(d%s){",m)("if(!Array.isArray(d%s))",m)("throw TypeError(%j)",d.fullName+": array expected")("m%s=[]",m)("for(var i=0;i<d%s.length;++i){",m),a(i,d,n,m+"[i]")("}")("}")):(d.resolvedType instanceof c||i("if(d%s!=null){",m),a(i,d,n,m),d.resolvedType instanceof c||i("}"))}return i("return m")},s.toObject=function(d){var t=d.fieldsArray.slice().sort(p.compareFieldsById);if(!t.length)return p.codegen()("return {}");for(var i=p.codegen(["m","o"],d.name+"$toObject")("if(!o)")("o={}")("var d={}"),n=[],l=[],e=[],s=0;s<t.length;++s)t[s].partOf||(t[s].resolve().repeated?n:t[s].map?l:e).push(t[s]);if(n.length){for(i("if(o.arrays||o.defaults){"),s=0;s<n.length;++s)i("d%s=[]",p.safeProp(n[s].name));i("}")}if(l.length){for(i("if(o.objects||o.defaults){"),s=0;s<l.length;++s)i("d%s={}",p.safeProp(l[s].name));i("}")}if(e.length){for(i("if(o.defaults){"),s=0;s<e.length;++s){var E=e[s],g=p.safeProp(E.name),T;E.resolvedType instanceof c?i("d%s=o.enums===String?%j:%j",g,E.resolvedType.valuesById[E.typeDefault],E.typeDefault):E.long?i("if(util.Long){")("var n=new util.Long(%i,%i,%j)",E.typeDefault.low,E.typeDefault.high,E.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",g)("}else")("d%s=o.longs===String?%j:%i",g,E.typeDefault.toString(),E.typeDefault.toNumber()):E.bytes?(T="["+Array.prototype.slice.call(E.typeDefault).join(",")+"]",i("if(o.bytes===String)d%s=%j",g,m.apply(String,E.typeDefault))("else{")("d%s=%s",g,T)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",g,g)("}")):i("d%s=%j",g,E.typeDefault)}i("}")}for(var y=!1,s=0;s<t.length;++s){var E=t[s],_=d.e.indexOf(E),g=p.safeProp(E.name);E.map?(y||(y=!0,i("var ks2")),i("if(m%s&&(ks2=Object.keys(m%s)).length){",g,g)("d%s={}",g)("for(var j=0;j<ks2.length;++j){"),r(i,E,_,g+"[ks2[j]]")("}")):E.repeated?(i("if(m%s&&m%s.length){",g,g)("d%s=[]",g)("for(var j=0;j<m%s.length;++j){",g),r(i,E,_,g+"[j]")("}")):(i("if(m%s!=null&&m.hasOwnProperty(%j)){",g,E.name),r(i,E,_,g),E.partOf&&i("if(o.oneofs)")("d%s=%j",p.safeProp(E.partOf.name),E.name)),i("}")}return i("return d")}},{15:15,37:37}],13:[function(e,t,s){t.exports=function(m){var t=d.codegen(["r","l"],m.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(m.fieldsArray.filter(function(e){return e.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");m.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var i=0;i<m.fieldsArray.length;++i){var c=m.e[i].resolve(),p=c.resolvedType instanceof o?"int32":c.type,l="m"+d.safeProp(c.name);t("case %i: {",c.id),c.map?(t("if(%s===util.emptyObject)",l)("%s={}",l)("var c2 = r.uint32()+r.pos"),a.defaults[c.keyType]===_?t("k=null"):t("k=%j",a.defaults[c.keyType]),a.defaults[p]===_?t("value=null"):t("value=%j",a.defaults[p]),t("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",c.keyType)("case 2:"),a.basic[p]===_?t("value=types[%i].decode(r,r.uint32())",i):t("value=r.%s()",p),t("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),a.long[c.keyType]===_?t("%s[k]=value",l):t("%s[typeof k===\"object\"?util.longToHash(k):k]=value",l)):c.repeated?(t("if(!(%s&&%s.length))",l,l)("%s=[]",l),a.packed[p]!==_&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",l,p)("}else"),a.basic[p]===_?t(c.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",l,i):t("%s.push(r.%s())",l,p)):a.basic[p]===_?t(c.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",l,i):t("%s=r.%s()",l,p),t("break")("}")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),i=0;i<m.e.length;++i){var E=m.e[i];E.required&&t("if(!m.hasOwnProperty(%j))",E.name)("throw util.ProtocolError(%j,{instance:m})","missing required '"+E.name+"'")}return t("return m")};var o=e(15),a=e(36),d=e(37)},{15:15,36:36,37:37}],14:[function(e,t,s){function d(e,t,s,n){t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",s,n,(3|t.id<<3)>>>0,(4|t.id<<3)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",s,n,(2|t.id<<3)>>>0)}t.exports=function(c){for(var t=a.codegen(["m","w"],c.name+"$encode")("if(!w)")("w=Writer.create()"),n=c.fieldsArray.slice().sort(a.compareFieldsById),r=0,l;r<n.length;++r){var E=n[r].resolve(),g=c.e.indexOf(E),T=E.resolvedType instanceof m?"int32":E.type,y=p.basic[T];l="m"+a.safeProp(E.name),E.map?(t("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",l,E.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",l)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(2|E.id<<3)>>>0,8|p.mapKey[E.keyType],E.keyType),y===_?t("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",g,l):t(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|y,T,l),t("}")("}")):E.repeated?(t("if(%s!=null&&%s.length){",l,l),E.packed&&p.packed[T]!==_?t("w.uint32(%i).fork()",(2|E.id<<3)>>>0)("for(var i=0;i<%s.length;++i)",l)("w.%s(%s[i])",T,l)("w.ldelim()"):(t("for(var i=0;i<%s.length;++i)",l),y===_?d(t,E,g,l+"[i]"):t("w.uint32(%i).%s(%s[i])",(E.id<<3|y)>>>0,T,l)),t("}")):(E.optional&&t("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",l,E.name),y===_?d(t,E,g,l):t("w.uint32(%i).%s(%s)",(E.id<<3|y)>>>0,T,l))}return t("return w")};var m=e(15),p=e(36),a=e(37)},{15:15,36:36,37:37}],15:[function(o,t,i){function n(d,t,i,n,r,e){if(a.call(this,d,i),t&&"object"!=typeof t)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=r||{},this.valuesOptions=e,this.reserved=_,t)for(var s=Object.keys(t),o=0;o<s.length;++o)"number"==typeof t[s[o]]&&(this.valuesById[this.values[s[o]]=t[s[o]]]=s[o])}t.exports=n;var a=o(24),s=(((n.prototype=Object.create(a.prototype)).constructor=n).className="Enum",o(23)),d=o(37);n.fromJSON=function(e,s){return e=new n(e,s.values,s.options,s.comment,s.comments),e.reserved=s.reserved,e},n.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,d.toObject(["options",this.options,"valuesOptions",this.valuesOptions,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:_,"comment",e?this.comment:_,"comments",e?this.comments:_])},n.prototype.add=function(e,t,s,n){if(!d.isString(e))throw TypeError("name must be a string");if(!d.isInteger(t))throw TypeError("id must be an integer");if(this.values[e]!==_)throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(this.valuesById[t]!==_){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return n&&(this.valuesOptions===_&&(this.valuesOptions={}),this.valuesOptions[e]=n||null),this.comments[e]=s||null,this},n.prototype.remove=function(e){if(!d.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this.valuesOptions&&delete this.valuesOptions[e],this},n.prototype.isReservedId=function(e){return s.isReservedId(this.reserved,e)},n.prototype.isReservedName=function(e){return s.isReservedName(this.reserved,e)}},{23:23,24:24,37:37}],16:[function(s,t,i){function d(a,t,i,n,d,E,u){if(p.isObject(n)?(u=d,E=n,n=d=_):p.isObject(d)&&(u=E,E=d,d=_),m.call(this,a,E),!p.isInteger(t)||0>t)throw TypeError("id must be a non-negative integer");if(!p.isString(i))throw TypeError("type must be a string");if(n!==_&&!l.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(d!==_&&!p.isString(d))throw TypeError("extend must be a string");this.rule=(n="proto3_optional"===n?"optional":n)&&"optional"!==n?n:_,this.type=i,this.id=t,this.extend=d||_,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!p.Long&&c.long[i]!==_,this.bytes="bytes"===i,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this.o=null,this.comment=u}t.exports=d;var m=s(24),n=(((d.prototype=Object.create(m.prototype)).constructor=d).className="Field",s(15)),c=s(36),p=s(37),l=/^required|optional|repeated$/,e;d.fromJSON=function(e,t){return new d(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(d.prototype,"packed",{get:function(){return null===this.o&&(this.o=!1!==this.getOption("packed")),this.o}}),d.prototype.setOption=function(e,t,s){return"packed"===e&&(this.o=null),m.prototype.setOption.call(this,e,t,s)},d.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,p.toObject(["rule","optional"!==this.rule&&this.rule||_,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:_])},d.prototype.resolve=function(){var s;return this.resolved?this:((this.typeDefault=c.defaults[this.type])===_?(this.resolvedType=(this.declaringField||this).parent.lookupTypeOrEnum(this.type),this.typeDefault=this.resolvedType instanceof e?null:this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof n&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(this.options.packed===_||!this.resolvedType||this.resolvedType instanceof n)||delete this.options.packed,Object.keys(this.options).length||(this.options=_)),this.long?(this.typeDefault=p.Long.fromNumber(this.typeDefault,"u"==(this.type[0]||"")),Object.freeze&&Object.freeze(this.typeDefault)):this.bytes&&"string"==typeof this.typeDefault&&(p.base64.test(this.typeDefault)?p.base64.decode(this.typeDefault,s=p.newBuffer(p.base64.length(this.typeDefault)),0):p.utf8.write(this.typeDefault,s=p.newBuffer(p.utf8.length(this.typeDefault)),0),this.typeDefault=s),this.defaultValue=this.map?p.emptyObject:this.repeated?p.emptyArray:this.typeDefault,this.parent instanceof e&&(this.parent.ctor.prototype[this.name]=this.defaultValue),m.prototype.resolve.call(this))},d.d=function(o,n,a,e){return"function"==typeof n?n=p.decorateType(n).name:n&&"object"==typeof n&&(n=p.decorateEnum(n).name),function(s,t){p.decorateType(s.constructor).add(new d(t,o,n,a,{default:e}))}},d.u=function(n){e=n}},{15:15,24:24,36:36,37:37}],17:[function(e,t,s){var o=t.exports=e(18);o.build="light",o.load=function(e,t,s){return(t="function"==typeof t?(s=t,new o.Root):t||new o.Root).load(e,s)},o.loadSync=function(e,t){return(t=t||new o.Root).loadSync(e)},o.encoder=e(14),o.decoder=e(13),o.verifier=e(40),o.converter=e(12),o.ReflectionObject=e(24),o.Namespace=e(23),o.Root=e(29),o.Enum=e(15),o.Type=e(35),o.Field=e(16),o.OneOf=e(25),o.MapField=e(20),o.Service=e(33),o.Method=e(22),o.Message=e(21),o.wrappers=e(41),o.types=e(36),o.util=e(37),o.ReflectionObject.u(o.Root),o.Namespace.u(o.Type,o.Service,o.Enum),o.Root.u(o.Type),o.Field.u(o.Type)},{12:12,13:13,14:14,15:15,16:16,18:18,20:20,21:21,22:22,23:23,24:24,25:25,29:29,33:33,35:35,36:36,37:37,40:40,41:41}],18:[function(s,t,o){function n(){e.util.u(),e.Writer.u(e.BufferWriter),e.Reader.u(e.BufferReader)}var e=o;e.build="minimal",e.Writer=s(42),e.BufferWriter=s(43),e.Reader=s(27),e.BufferReader=s(28),e.util=s(39),e.rpc=s(31),e.roots=s(30),e.configure=n,n()},{27:27,28:28,30:30,31:31,39:39,42:42,43:43}],19:[function(e,t,s){t=t.exports=e(17),t.build="full",t.tokenize=e(34),t.parse=e(26),t.common=e(11),t.Root.u(t.Type,t.parse,t.common)},{11:11,17:17,26:26,34:34}],20:[function(e,t,i){function a(a,t,i,n,r,e){if(d.call(this,a,t,n,_,_,r,e),!o.isString(i))throw TypeError("keyType must be a string");this.keyType=i,this.resolvedKeyType=null,this.map=!0}t.exports=a;var d=e(16),n=(((a.prototype=Object.create(d.prototype)).constructor=a).className="MapField",e(36)),o=e(37);a.fromJSON=function(e,t){return new a(e,t.id,t.keyType,t.type,t.options,t.comment)},a.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,o.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",e?this.comment:_])},a.prototype.resolve=function(){if(this.resolved)return this;if(n.mapKey[this.keyType]===_)throw Error("invalid key type: "+this.keyType);return d.prototype.resolve.call(this)},a.d=function(s,n,r){return"function"==typeof r?r=o.decorateType(r).name:r&&"object"==typeof r&&(r=o.decorateEnum(r).name),function(e,t){o.decorateType(e.constructor).add(new a(t,s,n,r))}}},{16:16,36:36,37:37}],21:[function(s,t,o){function n(e){if(e)for(var t=Object.keys(e),s=0;s<t.length;++s)this[t[s]]=e[t[s]]}t.exports=n;var e=s(39);n.create=function(e){return this.$type.create(e)},n.encode=function(e,t){return this.$type.encode(e,t)},n.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},n.decode=function(e){return this.$type.decode(e)},n.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},n.verify=function(e){return this.$type.verify(e)},n.fromObject=function(e){return this.$type.fromObject(e)},n.toObject=function(e,t){return this.$type.toObject(e,t)},n.prototype.toJSON=function(){return this.$type.toObject(this,e.toJSONOptions)}},{39:39}],22:[function(e,t,s){function n(a,t,i,n,r,c,p,l,E){if(m.isObject(r)?(p=r,r=c=_):m.isObject(c)&&(p=c,c=_),t!==_&&!m.isString(t))throw TypeError("type must be a string");if(!m.isString(i))throw TypeError("requestType must be a string");if(!m.isString(n))throw TypeError("responseType must be a string");d.call(this,a,p),this.type=t||"rpc",this.requestType=i,this.requestStream=!!r||_,this.responseType=n,this.responseStream=!!c||_,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=l,this.parsedOptions=E}t.exports=n;var d=e(24),m=(((n.prototype=Object.create(d.prototype)).constructor=n).className="Method",e(37));n.fromJSON=function(e,t){return new n(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment,t.parsedOptions)},n.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,m.toObject(["type","rpc"!==this.type&&this.type||_,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",e?this.comment:_,"parsedOptions",this.parsedOptions])},n.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),d.prototype.resolve.call(this))}},{24:24,37:37}],23:[function(d,t,i){function n(e,t){if(!e||!e.length)return _;for(var s={},n=0;n<e.length;++n)s[e[n].name]=e[n].toJSON(t);return s}function a(e,t){c.call(this,e,t),this.nested=_,this.f=null}function m(e){return e.f=null,e}t.exports=a;var c=d(24),p=(((a.prototype=Object.create(c.prototype)).constructor=a).className="Namespace",d(16)),l=d(37),E=d(25),u,g,T;a.fromJSON=function(e,t){return new a(e,t.options).addJSON(t.nested)},a.arrayToJSON=n,a.isReservedId=function(e,t){if(e)for(var s=0;s<e.length;++s)if("string"!=typeof e[s]&&e[s][0]<=t&&e[s][1]>t)return!0;return!1},a.isReservedName=function(e,t){if(e)for(var s=0;s<e.length;++s)if(e[s]===t)return!0;return!1},Object.defineProperty(a.prototype,"nestedArray",{get:function(){return this.f||(this.f=l.toArray(this.nested))}}),a.prototype.toJSON=function(e){return l.toObject(["options",this.options,"nested",n(this.nestedArray,e)])},a.prototype.addJSON=function(e){if(e)for(var t=Object.keys(e),n=0,s;n<t.length;++n)s=e[t[n]],this.add((s.fields===_?s.values===_?s.methods===_?s.id===_?a:p:g:T:u).fromJSON(t[n],s));return this},a.prototype.get=function(e){return this.nested&&this.nested[e]||null},a.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof T)return this.nested[e].values;throw Error("no such enum: "+e)},a.prototype.add=function(e){if(!(e instanceof p&&e.extend!==_||e instanceof u||e instanceof E||e instanceof T||e instanceof g||e instanceof a))throw TypeError("object must be a valid nested object");if(this.nested){var t=this.get(e.name);if(t){if(!(t instanceof a&&e instanceof a)||t instanceof u||t instanceof g)throw Error("duplicate name '"+e.name+"' in "+this);for(var s=t.nestedArray,n=0;n<s.length;++n)e.add(s[n]);this.remove(t),this.nested||(this.nested={}),e.setOptions(t.options,!0)}}else this.nested={};return(this.nested[e.name]=e).onAdd(this),m(this)},a.prototype.remove=function(e){if(!(e instanceof c))throw TypeError("object must be a ReflectionObject");if(e.parent!==this)throw Error(e+" is not a member of "+this);return delete this.nested[e.name],Object.keys(this.nested).length||(this.nested=_),e.onRemove(this),m(this)},a.prototype.define=function(e,s){if(l.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var o=this,i;0<e.length;)if(i=e.shift(),!(o.nested&&o.nested[i]))o.add(o=new a(i));else if(!((o=o.nested[i])instanceof a))throw Error("path conflicts with non-namespace objects");return s&&o.addJSON(s),o},a.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof a?e[t++].resolveAll():e[t++].resolve();return this.resolve()},a.prototype.lookup=function(s,o,d){if("boolean"==typeof o?(d=o,o=_):o&&!Array.isArray(o)&&(o=[o]),l.isString(s)&&s.length){if("."===s)return this.root;s=s.split(".")}else if(!s.length)return this;if(""===s[0])return this.root.lookup(s.slice(1),o);var m=this.get(s[0]);if(!m){for(var c=0;c<this.nestedArray.length;++c)if(this.f[c]instanceof a&&(m=this.f[c].lookup(s,o,!0)))return m;}else if(1===s.length){if(!o||~o.indexOf(m.constructor))return m;}else if(m instanceof a&&(m=m.lookup(s.slice(1),o,!0)))return m;return null===this.parent||d?null:this.parent.lookup(s,o)},a.prototype.lookupType=function(e){var t=this.lookup(e,[u]);if(t)return t;throw Error("no such type: "+e)},a.prototype.lookupEnum=function(e){var t=this.lookup(e,[T]);if(t)return t;throw Error("no such Enum '"+e+"' in "+this)},a.prototype.lookupTypeOrEnum=function(e){var t=this.lookup(e,[u,T]);if(t)return t;throw Error("no such Type or Enum '"+e+"' in "+this)},a.prototype.lookupService=function(e){var t=this.lookup(e,[g]);if(t)return t;throw Error("no such Service '"+e+"' in "+this)},a.u=function(e,t,s){u=e,g=t,T=s}},{16:16,24:24,25:25,37:37}],24:[function(s,t,i){function n(e,t){if(!a.isString(e))throw TypeError("name must be a string");if(t&&!a.isObject(t))throw TypeError("options must be an object");this.options=t,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}(t.exports=n).className="ReflectionObject";var a=s(37),e;Object.defineProperties(n.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),n.prototype.toJSON=function(){throw Error()},n.prototype.onAdd=function(n){this.parent&&this.parent!==n&&this.parent.remove(this),this.parent=n,this.resolved=!1,n=n.root,n instanceof e&&n.h(this)},n.prototype.onRemove=function(n){n=n.root,n instanceof e&&n.a(this),this.parent=null,this.resolved=!1},n.prototype.resolve=function(){return this.resolved||this.root instanceof e&&(this.resolved=!0),this},n.prototype.getOption=function(e){return this.options?this.options[e]:_},n.prototype.setOption=function(e,t,s){return s&&this.options&&this.options[e]!==_||((this.options||(this.options={}))[e]=t),this},n.prototype.setParsedOption=function(o,i,t){this.parsedOptions||(this.parsedOptions=[]);var n=this.parsedOptions,s,d;return t?(s=n.find(function(e){return Object.prototype.hasOwnProperty.call(e,o)}))?(d=s[o],a.setProperty(d,t,i)):((s={})[o]=a.setProperty({},t,i),n.push(s)):((d={})[o]=i,n.push(d)),this},n.prototype.setOptions=function(e,t){if(e)for(var s=Object.keys(e),n=0;n<s.length;++n)this.setOption(s[n],e[s[n]],t);return this},n.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},n.u=function(n){e=n}},{37:37}],25:[function(a,t,i){function d(e,t,s,o){if(Array.isArray(t)||(s=t,t=_),m.call(this,e,s),t!==_&&!Array.isArray(t))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=o}function o(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}t.exports=d;var m=a(24),e=(((d.prototype=Object.create(m.prototype)).constructor=d).className="OneOf",a(16)),r=a(37);d.fromJSON=function(e,t){return new d(e,t.oneof,t.options,t.comment)},d.prototype.toJSON=function(e){return e=!!e&&!!e.keepComments,r.toObject(["options",this.options,"oneof",this.oneof,"comment",e?this.comment:_])},d.prototype.add=function(n){if(n instanceof e)return n.parent&&n.parent!==this.parent&&n.parent.remove(n),this.oneof.push(n.name),this.fieldsArray.push(n),o(n.partOf=this),this;throw TypeError("field must be a Field")},d.prototype.remove=function(n){if(!(n instanceof e))throw TypeError("field must be a Field");var t=this.fieldsArray.indexOf(n);if(0>t)throw Error(n+" is not a member of "+this);return this.fieldsArray.splice(t,1),-1<(t=this.oneof.indexOf(n.name))&&this.oneof.splice(t,1),n.partOf=null,this},d.prototype.onAdd=function(e){m.prototype.onAdd.call(this,e);for(var t=0,s;t<this.oneof.length;++t)s=e.get(this.oneof[t]),s&&!s.partOf&&(s.partOf=this).fieldsArray.push(s);o(this)},d.prototype.onRemove=function(e){for(var t=0,s;t<this.fieldsArray.length;++t)(s=this.fieldsArray[t]).parent&&s.parent.remove(s);m.prototype.onRemove.call(this,e)},d.d=function(){for(var e=Array(arguments.length),n=0;n<arguments.length;)e[n]=arguments[n++];return function(n,t){r.decorateType(n.constructor).add(new d(t,e)),Object.defineProperty(n,t,{get:r.oneOfGetter(e),set:r.oneOfSetter(e)})}}},{16:16,24:24,37:37}],26:[function(e,t,s){function ee(U,t,G){function q(e,t,s){var n=ee.filename;return s||(ee.filename=null),Error("illegal "+(t||"token")+" '"+e+"' ("+(n?n+", ":"")+"line "+Y.line+")")}function L(){var e=[],n;do if("\""!==(n=Q())&&"'"!==n)throw q(n);while((e.push(Q()),W(n),"\""===(n=J())||"'"===n));return e.join("")}function k(s){var o=Q();switch(o){case"'":case"\"":return K(o),L();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{var n=o,a=!0,r=1;switch("-"==(n[0]||"")&&(r=-1,n=n.substring(1)),n){case"inf":case"INF":case"Inf":return r*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(i.test(n))return r*parseInt(n,10);if(l.test(n))return r*parseInt(n,16);if(T.test(n))return r*parseInt(n,8);if(S.test(n))return r*parseFloat(n);throw q(n,"number",!0)}catch(e){if(s&&D.test(o))return o;throw q(o,"value")}}function O(e,t){for(var s;t&&("\""===(s=J())||"'"===s)?e.push(L()):e.push([s=P(Q()),W("to",!0)?P(Q()):s]),W(",",!0););W(";")}function P(e,t){switch(e){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(t||"-"!=(e[0]||"")){if(r.test(e))return parseInt(e,10);if(u.test(e))return parseInt(e,16);if(C.test(e))return parseInt(e,8)}throw q(e,"id")}function A(o,t){switch(t){case"option":return V(o,t),W(";"),1;case"message":return F(o),1;case"enum":return N(o),1;case"service":var i=o,a=t,d;if(R.test(a=Q()))return x(d=new p(a),function(a){if(!A(d,a)){if("rpc"!==a)throw q(a);var m=d,i=v(),n=a;if(!R.test(a=Q()))throw q(a,"name");var r=a,c,p,l;if(W("("),W("stream",!0)&&(p=!0),!D.test(a=Q()))throw q(a);if(c=a,W(")"),W("returns"),W("("),W("stream",!0)&&(l=!0),!D.test(a=Q()))throw q(a);a=a,W(")");var u=new E(r,n,c,a,p,l);u.comment=i,x(u,function(e){if("option"!==e)throw q(e);V(u,e),W(";")}),m.add(u)}}),i.add(d),1;throw q(a,"service name");case"extend":var m=o,i=t,s;if(D.test(i=Q()))return s=i,x(null,function(e){switch(e){case"required":case"repeated":H(m,e,s);break;case"optional":H(m,$?"proto3_optional":"optional",s);break;default:if(!$||!D.test(e))throw q(e);K(e),H(m,"optional",s)}}),1;throw q(i,"reference")}}function x(s,t,o){var n=Y.line,e;if(s&&("string"!=typeof s.comment&&(s.comment=v()),s.filename=ee.filename),W("{",!0)){for(;"}"!==(e=Q());)t(e);W(";",!0)}else o&&o(),W(";"),s&&("string"!=typeof s.comment||M)&&(s.comment=v(n)||s.comment)}function F(e,t){if(!R.test(t=Q()))throw q(t,"type name");var a=new n(t);x(a,function(d){if(!A(a,d))switch(d){case"map":var t=a,i=(W("<"),Q());if(y.mapKey[i]===_)throw q(i,"type");W(",");var p=Q();if(!D.test(p))throw q(p,"type");W(">");var r=Q();if(!R.test(r))throw q(r,"name");W("=");var l=new m(X(r),P(Q()),i,p);x(l,function(e){if("option"!==e)throw q(e);V(l,e),W(";")},function(){B(l)}),t.add(l);break;case"required":case"repeated":H(a,d);break;case"optional":H(a,$?"proto3_optional":"optional");break;case"oneof":if(r=a,i=d,!R.test(i=Q()))throw q(i,"name");var s=new c(X(i));x(s,function(e){"option"===e?(V(s,e),W(";")):(K(e),H(s,"optional"))}),r.add(s);break;case"extensions":O(a.extensions||(a.extensions=[]));break;case"reserved":O(a.reserved||(a.reserved=[]),!0);break;default:if(!$||!D.test(d))throw q(d);K(d),H(a,"optional")}}),e.add(a)}function H(m,t,i){var p=Q();if("group"===p){var l=m,o=t,E=Q(),T,C;if(R.test(E))return C=g.lcFirst(E),E===C&&(E=g.ucFirst(E)),W("="),S=P(Q()),(T=new n(E)).group=!0,(C=new d(C,S,E,o)).filename=ee.filename,x(T,function(e){switch(e){case"option":V(T,e),W(";");break;case"required":case"repeated":H(T,e);break;case"optional":H(T,$?"proto3_optional":"optional");break;case"message":F(T);break;case"enum":N(T);break;default:throw q(e)}}),void l.add(T).add(C);throw q(E,"name")}for(;p.endsWith(".")||J().startsWith(".");)p+=Q();if(!D.test(p))throw q(p,"type");var S=Q();if(!R.test(S))throw q(S,"name");S=X(S),W("=");var O=new d(S,P(Q()),p,t,i);x(O,function(e){if("option"!==e)throw q(e);V(O,e),W(";")},function(){B(O)}),"proto3_optional"===t?(o=new c("_"+S),O.setOption("proto3_optional",!0),o.add(O),m.add(o)):m.add(O),$||!O.repeated||y.packed[p]===_&&y.basic[p]!==_||O.setOption("packed",!1,!0)}function N(e,t){if(!R.test(t=Q()))throw q(t,"name");var a=new o(t);x(a,function(s){switch(s){case"option":V(a,s),W(";");break;case"reserved":O(a.reserved||(a.reserved=[]),!0);break;default:var t=a,o=s;if(!R.test(o))throw q(o,"name");W("=");var n=P(Q(),!0),i={options:_,setOption:function(e,t){this.options===_&&(this.options={}),this.options[e]=t}};return x(i,function(e){if("option"!==e)throw q(e);V(i,e),W(";")},function(){B(i)}),void t.add(o,n,i.comment,i.options)}}),e.add(a)}function V(o,t){var a=W("(",!0);if(!D.test(t=Q()))throw q(t,"name");var d=t,m=d,a=(a&&(W(")"),m=d="("+d+")",t=J(),f.test(t)&&(c=t.slice(1),d+=t,Q())),W("="),function n(a,i){if(W("{",!0)){for(var t={};!W("}",!0);){if(!R.test(oe=Q()))throw q(oe,"name");if(null===oe)throw q(oe,"end of input");var r=oe,d,m;if(W(":",!0),"{"===J())d=n(a,i+"."+oe);else if("["!==J())d=k(!0),j(a,i+"."+oe,d);else if(d=[],W("[",!0)){for(;m=k(!0),d.push(m),W(",",!0););W("]"),void 0!==m&&j(a,i+"."+oe,m)}var c=t[r];c&&(d=[].concat(c).concat(d)),t[r]=d,W(",",!0),W(";",!0)}return t}var p=k(!0);return j(a,i,p),p}(o,d)),c;t=m,d=a,m=c,(a=o).setParsedOption&&a.setParsedOption(t,d,m)}function j(e,t,s){e.setOption&&e.setOption(t,s)}function B(e){if(W("[",!0)){for(;V(e,"option"),W(",",!0););W("]")}}t instanceof I||(G=t,t=new I);for(var M=(G=G||ee.defaults).preferTrailingComment||!1,Y=a(U,G.alternateCommentMode||!1),Q=Y.next,K=Y.push,J=Y.peek,W=Y.skip,v=Y.cmnt,b=!0,$=!1,z=t,X=G.keepCase?function(e){return e}:g.camelCase,Z,te,ne,se,oe,ie,re;null!==(oe=Q());)switch(oe){case"package":if(!b)throw q(oe);if(Z!==_)throw q("package");if(Z=Q(),!D.test(Z))throw q(Z,"name");z=z.define(Z),W(";");break;case"import":if(!b)throw q(oe);switch(re=ie=void 0,J()){case"weak":re=ne=ne||[],Q();break;case"public":Q();default:re=te=te||[]}ie=L(),W(";"),re.push(ie);break;case"syntax":if(!b)throw q(oe);if(W("="),se=L(),!($="proto3"===se)&&"proto2"!==se)throw q(se,"syntax");W(";");break;case"option":V(z,oe),W(";");break;default:if(A(z,oe)){b=!1;continue}throw q(oe)}return ee.filename=null,{package:Z,imports:te,weakImports:ne,syntax:se,root:t}}(t.exports=ee).filename=null,ee.defaults={keepCase:!1};var a=e(34),I=e(29),n=e(35),d=e(16),m=e(20),c=e(25),o=e(15),p=e(33),E=e(22),y=e(36),g=e(37),i=/^[1-9][0-9]*$/,r=/^-?[1-9][0-9]*$/,l=/^0[x][0-9a-fA-F]+$/,u=/^-?0[x][0-9a-fA-F]+$/,T=/^0[0-7]+$/,C=/^-?0[0-7]+$/,S=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,R=/^[a-zA-Z_][a-zA-Z_0-9]*$/,D=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,f=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/},{15:15,16:16,20:20,22:22,25:25,29:29,33:33,34:34,35:35,36:36,37:37}],27:[function(m,t,i){function E(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function n(e){this.buf=e,this.pos=0,this.len=e.length}function u(){return p.Buffer?function(e){return(n.create=function(e){return p.Buffer.isBuffer(e)?new c(e):o(e)})(e)}:o}function g(){var n=new e(0,0),t=0;if(!(4<this.len-this.pos)){for(;3>t;++t){if(this.pos>=this.len)throw E(this);if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*t)>>>0,128>this.buf[this.pos++])return n}return n.lo=(n.lo|(127&this.buf[this.pos++])<<7*t)>>>0,n}for(;4>t;++t)if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*t)>>>0,128>this.buf[this.pos++])return n;if(n.lo=(n.lo|(127&this.buf[this.pos])<<28)>>>0,n.hi=(n.hi|(127&this.buf[this.pos])>>4)>>>0,128>this.buf[this.pos++])return n;if(t=0,4<this.len-this.pos){for(;5>t;++t)if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,128>this.buf[this.pos++])return n;}else for(;5>t;++t){if(this.pos>=this.len)throw E(this);if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,128>this.buf[this.pos++])return n}throw Error("invalid varint encoding")}function l(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function d(){if(this.pos+8>this.len)throw E(this,8);return new e(l(this.buf,this.pos+=4),l(this.buf,this.pos+=4))}t.exports=n;var p=m(39),e=p.LongBits,s=p.utf8,o="undefined"==typeof Uint8Array?function(e){if(Array.isArray(e))return new n(e);throw Error("illegal buffer")}:function(e){if(e instanceof Uint8Array||Array.isArray(e))return new n(e);throw Error("illegal buffer")},c,T;n.create=u(),n.prototype.c=p.Array.prototype.subarray||p.Array.prototype.slice,n.prototype.uint32=(T=4294967295,function(){if(T=(127&this.buf[this.pos])>>>0,128>this.buf[this.pos++]||(T=(T|(127&this.buf[this.pos])<<7)>>>0,128>this.buf[this.pos++]||(T=(T|(127&this.buf[this.pos])<<14)>>>0,128>this.buf[this.pos++]||(T=(T|(127&this.buf[this.pos])<<21)>>>0,128>this.buf[this.pos++]||(T=(T|(15&this.buf[this.pos])<<28)>>>0,128>this.buf[this.pos++]||!((this.pos+=5)>this.len))))))return T;throw this.pos=this.len,E(this,10)}),n.prototype.int32=function(){return 0|this.uint32()},n.prototype.sint32=function(){var e=this.uint32();return 0|e>>>1^-(1&e)},n.prototype.bool=function(){return 0!==this.uint32()},n.prototype.fixed32=function(){if(this.pos+4>this.len)throw E(this,4);return l(this.buf,this.pos+=4)},n.prototype.sfixed32=function(){if(this.pos+4>this.len)throw E(this,4);return 0|l(this.buf,this.pos+=4)},n.prototype.float=function(){if(this.pos+4>this.len)throw E(this,4);var e=p.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},n.prototype.double=function(){if(this.pos+8>this.len)throw E(this,4);var e=p.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},n.prototype.bytes=function(){var e=this.uint32(),s=this.pos,o=this.pos+e;if(o>this.len)throw E(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(s,o):s===o?(e=p.Buffer)?e.alloc(0):new this.buf.constructor(0):this.c.call(this.buf,s,o)},n.prototype.string=function(){var e=this.bytes();return s.read(e,0,e.length)},n.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw E(this,e);this.pos+=e}else do if(this.pos>=this.len)throw E(this);while(128&this.buf[this.pos++]);return this},n.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},n.u=function(e){c=e,n.create=u(),c.u();var t=p.Long?"toLong":"toNumber";p.merge(n.prototype,{int64:function(){return g.call(this)[t](!1)},uint64:function(){return g.call(this)[t](!0)},sint64:function(){return g.call(this).zzDecode()[t](!1)},fixed64:function(){return d.call(this)[t](!0)},sfixed64:function(){return d.call(this)[t](!1)}})}},{39:39}],28:[function(o,t,i){function n(e){s.call(this,e)}t.exports=n;var s=o(27),r=((n.prototype=Object.create(s.prototype)).constructor=n,o(39));n.u=function(){r.Buffer&&(n.prototype.c=r.Buffer.prototype.slice)},n.prototype.string=function(){var n=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=e(this.pos+n,this.len)):this.buf.toString("utf-8",this.pos,this.pos=e(this.pos+n,this.len))},n.u()},{27:27,39:39}],29:[function(m,t,i){function n(e){a.call(this,"",e),this.deferred=[],this.files=[]}function E(){}function c(s,t){var o=t.parent.lookup(t.extend),i;if(o)return i=new e(t.fullName,t.id,t.type,t.rule,_,t.options),o.get(i.name)||((i.declaringField=t).extensionField=i,o.add(i)),1}t.exports=n;var a=m(23),e=(((n.prototype=Object.create(a.prototype)).constructor=n).className="Root",m(16)),s=m(15),o=m(25),g=m(37),l,u,T;n.fromJSON=function(e,t){return t=t||new n,e.options&&t.setOptions(e.options),t.addJSON(e.nested)},n.prototype.resolvePath=g.path.resolve,n.prototype.fetch=g.fetch,n.prototype.load=function y(d,m,p){function C(e,t){if(p){if(o)throw e;var s=p;p=null,s(e,t)}}function S(e){var n=e.lastIndexOf("google/protobuf/");return-1<n&&(e=e.substring(n),e in T)?e:null}function O(s,t){try{if(g.isString(t)&&"{"==(t[0]||"")&&(t=JSON.parse(t)),g.isString(t)){u.filename=s;var d=u(t,c,m),r=0,p;if(d.imports)for(;r<d.imports.length;++r)(p=S(d.imports[r])||c.resolvePath(s,d.imports[r]))&&a(p);if(d.weakImports)for(r=0;r<d.weakImports.length;++r)(p=S(d.weakImports[r])||c.resolvePath(s,d.weakImports[r]))&&a(p,!0)}else c.setOptions(t.options).addJSON(t.nested)}catch(e){C(e)}o||f||C(null,c)}function a(e,s){if(e=S(e)||e,!~c.files.indexOf(e))if(c.files.push(e),e in T)o?O(e,T[e]):(++f,setTimeout(function(){--f,O(e,T[e])}));else if(o){var i;try{i=g.fs.readFileSync(e).toString("utf8")}catch(e){return void(s||C(e))}O(e,i)}else++f,c.fetch(e,function(n,t){--f,p&&(n?s?f||C(null,c):C(n):O(e,t))})}"function"==typeof m&&(p=m,m=_);var c=this;if(!p)return g.asPromise(y,c,d,m);var o=p===E,f=0;g.isString(d)&&(d=[d]);for(var t=0,I;t<d.length;++t)(I=c.resolvePath("",d[t]))&&a(I);return o?c:(f||C(null,c),_)},n.prototype.loadSync=function(e,t){if(g.isNode)return this.load(e,t,E);throw Error("not supported")},n.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(e){return"'extend "+e.extend+"' in "+e.parent.fullName}).join(", "));return a.prototype.resolveAll.call(this)};var y=/^[A-Z]/;n.prototype.h=function(r){if(r instanceof e)r.extend===_||r.extensionField||c(0,r)||this.deferred.push(r);else if(r instanceof s)y.test(r.name)&&(r.parent[r.name]=r.values);else if(!(r instanceof o)){if(r instanceof l)for(var t=0;t<this.deferred.length;)c(0,this.deferred[t])?this.deferred.splice(t,1):++t;for(var a=0;a<r.nestedArray.length;++a)this.h(r.f[a]);y.test(r.name)&&(r.parent[r.name]=r)}},n.prototype.a=function(o){var t;if(o instanceof e)o.extend!==_&&(o.extensionField?(o.extensionField.parent.remove(o.extensionField),o.extensionField=null):-1<(t=this.deferred.indexOf(o))&&this.deferred.splice(t,1));else if(o instanceof s)y.test(o.name)&&delete o.parent[o.name];else if(o instanceof a){for(var r=0;r<o.nestedArray.length;++r)this.a(o.f[r]);y.test(o.name)&&delete o.parent[o.name]}},n.u=function(e,t,s){l=e,u=t,T=s}},{15:15,16:16,23:23,25:25,37:37}],30:[function(e,t,s){t.exports={}},{}],31:[function(e,t,s){s.Service=e(32)},{32:32}],32:[function(e,t,s){function n(e,t,s){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");a.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=!!t,this.responseDelimited=!!s}t.exports=n;var a=e(39);((n.prototype=Object.create(a.EventEmitter.prototype)).constructor=n).prototype.rpcCall=function s(d,n,m,i,e){if(!i)throw TypeError("request must be specified");var r=this;if(!e)return a.asPromise(s,r,d,n,m,i);if(!r.rpcImpl)return setTimeout(function(){e(Error("already ended"))},0),_;try{return r.rpcImpl(d,n[r.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(n,t){if(n)return r.emit("error",n,d),e(n);if(null===t)return r.end(!0),_;if(!(t instanceof m))try{t=m[r.responseDelimited?"decodeDelimited":"decode"](t)}catch(n){return r.emit("error",n,d),e(n)}return r.emit("data",t,d),e(null,t)})}catch(n){return r.emit("error",n,d),setTimeout(function(){e(n)},0),_}},n.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{39:39}],33:[function(a,t,i){function d(n,t){e.call(this,n,t),this.methods={},this.l=null}function n(e){return e.l=null,e}t.exports=d;var e=a(23),o=(((d.prototype=Object.create(e.prototype)).constructor=d).className="Service",a(22)),m=a(37),c=a(31);d.fromJSON=function(s,t){var i=new d(s,t.options);if(t.methods)for(var n=Object.keys(t.methods),r=0;r<n.length;++r)i.add(o.fromJSON(n[r],t.methods[n[r]]));return t.nested&&i.addJSON(t.nested),i.comment=t.comment,i},d.prototype.toJSON=function(s){var t=e.prototype.toJSON.call(this,s),o=!!s&&!!s.keepComments;return m.toObject(["options",t&&t.options||_,"methods",e.arrayToJSON(this.methodsArray,s)||{},"nested",t&&t.nested||_,"comment",o?this.comment:_])},Object.defineProperty(d.prototype,"methodsArray",{get:function(){return this.l||(this.l=m.toArray(this.methods))}}),d.prototype.get=function(n){return this.methods[n]||e.prototype.get.call(this,n)},d.prototype.resolveAll=function(){for(var n=this.methodsArray,t=0;t<n.length;++t)n[t].resolve();return e.prototype.resolve.call(this)},d.prototype.add=function(s){if(this.get(s.name))throw Error("duplicate name '"+s.name+"' in "+this);return s instanceof o?n((this.methods[s.name]=s).parent=this):e.prototype.add.call(this,s)},d.prototype.remove=function(s){if(s instanceof o){if(this.methods[s.name]!==s)throw Error(s+" is not a member of "+this);return delete this.methods[s.name],s.parent=null,n(this)}return e.prototype.remove.call(this,s)},d.prototype.create=function(a,t,i){for(var n=new c.Service(a,t,i),e=0,d,p;e<this.methodsArray.length;++e)p=m.lcFirst((d=this.l[e]).resolve().name).replace(/[^$\w_]/g,""),n[p]=m.codegen(["r","c"],m.isReserved(p)?p+"_":p)("return this.rpcCall(m,q,s,r,c)")({m:d,q:d.resolvedRequestType.ctor,s:d.resolvedResponseType.ctor});return n}},{22:22,23:23,31:31,37:37}],34:[function(o,t,i){function n(e){return e.replace(u,function(e,t){return"\\"===t||""===t?t:r[t]||""})}function a(T,C){function a(e){return Error("illegal "+e+" (line "+I+")")}function y(e){return T[0|e]||""}function t(a,d,i){var p={type:T[0|a++]||"",lineEmpty:!1,leading:i},i=C?2:3,e=a-i,E;do if(0>--e||"\n"==(E=T[0|e]||"")){p.lineEmpty=!0;break}while(" "===E||"\t"===E);for(var g=T.substring(a,d).split(l),o=0;o<g.length;++o)g[o]=g[o].replace(C?c:m,"").trim();p.text=g.join("\n").trim(),A[I]=p,R=I}function i(e){var n=g(e),e=T.substring(e,n);return /^\s*\/\//.test(e)}function g(e){for(var t=e;t<O&&"\n"!==y(t);)t++;return t}function o(){if(0<N.length)return N.shift();if(M){var m="'"===M?d:s,c=(m.lastIndex=S-1,m.exec(T));if(c)return S=m.lastIndex,r(M),M=null,n(c[1]);throw a("string")}var d=0===S,l,_,R,A,v;do{if(S===O)return null;for(l=!1;E.test(R=y(S));)if("\n"===R&&(d=!0,++I),++S===O)return null;if("/"===y(S)){if(++S===O)throw a("comment");if("/"!==y(S)){if("*"!==(R=y(S)))return"/";A=S+1,v=C||"*"===y(A);do if("\n"===R&&++I,++S===O)throw a("comment");while((_=R,R=y(S),"*"!==_||"/"!==R));++S,v&&(t(A,S-2,d),d=!0)}else if(C){if(v=!1,i((A=S)-1))for(v=!0;(S=g(S))!==O&&(S++,d&&i(S)););else S=e(O,g(S)+1);v&&(t(A,S,d),d=!0),I++}else{for(v="/"===y(A=S+1);"\n"!==y(++S);)if(S===O)return null;++S,v&&(t(A,S-1,d),d=!0),++I}l=!0}}while(l);var h=S;if(p.lastIndex=0,!p.test(y(h++)))for(;h<O&&!p.test(y(h));)++h;return m=T.substring(S,S=h),"\""!=m&&"'"!=m||(M=m),m}function r(e){N.push(e)}function u(){if(!N.length){var e=o();if(null===e)return null;r(e)}return N[0]}T=T.toString();var S=0,O=T.length,I=1,R=0,A={},N=[],M=null;return Object.defineProperty({next:o,peek:u,push:r,skip:function(e,t){var s=u();if(s===e)return o(),!0;if(t)return!1;throw a("token '"+s+"', '"+e+"' expected")},cmnt:function(e){var t=null,s;return e===_?(s=A[I-1],delete A[I-1],s&&(C||"*"===s.type||s.lineEmpty)&&(t=s.leading?s.text:null)):(R<e&&u(),s=A[e],delete A[e],!s||s.lineEmpty||!C&&"/"!==s.type||(t=s.leading?null:s.text)),t}},"line",{get:function(){return I}})}t.exports=a;var p=/[\s{}=;:[\],'"()<>]/g,s=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,d=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,m=/^ *[*/]+ */,c=/^\s*\*?\/*/,l=/\n/g,E=/\s/,u=/\\(.?)/g,r={0:"\0",r:"\r",n:"\n",t:"\t"};a.unescape=n},{}],35:[function(E,t,i){function g(e,t){m.call(this,e,t),this.fields={},this.oneofs=_,this.extensions=_,this.reserved=_,this.group=_,this.p=null,this.e=null,this.v=null,this.b=null}function n(e){return e.p=e.e=e.v=null,delete e.encode,delete e.decode,delete e.verify,e}t.exports=g;var m=E(23),o=(((g.prototype=Object.create(m.prototype)).constructor=g).className="Type",E(15)),u=E(25),T=E(16),C=E(20),a=E(33),r=E(21),e=E(27),s=E(42),c=E(37),d=E(14),p=E(13),l=E(40),S=E(12),y=E(41);Object.defineProperties(g.prototype,{fieldsById:{get:function(){if(!this.p){this.p={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var s=this.fields[e[t]],o=s.id;if(this.p[o])throw Error("duplicate id "+o+" in "+this);this.p[o]=s}}return this.p}},fieldsArray:{get:function(){return this.e||(this.e=c.toArray(this.fields))}},oneofsArray:{get:function(){return this.v||(this.v=c.toArray(this.oneofs))}},ctor:{get:function(){return this.b||(this.ctor=g.generateConstructor(this)())},set:function(e){for(var t=e.prototype,s=(t instanceof r||((e.prototype=new r).constructor=e,c.merge(e.prototype,t)),e.$type=e.prototype.$type=this,c.merge(e,r,!0),this.b=e,0);s<this.fieldsArray.length;++s)this.e[s].resolve();for(var o={},s=0;s<this.oneofsArray.length;++s)o[this.v[s].resolve().name]={get:c.oneOfGetter(this.v[s].oneof),set:c.oneOfSetter(this.v[s].oneof)};s&&Object.defineProperties(e.prototype,o)}}}),g.generateConstructor=function(e){for(var t=c.codegen(["p"],e.name),n=0,s;n<e.fieldsArray.length;++n)(s=e.e[n]).map?t("this%s={}",c.safeProp(s.name)):s.repeated&&t("this%s=[]",c.safeProp(s.name));return t("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},g.fromJSON=function(d,t){for(var i=new g(d,t.options),n=(i.extensions=t.extensions,i.reserved=t.reserved,Object.keys(t.fields)),c=0;c<n.length;++c)i.add((void 0===t.fields[n[c]].keyType?T:C).fromJSON(n[c],t.fields[n[c]]));if(t.oneofs)for(n=Object.keys(t.oneofs),c=0;c<n.length;++c)i.add(u.fromJSON(n[c],t.oneofs[n[c]]));if(t.nested)for(n=Object.keys(t.nested),c=0;c<n.length;++c){var p=t.nested[n[c]];i.add((p.id===_?p.fields===_?p.values===_?p.methods===_?m:a:o:g:T).fromJSON(n[c],p))}return t.extensions&&t.extensions.length&&(i.extensions=t.extensions),t.reserved&&t.reserved.length&&(i.reserved=t.reserved),t.group&&(i.group=!0),t.comment&&(i.comment=t.comment),i},g.prototype.toJSON=function(e){var t=m.prototype.toJSON.call(this,e),s=!!e&&!!e.keepComments;return c.toObject(["options",t&&t.options||_,"oneofs",m.arrayToJSON(this.oneofsArray,e),"fields",m.arrayToJSON(this.fieldsArray.filter(function(e){return!e.declaringField}),e)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:_,"reserved",this.reserved&&this.reserved.length?this.reserved:_,"group",this.group||_,"nested",t&&t.nested||_,"comment",s?this.comment:_])},g.prototype.resolveAll=function(){for(var e=this.fieldsArray,t=0;t<e.length;)e[t++].resolve();for(var s=this.oneofsArray,t=0;t<s.length;)s[t++].resolve();return m.prototype.resolveAll.call(this)},g.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},g.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);if(e instanceof T&&e.extend===_){if((this.p||this.fieldsById)[e.id])throw Error("duplicate id "+e.id+" in "+this);if(this.isReservedId(e.id))throw Error("id "+e.id+" is reserved in "+this);if(this.isReservedName(e.name))throw Error("name '"+e.name+"' is reserved in "+this);return e.parent&&e.parent.remove(e),(this.fields[e.name]=e).message=this,e.onAdd(this),n(this)}return e instanceof u?(this.oneofs||(this.oneofs={}),(this.oneofs[e.name]=e).onAdd(this),n(this)):m.prototype.add.call(this,e)},g.prototype.remove=function(e){if(e instanceof T&&e.extend===_){if(this.fields&&this.fields[e.name]===e)return delete this.fields[e.name],e.parent=null,e.onRemove(this),n(this);throw Error(e+" is not a member of "+this)}if(e instanceof u){if(this.oneofs&&this.oneofs[e.name]===e)return delete this.oneofs[e.name],e.parent=null,e.onRemove(this),n(this);throw Error(e+" is not a member of "+this)}return m.prototype.remove.call(this,e)},g.prototype.isReservedId=function(e){return m.isReservedId(this.reserved,e)},g.prototype.isReservedName=function(e){return m.isReservedName(this.reserved,e)},g.prototype.create=function(e){return new this.ctor(e)},g.prototype.setup=function(){for(var o=this.fullName,a=[],i=0;i<this.fieldsArray.length;++i)a.push(this.e[i].resolve().resolvedType);this.encode=d(this)({Writer:s,types:a,util:c}),this.decode=p(this)({Reader:e,types:a,util:c}),this.verify=l(this)({types:a,util:c}),this.fromObject=S.fromObject(this)({types:a,util:c}),this.toObject=S.toObject(this)({types:a,util:c});var o=y[o],m;return o&&((m=Object.create(this)).fromObject=this.fromObject,this.fromObject=o.fromObject.bind(m),m.toObject=this.toObject,this.toObject=o.toObject.bind(m)),this},g.prototype.encode=function(e,t){return this.setup().encode(e,t)},g.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},g.prototype.decode=function(e,t){return this.setup().decode(e,t)},g.prototype.decodeDelimited=function(n){return n instanceof e||(n=e.create(n)),this.decode(n,n.uint32())},g.prototype.verify=function(e){return this.setup().verify(e)},g.prototype.fromObject=function(e){return this.setup().fromObject(e)},g.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},g.d=function(e){return function(n){c.decorateType(n,e)}}},{12:12,13:13,14:14,15:15,16:16,20:20,21:21,23:23,25:25,27:27,33:33,37:37,40:40,41:41,42:42}],36:[function(s,o,i){function n(e,t){var s=0,o={};for(t|=0;s<e.length;)o[a[s+t]]=e[s++];return o}var s=s(37),a=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];i.basic=n([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=n([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",s.emptyArray,null]),i.long=n([0,0,0,1,1],7),i.mapKey=n([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=n([1,5,0,0,0,5,5,0,0,0,1,1,0])},{37:37}],37:[function(d,n,t){var m=n.exports=d(39),s=d(30),o=(m.codegen=d(3),m.fetch=d(5),m.path=d(8),m.fs=m.inquire("fs"),m.toArray=function(e){if(e){for(var t=Object.keys(e),s=Array(t.length),n=0;n<t.length;)s[n]=e[t[n++]];return s}return[]},m.toObject=function(s){for(var t={},o=0;o<s.length;){var i=s[o++],a=s[o++];a!==_&&(t[i]=a)}return t},/\\/g),i=/"/g,c=(m.isReserved=function(e){return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},m.safeProp=function(e){return!/^[$\w_]+$/.test(e)||m.isReserved(e)?"[\""+e.replace(o,"\\\\").replace(i,"\\\"")+"\"]":"."+e},m.ucFirst=function(e){return(e[0]||"").toUpperCase()+e.substring(1)},/_([a-z])/g),p=(m.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(c,function(e,t){return t.toUpperCase()})},m.compareFieldsById=function(e,t){return e.id-t.id},m.decorateType=function(e,t){return e.$type?(t&&e.$type.name!==t&&(m.decorateRoot.remove(e.$type),e.$type.name=t,m.decorateRoot.add(e.$type)),e.$type):(t=new(l=l||d(35))(t||e.name),m.decorateRoot.add(t),t.ctor=e,Object.defineProperty(e,"$type",{value:t,enumerable:!1}),Object.defineProperty(e.prototype,"$type",{value:t,enumerable:!1}),t)},0),l,E;m.decorateEnum=function(e){var t;return e.$type||(t=new(E=E||d(15))("Enum"+p++,e),m.decorateRoot.add(t),Object.defineProperty(e,"$type",{value:t,enumerable:!1}),t)},m.setProperty=function(e,t,s){if("object"!=typeof e)throw TypeError("dst must be an object");if(t)return function a(s,o,i){var t=o.shift();return"__proto__"!==t&&"prototype"!==t&&(0<o.length?s[t]=a(s[t]||{},o,i):((o=s[t])&&(i=[].concat(o).concat(i)),s[t]=i)),s}(e,t=t.split("."),s);throw TypeError("path must be specified")},Object.defineProperty(m,"decorateRoot",{get:function(){return s.decorated||(s.decorated=new(d(29)))}})},{15:15,29:29,3:3,30:30,35:35,39:39,5:5,8:8}],38:[function(a,t,i){function d(e,t){this.lo=e>>>0,this.hi=t>>>0}t.exports=d;var e=a(39),r=d.zero=new d(0,0),n=(r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1},d.zeroHash="\0\0\0\0\0\0\0\0",d.fromNumber=function(e){var s,o;return 0===e?r:(o=(e=(s=0>e)?-e:e)>>>0,e=(e-o)/4294967296>>>0,s&&(e=~e>>>0,o=~o>>>0,4294967295<++o&&(o=0,4294967295<++e&&(e=0))),new d(o,e))},d.from=function(n){if("number"==typeof n)return d.fromNumber(n);if(e.isString(n)){if(!e.Long)return d.fromNumber(parseInt(n,10));n=e.Long.fromString(n)}return n.low||n.high?new d(n.low>>>0,n.high>>>0):r},d.prototype.toNumber=function(e){var n;return!e&&this.hi>>>31?(e=1+~this.lo>>>0,n=~this.hi>>>0,-(e+4294967296*(n=e?n:n+1>>>0))):this.lo+4294967296*this.hi},d.prototype.toLong=function(n){return e.Long?new e.Long(0|this.lo,0|this.hi,!!n):{low:0|this.lo,high:0|this.hi,unsigned:!!n}},String.prototype.charCodeAt);d.fromHash=function(e){return"\0\0\0\0\0\0\0\0"===e?r:new d((n.call(e,0)|n.call(e,1)<<8|n.call(e,2)<<16|n.call(e,3)<<24)>>>0,(n.call(e,4)|n.call(e,5)<<8|n.call(e,6)<<16|n.call(e,7)<<24)>>>0)},d.prototype.toHash=function(){return m(255&this.lo,255&this.lo>>>8,255&this.lo>>>16,this.lo>>>24,255&this.hi,255&this.hi>>>8,255&this.hi>>>16,this.hi>>>24)},d.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},d.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},d.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,s=this.hi>>>24;return 0==s?0==t?16384>e?128>e?1:2:2097152>e?3:4:16384>t?128>t?5:6:2097152>t?7:8:128>s?9:10}},{39:39}],39:[function(o,t,i){function a(s,t,o){for(var n=Object.keys(t),i=0;i<n.length;++i)s[n[i]]!==_&&o||(s[n[i]]=t[n[i]]);return s}function e(e){function s(e,t){return this instanceof s?void(Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,s):Object.defineProperty(this,"stack",{value:Error().stack||""}),t&&a(this,t)):new s(e,t)}return s.prototype=Object.create(Error.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return e},set:_,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),s}var s=i;s.asPromise=o(1),s.base64=o(2),s.EventEmitter=o(4),s.float=o(6),s.inquire=o(7),s.utf8=o(10),s.pool=o(9),s.LongBits=o(38),s.isNode=!!("undefined"!=typeof global&&global&&global.process&&global.process.versions&&global.process.versions.node),s.global=s.isNode&&global||"undefined"!=typeof window&&window||"undefined"!=typeof self&&self||this,s.emptyArray=Object.freeze?Object.freeze([]):[],s.emptyObject=Object.freeze?Object.freeze({}):{},s.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&d(e)===e},s.isString=function(e){return"string"==typeof e||e instanceof String},s.isObject=function(e){return e&&"object"==typeof e},s.isset=s.isSet=function(e,t){var s=e[t];return null!=s&&e.hasOwnProperty(t)&&("object"!=typeof s||0<(Array.isArray(s)?s:Object.keys(s)).length)},s.Buffer=function(){try{var e=s.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),s.y=null,s.w=null,s.newBuffer=function(e){return"number"==typeof e?s.Buffer?s.w(e):new s.Array(e):s.Buffer?s.y(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},s.Array="undefined"==typeof Uint8Array?Array:Uint8Array,s.Long=s.global.dcodeIO&&s.global.dcodeIO.Long||s.global.Long||s.inquire("long"),s.key2Re=/^true|false|0|1$/,s.key32Re=/^-?(?:0|[1-9][0-9]*)$/,s.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,s.longToHash=function(e){return e?s.LongBits.from(e).toHash():s.LongBits.zeroHash},s.longFromHash=function(e,n){return e=s.LongBits.fromHash(e),s.Long?s.Long.fromBits(e.lo,e.hi,n):e.toNumber(!!n)},s.merge=a,s.lcFirst=function(e){return(e[0]||"").toLowerCase()+e.substring(1)},s.newError=e,s.ProtocolError=e("ProtocolError"),s.oneOfGetter=function(e){for(var s={},t=0;t<e.length;++t)s[e[t]]=1;return function(){for(var e=Object.keys(this),t=e.length-1;-1<t;--t)if(1===s[e[t]]&&this[e[t]]!==_&&null!==this[e[t]])return e[t]}},s.oneOfSetter=function(e){return function(n){for(var t=0;t<e.length;++t)e[t]!==n&&delete this[e[t]]}},s.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},s.u=function(){var e=s.Buffer;e?(s.y=e.from!==Uint8Array.from&&e.from||function(n,t){return new e(n,t)},s.w=e.allocUnsafe||function(n){return new e(n)}):s.y=s.w=null}},{1:1,10:10,2:2,38:38,4:4,6:6,7:7,9:9}],40:[function(e,t,s){function d(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function n(o,t,i,n){if(!t.resolvedType)switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":o("if(!util.isInteger(%s))",n)("return%j",d(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":o("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",d(t,"integer|Long"));break;case"float":case"double":o("if(typeof %s!==\"number\")",n)("return%j",d(t,"number"));break;case"bool":o("if(typeof %s!==\"boolean\")",n)("return%j",d(t,"boolean"));break;case"string":o("if(!util.isString(%s))",n)("return%j",d(t,"string"));break;case"bytes":o("if(!(%s&&typeof %s.length===\"number\"||util.isString(%s)))",n,n,n)("return%j",d(t,"buffer"))}else if(t.resolvedType instanceof a){o("switch(%s){",n)("default:")("return%j",d(t,"enum value"));for(var r=Object.keys(t.resolvedType.values),e=0;e<r.length;++e)o("case %i:",t.resolvedType.values[r[e]]);o("break")("}")}else o("{")("var e=types[%i].verify(%s);",i,n)("if(e)")("return%j+e",t.name+".")("}");return o}t.exports=function(a){var t=m.codegen(["m"],a.name+"$verify")("if(typeof m!==\"object\"||m===null)")("return%j","object expected"),i=a.oneofsArray,c={};i.length&&t("var p={}");for(var r=0;r<a.fieldsArray.length;++r){var p=a.e[r].resolve(),l="m"+m.safeProp(p.name),E;p.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",l,p.name),p.map?(t("if(!util.isObject(%s))",l)("return%j",d(p,"object"))("var k=Object.keys(%s)",l)("for(var i=0;i<k.length;++i){"),function(e,t,s){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",s)("return%j",d(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",s)("return%j",d(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",s)("return%j",d(t,"boolean key"))}}(t,p,"k[i]"),n(t,p,r,l+"[k[i]]")("}")):p.repeated?(t("if(!Array.isArray(%s))",l)("return%j",d(p,"array"))("for(var i=0;i<%s.length;++i){",l),n(t,p,r,l+"[i]")("}")):(p.partOf&&(E=m.safeProp(p.partOf.name),1===c[p.partOf.name]&&t("if(p%s===1)",E)("return%j",p.partOf.name+": multiple values"),c[p.partOf.name]=1,t("p%s=1",E)),n(t,p,r,l)),p.optional&&t("}")}return t("return null")};var a=e(15),m=e(37)},{15:15,37:37}],41:[function(e,t,s){var a=e(21);s[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(1+e["@type"].lastIndexOf("/")),t=this.lookup(t),s;if(t)return~(s="."==(e["@type"][0]||"")?e["@type"].slice(1):e["@type"]).indexOf("/")||(s="/"+s),this.create({type_url:s,value:t.encode(t.fromObject(e)).finish()})}return this.fromObject(e)},toObject:function(o,d){var i="",m="",c,p;return d&&d.json&&o.type_url&&o.value&&(m=o.type_url.substring(1+o.type_url.lastIndexOf("/")),i=o.type_url.substring(0,1+o.type_url.lastIndexOf("/")),(c=this.lookup(m))&&(o=c.decode(o.value))),!(o instanceof this.ctor)&&o instanceof a?(c=o.$type.toObject(o,d),p="."===o.$type.fullName[0]?o.$type.fullName.slice(1):o.$type.fullName,c["@type"]=m=(i=""===i?"type.googleapis.com/":i)+p,c):this.toObject(o,d)}}},{21:21}],42:[function(m,t,i){function E(e,t,s){this.fn=e,this.len=t,this.next=_,this.val=s}function n(){}function g(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function a(){this.len=0,this.head=new E(n,0,0),this.tail=this.head,this.states=null}function c(){return C.Buffer?function(){return(a.create=function(){return new u})()}:function(){return new a}}function l(e,t,s){t[s]=255&e}function d(e,t){this.len=e,this.next=_,this.val=t}function p(e,t,s){for(;e.hi;)t[s++]=128|127&e.lo,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;127<e.lo;)t[s++]=128|127&e.lo,e.lo>>>=7;t[s++]=e.lo}function T(e,t,s){t[s]=255&e,t[s+1]=255&e>>>8,t[s+2]=255&e>>>16,t[s+3]=e>>>24}t.exports=a;var C=m(39),e=C.LongBits,s=C.base64,o=C.utf8,u;a.create=c(),a.alloc=function(e){return new C.Array(e)},C.Array!==Array&&(a.alloc=C.pool(a.alloc,C.Array.prototype.subarray)),a.prototype.g=function(e,t,s){return this.tail=this.tail.next=new E(e,t,s),this.len+=t,this},(d.prototype=Object.create(E.prototype)).fn=function(e,s,o){for(;127<e;)s[o++]=128|127&e,e>>>=7;s[o]=e},a.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new d(128>(e>>>=0)?1:16384>e?2:2097152>e?3:268435456>e?4:5,e)).len,this},a.prototype.int32=function(n){return 0>n?this.g(p,10,e.fromNumber(n)):this.uint32(n)},a.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},a.prototype.int64=a.prototype.uint64=function(n){return n=e.from(n),this.g(p,n.length(),n)},a.prototype.sint64=function(n){return n=e.from(n).zzEncode(),this.g(p,n.length(),n)},a.prototype.bool=function(e){return this.g(l,1,e?1:0)},a.prototype.sfixed32=a.prototype.fixed32=function(e){return this.g(T,4,e>>>0)},a.prototype.sfixed64=a.prototype.fixed64=function(n){return n=e.from(n),this.g(T,4,n.lo).g(T,4,n.hi)},a.prototype.float=function(e){return this.g(C.float.writeFloatLE,4,e)},a.prototype.double=function(e){return this.g(C.float.writeDoubleLE,8,e)};var S=C.Array.prototype.set?function(e,t,s){t.set(e,s)}:function(e,t,s){for(var n=0;n<e.length;++n)t[s+n]=e[n]};a.prototype.bytes=function(e){var o=e.length>>>0,r;return o?(C.isString(e)&&(r=a.alloc(o=s.length(e)),s.decode(e,r,0),e=r),this.uint32(o).g(S,o,e)):this.g(l,1,0)},a.prototype.string=function(e){var t=o.length(e);return t?this.uint32(t).g(o.write,t,e):this.g(l,1,0)},a.prototype.fork=function(){return this.states=new g(this),this.head=this.tail=new E(n,0,0),this.len=0,this},a.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new E(n,0,0),this.len=0),this},a.prototype.ldelim=function(){var e=this.head,t=this.tail,s=this.len;return this.reset().uint32(s),s&&(this.tail.next=e.next,this.tail=t,this.len+=s),this},a.prototype.finish=function(){for(var e=this.head.next,s=this.constructor.alloc(this.len),o=0;e;)e.fn(e.val,s,o),o+=e.len,e=e.next;return s},a.u=function(e){u=e,a.create=c(),u.u()}},{39:39}],43:[function(a,t,i){function n(){o.call(this)}function s(e,t,s){40>e.length?r.utf8.write(e,t,s):t.utf8Write?t.utf8Write(e,s):t.write(e,s)}t.exports=n;var o=a(42),r=((n.prototype=Object.create(o.prototype)).constructor=n,a(39));n.u=function(){n.alloc=r.w,n.writeBytesBuffer=r.Buffer&&r.Buffer.prototype instanceof Uint8Array&&"set"===r.Buffer.prototype.set.name?function(e,t,s){t.set(e,s)}:function(e,t,s){if(e.copy)e.copy(t,s,0,e.length);else for(var o=0;o<e.length;)t[s++]=e[o++]}},n.prototype.bytes=function(e){var s=(e=r.isString(e)?r.y(e,"base64"):e).length>>>0;return this.uint32(s),s&&this.g(n.writeBytesBuffer,s,e),this},n.prototype.string=function(e){var t=r.Buffer.byteLength(e);return this.uint32(t),t&&this.g(s,t,e),this},n.u()},{39:39,42:42}]},{},[19])}();var $protobuf={...JProtobuf};/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/const $root=($protobuf.roots["default"]||($protobuf.roots["default"]=new $protobuf.Root)).addJSON({codec:{nested:{ConnectMsgBody:{fields:{protoId:{type:"string",id:1},sdkVersion:{type:"string",id:2},appkey:{type:"string",id:3},token:{type:"string",id:4},deviceId:{type:"string",id:5},platform:{type:"string",id:6},deviceCompany:{type:"string",id:7},deviceModel:{type:"string",id:8},deviceOsVersion:{type:"string",id:9},pushToken:{type:"string",id:10},networkId:{type:"string",id:11},ispNum:{type:"string",id:12},clientIp:{type:"string",id:13},packageName:{type:"string",id:14},pushChannel:{type:"string",id:15},ext:{type:"string",id:16},clientSession:{type:"string",id:17}}},ConnectAckMsgBody:{fields:{code:{type:"int32",id:1},userId:{type:"string",id:2},session:{type:"string",id:3},timestamp:{type:"int64",id:4},ext:{type:"string",id:5}}},DisconnectMsgBody:{fields:{code:{type:"int32",id:1},timestamp:{type:"int64",id:2},ext:{type:"string",id:3}}},PublishMsgBody:{fields:{index:{type:"int32",id:1},topic:{type:"string",id:2},targetId:{type:"string",id:3},timestamp:{type:"int64",id:4},data:{type:"bytes",id:5}}},PublishAckMsgBody:{fields:{index:{type:"int32",id:1},code:{type:"int32",id:2},msgId:{type:"string",id:3},timestamp:{type:"int64",id:4},msgIndex:{type:"int64",id:5},memberCount:{type:"int32",id:6},clientMsgId:{type:"string",id:7},modifiedMsg:{type:"DownMsg",id:8}}},QueryMsgBody:{fields:{index:{type:"int32",id:1},topic:{type:"string",id:2},targetId:{type:"string",id:3},timestamp:{type:"int64",id:4},data:{type:"bytes",id:5}}},QueryAckMsgBody:{fields:{index:{type:"int32",id:1},code:{type:"int32",id:2},timestamp:{type:"int64",id:3},data:{type:"bytes",id:4}}},QueryConfirmMsgBody:{fields:{index:{type:"int32",id:1}}},ImWebsocketMsg:{oneofs:{testof:{oneof:["connectMsgBody","ConnectAckMsgBody","disconnectMsgBody","publishMsgBody","pubAckMsgBody","qryMsgBody","qryAckMsgBody","qryConfirmMsgBody"]}},fields:{version:{type:"int32",id:1},cmd:{type:"int32",id:2},qos:{type:"int32",id:3},payload:{type:"bytes",id:4},connectMsgBody:{type:"ConnectMsgBody",id:11},ConnectAckMsgBody:{type:"ConnectAckMsgBody",id:12},disconnectMsgBody:{type:"DisconnectMsgBody",id:13},publishMsgBody:{type:"PublishMsgBody",id:14},pubAckMsgBody:{type:"PublishAckMsgBody",id:15},qryMsgBody:{type:"QueryMsgBody",id:16},qryAckMsgBody:{type:"QueryAckMsgBody",id:17},qryConfirmMsgBody:{type:"QueryConfirmMsgBody",id:18}}},ChannelType:{values:{Private:1,Group:2,Chatroom:3,System:4}},PushData:{fields:{title:{type:"string",id:1},pushId:{type:"string",id:2},pushText:{type:"string",id:3},pushExtraData:{type:"string",id:4}}},QryHisMsgsReq:{fields:{converId:{type:"string",id:1},type:{type:"ChannelType",id:2},startTime:{type:"int64",id:3},count:{type:"int32",id:4},order:{type:"int32",id:5},msgTypes:{rule:"repeated",type:"string",id:6}}},DownMsgSet:{fields:{msgs:{rule:"repeated",type:"DownMsg",id:1},syncTime:{type:"int64",id:2},isFinished:{type:"bool",id:3},targetUserInfo:{type:"UserInfo",id:4},groupInfo:{type:"GroupInfo",id:5}}},UpMsg:{fields:{msgType:{type:"string",id:1},msgContent:{type:"bytes",id:2},flags:{type:"int32",id:3},clientUid:{type:"string",id:4},pushData:{type:"PushData",id:5},mentionInfo:{type:"MentionInfo",id:6},referMsg:{type:"DownMsg",id:7},toUserIds:{rule:"repeated",type:"string",id:8},mergedMsgs:{type:"MergedMsgs",id:9},SearchText:{type:"string",id:10},lifeTime:{type:"int64",id:11},lifeTimeAfterRead:{type:"int64",id:12},subChannel:{type:"string",id:13},msgTime:{type:"int64",id:51}}},MentionInfo:{fields:{mentionType:{type:"MentionType",id:1},targetUsers:{rule:"repeated",type:"UserInfo",id:2}}},MentionType:{values:{MentionDefault:0,MentionAll:1,MentionSomeone:2}},DownMsg:{fields:{targetId:{type:"string",id:1},type:{type:"ChannelType",id:2},msgType:{type:"string",id:3},senderId:{type:"string",id:4},msgId:{type:"string",id:5},msgIndex:{type:"int64",id:6},msgContent:{type:"bytes",id:7},msgTime:{type:"int64",id:8},flags:{type:"int32",id:9},isSend:{type:"bool",id:10},platform:{type:"string",id:11},clientUid:{type:"string",id:12},pushData:{type:"PushData",id:13},mentionInfo:{type:"MentionInfo",id:14},isRead:{type:"bool",id:15},referMsg:{type:"DownMsg",id:16},targetUserInfo:{type:"UserInfo",id:17},groupInfo:{type:"GroupInfo",id:18},mergedMsgs:{type:"MergedMsgs",id:19},undisturbType:{type:"int32",id:20},memberCount:{type:"int32",id:21},readCount:{type:"int32",id:22},unreadIndex:{type:"int64",id:23},msgItems:{rule:"repeated",type:"StreamMsgItem",id:24},msgExtSet:{rule:"repeated",type:"MsgExtItem",id:25},msgExts:{rule:"repeated",type:"MsgExtItem",id:26},converTags:{rule:"repeated",type:"ConverTag",id:27},searchText:{type:"string",id:29},grpMemberInfo:{type:"GrpMemberInfo",id:30},destroyTime:{type:"int64",id:31},lifeTimeAfterRead:{type:"int64",id:32},isDelete:{type:"bool",id:33},subChannel:{type:"string",id:34},toUserIds:{rule:"repeated",type:"string",id:35},readTime:{type:"int64",id:36}}},GrpMemberInfo:{fields:{grpDisplayName:{type:"string",id:1},extFields:{rule:"repeated",type:"KvItem",id:2},updatedTime:{type:"int64",id:3}}},StreamMsgItem:{fields:{event:{type:"StreamEvent",id:1},subSeq:{type:"int64",id:2},partialContent:{type:"bytes",id:3}}},StreamDownMsg:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},msgItems:{rule:"repeated",type:"StreamMsgItem",id:4}}},StreamEvent:{values:{DefaultStreamEvent:0,StreamMessage:1,StreamComplete:2}},MergedMsgs:{fields:{channelType:{type:"ChannelType",id:1},userId:{type:"string",id:2},targetId:{type:"string",id:3},msgs:{rule:"repeated",type:"SimpleMsg",id:4}}},GroupInfo:{fields:{groupId:{type:"string",id:1},groupName:{type:"string",id:2},groupPortrait:{type:"string",id:3},isMute:{type:"int32",id:4},extFields:{rule:"repeated",type:"KvItem",id:5},updatedTime:{type:"int64",id:6}}},KvItem:{fields:{key:{type:"string",id:1},value:{type:"string",id:2}}},UserIdReq:{fields:{userId:{type:"string",id:1}}},UserInfo:{fields:{userId:{type:"string",id:1},nickname:{type:"string",id:2},userPortrait:{type:"string",id:3},extFields:{rule:"repeated",type:"KvItem",id:4},updatedTime:{type:"int64",id:5},settings:{rule:"repeated",type:"KvItem",id:6},statuses:{rule:"repeated",type:"KvItem",id:7},userType:{type:"UserType",id:8}}},UserType:{values:{User:0,Bot:1}},SyncConversationsReq:{fields:{startTime:{type:"int64",id:1},count:{type:"int32",id:2}}},QryConversationsReq:{fields:{startTime:{type:"int64",id:1},count:{type:"int32",id:2},order:{type:"int32",id:3},targetId:{type:"string",id:5},channelType:{type:"ChannelType",id:6},tag:{type:"string",id:7}}},QryConversationsResp:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1},isFinished:{type:"bool",id:2}}},ClearUnreadReq:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1}}},DelConversationReq:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1}}},ConversationsReq:{fields:{conversations:{rule:"repeated",type:"Conversation",id:1}}},Conversation:{fields:{userId:{type:"string",id:1},targetId:{type:"string",id:2},channelType:{type:"ChannelType",id:3},sortTime:{type:"int64",id:4},unreadCount:{type:"int64",id:5},msg:{type:"DownMsg",id:6},latestReadIndex:{type:"int64",id:7},mentions:{type:"Mentions",id:8},isTop:{type:"int32",id:9},topUpdatedTime:{type:"int64",id:10},undisturbType:{type:"int32",id:11},targetUserInfo:{type:"UserInfo",id:12},groupInfo:{type:"GroupInfo",id:13},syncTime:{type:"int64",id:14},isDelete:{type:"int32",id:15},latestUnreadIndex:{type:"int64",id:16},unreadTag:{type:"int32",id:17},latestReadMsgId:{type:"string",id:18},latestReadMsgTime:{type:"int64",id:19},converTags:{rule:"repeated",type:"ConverTag",id:20}}},Mentions:{fields:{isMentioned:{type:"bool",id:1},mentionMsgCount:{type:"int32",id:2},senders:{rule:"repeated",type:"UserInfo",id:3},mentionMsgs:{rule:"repeated",type:"MentionMsg",id:4}}},MentionMsg:{fields:{senderId:{type:"string",id:1},msgId:{type:"string",id:2},msgTime:{type:"int64",id:3},mentionType:{type:"MentionType",id:4}}},SyncMsgReq:{fields:{syncTime:{type:"int64",id:1},containsSendBox:{type:"bool",id:2},sendBoxSyncTime:{type:"int64",id:3},chatroomId:{type:"string",id:4}}},SyncChatroomReq:{fields:{chatroomId:{type:"string",id:1},syncTime:{type:"int64",id:2},count:{type:"int32",id:3}}},SyncChatroomMsgResp:{fields:{msgs:{rule:"repeated",type:"DownMsg",id:1}}},Notify:{fields:{type:{type:"NotifyType",id:1},syncTime:{type:"int64",id:2},chatroomId:{type:"string",id:3}}},NotifyType:{values:{Default:0,Msg:1,ChatroomMsg:2,ChatroomAtt:3,ChatroomEvent:4,ChatroomDestroy:5}},RecallMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},msgTime:{type:"int64",id:4},exts:{rule:"repeated",type:"KvItem",id:5}}},MarkReadReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgs:{rule:"repeated",type:"SimpleMsg",id:3},indexScopes:{rule:"repeated",type:"IndexScope",id:4}}},SimpleMsg:{fields:{msgId:{type:"string",id:1},msgTime:{type:"int64",id:2},msgIndex:{type:"int64",id:3}}},IndexScope:{fields:{startIndex:{type:"int64",id:1},endIndex:{type:"int64",id:2}}},ModifyMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},msgTime:{type:"int64",id:4},msgSeqNo:{type:"int64",id:5},msgContent:{type:"bytes",id:6},msgType:{type:"string",id:7}}},CleanHisMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},cleanMsgTime:{type:"int64",id:3},cleanScope:{type:"int32",id:4}}},QryHisMsgByIdsReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgIds:{rule:"repeated",type:"string",id:3}}},ChatRoomReq:{fields:{chatId:{type:"string",id:1},chatName:{type:"string",id:2},isAutoCreate:{type:"bool",id:3}}},QryTotalUnreadCountReq:{fields:{time:{type:"int64",id:1},filter:{type:"ConverFilter",id:2}}},ConverFilter:{fields:{channelTypes:{rule:"repeated",type:"ChannelType",id:1},ignoreConvers:{rule:"repeated",type:"SimpleConversation",id:2},tag:{type:"string",id:4}}},SimpleConversation:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},QryTotalUnreadCountResp:{fields:{totalCount:{type:"int64",id:1}}},QryMentionMsgsReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},startIndex:{type:"int64",id:3},count:{type:"int32",id:4},order:{type:"int32",id:5},latestReadIndex:{type:"int64",id:6}}},QryMentionMsgsResp:{fields:{mentionMsgs:{rule:"repeated",type:"DownMsg",id:1},isFinished:{type:"bool",id:2}}},QMentionMsg:{fields:{mentionType:{type:"MentionType",id:1},senderInfo:{type:"UserInfo",id:2},msg:{type:"DownMsg",id:3}}},QryUploadTokenResp:{oneofs:{ossOf:{oneof:["qiniuCred","preSignResp"]}},fields:{ossType:{type:"OssType",id:1},qiniuCred:{type:"QiniuCredResp",id:11},preSignResp:{type:"PreSignResp",id:12}}},PreSignResp:{fields:{url:{type:"string",id:1},objKey:{type:"string",id:2},policy:{type:"string",id:3},signVersion:{type:"string",id:4},credential:{type:"string",id:5},date:{type:"string",id:6},signature:{type:"string",id:7},downloadUrl:{type:"string",id:8}}},OssType:{values:{DefaultOss:0,QiNiu:1,S3:2,Minio:3,Oss:4}},QiniuCredResp:{fields:{domain:{type:"string",id:1},token:{type:"string",id:2}}},QryUploadTokenReq:{fields:{fileType:{type:"FileType",id:1},ext:{type:"string",id:2}}},FileType:{values:{DefaultFileType:0,Image:1,Audio:2,Video:3,File:4}},QryReadDetailReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3}}},QryReadDetailResp:{fields:{readCount:{type:"int32",id:1},memberCount:{type:"int32",id:2},readMembers:{rule:"repeated",type:"MemberReadDetailItem",id:3},unreadMembers:{rule:"repeated",type:"MemberReadDetailItem",id:4}}},MemberReadDetailItem:{fields:{member:{type:"UserInfo",id:1},time:{type:"int64",id:2}}},QryMergedMsgsReq:{fields:{startTime:{type:"int64",id:1},count:{type:"int32",id:2},order:{type:"int32",id:3}}},UndisturbConversReq:{fields:{userId:{type:"string",id:1},items:{rule:"repeated",type:"UndisturbConverItem",id:2}}},UndisturbConverItem:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},undisturbType:{type:"int32",id:3}}},QryTopConversReq:{fields:{startTime:{type:"int64",id:1},sortType:{type:"TopConverSortType",id:2},order:{type:"int32",id:3}}},TopConverSortType:{values:{ByTopTime:0,BySortTime:1}},DelHisMsgsReq:{fields:{senderId:{type:"string",id:1},targetId:{type:"string",id:2},channelType:{type:"ChannelType",id:3},msgs:{rule:"repeated",type:"SimpleMsg",id:4},delScope:{type:"int32",id:5}}},QryConverReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},SyncChatroomAttResp:{fields:{atts:{rule:"repeated",type:"ChatAttItem",id:1}}},ChatAtts:{fields:{chatId:{type:"string",id:1},atts:{rule:"repeated",type:"ChatAttItem",id:2},isComplete:{type:"bool",id:3},isFinished:{type:"bool",id:4}}},ChatAttItem:{fields:{key:{type:"string",id:1},value:{type:"string",id:2},attTime:{type:"int64",id:3},userId:{type:"string",id:4},optType:{type:"ChatAttOptType",id:5}}},ChatAttOptType:{values:{ChatAttOpt_Default:0,ChatAttOpt_Add:1,ChatAttOpt_Del:2}},UserUndisturb:{fields:{switch:{type:"bool",id:1},timezone:{type:"string",id:2},rules:{rule:"repeated",type:"UserUndisturbItem",id:3}}},UserUndisturbItem:{fields:{start:{type:"string",id:1},end:{type:"string",id:2}}},Nil:{fields:{}},ChatAttBatchReq:{fields:{atts:{rule:"repeated",type:"ChatAttReq",id:1}}},ChatAttBatchResp:{fields:{attResps:{rule:"repeated",type:"ChatAttResp",id:1}}},ChatAttReq:{fields:{key:{type:"string",id:1},value:{type:"string",id:2},isForce:{type:"bool",id:3},isAutoDel:{type:"bool",id:4},msg:{type:"UpMsg",id:5}}},ChatAttResp:{fields:{key:{type:"string",id:1},code:{type:"int32",id:2},attTime:{type:"int64",id:3},msgCode:{type:"int32",id:11},msgId:{type:"string",id:12},msgTime:{type:"int64",id:13},msgSeq:{type:"int64",id:14}}},QryFirstUnreadMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},ChrmEvent:{fields:{eventType:{type:"ChrmEventType",id:1},chatId:{type:"string",id:2},userId:{type:"string",id:3},eventTime:{type:"int64",id:4}}},ChrmEventType:{values:{Join:0,Quit:1,Kick:2,Fallout:3}},MsgExt:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3},ext:{type:"MsgExtItem",id:4}}},MsgExtItem:{fields:{key:{type:"string",id:1},value:{type:"string",id:2},timestamp:{type:"int64",id:3},userInfo:{type:"UserInfo",id:4}}},TagConvers:{fields:{tag:{type:"string",id:1},tagName:{type:"string",id:2},convers:{rule:"repeated",type:"SimpleConversation",id:11}}},UserConverTags:{fields:{tags:{rule:"repeated",type:"ConverTag",id:1}}},ConverTag:{fields:{tag:{type:"string",id:1},tagName:{type:"string",id:2},tagType:{type:"ConverTagType",id:3}}},ConverTagType:{values:{UserTag:0,SystemTag:1,GlobalTag:2}},RtcRoomReq:{fields:{roomType:{type:"RtcRoomType",id:1},roomId:{type:"string",id:2},joinMember:{type:"RtcMember",id:3}}},RtcRoomType:{values:{OneOne:0,OneMore:1}},RtcMember:{fields:{member:{type:"UserInfo",id:1},rtcState:{type:"RtcState",id:2},callTime:{type:"int64",id:3},connectTime:{type:"int64",id:4},hangupTime:{type:"int64",id:5},inviter:{type:"UserInfo",id:6}}},RtcState:{values:{RtcStateDefault:0,RtcIncoming:1,RtcOutgoing:2,RtcConnecting:3,RtcConnected:4}},RtcRoom:{fields:{roomType:{type:"RtcRoomType",id:1},roomId:{type:"string",id:2},owner:{type:"UserInfo",id:3},rtcChannel:{type:"RtcChannel",id:4},rtcMediaType:{type:"RtcMediaType",id:5},ext:{type:"string",id:6},members:{rule:"repeated",type:"RtcMember",id:51}}},RtcInviteReq:{fields:{targetIds:{rule:"repeated",type:"string",id:1},roomType:{type:"RtcRoomType",id:2},roomId:{type:"string",id:3},rtcChannel:{type:"RtcChannel",id:4},rtcMediaType:{type:"RtcMediaType",id:5},ext:{type:"string",id:6}}},RtcMediaType:{values:{RtcAudio:0,RtcVideo:1}},InviteType:{values:{RtcInvite:0,RtcAccept:1,RtcHangup:2}},RtcInviteEvent:{fields:{inviteType:{type:"InviteType",id:1},user:{type:"UserInfo",id:2},room:{type:"RtcRoom",id:3},targetUsers:{rule:"repeated",type:"UserInfo",id:4}}},RtcAnswerReq:{fields:{targetId:{type:"string",id:1},roomId:{type:"string",id:2}}},RtcChannel:{values:{Zego:0}},RtcAuth:{fields:{zegoAuth:{type:"ZegoAuth",id:1}}},ZegoAuth:{fields:{token:{type:"string",id:1}}},RtcRoomEvent:{fields:{roomEventType:{type:"RtcRoomEventType",id:1},members:{rule:"repeated",type:"RtcMember",id:2},room:{type:"RtcRoom",id:3},reason:{type:"RtcRoomQuitReason",id:4},eventTime:{type:"int64",id:5}}},RtcRoomEventType:{values:{DefaultRtcRoomEvent:0,RtcJoin:1,RtcQuit:2,RtcDestroy:3,RtcStateChg:4}},RtcRoomQuitReason:{values:{Active:0,CallTimeout:1,PingTimeout:2}},TransReq:{fields:{items:{rule:"repeated",type:"TransItem",id:1},targetLang:{type:"string",id:2},sourceLang:{type:"string",id:3}}},TransItem:{fields:{key:{type:"string",id:1},content:{type:"string",id:2}}},SetTopMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2},msgId:{type:"string",id:3}}},GetTopMsgReq:{fields:{targetId:{type:"string",id:1},channelType:{type:"ChannelType",id:2}}},TopMsg:{fields:{msg:{type:"DownMsg",id:1},operator:{type:"UserInfo",id:2},createdTime:{type:"int64",id:3}}},FavoriteMsgIds:{fields:{items:{rule:"repeated",type:"FavoriteMsgIdItem",id:1}}},FavoriteMsgIdItem:{fields:{senderId:{type:"string",id:1},receiverId:{type:"string",id:2},channelType:{type:"ChannelType",id:3},msgId:{type:"string",id:4}}},QryFavoriteMsgsReq:{fields:{limit:{type:"int64",id:1},offset:{type:"string",id:2}}},FavoriteMsgs:{fields:{items:{rule:"repeated",type:"FavoriteMsg",id:1},offset:{type:"string",id:2}}},FavoriteMsg:{fields:{msg:{type:"DownMsg",id:1},createdTime:{type:"int64",id:2}}},RegPushTokenReq:{fields:{deviceId:{type:"string",id:1},platform:{type:"Platform",id:2},pushChannel:{type:"PushChannel",id:3},pushToken:{type:"string",id:4},packageName:{type:"string",id:5}}},Platform:{values:{DefaultPlatform:0,Android:1,iOS:2,Web:3,PC:4}},PushChannel:{values:{DefaultChannel:0,Apple:1,Huawei:2,Xiaomi:3}},PushSwitch:{fields:{switch:{type:"int32",id:1}}}}}});function WebRequest(){let e=()=>{},t=(e,t)=>{for(var n in e)t(e[n],n,e)},n=(n,s,o)=>{s=s||{},o=o||{success:e,fail:e,progress:e};let i=new XMLHttpRequest,r=s.method||"GET";i.open(r,n,!0);let a=s.headers||{};t(a,(e,t)=>{i.setRequestHeader(t,e)});let d=s.body||{},m=()=>/^(200|202)$/.test(i.status),c=s.timeout;return c&&(i.timeout=c),i.onreadystatechange=function(){if(4==i.readyState){let{responseText:e}=i;e=e||"{}";let t=JSON.parse(e);if(m())o.success(t,i);else{let{status:e}=i,n={status:e,result:t};o.fail(n)}}},i.upload.onprogress=function(e){e.lengthComputable&&o.progress&&o.progress(e)},i.onerror=e=>{o.fail(e)},i.send(d),i};return{requestNormal:n,uploadFile:n}}function WebEncoder(){let e=e=>new TextEncoder().encode(e),t=e=>new TextDecoder().decode(e);return{encoder:e,decoder:t}}function UniEncoder(){var e=String.fromCharCode;let t=e=>{var t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);return t.split("").forEach(function(e,t){n[t]=e.charCodeAt(0)}),n},n=t=>{var n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),s=Array(n.length);return n.forEach(function(t,n){s[n]=e(t)}),decodeURIComponent(escape(s.join("")))};return{encoder:t,decoder:n}}let JTextEncoder={};JTextEncoder="undefined"==typeof uni?WebEncoder():UniEncoder();var JTextEncoder$1=JTextEncoder;function UniRequest(){// url: 'https://jugglechat-file.oss-cn-beijing.aliyuncs.com',
|
|
52
56
|
// filePath: tempPath,
|
|
53
57
|
// header: header,
|
|
54
58
|
// name: 'file',
|
|
@@ -59,7 +63,7 @@ var Storage={get,set,remove,setPrefix};/*!
|
|
|
59
63
|
// OSSAccessKeyId: 'LTAI5tCtWtVhvRJ741YN2PKW',
|
|
60
64
|
// Signature: 'NKVdKWn+RGT9gQjhAXyl/xtEcr0='
|
|
61
65
|
// },
|
|
62
|
-
function e(e){const t=e.indexOf("://");if(-1===t)return null;const n=e.slice(0,t+3),s=e.slice(t+3),o=s.indexOf("/"),i=-1===o?s:s.slice(0,o);return n+i}let t=()=>{},n=(e,n,s)=>{n=n||{},s=s||{success:t,fail:t,progress:t};let o=n.headers||{},i=n.body||{},r=uni.request({url:e,data:i,header:o,method:n.method||"GET",success:t=>{let{data:n}=t;s.success(n,{responseURL:e})},fail:e=>{s.fail(e)}});return r},s=(t,n,s)=>{let{tempPath:o,header:i,method:r,isUniWebThumbnail:a}=n;if(a){let e=WebRequest();return e.uploadFile(t,n,s)}let{objKey:d,policy:
|
|
66
|
+
function e(e){const t=e.indexOf("://");if(-1===t)return null;const n=e.slice(0,t+3),s=e.slice(t+3),o=s.indexOf("/"),i=-1===o?s:s.slice(0,o);return n+i}let t=()=>{},n=(e,n,s)=>{n=n||{},s=s||{success:t,fail:t,progress:t};let o=n.headers||{},i=n.body||{},r=uni.request({url:e,data:i,header:o,method:n.method||"GET",success:t=>{let{data:n}=t;s.success(n,{responseURL:e})},fail:e=>{s.fail(e)}});return r},s=(t,n,s)=>{let{tempPath:o,header:i,method:r,isUniWebThumbnail:a}=n;if(a){let e=WebRequest();return e.uploadFile(t,n,s)}let{objKey:d,policy:m,signVersion:c,signature:p,date:l,credential:E}=n,u={key:d,policy:m,"x-oss-signature-version":c,"x-oss-credential":E,"x-oss-date":l,"x-oss-signature":p},g=e(t),T=uni.uploadFile({url:g,filePath:o,header:i,name:"file",formData:u,success:()=>{let e=`${g}/${d}`;s.success({url:e})},fail:e=>{s.fail(e)}});T.onProgressUpdate(e=>{let{totalBytesSent:t,totalBytesExpectedToSend:n}=e;s.progress({loaded:t,total:n})})};return{requestNormal:n,uploadFile:s}}let JRequest={};JRequest="undefined"==typeof uni?WebRequest():UniRequest();var jrequest=JRequest;function Uploder(e,{type:t}){let n=(t,n,s)=>{function o(e){let t=e.split(".");return t[t.length-1]}let{token:i,domain:r,downloadUrl:a}=n,{file:d,name:m}=t,c=`${utils.getUUID()}.${o(d.name)}`;m=m||c;let p={fname:m},l=e.upload(d,c,i,p);l.subscribe({next:e=>{let{total:{percent:t}}=e;s.onprogress({percent:t})},error:e=>{s.onerror(e)},complete:e=>{let{key:t}=e,n=`${r}/${t}?attname=${m}`;n=a||n,s.oncompleted({url:n})}})},s=(e,t,n)=>{let{url:s,downloadUrl:o}=t,{file:i,name:r,tempPath:a}=e;jrequest.uploadFile(s,{...t,method:"PUT",headers:{"Content-Type":""},tempPath:a,body:i},{success:e=>{s=e.url||s.split("?")[0],s=o||s,n.oncompleted({url:s})},progress:e=>{let t=100*(e.loaded/e.total);n.onprogress({percent:t})},fail:e=>{n.onerror(e)}})},o=(e,t,n)=>{let{url:s,downloadUrl:o}=t,{file:i,name:r,tempPath:a}=e;jrequest.uploadFile(s,{...t,method:"PUT",headers:{"Content-Type":"","x-amz-acl":"public-read"},tempPath:a,body:i},{success:()=>{s=s.split("?")[0],s=o||s,n.oncompleted({url:s})},progress:e=>{let t=100*(e.loaded/e.total);n.onprogress({percent:t})},fail:e=>{n.onerror(e)}})},i=(e,i,r)=>utils.isEqual(t,UPLOAD_TYPE.QINIU)?n(e,i,r):utils.isEqual(t,UPLOAD_TYPE.ALI)?s(e,i,r):utils.isEqual(t,UPLOAD_TYPE.S3)?o(e,i,r):utils.isEqual(t,UPLOAD_TYPE.MINIO)?o(e,i,r):void 0,r=(e,t,n={})=>{let{scale:s=.4}=n,o=document.createElement("video");o.src=URL.createObjectURL(e),o.preload="auto",o.onloadeddata=function(){i()};var i=function(){var e=document.createElement("canvas");let n=o.videoHeight,i=o.videoWidth,r=o.duration;e.width=i*s,e.height=n*s,e.getContext("2d").drawImage(o,0,0,e.width,e.height),e.toBlob(e=>{var s=new File([e],"frame.png",{type:"image/png"});let o={height:n,width:i,duration:r};t(s,o)})}},a=(e,t,n={})=>{let{scale:s=.4,fileCompressLimit:o=500}=n,i=e.size/1e3,r=new Image;r.src=URL.createObjectURL(e),r.onload=function(){a()};var a=function(){var e=document.createElement("canvas");let n=r.height,a=r.width;i<=o&&(s=1),e.width=a*s,e.height=n*s,e.getContext("2d").drawImage(r,0,0,e.width,e.height),e.toBlob(e=>{var s=new File([e],"tb.png",{type:"image/png"});t(s,{height:n,width:a,type:"image/png"})})}};/* 视频截取首帧 */ /* 图片压缩缩略图 */return{exec:i,capture:r,compress:a}}function WebSession(){return sessionStorage}function UniSession(){let e={},t=t=>{delete e[t]},n=t=>e[t],s=(t,n)=>{e[t]=n};return{removeItem:t,getItem:n,setItem:s}}let JSession={};JSession="undefined"==typeof uni?WebSession():UniSession();var JSessionStorage=JSession;/*
|
|
63
67
|
let params = { content: 123 }
|
|
64
68
|
let params = { content: { name: 123 } }
|
|
65
69
|
let params = [{ content: 123 }]
|
|
@@ -69,43 +73,46 @@ let props = [
|
|
|
69
73
|
type: 'Object',
|
|
70
74
|
}
|
|
71
75
|
]
|
|
72
|
-
*/let check=(e,t,n,s,o={})=>{if(!s&&!e.isConnected())return ErrorType.CONNECTION_NOT_READY;let{isChild:i,isArray:r}=o;t=t||{};let a=(e,t,n)=>{let s=null,{msg:o,code:i}=ErrorType.ILLEGAL_TYPE_PARAMS,r=Object.prototype.toString.call(e);return r=r.slice(8,r.length-1),utils.isEqual(r,t)||(o=`${n} ${o}, 传入 ${r}, 应传: ${t}`,s={msg:o,code:i}),s},d=(e,t,n)=>{let s=null,{msg:o,code:i}=ErrorType.ILLEGAL_PARAMS_EMPTY;return utils.isEmpty(e)&&(o=`${n} ${o}`,s={msg:o,code:i}),s},
|
|
76
|
+
*/let check=(e,t,n,s,o={})=>{if(!s&&!e.isConnected())return ErrorType.CONNECTION_NOT_READY;let{isChild:i,isArray:r}=o;t=t||{};let a=(e,t,n)=>{let s=null,{msg:o,code:i}=ErrorType.ILLEGAL_TYPE_PARAMS,r=Object.prototype.toString.call(e);return r=r.slice(8,r.length-1),utils.isEqual(r,t)||(o=`${n} ${o}, 传入 ${r}, 应传: ${t}`,s={msg:o,code:i}),s},d=(e,t,n)=>{let s=null,{msg:o,code:i}=ErrorType.ILLEGAL_PARAMS_EMPTY;return utils.isEmpty(e)&&(o=`${n} ${o}`,s={msg:o,code:i}),s},m=(e,n,s)=>{let a=null,{msg:d,code:m}=ErrorType.ILLEGAL_PARAMS;return utils.isUndefined(e)&&(d=`${n} ${d}`,!i&&utils.isArray(t)&&(d=`Array index ${s} : ${d}`),i&&r&&(d=`${o.name}[${o.num}].${d}`),i&&!r&&(d=`${o.name}.${d}`),a={msg:d,code:m}),a},c=(t,n,o)=>{let{name:i,type:r,children:c}=t,p=n[i],l=null;if(l=m(p,i,o),l)return l;if(r&&(l=a(p,r,i),l||(l=d(p,r,i)),!l&&!utils.isUndefined(c))){let t=utils.isEqual(r,"Array");l=check(e,p,c,s,{num:o,name:i,isChild:!0,isArray:t})}return l},p=utils.isArray(t)?t:[t];for(let r=0,i;r<n.length;r++){i=n[r];for(let e=0;e<p.length;e++){let t=p[e],n=c(i,t,e);if(n)return n}}},getNaviStorageKey=()=>`${STORAGE.NAVI}`,orderNum=0,getNum=()=>(orderNum+=1,65535<orderNum&&(orderNum=1),orderNum);function updateSyncTime(e){let{isSender:t,sentTime:n,io:s}=e,o=STORAGE.SYNC_RECEIVED_MSG_TIME;t&&(o=STORAGE.SYNC_SENT_MSG_TIME);let i=Storage.get(o).time||0,r=n>i;if(r){Storage.set(o,{time:n});let e=s.getConfig();if(e.isPC){let t={};t[o]=n,e.$socket.updateSyncTime(t)}}return r}// PC 端打开数据库后,将本地时间戳同步至 localStorage 中
|
|
73
77
|
function initSyncTime(e){let{appkey:t,userId:n,times:s}=e;Storage.setPrefix(`${t}_${n}`),utils.forEach(s,(e,t)=>{if(utils.isInclude([STORAGE.SYNC_RECEIVED_MSG_TIME,STORAGE.SYNC_SENT_MSG_TIME,STORAGE.SYNC_CONVERSATION_TIME],t)){let n=Storage.get(t),s=n.time||0;e>s&&Storage.set(t,{time:e})}})}function getError(e){let t=ErrorMessages.find(t=>t.code==e)||{code:e,msg:""},{msg:n}=t;return{code:e,msg:n}}// 内置消息类型和动态注入的自定消息类型
|
|
74
78
|
let _MSG_FLAG_NAMES=[{name:MESSAGE_TYPE.TEXT,isCount:!0,isStorage:!0},{name:MESSAGE_TYPE.STREAM_TEXT,isCount:!0,isStorage:!0},{name:MESSAGE_TYPE.FILE,isCount:!0,isStorage:!0},{name:MESSAGE_TYPE.IMAGE,isCount:!0,isStorage:!0},{name:MESSAGE_TYPE.VOICE,isCount:!0,isStorage:!0},{name:MESSAGE_TYPE.VIDEO,isCount:!0,isStorage:!0},{name:MESSAGE_TYPE.MERGE,isCount:!0,isStorage:!0,isMerge:!0},{name:MESSAGE_TYPE.RECALL,isCommand:!0},{name:MESSAGE_TYPE.RECALL_INFO,isCommand:!0},{name:MESSAGE_TYPE.READ_MSG,isCommand:!0},{name:MESSAGE_TYPE.READ_GROUP_MSG,isCommand:!0},{name:MESSAGE_TYPE.MODIFY,isCommand:!0},{name:MESSAGE_TYPE.CLEAR_MSG,isCommand:!0},{name:MESSAGE_TYPE.CLEAR_UNREAD,isCommand:!0,isCount:!1,isStorage:!1}],formatter={toFlag:({isCommand:e,isCount:t,isStorage:n,isMerge:s,isMass:o,isStatus:i})=>{let r=0;return e&&(r|=1),t&&(r|=2),i&&(r|=4),n&&(r|=8),s&&(r|=32),o&&(r|=128),r},toMsg:e=>{let t={1:{name:"isCommand"},2:{name:"isCount"},3:{name:"isStatus"},4:{name:"isStorage"},5:{name:"isUpdated"},6:{name:"isMerge"},7:{name:"isMute"},8:{name:"isMass"},11:{name:"isStream"}},n={};for(let s in t){// 创建一个只有第 N 位为 1 其他都为 0 的掩码
|
|
75
|
-
let o=Math.pow(2,s-1),i=t[s].name;n[i]=0!==(e&o)}return n}},registerMessage=e=>{e=utils.isArray(e)?e:[e],utils.forEach(e,e=>{_MSG_FLAG_NAMES.push(e)})},getMsgFlag=(e,t={})=>{let n=utils.filter(_MSG_FLAG_NAMES,t=>utils.isEqual(t.name,e))[0]||{},s={...n,...t},o=formatter.toFlag(s);return o};function ConversationUtils(){let e=[],t=!1,n=t=>{let n=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n));return-1<n},s=(t,n)=>{n=n||{isAdd:!1},t=utils.isArray(t)?t:[t],utils.forEach(t,t=>{let s=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n)),o=t,{latestMessage:i,updatedTime:r,conversationExts:a,mentions:d,undisturbType:
|
|
79
|
+
let o=Math.pow(2,s-1),i=t[s].name;n[i]=0!==(e&o)}return n}},registerMessage=e=>{e=utils.isArray(e)?e:[e],utils.forEach(e,e=>{_MSG_FLAG_NAMES.push(e)})},getMsgFlag=(e,t={})=>{let n=utils.filter(_MSG_FLAG_NAMES,t=>utils.isEqual(t.name,e))[0]||{},s={...n,...t},o=formatter.toFlag(s);return o};function ConversationUtils(){let e=[],t=!1,n=t=>{let n=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n));return-1<n},s=(t,n)=>{n=n||{isAdd:!1},t=utils.isArray(t)?t:[t],utils.forEach(t,t=>{let s=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n)),o=t,{latestMessage:i,updatedTime:r,conversationExts:a,mentions:d,undisturbType:m}=t,c=i.tags,p=i.name,l=formatter.toMsg(i.flags)||{},E=i.isSender,u=utils.isBoolean(E)&&E;if(!utils.isEqual(s,-1)){o=e.splice(s,1)[0];let{conversationTitle:n,conversationPortrait:c}=i;n=n||t.conversationTitle,c=c||t.conversationPortrait,utils.isEmpty(n)&&(n=o.conversationTitle),utils.isEmpty(c)&&(c=o.conversationPortrait),utils.isEmpty(a)&&(a=o.conversationExts),utils.isEqual(i.name,MESSAGE_TYPE.CLEAR_MSG)&&i.isSender&&(i={}),o=utils.extend(o,{latestMessage:i,conversationTitle:n,conversationPortrait:c,conversationExts:a,mentions:d,updatedTime:r,undisturbType:m})}else if(!n.isAdd){// 如果本地没有会话,未读数默认为 1
|
|
76
80
|
var g=i.unreadIndex||o.latestUnreadIndex;o.latestUnreadIndex=g,o.latestReadIndex=g-1}let{unreadCount:T=0,latestReadIndex:y=0,latestUnreadIndex:_=0}=o;// 自己发送的多端同步清空消息,未读数设置为 0,最后一条消息保持不变
|
|
77
|
-
utils.isEqual(
|
|
81
|
+
utils.isEqual(p,MESSAGE_TYPE.CLEAR_UNREAD)&&i.isSender&&(T=0,i=o.latestMessage),!u&&l.isCount&&(_=i.unreadIndex||_,T=_-y),(0>T||utils.isNull(T))&&(T=0);let C=getDraftKey(o),S=Storage.get(C);S=utils.isEmpty(S)?"":S,utils.extend(o,{draft:S}),utils.isEmpty(c)||utils.extend(o,{tags:c});let O=i.sentTime||o.sortTime;// 如果是自己发发送的群发消息不更新会话列表, 自己本地发送的消息通过 isMass 区分,接收或同步消息通过消息位计算
|
|
78
82
|
i.isMass&&u&&(O=o.sortTime),o=utils.extend(o,{sortTime:O,unreadCount:T,latestUnreadIndex:_,latestReadIndex:y}),e.push(o)}),e=utils.quickSort(e,(e,t)=>e.sortTime>t.sortTime);let s=1e3;e.length>1000&&(e.length=1000)},o=()=>{t=!0},i=e=>{s(e,{isAdd:!0})},r=t=>{let n=t,s=utils.find(e,({conversationType:e,conversationId:n,latestMessage:s={}})=>{let o=!0;// 删除会话指令中包含 time,用来判断是否是过期的删除指令
|
|
79
|
-
return 0<t.time&&(o=t.time>=s.sentTime),o&&utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n)});if(!utils.isEqual(s,-1)){let t=e.splice(s,1);n=t[0]}return n},a=()=>{t=!1,e.length=0},d=t=>{let n=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n));return utils.isEqual(n,-1)||utils.extend(e[n],t),e[n]||{}},
|
|
80
|
-
function checkUploadType(e){e=e||{};let t=UPLOAD_TYPE.NONE;return e.QiniuError&&(t=UPLOAD_TYPE.QINIU),e.urllib&&(t=UPLOAD_TYPE.ALI),e&&"S3Client"==e.name&&(t=UPLOAD_TYPE.S3),e&&"minio"==e.name&&(t=UPLOAD_TYPE.MINIO),t}function formatMediaMessage(e,t){let{name:n,content:s}=e;if(utils.isEqual(n,MESSAGE_TYPE.FILE)){let{file:n}=s,o=n.size/1e3;utils.extend(e.content,{size:o,url:t})}if(utils.isEqual(n,MESSAGE_TYPE.IMAGE)){let{height:n,width:o}=s,i="h";o>n&&(i="w");let r=`${t}&imageView2/2/${i}/100`;utils.extend(e.content,{url:t,thumbnail:r})}return utils.isInclude([MESSAGE_TYPE.VIDEO,MESSAGE_TYPE.VOICE],n)&&utils.extend(e.content,{url:t}),e}function uploadThumbnail(e,t,n){return"undefined"!=typeof uni&&uni.compressImage?uploadUniThumbnail(e,t,n):void uploadWebThumbnail(e,t,n)}function uploadUniThumbnail(e,t,n){let{type:s,content:o}=t,i=Uploder(e,{type:s}),{tempPath:r}=o;uni.compressImage({src:r,quality:25,success:e=>{let s={onprogress:utils.noop,oncompleted:({url:e})=>{let t=null;uni.getImageInfo({src:r,success:function(s){n(t,e,s)}})},onerror:e=>{n(e)}};i.exec({tempPath:e.tempFilePath},t,s)}})}function uploadWebThumbnail(e,t,n){let{type:s,token:o,domain:i,file:r,url:a}=t,d=Uploder(e,{type:s});d.compress(r,(e,s)=>{let r={file:e},
|
|
81
|
-
function uploadUniFrame(e,t,n){let s=null,o="";n(s,o,t.content)}function uploadWebFrame(e,t,n){let{type:s,token:o,domain:i,file:r,url:a}=t,d=Uploder(e,{type:s});d.capture(r,(e,s)=>{let r={file:e},
|
|
83
|
+
return 0<t.time&&(o=t.time>=s.sentTime),o&&utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n)});if(!utils.isEqual(s,-1)){let t=e.splice(s,1);n=t[0]}return n},a=()=>{t=!1,e.length=0},d=t=>{let n=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n));return utils.isEqual(n,-1)||utils.extend(e[n],t),e[n]||{}},m=(e,t={})=>{let n=[];return e=utils.isArray(e)?e:[e],utils.forEach(e,e=>{let s=p(e);if(!utils.isEmpty(s)){utils.extend(s,t),utils.isEmpty(t)&&utils.extend(s,e);let o=d(s);n.push(o)}else n.push(e)}),n},c=()=>e,p=t=>{let n=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n));return e[n]||{}},l=()=>t,E=t=>{t=utils.isArray(t)?t:[t];let n=[];return utils.forEach(t,t=>{let s=utils.find(e,({conversationType:e,conversationId:n})=>utils.isEqual(t.conversationType,e)&&utils.isEqual(t.conversationId,n));-1<s&&(e[s].latestReadIndex=t.unreadIndex,e[s].unreadCount=0,e[s].mentions={},e[s].unreadTag=UNREAD_TAG.READ,n.push(e[s]))}),n};return{remove:r,update:s,clear:a,get:c,isSync:l,add:i,relpace:d,setSynced:o,modify:m,getPer:p,read:E,isExisted:n}}// 特性检查
|
|
84
|
+
function checkUploadType(e){e=e||{};let t=UPLOAD_TYPE.NONE;return e.QiniuError&&(t=UPLOAD_TYPE.QINIU),e.urllib&&(t=UPLOAD_TYPE.ALI),e&&"S3Client"==e.name&&(t=UPLOAD_TYPE.S3),e&&"minio"==e.name&&(t=UPLOAD_TYPE.MINIO),t}function formatMediaMessage(e,t){let{name:n,content:s}=e;if(utils.isEqual(n,MESSAGE_TYPE.FILE)){let{file:n}=s,o=n.size/1e3;utils.extend(e.content,{size:o,url:t})}if(utils.isEqual(n,MESSAGE_TYPE.IMAGE)){let{height:n,width:o}=s,i="h";o>n&&(i="w");let r=`${t}&imageView2/2/${i}/100`;utils.extend(e.content,{url:t,thumbnail:r})}return utils.isInclude([MESSAGE_TYPE.VIDEO,MESSAGE_TYPE.VOICE],n)&&utils.extend(e.content,{url:t}),e}function uploadThumbnail(e,t,n){return"undefined"!=typeof uni&&uni.compressImage?uploadUniThumbnail(e,t,n):void uploadWebThumbnail(e,t,n)}function uploadUniThumbnail(e,t,n){let{type:s,content:o}=t,i=Uploder(e,{type:s}),{tempPath:r}=o;uni.compressImage({src:r,quality:25,success:e=>{let s={onprogress:utils.noop,oncompleted:({url:e})=>{let t=null;uni.getImageInfo({src:r,success:function(s){n(t,e,s)}})},onerror:e=>{n(e)}};i.exec({tempPath:e.tempFilePath},t,s)}})}function uploadWebThumbnail(e,t,n){let{type:s,token:o,domain:i,file:r,url:a}=t,d=Uploder(e,{type:s});d.compress(r,(e,s)=>{let r={file:e},m={token:o,domain:i,url:a,...t,isUniWebThumbnail:!0},c={onprogress:utils.noop,oncompleted:({url:e})=>{let t=null;n(t,e,{...s,isUniWebThumbnail:!0})},onerror:e=>{n(e)}};d.exec(r,m,c)},t)}function uploadFrame(e,t,n){return isUni()?uploadUniFrame(e,t,n):void uploadWebFrame(e,t,n)}//TODO: UniApp 截图视频首帧需特殊处理
|
|
85
|
+
function uploadUniFrame(e,t,n){let s=null,o="";n(s,o,t.content)}function uploadWebFrame(e,t,n){let{type:s,token:o,domain:i,file:r,url:a}=t,d=Uploder(e,{type:s});d.capture(r,(e,s)=>{let r={file:e},m={token:o,domain:i,url:a,...t},c={onprogress:utils.noop,oncompleted:({url:e})=>{let t=null;n(t,e,s)},onerror:e=>{n(e)}};d.exec(r,m,c)},t)}function getDraftKey(e){return`draft_${e.conversationType}_${e.conversationId}`}function formatUser(e){let t=utils.toObject(e.extFields);return{id:e.userId,name:e.nickname||"",portrait:e.userPortrait||"",updatedTime:e.updatedTime||0,exts:t||{},type:e.userType||0}}function formatGroupMember(e){e||(e={extFields:[]});let t=utils.toObject(e.extFields);return{name:e.grpDisplayName||"",updatedTime:e.updatedTime||0,exts:t||{}}}function toKVs(e){let t=[];return utils.forEach(e,(e,n)=>{t.push({key:n,value:e})}),t}function formatProvider(e,t){let n={};return utils.forEach(e,e=>{n[e]=function(){let n=[];for(let e=0;e<arguments.length;e++){let t=arguments[e],s={};s=utils.isArray(t)?t:clone(t),n.push(s)}let s=t[e];return s?s(...n):Promise.reject(ErrorType.SDK_FUNC_NOT_DEFINED)}}),n}function clone(e){let t=e=>{let n={};return utils.forEach(e,(e,s)=>{n[s]=utils.isObject(e)?t(e):utils.isArray(e)?utils.clone(e):e}),n},n=t(e);return n}function isDesktop(){return"undefined"!=typeof JGChatPCClient}function getSessionId(){return"s-xxxxxxxxxx".replace(/[xy]/g,function(e){let t=0|16*Math.random(),n="x"==e?t:8|3&t;return n.toString(16)})}function getTokenKey(e,t){return`${e}_${t}`}function genUId(){return"xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=0|16*Math.random(),n="x"==e?t:8|3&t;return n.toString(16)})}function getClientSession(){let e=JSessionStorage.getItem(STORAGE.CLIENT_SESSION);return e||(e=genUId(),JSessionStorage.setItem(STORAGE.CLIENT_SESSION,e)),e}function encrypto(e,t){let n=[];return e.forEach((e,s)=>{let o=s%8,i=e^t[o];n.push(i)}),new Uint8Array(n)}function decrypto(e,t){let n=[];return e.forEach((e,s)=>{let o=s%8,i=e^t[o];n.push(i)}),new Uint8Array(n)}function reportLogs({logger:e,params:t}){return e.report({...t})}function isUni(){return"undefined"!=typeof uni}var common={check,getNum,getTokenKey,getNaviStorageKey,initSyncTime,updateSyncTime,getError,ConversationUtils,checkUploadType,formatMediaMessage,uploadThumbnail,uploadFrame,getDraftKey,formatUser,toKVs,registerMessage,getMsgFlag,formatter,formatProvider,isDesktop,getSessionId,getClientSession,encrypto,decrypto,reportLogs,isUni,formatGroupMember};function getConnectBody({data:e}){let{appkey:t,token:n,deviceId:s,platform:o,clientSession:i,sdkVersion:r}=e,a="jug9le1m",d=$root.lookup("codec.ConnectMsgBody"),m=d.create({appkey:t,token:n,platform:o,deviceId:s,clientSession:i,protoId:a,sdkVersion:r}),c=d.encode(m).finish();return{buffer:c}}async function getPublishBody({data:e,callback:t,index:n},s){let{conversationId:o,conversationType:i,topic:r}=e,a=[],{msgEncryptHook:d}=s.getConfig();if(d=d||{},utils.isAsyncFunction(d.onEncrypt)||utils.isFunction(d.onEncrypt)||(d={onEncrypt:async e=>e.buffer}),utils.isInclude([COMMAND_TOPICS.SEND_GROUP,COMMAND_TOPICS.SEND_PRIVATE,COMMAND_TOPICS.SEND_CHATROOM],r)){let{name:t,content:n,mentionInfo:s,flag:r,mergeMsg:l,referMsg:E,push:u,clientMsgId:g,lifeTime:T,lifeTimeAfterRead:y}=e;n=utils.toJSON(n);let _=$root.lookup("codec.UpMsg"),C={};if(s){let{members:t=[],mentionType:e}=s;t=utils.map(t,e=>({userId:e.id})),utils.extend(C,{mentionType:e,targetUsers:t})}if(!utils.isEmpty(E)){let{messageIndex:e,sentTime:t,messageId:n,sender:s={exts:{}}}=E,o=utils.toJSON(E.content);// let referTarget = {
|
|
82
86
|
// userId: sender.id,
|
|
83
87
|
// nickname: sender.name,
|
|
84
88
|
// userPortrait: sender.portrait,
|
|
85
89
|
// extFields: common.toKVs(sender.exts)
|
|
86
90
|
// };
|
|
87
|
-
|
|
88
|
-
}}let u={msgType:t,mentionInfo:E,flags:o,referMsg:a,mergedMsgs:i,clientUid:p,msgContent:JTextEncoder$1.encoder(n)};if(d){let{text:e,title:t}=d,n={title:t,pushText:e};n=utils.clone(n),utils.isEmpty(n)||(u=utils.extend(u,{pushData:n}))}utils.isNumber(c)&&(u.lifeTime=c),utils.isNumber(m)&&(u.lifeTimeAfterRead=m);let g=l.create(u);r=l.encode(g).finish()}let a=$root.lookup("codec.PublishMsgBody"),d=a.create({index:n,targetId:s,topic:i,data:r}),p=a.encode(d).finish();return{buffer:p}}function getPublishAckBody({data:e}){let{msgIndex:t,ackIndex:n}=e,s=$root.lookup("codec.PublishAckMsgBody"),o=s.create({index:n,msgIndex:t,code:0}),i=s.encode(o).finish();return{buffer:i}}function getQueryBody({data:e,callback:t,index:n}){let{targetId:s,userId:o,topic:i}=e,r=[];if(utils.isEqual(i,COMMAND_TOPICS.HISTORY_MESSAGES)){let{conversationType:t,time:n,count:o,order:i,names:a}=e,d=$root.lookup("codec.QryHisMsgsReq"),p=d.create({converId:s,type:t,startTime:n,count:o,order:i,msgTypes:a});r=d.encode(p).finish()}if(utils.isEqual(i,COMMAND_TOPICS.CONVERSATIONS)){let{count:t,time:n,order:i,conversationType:a,tag:d}=e;s=o;let p=$root.lookup("codec.QryConversationsReq"),c={startTime:n,count:t,order:i};utils.isUndefined(a)||utils.extend(c,{channelType:a}),d&&utils.extend(c,{tag:d});let m=p.create(c);r=p.encode(m).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_CONVERSATION,i)){let{conversation:t,userId:n}=e,{conversationId:o,conversationType:i}=t,a=$root.lookup("codec.QryConverReq"),d=a.create({channelType:i,targetId:o});s=n,r=a.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.SYNC_CONVERSATIONS,i)){let{count:t,syncTime:n}=e;s=o;let i=$root.lookup("codec.SyncConversationsReq"),a=i.create({startTime:n,count:t});r=i.encode(a).finish()}if(utils.isEqual(i,COMMAND_TOPICS.SYNC_MESSAGES)){let{syncTime:t,containsSendBox:n,sendBoxSyncTime:i}=e;s=o;let a=$root.lookup("codec.SyncMsgReq"),d=a.create({syncTime:t,containsSendBox:n,sendBoxSyncTime:i});r=a.encode(d).finish()}if(utils.isEqual(i,COMMAND_TOPICS.SYNC_CHATROOM_MESSAGES)){let{syncTime:t,chatroomId:n,count:o}=e,i=$root.lookup("codec.SyncChatroomReq"),a=i.create({syncTime:t,chatroomId:n,count:o});s=n,r=i.encode(a).finish()}if(utils.isEqual(i,COMMAND_TOPICS.SYNC_CHATROOM_ATTRS)){let{syncTime:t,chatroomId:n}=e,o=$root.lookup("codec.SyncChatroomReq"),i=o.create({syncTime:t,chatroomId:n});s=n,r=o.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_MSG_BY_IDS,i)){let{conversationId:t,conversationType:n,messageIds:o,userId:i}=e,a=$root.lookup("codec.QryHisMsgByIdsReq"),d=a.create({channelType:n,targetId:t,msgIds:o});s=i,r=a.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_UNREAD_TOTLAL_CONVERSATION,i)){s=o;let t=$root.lookup("codec.QryTotalUnreadCountReq"),{conversationTypes:i=[],ignoreConversations:a=[],tag:n}=e,d=[];utils.forEach(a,({conversationId:e,conversationType:t})=>{d.push({targetId:e,channelType:t})});let p={channelTypes:i,ignoreConvers:d};n&&utils.extend(p,{tag:n});let c=t.create({filter:p});r=t.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.CLEAR_UNREAD_TOTLAL_CONVERSATION,i)){s=o;let e=$root.lookup("codec.QryTotalUnreadCountReq"),t=e.create({});r=e.encode(t).finish()}if(utils.isEqual(COMMAND_TOPICS.READ_MESSAGE,i)){let{messages:t}=e;t=utils.isArray(t)?t:[t];let n=CONVERATION_TYPE.PRIVATE,o="",i=utils.map(t,e=>{let{conversationType:t,conversationId:i,sentTime:r,messageId:a,unreadIndex:d}=e;return n=t,o=i,s=i,{msgId:a,msgTime:r,msgIndex:d}}),a=$root.lookup("codec.MarkReadReq"),d=a.create({channelType:n,targetId:o,msgs:i});r=a.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_READ_MESSAGE_DETAIL,i)){let{message:t}=e,{conversationType:n,conversationId:o,messageId:i}=t,a=$root.lookup("codec.QryReadDetailReq"),d=a.create({channelType:n,targetId:o,msgId:i});s=i,r=a.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_MENTION_MSGS,i)){let{conversationId:t,conversationType:n,count:o,order:i,messageIndex:a,userId:d}=e,p=$root.lookup("codec.QryMentionMsgsReq"),c=p.create({targetId:t,channelType:n,count:o,order:i,startIndex:a});s=d,r=p.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_FILE_TOKEN,i)){s=o;let{type:t,ext:n}=e,i=$root.lookup("codec.QryUploadTokenReq"),a=i.create({fileType:t,ext:n});r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_USER_INFO,i)){s=o;let e=$root.lookup("codec.UserIdReq"),t=e.create({userId:o});r=e.encode(t).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_MERGE_MSGS,i)){let{messageId:t,time:n,count:o,order:i}=e;s=t;let a=$root.lookup("codec.QryMergedMsgsReq"),d=a.create({startTime:n,count:o,order:i});r=a.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_FIRST_UNREAD_MSG,i)){let{conversationType:t,conversationId:n}=e;s=n;let o=$root.lookup("codec.QryFirstUnreadMsgReq"),i=o.create({channelType:t,targetId:n});r=o.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.QUERY_TOP_CONVERSATIONS,i)){let{time:t,userId:n,sortType:o}=e,i=$root.lookup("codec.QryTopConversReq"),a=i.create({startTime:t,sortType:o});s=n,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.RECALL,i)){let{messageId:t,sentTime:n,exts:o,conversationType:i,conversationId:a}=e,d=[];utils.forEach(o,(e,t)=>{d.push({key:t,value:e})});let p=$root.lookup("codec.RecallMsgReq"),c=p.create({targetId:a,channelType:i,msgId:t,msgTime:n,exts:d});s=a,r=p.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.CLEAR_UNREAD,i)){let{conversations:t,userId:n}=e;t=utils.isArray(t)?t:[t];let o=$root.lookup("codec.ClearUnreadReq"),i=utils.map(t,({conversationType:e,conversationId:t,unreadIndex:n})=>({channelType:e,targetId:t,latestReadIndex:n})),a=o.create({conversations:i});s=n,r=o.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.SET_ALL_DISTURB,i)){let{userId:t,times:n,timezone:o,type:i}=e,a=$root.lookup("codec.UserUndisturb"),d=utils.isEqual(UNDISTURB_TYPE.DISTURB,i),p=a.create({switch:d,timezone:o,rules:n});s=t,r=a.encode(p).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_ALL_DISTURB,i)){let{userId:t}=e,n=$root.lookup("codec.Nil"),o=n.create({});s=t,r=n.encode(o).finish()}if(utils.isEqual(COMMAND_TOPICS.MARK_CONVERSATION_UNREAD,i)){let{userId:t,conversations:n}=e;n=utils.map(n,e=>{let{conversationId:t,conversationType:n,unreadTag:s}=e;return{channelType:n,targetId:t,unreadTag:s}});let o=$root.lookup("codec.ConversationsReq"),i=o.create({conversations:n});s=t,r=o.encode(i).finish()}if(utils.isInclude([COMMAND_TOPICS.SET_CHATROOM_ATTRIBUTES,COMMAND_TOPICS.REMOVE_CHATROOM_ATTRIBUTES],i)){let{chatroom:{id:t,attributes:n,options:o}}=e,{notify:i}=o,a=$root.lookup("codec.ChatAttBatchReq"),d={atts:n};utils.isUndefined(i)||utils.extend(d,{msg:JTextEncoder$1.encoder(i)});let p=a.create(d);s=t,r=a.encode(p).finish()}if(utils.isEqual(COMMAND_TOPICS.REMOVE_CONVERSATION,i)){let{conversations:t,userId:n}=e;t=utils.isArray(t)?t:[t];let o=utils.map(t,({conversationType:e,conversationId:t})=>({channelType:e,targetId:t})),i=$root.lookup("codec.DelConversationReq"),a=i.create({conversations:o});s=n,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.UPDATE_MESSAGE,i)){let{conversationId:t,conversationType:n,messageId:o,content:i,sentTime:a,msgName:d}=e,p=$root.lookup("codec.ModifyMsgReq");i=utils.toJSON(i);let c=p.create({channelType:n,targetId:t,msgId:o,msgTime:a,msgType:d,msgContent:JTextEncoder$1.encoder(i)});s=t,r=p.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.CLEAR_MESSAGE,i)){let{conversationId:t,conversationType:n,time:o}=e,i=$root.lookup("codec.CleanHisMsgReq"),a=i.create({channelType:n,targetId:t,cleanMsgTime:o});s=t,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.JOIN_CHATROOM,i)){let{chatroom:{id:t,isAutoCreate:n}}=e,o=$root.lookup("codec.ChatRoomReq"),i=o.create({chatId:t,isAutoCreate:n});s=t,r=o.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.QUIT_CHATROOM,i)){let{chatroom:{id:t}}=e,n=$root.lookup("codec.ChatRoomReq"),o=n.create({chatId:t});s=t,r=n.encode(o).finish()}if(utils.isEqual(COMMAND_TOPICS.INSERT_CONVERSATION,i)){let{conversation:t,userId:n}=e,{conversationId:o,conversationType:i}=t,a=$root.lookup("codec.Conversation"),d=a.create({channelType:i,targetId:o});s=n,r=a.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.MUTE_CONVERSATION,i)){let{userId:t,conversations:n}=e,o=utils.isArray(n)?n:[n];o=utils.map(o,e=>{let{conversationType:t,conversationId:n,undisturbType:s}=e;return{targetId:n,channelType:t,undisturbType:s}});let i=$root.lookup("codec.UndisturbConversReq"),a=i.create({userId:t,items:o});s=t,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.TOP_CONVERSATION,i)){let{userId:t,conversations:n}=e,o=utils.isArray(n)?n:[n];o=utils.map(o,e=>{let{conversationType:t,conversationId:n,isTop:s}=e;return{targetId:n,channelType:t,isTop:s}});let i=$root.lookup("codec.ConversationsReq"),a=i.create({conversations:o});s=t,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.REMOVE_MESSAGE,i)){let{userId:t,messages:n}=e,o=[],i="",a=CONVERATION_TYPE.PRIVATE;utils.forEach(n,e=>{let{conversationType:t,conversationId:n,messageIndex:s,sentTime:r,messageId:d}=e;i=n,a=t,o.push({msgId:d,msgIndex:s,msgTime:r})});let d=$root.lookup("codec.DelHisMsgsReq"),p=d.create({channelType:a,targetId:i,msgs:o});s=i,r=d.encode(p).finish()}if(utils.isInclude([COMMAND_TOPICS.ADD_MSG_REACTION,COMMAND_TOPICS.REMOVE_MSG_REACTION],i)){let{messageId:t,reactionId:n,userId:o,conversationId:i,conversationType:a}=e,d=$root.lookup("codec.MsgExt"),p=d.create({channelType:a,targetId:i,msgId:t,ext:{key:n,value:o}});s=t,r=d.encode(p).finish()}if(utils.isInclude([COMMAND_TOPICS.CONVERSATION_TAG_ADD,COMMAND_TOPICS.CONVERSATION_TAG_REMOVE],i)){let{userId:t,tag:n}=e,{name:i="",id:o,conversations:a=[]}=n,d=utils.map(a,({conversationId:e,conversationType:t})=>({targetId:e,channelType:t})),p=$root.lookup("codec.TagConvers"),c=p.create({tag:o,tagName:i,convers:d});s=t,r=p.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.TAG_REMOVE,i)){let{userId:t,tag:n}=e,o=utils.isArray(n)?n:[n];o=utils.map(o,e=>({tag:e.id}));let i=$root.lookup("codec.UserConverTags"),a=i.create({tags:o});s=t,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.CONVERSATION_TAG_QUERY,i)){let{userId:t}=e,n=$root.lookup("codec.Nil"),o=n.create({});s=t,r=n.encode(o).finish()}if(utils.isInclude([COMMAND_TOPICS.RTC_CREATE_ROOM,COMMAND_TOPICS.RTC_JOIN_ROOM],i)){let{room:t,user:n}=e,{id:o,type:a,option:d={}}=t,{cameraEnable:p=!1,micEnable:c=!1}=d,m=$root.lookup("codec.RtcRoomReq"),l=m.create({roomId:o,roomType:a,joinMember:{member:n,rtcState:RTC_STATE.NONE,cameraEnable:p,micEnable:c}});s=n.id,utils.isEqual(COMMAND_TOPICS.RTC_JOIN_ROOM,i)&&(s=t.id),r=m.encode(l).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_QUIT_ROOM,i)){let{room:t}=e,n=$root.lookup("codec.RtcRoomReq"),o=n.create({roomId:t.id,roomType:t.type});s=t.id,r=n.encode(o).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_QRY_ROOM,i)){let{room:t}=e,n=$root.lookup("codec.Nil"),o=n.create({});s=t.id,r=n.encode(o).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_PING,i)){let{room:t}=e,n=$root.lookup("codec.Nil"),o=n.create({});s=t.id,r=n.encode(o).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_INVITE,i)){let{roomId:t,roomType:n,memberIds:o,channel:i,user:a,mediaType:d,ext:p}=e,c=$root.lookup("codec.RtcInviteReq"),m=c.create({roomId:t,roomType:n,targetIds:o,rtcChannel:i,rtcMediaType:d,ext:p||""});s=t,r=c.encode(m).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_UPDATE_STATE,i)){let{memberId:t,state:n,roomId:o}=e,i=$root.lookup("codec.RtcMember"),a=i.create({member:{userId:t},rtcState:n});s=o,r=i.encode(a).finish()}if(utils.isInclude([COMMAND_TOPICS.RTC_ACCEPT,COMMAND_TOPICS.RTC_HANGUP],i)){let{roomId:t,user:n}=e,o=$root.lookup("codec.Nil"),i=o.create({});s=t,r=o.encode(i).finish()}if(utils.isInclude([COMMAND_TOPICS.SET_TOP_MSG,COMMAND_TOPICS.DEL_TOP_MSG],i)){let{conversationId:t,conversationType:n,messageId:o,isTop:i,userId:a}=e,d=$root.lookup("codec.SetTopMsgReq"),p=d.create({channelType:n,targetId:t,msgId:o});s=a,r=d.encode(p).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_TOP_MSG,i)){let{conversationId:t,conversationType:n}=e,o=$root.lookup("codec.GetTopMsgReq"),i=o.create({channelType:n,targetId:t});s=t,r=o.encode(i).finish()}if(utils.isInclude([COMMAND_TOPICS.MSG_ADD_FAVORITE,COMMAND_TOPICS.MSG_REMOVE_FAVORITE],i)){let{messages:t,userId:n}=e,o=$root.lookup("codec.FavoriteMsgIds"),i=utils.map(t,e=>{let{conversationId:t,conversationType:n,senderId:s,messageId:o}=e;return{channelType:n,receiverId:t,senderId:s,msgId:o}}),a=o.create({items:i});s=n,r=o.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.MSG_QRY_FAVORITE,i)){let{limit:t,offset:n,userId:o}=e,i=$root.lookup("codec.QryFavoriteMsgsReq"),a=i.create({limit:t,offset:n});s=o,r=i.encode(a).finish()}if(utils.isEqual(COMMAND_TOPICS.UPLOAD_PUSH_TOKEN,i)){let{deviceId:t,pushToken:n,platform:o,packageName:i,pushChannel:a,userId:d}=e,p=$root.lookup("codec.RegPushTokenReq"),c=p.create({deviceId:t,pushToken:n,platform:o,packageName:i,pushChannel:a});s=d,r=p.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.SWITCH_PUSH,i)){let{isOpen:t}=e,n=$root.lookup("codec.PushSwitch"),i=n.create({switch:t});s=o,r=n.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.BATCH_TRANSLATE,i)){let{userId:t,content:n,sourceLang:o,targetLang:i}=e,a=$root.lookup("codec.TransReq"),d=[];utils.forEach(n,(e,t)=>{d.push({key:t,content:e})}),o=utils.isEqual(o,"auto")?"":o;let p=a.create({items:d,sourceLang:o,targetLang:i});s=t,r=a.encode(p).finish()}let a=$root.lookup("codec.QueryMsgBody"),d=a.create({index:n,topic:i,targetId:s,data:r}),p=a.encode(d).finish();return{buffer:p}}function getPingBody(){return{}}function Encoder(e,t){let n=$root.lookup("codec.ImWebsocketMsg"),s=(s,o)=>{let i={},r={},a={version:1,cmd:s,qos:QOS.YES},{counter:d,callback:p,index:c}=o;switch(s){case SIGNAL_CMD.CONNECT:i=getConnectBody(o),r={counter:d};break;case SIGNAL_CMD.PUBLISH:i=getPublishBody(o),r={callback:p,data:o.data,counter:d};break;case SIGNAL_CMD.PUBLISH_ACK:i=getPublishAckBody(o),r={callback:p,data:o.data,counter:d};break;case SIGNAL_CMD.QUERY:i=getQueryBody(o);let{targetId:e,userId:t,topic:n}=o.data;r={callback:p,index:c,topic:n,targetId:e,counter:d};break;case SIGNAL_CMD.PING:i=getPingBody(),r={counter:d}}if(e.set(c,r),i.buffer){let n=e.get(STORAGE.CRYPTO_RANDOM),s=common.encrypto(i.buffer,n),{msgEncryptHook:o}=t.getConfig();o=o||{},utils.isFunction(o.onEncrypt)&&(s=o.onEncrypt(s)),utils.extend(a,{payload:s})}let m=n.create(a),l=n.encode(m).finish();return l};return{encode:s}}function InfoCacher(){let e=Cache(),t=(t,n={})=>{let s=e.get(t);utils.isEmpty(s)&&(s={updatedTime:0}),n.updatedTime>s.updatedTime&&e.set(t,n)},n=t=>{let n=e.get(t)||{};return n},s=()=>{e.clear()};return{set:t,get:n,clear:s}}let $groupCacher=InfoCacher();var GroupCacher={...$groupCacher};let $userCacher=InfoCacher();var UserCacher={...$userCacher};function msgFormat(e,{currentUser:t}){let{msgItems:n,converTags:s,undisturbType:o,msgExtSet:i,senderId:r,unreadIndex:a,memberCount:d,referMsg:p,readCount:c,msgId:m,msgTime:l,msgType:E,msgContent:u,type:g,targetId:T,mentionInfo:y,isSend:_,msgIndex:C,isRead:S,flags:O,targetUserInfo:f,groupInfo:I,grpMemberInfo:R,destroyTime:A,lifeTimeAfterRead:N,readTime:M}=e,v="";u&&0<u.length&&(v=JTextEncoder$1.decoder(u),v=utils.parse(v)),f=f||{userId:r},I=I||{groupId:T};// 默认更新内存数据
|
|
89
|
-
|
|
90
|
-
if(utils.isUndefined(U.name)){let e=UserCacher.get(h);U=utils.isEmpty(e)?{id:h}:e}if(utils.isUndefined(I.groupName)){let e=GroupCacher.get(D);I=utils.isEmpty(e)?{id:D}:e}if(y){let{targetUsers:e,mentionType:t}=y,n=utils.map(e,e=>(e=common.formatUser(e),e));y={mentionType:t,members:n}}let b={};if(p){let e=p.msgContent||"";0!=e.length&&(e=JTextEncoder$1.decoder(e),b.content=utils.parse(e)),p.targetUserInfo=common.formatUser(p.targetUserInfo||{}),utils.extend(b,{name:p.msgType,messageId:p.messageIndex,messageIndex:p.msgIndex,sentTime:p.msgTime,sender:p.targetUserInfo})}let x=common.formatter.toMsg(O),G=t,k={};i&&(i=utils.map(i,e=>{let{key:t,value:n,timestamp:s,userInfo:o}=e,i=common.formatUser(o);return{key:t,value:n,user:i,timestamp:s}}),k=utils.groupBy(i,["key"])),s=s||[];let q=utils.map(s,e=>{let{tag:t,tagName:n,tagType:s}=e;return{id:t,name:n,type:s}}),L={};utils.isEqual(CONVERATION_TYPE.GROUP,g)&&(L=common.formatGroupMember(R));let P={conversationType:g,conversationId:T,conversationTitle:"",conversationPortrait:"",conversationExts:{},sender:utils.clone(U),groupMember:L,messageId:m,tid:m,sentTime:l,name:E,isSender:utils.isEqual(G.id,r),messageIndex:C,mentionInfo:y,isRead:!!S,readTime:M||0,isUpdated:x.isUpdated,isMuted:x.isMute,isMass:x.isMass,isStatus:x.isStatus,isStreamMsg:x.isStream,referMsg:b,sentState:MESSAGE_SENT_STATE.SUCCESS,undisturbType:o||0,unreadIndex:a||0,flags:O,reactions:k,tags:q,destroyTime:A||0};utils.isNumber(N)&&(P.lifeTimeAfterRead=N),P.isSender&&utils.extend(P.sender,G);let V=[];if(P.isStreamMsg&&(V=formatStreams(n)),utils.extend(P,{streams:V}),utils.isEqual(g,CONVERATION_TYPE.GROUP)){let{groupName:e,groupPortrait:t,extFields:n,groupId:s,updatedTime:o}=I||{extFields:{}};n=utils.toObject(n),utils.extend(P,{conversationTitle:e||"",conversationPortrait:t||"",conversationExts:n,conversationUpdatedTime:I.updatedTime||0,unreadCount:d-c,readCount:c})}if(utils.isEqual(g,CONVERATION_TYPE.PRIVATE)&&utils.extend(P,{conversationTitle:U.name,conversationPortrait:U.portrait,conversationExts:U.exts,conversationUpdatedTime:U.updatedTime,conversationUserType:U.userType||0}),utils.isInclude([MESSAGE_TYPE.RECALL_INFO,MESSAGE_TYPE.RECALL],E)&&(v=utils.rename(v,{msg_id:"messageId",msg_time:"sentTime"})),utils.isEqual(MESSAGE_TYPE.MODIFY,E)&&(v=utils.rename(v,{msg_type:"name",msg_content:"content",msg_id:"messageId",msg_seq:"messageIndex",msg_time:"sentTime"})),utils.isEqual(MESSAGE_TYPE.READ_MSG,E)){delete v.index_scopes;let{msgs:e}=v;e=utils.map(e,({msg_id:e})=>({messageId:e})),utils.extend(v,{msgs:e})}if(utils.isEqual(MESSAGE_TYPE.READ_GROUP_MSG,E)){let{msgs:e}=v;e=utils.map(e,({msg_id:e,member_count:t,read_count:n})=>({messageId:e,unreadCount:t-n,readCount:n})),utils.extend(v,{msgs:e})}if(utils.isEqual(MESSAGE_TYPE.CLEAR_UNREAD,E)){let{conversations:e}=v;e=utils.map(e,({channel_type:e,target_id:t,latest_read_index:n})=>({conversationType:e,conversationId:t,unreadIndex:n})),utils.extend(v,{conversations:e})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_UNDISTURB,E)){let{conversations:e}=v;e=utils.map(e,e=>({conversationId:e.target_id,conversationType:e.channel_type,undisturbType:e.undisturb_type})),utils.extend(v,{conversations:e})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_TOPCONVERS,E)){let{conversations:e}=v;e=utils.map(e,e=>({conversationId:e.target_id,conversationType:e.channel_type,isTop:!!e.is_top})),utils.extend(v,{conversations:e})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_REMOVE_CONVERS,E)){let{conversations:t}=v;t=utils.map(t,t=>({conversationId:t.target_id,conversationType:t.channel_type,time:e.msgTime})),utils.extend(v,{conversations:t})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_DELETE_MSGS,E)){let t=utils.map(v.msgs,t=>({tid:t.msg_id,messageId:t.msg_id,conversationId:e.targetId,conversationType:v.channel_type}));v={conversationId:e.targetId,conversationType:v.channel_type,messages:t}}if(utils.isEqual(MESSAGE_TYPE.CLEAR_MSG,E)&&(v={cleanTime:v.clean_time,conversationType:v.channel_type,conversationId:e.targetId,senderId:v.sender_id}),utils.isEqual(MESSAGE_TYPE.COMMAND_ADD_CONVER,E)){let e=v.conversation,{target_id:t,channel_type:n,sort_time:s,sync_time:o,target_user_info:i={}}=e,{nickname:r,user_portrait:a,ext_fields:d,updated_time:p}=i;v={conversationId:t,conversationType:n,conversationTitle:r,conversationPortrait:a,conversationExts:d,latestMessage:{conversationId:t,conversationType:n},unreadCount:0,updatedTime:p,sortTime:s,syncTime:o}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_CLEAR_TOTALUNREAD,E)&&(v={clearTime:v.clear_time}),utils.isEqual(MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD,E)){let{tag:e,tag_name:t,convers:n}=v;n=n||[],n=utils.map(n,e=>({conversationId:e.target_id,conversationType:e.channel_type})),v={id:e,name:t,conversations:n}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_REMOVE,E)){let{tags:e}=v;e=utils.map(e,e=>({id:e.tag})),v={tags:e}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_REMOVE_CONVERS_FROM_TAG,E)){let{tag:e,convers:t}=v;t=utils.map(t,e=>({conversationId:e.target_id,conversationType:e.channel_type})),v={id:e,conversations:t}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_MARK_UNREAD,E)){let e=v.conversations,t=utils.map(e,e=>{let{unread_tag:t,channel_type:n,target_id:s}=e;return{conversationId:s,conversationType:n,unreadTag:t}});v={conversations:t}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_MSG_EXSET,E)){let{channel_type:e,msg_id:t,exts:n}=v,s=utils.map(n,e=>{let{is_del:t,timestamp:n,key:s,value:o,user:i}=e;s=unescape(s);let r={};return i&&(r={id:i.user_id,name:i.nickname,portrait:i.user_portrait}),{isRemove:!!t,key:s,value:o,timestamp:n,user:r}});v={conversationId:T,conversationType:g,messageId:t,reactions:s}}return utils.extend(P,{content:v}),P}function formatConversations$1(e,t={}){return e.map(e=>{let{msg:n,targetId:s,unreadCount:o,sortTime:i,topUpdatedTime:r,targetUserInfo:a,groupInfo:d,syncTime:p,undisturbType:c,mentions:m,channelType:l,latestReadIndex:E,latestUnreadIndex:u,isTop:g,unreadTag:T,converTags:y}=e;n||(n={msgContent:[]});let{topic:_,currentUser:C}=t;if(utils.extend(n,{targetId:s}),o=o||0,T=T||0,m=m||{},!utils.isEmpty(m)){let{isMentioned:e,senders:t,mentionMsgs:n}=m;t=utils.map(t,e=>common.formatUser(e)),n=utils.map(n,e=>{let{senderId:t,msgId:n,msgTime:s,mentionType:o}=e;return{senderId:t,messageId:n,sentTime:s,mentionType:o}}),m={isMentioned:e,senders:t,msgs:n,count:n.length}}let S={};if(utils.isEqual(n.msgContent.length,0)||(S=msgFormat(n,{currentUser:C})),utils.isEqual(l,CONVERATION_TYPE.GROUP)){d=d||{extFields:{}};let{groupName:e,groupPortrait:t,extFields:n,groupId:s,updatedTime:o}=d;n=utils.toObject(n),utils.extend(S,{conversationTitle:e||"",conversationPortrait:t||"",conversationExts:n,conversationUpdatedTime:o||0}),GroupCacher.set(s,d)}if(utils.isEqual(l,CONVERATION_TYPE.PRIVATE)){a=a||{extFields:{}};let{userPortrait:e,nickname:t,extFields:n,userId:s,updatedTime:o,userType:i}=a;n=utils.toObject(n),utils.extend(S,{conversationTitle:t||"",conversationPortrait:e||"",conversationExts:n,conversationUpdatedTime:o||0,conversationUserType:i||0}),UserCacher.set(s,a)}let{conversationTitle:O,conversationPortrait:f,conversationExts:I,conversationUpdatedTime:R,conversationUserType:A}=S;y=y||[];let N=utils.map(y,e=>{let{tag:t,tagName:n,tagType:s}=e;return{id:t,name:n,type:s}});return{conversationType:l,conversationId:s,unreadCount:o,sortTime:i,topUpdatedTime:r||0,latestMessage:S,conversationTitle:O,conversationPortrait:f,conversationUpdatedTime:R,conversationUserType:A,conversationExts:I,mentions:m,syncTime:p,undisturbType:c||0,latestReadIndex:E,latestUnreadIndex:u,unreadTag:T,tags:N,isTop:!!g}})}function formatRTCRoom(e){let{roomId:t,roomType:n,members:s}=e;return s=utils.map(s,e=>{let{member:t,rtcState:n,cameraEnable:s,micEnable:o,callTime:i,connectTime:r,hangupTime:a,inviter:d}=e;return t=common.formatUser(t),d=common.formatUser(d),{member:t,rtcState:n,cameraEnable:s,micEnable:o,callTime:i,connectTime:r,hangupTime:a,inviter:d}}),{room:{id:t,type:n},members:s}}function formatStreams(e){let t=utils.map(e,e=>formatStream(e));return t}function formatStream(e){let{event:t,subSeq:n,partialContent:s}=e,o="";return s&&0<s.length&&(o=JTextEncoder$1.decoder(s),o=utils.parse(o)),{event:t,seq:n,content:o}}var tools$1={msgFormat,formatConversations:formatConversations$1,formatRTCRoom,formatStreams};function getQueryAckBody(e,{cache:t,currentUser:n}){let s=$root.lookup("codec.QueryAckMsgBody"),o=s.decode(e),{index:i,data:r,code:a,timestamp:d}=o,{topic:p,targetId:c}=t.get(i),m={};return utils.isInclude([COMMAND_TOPICS.HISTORY_MESSAGES,COMMAND_TOPICS.SYNC_MESSAGES,COMMAND_TOPICS.GET_MSG_BY_IDS,COMMAND_TOPICS.GET_MERGE_MSGS],p)&&(m=getMessagesHandler(i,r,{currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.SYNC_CHATROOM_MESSAGES)&&(m=getChatroomMsgsHandler(i,r,{currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.SYNC_CHATROOM_ATTRS)&&(m=getChatroomAttrsHandler(i,r,{targetId:c})),utils.isInclude([COMMAND_TOPICS.CONVERSATIONS,COMMAND_TOPICS.SYNC_CONVERSATIONS,COMMAND_TOPICS.QUERY_TOP_CONVERSATIONS],p)&&(m=getConversationsHandler(i,r,{topic:p,currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.GET_CONVERSATION)&&(m=getConversationHandler(i,r,{currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.GET_UNREAD_TOTLAL_CONVERSATION)&&(m=getTotalUnread(i,r)),utils.isEqual(p,COMMAND_TOPICS.GET_READ_MESSAGE_DETAIL)&&(m=getMessageReadDetails(i,r)),utils.isEqual(p,COMMAND_TOPICS.GET_MENTION_MSGS)&&(m=getMentionMessages(i,r,{currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.GET_FILE_TOKEN)&&(m=getFileToken(i,r)),utils.isEqual(p,COMMAND_TOPICS.GET_USER_INFO)&&(m=getUserInfo(i,r)),utils.isEqual(p,COMMAND_TOPICS.GET_ALL_DISTURB)&&(m=getAllDisturb(i,r)),utils.isInclude([COMMAND_TOPICS.REMOVE_CHATROOM_ATTRIBUTES,COMMAND_TOPICS.SET_CHATROOM_ATTRIBUTES],p)&&(m=getChatroomSetAttrs(i,r)),utils.isEqual(p,COMMAND_TOPICS.GET_FIRST_UNREAD_MSG)&&(m=getMessage(i,r,{currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.CONVERSATION_TAG_QUERY)&&(m=getConversationTags(i,r)),utils.isEqual(p,COMMAND_TOPICS.BATCH_TRANSLATE)&&(m=getBatchTranslate(i,r)),utils.isEqual(p,COMMAND_TOPICS.GET_TOP_MSG)&&(m=getTopMessage(i,r,{currentUser:n})),utils.isEqual(p,COMMAND_TOPICS.MSG_QRY_FAVORITE)&&(m=getFavtoriteMsgs(i,r,{currentUser:n})),utils.isInclude([COMMAND_TOPICS.RTC_ACCEPT,COMMAND_TOPICS.RTC_INVITE],p)&&(m=getRTCAuth(i,r)),utils.isInclude([COMMAND_TOPICS.RTC_CREATE_ROOM,COMMAND_TOPICS.RTC_JOIN_ROOM,COMMAND_TOPICS.RTC_QRY_ROOM],p)&&(m=getRTCRoom(i,r)),m=utils.extend(m,{code:a,timestamp:d,index:i}),m}function getFavtoriteMsgs(e,t,{currentUser:n}){let s=$root.lookup("codec.FavoriteMsgs"),o=s.decode(t),{items:i,offset:r}=o;i||(i=[]);let a=utils.map(i,e=>{let{createdTime:t,msg:s}=e,o=tools$1.msgFormat(s,{currentUser:n});return{createdTime:t,message:o}});return{index:e,list:a,offset:r}}function getTopMessage(e,t,{currentUser:n}){let s=$root.lookup("codec.TopMsg"),o=s.decode(t),{msg:i,operator:r,createdTime:a=0}=o,d={};return i&&(d=tools$1.msgFormat(o.msg,{currentUser:n}),r=common.formatUser(o.operator)),{index:e,message:d,operator:r,createdTime:a}}function getBatchTranslate(e,t){let n=$root.lookup("codec.TransReq"),s=n.decode(t);return{index:e,trans:s}}function getRTCAuth(e,t){let n=$root.lookup("codec.RtcAuth"),s=n.decode(t);return{index:e,auth:s}}function getChatroomSetAttrs(e,t){let n=$root.lookup("codec.ChatAttBatchResp"),{attResps:s}=n.decode(t),o=[],i=[];return utils.forEach(s,e=>{let{code:r=0,key:t,attTime:n,msgTime:s}=e,a={code:r,key:t,updateTime:n,messageTime:s};if(utils.isEqual(r,ErrorType.COMMAND_SUCCESS.code))o.push(a);else{let e=common.getError(r);utils.extend(a,e),i.push(a)}}),{index:e,success:o,fail:i}}function getMentionMessages(e,t,{currentUser:n}){let s=$root.lookup("codec.QryMentionMsgsResp"),{mentionMsgs:o,isFinished:i}=s.decode(t),r=utils.map(o,e=>tools$1.msgFormat(e,{currentUser:n}));return{index:e,msgs:r,isFinished:i}}function getFileToken(e,t){let n=$root.lookup("codec.QryUploadTokenResp"),s=n.decode(t),{ossType:o}=s,i={type:o};if(utils.isEqual(o,UPLOAD_TYPE.QINIU)){let{qiniuCred:e}=s;utils.extend(i,e)}if(utils.isEqual(o,UPLOAD_TYPE.ALI)){let{preSignResp:e}=s;utils.extend(i,e)}if(utils.isEqual(o,UPLOAD_TYPE.S3)||utils.isEqual(o,UPLOAD_TYPE.MINIO)){let{preSignResp:e}=s;utils.extend(i,e)}return{index:e,cred:i}}function getUserInfo(e,t){let n=$root.lookup("codec.UserInfo"),s=n.decode(t);return{index:e,user:s}}function getAllDisturb(e,t){let n=$root.lookup("codec.UserUndisturb"),s=n.decode(t),{timezone:o,rules:i=[]}=s,r=s.switch?UNDISTURB_TYPE.UNDISTURB:UNDISTURB_TYPE.DISTURB,a=[];return utils.forEach(i,({start:e,end:t})=>{a.push({start:e,end:t})}),{index:e,type:r,timezone:o,times:a}}function getMessageReadDetails(e,t){let n=$root.lookup("codec.QryReadDetailResp"),{readCount:s,memberCount:o,readMembers:i,unreadMembers:r}=n.decode(t);return i=utils.map(i,e=>({member:common.formatUser(e.member),readTime:e.time})),r=utils.map(r,e=>({member:common.formatUser(e.member),readTime:e.time})),{index:e,readCount:s,unreadCount:o-s,readMembers:i,unreadMembers:r}}function getTotalUnread(e,t){let n=$root.lookup("codec.QryTotalUnreadCountResp"),{totalCount:s}=n.decode(t);return{index:e,count:s}}function getConversationHandler(e,t,{currentUser:n}){let s=$root.lookup("codec.Conversation"),o=s.decode(t),i=tools$1.formatConversations([o],{currentUser:n}),r=i[0]||{};return{conversation:r,index:e}}function getConversationsHandler(e,t,n={}){let s=$root.lookup("codec.QryConversationsResp"),{conversations:o,isFinished:i}=s.decode(t);return o=tools$1.formatConversations(o,n),{conversations:o,isFinished:i,index:e}}function getChatroomAttrsHandler(e,t,{targetId:n}){let s=$root.lookup("codec.SyncChatroomAttResp"),o=s.decode(t),{atts:i}=o;return i=utils.map(i,e=>{let{key:t,value:n,attTime:s,userId:o,optType:i}=e;return{key:t,value:n,updateTime:s,userId:o,type:i}}),{attrs:i,chatroomId:n,index:e}}function getConversationTags(e,t){let n=$root.lookup("codec.UserConverTags"),s=n.decode(t),{tags:o}=s;return o=utils.map(o,e=>{let{tag:t,tagName:n,tagType:s}=e;return{id:t,name:n,type:s}}),{tags:o,index:e}}function getChatroomMsgsHandler(e,t,{currentUser:n}){let s=$root.lookup("codec.SyncChatroomMsgResp"),o=s.decode(t),{msgs:i}=o,r=utils.map(i,e=>tools$1.msgFormat(e,{currentUser:n}));return{messages:r,index:e}}function getMessage(e,t,{currentUser:n}){let s=$root.lookup("codec.DownMsg"),o=s.decode(t);if(!o.msgId)return{index:e,msg:{}};let i=tools$1.msgFormat(o,{currentUser:n});return{index:e,msg:i}}function getMessagesHandler(e,t,{currentUser:n}){let s=$root.lookup("codec.DownMsgSet"),o=s.decode(t),{isFinished:i,msgs:r,targetUserInfo:a,groupInfo:d}=o,p=utils.map(r,e=>(a&&utils.extend(e,{targetUserInfo:a}),d&&utils.extend(e,{groupInfo:d}),tools$1.msgFormat(e,{currentUser:n})));return{isFinished:i,messages:p,index:e}}function getRTCRoom(e,t){let n=$root.lookup("codec.RtcRoom"),s=n.decode(t);return{room:tools$1.formatRTCRoom(s)}}function getPublishMsgBody(e,{currentUser:t}){let n=$root.lookup("codec.PublishMsgBody"),s=n.decode(e),{targetId:o,data:i,topic:r,timestamp:a,index:d}=s,p={},c=SIGNAL_NAME.CMD_RECEIVED;// 收到 NTF 直接返回,通过 sync_msgs 同步消息
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
var m=JTextEncoder$1.encoder(o),c=await d.onEncrypt({buffer:m,name:E.name,conversationType:E.conversationType,conversationId:E.conversationId});E={msgIndex:e,msgTime:t,msgId:n,msgContent:c,msgType:E.name,type:E.conversationType,senderId:s.id// targetUserInfo: referTarget
|
|
92
|
+
}}var p=JTextEncoder$1.encoder(n);p=await d.onEncrypt({buffer:p,name:t,conversationType:i,conversationId:o});let S={msgType:t,mentionInfo:C,flags:r,referMsg:E,mergedMsgs:l,clientUid:g,msgContent:p};if(u){let{text:e,title:t}=u,n={title:t,pushText:e};n=utils.clone(n),utils.isEmpty(n)||(S=utils.extend(S,{pushData:n}))}utils.isNumber(T)&&(S.lifeTime=T),utils.isNumber(y)&&(S.lifeTimeAfterRead=y);let O=_.create(S);a=_.encode(O).finish()}let l=$root.lookup("codec.PublishMsgBody"),E=l.create({index:n,targetId:o,topic:r,data:a}),u=l.encode(E).finish();return{buffer:u}}function getPublishAckBody({data:e}){let{msgIndex:t,ackIndex:n}=e,s=$root.lookup("codec.PublishAckMsgBody"),o=s.create({index:n,msgIndex:t,code:0}),i=s.encode(o).finish();return{buffer:i}}async function getQueryBody({data:e,callback:t,index:n},s){let{targetId:o,userId:i,topic:r}=e,a=[],{msgEncryptHook:d}=s.getConfig();if(d=d||{},utils.isAsyncFunction(d.onEncrypt)||utils.isFunction(d.onEncrypt)||(d={onEncrypt:async e=>e.buffer}),utils.isEqual(r,COMMAND_TOPICS.HISTORY_MESSAGES)){let{conversationType:t,time:n,count:s,order:i,names:r}=e,d=$root.lookup("codec.QryHisMsgsReq"),m=d.create({converId:o,type:t,startTime:n,count:s,order:i,msgTypes:r});a=d.encode(m).finish()}if(utils.isEqual(r,COMMAND_TOPICS.CONVERSATIONS)){let{count:t,time:n,order:s,conversationType:r,tag:d}=e;o=i;let m=$root.lookup("codec.QryConversationsReq"),c={startTime:n,count:t,order:s};utils.isUndefined(r)||utils.extend(c,{channelType:r}),d&&utils.extend(c,{tag:d});let p=m.create(c);a=m.encode(p).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_CONVERSATION,r)){let{conversation:t,userId:n}=e,{conversationId:s,conversationType:i}=t,r=$root.lookup("codec.QryConverReq"),d=r.create({channelType:i,targetId:s});o=n,a=r.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.SYNC_CONVERSATIONS,r)){let{count:t,syncTime:n}=e;o=i;let s=$root.lookup("codec.SyncConversationsReq"),r=s.create({startTime:n,count:t});a=s.encode(r).finish()}if(utils.isEqual(r,COMMAND_TOPICS.SYNC_MESSAGES)){let{syncTime:t,containsSendBox:n,sendBoxSyncTime:s}=e;o=i;let r=$root.lookup("codec.SyncMsgReq"),d=r.create({syncTime:t,containsSendBox:n,sendBoxSyncTime:s});a=r.encode(d).finish()}if(utils.isEqual(r,COMMAND_TOPICS.SYNC_CHATROOM_MESSAGES)){let{syncTime:t,chatroomId:n,count:s}=e,i=$root.lookup("codec.SyncChatroomReq"),r=i.create({syncTime:t,chatroomId:n,count:s});o=n,a=i.encode(r).finish()}if(utils.isEqual(r,COMMAND_TOPICS.SYNC_CHATROOM_ATTRS)){let{syncTime:t,chatroomId:n}=e,s=$root.lookup("codec.SyncChatroomReq"),i=s.create({syncTime:t,chatroomId:n});o=n,a=s.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_MSG_BY_IDS,r)){let{conversationId:t,conversationType:n,messageIds:s,userId:i}=e,r=$root.lookup("codec.QryHisMsgByIdsReq"),d=r.create({channelType:n,targetId:t,msgIds:s});o=i,a=r.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_UNREAD_TOTLAL_CONVERSATION,r)){o=i;let t=$root.lookup("codec.QryTotalUnreadCountReq"),{conversationTypes:s=[],ignoreConversations:r=[],tag:n}=e,d=[];utils.forEach(r,({conversationId:e,conversationType:t})=>{d.push({targetId:e,channelType:t})});let m={channelTypes:s,ignoreConvers:d};n&&utils.extend(m,{tag:n});let c=t.create({filter:m});a=t.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.CLEAR_UNREAD_TOTLAL_CONVERSATION,r)){o=i;let e=$root.lookup("codec.QryTotalUnreadCountReq"),t=e.create({});a=e.encode(t).finish()}if(utils.isEqual(COMMAND_TOPICS.READ_MESSAGE,r)){let{messages:t}=e;t=utils.isArray(t)?t:[t];let n=CONVERATION_TYPE.PRIVATE,s="",i=utils.map(t,e=>{let{conversationType:t,conversationId:i,sentTime:r,messageId:a,unreadIndex:d}=e;return n=t,s=i,o=i,{msgId:a,msgTime:r,msgIndex:d}}),r=$root.lookup("codec.MarkReadReq"),d=r.create({channelType:n,targetId:s,msgs:i});a=r.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_READ_MESSAGE_DETAIL,r)){let{message:t}=e,{conversationType:n,conversationId:s,messageId:i}=t,r=$root.lookup("codec.QryReadDetailReq"),d=r.create({channelType:n,targetId:s,msgId:i});o=i,a=r.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_MENTION_MSGS,r)){let{conversationId:t,conversationType:n,count:s,order:i,messageIndex:r,userId:d}=e,m=$root.lookup("codec.QryMentionMsgsReq"),c=m.create({targetId:t,channelType:n,count:s,order:i,startIndex:r});o=d,a=m.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_FILE_TOKEN,r)){o=i;let{type:t,ext:n}=e,s=$root.lookup("codec.QryUploadTokenReq"),r=s.create({fileType:t,ext:n});a=s.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_USER_INFO,r)){o=i;let e=$root.lookup("codec.UserIdReq"),t=e.create({userId:i});a=e.encode(t).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_MERGE_MSGS,r)){let{messageId:t,time:n,count:s,order:i}=e;o=t;let r=$root.lookup("codec.QryMergedMsgsReq"),d=r.create({startTime:n,count:s,order:i});a=r.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_FIRST_UNREAD_MSG,r)){let{conversationType:t,conversationId:n}=e;o=n;let s=$root.lookup("codec.QryFirstUnreadMsgReq"),i=s.create({channelType:t,targetId:n});a=s.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.QUERY_TOP_CONVERSATIONS,r)){let{time:t,userId:n,sortType:s}=e,i=$root.lookup("codec.QryTopConversReq"),r=i.create({startTime:t,sortType:s});o=n,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.RECALL,r)){let{messageId:t,sentTime:n,exts:s,conversationType:i,conversationId:r}=e,d=[];utils.forEach(s,(e,t)=>{d.push({key:t,value:e})});let m=$root.lookup("codec.RecallMsgReq"),c=m.create({targetId:r,channelType:i,msgId:t,msgTime:n,exts:d});o=r,a=m.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.CLEAR_UNREAD,r)){let{conversations:t,userId:n}=e;t=utils.isArray(t)?t:[t];let s=$root.lookup("codec.ClearUnreadReq"),i=utils.map(t,({conversationType:e,conversationId:t,unreadIndex:n})=>({channelType:e,targetId:t,latestReadIndex:n})),r=s.create({conversations:i});o=n,a=s.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.SET_ALL_DISTURB,r)){let{userId:t,times:n,timezone:s,type:i}=e,r=$root.lookup("codec.UserUndisturb"),d=utils.isEqual(UNDISTURB_TYPE.DISTURB,i),m=r.create({switch:d,timezone:s,rules:n});o=t,a=r.encode(m).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_ALL_DISTURB,r)){let{userId:t}=e,n=$root.lookup("codec.Nil"),s=n.create({});o=t,a=n.encode(s).finish()}if(utils.isEqual(COMMAND_TOPICS.MARK_CONVERSATION_UNREAD,r)){let{userId:t,conversations:n}=e;n=utils.map(n,e=>{let{conversationId:t,conversationType:n,unreadTag:s}=e;return{channelType:n,targetId:t,unreadTag:s}});let s=$root.lookup("codec.ConversationsReq"),i=s.create({conversations:n});o=t,a=s.encode(i).finish()}if(utils.isInclude([COMMAND_TOPICS.SET_CHATROOM_ATTRIBUTES,COMMAND_TOPICS.REMOVE_CHATROOM_ATTRIBUTES],r)){let{chatroom:{id:t,attributes:n,options:s}}=e,{notify:i}=s,r=$root.lookup("codec.ChatAttBatchReq"),d={atts:n};utils.isUndefined(i)||utils.extend(d,{msg:JTextEncoder$1.encoder(i)});let m=r.create(d);o=t,a=r.encode(m).finish()}if(utils.isEqual(COMMAND_TOPICS.REMOVE_CONVERSATION,r)){let{conversations:t,userId:n}=e;t=utils.isArray(t)?t:[t];let s=utils.map(t,({conversationType:e,conversationId:t})=>({channelType:e,targetId:t})),i=$root.lookup("codec.DelConversationReq"),r=i.create({conversations:s});o=n,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.UPDATE_MESSAGE,r)){let{conversationId:t,conversationType:n,messageId:s,content:i,sentTime:r,msgName:m}=e,c=$root.lookup("codec.ModifyMsgReq");i=utils.toJSON(i);let p=JTextEncoder$1.encoder(i);p=d.onEncrypt(p);let l=c.create({channelType:n,targetId:t,msgId:s,msgTime:r,msgType:m,msgContent:p});o=t,a=c.encode(l).finish()}if(utils.isEqual(COMMAND_TOPICS.CLEAR_MESSAGE,r)){let{conversationId:t,conversationType:n,time:s}=e,i=$root.lookup("codec.CleanHisMsgReq"),r=i.create({channelType:n,targetId:t,cleanMsgTime:s});o=t,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.JOIN_CHATROOM,r)){let{chatroom:{id:t,isAutoCreate:n}}=e,s=$root.lookup("codec.ChatRoomReq"),i=s.create({chatId:t,isAutoCreate:n});o=t,a=s.encode(i).finish()}if(utils.isEqual(COMMAND_TOPICS.QUIT_CHATROOM,r)){let{chatroom:{id:t}}=e,n=$root.lookup("codec.ChatRoomReq"),s=n.create({chatId:t});o=t,a=n.encode(s).finish()}if(utils.isEqual(COMMAND_TOPICS.INSERT_CONVERSATION,r)){let{conversation:t,userId:n}=e,{conversationId:s,conversationType:i}=t,r=$root.lookup("codec.Conversation"),d=r.create({channelType:i,targetId:s});o=n,a=r.encode(d).finish()}if(utils.isEqual(COMMAND_TOPICS.MUTE_CONVERSATION,r)){let{userId:t,conversations:n}=e,s=utils.isArray(n)?n:[n];s=utils.map(s,e=>{let{conversationType:t,conversationId:n,undisturbType:s}=e;return{targetId:n,channelType:t,undisturbType:s}});let i=$root.lookup("codec.UndisturbConversReq"),r=i.create({userId:t,items:s});o=t,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.TOP_CONVERSATION,r)){let{userId:t,conversations:n}=e,s=utils.isArray(n)?n:[n];s=utils.map(s,e=>{let{conversationType:t,conversationId:n,isTop:s}=e;return{targetId:n,channelType:t,isTop:s}});let i=$root.lookup("codec.ConversationsReq"),r=i.create({conversations:s});o=t,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.REMOVE_MESSAGE,r)){let{userId:t,messages:n}=e,s=[],i="",r=CONVERATION_TYPE.PRIVATE;utils.forEach(n,e=>{let{conversationType:t,conversationId:n,messageIndex:o,sentTime:a,messageId:d}=e;i=n,r=t,s.push({msgId:d,msgIndex:o,msgTime:a})});let d=$root.lookup("codec.DelHisMsgsReq"),m=d.create({channelType:r,targetId:i,msgs:s});o=i,a=d.encode(m).finish()}if(utils.isInclude([COMMAND_TOPICS.ADD_MSG_REACTION,COMMAND_TOPICS.REMOVE_MSG_REACTION],r)){let{messageId:t,reactionId:n,userId:s,conversationId:i,conversationType:r}=e,d=$root.lookup("codec.MsgExt"),m=d.create({channelType:r,targetId:i,msgId:t,ext:{key:n,value:s}});o=t,a=d.encode(m).finish()}if(utils.isInclude([COMMAND_TOPICS.CONVERSATION_TAG_ADD,COMMAND_TOPICS.CONVERSATION_TAG_REMOVE],r)){let{userId:t,tag:n}=e,{name:i="",id:s,conversations:r=[]}=n,d=utils.map(r,({conversationId:e,conversationType:t})=>({targetId:e,channelType:t})),m=$root.lookup("codec.TagConvers"),c=m.create({tag:s,tagName:i,convers:d});o=t,a=m.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.TAG_REMOVE,r)){let{userId:t,tag:n}=e,s=utils.isArray(n)?n:[n];s=utils.map(s,e=>({tag:e.id}));let i=$root.lookup("codec.UserConverTags"),r=i.create({tags:s});o=t,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.CONVERSATION_TAG_QUERY,r)){let{userId:t}=e,n=$root.lookup("codec.Nil"),s=n.create({});o=t,a=n.encode(s).finish()}if(utils.isInclude([COMMAND_TOPICS.RTC_CREATE_ROOM,COMMAND_TOPICS.RTC_JOIN_ROOM],r)){let{room:t,user:n}=e,{id:s,type:i,option:d={}}=t,{cameraEnable:m=!1,micEnable:c=!1}=d,p=$root.lookup("codec.RtcRoomReq"),l=p.create({roomId:s,roomType:i,joinMember:{member:n,rtcState:RTC_STATE.NONE,cameraEnable:m,micEnable:c}});o=n.id,utils.isEqual(COMMAND_TOPICS.RTC_JOIN_ROOM,r)&&(o=t.id),a=p.encode(l).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_QUIT_ROOM,r)){let{room:t}=e,n=$root.lookup("codec.RtcRoomReq"),s=n.create({roomId:t.id,roomType:t.type});o=t.id,a=n.encode(s).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_QRY_ROOM,r)){let{room:t}=e,n=$root.lookup("codec.Nil"),s=n.create({});o=t.id,a=n.encode(s).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_PING,r)){let{room:t}=e,n=$root.lookup("codec.Nil"),s=n.create({});o=t.id,a=n.encode(s).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_INVITE,r)){let{roomId:t,roomType:n,memberIds:s,channel:i,user:r,mediaType:d,ext:m}=e,c=$root.lookup("codec.RtcInviteReq"),p=c.create({roomId:t,roomType:n,targetIds:s,rtcChannel:i,rtcMediaType:d,ext:m||""});o=t,a=c.encode(p).finish()}if(utils.isEqual(COMMAND_TOPICS.RTC_UPDATE_STATE,r)){let{memberId:t,state:n,roomId:s}=e,i=$root.lookup("codec.RtcMember"),r=i.create({member:{userId:t},rtcState:n});o=s,a=i.encode(r).finish()}if(utils.isInclude([COMMAND_TOPICS.RTC_ACCEPT,COMMAND_TOPICS.RTC_HANGUP],r)){let{roomId:t,user:n}=e,s=$root.lookup("codec.Nil"),i=s.create({});o=t,a=s.encode(i).finish()}if(utils.isInclude([COMMAND_TOPICS.SET_TOP_MSG,COMMAND_TOPICS.DEL_TOP_MSG],r)){let{conversationId:t,conversationType:n,messageId:s,isTop:i,userId:r}=e,d=$root.lookup("codec.SetTopMsgReq"),m=d.create({channelType:n,targetId:t,msgId:s});o=r,a=d.encode(m).finish()}if(utils.isEqual(COMMAND_TOPICS.GET_TOP_MSG,r)){let{conversationId:t,conversationType:n}=e,s=$root.lookup("codec.GetTopMsgReq"),i=s.create({channelType:n,targetId:t});o=t,a=s.encode(i).finish()}if(utils.isInclude([COMMAND_TOPICS.MSG_ADD_FAVORITE,COMMAND_TOPICS.MSG_REMOVE_FAVORITE],r)){let{messages:t,userId:n}=e,s=$root.lookup("codec.FavoriteMsgIds"),i=utils.map(t,e=>{let{conversationId:t,conversationType:n,senderId:s,messageId:o}=e;return{channelType:n,receiverId:t,senderId:s,msgId:o}}),r=s.create({items:i});o=n,a=s.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.MSG_QRY_FAVORITE,r)){let{limit:t,offset:n,userId:s}=e,i=$root.lookup("codec.QryFavoriteMsgsReq"),r=i.create({limit:t,offset:n});o=s,a=i.encode(r).finish()}if(utils.isEqual(COMMAND_TOPICS.UPLOAD_PUSH_TOKEN,r)){let{deviceId:t,pushToken:n,platform:s,packageName:i,pushChannel:r,userId:d}=e,m=$root.lookup("codec.RegPushTokenReq"),c=m.create({deviceId:t,pushToken:n,platform:s,packageName:i,pushChannel:r});o=d,a=m.encode(c).finish()}if(utils.isEqual(COMMAND_TOPICS.SWITCH_PUSH,r)){let{isOpen:t}=e,n=$root.lookup("codec.PushSwitch"),s=n.create({switch:t});o=i,a=n.encode(s).finish()}if(utils.isEqual(COMMAND_TOPICS.BATCH_TRANSLATE,r)){let{userId:t,content:n,sourceLang:s,targetLang:i}=e,r=$root.lookup("codec.TransReq"),d=[];utils.forEach(n,(e,t)=>{d.push({key:t,content:e})}),s=utils.isEqual(s,"auto")?"":s;let m=r.create({items:d,sourceLang:s,targetLang:i});o=t,a=r.encode(m).finish()}let m=$root.lookup("codec.QueryMsgBody"),c=m.create({index:n,topic:r,targetId:o,data:a}),p=m.encode(c).finish();return{buffer:p}}function getPingBody(){return{}}function Encoder(e,t){let n=$root.lookup("codec.ImWebsocketMsg"),s=async(s,o)=>{let i={},r={},a={version:1,cmd:s,qos:QOS.YES},{counter:d,callback:m,index:c}=o;switch(s){case SIGNAL_CMD.CONNECT:i=getConnectBody(o),r={counter:d};break;case SIGNAL_CMD.PUBLISH:i=await getPublishBody(o,t),r={callback:m,data:o.data,counter:d};break;case SIGNAL_CMD.PUBLISH_ACK:i=getPublishAckBody(o),r={callback:m,data:o.data,counter:d};break;case SIGNAL_CMD.QUERY:i=await getQueryBody(o,t);let{targetId:e,userId:n,topic:s}=o.data;r={callback:m,index:c,topic:s,targetId:e,counter:d};break;case SIGNAL_CMD.PING:i=getPingBody(),r={counter:d}}if(e.set(c,r),i.buffer){let t=e.get(STORAGE.CRYPTO_RANDOM),n=common.encrypto(i.buffer,t);utils.extend(a,{payload:n})}let p=n.create(a),l=n.encode(p).finish();return l};return{encode:s}}function InfoCacher(){let e=Cache(),t=(t,n={})=>{let s=e.get(t);utils.isEmpty(s)&&(s={updatedTime:0}),n.updatedTime>s.updatedTime&&e.set(t,n)},n=t=>{let n=e.get(t)||{};return n},s=()=>{e.clear()};return{set:t,get:n,clear:s}}let $groupCacher=InfoCacher();var GroupCacher={...$groupCacher};let $userCacher=InfoCacher();var UserCacher={...$userCacher};async function msgFormat(e,{currentUser:t,io:n}){let{msgItems:s,converTags:o,undisturbType:i,msgExtSet:r,senderId:a,unreadIndex:d,memberCount:m,referMsg:c,readCount:p,msgId:l,msgTime:E,msgType:u,msgContent:g,type:T,targetId:y,mentionInfo:_,isSend:C,msgIndex:S,isRead:O,flags:f,targetUserInfo:I,groupInfo:R,grpMemberInfo:A,destroyTime:N,lifeTimeAfterRead:M,readTime:v}=e,h="";if(g&&0<g.length){let{msgEncryptHook:e}=n.getConfig();e=e||{},utils.isAsyncFunction(e.onDecrypt)||utils.isFunction(e.onDecrypt)||(e={onDecrypt:async e=>e.buffer});// 内部信令消息忽略调用解密方法
|
|
93
|
+
var D=[MESSAGE_TYPE.RECALL,MESSAGE_TYPE.RECALL_INFO,MESSAGE_TYPE.READ_MSG,MESSAGE_TYPE.READ_GROUP_MSG,// MESSAGE_TYPE.MODIFY,
|
|
94
|
+
MESSAGE_TYPE.CLEAR_MSG,MESSAGE_TYPE.CLEAR_UNREAD];h=utils.isInclude(D,u)?g:await e.onDecrypt({buffer:g,name:u,conversationType:T,conversationId:y}),h=JTextEncoder$1.decoder(h),h=utils.parse(h)}// 服务端返回数据有 targetUserInfo 和 groupInfo 为 null 情况,此处补充 targetId,方便本地有缓存时获取信息
|
|
95
|
+
I=I||{userId:a},R=R||{groupId:y};// 默认更新内存数据
|
|
96
|
+
let U=I.userId,b=R.groupId;GroupCacher.set(b,R),UserCacher.set(U,I);let x=common.formatUser(I);// 特性检查,如果没有 name 尝试从内存获取信息
|
|
97
|
+
if(utils.isUndefined(x.name)){let e=UserCacher.get(U);x=utils.isEmpty(e)?{id:U}:e}if(utils.isUndefined(R.groupName)){let e=GroupCacher.get(b);R=utils.isEmpty(e)?{id:b}:e}if(_){let{targetUsers:e,mentionType:t}=_,n=utils.map(e,e=>(e=common.formatUser(e),e));_={mentionType:t,members:n}}let G={};if(c){let e=c.msgContent||"";0!=e.length&&(e=JTextEncoder$1.decoder(e),G.content=utils.parse(e)),c.targetUserInfo=common.formatUser(c.targetUserInfo||{}),utils.extend(G,{name:c.msgType,messageId:c.messageIndex,messageIndex:c.msgIndex,sentTime:c.msgTime,sender:c.targetUserInfo})}let k=common.formatter.toMsg(f),q=t,L={};r&&(r=utils.map(r,e=>{let{key:t,value:n,timestamp:s,userInfo:o}=e,i=common.formatUser(o);return{key:t,value:n,user:i,timestamp:s}}),L=utils.groupBy(r,["key"])),o=o||[];let P=utils.map(o,e=>{let{tag:t,tagName:n,tagType:s}=e;return{id:t,name:n,type:s}}),V={};utils.isEqual(CONVERATION_TYPE.GROUP,T)&&(V=common.formatGroupMember(A));let F={conversationType:T,conversationId:y,conversationTitle:"",conversationPortrait:"",conversationExts:{},sender:utils.clone(x),groupMember:V,messageId:l,tid:l,sentTime:E,name:u,isSender:utils.isEqual(q.id,a),messageIndex:S,mentionInfo:_,isRead:!!O,readTime:v||0,isUpdated:k.isUpdated,isMuted:k.isMute,isMass:k.isMass,isStatus:k.isStatus,isStreamMsg:k.isStream,referMsg:G,sentState:MESSAGE_SENT_STATE.SUCCESS,undisturbType:i||0,unreadIndex:d||0,flags:f,reactions:L,tags:P,destroyTime:N||0};utils.isNumber(M)&&(F.lifeTimeAfterRead=M),F.isSender&&utils.extend(F.sender,q);let H=[];if(F.isStreamMsg&&(H=formatStreams(s)),utils.extend(F,{streams:H}),utils.isEqual(T,CONVERATION_TYPE.GROUP)){let{groupName:e,groupPortrait:t,extFields:n,groupId:s,updatedTime:o}=R||{extFields:{}};n=utils.toObject(n),utils.extend(F,{conversationTitle:e||"",conversationPortrait:t||"",conversationExts:n,conversationUpdatedTime:R.updatedTime||0,unreadCount:m-p,readCount:p})}if(utils.isEqual(T,CONVERATION_TYPE.PRIVATE)&&utils.extend(F,{conversationTitle:x.name,conversationPortrait:x.portrait,conversationExts:x.exts,conversationUpdatedTime:x.updatedTime,conversationUserType:x.userType||0}),utils.isInclude([MESSAGE_TYPE.RECALL_INFO,MESSAGE_TYPE.RECALL],u)&&(h=utils.rename(h,{msg_id:"messageId",msg_time:"sentTime"})),utils.isEqual(MESSAGE_TYPE.MODIFY,u)&&(h=utils.rename(h,{msg_type:"name",msg_content:"content",msg_id:"messageId",msg_seq:"messageIndex",msg_time:"sentTime"})),utils.isEqual(MESSAGE_TYPE.READ_MSG,u)){delete h.index_scopes;let{msgs:e}=h;e=utils.map(e,({msg_id:e})=>({messageId:e})),utils.extend(h,{msgs:e})}if(utils.isEqual(MESSAGE_TYPE.READ_GROUP_MSG,u)){let{msgs:e}=h;e=utils.map(e,({msg_id:e,member_count:t,read_count:n})=>({messageId:e,unreadCount:t-n,readCount:n})),utils.extend(h,{msgs:e})}if(utils.isEqual(MESSAGE_TYPE.CLEAR_UNREAD,u)){let{conversations:e}=h;e=utils.map(e,({channel_type:e,target_id:t,latest_read_index:n})=>({conversationType:e,conversationId:t,unreadIndex:n})),utils.extend(h,{conversations:e})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_UNDISTURB,u)){let{conversations:e}=h;e=utils.map(e,e=>({conversationId:e.target_id,conversationType:e.channel_type,undisturbType:e.undisturb_type})),utils.extend(h,{conversations:e})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_TOPCONVERS,u)){let{conversations:e}=h;e=utils.map(e,e=>({conversationId:e.target_id,conversationType:e.channel_type,isTop:!!e.is_top})),utils.extend(h,{conversations:e})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_REMOVE_CONVERS,u)){let{conversations:t}=h;t=utils.map(t,t=>({conversationId:t.target_id,conversationType:t.channel_type,time:e.msgTime})),utils.extend(h,{conversations:t})}if(utils.isEqual(MESSAGE_TYPE.COMMAND_DELETE_MSGS,u)){let t=utils.map(h.msgs,t=>({tid:t.msg_id,messageId:t.msg_id,conversationId:e.targetId,conversationType:h.channel_type}));h={conversationId:e.targetId,conversationType:h.channel_type,messages:t}}if(utils.isEqual(MESSAGE_TYPE.CLEAR_MSG,u)&&(h={cleanTime:h.clean_time,conversationType:h.channel_type,conversationId:e.targetId,senderId:h.sender_id}),utils.isEqual(MESSAGE_TYPE.COMMAND_ADD_CONVER,u)){let e=h.conversation,{target_id:t,channel_type:n,sort_time:s,sync_time:o,target_user_info:i={}}=e,{nickname:r,user_portrait:a,ext_fields:d,updated_time:m}=i;h={conversationId:t,conversationType:n,conversationTitle:r,conversationPortrait:a,conversationExts:d,latestMessage:{conversationId:t,conversationType:n},unreadCount:0,updatedTime:m,sortTime:s,syncTime:o}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_CLEAR_TOTALUNREAD,u)&&(h={clearTime:h.clear_time}),utils.isEqual(MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD,u)){let{tag:e,tag_name:t,convers:n}=h;n=n||[],n=utils.map(n,e=>({conversationId:e.target_id,conversationType:e.channel_type})),h={id:e,name:t,conversations:n}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_REMOVE,u)){let{tags:e}=h;e=utils.map(e,e=>({id:e.tag})),h={tags:e}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_REMOVE_CONVERS_FROM_TAG,u)){let{tag:e,convers:t}=h;t=utils.map(t,e=>({conversationId:e.target_id,conversationType:e.channel_type})),h={id:e,conversations:t}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_MARK_UNREAD,u)){let e=h.conversations,t=utils.map(e,e=>{let{unread_tag:t,channel_type:n,target_id:s}=e;return{conversationId:s,conversationType:n,unreadTag:t}});h={conversations:t}}if(utils.isEqual(MESSAGE_TYPE.COMMAND_MSG_EXSET,u)){let{channel_type:e,msg_id:t,exts:n}=h,s=utils.map(n,e=>{let{is_del:t,timestamp:n,key:s,value:o,user:i}=e;s=unescape(s);let r={};return i&&(r={id:i.user_id,name:i.nickname,portrait:i.user_portrait}),{isRemove:!!t,key:s,value:o,timestamp:n,user:r}});h={conversationId:y,conversationType:T,messageId:t,reactions:s}}return utils.extend(F,{content:h}),F}async function formatConversations$1(e,t={}){return await utils.Defer.all(e.map(async e=>{let{msg:n,targetId:s,unreadCount:o,sortTime:i,topUpdatedTime:r,targetUserInfo:a,groupInfo:d,syncTime:m,undisturbType:c,mentions:p,channelType:l,latestReadIndex:E,latestUnreadIndex:u,isTop:g,unreadTag:T,converTags:y}=e;n||(n={msgContent:[]});let{topic:_,currentUser:C,io:S}=t;if(utils.extend(n,{targetId:s}),o=o||0,T=T||0,p=p||{},!utils.isEmpty(p)){let{isMentioned:e,senders:t,mentionMsgs:n}=p;t=utils.map(t,e=>common.formatUser(e)),n=utils.map(n,e=>{let{senderId:t,msgId:n,msgTime:s,mentionType:o}=e;return{senderId:t,messageId:n,sentTime:s,mentionType:o}}),p={isMentioned:e,senders:t,msgs:n,count:n.length}}let O={};if(utils.isEqual(n.msgContent.length,0)||(O=await msgFormat(n,{currentUser:C,io:S})),utils.isEqual(l,CONVERATION_TYPE.GROUP)){d=d||{extFields:{}};let{groupName:e,groupPortrait:t,extFields:n,groupId:s,updatedTime:o}=d;n=utils.toObject(n),utils.extend(O,{conversationTitle:e||"",conversationPortrait:t||"",conversationExts:n,conversationUpdatedTime:o||0}),GroupCacher.set(s,d)}if(utils.isEqual(l,CONVERATION_TYPE.PRIVATE)){a=a||{extFields:{}};let{userPortrait:e,nickname:t,extFields:n,userId:s,updatedTime:o,userType:i}=a;n=utils.toObject(n),utils.extend(O,{conversationTitle:t||"",conversationPortrait:e||"",conversationExts:n,conversationUpdatedTime:o||0,conversationUserType:i||0}),UserCacher.set(s,a)}let{conversationTitle:f,conversationPortrait:I,conversationExts:R,conversationUpdatedTime:A,conversationUserType:N}=O;y=y||[];let M=utils.map(y,e=>{let{tag:t,tagName:n,tagType:s}=e;return{id:t,name:n,type:s}});return{conversationType:l,conversationId:s,unreadCount:o,sortTime:i,topUpdatedTime:r||0,latestMessage:O,conversationTitle:f,conversationPortrait:I,conversationUpdatedTime:A,conversationUserType:N,conversationExts:R,mentions:p,syncTime:m,undisturbType:c||0,latestReadIndex:E,latestUnreadIndex:u,unreadTag:T,tags:M,isTop:!!g}}))}function formatRTCRoom(e){let{roomId:t,roomType:n,members:s}=e;return s=utils.map(s,e=>{let{member:t,rtcState:n,cameraEnable:s,micEnable:o,callTime:i,connectTime:r,hangupTime:a,inviter:d}=e;return t=common.formatUser(t),d=common.formatUser(d),{member:t,rtcState:n,cameraEnable:s,micEnable:o,callTime:i,connectTime:r,hangupTime:a,inviter:d}}),{room:{id:t,type:n},members:s}}function formatStreams(e){let t=utils.map(e,e=>formatStream(e));return t}function formatStream(e){let{event:t,subSeq:n,partialContent:s}=e,o="";return s&&0<s.length&&(o=JTextEncoder$1.decoder(s),o=utils.parse(o)),{event:t,seq:n,content:o}}var tools$1={msgFormat,formatConversations:formatConversations$1,formatRTCRoom,formatStreams};async function getQueryAckBody(e,{cache:t,currentUser:n,io:s}){let o=$root.lookup("codec.QueryAckMsgBody"),i=o.decode(e),{index:r,data:a,code:d,timestamp:m}=i,{topic:c,targetId:p}=t.get(r),l={};return utils.isInclude([COMMAND_TOPICS.HISTORY_MESSAGES,COMMAND_TOPICS.SYNC_MESSAGES,COMMAND_TOPICS.GET_MSG_BY_IDS,COMMAND_TOPICS.GET_MERGE_MSGS],c)&&(l=await getMessagesHandler(r,a,{currentUser:n,io:s})),utils.isEqual(c,COMMAND_TOPICS.SYNC_CHATROOM_MESSAGES)&&(l=await getChatroomMsgsHandler(r,a,{currentUser:n,io:s})),utils.isEqual(c,COMMAND_TOPICS.SYNC_CHATROOM_ATTRS)&&(l=getChatroomAttrsHandler(r,a,{targetId:p})),utils.isInclude([COMMAND_TOPICS.CONVERSATIONS,COMMAND_TOPICS.SYNC_CONVERSATIONS,COMMAND_TOPICS.QUERY_TOP_CONVERSATIONS],c)&&(l=await getConversationsHandler(r,a,{topic:c,currentUser:n,io:s})),utils.isEqual(c,COMMAND_TOPICS.GET_CONVERSATION)&&(l=await getConversationHandler(r,a,{currentUser:n})),utils.isEqual(c,COMMAND_TOPICS.GET_UNREAD_TOTLAL_CONVERSATION)&&(l=getTotalUnread(r,a)),utils.isEqual(c,COMMAND_TOPICS.GET_READ_MESSAGE_DETAIL)&&(l=getMessageReadDetails(r,a)),utils.isEqual(c,COMMAND_TOPICS.GET_MENTION_MSGS)&&(l=await getMentionMessages(r,a,{currentUser:n,io:s})),utils.isEqual(c,COMMAND_TOPICS.GET_FILE_TOKEN)&&(l=getFileToken(r,a)),utils.isEqual(c,COMMAND_TOPICS.GET_USER_INFO)&&(l=getUserInfo(r,a)),utils.isEqual(c,COMMAND_TOPICS.GET_ALL_DISTURB)&&(l=getAllDisturb(r,a)),utils.isInclude([COMMAND_TOPICS.REMOVE_CHATROOM_ATTRIBUTES,COMMAND_TOPICS.SET_CHATROOM_ATTRIBUTES],c)&&(l=getChatroomSetAttrs(r,a)),utils.isEqual(c,COMMAND_TOPICS.GET_FIRST_UNREAD_MSG)&&(l=await getMessage(r,a,{currentUser:n,io:s})),utils.isEqual(c,COMMAND_TOPICS.CONVERSATION_TAG_QUERY)&&(l=getConversationTags(r,a)),utils.isEqual(c,COMMAND_TOPICS.BATCH_TRANSLATE)&&(l=getBatchTranslate(r,a)),utils.isEqual(c,COMMAND_TOPICS.GET_TOP_MSG)&&(l=await getTopMessage(r,a,{currentUser:n,io:s})),utils.isEqual(c,COMMAND_TOPICS.MSG_QRY_FAVORITE)&&(l=await getFavtoriteMsgs(r,a,{currentUser:n,io:s})),utils.isInclude([COMMAND_TOPICS.RTC_ACCEPT,COMMAND_TOPICS.RTC_INVITE],c)&&(l=getRTCAuth(r,a)),utils.isInclude([COMMAND_TOPICS.RTC_CREATE_ROOM,COMMAND_TOPICS.RTC_JOIN_ROOM,COMMAND_TOPICS.RTC_QRY_ROOM],c)&&(l=getRTCRoom(r,a)),l=utils.extend(l,{code:d,timestamp:m,index:r}),l}async function getFavtoriteMsgs(e,t,{currentUser:n,io:s}){let o=$root.lookup("codec.FavoriteMsgs"),i=o.decode(t),{items:r,offset:a}=i;r||(r=[]);let d=await utils.Defer.all(utils.map(r,async e=>{let{createdTime:t,msg:o}=e,i=await tools$1.msgFormat(o,{currentUser:n,io:s});return{createdTime:t,message:i}}));return{index:e,list:d,offset:a}}async function getTopMessage(e,t,{currentUser:n,io:s}){let o=$root.lookup("codec.TopMsg"),i=o.decode(t),{msg:r,operator:a,createdTime:d=0}=i,m={};return r&&(m=await tools$1.msgFormat(i.msg,{currentUser:n,io:s}),a=common.formatUser(i.operator)),{index:e,message:m,operator:a,createdTime:d}}function getBatchTranslate(e,t){let n=$root.lookup("codec.TransReq"),s=n.decode(t);return{index:e,trans:s}}function getRTCAuth(e,t){let n=$root.lookup("codec.RtcAuth"),s=n.decode(t);return{index:e,auth:s}}function getChatroomSetAttrs(e,t){let n=$root.lookup("codec.ChatAttBatchResp"),{attResps:s}=n.decode(t),o=[],i=[];return utils.forEach(s,e=>{let{code:r=0,key:t,attTime:n,msgTime:s}=e,a={code:r,key:t,updateTime:n,messageTime:s};if(utils.isEqual(r,ErrorType.COMMAND_SUCCESS.code))o.push(a);else{let e=common.getError(r);utils.extend(a,e),i.push(a)}}),{index:e,success:o,fail:i}}async function getMentionMessages(e,t,{currentUser:n,io:s}){let o=$root.lookup("codec.QryMentionMsgsResp"),{mentionMsgs:i,isFinished:r}=o.decode(t),a=await utils.Defer.all(utils.map(i,async e=>await tools$1.msgFormat(e,{currentUser:n,io:s})));return{index:e,msgs:a,isFinished:r}}function getFileToken(e,t){let n=$root.lookup("codec.QryUploadTokenResp"),s=n.decode(t),{ossType:o}=s,i={type:o};if(utils.isEqual(o,UPLOAD_TYPE.QINIU)){let{qiniuCred:e}=s;utils.extend(i,e)}if(utils.isEqual(o,UPLOAD_TYPE.ALI)){let{preSignResp:e}=s;utils.extend(i,e)}if(utils.isEqual(o,UPLOAD_TYPE.S3)||utils.isEqual(o,UPLOAD_TYPE.MINIO)){let{preSignResp:e}=s;utils.extend(i,e)}return{index:e,cred:i}}function getUserInfo(e,t){let n=$root.lookup("codec.UserInfo"),s=n.decode(t);return{index:e,user:s}}function getAllDisturb(e,t){let n=$root.lookup("codec.UserUndisturb"),s=n.decode(t),{timezone:o,rules:i=[]}=s,r=s.switch?UNDISTURB_TYPE.UNDISTURB:UNDISTURB_TYPE.DISTURB,a=[];return utils.forEach(i,({start:e,end:t})=>{a.push({start:e,end:t})}),{index:e,type:r,timezone:o,times:a}}function getMessageReadDetails(e,t){let n=$root.lookup("codec.QryReadDetailResp"),{readCount:s,memberCount:o,readMembers:i,unreadMembers:r}=n.decode(t);return i=utils.map(i,e=>({member:common.formatUser(e.member),readTime:e.time})),r=utils.map(r,e=>({member:common.formatUser(e.member),readTime:e.time})),{index:e,readCount:s,unreadCount:o-s,readMembers:i,unreadMembers:r}}function getTotalUnread(e,t){let n=$root.lookup("codec.QryTotalUnreadCountResp"),{totalCount:s}=n.decode(t);return{index:e,count:s}}async function getConversationHandler(e,t,{currentUser:n}){let s=$root.lookup("codec.Conversation"),o=s.decode(t),i=await tools$1.formatConversations([o],{currentUser:n}),r=i[0]||{};return{conversation:r,index:e}}async function getConversationsHandler(e,t,n={}){let s=$root.lookup("codec.QryConversationsResp"),{conversations:o,isFinished:i}=s.decode(t);return o=await tools$1.formatConversations(o,n),{conversations:o,isFinished:i,index:e}}function getChatroomAttrsHandler(e,t,{targetId:n}){let s=$root.lookup("codec.SyncChatroomAttResp"),o=s.decode(t),{atts:i}=o;return i=utils.map(i,e=>{let{key:t,value:n,attTime:s,userId:o,optType:i}=e;return{key:t,value:n,updateTime:s,userId:o,type:i}}),{attrs:i,chatroomId:n,index:e}}function getConversationTags(e,t){let n=$root.lookup("codec.UserConverTags"),s=n.decode(t),{tags:o}=s;return o=utils.map(o,e=>{let{tag:t,tagName:n,tagType:s}=e;return{id:t,name:n,type:s}}),{tags:o,index:e}}async function getChatroomMsgsHandler(e,t,{currentUser:n,io:s}){let o=$root.lookup("codec.SyncChatroomMsgResp"),i=o.decode(t),{msgs:r}=i,a=await utils.Defer.all(utils.map(r,async e=>await tools$1.msgFormat(e,{currentUser:n,io:s})));return{messages:a,index:e}}async function getMessage(e,t,{currentUser:n,io:s}){let o=$root.lookup("codec.DownMsg"),i=o.decode(t);if(!i.msgId)return{index:e,msg:{}};let r=await tools$1.msgFormat(i,{currentUser:n,io:s});return{index:e,msg:r}}async function getMessagesHandler(e,t,{currentUser:n,io:s}){let o=$root.lookup("codec.DownMsgSet"),i=o.decode(t),{isFinished:r,msgs:a,targetUserInfo:d,groupInfo:m}=i,c=await utils.Defer.all(utils.map(a,async e=>{d&&utils.extend(e,{targetUserInfo:d}),m&&utils.extend(e,{groupInfo:m});let t=await tools$1.msgFormat(e,{currentUser:n,io:s});return t}));return{isFinished:r,messages:c,index:e}}function getRTCRoom(e,t){let n=$root.lookup("codec.RtcRoom"),s=n.decode(t);return{room:tools$1.formatRTCRoom(s)}}async function getPublishMsgBody(e,{currentUser:t,io:n}){let s=$root.lookup("codec.PublishMsgBody"),o=s.decode(e),{targetId:i,data:r,topic:a,timestamp:d,index:m}=o,c={},p=SIGNAL_NAME.CMD_RECEIVED;// 收到 NTF 直接返回,通过 sync_msgs 同步消息
|
|
98
|
+
if(utils.isEqual(a,COMMAND_TOPICS.NTF)){let e=$root.lookup("codec.Notify"),t=e.decode(r),{syncTime:n,type:s,chatroomId:o}=t;c={topic:a,receiveTime:n,type:s,targetId:o},p=SIGNAL_NAME.S_NTF}else if(utils.isEqual(a,COMMAND_TOPICS.MSG)){let e=$root.lookup("codec.DownMsg"),s=e.decode(r);c=await tools$1.msgFormat(s,{currentUser:t,io:n})}else if(utils.isEqual(a,COMMAND_TOPICS.CHATROOM_USER_NTF)){let e=$root.lookup("codec.ChrmEvent"),t=e.decode(r),{chatId:n,eventTime:s,eventType:o,userId:i}=t;c={chatroomId:n,time:s,type:o,userId:i},p=SIGNAL_NAME.S_CHATROOM_USER_NTF}else if(utils.isEqual(a,COMMAND_TOPICS.RTC_INVITE_EVENT)){let e=$root.lookup("codec.RtcInviteEvent"),t=e.decode(r),{room:n,inviteType:s,targetUsers:i=[],user:o}=t;o=common.formatUser(o||{});let a=utils.map(i,e=>common.formatUser(e)),{roomId:d,roomType:m,members:l,ext:E}=n;l=l||[],l=utils.map(l,({member:e,rtcState:t})=>(e=common.formatUser(e),utils.extend(e,{status:t}),e)),c={roomId:d,roomType:m,eventType:s,user:o,members:a,existsMembers:l,ext:E||""},p=SIGNAL_NAME.S_RTC_INVITE_NTF}else if(utils.isEqual(a,COMMAND_TOPICS.RTC_ROOM_EVENT)){let e=$root.lookup("codec.RtcRoomEvent"),t=e.decode(r),{roomEventType:n,members:s,room:o,reason:i}=t;s=s||[],s=utils.map(s,({member:e,rtcState:t})=>(e=common.formatUser(e),utils.extend(e,{status:t}),e));let{owner:a}=o;a=common.formatUser(a||{}),o.owner=a,c={roomEventType:n,room:o,members:s,reason:i},p=SIGNAL_NAME.S_RTC_ROOM_EVENT}else if(utils.isEqual(a,COMMAND_TOPICS.STREAM_MSG)){let e=$root.lookup("codec.StreamDownMsg"),t=e.decode(r),{channelType:n,targetId:s,msgId:o,msgItems:i}=t,a=tools$1.formatStreams(i);c={conversationId:s,conversationType:n,messageId:o,streams:a},p=SIGNAL_NAME.S_STREAM_EVENT}else;return utils.extend(c,{ackIndex:m}),{_msg:c,_name:p}}function Decoder(e,t){let n=$root.lookup("codec.ImWebsocketMsg"),s=async s=>{let o=n.decode(new Uint8Array(s)),i={},r="",{cmd:a,payload:d}=o,m=e.get(STORAGE.CRYPTO_RANDOM),c=common.decrypto(d,m),p=null,l=t.getCurrentUser();switch(a){case SIGNAL_CMD.CONNECT_ACK:p=$root.lookup("codec.ConnectAckMsgBody");let n=p.decode(c);i=utils.extend(i,{ack:n,index:CONNECT_ACK_INDEX,extra:n.ext}),r=SIGNAL_NAME.S_CONNECT_ACK;break;case SIGNAL_CMD.PUBLISH_ACK:p=$root.lookup("codec.PublishAckMsgBody");let s=p.decode(c),{index:o,msgId:a,timestamp:d,code:m,msgIndex:E,memberCount:u,modifiedMsg:g}=s;if(g){let{msgContent:e,msgType:t}=g;if(e&&0<e.length){let n=new TextDecoder().decode(e);g={msgContent:utils.parse(n),msgType:t}}}i={messageId:a,sentTime:d,index:o,isSender:!0,code:m,msgIndex:E,memberCount:u,modifiedMsg:g};break;case SIGNAL_CMD.PUBLISH:l=t.getCurrentUser();let{_msg:T,_name:y}=await getPublishMsgBody(c,{currentUser:l,io:t});r=y,i=T;break;case SIGNAL_CMD.QUERY_ACK:l=t.getCurrentUser(),i=await getQueryAckBody(c,{cache:e,currentUser:l,io:t}),r=SIGNAL_NAME.S_QUERY_ACK;break;case SIGNAL_CMD.PONG:i={index:PONG_INDEX},r=SIGNAL_NAME.S_PONG;break;case SIGNAL_CMD.DISCONNECT:p=$root.lookup("codec.DisconnectMsgBody");let _=p.decode(c);i=utils.extend(i,{extra:_.ext,code:_.code})}return{cmd:a,result:i,name:r}};return{decode:s}}let detect=(e,t,n={})=>{function s(){utils.forEach(o,e=>{e.abort()}),o=[]}let o=[],i="",r=[];utils.forEach(e,n=>{let{http:a}=utils.getProtocol(n);n=n.replace(/http:\/\/|https:\/\/|file:\/\/|wss:\/\/|ws:\/\//g,"");let d=`${a}//${n}/health`,m={},c=jrequest.requestNormal(d,m,{success:function(e,n){if(utils.isEmpty(i)){let{responseURL:e}=n;i=e.replace(/(\/health)/g,""),t(i),s()}},fail:function(n){r.push(n),utils.isEqual(r.length,e.length)&&t(i,n)}});o.push(c)})},getNavis=(e,t,n)=>{function s(){utils.forEach(i,e=>{e.abort()}),i=[]}let{logger:o}=t;o.info({tag:LOG_MODULE.NAV_START,urls:e});let i=[],r=!1,a=[],{appkey:d,token:m}=t,c=common.getTokenKey(d,m),p=Storage.get(c);// 通过 AppKey_Token 获取 userId
|
|
99
|
+
utils.isEmpty(p)||Storage.setPrefix(`${d}_${p}`);let l=common.getNaviStorageKey(d,p),E=Storage.get(l);return utils.isEmpty(E)?void utils.forEach(e,t=>{let p=t.replace(/http:\/\/|https:\/\/|file:\/\//g,""),{http:E}=utils.getProtocol(t);p=`${E}//${p}/navigator/general`;let u={headers:{"x-appkey":d,"x-token":m}},g=jrequest.requestNormal(p,u,{success:function(e,t){if(!r){let{responseURL:i}=t,a=i.replace(/(\/navigator\/general)/g,"");r=!0;let{code:m,data:p={}}=e,{servers:E,user_id:u}=p,g={servers:E,userId:u,code:m,url:a};// 默认规则:导航和 CMP 的协议必须一致
|
|
93
100
|
utils.isEmpty(E)||(Storage.set(c,u),Storage.setPrefix(`${d}_${u}`),l=common.getNaviStorageKey(),Storage.set(l,g),o.info({tag:LOG_MODULE.NAV_REQEST,remote:g})),n(g),s()}},fail:function(t){a.push(t),utils.isEqual(a.length,e.length)&&n(t.result)}});i.push(g)}):(o.info({tag:LOG_MODULE.NAV_REQEST,local:E}),n(E))};var Network={detect,getNavis};function Consumer(){let e=[],t=!1,n=!1,s=(t,n)=>n?e.unshift(t):void e.push(t),o=s=>{// 如果正在执行,终止本次任务,执行任务结束后自动消费队列 ntf, 1 是首次,所以判断大于 1
|
|
94
|
-
if(n)return;n=!0,t=utils.isEqual(e.length,0);let i=e.shift(),r={item:i},a=()=>{n=!1,o(s)};t?n=!1:s(r,a)};return{consume:o,produce:s}}function MessageSyncer(e,t,n,{logger:s}){let o=Consumer(),i=i=>{function r(s,o){let{msg:i}=s,r=common.updateSyncTime({...i,io:n});if(r||utils.isEqual(i.name,MESSAGE_TYPE.STREAM_TEXT)){let{msgIndex:n,ackIndex:s}=i,o={msgIndex:n,ackIndex:s};e(SIGNAL_CMD.PUBLISH_ACK,o),t.emit(SIGNAL_NAME.CMD_RECEIVED,i)}o()}function a(i,r){let{user:a,msg:d,name:
|
|
95
|
-
if(
|
|
101
|
+
if(n)return;n=!0,t=utils.isEqual(e.length,0);let i=e.shift(),r={item:i},a=()=>{n=!1,o(s)};t?n=!1:s(r,a)};return{consume:o,produce:s}}function MessageSyncer(e,t,n,{logger:s}){let o=Consumer(),i=i=>{function r(s,o){let{msg:i}=s,r=common.updateSyncTime({...i,io:n});if(r||utils.isEqual(i.name,MESSAGE_TYPE.STREAM_TEXT)){let{msgIndex:n,ackIndex:s}=i,o={msgIndex:n,ackIndex:s};e(SIGNAL_CMD.PUBLISH_ACK,o),t.emit(SIGNAL_NAME.CMD_RECEIVED,i)}o()}function a(i,r){let{user:a,msg:d,name:m,$message:c}=i,p=Storage.get(STORAGE.SYNC_RECEIVED_MSG_TIME).time||1700927161470,l=Storage.get(STORAGE.SYNC_SENT_MSG_TIME).time||1700927161470;// 如果本地记录时间戳大于 ntf 中的接收时间,认为消息已被当前端接收过,不再执行拉取动作
|
|
102
|
+
if(p>=d.receiveTime)return s.info({tag:LOG_MODULE.MSG_SYNC,syncReceiveTime:p,msg:d}),r();let E={userId:a.id,syncTime:p,containsSendBox:!0,sendBoxSyncTime:l,topic:COMMAND_TOPICS.SYNC_MESSAGES};e(SIGNAL_CMD.QUERY,E,({isFinished:e,messages:a,code:m})=>{if(a=a||[],s.info({tag:LOG_MODULE.MSG_SYNC,data:E,msg:d,code:m,count:a.length}),!utils.isEqual(m,ErrorType.COMMAND_SUCCESS.code))return r();let p=[];utils.forEach(a,(e,t)=>{let{flags:n,sentTime:s,isSender:o}=e,i=common.formatter.toMsg(n);i.isStorage&&p.push(e)}),c.insertBatchMsgs({msgs:utils.clone(p)}).then(()=>{utils.forEach(a,(s,o)=>{let{sentTime:i,isSender:r}=s,d=common.updateSyncTime({sentTime:i,isSender:r,io:n});if(d){let n=e&&utils.isEqual(a.length-1,o);t.emit(SIGNAL_NAME.CMD_RECEIVED,[s,n])}});let s=!e;s&&o.produce(i,s),r()})})}function d(n,i){let{user:r,name:a,time:d,$conversation:m}=n,c=Storage.get(STORAGE.SYNC_CONVERSATION_TIME).time||0;if(c>d)return s.info({tag:LOG_MODULE.CONV_SYNC,syncTime:c,time:d}),i();let p={userId:r.id,syncTime:c,topic:COMMAND_TOPICS.SYNC_CONVERSATIONS,count:200};e(SIGNAL_CMD.QUERY,p,e=>{let{isFinished:r,conversations:a,code:d}=e;if(s.info({tag:LOG_MODULE.CONV_SYNC,data:p,code:d,count:a.length}),!utils.isEqual(d,ErrorType.COMMAND_SUCCESS.code))return t.emit(SIGNAL_NAME.CMD_SYNC_CONVERSATION_FINISHED,{}),i();let l=a.length,E=a[l-1]||{syncTime:0},{syncTime:u}=E;u>c&&(Storage.set(STORAGE.SYNC_CONVERSATION_TIME,{time:u}),n=utils.extend(n,{time:u})),a=utils.clone(a),m._batchInsertConversations({conversations:a,syncTime:u}).then(e=>{t.emit(SIGNAL_NAME.CMD_SYNC_CONVERSATIONS_PROGRESS,e);let s=!r;s?o.produce(n,s):t.emit(SIGNAL_NAME.CMD_SYNC_CONVERSATION_FINISHED,{}),i()})})}o.produce(i),o.consume(({item:e},t)=>{let{name:n}=e;utils.isEqual(n,SIGNAL_NAME.CMD_RECEIVED)&&r(e,t),utils.isEqual(n,SIGNAL_NAME.S_SYNC_CONVERSATION_NTF)&&d(e,t),utils.isEqual(n,SIGNAL_NAME.S_NTF)&&a(e,t)})};return{exec:i}}let chatroomCacher=Cache();var chatroomCacher$1={set:(e,t)=>{let n=chatroomCacher.get(e),{msgs:s=[]}=t;200<=s.length&&(s.shift(0),t=utils.extend(t,{msgs:s})),n=utils.extend(n,t),chatroomCacher.set(e,n)},get:e=>{let t=chatroomCacher.get(e);return t},remove:e=>{chatroomCacher.remove(e)},getAll:()=>chatroomCacher.getAll()};function ChatroomSyncer(e,t,n,{logger:s}){let o=Consumer(),i=n=>{function i(e,t){let{msg:n}=e,o=chatroomCacher$1.get(n.targetId),{isJoined:i}=o;s.info({tag:LOG_MODULE.MSG_SYNC,...e,isJoined:i}),i?(utils.isEqual(n.type,NOTIFY_TYPE.CHATROOM)&&a(e,t),utils.isEqual(n.type,NOTIFY_TYPE.CHATROOM_DESTORY)&&r(e,t)):t()}function r(e,n){let{msg:s}=e,o=s.targetId;t.emit(SIGNAL_NAME.CMD_CHATROOM_DESTROY,{id:o}),n()}function a(n,o){let{msg:i}=n,r=i.targetId,a=d(r);if(a>=i.receiveTime&&0<i.receiveTime)return s.info({tag:LOG_MODULE.MSG_SYNC,syncTime:a,msg:i}),o();if(i.isNotSync)return s.info({tag:LOG_MODULE.MSG_SYNC,syncTime:a,msg:i}),m(i.targetId,i.receiveTime),o();let c=i.count||50,p={syncTime:a,chatroomId:r,count:c,topic:COMMAND_TOPICS.SYNC_CHATROOM_MESSAGES};e(SIGNAL_CMD.QUERY,p,({messages:e,code:n})=>{if(e=e||[],s.info({tag:LOG_MODULE.MSG_SYNC,data:p,msg:i,code:n,count:e.length}),!utils.isEqual(n,ErrorType.COMMAND_SUCCESS.code))return o();let{msgs:a=[]}=chatroomCacher$1.get(r);utils.forEach(e,e=>{m(e.conversationId,e.sentTime);let{messageId:n}=e,s=utils.isInclude(a,n);s||(a.push(n),t.emit(SIGNAL_NAME.CMD_RECEIVED,[e]))}),chatroomCacher$1.set(r,{msgs:a}),o()})}function d(e){let t=chatroomCacher$1.get(e);return t.syncMsgTime||0}function m(e,t){let n=d(e);t>n&&chatroomCacher$1.set(e,{syncMsgTime:t})}o.produce(n),o.consume(({item:e},t)=>{let{name:n}=e;utils.isEqual(n,SIGNAL_NAME.S_NTF)&&i(e,t)})};return{exec:i}}function ChatroomAttSyncer(e,t,n,{logger:s}){let o=Consumer(),i=n=>{function i(e,t){s.info({tag:LOG_MODULE.MSG_SYNC,...e});let{msg:n}=e,o=chatroomCacher$1.get(n.targetId),{isJoined:i}=o;utils.isEqual(n.type,NOTIFY_TYPE.CHATROOM_ATTR)&&i&&r(e,t)}function r(n,o){let{msg:i}=n,r=i.targetId,m=a(r);if(m>=i.receiveTime&&0<i.receiveTime)return o();let c={syncTime:m,chatroomId:r,targetId:r,topic:COMMAND_TOPICS.SYNC_CHATROOM_ATTRS};e(SIGNAL_CMD.QUERY,c,e=>{let{code:n,attrs:r,chatroomId:a}=e;return r=r||[],s.info({tag:LOG_MODULE.MSG_SYNC,data:c,msg:i,code:n,count:r.length}),utils.isEqual(n,ErrorType.COMMAND_SUCCESS.code)?void(utils.forEach(r,e=>{d(a,e.updateTime)}),t.emit(SIGNAL_NAME.CMD_CHATROOM_ATTR_RECEIVED,{attrs:r,chatroomId:a}),o()):o()})}function a(e){let t=chatroomCacher$1.get(e);return t.syncAttTime||0}function d(e,t){let n=a(e);t>n&&chatroomCacher$1.set(e,{syncAttTime:t})}o.produce(n),o.consume(({item:e},t)=>{let{name:n}=e;utils.isEqual(n,SIGNAL_NAME.S_NTF)&&i(e,t)})};return{exec:i}}function TagSyncer(e,t,n,{logger:s}){let o=({$conversation:e})=>{let{id:s}=n.getCurrentUser(),o={topic:COMMAND_TOPICS.CONVERSATION_TAG_QUERY,userId:s};n.sendCommand(SIGNAL_CMD.QUERY,o,n=>{let{code:s,tags:o}=n;utils.isEqual(ErrorType.COMMAND_SUCCESS.code,s)&&(utils.map(o,e=>{let t=CONVERSATION_TAG[e.id]||{};return utils.extend(e,t),e}),e._batchInsertTags(o).then(e=>{t.emit(SIGNAL_NAME.CMD_SYNC_TAG_FINISHED,e)}))})};return{exec:o}}function Timer(e={}){let t={timeout:60000};utils.extend(t,e);let{timeout:n}=t,s=0,o=utils.noop,i=e=>{o=e,s=setInterval(()=>{o()},n)},r=()=>{clearInterval(s)},a=()=>{r(),i(o)};return{resume:i,pause:r,reset:a}}function Counter(e={}){let t={timeout:9000};utils.extend(t,e);let{timeout:n}=t,s=0,o=e=>{s=setTimeout(()=>{e(t)},n)},i=()=>{clearTimeout(s)};return{start:o,clear:i}}let VERSION="1.9.6";var WebWS=WebSocket;function UniWS(e){let t={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},n={readyState:t.CONNECTING,onopen:()=>{},onclose:()=>{},onerror:()=>{},onmessage:()=>{}},s=uni.connectSocket({url:e,complete:()=>{}});return s.onOpen(()=>{n.readyState=t.OPEN,n.onopen()}),s.onClose(()=>{n.readyState=t.CLOSED,n.onclose()}),s.onError(()=>{n.readyState=t.CLOSED,n.onerror()}),s.onMessage(e=>{n.onmessage(e)}),n.send=e=>{s.send({data:e})},n.close=()=>{s.close()},n}let JWebSocket=WebWS;common.isUni()&&(JWebSocket=UniWS);var JWebSocket$1=JWebSocket;function NetworkWatcher(e){let t=()=>{let t=e.ononline||utils.noop;t()},n=()=>{"object"==typeof window&&window.addEventListener&&(window.removeEventListener("online",t),window.addEventListener("online",t))};return{watch:n}}/*
|
|
96
103
|
fileCompressLimit: 图片缩略图压缩限制,小于设置数值将不执行压缩,单位 KB
|
|
97
104
|
config = { appkey, nav, isSync, upload, uploadType, fileCompressLimit }
|
|
98
|
-
*/function IO(e){function t(){let e=s({ignores:[]}),t=utils.find(
|
|
105
|
+
*/function IO(e){function t(){let e=s({ignores:[]}),t=utils.find(u,e=>e===g),n=u[t]||{};return V(),n.onmessage=utils.noop,n.onclose=utils.noop,n.onerror=utils.noop,C.remove(CONNECT_TOOL.RECONNECT_COUNT),C.remove(CONNECT_TOOL.RECONNECT_FREQUENCY),L(e,({next:e})=>{e=e||utils.noop,e()})}function n(){l&&j.exec({msg:{type:NOTIFY_TYPE.MSG},name:SIGNAL_NAME.S_NTF,$message:e.$message,user:{id:b.id}})}function s(e={}){let{ignores:t=["token"]}=e,n=utils.clone(b);return utils.forEach(t,e=>{delete n[e]}),n}function o(){return e.currentDomain=y,e}function i(t){utils.extend(e,t)}function r(e,t){let n={topic:COMMAND_TOPICS.GET_USER_INFO,userId:e.id};H(SIGNAL_CMD.QUERY,n,e=>{t(e)})}let a=Emitter(),{appkey:d,navList:m,serverList:p=[],isSync:l=!0,reconnectCount:E=100,logger:c}=e;utils.isArray(m)||(m=["https://nav.fake.com"]);/*
|
|
99
106
|
pool = {
|
|
100
107
|
}
|
|
101
|
-
*/let
|
|
102
|
-
if(r)return
|
|
103
|
-
if(common.isUni())
|
|
104
|
-
if(E&&(E.clear(),
|
|
105
|
-
utils.isEqual(e,CONVERATION_TYPE.CHATROOM)||common.updateSyncTime({...l,io:
|
|
106
|
-
if(
|
|
107
|
-
utils.isEqual(s,0)?e.$socket.openDB({appkey:d,userId:i,token:
|
|
108
|
-
let r=-1<utils.find(i,t=>utils.isEqual(t.senderId,e.id));if(!r){let e=utils.find(o,e=>utils.isEqual(t.sender.id,e.id));utils.isEqual(e,-1)||o.splice(e,1)}let a=i.length;return{isMentioned:0<a,senders:o,msgs:i,count:a}}if(utils.isEqual(t.name,MESSAGE_TYPE.CLIENT_REMOVE_MSGS)){let{content:{messages:n},sender:e}=t,s={};utils.forEach(n,({messageId:e})=>{let t=utils.find(i,t=>{let n=utils.isEqual(t.messageId,e);return n&&(s[t.senderId]=t.senderId),n});-1<t&&i.splice(t,1)}),utils.forEach(s,e=>{let t=-1<utils.find(i,t=>utils.isEqual(t.senderId,e));if(!t){let t=utils.find(o,t=>utils.isEqual(e,t.id));utils.isEqual(t,-1)||o.splice(t,1)}});let r=i.length;return{isMentioned:0<r,senders:o,msgs:i,count:r}}if(utils.isEmpty(s))return e;let{members:r,mentionType:a}=s,d=utils.find(r,e=>utils.isEqual(n.id,e.id));if(-1<d||utils.isEqual(a,MENTION_TYPE.ALL)){i.push({senderId:t.sender.id,messageId:t.messageId,sentTime:t.sentTime,mentionType:a});let e=utils.find(o,e=>utils.isEqual(t.sender.id,e.id));utils.isEqual(e,-1)&&o.push(t.sender)}let
|
|
108
|
+
*/let u=[],g={},T={},y="",_=utils.noop,C=Cache(),S=Decoder(C,T),O=Encoder(C,T),f=Timer({timeout:HEART_TIMEOUT}),I=Timer({timeout:SYNC_MESSAGE_TIME}),R=!0,A=CONNECT_STATE.DISCONNECTED,N=[ErrorType.CONNECT_APPKEY_IS_REQUIRE.code,ErrorType.CONNECT_TOKEN_NOT_EXISTS.code,ErrorType.CONNECT_APPKEY_NOT_EXISTS.code,ErrorType.CONNECT_TOKEN_ILLEGAL.code,ErrorType.CONNECT_TOKEN_UNAUTHORIZED.code,ErrorType.CONNECT_TOKEN_EXPIRE.code,ErrorType.CONNECT_APP_BLOCKED.code,ErrorType.CONNECT_USER_BLOCKED.code,ErrorType.CONNECT_USER_KICKED.code,ErrorType.CONNECT_USER_LOGOUT.code],M=e=>{A=e.state,a.emit(SIGNAL_NAME.CONN_CHANGED,{...e})},v=()=>{f.pause(),I.pause()},h=NetworkWatcher({ononline:()=>{t()}});h.watch();let D=!1,U=(e={})=>{let{code:t}=e,n=C.getAll();if(utils.forEach(n,(e,t)=>{if(!utils.isNaN(t)){let{callback:n}=e;n=n||utils.noop,n(ErrorType.COMMAND_FAILED),C.remove(t)}}),!D&&!utils.isInclude(N,t)&&!utils.isEqual(A,CONNECT_STATE.DISCONNECTED)){let e=s({ignores:[]});return v(),L(e,({next:e})=>{e=e||utils.noop,e()})}if(!utils.isEqual(A,CONNECT_STATE.DISCONNECTED)){let t=s();M({state:CONNECT_STATE.DISCONNECTED,...e,user:t}),v()}},b={},x=e=>{utils.extend(b,e)},G=e=>{let t=common.getNaviStorageKey(d,e);Storage.remove(t)},k=({token:e,deviceId:n,_isReconnect:s=!1},o)=>{function i({servers:s,userId:i}){x({id:i,token:e,deviceId:n}),C.set(SIGNAL_NAME.S_CONNECT_ACK,o),Network.detect(s,(s,r)=>{// 如果嗅探失败,返回连接断开,同时清理已缓存的 CMP 地址
|
|
109
|
+
if(r)return _(e=>{e=utils.isObject(e)?e:{};let{serverUrls:n}=e;n=n||[],0<n.length&&(p=n.concat(n),t())}),G(i),L({token:e,userId:i,deviceId:n},o);y=s,s=s.replace(/http:\/\/|https:\/\/|file:\/\/|wss:\/\/|ws:\/\//g,"");let{ws:a}=utils.getProtocol(y),m=`${a}//${s}/im`;g=new JWebSocket$1(m),u.push(g),c.info({tag:LOG_MODULE.WS_CONNECT}),g.onopen=function(){let t=PLATFORM.WEB;common.isDesktop()&&(t=PLATFORM.DESKTOP);let s=common.getClientSession();H(SIGNAL_CMD.CONNECT,{appkey:d,token:e,deviceId:n,platform:t,clientSession:s,sdkVersion:VERSION}),u=utils.filter(u,e=>3!=e.readyState)},g.onclose=t=>{U({type:DISCONNECT_TYPE.CLOSE})},g.onerror=()=>{U({type:DISCONNECT_TYPE.ERROR})},g.onmessage=function({data:e}){// 需要修改在适配层处理
|
|
110
|
+
if(common.isUni())w(e);else{let t=new FileReader;t.onload=function(){w(this.result)},t.readAsArrayBuffer(e)}}})}C.set(STORAGE.CRYPTO_RANDOM,utils.getRandoms(8));let r=s?CONNECT_STATE.RECONNECTING:CONNECT_STATE.CONNECTING;return M({state:r}),utils.isEmpty(p)?Network.getNavis(m,{appkey:d,token:e,logger:c},e=>{let{code:t,servers:n,userId:s}=e;if(!utils.isEqual(t,ErrorType.COMMAND_SUCCESS.code)){let e=common.getError(t);return G(s),t||(e=ErrorType.IM_SERVER_CONNECT_ERROR),M({state:CONNECT_STATE.DISCONNECTED,code:e.code}),o({error:e})}i({servers:n,userId:s})}):i({servers:p})},q=0,L=({token:e,userId:t,deviceId:n},s)=>{clearTimeout(q),c.info({tag:LOG_MODULE.CON_RECONNECT,userId:t,deviceId:n});let o=C.get(CONNECT_TOOL.RECONNECT_COUNT),i=o.count||1,r=i>E;if(r)return C.remove(CONNECT_TOOL.RECONNECT_COUNT),C.remove(CONNECT_TOOL.RECONNECT_FREQUENCY),M({state:CONNECT_STATE.DISCONNECTED,code:ErrorType.IM_SERVER_CONNECT_ERROR.code});let d=C.get(CONNECT_TOOL.RECONNECT_FREQUENCY),m=d.frequency||1,p=1e3*m;q=setTimeout(()=>{i+=1,C.set(CONNECT_TOOL.RECONNECT_COUNT,{count:i}),m*=2,C.set(CONNECT_TOOL.RECONNECT_FREQUENCY,{frequency:m}),k({token:e,userId:t,deviceId:n,_isReconnect:!0},e=>{let{error:t}=e;utils.isEqual(t.code,ErrorType.COMMAND_SUCCESS.code)&&a.emit(SIGNAL_NAME.CMD_CHATROOM_REJOIN,{}),s(e)})},p)},P=[],V=()=>{g&&g.close&&g.close(),f.pause(),I.pause(),P.length=0},F=()=>{D=!0,A=CONNECT_STATE.DISCONNECTED,V()},H=async(e,t,n)=>{n=n||utils.noop;let s=common.getNum();utils.isEqual(e,SIGNAL_CMD.CONNECT)&&(s=CONNECT_ACK_INDEX),utils.isEqual(e,SIGNAL_CMD.PING)&&(s=PONG_INDEX);let o=Counter({cmd:e}),i=await O.encode(e,{callback:n,data:t,index:s,counter:o});if(1!=g.readyState)return V(),n(ErrorType.COMMAND_FAILED);g.send(i);let r=utils.clone(t);delete r.messages,r.user&&(r.user={id:r.user.id}),c.info({tag:LOG_MODULE.WS_SEND,cmd:e,...r}),utils.isEqual(SIGNAL_CMD.PUBLISH_ACK,e)||o.start(({cmd:e})=>utils.isEqual(e,SIGNAL_CMD.PING)&&3>P.length?P.push({cmd:e}):void(V(),n(ErrorType.COMMAND_FAILED)))},j=MessageSyncer(H,a,T,{logger:c}),B=ChatroomSyncer(H,a,T,{logger:c}),Y=ChatroomAttSyncer(H,a,T,{logger:c}),Q=TagSyncer(H,a,T,{logger:c}),w=async t=>{let{cmd:s,result:o,name:i}=await S.decode(t);c.info({tag:LOG_MODULE.WS_RECEIVE,cmd:s,code:o.code});let{index:m}=o,{callback:p,data:l,counter:E}=C.get(m);// 清空计时器,与 counter.start 对应
|
|
111
|
+
if(E&&(E.clear(),P.length=0),utils.isEqual(i,SIGNAL_NAME.S_CHATROOM_USER_NTF)){let{chatroomId:e,time:t,type:n,userId:s}=o;a.emit(SIGNAL_NAME.CMD_CHATROOM_EVENT,{chatroomId:e,time:t,type:n,userId:s})}if(utils.isEqual(i,SIGNAL_NAME.S_STREAM_EVENT)){let{conversationType:e,conversationId:t,messageId:n,streams:s}=o,i=[],r=[];if(utils.forEach(s,e=>{let{event:t}=e;utils.isEqual(t,STREAM_EVENT.MESSAGE)&&i.push(e),utils.isEqual(t,STREAM_EVENT.FINISHED)&&r.push(e)}),!utils.isEqual(i.length,0)){let s={conversationType:e,conversationId:t,messageId:n,streams:i};a.emit(SIGNAL_NAME.CMD_STREAM_APPENDED,s)}utils.isEqual(r.length,0)||utils.forEach(r,s=>{let o={conversationType:e,conversationId:t,messageId:n};a.emit(SIGNAL_NAME.CMD_STREAM_COMPLETED,o)})}if(utils.isEqual(i,SIGNAL_NAME.CMD_RECEIVED)&&(j.exec({msg:o,name:i,$message:e.$message,user:{id:b.id}}),I.reset()),utils.isEqual(i,SIGNAL_NAME.S_NTF)){let{type:t}=o,n={msg:o,name:i,$message:e.$message,user:{id:b.id}};utils.isEqual(t,NOTIFY_TYPE.MSG)&&j.exec(n),(utils.isEqual(t,NOTIFY_TYPE.CHATROOM)||utils.isEqual(t,NOTIFY_TYPE.CHATROOM_DESTORY))&&B.exec(n),utils.isEqual(t,NOTIFY_TYPE.CHATROOM_ATTR)&&Y.exec(n),I.reset()}if(utils.isEqual(s,SIGNAL_CMD.PUBLISH_ACK)){utils.extend(l,o);let{conversationType:e}=l;// 单群聊和聊天室通知和拉取消息时间戳分开计算,只有发送单群聊消息更新发件箱
|
|
112
|
+
utils.isEqual(e,CONVERATION_TYPE.CHATROOM)||common.updateSyncTime({...l,io:T}),p(l)}if(utils.isEqual(s,SIGNAL_CMD.QUERY_ACK)&&p&&p(o),utils.isEqual(s,SIGNAL_CMD.CONNECT_ACK)){D=!1;let t=C.get(SIGNAL_NAME.S_CONNECT_ACK)||utils.noop,{ack:{code:s,userId:i,timestamp:a}}=o,m=CONNECT_STATE.CONNECT_FAILED,p=common.getError(s);if(utils.isEqual(s,ErrorType.CONNECT_SUCCESS.code))return R&&!e.isPC&&(common.updateSyncTime({sentTime:a,isSender:!0,io:T}),common.updateSyncTime({sentTime:a,isSender:!1,io:T})),R=!1,m=CONNECT_STATE.CONNECTED,x({id:i}),Storage.setPrefix(`${d}_${i}`),C.remove(CONNECT_TOOL.RECONNECT_FREQUENCY),r({id:i},({user:s})=>{s=s||{};let o=s.nickname,r=s.userPortrait,a=utils.toObject(s.extFields);// 同步会话和同步消息顺序不能调整,保证先同步会话再同步消息,规避会话列表最后一条消息不是最新的
|
|
113
|
+
if(x({name:o,portrait:r,exts:a,updatedTime:s.updatedTime}),t({user:b,error:p,next:()=>{M({state:m,user:b})}}),e.isPC){let t=()=>{j.exec({time:Storage.get(STORAGE.SYNC_CONVERSATION_TIME).time||0,name:SIGNAL_NAME.S_SYNC_CONVERSATION_NTF,user:{id:b.id},$conversation:e.$conversation}),n(),Q.exec({$conversation:e.$conversation})},s=Storage.get(STORAGE.SYNC_CONVERSATION_TIME).time||0;// PC 中先连接后打开数据库,优先将本地数据库中的同步时间更新至 LocalStorage 中,避免换 Token 不换用户 Id 重复同步会话
|
|
114
|
+
utils.isEqual(s,0)?e.$socket.openDB({appkey:d,userId:i,token:b.token}).then(()=>{t()}):t()}else n();f.resume(()=>{H(SIGNAL_CMD.PING,{}),c.info({tag:LOG_MODULE.HB_START})}),I.resume(()=>{j.exec({msg:{type:NOTIFY_TYPE.MSG},name:SIGNAL_NAME.S_NTF,$message:e.$message,user:{id:b.id}})})});utils.isEqual(s,ErrorType.CONNECT_SECURITY_DOMAIN_ERROR.code)&&(D=!0),M({state:m,user:b,code:s}),t({user:b,error:p})}if(utils.isEqual(s,SIGNAL_CMD.DISCONNECT)){let{code:e,extra:t}=o;U({code:e,extra:t,type:DISCONNECT_TYPE.SERVER})}if(utils.isEqual(i,SIGNAL_NAME.S_PONG)&&c.info({tag:LOG_MODULE.HB_STOP}),utils.isEqual(i,SIGNAL_NAME.S_RTC_INVITE_NTF)&&a.emit(SIGNAL_NAME.CMD_RTC_INVITE_EVENT,o),utils.isEqual(i,SIGNAL_NAME.S_RTC_ROOM_EVENT)){let{roomEventType:e,room:t,members:n,reason:s}=o;a.emit(SIGNAL_NAME.CMD_RTC_ROOM_EVENT,{roomEventType:e,room:t,members:n,reason:s})}C.remove(m)},K=()=>utils.isEqual(A,CONNECT_STATE.CONNECTED),J=()=>utils.isEqual(A,CONNECT_STATE.DISCONNECTED);return utils.extend(T,{getConfig:o,setConfig:i,connect:k,disconnect:F,sendCommand:H,isConnected:K,isNeedConnect:J,getCurrentUser:s,setServerUrlProider:e=>{_=e},getVersion:()=>VERSION,sync:e=>{e=utils.isArray(e)?e:[e];let t=o();utils.forEach(e,e=>{let n={...e,$message:t.$message},{msg:{type:s}}=e;utils.isEqual(s,NOTIFY_TYPE.CHATROOM)&&B.exec(n),utils.isEqual(s,NOTIFY_TYPE.CHATROOM_ATTR)&&Y.exec(n)})},...a}),T}let isGroup=e=>utils.isEqual(CONVERATION_TYPE.GROUP,e),formatMsg=({message:e,senders:t,groups:n})=>{let{content:p="{}",senderId:s,conversationType:o,conversationId:i,mentionInfo:l="{}",isRead:r,isStream:a,streams:d,isSender:m,isUpdated:c,referMsg:E="{}",mergeMsg:u="{}",reactions:g="{}",attribute:T=""}=e;p=utils.parse(p),l=utils.parse(l);let y=utils.filter(t,e=>utils.isEqual(e.id,s))[0]||{},_={};return _=isGroup(o)?utils.filter(n,e=>utils.isEqual(e.id,i))[0]||{}:utils.filter(t,e=>utils.isEqual(e.id,i))[0]||{},d||(d="[]"),d=utils.parse(d),e=utils.extend(e,{mergeMsg:utils.parse(u),referMsg:utils.parse(E),reactions:utils.parse(g),conversationTitle:_.name,conversationPortrait:_.portrait,conversationExts:_.exts,content:p,sender:y,mentionInfo:l,streams:d,isStream:!!a,sentTime:+e.sentTime,isRead:!!r,isSender:!!m,isUpdated:!!c,attribute:T}),e},formatMsgs=({messages:e,senders:t,groups:n})=>{let s=utils.map(e,e=>{let s=formatMsg({message:e,senders:t,groups:n});return s});return s},formatConversation=({conversation:e,users:t,groups:n})=>{if(utils.isEmpty(e))return e;let{id:s,type:o,draft:i,unreadCount:r,isTop:a,undisturbType:d,sortTime:m,mentions:c,latestMessageTid:p,latestMessageId:l,latestMessageName:E,latestMessageIsSender:u,latestMessageIsUpdated:g,latestMessageSentTime:T,latestMessageSenderId:y,latestMessageContent:_,latestMessageMessageIndex:C,latestMessageIsRead:S,latestMessageIsMass:O,latestUnreadCount:f,latestReadCount:I,latestReadIndex:R,latestUnreadIndex:A,latestMentionInfo:N,unreadTag:M}=e;c=c||"{}";let v=utils.filter(t,e=>utils.isEqual(e.id,y))[0]||{id:y},h={};h=isGroup(o)?utils.filter(n,e=>utils.isEqual(e.id,s))[0]||{id:s}:utils.filter(t,e=>utils.isEqual(e.id,s))[0]||{id:s},r=0<r?r:0;let D={conversationId:s,conversationType:o,conversationPortrait:h.portrait,conversationTitle:h.name,conversationExts:h.exts,draft:i||"",isTop:!!a,undisturbType:d,latestReadIndex:+R,latestUnreadIndex:+A,latestMessage:{conversationId:s,conversationType:o,conversationPortrait:h.portrait,conversationTitle:h.name,conversationExts:h.exts,content:utils.parse(_),isRead:!!S,isSender:!!u,isUpdated:!!g,isMass:!!O,messageId:l,tid:p,mentionInfo:utils.parse(N),messageIndex:C,name:E,readCount:+(I||0),unreadCount:+(f||0),sentTime:+T,referMsg:{},sender:v},sortTime:+m||0,unreadCount:r||0,mentions:utils.parse(c),unreadTag:M||UNREAD_TAG.READ};return utils.isEmpty(l)&&(D.latestMessage={}),D},formatConversations=({conversations:e,users:t,groups:n})=>{let s=utils.map(e,e=>{let s=formatConversation({conversation:e,users:t,groups:n});return s});return s},createMentions=(e,t,n)=>{let{mentionInfo:s}=t,{senders:o=[],msgs:i=[]}=e;if(utils.isEqual(t.name,MESSAGE_TYPE.RECALL_INFO)){let{content:{messageId:n},sender:e}=t,s=utils.find(i,e=>utils.isEqual(e.messageId,n));-1<s&&i.splice(s,1);// 如果没有消息撤回发送人的消息,移除 senders 中的发送人信息
|
|
115
|
+
let r=-1<utils.find(i,t=>utils.isEqual(t.senderId,e.id));if(!r){let e=utils.find(o,e=>utils.isEqual(t.sender.id,e.id));utils.isEqual(e,-1)||o.splice(e,1)}let a=i.length;return{isMentioned:0<a,senders:o,msgs:i,count:a}}if(utils.isEqual(t.name,MESSAGE_TYPE.CLIENT_REMOVE_MSGS)){let{content:{messages:n},sender:e}=t,s={};utils.forEach(n,({messageId:e})=>{let t=utils.find(i,t=>{let n=utils.isEqual(t.messageId,e);return n&&(s[t.senderId]=t.senderId),n});-1<t&&i.splice(t,1)}),utils.forEach(s,e=>{let t=-1<utils.find(i,t=>utils.isEqual(t.senderId,e));if(!t){let t=utils.find(o,t=>utils.isEqual(e,t.id));utils.isEqual(t,-1)||o.splice(t,1)}});let r=i.length;return{isMentioned:0<r,senders:o,msgs:i,count:r}}if(utils.isEmpty(s))return e;let{members:r,mentionType:a}=s,d=utils.find(r,e=>utils.isEqual(n.id,e.id));if(-1<d||utils.isEqual(a,MENTION_TYPE.ALL)){i.push({senderId:t.sender.id,messageId:t.messageId,sentTime:t.sentTime,mentionType:a});let e=utils.find(o,e=>utils.isEqual(t.sender.id,e.id));utils.isEqual(e,-1)&&o.push(t.sender)}let m=i.length;return{isMentioned:0<m,senders:o,msgs:i,count:m}};function isNestInclude(e,t,n){let s=!1;for(var o=0;o<e.length;o++)for(var r=0;r<t.length&&(s=n(e[o],t[r]),!s);r++);return s}function hasUncompletedStream(e){let t=!1;for(var n=0;n<e.length;n++){let s=e[n],{isStream:o,streams:i}=s;if(o=!!o,i||(i="[]"),i=utils.parse(i),o&&utils.isEqual(i.length,0)){t=!0;break}}return t}var tools={isGroup,formatMsg,formatMsgs,formatConversations,formatConversation,createMentions,isNestInclude,hasUncompletedStream};function Conversation$1(e,t){function n(t){let{conversationId:n,conversationType:o,conversationTitle:i,conversationPortrait:r,conversationExts:a,mentionInfo:d,messageId:m}=t,c={conversationId:n,conversationType:o,conversationTitle:i,conversationPortrait:r,conversationExts:a,latestMessage:t,unreadCount:0,updatedTime:0,undisturbType:t.undisturbType},p=s.getPer(t),l=p.mentions||{},E=e.getCurrentUser();if(l=tools.createMentions(l,t,E),t.isSender){let e=s.getPer(t);utils.extend(c,{conversationTitle:e.conversationTitle,conversationPortrait:e.conversationPortrait,conversationExts:e.conversationExts})}return utils.extend(c,{mentions:l}),c}/*
|
|
109
116
|
let params = {
|
|
110
117
|
type: UNDISTURB_TYPE.DISTURB,
|
|
111
118
|
timezone: 'Asia/Shanghai',
|
|
@@ -118,11 +125,11 @@ let r=-1<utils.find(i,t=>utils.isEqual(t.senderId,e.id));if(!r){let e=utils.find
|
|
|
118
125
|
2、startTime 是 0 时,优先返回内存中会话,内存数量小于 count 数,从服务端获取
|
|
119
126
|
3、startTime 非 0 是,直接从服务端获取,并更新到内存中
|
|
120
127
|
*/let s=common.ConversationUtils();e.on(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,o=>{function i(e){let o=n(e);if(s.isExisted(o)){s.update(o);let e=s.getPer(o);return t.emit(EVENT.CONVERSATION_CHANGED,{conversations:utils.clone([e])})}s.update([o]);let i=s.getPer(o);t.emit(EVENT.CONVERSATION_ADDED,{conversations:utils.clone([i])})}let r=common.formatter.toMsg(o.flags)||{};if(r.isStorage&&!utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_MSG_EXSET)){if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_DELETE_MSGS))return e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,{...o,name:MESSAGE_TYPE.CLIENT_REMOVE_MSGS});if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD)){let{content:{id:e,name:n,conversations:s}}=o;return 0<s.length?t.emit(EVENT.TAG_CONVERSATION_ADDED,{id:e,conversations:s}):utils.isEmpty(n)||0!=s.length?t.emit(EVENT.TAG_ADDED,{tags:[{id:e,name:n}]}):t.emit(EVENT.TAG_CHANGED,{tags:[{id:e,name:n}]})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_REMOVE)){let{content:{tags:e}}=o;return t.emit(EVENT.TAG_REMOVED,{tags:e})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_REMOVE_CONVERS_FROM_TAG)){let{content:{id:e,conversations:n}}=o;return t.emit(EVENT.TAG_CONVERSATION_REMOVED,{id:e,conversations:n})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_ADD_CONVER)){let{content:e}=o;s.update(e);let n=s.getPer(e);return t.emit(EVENT.CONVERSATION_ADDED,{conversations:utils.clone([n])})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_CLEAR_TOTALUNREAD)){let{content:{clearTime:e}}=o,n=s.get();return s.read(n),t.emit(EVENT.CLEAR_TOTAL_UNREADCOUNT,{clearTime:e})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_REMOVE_CONVERS)){let{content:{conversations:e}}=o,n=[];return utils.forEach(e,e=>{let t=s.remove(e);n.push(t)}),t.emit(EVENT.CONVERSATION_REMOVED,{conversations:n})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_TOPCONVERS)){let{content:{conversations:e}}=o,n=e[0]||{isTop:!1},i=s.modify(e,{isTop:n.isTop});return t.emit(EVENT.CONVERSATION_TOP,{conversations:e}),t.emit(EVENT.CONVERSATION_CHANGED,{conversations:i})}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_UNDISTURB)){let{content:{conversations:e}}=o,n=e[0]||{undisturbType:UNDISTURB_TYPE.UNDISTURB},i=s.modify(e,{undisturbType:n.undisturbType});return t.emit(EVENT.CONVERSATION_UNDISTURBED,{conversations:e}),t.emit(EVENT.CONVERSATION_CHANGED,{conversations:i})}// 如果会话最后一条消息大于清理的时间,不更新会话列表
|
|
121
|
-
if(utils.isEqual(o.name,MESSAGE_TYPE.CLEAR_MSG)){let{content:{cleanTime:e,conversationType:n,conversationId:i,senderId:r}}=o,a={conversationType:n,conversationId:i},d=s.getPer(a)||a,{latestMessage:
|
|
122
|
-
if(l||
|
|
128
|
+
if(utils.isEqual(o.name,MESSAGE_TYPE.CLEAR_MSG)){let{content:{cleanTime:e,conversationType:n,conversationId:i,senderId:r}}=o,a={conversationType:n,conversationId:i},d=s.getPer(a)||a,{latestMessage:m}=d||{};if(m=m||{sender:{id:""}},e>=m.sentTime){if(!utils.isEmpty(r)&&!utils.isEqual(r,m.sender.id))return;d.latestMessage={},t.emit(EVENT.CONVERSATION_CHANGED,{conversations:[d]})}return}if(utils.isEqual(MESSAGE_TYPE.CLIENT_REMOVE_MSGS,o.name)){let{content:{messages:n}}=o;if(utils.isEmpty(n))return;let i=n[0],r=s.getPer(i);utils.isEmpty(r)&&(r={latestMessage:{tid:""}});let a=utils.map(n,e=>e.tid),{latestMessage:d}=r,m=r.mentions||{},c=m.msgs||[],p=tools.isNestInclude(c,n,(e,t)=>utils.isEqual(e.messageId,t.tid)),l=utils.isInclude(a,d.tid);// 只有会话最后一条消息被删除时触发会话列表变更或这删除的消息 @ 消息
|
|
129
|
+
if(l||p){let n=s.getPer(o),i=n.mentions||{},r=e.getCurrentUser();i=tools.createMentions(i,o,r);let a={mentions:i};l&&utils.extend(a,{latestMessage:{}});let d=s.modify(n,a);t.emit(EVENT.CONVERSATION_CHANGED,{conversations:utils.clone(d)})}return}// 如果会话最后一条消息和被撤回消息不匹配,不更新会话列表
|
|
123
130
|
if(utils.isEqual(o.name,MESSAGE_TYPE.RECALL)){let{content:{messageId:e}}=o,t=s.getPer(o),{latestMessage:n,mentions:i}=t||{};n=n||{};let r=utils.isEqual(n.messageId,e);i=i||{};let a=i.msgs||[],d=utils.find(a,t=>utils.isEqual(t.messageId,e));if(!r&&utils.isEqual(d,-1))return;// 对外模拟 recallinfo 消息
|
|
124
131
|
o=utils.extend(o,{name:MESSAGE_TYPE.RECALL_INFO})}if(!utils.isInclude([MESSAGE_TYPE.READ_MSG,MESSAGE_TYPE.READ_GROUP_MSG],o.name)){if(utils.isEqual(o.name,MESSAGE_TYPE.CLEAR_UNREAD)){let{content:e}=o,{conversations:n}=e,i=s.read(n);return t.emit(EVENT.CONVERSATION_CLEARUNREAD,{conversations:n}),void(utils.isEmpty(i)||t.emit(EVENT.CONVERSATION_CHANGED,{conversations:i}))}if(utils.isEqual(o.name,MESSAGE_TYPE.COMMAND_MARK_UNREAD)){let{content:{conversations:e}}=o,n=s.modify(e);return t.emit(EVENT.CONVERSATION_CHANGED,{conversations:n})}if(utils.isEqual(o.name,MESSAGE_TYPE.MODIFY)){let e=s.getPer(o),{latestMessage:t}=e||{};// 如果会话最后一条消息和被修改消息不匹配,不更新会话列表
|
|
125
|
-
if(t=t||{},!utils.isEqual(t.messageId,o.messageId))return;utils.extend(o,{name:t.name,isUpdated:!0})}i(o)}}}),e.on(SIGNAL_NAME.CLIENT_CLEAR_MEMORY_CACHE,()=>{s.clear()});let o=t=>{let n=e.getConfig();n.isPC||e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t)},i=(t={})=>utils.deferred((n,o)=>{let i=common.check(e,t,[]);if(!utils.isEmpty(i))return o(i);let{count:a=50,time:d=0,conversationType:r,order:p=CONVERSATION_ORDER.FORWARD}=t;p=utils.isEqual(p,CONVERSATION_ORDER.FORWARD)?CONVERSATION_ORDER.FORWARD:CONVERSATION_ORDER.BACKWARD;let c=e.getCurrentUser(),m={topic:COMMAND_TOPICS.CONVERSATIONS,time:0,count:a,order:p,userId:c.id,conversationType:r};utils.extend(m,t),e.sendCommand(SIGNAL_CMD.QUERY,m,e=>{let{code:t,msg:i}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return o({code:t,msg:i});if(!utils.isUndefined(r)){let t=utils.map(e.conversations,e=>{let{unreadCount:t}=e;return e.unreadCount=0>t?0:t,e});return n(utils.clone({conversations:t.reverse(),isFinished:e.isFinished}))}let{conversations:a}=e;s.setSynced(),s.add(a),n({conversations:utils.clone(a),isFinished:e.isFinished})})}),r=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.REMOVECONVERSATION);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.REMOVE_CONVERSATION,conversations:t,userId:i.id};e.sendCommand(SIGNAL_CMD.QUERY,r,s=>{let o=utils.isArray(t)?t:[t],i=e.getConfig(),{timestamp:r,code:a}=s;if(o=utils.map(o,e=>(e.time=r,e)),utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)&&common.updateSyncTime({isSender:!0,sentTime:r,io:e}),!i.isPC){let t={name:MESSAGE_TYPE.COMMAND_REMOVE_CONVERS,content:{conversations:o}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t)}n()})}),a=t=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.INSERTCONVERSATION);if(!utils.isEmpty(r))return i(r);let a=e.getCurrentUser(),d={topic:COMMAND_TOPICS.INSERT_CONVERSATION,conversation:t,userId:a.id};e.sendCommand(SIGNAL_CMD.QUERY,d,({code:r,msg:a,timestamp:d})=>{if(r)return i({code:r,msg:a});common.updateSyncTime({isSender:!0,sentTime:d,io:e});let p=n({...t,sentTime:Date.now()});s.update(p);let c=s.getPer(p);o({conversation:c})})}),d=t=>utils.deferred((n,o)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.GET_CONVERSATION);if(!utils.isEmpty(i))return o(i);let r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.GET_CONVERSATION,conversation:t,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,({code:e,msg:t,conversation:i})=>e?o({code:e,msg:t}):void(!utils.isEmpty(i)&&s.update(i),n({conversation:i})))}),p=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.MUTE_CONVERSATION);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.MUTE_CONVERSATION,conversations:t,userId:i.id};e.sendCommand(SIGNAL_CMD.QUERY,r,({code:o,msg:i,timestamp:r})=>{if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return s({code:o,msg:i});common.updateSyncTime({isSender:!0,sentTime:r,io:e});let a=e.getConfig();if(!a.isPC){let n=utils.isArray(t)?t:[t],s={name:MESSAGE_TYPE.COMMAND_UNDISTURB,content:{conversations:n}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,s)}n()})}),c=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_TOP_CONVERSATION);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser();t=utils.isArray(t)?t:[t];let r={topic:COMMAND_TOPICS.TOP_CONVERSATION,conversations:t,userId:i.id};e.sendCommand(SIGNAL_CMD.QUERY,r,({code:o,msg:i,timestamp:r})=>{if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return s({code:o,msg:i});common.updateSyncTime({isSender:!0,sentTime:r,io:e});let a=e.getConfig();if(!a.isPC){let n={name:MESSAGE_TYPE.COMMAND_TOPCONVERS,content:{conversations:t}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,n)}n()})}),m=t=>utils.deferred((n,s)=>{let o=common.check(e,t,[]);if(!utils.isEmpty(o))return s(o);t=t||{};let{count:i=50,time:r=0}=t,a=e.getCurrentUser(),d={topic:COMMAND_TOPICS.QUERY_TOP_CONVERSATIONS,time:0,count:i,userId:a.id};utils.extend(d,t),e.sendCommand(SIGNAL_CMD.QUERY,d,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({conversations:e.conversations,isFinished:e.isFinished}):s({code:t,msg:o})})}),l=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.CLEARUNREADCOUNT);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.CLEAR_UNREAD};utils.extend(r,{conversations:t,userId:i.id}),e.sendCommand(SIGNAL_CMD.QUERY,r,s=>{let{timestamp:o,code:i}=s;utils.isEqual(ErrorType.COMMAND_SUCCESS.code,i)&&common.updateSyncTime({isSender:!0,sentTime:o,io:e});let r=e.getConfig();if(!r.isPC){let n={name:MESSAGE_TYPE.CLEAR_UNREAD,content:{conversations:t}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,n)}n()})}),E=(t={})=>utils.deferred((n,s)=>{let o=common.check(e,{},{});if(!utils.isEmpty(o))return s(o);let{conversationTypes:a=[],ignoreConversations:i,tag:r}=t;if(a=utils.isArray(a)?a:[a],!utils.isEmpty(i)){let n=common.check(e,t,FUNC_PARAM_CHECKER.GET_TOTAL_UNREADCOUNT);if(!utils.isEmpty(n))return s(n)}let{id:d}=e.getCurrentUser(),p={topic:COMMAND_TOPICS.GET_UNREAD_TOTLAL_CONVERSATION,userId:d,conversationTypes:a,ignoreConversations:i,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,p,({count:e})=>{e=e||0,n({count:e})})}),u=()=>utils.deferred((t,n)=>{let o=common.check(e,{},{});if(!utils.isEmpty(o))return n(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.CLEAR_UNREAD_TOTLAL_CONVERSATION,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,()=>{let e=s.get();s.read(e),t()})}),g=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_DRAFT);if(!utils.isEmpty(o))return s(o);let i=common.getDraftKey(t),{draft:r}=t;Storage.set(i,r),n()}),T=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_DRAFT);if(!utils.isEmpty(o))return s(o);let i=common.getDraftKey(t),r=Storage.get(i);n(r)}),y=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_DRAFT);if(!utils.isEmpty(o))return s(o);let i=common.getDraftKey(t),r=Storage.remove(i);n(r)}),_=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_ALL_DISTURB);if(!utils.isEmpty(o))return s(o);let{code:i}=ErrorType.ILLEGAL_TYPE_PARAMS,r={timezone:"",times:[]},{type:a,timezone:d,times:p}=t,c=utils.isEqual(a,UNDISTURB_TYPE.DISTURB);if(c&&!utils.isString(d)){let e="timezone \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1AAsia/Shanghai";return s({msg:"timezone \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1AAsia/Shanghai",code:i})}if(c&&!utils.isArray(p)){let e="times \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1A[{ start: '12:00', end: '13:00' }]";return s({msg:"times \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1A[{ start: '12:00', end: '13:00' }]",code:i})}let m=!0,l=0;p=p||[];for(let e=0,t;e<p.length;e++){if(t=p[e],!utils.isObject(t)){m=!1,l=e;break}let{start:n,end:s}=t;if(!utils.isValidHMTime(n)||!utils.isValidHMTime(s)){m=!1,l=e;break}}if(!m){let e=`times 下标 ${l} 参数,时间格式不正确`;return s({msg:e,code:i})}r=utils.extend(r,t);let{id:E}=e.getCurrentUser(),u={topic:COMMAND_TOPICS.SET_ALL_DISTURB,userId:E,...r};e.sendCommand(SIGNAL_CMD.QUERY,u,()=>{n()})}),C=()=>utils.deferred((t,n)=>{let s=common.check(e,{},{});if(!utils.isEmpty(s))return n(s);let{id:o}=e.getCurrentUser(),i={topic:COMMAND_TOPICS.GET_ALL_DISTURB,userId:o};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{timezone:s,times:o,type:i,code:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,r)?void t({timezone:s,times:o,type:i}):n({code:r,msg:""})})}),S=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.MARK_UNREAD);if(!utils.isEmpty(o))return s(o);t=utils.clone(t);let{id:i}=e.getCurrentUser(),r=utils.isArray(t)?t:[t],a={topic:COMMAND_TOPICS.MARK_CONVERSATION_UNREAD,userId:i,conversations:r};e.sendCommand(SIGNAL_CMD.QUERY,a,t=>{let{timestamp:o,code:i}=t;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,i)){common.updateSyncTime({isSender:!0,sentTime:o,io:e});let t=e.getConfig();if(!t.isPC){let t={name:MESSAGE_TYPE.COMMAND_MARK_UNREAD,content:{conversations:r}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t)}n()}else{let e=common.getError(i);s(e)}})}),O=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.CREATE_CONVERSATION_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),{id:a}=e.getCurrentUser(),d={topic:COMMAND_TOPICS.CONVERSATION_TAG_ADD,userId:a,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,d,i=>{let{timestamp:r,code:a}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s={name:MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD,content:{id:t.id,name:t.name,conversations:[]}};o(s),n()}else{let e=common.getError(a);s(e)}})}),f=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_CONVERSATION_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),{id:a}=e.getCurrentUser(),d={topic:COMMAND_TOPICS.TAG_REMOVE,userId:a,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,d,i=>{let{timestamp:r,code:a}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s=utils.isArray(t)?t:[t],i={name:MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_REMOVE,content:{tags:s}};o(i),n()}else{let e=common.getError(a);s(e)}})}),I=()=>utils.deferred((t,n)=>{let s=common.check(e,{},{});if(!utils.isEmpty(s))return n(s);let{id:o}=e.getCurrentUser(),i={topic:COMMAND_TOPICS.CONVERSATION_TAG_QUERY,userId:o};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{timestamp:s,code:o,tags:i}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)){let e=utils.map(i,e=>{let t=CONVERSATION_TAG[e.id]||{};return utils.extend(e,t),e});t({tags:e})}else{let e=common.getError(o);n(e)}})}),R=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.ADD_CONVERSATION_TO_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),{id:a}=e.getCurrentUser(),d=utils.map(r.conversations,e=>({conversationId:e.conversationId,conversationType:e.conversationType}));r=utils.extend(r,{conversations:d});let p={topic:COMMAND_TOPICS.CONVERSATION_TAG_ADD,userId:a,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,p,i=>{let{timestamp:r,code:a}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s={name:MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD,content:{id:t.id,conversations:d}};o(s),n()}else{let e=common.getError(a);s(e)}})}),A=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_CONVERSATION_FROM_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),a=utils.map(r.conversations,e=>({conversationId:e.conversationId,conversationType:e.conversationType}));r=utils.extend(r,{conversations:a});let{id:d}=e.getCurrentUser(),p={topic:COMMAND_TOPICS.CONVERSATION_TAG_REMOVE,userId:d,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,p,i=>{let{timestamp:r,code:d}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,d)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s={name:MESSAGE_TYPE.COMMAND_REMOVE_CONVERS_FROM_TAG,content:{id:t.id,conversations:a}};o(s),n()}else{let e=common.getError(d);s(e)}})});return{getConversations:i,removeConversation:r,insertConversation:a,getConversation:d,markUnread:S,disturbConversation:p,setTopConversation:c,getTopConversations:m,clearUnreadcount:l,getTotalUnreadcount:E,clearTotalUnreadcount:u,setDraft:g,getDraft:T,removeDraft:y,setAllDisturb:_,getAllDisturb:C,createConversationTag:O,destroyConversationTag:f,getConversationTags:I,addConversationsToTag:R,removeConversationsFromTag:A}}function MessageCacher(){let e=Cache(),t=({conversationType:e,conversationId:t})=>`${e}_${t}`,n=(n,s)=>{let o=utils.isArray(s)?s:[s],i=t(n),r=e.get(i);utils.isEmpty(r)&&(r=[]),r=r.concat(o),r=utils.quickSort(r,(e,t)=>e.sentTime>t.sentTime),10<r.length&&(r.length=10),e.set(i,r)},s=n=>{let s=t(n),o=e.get(s);utils.isEmpty(o)&&(o=[]);let i=utils.filter(o,e=>utils.isEqual(e.sentTime,n.sentTime));return 0<i.length},o=()=>{e.clear()};return{add:n,isInclude:s,clear:o}}function Message$1(e,t,n){/*
|
|
132
|
+
if(t=t||{},!utils.isEqual(t.messageId,o.messageId))return;utils.extend(o,{name:t.name,isUpdated:!0})}i(o)}}}),e.on(SIGNAL_NAME.CLIENT_CLEAR_MEMORY_CACHE,()=>{s.clear()});let o=t=>{let n=e.getConfig();n.isPC||e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t)},i=(t={})=>utils.deferred((n,o)=>{let i=common.check(e,t,[]);if(!utils.isEmpty(i))return o(i);let{count:a=50,time:d=0,conversationType:r,order:m=CONVERSATION_ORDER.FORWARD}=t;m=utils.isEqual(m,CONVERSATION_ORDER.FORWARD)?CONVERSATION_ORDER.FORWARD:CONVERSATION_ORDER.BACKWARD;let c=e.getCurrentUser(),p={topic:COMMAND_TOPICS.CONVERSATIONS,time:0,count:a,order:m,userId:c.id,conversationType:r};utils.extend(p,t),e.sendCommand(SIGNAL_CMD.QUERY,p,e=>{let{code:t,msg:i}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return o({code:t,msg:i});if(!utils.isUndefined(r)){let t=utils.map(e.conversations,e=>{let{unreadCount:t}=e;return e.unreadCount=0>t?0:t,e});return n(utils.clone({conversations:t.reverse(),isFinished:e.isFinished}))}let{conversations:a}=e;s.setSynced(),s.add(a),n({conversations:utils.clone(a),isFinished:e.isFinished})})}),r=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.REMOVECONVERSATION);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.REMOVE_CONVERSATION,conversations:t,userId:i.id};e.sendCommand(SIGNAL_CMD.QUERY,r,s=>{let o=utils.isArray(t)?t:[t],i=e.getConfig(),{timestamp:r,code:a}=s;if(o=utils.map(o,e=>(e.time=r,e)),utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)&&common.updateSyncTime({isSender:!0,sentTime:r,io:e}),!i.isPC){let t={name:MESSAGE_TYPE.COMMAND_REMOVE_CONVERS,content:{conversations:o}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t)}n()})}),a=t=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.INSERTCONVERSATION);if(!utils.isEmpty(r))return i(r);let a=e.getCurrentUser(),d={topic:COMMAND_TOPICS.INSERT_CONVERSATION,conversation:t,userId:a.id};e.sendCommand(SIGNAL_CMD.QUERY,d,({code:r,msg:a,timestamp:d})=>{if(r)return i({code:r,msg:a});common.updateSyncTime({isSender:!0,sentTime:d,io:e});let m=n({...t,sentTime:Date.now()});s.update(m);let c=s.getPer(m);o({conversation:c})})}),d=t=>utils.deferred((n,o)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.GET_CONVERSATION);if(!utils.isEmpty(i))return o(i);let r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.GET_CONVERSATION,conversation:t,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,({code:e,msg:t,conversation:i})=>e?o({code:e,msg:t}):void(!utils.isEmpty(i)&&s.update(i),n({conversation:i})))}),m=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.MUTE_CONVERSATION);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.MUTE_CONVERSATION,conversations:t,userId:i.id};e.sendCommand(SIGNAL_CMD.QUERY,r,({code:o,msg:i,timestamp:r})=>{if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return s({code:o,msg:i});common.updateSyncTime({isSender:!0,sentTime:r,io:e});let a=e.getConfig();if(!a.isPC){let n=utils.isArray(t)?t:[t],s={name:MESSAGE_TYPE.COMMAND_UNDISTURB,content:{conversations:n}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,s)}n()})}),c=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_TOP_CONVERSATION);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser();t=utils.isArray(t)?t:[t];let r={topic:COMMAND_TOPICS.TOP_CONVERSATION,conversations:t,userId:i.id};e.sendCommand(SIGNAL_CMD.QUERY,r,({code:o,msg:i,timestamp:r})=>{if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return s({code:o,msg:i});common.updateSyncTime({isSender:!0,sentTime:r,io:e});let a=e.getConfig();if(!a.isPC){let n={name:MESSAGE_TYPE.COMMAND_TOPCONVERS,content:{conversations:t}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,n)}n()})}),p=t=>utils.deferred((n,s)=>{let o=common.check(e,t,[]);if(!utils.isEmpty(o))return s(o);t=t||{};let{count:i=50,time:r=0}=t,a=e.getCurrentUser(),d={topic:COMMAND_TOPICS.QUERY_TOP_CONVERSATIONS,time:0,count:i,userId:a.id};utils.extend(d,t),e.sendCommand(SIGNAL_CMD.QUERY,d,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({conversations:e.conversations,isFinished:e.isFinished}):s({code:t,msg:o})})}),l=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.CLEARUNREADCOUNT);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.CLEAR_UNREAD};utils.extend(r,{conversations:t,userId:i.id}),e.sendCommand(SIGNAL_CMD.QUERY,r,s=>{let{timestamp:o,code:i}=s;utils.isEqual(ErrorType.COMMAND_SUCCESS.code,i)&&common.updateSyncTime({isSender:!0,sentTime:o,io:e});let r=e.getConfig();if(!r.isPC){let n={name:MESSAGE_TYPE.CLEAR_UNREAD,content:{conversations:t}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,n)}n()})}),E=(t={})=>utils.deferred((n,s)=>{let o=common.check(e,{},{});if(!utils.isEmpty(o))return s(o);let{conversationTypes:a=[],ignoreConversations:i,tag:r}=t;if(a=utils.isArray(a)?a:[a],!utils.isEmpty(i)){let n=common.check(e,t,FUNC_PARAM_CHECKER.GET_TOTAL_UNREADCOUNT);if(!utils.isEmpty(n))return s(n)}let{id:d}=e.getCurrentUser(),m={topic:COMMAND_TOPICS.GET_UNREAD_TOTLAL_CONVERSATION,userId:d,conversationTypes:a,ignoreConversations:i,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,m,({count:e})=>{e=e||0,n({count:e})})}),u=()=>utils.deferred((t,n)=>{let o=common.check(e,{},{});if(!utils.isEmpty(o))return n(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.CLEAR_UNREAD_TOTLAL_CONVERSATION,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,()=>{let e=s.get();s.read(e),t()})}),g=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_DRAFT);if(!utils.isEmpty(o))return s(o);let i=common.getDraftKey(t),{draft:r}=t;Storage.set(i,r),n()}),T=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_DRAFT);if(!utils.isEmpty(o))return s(o);let i=common.getDraftKey(t),r=Storage.get(i);n(r)}),y=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_DRAFT);if(!utils.isEmpty(o))return s(o);let i=common.getDraftKey(t),r=Storage.remove(i);n(r)}),_=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_ALL_DISTURB);if(!utils.isEmpty(o))return s(o);let{code:i}=ErrorType.ILLEGAL_TYPE_PARAMS,r={timezone:"",times:[]},{type:a,timezone:d,times:m}=t,c=utils.isEqual(a,UNDISTURB_TYPE.DISTURB);if(c&&!utils.isString(d)){let e="timezone \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1AAsia/Shanghai";return s({msg:"timezone \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1AAsia/Shanghai",code:i})}if(c&&!utils.isArray(m)){let e="times \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1A[{ start: '12:00', end: '13:00' }]";return s({msg:"times \u53C2\u6570\u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF0C\u683C\u5F0F\u793A\u4F8B\uFF1A[{ start: '12:00', end: '13:00' }]",code:i})}let p=!0,l=0;m=m||[];for(let e=0,t;e<m.length;e++){if(t=m[e],!utils.isObject(t)){p=!1,l=e;break}let{start:n,end:s}=t;if(!utils.isValidHMTime(n)||!utils.isValidHMTime(s)){p=!1,l=e;break}}if(!p){let e=`times 下标 ${l} 参数,时间格式不正确`;return s({msg:e,code:i})}r=utils.extend(r,t);let{id:E}=e.getCurrentUser(),u={topic:COMMAND_TOPICS.SET_ALL_DISTURB,userId:E,...r};e.sendCommand(SIGNAL_CMD.QUERY,u,()=>{n()})}),C=()=>utils.deferred((t,n)=>{let s=common.check(e,{},{});if(!utils.isEmpty(s))return n(s);let{id:o}=e.getCurrentUser(),i={topic:COMMAND_TOPICS.GET_ALL_DISTURB,userId:o};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{timezone:s,times:o,type:i,code:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,r)?void t({timezone:s,times:o,type:i}):n({code:r,msg:""})})}),S=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.MARK_UNREAD);if(!utils.isEmpty(o))return s(o);t=utils.clone(t);let{id:i}=e.getCurrentUser(),r=utils.isArray(t)?t:[t],a={topic:COMMAND_TOPICS.MARK_CONVERSATION_UNREAD,userId:i,conversations:r};e.sendCommand(SIGNAL_CMD.QUERY,a,t=>{let{timestamp:o,code:i}=t;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,i)){common.updateSyncTime({isSender:!0,sentTime:o,io:e});let t=e.getConfig();if(!t.isPC){let t={name:MESSAGE_TYPE.COMMAND_MARK_UNREAD,content:{conversations:r}};e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t)}n()}else{let e=common.getError(i);s(e)}})}),O=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.CREATE_CONVERSATION_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),{id:a}=e.getCurrentUser(),d={topic:COMMAND_TOPICS.CONVERSATION_TAG_ADD,userId:a,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,d,i=>{let{timestamp:r,code:a}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s={name:MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD,content:{id:t.id,name:t.name,conversations:[]}};o(s),n()}else{let e=common.getError(a);s(e)}})}),f=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_CONVERSATION_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),{id:a}=e.getCurrentUser(),d={topic:COMMAND_TOPICS.TAG_REMOVE,userId:a,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,d,i=>{let{timestamp:r,code:a}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s=utils.isArray(t)?t:[t],i={name:MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_REMOVE,content:{tags:s}};o(i),n()}else{let e=common.getError(a);s(e)}})}),I=()=>utils.deferred((t,n)=>{let s=common.check(e,{},{});if(!utils.isEmpty(s))return n(s);let{id:o}=e.getCurrentUser(),i={topic:COMMAND_TOPICS.CONVERSATION_TAG_QUERY,userId:o};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{timestamp:s,code:o,tags:i}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)){let e=utils.map(i,e=>{let t=CONVERSATION_TAG[e.id]||{};return utils.extend(e,t),e});t({tags:e})}else{let e=common.getError(o);n(e)}})}),R=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.ADD_CONVERSATION_TO_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),{id:a}=e.getCurrentUser(),d=utils.map(r.conversations,e=>({conversationId:e.conversationId,conversationType:e.conversationType}));r=utils.extend(r,{conversations:d});let m={topic:COMMAND_TOPICS.CONVERSATION_TAG_ADD,userId:a,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,m,i=>{let{timestamp:r,code:a}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s={name:MESSAGE_TYPE.COMMAND_CONVERSATION_TAG_ADD,content:{id:t.id,conversations:d}};o(s),n()}else{let e=common.getError(a);s(e)}})}),A=t=>utils.deferred((n,s)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_CONVERSATION_FROM_TAG);if(!utils.isEmpty(i))return s(i);let r=utils.clone(t),a=utils.map(r.conversations,e=>({conversationId:e.conversationId,conversationType:e.conversationType}));r=utils.extend(r,{conversations:a});let{id:d}=e.getCurrentUser(),m={topic:COMMAND_TOPICS.CONVERSATION_TAG_REMOVE,userId:d,tag:r};e.sendCommand(SIGNAL_CMD.QUERY,m,i=>{let{timestamp:r,code:d}=i;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,d)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let s={name:MESSAGE_TYPE.COMMAND_REMOVE_CONVERS_FROM_TAG,content:{id:t.id,conversations:a}};o(s),n()}else{let e=common.getError(d);s(e)}})});return{getConversations:i,removeConversation:r,insertConversation:a,getConversation:d,markUnread:S,disturbConversation:m,setTopConversation:c,getTopConversations:p,clearUnreadcount:l,getTotalUnreadcount:E,clearTotalUnreadcount:u,setDraft:g,getDraft:T,removeDraft:y,setAllDisturb:_,getAllDisturb:C,createConversationTag:O,destroyConversationTag:f,getConversationTags:I,addConversationsToTag:R,removeConversationsFromTag:A}}function MessageCacher(){let e=Cache(),t=({conversationType:e,conversationId:t})=>`${e}_${t}`,n=(n,s)=>{let o=utils.isArray(s)?s:[s],i=t(n),r=e.get(i);utils.isEmpty(r)&&(r=[]),r=r.concat(o),r=utils.quickSort(r,(e,t)=>e.sentTime>t.sentTime),10<r.length&&(r.length=10),e.set(i,r)},s=n=>{let s=t(n),o=e.get(s);utils.isEmpty(o)&&(o=[]);let i=utils.filter(o,e=>utils.isEqual(e.sentTime,n.sentTime));return 0<i.length},o=()=>{e.clear()};return{add:n,isInclude:s,clear:o}}function Message$1(e,t,n){/*
|
|
126
133
|
let conversation = {
|
|
127
134
|
conversationType: 1,
|
|
128
135
|
conversationId: '',
|
|
@@ -130,7 +137,7 @@ if(t=t||{},!utils.isEqual(t.messageId,o.messageId))return;utils.extend(o,{name:t
|
|
|
130
137
|
count: 10,
|
|
131
138
|
};
|
|
132
139
|
*/function s(t){return utils.deferred(async(n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GETMSGS);if(!utils.isEmpty(o))return s(o);let{time:i,conversationId:r,conversationType:a,count:d}=t;// 默认从当前会话第一条未读消息开始获取
|
|
133
|
-
if(d=d||10,utils.isUndefined(i)){let{message:e}=await h(t);i=e.sentTime||0}let
|
|
140
|
+
if(d=d||10,utils.isUndefined(i)){let{message:e}=await h(t);i=e.sentTime||0}let m=await l({conversationType:a,conversationId:r,time:i,count:d}),c={messages:[],isFinished:!0};0<i&&(c=await l({conversationType:a,conversationId:r,time:i-1,count:d,order:MESSAGE_ORDER.FORWARD})),n({frontMessages:m.messages,isFrontFinished:m.isFinished,isBackFinished:c.isFinished,backMessages:c.messages})})}let o=MessageCacher();e.on(SIGNAL_NAME.CMD_RECEIVED,(s,i=!0)=>{n.info({tag:LOG_MODULE.MSG_RECEIVE,messageId:s.messageId});let r=utils.isEqual(s.conversationType,CONVERATION_TYPE.CHATROOM);if(r){let e=chatroomCacher$1.get(s.conversationId);return e.isJoined&&t.emit(EVENT.MESSAGE_RECEIVED,[s,!0])}if(utils.isEqual(s.name,MESSAGE_TYPE.COMMAND_LOG_REPORT)){let{conncontent:e,messageId:t}=s;return utils.isEqual("Web",content.platform)?common.reportLogs({logger:n,params:{...content,messageId:t}}):void 0}if(utils.isEqual(s.name,MESSAGE_TYPE.MODIFY)){let{conversationType:e,conversationId:n,content:{content:o,messageId:i,sentTime:r}}=s,a=o;if(utils.isBase64(o)){let e=utils.decodeBase64(o);a=utils.parse(e)}return t.emit(EVENT.MESSAGE_UPDATED,{conversationType:e,conversationId:n,messageId:i,content:a})}if(utils.isEqual(s.name,MESSAGE_TYPE.COMMAND_MSG_SET_TOP)){let{conversationType:e,conversationId:n,content:{msg_id:r,action:a=0},sender:o,sentTime:i}=s,d=utils.isEqual(MSG_TOP_ACTION_TYPE.ADD,a);return t.emit(EVENT.MESSAGE_SET_TOP,{isTop:d,message:{conversationType:e,conversationId:n,messageId:r},operator:o,createdTime:i})}// if(utils.isEqual(message.name, MESSAGE_TYPE.COMMAND_RTC_1V1_FINISHED)){
|
|
134
141
|
// return emitter.emit(EVENT.RTC_FINISHED_1V1_EVENT, message);
|
|
135
142
|
// }
|
|
136
143
|
// 收到 非聊天室消息和状态消息 一定要更新会话列表
|
|
@@ -144,12 +151,12 @@ if(!utils.isEqual(s.name,MESSAGE_TYPE.COMMAND_MARK_UNREAD)&&!utils.isEqual(s.nam
|
|
|
144
151
|
{if(utils.isEqual(s.name,MESSAGE_TYPE.RECALL)){let{conversationId:e,conversationType:n,content:o,sender:i}=s;return t.emit(EVENT.MESSAGE_RECALLED,{conversationId:e,conversationType:n,content:o,sender:i})}if(utils.isEqual(s.name,MESSAGE_TYPE.COMMAND_MSG_EXSET)){let{content:e}=s;return t.emit(EVENT.MESSAGE_REACTION_CHANGED,{...e})}if(utils.isEqual(s.name,MESSAGE_TYPE.CLEAR_MSG)){let{content:{conversationType:e,conversationId:n,cleanTime:o,senderId:i}}=s;return utils.isEmpty(i)?t.emit(EVENT.MESSAGE_CLEAN,{conversationType:e,conversationId:n,cleanTime:o}):t.emit(EVENT.MESSAGE_CLEAN_SOMEONE,{conversationType:e,conversationId:n,senderId:i})}if(utils.isEqual(s.name,MESSAGE_TYPE.READ_MSG)||utils.isEqual(s.name,MESSAGE_TYPE.READ_GROUP_MSG)){let{conversationType:e,conversationId:n,content:{msgs:a},sender:o,isSender:i,sentTime:r}=s,d={conversationType:e,conversationId:n,messages:a,senderId:o.id,isSender:i,readTime:r};return t.emit(EVENT.MESSAGE_READ,d)}if(!o.isInclude(s)||utils.isEqual(s.name,MESSAGE_TYPE.STREAM_TEXT)){t.emit(EVENT.MESSAGE_RECEIVED,[s,i]);let{conversationId:e,conversationType:n}=s;o.add({conversationId:e,conversationType:n},s)}}}});let i=t=>{let n=e.getConfig();n.isPC||e.emit(SIGNAL_NAME.CMD_RECEIVED,t)},r=[[CONVERATION_TYPE.PRIVATE,"p_msg"],[CONVERATION_TYPE.GROUP,"g_msg"],[CONVERATION_TYPE.CHATROOM,"c_msg"]],a={};utils.forEach(r,e=>{a[e[0]]=e[1]});/*
|
|
145
152
|
缓存发送的消息,同样的 tid 重复发送消息返回错误,不再调用 socket send 方法,规避消息重复发送
|
|
146
153
|
sendingMsgMap[tid] = true;
|
|
147
|
-
*/let d={},
|
|
148
|
-
delete
|
|
149
|
-
n(e):s({code:o,msg:i})})}),E=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GETMSG);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.GET_MSG_BY_IDS,userId:i.id};r=utils.extend(r,t),e.sendCommand(SIGNAL_CMD.QUERY,r,e=>{let{messages:t,code:o,msg:i}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void n({messages:t}):s({code:o,msg:i})})}),u=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.CLEARMSG);if(!utils.isEmpty(r))return o(r);n.info({tag:LOG_MODULE.MSG_CLEAR,...t});let a={topic:COMMAND_TOPICS.CLEAR_MESSAGE,time:0};utils.extend(a,t),e.sendCommand(SIGNAL_CMD.QUERY,a,({code:n,timestamp:r})=>{if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,n)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let n={conversationType:t.conversationType,conversationId:t.conversationId,cleanTime:t.time||0},{senderId:o}=t;utils.isUndefined(o)||utils.extend(n,{senderId:o});let a={name:MESSAGE_TYPE.CLEAR_MSG,content:n};i(a),s()}else{let e=common.getError(n);o(e)}})}),g=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_MSGS);if(!utils.isEmpty(r))return o(r);t=utils.isArray(t)?t:[t];let a=utils.quickSort(utils.clone(t),(e,t)=>e.sentTime>t.sentTime),d=a[0]||{sentTime:-10};n.info({tag:LOG_MODULE.MSG_DELETE,time:d.sentTime});let
|
|
150
|
-
if(utils.isUndefined(t.content))return d(),s(a);let
|
|
151
|
-
let{thumbnail:t}=E;if(t)return o(e,n);O({type:
|
|
152
|
-
let{poster:t}=E;if(t)return o(e,n);O({type:p,ext:"png"}).then(t=>utils.isEqual(ErrorType.COMMAND_FAILED.code,t.code)?d.onerror(ErrorType.COMMAND_FAILED):void common.uploadFrame(r,{...s,...t,content:E},(t,s,i)=>{let{height:r,width:a,duration:d}=i;utils.extend(n.content,{poster:s,height:r,width:a,duration:d}),o(e,n)}))}utils.isInclude([MESSAGE_TYPE.FILE,MESSAGE_TYPE.VOICE],l)&&o(e,n)})},I=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.FILE});let o={fileType:FILE_TYPE.FILE};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.FILE});let p=s.onbefore||utils.noop,m=t.tid||utils.getUUID();utils.extend(t,{tid:m,sentState:MESSAGE_SENT_STATE.SENDING});let{size:l=0}=t.content,E=utils.clone(t);return E.content={...t.content,size:l},p(E),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,e.content.size=l,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},R=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.IMAGE});let o={fileType:FILE_TYPE.IMAGE,scale:t.scale};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.IMAGE});let p=s.onbefore||utils.noop,m=t.tid||utils.getUUID();return utils.extend(t,{tid:m,sentState:MESSAGE_SENT_STATE.SENDING}),p(t),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},A=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.VOICE});let o={fileType:FILE_TYPE.AUDIO};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.AUDIO});let p=s.onbefore||utils.noop,m=t.tid||utils.getUUID();return utils.extend(t,{tid:m,sentState:MESSAGE_SENT_STATE.SENDING}),p(t),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},N=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.VIDEO});let o={fileType:FILE_TYPE.VIDEO,scale:t.scale};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.VIDEO});let p=s.onbefore||utils.noop,m=t.tid||utils.getUUID();return utils.extend(t,{tid:m,sentState:MESSAGE_SENT_STATE.SENDING}),p(t),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:m,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},M=(t,s={})=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.SEND_MERGE_MESSAGE);if(!utils.isEmpty(r))return i({error:r});n.info({tag:LOG_MODULE.MSG_SEND_MERGE});let{conversationType:a,conversationId:d,messages:p,previewList:m,title:l,lifeTime:E,lifeTimeAfterRead:u}=t;if(20<p.length)return i({error:ErrorType.TRANSFER_MESSAGE_COUNT_EXCEED});let g={channelType:CONVERATION_TYPE.PRIVATE,targetId:""},T=[];p=utils.map(p,e=>(utils.extend(g,{channelType:e.conversationType,targetId:e.conversationId}),{msgId:e.messageId,msgTime:e.sentTime,msgIndex:e.messageIndex})),utils.forEach(p,({msgId:e})=>{T.push(e)});let y=e.getCurrentUser();utils.extend(g,{userId:y.id,msgs:p});let _={conversationId:d,conversationType:a,name:MESSAGE_TYPE.MERGE,mergeMsg:g,lifeTime:E,lifeTimeAfterRead:u,content:{conversationType:g.channelType,conversationId:g.targetId,previewList:m,messageIdList:T,title:l}};return c(_,s).then(o,i)}),v=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_MERGE_MESSAGES);if(!utils.isEmpty(o))return s(o);let i={time:0,order:MESSAGE_ORDER.FORWARD,count:20,topic:COMMAND_TOPICS.GET_MERGE_MSGS};utils.extend(i,t),e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:t,msg:o,isFinished:i,messages:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({isFinished:i,messages:r}):s({code:t,msg:o})})}),h=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_FIRST_UNREAD_MSG);if(!utils.isEmpty(o))return s(o);let i={...t,topic:COMMAND_TOPICS.GET_FIRST_UNREAD_MSG};e.sendCommand(SIGNAL_CMD.QUERY,i,({code:e,msg:t})=>{if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,e)){let t=common.getError(e);return s(t)}n({message:t})})}),D=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SEARCH_MESSAGES);return utils.isEmpty(o)?s(ErrorType.SDK_FUNC_NOT_DEFINED):s(o)}),U=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.UPDATE_MESSAGE_ATTR);return utils.isEmpty(o)?s(ErrorType.SDK_FUNC_NOT_DEFINED):s(o)}),b=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_MESSAGE_SEARCH_CONTENT);return utils.isEmpty(o)?s(ErrorType.SDK_FUNC_NOT_DEFINED):s(o)}),x=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.INSERT_MESSAGE);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),{sender:r}=t,a=utils.isEqual(i.id,r.id),d=utils.getUUID(),p={tid:d,...t,isSender:a,sender:r};n(p)}),G=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.ADD_MSG_REACTION);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.ADD_MSG_REACTION,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,t=>{let{code:o,msg:i,timestamp:r}=t;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void(common.updateSyncTime({isSender:!0,sentTime:r,io:e}),n()):s({code:o,msg:i})})}),k=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_MSG_REACTION);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.REMOVE_MSG_REACTION,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,t=>{let{code:o,msg:i,timestamp:r}=t;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void(common.updateSyncTime({isSender:!0,sentTime:r,io:e}),n()):s({code:o,msg:i})})}),q=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.TRANSLATE);if(!utils.isEmpty(o))return s(o);let{content:i}=t;if(utils.isEmpty(i))return n(t);let r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.BATCH_TRANSLATE,...t,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o,trans:i}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return s({code:t,msg:o});let{items:r}=i,a={};utils.forEach(r,e=>{let{key:t,content:n}=e;a[t]=n}),n(a)})}),L={},P=e=>{let{conversationId:t,conversationType:n}=e;return`${n}_${t}`},V=(t,n)=>utils.deferred((s,o)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.SUBSCRIBE_MESSAGE);if(!utils.isEmpty(i))return o(i);let r=P(t),a=L[r];if(a)return s();a={timer:0,time:0},L[r]=a;let d={ms:3000};utils.isObject(n)&&utils.isNumber(n.ms)||(n=d);let p=t=>{l(t).then(t=>{let{messages:n}=t;n=n||[];let s=n[n.length-1];s&&(a.time=s.sentTime),utils.forEach(n,t=>{e.emit(SIGNAL_NAME.CMD_RECEIVED,t)})}).catch(utils.noop)},c={...t,time:0};p(c),a.timer=setInterval(()=>{let e={...t,time:a.time,count:200,order:MESSAGE_ORDER.FORWARD};p(e)},n.ms)}),F=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SUBSCRIBE_MESSAGE,!0);if(!utils.isEmpty(o))return s(o);let i=P(t),r=L[i];r&&(clearInterval(r.timer),delete L[i]),n()}),H=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_TOP_MESSAGE);if(!utils.isEmpty(o))return s(o);let{isTop:r,conversationType:a,conversationId:d,messageId:p}=t,c=e.getCurrentUser(),m=r?COMMAND_TOPICS.SET_TOP_MSG:COMMAND_TOPICS.DEL_TOP_MSG,l={topic:m,conversationType:a,conversationId:d,messageId:p,userId:c.id,isTop:!!r};e.sendCommand(SIGNAL_CMD.QUERY,l,e=>{let{code:t,msg:o}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return s({code:t,msg:o});let m={conversationType:a,conversationId:d,content:{msg_id:p,action:r?MSG_TOP_ACTION_TYPE.ADD:MSG_TOP_ACTION_TYPE.REMOVE},sender:c,name:MESSAGE_TYPE.COMMAND_MSG_SET_TOP,sentTime:Date.now()};i(m),n()})}),B=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_TOP_MESSAGE);if(!utils.isEmpty(o))return s(o);let{conversationType:i,conversationId:r}=t,a={topic:COMMAND_TOPICS.GET_TOP_MSG,conversationType:i,conversationId:r};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o,message:i,operator:r,createdTime:a}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return s({code:t,msg:o});let d={};i&&(d={message:i,operator:r,createdTime:a}),n(d)})}),j=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.ADD_FAVORITE_MESSAGE);if(!utils.isEmpty(o))return s(o);let{messages:i}=t,r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.MSG_ADD_FAVORITE,messages:i,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n():s({code:t,msg:o})})}),Y=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.ADD_FAVORITE_MESSAGE);if(!utils.isEmpty(o))return s(o);let{messages:i}=t,r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.MSG_REMOVE_FAVORITE,messages:i,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n():s({code:t,msg:o})})}),Q=t=>utils.deferred((n,s)=>{let o={limit:20,offset:""};utils.isObject(t)||(t=o);let{limit:i=20,offset:r=""}=t,a=e.getCurrentUser(),d={topic:COMMAND_TOPICS.MSG_QRY_FAVORITE,limit:i,offset:r,userId:a.id};e.sendCommand(SIGNAL_CMD.QUERY,d,e=>{let{code:t,msg:o,list:i,offset:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({list:i,offset:r}):s({code:t,msg:o})})});/*
|
|
154
|
+
*/let d={},m={},c=(t,s={})=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.SENDMSG,!0);if(!utils.isEmpty(r))return i({error:r});let{lifeTime:c,lifeTimeAfterRead:p}=t;if(utils.isNumber(c)&&0>=c)return i({error:ErrorType.MESSAGE_LIFETIME_ERROR});if(utils.isNumber(p)&&0>=p)return i({error:ErrorType.MESSAGE_LIFETIME_AFTER_READ_ERROR});let{referMsg:l}=t;if(!utils.isUndefined(l)){let{messageIndex:e,messageId:t}=l;if(utils.isUndefined(e)||utils.isUndefined(t))return i({error:ErrorType.SEND_REFER_MESSAGE_ERROR})}let E=e.getCurrentUser()||{},u=d[t.tid];if(u)return i({...t,sender:E,error:ErrorType.MESSAGE_SEND_REPETITION});n.info({tag:LOG_MODULE.MSG_SEND});let g={onbefore:()=>{}};utils.extend(g,s);let T=t.tid||utils.getUUID(),y=m[T]||utils.getUUID();m[T]=y,d[T]=!0;let _=utils.clone({...t,clientMsgId:y}),{name:C,conversationType:S,conversationId:O,isMass:f}=_,I=common.getMsgFlag(C,{isMass:f});utils.extend(_,{flag:I});let R=a[S];return utils.extend(_,{topic:R}),utils.extend(t,{tid:T,sentState:MESSAGE_SENT_STATE.SENDING,sender:E,isSender:!0}),g.onbefore(utils.clone(t)),e.isConnected()?void e.sendCommand(SIGNAL_CMD.PUBLISH,_,({messageId:n,sentTime:s,code:r,msg:a,msgIndex:l,memberCount:E,modifiedMsg:u})=>{if(delete d[T],r)return utils.extend(t,{error:{code:r,msg:a},sentState:MESSAGE_SENT_STATE.FAILED}),i(utils.clone(t));// 消息发送成功,清理缓存消息
|
|
155
|
+
delete m[T],u=u||{};let{msgContent:g,msgType:y}=u;y=y||t.name,g=g||t.content;let _=common.formatter.toMsg(I);utils.extend(t,{name:y,content:g,sentTime:s,messageId:n,..._,messageIndex:l,sentState:MESSAGE_SENT_STATE.SUCCESS}),0<c&&(t.destroyTime=c+s),0<p&&(t.lifeTimeAfterRead=p);let C=e.getConfig();C.isPC||utils.isEqual(S,CONVERATION_TYPE.CHATROOM)||t.isStatus||e.emit(SIGNAL_NAME.CMD_CONVERSATION_CHANGED,t);let O=utils.isEqual(t.conversationType,CONVERATION_TYPE.CHATROOM);if(O){let{conversationId:e}=t,{msgs:n=[]}=chatroomCacher$1.get(e);n.push(t.messageId),chatroomCacher$1.set(e,{msgs:n})}let f=utils.isEqual(t.conversationType,CONVERATION_TYPE.GROUP);f&&(t=utils.extend(t,{unreadCount:E,readCount:0})),o(t)}):(delete d[T],i({...t,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY}))}),p=(t,s={})=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.SENDMSG);if(!utils.isEmpty(r))return i(r);n.info({tag:LOG_MODULE.MSG_SEND_MASS});let a={onprogress:()=>{},oncompleted:()=>{}};utils.extend(a,s),t=utils.isArray(t)?t:[t],t=utils.map(t,e=>({isMass:!0,...e}));let d=[],m=t.length;utils.iterator(t,(e,t,n)=>{let i=()=>n?(o(),a.oncompleted({messages:d})):void t(),r=e=>{d.push(e),a.onprogress({message:e,count:d.length,total:m}),i()};c(e,s).then(r,r)})}),l=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GETMSGS);if(!utils.isEmpty(o))return s(o);let{conversationId:i}=t,{id:r}=e.getCurrentUser(),a={time:0,order:MESSAGE_ORDER.BACKWARD,count:20,userId:r,topic:COMMAND_TOPICS.HISTORY_MESSAGES,targetId:i,names:[]};a=utils.extend(a,t),e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{messages:t,code:o,msg:i}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void// messageCacher.add(conversation, messages);
|
|
156
|
+
n(e):s({code:o,msg:i})})}),E=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GETMSG);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),r={topic:COMMAND_TOPICS.GET_MSG_BY_IDS,userId:i.id};r=utils.extend(r,t),e.sendCommand(SIGNAL_CMD.QUERY,r,e=>{let{messages:t,code:o,msg:i}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void n({messages:t}):s({code:o,msg:i})})}),u=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.CLEARMSG);if(!utils.isEmpty(r))return o(r);n.info({tag:LOG_MODULE.MSG_CLEAR,...t});let a={topic:COMMAND_TOPICS.CLEAR_MESSAGE,time:0};utils.extend(a,t),e.sendCommand(SIGNAL_CMD.QUERY,a,({code:n,timestamp:r})=>{if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,n)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let n={conversationType:t.conversationType,conversationId:t.conversationId,cleanTime:t.time||0},{senderId:o}=t;utils.isUndefined(o)||utils.extend(n,{senderId:o});let a={name:MESSAGE_TYPE.CLEAR_MSG,content:n};i(a),s()}else{let e=common.getError(n);o(e)}})}),g=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_MSGS);if(!utils.isEmpty(r))return o(r);t=utils.isArray(t)?t:[t];let a=utils.quickSort(utils.clone(t),(e,t)=>e.sentTime>t.sentTime),d=a[0]||{sentTime:-10};n.info({tag:LOG_MODULE.MSG_DELETE,time:d.sentTime});let m=e.getCurrentUser(),c={topic:COMMAND_TOPICS.REMOVE_MESSAGE,messages:t,userId:m.id};e.sendCommand(SIGNAL_CMD.QUERY,c,({code:n,timestamp:r})=>{if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,n)){common.updateSyncTime({isSender:!0,sentTime:r,io:e});let n=utils.map(t,e=>{let{messageId:t,tid:n,conversationType:s,conversationId:o}=e;return{messageId:t,tid:n,conversationType:s,conversationId:o}}),o={name:MESSAGE_TYPE.COMMAND_DELETE_MSGS,content:{conversationType:d.conversationType,conversationId:d.conversationId,messages:n}};i(o),s()}else{let e=common.getError(n);o(e)}})}),T=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.RECALLMSG);if(!utils.isEmpty(r))return o(r);let a={topic:COMMAND_TOPICS.RECALL};utils.extend(a,t),n.info({tag:LOG_MODULE.MSG_RECALL,messageId:t.messageId,sentTime:t.sentTime}),e.sendCommand(SIGNAL_CMD.QUERY,a,n=>{let{code:r,timestamp:a}=n;if(utils.isEqual(r,ErrorType.COMMAND_SUCCESS.code)){common.updateSyncTime({isSender:!0,sentTime:a,io:e});let n=utils.clone(t),{messageId:o,sentTime:r,exts:d}=t,m=e.getCurrentUser();return utils.extend(n,{name:MESSAGE_TYPE.RECALL,sender:m,isSender:!0,content:{messageId:o,sentTime:r,exts:d}}),i(n),utils.clone(n),delete n.exts,utils.extend(n,{name:MESSAGE_TYPE.RECALL_INFO}),s(n)}let{msg:d}=common.getError(r);o({code:r,msg:d})})}),y=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.READMESSAGE);if(!utils.isEmpty(o))return s(o);t=utils.isArray(t)?t:[t],t=utils.map(t,e=>{let{conversationType:t,conversationId:n,messageId:s,sentTime:o}=e;return{conversationType:t,conversationId:n,messageId:s,sentTime:o}});let r={topic:COMMAND_TOPICS.READ_MESSAGE,messages:t};e.sendCommand(SIGNAL_CMD.QUERY,r,({code:s,timestamp:o})=>{if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,s)){common.updateSyncTime({isSender:!0,sentTime:o,io:e});let n=t[0],s={name:MESSAGE_TYPE.READ_MSG,conversationType:n.conversationType,conversationId:n.conversationId,sender:e.getCurrentUser(),content:{msgs:t}};i(s)}n()})}),_=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_MESSAGE_READ_DETAILS);if(!utils.isEmpty(o))return s(o);let i={topic:COMMAND_TOPICS.GET_READ_MESSAGE_DETAIL,message:t};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{delete e.index;let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n(e):s({code:t,msg:o})})}),C=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.UPDATEMESSAGE);if(!utils.isEmpty(r))return o(r);n.info({tag:LOG_MODULE.MSG_UPDATE,messageId:t.messageId});let a={...utils.clone(t),name:MESSAGE_TYPE.MODIFY},d=(e={})=>{utils.extend(a,e),i(a)};// 兼容 PC 端修改非 content 属性,保证多端行为一致性,直接返回,PC 端会做本地消息 update
|
|
157
|
+
if(utils.isUndefined(t.content))return d(),s(a);let m={topic:COMMAND_TOPICS.UPDATE_MESSAGE,...t};e.sendCommand(SIGNAL_CMD.QUERY,m,n=>{let{code:i,msg:r}=n;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,i))return o({code:i,msg:r});let a=e.getCurrentUser();d({sender:a,isSender:!0,isUpdated:!0,content:{messageId:t.messageId,content:t.content}}),s()})}),S=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_MENTIOIN_MESSAGES);if(!utils.isEmpty(o))return s(o);let i={count:20,order:MENTION_ORDER.BACKWARD,messageIndex:0},r=e.getCurrentUser();utils.extend(i,t);let a={topic:COMMAND_TOPICS.GET_MENTION_MSGS,userId:r.id,...i};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o,isFinished:i,msgs:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({isFinished:i,msgs:r}):s({code:t,msg:o})})}),O=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_FILE_TOKEN);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.GET_FILE_TOKEN,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,({cred:e,code:t})=>{e=e||{},n(e)})}),f=(t,n,s={})=>{function o(e,t){let{content:n}=t,s={onprogress:({percent:e})=>{d.onprogress({percent:e,message:t})},oncompleted:({url:e})=>{if(!utils.isInclude([MESSAGE_TYPE.VOICE],l)){let e=n.size||n.file.size,s=e/1024;utils.extend(t.content,{size:s.toFixed(2)})}utils.extend(t.content,{url:e}),delete t.content.file,d.oncompleted(t)},onerror:e=>{d.onerror(ErrorType.UPLOADING_FILE_ERROR,e)}};p.exec(n,e,s)}let{uploadType:i,upload:r,fileCompressLimit:a}=e.getConfig(),d={onprogress:()=>{},onerror:()=>{}};utils.extend(d,s);let{fileType:m,scale:c}=t,p=Uploder(r,{type:i}),{name:l,content:E}=n,u=E.file||{name:""},g=u.name||E.tempPath;g=g||"";let T=g.split("."),y=T[T.length-1];O({type:m,ext:y}).then(e=>{let{type:t}=e;if(utils.isEqual(ErrorType.COMMAND_FAILED.code,e.code))return d.onerror(ErrorType.COMMAND_FAILED);if(!utils.isEqual(t,i))return d.onerror(ErrorType.UPLOAD_PLUGIN_NOTMATCH);let s=utils.extend(e,{file:E.file,scale:c,fileCompressLimit:a});if(utils.isEqual(l,MESSAGE_TYPE.IMAGE)){// 业务层设置缩略图,传入优先,不再执行生成缩略图逻辑
|
|
158
|
+
let{thumbnail:t}=E;if(t)return o(e,n);O({type:m,ext:y}).then(t=>utils.isEqual(ErrorType.COMMAND_FAILED.code,t.code)?d.onerror(ErrorType.COMMAND_FAILED):void common.uploadThumbnail(r,{...s,...t,content:E},(t,s,i)=>{let{height:r,width:a,isUniWebThumbnail:d}=i;utils.extend(n.content,{thumbnail:s,height:r,width:a,type:i.type}),o({...e,isUniWebThumbnail:d},n)}))}if(utils.isEqual(l,MESSAGE_TYPE.VIDEO)){// 业务层设置封面,传入优先,不再执行生成缩略图逻辑
|
|
159
|
+
let{poster:t}=E;if(t)return o(e,n);O({type:m,ext:"png"}).then(t=>utils.isEqual(ErrorType.COMMAND_FAILED.code,t.code)?d.onerror(ErrorType.COMMAND_FAILED):void common.uploadFrame(r,{...s,...t,content:E},(t,s,i)=>{let{height:r,width:a,duration:d}=i;utils.extend(n.content,{poster:s,height:r,width:a,duration:d}),o(e,n)}))}utils.isInclude([MESSAGE_TYPE.FILE,MESSAGE_TYPE.VOICE],l)&&o(e,n)})},I=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.FILE});let o={fileType:FILE_TYPE.FILE};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.FILE});let m=s.onbefore||utils.noop,p=t.tid||utils.getUUID();utils.extend(t,{tid:p,sentState:MESSAGE_SENT_STATE.SENDING});let{size:l=0}=t.content,E=utils.clone(t);return E.content={...t.content,size:l},m(E),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,e.content.size=l,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},R=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.IMAGE});let o={fileType:FILE_TYPE.IMAGE,scale:t.scale};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.IMAGE});let m=s.onbefore||utils.noop,p=t.tid||utils.getUUID();return utils.extend(t,{tid:p,sentState:MESSAGE_SENT_STATE.SENDING}),m(t),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},A=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.VOICE});let o={fileType:FILE_TYPE.AUDIO};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.AUDIO});let m=s.onbefore||utils.noop,p=t.tid||utils.getUUID();return utils.extend(t,{tid:p,sentState:MESSAGE_SENT_STATE.SENDING}),m(t),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},N=(t,s={})=>{t=utils.extend(t,{name:MESSAGE_TYPE.VIDEO});let o={fileType:FILE_TYPE.VIDEO,scale:t.scale};return utils.deferred((i,r)=>{let a=common.check(e,t,FUNC_PARAM_CHECKER.SEND_FILE_MESSAGE,!0),{uploadType:d}=e.getConfig();if(utils.isEqual(d,UPLOAD_TYPE.NONE)&&(a=ErrorType.UPLOAD_PLUGIN_ERROR),!utils.isEmpty(a))return r({error:a});n.info({tag:LOG_MODULE.MSG_SEND_FILE,type:FILE_TYPE.VIDEO});let m=s.onbefore||utils.noop,p=t.tid||utils.getUUID();return utils.extend(t,{tid:p,sentState:MESSAGE_SENT_STATE.SENDING}),m(t),e.isConnected()?void f(o,t,{onprogress:s.onprogress,oncompleted:e=>{delete e.content.tempPath,c(e).then(i,r)},onerror:e=>utils.isEqual(e.code,ErrorType.COMMAND_FAILED.code)?r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.COMMAND_FAILED}):void s.onerror(e,t)}):r({tid:p,sentState:MESSAGE_SENT_STATE.FAILED,error:ErrorType.CONNECTION_NOT_READY})})},M=(t,s={})=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.SEND_MERGE_MESSAGE);if(!utils.isEmpty(r))return i({error:r});n.info({tag:LOG_MODULE.MSG_SEND_MERGE});let{conversationType:a,conversationId:d,messages:m,previewList:p,title:l,lifeTime:E,lifeTimeAfterRead:u}=t;if(20<m.length)return i({error:ErrorType.TRANSFER_MESSAGE_COUNT_EXCEED});let g={channelType:CONVERATION_TYPE.PRIVATE,targetId:""},T=[];m=utils.map(m,e=>(utils.extend(g,{channelType:e.conversationType,targetId:e.conversationId}),{msgId:e.messageId,msgTime:e.sentTime,msgIndex:e.messageIndex})),utils.forEach(m,({msgId:e})=>{T.push(e)});let y=e.getCurrentUser();utils.extend(g,{userId:y.id,msgs:m});let _={conversationId:d,conversationType:a,name:MESSAGE_TYPE.MERGE,mergeMsg:g,lifeTime:E,lifeTimeAfterRead:u,content:{conversationType:g.channelType,conversationId:g.targetId,previewList:p,messageIdList:T,title:l}};return c(_,s).then(o,i)}),v=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_MERGE_MESSAGES);if(!utils.isEmpty(o))return s(o);let i={time:0,order:MESSAGE_ORDER.FORWARD,count:20,topic:COMMAND_TOPICS.GET_MERGE_MSGS};utils.extend(i,t),e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:t,msg:o,isFinished:i,messages:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({isFinished:i,messages:r}):s({code:t,msg:o})})}),h=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_FIRST_UNREAD_MSG);if(!utils.isEmpty(o))return s(o);let i={...t,topic:COMMAND_TOPICS.GET_FIRST_UNREAD_MSG};e.sendCommand(SIGNAL_CMD.QUERY,i,({code:e,msg:t})=>{if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,e)){let t=common.getError(e);return s(t)}n({message:t})})}),D=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SEARCH_MESSAGES);return utils.isEmpty(o)?s(ErrorType.SDK_FUNC_NOT_DEFINED):s(o)}),U=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.UPDATE_MESSAGE_ATTR);return utils.isEmpty(o)?s(ErrorType.SDK_FUNC_NOT_DEFINED):s(o)}),b=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_MESSAGE_SEARCH_CONTENT);return utils.isEmpty(o)?s(ErrorType.SDK_FUNC_NOT_DEFINED):s(o)}),x=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.INSERT_MESSAGE);if(!utils.isEmpty(o))return s(o);let i=e.getCurrentUser(),{sender:r}=t,a=utils.isEqual(i.id,r.id),d=utils.getUUID(),m={tid:d,...t,isSender:a,sender:r};n(m)}),G=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.ADD_MSG_REACTION);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.ADD_MSG_REACTION,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,t=>{let{code:o,msg:i,timestamp:r}=t;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void(common.updateSyncTime({isSender:!0,sentTime:r,io:e}),n()):s({code:o,msg:i})})}),k=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_MSG_REACTION);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.REMOVE_MSG_REACTION,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,t=>{let{code:o,msg:i,timestamp:r}=t;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o)?void(common.updateSyncTime({isSender:!0,sentTime:r,io:e}),n()):s({code:o,msg:i})})}),q=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.TRANSLATE);if(!utils.isEmpty(o))return s(o);let{content:i}=t;if(utils.isEmpty(i))return n(t);let r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.BATCH_TRANSLATE,...t,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o,trans:i}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return s({code:t,msg:o});let{items:r}=i,a={};utils.forEach(r,e=>{let{key:t,content:n}=e;a[t]=n}),n(a)})}),L={},P=e=>{let{conversationId:t,conversationType:n}=e;return`${n}_${t}`},V=(t,n)=>utils.deferred((s,o)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.SUBSCRIBE_MESSAGE);if(!utils.isEmpty(i))return o(i);let r=P(t),a=L[r];if(a)return s();a={timer:0,time:0},L[r]=a;let d={ms:3000};utils.isObject(n)&&utils.isNumber(n.ms)||(n=d);let m=t=>{l(t).then(t=>{let{messages:n}=t;n=n||[];let s=n[n.length-1];s&&(a.time=s.sentTime),utils.forEach(n,t=>{e.emit(SIGNAL_NAME.CMD_RECEIVED,t)})}).catch(utils.noop)},c={...t,time:0};m(c),a.timer=setInterval(()=>{let e={...t,time:a.time,count:200,order:MESSAGE_ORDER.FORWARD};m(e)},n.ms)}),F=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SUBSCRIBE_MESSAGE,!0);if(!utils.isEmpty(o))return s(o);let i=P(t),r=L[i];r&&(clearInterval(r.timer),delete L[i]),n()}),H=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_TOP_MESSAGE);if(!utils.isEmpty(o))return s(o);let{isTop:r,conversationType:a,conversationId:d,messageId:m}=t,c=e.getCurrentUser(),p=r?COMMAND_TOPICS.SET_TOP_MSG:COMMAND_TOPICS.DEL_TOP_MSG,l={topic:p,conversationType:a,conversationId:d,messageId:m,userId:c.id,isTop:!!r};e.sendCommand(SIGNAL_CMD.QUERY,l,e=>{let{code:t,msg:o}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return s({code:t,msg:o});let p={conversationType:a,conversationId:d,content:{msg_id:m,action:r?MSG_TOP_ACTION_TYPE.ADD:MSG_TOP_ACTION_TYPE.REMOVE},sender:c,name:MESSAGE_TYPE.COMMAND_MSG_SET_TOP,sentTime:Date.now()};i(p),n()})}),j=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_TOP_MESSAGE);if(!utils.isEmpty(o))return s(o);let{conversationType:i,conversationId:r}=t,a={topic:COMMAND_TOPICS.GET_TOP_MSG,conversationType:i,conversationId:r};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o,message:i,operator:r,createdTime:a}=e;if(!utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return s({code:t,msg:o});let d={};i&&(d={message:i,operator:r,createdTime:a}),n(d)})}),B=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.ADD_FAVORITE_MESSAGE);if(!utils.isEmpty(o))return s(o);let{messages:i}=t,r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.MSG_ADD_FAVORITE,messages:i,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n():s({code:t,msg:o})})}),Y=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.ADD_FAVORITE_MESSAGE);if(!utils.isEmpty(o))return s(o);let{messages:i}=t,r=e.getCurrentUser(),a={topic:COMMAND_TOPICS.MSG_REMOVE_FAVORITE,messages:i,userId:r.id};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n():s({code:t,msg:o})})}),Q=t=>utils.deferred((n,s)=>{let o={limit:20,offset:""};utils.isObject(t)||(t=o);let{limit:i=20,offset:r=""}=t,a=e.getCurrentUser(),d={topic:COMMAND_TOPICS.MSG_QRY_FAVORITE,limit:i,offset:r,userId:a.id};e.sendCommand(SIGNAL_CMD.QUERY,d,e=>{let{code:t,msg:o,list:i,offset:r}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n({list:i,offset:r}):s({code:t,msg:o})})});/*
|
|
153
160
|
缓存发送失败的 clientMsgId,防止未收到 ACK,重发导致接收端消息重复
|
|
154
161
|
sendMsgMap[tid] = uuid;
|
|
155
162
|
*/ /*
|
|
@@ -195,7 +202,7 @@ let{poster:t}=E;if(t)return o(e,n);O({type:p,ext:"png"}).then(t=>utils.isEqual(E
|
|
|
195
202
|
conversationType: 1,
|
|
196
203
|
conversationId: '',
|
|
197
204
|
}
|
|
198
|
-
*/return{sendMessage:c,sendMassMessage:
|
|
205
|
+
*/return{sendMessage:c,sendMassMessage:p,getMessages:l,removeMessages:g,getMessagesByIds:E,clearMessage:u,recallMessage:T,readMessage:y,getMessageReadDetails:_,updateMessage:C,insertMessage:x,updateMessageAttr:U,setSearchContent:b,getMentionMessages:S,getFileToken:O,sendFileMessage:I,sendImageMessage:R,sendVoiceMessage:A,sendVideoMessage:N,sendMergeMessage:M,getMergeMessages:v,getFirstUnreadMessage:h,searchMessages:D,addMessageReaction:G,removeMessageReaction:k,subscribeMessage:V,unsubscribeMessage:F,translate:q,setTopMessage:H,getTopMessage:j,addFavoriteMessages:B,removeFavoriteMessages:Y,getFavoriteMessages:Q,getContextMessages:s,_uploadFile:f}}function Socket$1(e,t,n){CONNECT_STATE.DISCONNECTED,e.on(SIGNAL_NAME.CONN_CHANGED,e=>{let{state:s,code:o="",user:i={}}=e;n.info({tag:LOG_MODULE.CON_STATUS,state:s,code:o,userId:i.id}),t.emit(EVENT.STATE_CHANGED,e)});let s=t=>utils.deferred((s,o)=>{let i=common.check(e,t,FUNC_PARAM_CHECKER.CONNECT,!0);if(!utils.isEmpty(i))return o(i);let{token:r=""}=t;return r=r.trim(),t=utils.extend(t,{token:r}),e.isNeedConnect()?void(n.info({tag:LOG_MODULE.CON_CONNECT}),e.connect(t,({error:t,user:n,next:i})=>{let{code:r,msg:a}=t;if(utils.isEqual(r,ErrorType.CONNECT_SUCCESS.code)){let t=e.getConfig();return t.isPC?(utils.extend(n,{code:r,next:i}),s(n)):(i(),s(n))}o({code:r,msg:a})})):o(ErrorType.REPREAT_CONNECTION)}),o=()=>utils.deferred(t=>{n.info({tag:LOG_MODULE.CON_DISCONNECT}),e.disconnect();let s=e.getConfig();s.isPC||e.emit(SIGNAL_NAME.CLIENT_CLEAR_MEMORY_CACHE,{}),t()}),i=()=>utils.deferred((e,t)=>{let n=Storage.get(STORAGE.APP_DEVICE),s=n.id||"";return utils.isEmpty(s)&&(s=utils.getDeviceID(),Storage.set(STORAGE.APP_DEVICE,{id:s})),e({id:s})}),r=t=>{utils.isFunction(t)||(t=utils.noop),e.setServerUrlProider(t)},a=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.UPLOAD_PUSH_TOKEN);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.UPLOAD_PUSH_TOKEN,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n():s({code:t,msg:o})})}),d=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SWITCH_PUSH);if(!utils.isEmpty(o))return s(o);let{id:i}=e.getCurrentUser(),r={topic:COMMAND_TOPICS.SWITCH_PUSH,...t,userId:i};e.sendCommand(SIGNAL_CMD.QUERY,r,e=>{let{code:t,msg:o}=e;return utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t)?void n():s({code:t,msg:o})})});return{connect:s,disconnect:o,setServerUrlProider:r,getDevice:i,isNeedConnect:e.isNeedConnect,isConnected:e.isConnected,getCurrentUser:e.getCurrentUser,uploadPushToken:a,switchPush:d}}let cacher=Cache(),heap=({chatroomId:e,attrs:t})=>{let n=[],s=[],{attrs:o}=cacher.get(e);return o=o||[],utils.forEach(t,e=>{let{key:t,value:i,updateTime:r,userId:a,type:d}=e,m={key:t,value:i,updateTime:r,userId:a},c=utils.find(o,e=>utils.isEqual(e.key,t));utils.isEqual(c,-1)&&utils.isEqual(d,CHATROOM_ATTR_OP_TYPE.ADD)&&o.push(m),!utils.isEqual(c,-1)&&utils.isEqual(d,CHATROOM_ATTR_OP_TYPE.ADD)&&o.splice(c,1,m),utils.isEqual(d,CHATROOM_ATTR_OP_TYPE.DEL)?(o.splice(c,1),delete m.value,n.push(m)):s.push(m)}),cacher.set(e,{attrs:o}),{updates:s,dels:n}},removeAll=e=>{cacher.remove(e)},getAll=e=>{let{id:t}=e,n=cacher.get(t),{attrs:s=[]}=n;return{id:t,attributes:s}},removeAttrs=e=>{let{id:t,attributes:n}=e,s=utils.map(n,e=>({...e,type:CHATROOM_ATTR_OP_TYPE.DEL}));heap({chatroomId:t,attrs:s})},getAttrs=e=>{let{id:t,attributes:n}=e,{attrs:s=[]}=cacher.get(t),o=[];return utils.forEach(s,e=>{utils.forEach(n,t=>{utils.isEqual(t.key,e.key)&&o.push(e)})}),{id:t,attributes:o}};var attrCaher={heap,removeAll,getAll,getAttrs,removeAttrs};function Chatroom$1(e,t,n){function s(e){chatroomCacher$1.remove(e),attrCaher.removeAll(e)}function o(t){return utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.JOINCHATROOM);if(!utils.isEmpty(r))return o(r);let{id:a}=t,d=chatroomCacher$1.get(a);if(d.isJoined)return s();let m={...utils.clone(t),isAutoCreate:!0};n.info({tag:LOG_MODULE.CHATROOM_USER_JOIN,...m}),i(m,{success:s,fail:o})})}function i(t,s){let{id:o}=t,i={topic:COMMAND_TOPICS.JOIN_CHATROOM,chatroom:t,conversationId:o},r=t.count;utils.isUndefined(r)&&(r=50),chatroomCacher$1.set(t.id,{isJoined:!0}),e.sendCommand(SIGNAL_CMD.QUERY,i,i=>{let{code:a,timestamp:d}=i;if(n.info({tag:LOG_MODULE.CHATROOM_USER_JOIN,...t,code:a}),utils.isEqual(ErrorType.COMMAND_SUCCESS.code,a)){let n=chatroomCacher$1.get(t.id),i=n.syncMsgTime||0,a=utils.isEqual(0,r),m=i;a&&utils.isEqual(i,0)&&(m=d),0<m&&(m+=1);let c=[{name:SIGNAL_NAME.S_NTF,msg:{receiveTime:m,isNotSync:a,count:r,type:NOTIFY_TYPE.CHATROOM,targetId:o}},{name:SIGNAL_NAME.S_NTF,msg:{receiveTime:0,type:NOTIFY_TYPE.CHATROOM_ATTR,targetId:o}}];return e.sync(c),s.success()}let m=common.getError(a);s.fail(m)})}e.on(SIGNAL_NAME.CMD_CHATROOM_ATTR_RECEIVED,e=>{n.info({tag:LOG_MODULE.CHATROOM_ATTR_RECEIVE,...e});let{dels:s,updates:o}=attrCaher.heap(e),{chatroomId:i}=e;utils.isEmpty(s)||t.emit(EVENT.CHATROOM_ATTRIBUTE_DELETED,{id:i,attributes:s}),utils.isEmpty(o)||t.emit(EVENT.CHATROOM_ATTRIBUTE_UPDATED,{id:i,attributes:o})}),e.on(SIGNAL_NAME.CMD_CHATROOM_DESTROY,e=>{n.info({tag:LOG_MODULE.CHATROOM_DESTORYED,...e}),t.emit(EVENT.CHATROOM_DESTROYED,e)}),e.on(SIGNAL_NAME.CMD_CHATROOM_EVENT,e=>{let{type:o,chatroomId:i}=e;n.info({tag:LOG_MODULE.CHATROOM_SERVER_EVENT,...e}),(utils.isEqual(CHATROOM_EVENT_TYPE.FALLOUT,o)||utils.isEqual(CHATROOM_EVENT_TYPE.QUIT,o))&&(s(i),t.emit(EVENT.CHATROOM_USER_QUIT,e)),utils.isEqual(CHATROOM_EVENT_TYPE.KICK,o)&&(s(i),t.emit(EVENT.CHATROOM_USER_KICKED,e))}),e.on(SIGNAL_NAME.CMD_CHATROOM_REJOIN,()=>{let e=chatroomCacher$1.getAll(),t=[];utils.forEach(e,(e,n)=>{t.push(n)}),n.info({tag:LOG_MODULE.CHATROOM_USER_REJOIN,chatroomIds:t}),utils.iterator(t,(e,t,n)=>{let s={id:e},o=()=>{n||t()};i(s,{success:o,fail:o})})});let r=t=>utils.deferred((s,o)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.JOINCHATROOM);if(!utils.isEmpty(r))return o(r);let{id:a}=t,d=chatroomCacher$1.get(a);if(d.isJoined)return s();let m={...utils.clone(t),isAutoCreate:!1};n.info({tag:LOG_MODULE.CHATROOM_USER_JOIN,...m}),i(m,{success:s,fail:o})}),a=t=>utils.deferred((o,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.QUITCHATROOM);if(!utils.isEmpty(r))return i(r);let a=chatroomCacher$1.get(t.id);if(!a.isJoined)return o();n.info({tag:LOG_MODULE.CHATROOM_USER_QUIT,...t});let d={topic:COMMAND_TOPICS.QUIT_CHATROOM,chatroom:t};e.sendCommand(SIGNAL_CMD.QUERY,d,({code:e})=>{if(n.info({tag:LOG_MODULE.CHATROOM_USER_QUIT,...t,code:e}),utils.isEqual(ErrorType.COMMAND_SUCCESS.code,e))return s(t.id),o();let r=common.getError(e);i(r)})}),d=t=>(t=utils.clone(t),utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.SET_CHATROOM_ATTRS);if(!utils.isEmpty(o))return s(o);let{options:i}=t;utils.isObject(i)||(i={});let{notify:r}=i;if(!utils.isUndefined(r)&&!utils.isString(r)){let e=ErrorType.ILLEGAL_TYPE_PARAMS;return s({code:e.code,msg:`notify ${e.msg},必须是 String 类型`})}t=utils.extend(t,{options:i});let a={topic:COMMAND_TOPICS.SET_CHATROOM_ATTRIBUTES,chatroom:t};attrCaher.removeAttrs(t),e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:t,success:o,fail:i}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return n({success:o,fail:i});let r=common.getError(t);s(r)})})),m=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_CHATROOM_ATTRS);if(!utils.isEmpty(o))return s(o);let{options:i}=t;utils.isObject(i)||(i={});let{notify:r}=i;if(!utils.isUndefined(r)&&!utils.isString(r)){let e=ErrorType.ILLEGAL_TYPE_PARAMS;return s({code:e.code,msg:`notify ${e.msg},必须是 String 类型`})}t=utils.extend(t,{options:i});let a={topic:COMMAND_TOPICS.REMOVE_CHATROOM_ATTRIBUTES,chatroom:t};e.sendCommand(SIGNAL_CMD.QUERY,a,e=>{let{code:o,success:i,fail:r}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return attrCaher.removeAttrs({id:t.id,attributes:i}),n({success:i,fail:r});let a=common.getError(o);s(a)})}),c=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_CHATROOM_ATTRS);if(!utils.isEmpty(o))return s(o);let i=attrCaher.getAttrs(t);n(i)}),p=t=>utils.deferred((n,s)=>{let o=common.check(e,t,FUNC_PARAM_CHECKER.GET_ALL_CHATROOM_ATTRS);if(!utils.isEmpty(o))return s(o);let i=attrCaher.getAll(t);n(i)});/*
|
|
199
206
|
let chatroom = {
|
|
200
207
|
id: 'chatroomId',
|
|
201
208
|
attributes: [
|
|
@@ -222,11 +229,64 @@ let{poster:t}=E;if(t)return o(e,n);O({type:p,ext:"png"}).then(t=>utils.isEqual(E
|
|
|
222
229
|
let chatroom = {
|
|
223
230
|
id: 'chatroomId',
|
|
224
231
|
};
|
|
225
|
-
*/return{joinChatroom:r,joinAndCreateChatroom:o,quitChatroom:a,setChatroomAttributes:d,getChatroomAttributes:c,removeChatroomAttributes:
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
232
|
+
*/return{joinChatroom:r,joinAndCreateChatroom:o,quitChatroom:a,setChatroomAttributes:d,getChatroomAttributes:c,removeChatroomAttributes:m,getAllChatRoomAttributes:p}}function Moment(e,t,n){let s=t=>{let n=e.getConfig(),{currentDomain:s}=n,{http:o}=utils.getProtocol(s),i=s.replace(/http:\/\/|https:\/\/|file:\/\/|wss:\/\/|ws:\/\//g,"");return`${o}//${i}/${t}`},o=(t,n)=>{let s=e.getCurrentUser({ignores:[]}),{token:o}=s,i=e.getConfig(),{appkey:r}=i,a={method:t},d={Appkey:r,Authorization:o};return"POST"===t&&(d=utils.extend(d,{"Content-Type":"application/json"}),a=utils.extend(a,{body:utils.toJSON(n)})),a.headers=d,a},i=t=>utils.deferred((n,i)=>{let r=common.check(e,{},FUNC_PARAM_CHECKER.ADD_MOMENT);if(!utils.isEmpty(r))return i(r);let{text:a,medias:d}=t;if(utils.isUndefined(a)&&utils.isUndefined(d))return i(ErrorType.MOMENT_ADD_PARAM_ERROR);if(utils.isUndefined(a)&&!utils.isArray(d))return i(ErrorType.MOMENT_ADD_PARAM_MDL_ERROR);utils.isUndefined(d)&&!utils.isUndefined(a)&&(a=a.toString());let m=s("momentgateway/moments/add"),c={text:a,medias:d},p=o("POST",{content:c});jrequest.requestNormal(m,p,{success:e=>{let{code:t,data:s}=e;if(!utils.isEqual(t,RESPONSE_CODE.SUCCESS))return i(e);let o={...s,content:c};o=T(o),n(o)},fail:i})}),r=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_MOMENT);if(!utils.isEmpty(r))return i(r);let a=s("momentgateway/moments/del"),{momentIds:d}=t,m=o("POST",{moment_ids:d});jrequest.requestNormal(a,m,{success:e=>{let{code:t}=e;return utils.isEqual(t,RESPONSE_CODE.SUCCESS)?void n():i(e)},fail:i})}),a=t=>utils.deferred((n,i)=>{let r=common.check(e,{},FUNC_PARAM_CHECKER.GET_MOMENT_LIST);if(!utils.isEmpty(r))return i(r);t=t||{order:MOMENT_ORDER.DESC,start:0,limit:20},50<t.limit&&(t.limit=50);let a=utils.formatToQueryStr(t),d=s(`momentgateway/moments/list?${a}`),m=o("GET",t);jrequest.requestNormal(d,m,{success:e=>{let{code:t,data:s}=e;if(!utils.isEqual(t,RESPONSE_CODE.SUCCESS))return i(e);let{items:o,is_finished:r}=s,a=utils.map(o,e=>T(e));n({moments:a,isFinished:r})},fail:i})}),d=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.GET_MOMENT_INFO);if(!utils.isEmpty(r))return i(r);let{momentId:a}=t,d=utils.formatToQueryStr({moment_id:a}),m=s(`momentgateway/moments/info?${d}`),c=o("GET",t);jrequest.requestNormal(m,c,{success:e=>{let{code:t,data:s}=e;if(!utils.isEqual(t,RESPONSE_CODE.SUCCESS))return i(e);let o=T(s);n(o)},fail:i})}),m=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.ADD_COMMENT);if(!utils.isEmpty(r))return i(r);let a=s("momentgateway/moments/comments/add"),{momentId:d,parentCommentId:m,content:c}=t,p={moment_id:d,parent_comment_id:m,content:c},l=o("POST",p);jrequest.requestNormal(a,l,{success:e=>{let{code:t,data:s}=e;if(!utils.isEqual(t,RESPONSE_CODE.SUCCESS))return i(e);let o=utils.extend(p,s),r=_(o);n(r)},fail:i})}),c=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.REMOVE_COMMENT);if(!utils.isEmpty(r))return i(r);let a=s("momentgateway/moments/comments/del"),{momentId:d,commentIds:m}=t,c=o("POST",{moment_id:d,comment_ids:m});jrequest.requestNormal(a,c,{success:e=>{let{code:t}=e;return utils.isEqual(t,RESPONSE_CODE.SUCCESS)?void n():i(e)},fail:i})}),p=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.GET_COMMENT_LIST);if(!utils.isEmpty(r))return i(r);let a={order:COMMENT_ORDER.DESC,start:0,limit:20};a=utils.extend(a,t),50<a.limit&&(a.limit=50),a=utils.rename(a,{momentId:"moment_id"});let d=utils.formatToQueryStr(a),m=s(`momentgateway/moments/comments/list?${d}`),c=o("GET",a);jrequest.requestNormal(m,c,{success:e=>{let{code:t,data:s}=e;if(!utils.isEqual(t,RESPONSE_CODE.SUCCESS))return i(e);let{items:o,is_finished:r}=s,a=utils.map(o,e=>_(e));n({comments:a,isFinished:r})},fail:i})}),l=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.ADD_REACTION);if(!utils.isEmpty(r))return i(r);let a=s("momentgateway/moments/reactions/add"),{momentId:d,reaction:m}=t,c=o("POST",{moment_id:d,reaction:m});jrequest.requestNormal(a,c,{success:e=>{let{code:t}=e;return utils.isEqual(t,RESPONSE_CODE.SUCCESS)?void n():i(e)},fail:i})}),E=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.DELETE_REACTION);if(!utils.isEmpty(r))return i(r);let a=s("momentgateway/moments/reactions/del"),{momentId:d,reaction:m}=t,c=o("POST",{moment_id:d,reaction:m});jrequest.requestNormal(a,c,{success:e=>{let{code:t}=e;return utils.isEqual(t,RESPONSE_CODE.SUCCESS)?void n():i(e)},fail:i})}),u=t=>utils.deferred((n,i)=>{let r=common.check(e,t,FUNC_PARAM_CHECKER.GET_REACTION_LIST);if(!utils.isEmpty(r))return i(r);let a=utils.formatToQueryStr({moment_id:t.momentId}),d=s(`momentgateway/moments/reactions/list?${a}`),m=o("GET",{});jrequest.requestNormal(d,m,{success:e=>{let{code:t,data:s}=e;if(!utils.isEqual(t,RESPONSE_CODE.SUCCESS))return i(e);let{items:o}=s,r=utils.map(o,e=>y(e));n({reactions:r})},fail:i})}),g=e=>utils.rename(e,{user_id:"id",nickname:"name",updated_time:"updatedTime",user_type:"userType"}),T=e=>{let{moment_id:t,content:i={},user_info:r={},reactions:n,top_comments:s,moment_time:o}=e,{text:a,medias:d}=i;utils.isArray(d)||(d=[]),d=utils.map(d,e=>utils.rename(e,{snapshot_url:"snapshotUrl"}));let m=g(r);utils.isArray(n)||(n=[]),n=utils.map(n,e=>y(e)),utils.isArray(s)||(s=[]);let c=utils.map(s,e=>_(e));return{momentId:t,content:{text:a,medias:d},user:m,reactions:n,topComments:c}},y=e=>{let{value:t,timestamp:n,user_info:s}=e,o=g(s);return{value:t,timestamp:n,user:o}},_=e=>{let{comment_id:t,moment_id:n,parent_comment_id:s,content:o,parent_user_info:i,user_info:r,comment_time:a}=e,d={};return i&&i.user_id&&(d=g(i)),{commentId:t,momentId:n,parentCommentId:s||"",content:o,parentUser:d,user:r?g(r):{},commentTime:a}};/*
|
|
233
|
+
var params = {
|
|
234
|
+
text: '',
|
|
235
|
+
medias: [
|
|
236
|
+
{
|
|
237
|
+
"type":"image",
|
|
238
|
+
"url":"xxx",
|
|
239
|
+
"snapshot_url":"xxxx",
|
|
240
|
+
"height":100,
|
|
241
|
+
"width":100
|
|
242
|
+
}
|
|
243
|
+
]
|
|
244
|
+
};
|
|
245
|
+
*/ /*
|
|
246
|
+
var params = {
|
|
247
|
+
momentIds: [];
|
|
248
|
+
};
|
|
249
|
+
*/ /*
|
|
250
|
+
var params = {
|
|
251
|
+
momentId: '',
|
|
252
|
+
};
|
|
253
|
+
*/ /*
|
|
254
|
+
var params = {
|
|
255
|
+
"momentId":"朋友圈 Id",
|
|
256
|
+
"parentCommentId":"父级评论的 Id",
|
|
257
|
+
"content":{
|
|
258
|
+
"text":"评论内容"
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
*/ /*
|
|
262
|
+
var params = {
|
|
263
|
+
"momentId":"朋友圈 Id",
|
|
264
|
+
"commentIds": ["评论 Id"]
|
|
265
|
+
};
|
|
266
|
+
*/ /*
|
|
267
|
+
var params = {
|
|
268
|
+
momentId: '',
|
|
269
|
+
reaction: {
|
|
270
|
+
key: '',
|
|
271
|
+
value: ''
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
*/ /*
|
|
275
|
+
var params = {
|
|
276
|
+
momentId: '',
|
|
277
|
+
reaction: {
|
|
278
|
+
key: 'k1',
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
*/ /*
|
|
282
|
+
var params = {
|
|
283
|
+
momentId: '',
|
|
284
|
+
};
|
|
285
|
+
*/return{addMoment:i,removeMoment:r,getMoments:a,getMoment:d,addComment:m,removeComment:c,getComments:p,addReaction:l,removeReaction:E,getReactions:u}}let init$2=({io:e,emitter:t,logger:n})=>{let s=Socket$1(e,t,n),o=Conversation$1(e,t),i=Message$1(e,t,n),r=Chatroom$1(e,t,n),a=Moment(e);return e.setConfig({logger:n,$message:{insertBatchMsgs:e=>Promise.resolve()}}),{socket:s,conversation:o,message:i,chatroom:r,moment:a}};var Web={init:init$2};function Conversation(e,{conversationUtils:t,webAgent:n}){let s=["removeConversation","clearUnreadcount","getTotalUnreadcount","clearTotalUnreadcount","markUnread","setDraft","getDraft","removeDraft","insertConversation","disturbConversation","setTopConversation","getTopConversations","setAllDisturb","getAllDisturb","getAllDisturb","createConversationTag","destroyConversationTag","getConversationTags","addConversationsToTag","removeConversationsFromTag","_batchInsertConversations"],o=common.formatProvider(s,e);return o.getConversations=(n={})=>e.getConversations(n).then(({conversations:e,groups:s,users:o,isFinished:i})=>{let r=tools.formatConversations({conversations:e,users:o,groups:s});// 不指定会话类型时向内存中插入数据
|
|
286
|
+
return utils.isUndefined(n.conversationType)&&t.add(r),{isFinished:i,conversations:utils.clone(r)}}),o.getConversation=t=>e.getConversation(t).then(e=>{let{conversation:t,groups:n,users:s}=e,o={};return t.isNew||(o=tools.formatConversation({conversation:t,users:s,groups:n})),{conversation:o}}),o}function Message(e,{webAgent:t}){let n=["sendMessage","updateMessageAttr","removeMessages","sendMassMessage","getMessagesByIds","clearMessage","recallMessage","readMessage","getMessageReadDetails","updateMessage","insertMessage","getMentionMessages","getFileToken","sendFileMessage","sendImageMessage","sendVoiceMessage","sendVideoMessage","sendMergeMessage","getMergeMessages","setSearchContent","addMessageReaction","removeMessageReaction","getFirstUnreadMessage"],s=common.formatProvider(n,e);return s.subscribeMessage=e=>t.subscribeMessage(e),s.unsubscribeMessage=e=>t.unsubscribeMessage(e),s.translate=e=>t.translate(e),s.setTopMessage=e=>t.setTopMessage(e),s.getTopMessage=e=>t.getTopMessage(e),s.addFavoriteMessages=e=>t.addFavoriteMessages(e),s.removeFavoriteMessages=e=>t.removeFavoriteMessages(e),s.getFavoriteMessages=e=>t.getFavoriteMessages(e),s.getContextMessages=e=>t.getContextMessages(e),s.getMessages=n=>utils.deferred((s,o)=>{let{order:i=MESSAGE_ORDER.BACKWARD}=n,r={time:n.time||0,order:i,count:n.count||20,names:n.names||[],conversationType:n.conversationType,conversationId:n.conversationId};return e.getMessages(r).then(({messages:m=[],isFinished:i,groups:a,senders:d})=>{let c=utils.filter(m,e=>utils.isEqual(e.sentState,MESSAGE_SENT_STATE.SUCCESS)),p=()=>{let e=tools.formatMsgs({messages:m,senders:d,groups:a});s({isFinished:i,messages:e})},l=utils.isContinuous(c,"messageIndex"),E=m.length,u=i&&r.count>E,g=tools.hasUncompletedStream(c);// 如果首次获取历史消息,从远端拉取历史消息
|
|
287
|
+
return u||!l||utils.isEqual(r.time,0)||g?utils.isEmpty(r.names)?t.getMessages(n).then(t=>{let n=[],o=[];utils.forEach(t.messages,e=>{let t=utils.find(m,t=>utils.isEqual(t.messageId,e.messageId)),s=m[t];s||n.push(e);let{streams:i}=e;if(s){let t=s.streams||[];i.length>t.length&&o.push(e)}}),e.insertBatchMsgs({msgs:utils.clone(n.concat(o))});let i=tools.formatMsgs({messages:m,senders:d,groups:a}),r=n.concat(i);utils.forEach(o,e=>{let{messageId:t,streams:n}=e,s=utils.find(r,e=>utils.isEqual(e.messageId,t));-1<s&&utils.extend(r[s],{streams:n})}),r=utils.quickSort(r,(e,t)=>e.sentTime<t.sentTime),s({isFinished:t.isFinished,messages:r})},o):p():void p()})}),s.searchMessages=t=>e.searchMessages(t).then(e=>{let{total:t,list:n,groups:s,senders:o,isFinished:i}=e;return n=utils.map(n,e=>{let{matchedList:t,matchedCount:n,conversationType:i,conversationId:r}=e,a=tools.formatMsgs({messages:t,senders:o,groups:s}),d={conversation:{id:r,type:i},users:o,groups:s},m=tools.formatConversation(d),{conversationTitle:c,conversationPortrait:p,conversationExts:l}=m;return{matchedList:a,matchedCount:n,conversationType:i,conversationId:r,conversationTitle:c,conversationPortrait:p,conversationExts:l}}),{total:t,list:n,isFinished:i}}),s}function Socket(e,{webAgent:t}){let n=["connect","disconnect","getDevice","isConnected","isNeedConnect","getCurrentUser"],s=common.formatProvider(n,e);return s.setServerUrlProider=e=>{t.setServerUrlProider(e)},s}function Chatroom(e,{io:t,emitter:n,logger:s}){function o(e){chatroomCacher$1.remove(e),attrCaher.removeAll(e)}t.on(SIGNAL_NAME.CMD_CHATROOM_ATTR_RECEIVED,e=>{s.info({tag:LOG_MODULE.CHATROOM_ATTR_RECEIVE,...e});let{dels:t,updates:o}=attrCaher.heap(e),{chatroomId:i}=e;utils.isEmpty(t)||n.emit(EVENT.CHATROOM_ATTRIBUTE_DELETED,{id:i,attributes:t}),utils.isEmpty(o)||n.emit(EVENT.CHATROOM_ATTRIBUTE_UPDATED,{id:i,attributes:o})}),t.on(SIGNAL_NAME.CMD_CHATROOM_DESTROY,e=>{n.emit(EVENT.CHATROOM_DESTROYED,e)}),t.on(SIGNAL_NAME.CMD_CHATROOM_EVENT,e=>{let{type:t,chatroomId:s}=e;(utils.isEqual(CHATROOM_EVENT_TYPE.FALLOUT,t)||utils.isEqual(CHATROOM_EVENT_TYPE.QUIT,t))&&(o(s),n.emit(EVENT.CHATROOM_USER_QUIT,e)),utils.isEqual(CHATROOM_EVENT_TYPE.KICK,t)&&(o(s),n.emit(EVENT.CHATROOM_USER_KICKED,e))});let i=t=>e.joinChatroom(t),r=t=>e.joinAndCreateChatroom(t),a=t=>e.quitChatroom(t),d=t=>e.setChatroomAttributes(t),m=t=>e.getChatroomAttributes(t),c=t=>e.removeChatroomAttributes(t),p=t=>e.getAllChatRoomAttributes(t);return{joinChatroom:i,quitChatroom:a,joinAndCreateChatroom:r,setChatroomAttributes:d,getChatroomAttributes:m,removeChatroomAttributes:c,getAllChatRoomAttributes:p}}let init$1=({appkey:e,io:t,emitter:n,web:s,client:o,logger:i})=>{let{SIGNAL_NAME:r}=ENUM;// 移除 Web 监听
|
|
288
|
+
t.off(r.CMD_CONVERSATION_CHANGED),t.off(r.CONN_CHANGED),t.off(r.CMD_RECEIVED);let a=common.ConversationUtils(),d=JGChatPCClient.init(e,{...s,emitter:n,io:t,ENUM,utils,common,MessageCacher,conversationUtils:a,chatroomCacher:chatroomCacher$1,tools,Storage,logger:i}),m=Socket(d.socket,{webAgent:s.socket}),c=Conversation(d.conversation,{webAgent:s.conversation,conversationUtils:a}),p=Message(d.message,{webAgent:s.message}),l=Chatroom(s.chatroom,{io:t,emitter:n});// 告知 IO 模块当前是 PC 端,做特殊处理,例如:同步会话列表
|
|
289
|
+
return t.setConfig({isPC:!0,$conversation:d.conversation,$socket:d.socket,$message:d.message,logger:i}),{socket:m,conversation:c,message:p,chatroom:l}};var Desktop={init:init$1};function RTCSignal({io:e,emitter:t,logger:n}){e.on(SIGNAL_NAME.CMD_RTC_INVITE_EVENT,e=>t.emit(EVENT.RTC_INVITE_EVENT,e)),e.on(SIGNAL_NAME.CMD_RTC_ROOM_EVENT,e=>t.emit(EVENT.RTC_ROOM_EVENT,e));/* let room = { type, id, members } */let s=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={topic:COMMAND_TOPICS.RTC_CREATE_ROOM,user:o,room:t};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:o}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return n({room:t});let i=common.getError(o);s(i)})}),o=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={topic:COMMAND_TOPICS.RTC_JOIN_ROOM,user:o,room:t};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:o}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return n({room:t});let i=common.getError(o);s(i)})}),i=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={topic:COMMAND_TOPICS.RTC_QUIT_ROOM,user:o,room:t};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:o}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return n({room:t});let i=common.getError(o);s(i)})}),r=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={topic:COMMAND_TOPICS.RTC_ACCEPT,user:o,...t};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:t}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return n(e);let o=common.getError(t);s(o)})}),a=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={topic:COMMAND_TOPICS.RTC_HANGUP,user:o,roomId:t.id};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:t}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return n();let o=common.getError(t);s(o)})}),d=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={topic:COMMAND_TOPICS.RTC_QRY_ROOM,user:o,room:t};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:t,room:o}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return n({...o});let i=common.getError(t);s(i)})}),m=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={user:o,room:t,topic:COMMAND_TOPICS.RTC_PING};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:o}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,o))return n({room:t});let i=common.getError(o);s(i)})}),c=t=>utils.deferred((n,s)=>{let o=e.getCurrentUser(),i={channel:RTC_CHANNEL.ZEGO,...t,topic:COMMAND_TOPICS.RTC_INVITE,user:o};e.sendCommand(SIGNAL_CMD.QUERY,i,e=>{let{code:t}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return n(e);let o=common.getError(t);s(o)})}),p=t=>utils.deferred((n,s)=>{e.getCurrentUser();let o={...t,topic:COMMAND_TOPICS.RTC_UPDATE_STATE};e.sendCommand(SIGNAL_CMD.QUERY,o,e=>{let{code:t}=e;if(utils.isEqual(ErrorType.COMMAND_SUCCESS.code,t))return n();let o=common.getError(t);s(o)})});/* let room = { type, id, members } */ /* let room = { type, id } */ /* let options = { roomId } */ /* let room = { id }*/ /* let room = { id } */ /* let room = { id } */ /* let options = {
|
|
230
290
|
roomId: '',
|
|
231
291
|
roomType: roomType,
|
|
232
292
|
memberIds: memberIds,
|
|
@@ -239,7 +299,7 @@ return t.setConfig({isPC:!0,$conversation:d.conversation,$socket:d.socket,$messa
|
|
|
239
299
|
memberId: '',
|
|
240
300
|
state: CALL_STATE.INCOMMING
|
|
241
301
|
};
|
|
242
|
-
*/return{createRTCRoom:s,joinRTCRoom:o,quitRTCRoom:i,queryRTCRoom:d,pingRTC:
|
|
302
|
+
*/return{createRTCRoom:s,joinRTCRoom:o,quitRTCRoom:i,queryRTCRoom:d,pingRTC:m,inviteRTC:c,acceptRTC:r,hangupRTC:a,updateRTCState:p,$emitter:t,isConnected:e.isConnected,getCurrentUser:e.getCurrentUser}}/*
|
|
243
303
|
let option = {
|
|
244
304
|
name: 'dbname',
|
|
245
305
|
version: 'dbversion',
|
|
@@ -251,9 +311,9 @@ return t.setConfig({isPC:!0,$conversation:d.conversation,$socket:d.socket,$messa
|
|
|
251
311
|
}
|
|
252
312
|
]
|
|
253
313
|
}
|
|
254
|
-
*/function DB$3(e){function t(){utils.forEach(
|
|
255
|
-
function n(e){return d?void(
|
|
256
|
-
c.onerror=t=>{void 0,d=!0},c.onsuccess=n=>{a=c.result,t()},c.onupgradeneeded=t=>{a=c.result,s()};let
|
|
314
|
+
*/function DB$3(e){function t(){utils.forEach(m,({name:e,params:t})=>{u[e](...t)}),m=[]}// option => { name: 'search', params: [] }
|
|
315
|
+
function n(e){return d?void(m=[]):void m.push(e)}function s(){utils.forEach(r,e=>{let{name:t,autoIncrement:n=!0,indexs:s=[]}=e;if(!a.objectStoreNames.contains(t)){let e=a.createObjectStore(t,{autoIncrement:n});utils.forEach(s,t=>{e.createIndex(t.name,t.value)})}}),setTimeout(()=>{t()},100)}let{name:o,version:i=1,tables:r={}}=e,a={},d=!1,m=[],c=window.indexedDB.open(o,i);// 数据库初始化是移步的,如果初始化成功之前有请求,优先缓存,初始化成功后再执行 IO 操作
|
|
316
|
+
c.onerror=t=>{void 0,d=!0},c.onsuccess=n=>{a=c.result,t()},c.onupgradeneeded=t=>{a=c.result,s()};let p=e=>{let{name:t,record:s}=e;return utils.isUndefined(a.name)?n({name:"insert",params:[e]}):utils.deferred((e,n)=>{let o=a.transaction([t],"readwrite"),i=o.objectStore(t);o.onsuccess=function(){e()},o.onerror=function(t){n(t)},s=utils.clone(s),i.add(s)})},l=(e,t)=>{if(utils.isUndefined(a.name))return n({name:"search",params:[e,t]});let{name:s,index:o={}}=e,{name:i,type:r,values:d=[]}=o,m=IDBKeyRange[r](...d),c=a.transaction([s]),p=c.objectStore(s),l=p.index(i),E=l.openCursor(m),u=[];E.onsuccess=function(e){let n=e.target.result;n?(u.push(n.value),n.continue()):t({list:u})},E.onerror=function(e){t({list:[]},e)}},E=e=>utils.isUndefined(a.name)?n({name:"remove",params:[e]}):utils.deferred((t,n)=>{let{name:s,index:o}=e,i=a.transaction([s],"readwrite"),r=i.objectStore(s),{name:d,type:m,values:c=[]}=o,p=IDBKeyRange[m](...c),l=r.index(d),E=l.openCursor(p);E.onsuccess=function(){var e=E.result;e?(e.delete(),e.continue()):t()},E.onerror=function(t){n(t)}}),u={insert:p,search:l,remove:E};/*
|
|
257
317
|
let params = {
|
|
258
318
|
name: 'tableName',
|
|
259
319
|
index: {
|
|
@@ -269,6 +329,6 @@ c.onerror=t=>{void 0,d=!0},c.onsuccess=n=>{a=c.result,t()},c.onupgradeneeded=t=>
|
|
|
269
329
|
values: [[], [], false, false]
|
|
270
330
|
}
|
|
271
331
|
};
|
|
272
|
-
*/return u}function DB$2(e){let t=e=>{},n=(e,t)=>{t({list:[]})},s=e=>{},o={insert:t,search:n,remove:s};return o}let DB=DB$3;common.isUni()&&(DB=DB$2);var DB$1=DB;function Logger(e={}){let t="LOGS",n={TIME:"time",LEVEL:"level",T_L_GROUP:"time_level"},{isConsole:d=!0,appkey:s,sessionId:o,getCurrentUser:i,getVersion:r,serverList:a}=e,
|
|
273
|
-
r=r.trim(),utils.extend(e,{uploadType:
|
|
274
|
-
l.on(SIGNAL_NAME.CMD_STREAM_APPENDED,e=>{s.emit(EVENT.STREAM_APPENDED,{message:e})}),l.on(SIGNAL_NAME.CMD_STREAM_COMPLETED,e=>{let{conversationId:t,conversationType:n,messageId:i}=e;o.message.getMessagesByIds({conversationId:t,conversationType:n,messageIds:[i]}).then(({messages:t})=>{let n=t[0]||{content:""};s.emit(EVENT.STREAM_COMPLETED,{message:{...e,content:n.content}})})});let g={...o.socket,...o.message,...o.conversation,...o.chatroom,...s,registerMessage:common.registerMessage,isDesktop:common.isDesktop,install:e=>{if(!utils.isObject(e))return;let{name:t}=e,n=u[t]||function(){return{}},s=n();return s},Event:EVENT,ConnectionState:CONNECT_STATE,ConversationType:CONVERATION_TYPE,MessageType:MESSAGE_TYPE,ConversationOrder:CONVERSATION_ORDER,ErrorType,MentionType:MENTION_TYPE,MessageOrder:MESSAGE_ORDER,MentionOrder:MENTION_ORDER,FileType:FILE_TYPE,UndisturbType:UNDISTURB_TYPE,SentState:MESSAGE_SENT_STATE,UnreadTag:UNREAD_TAG,ConversationTagType:CONVERATION_TAG_TYPE,MediaType:MEDIA_TYPE,UserType:USER_TYPE,StreamEvent:STREAM_EVENT,ConversationTopType:CONVERSATION_TOP_TYPE,PlatformType:PLATFORM_TYPE,PushChannel:PUSH_CHANNEL};return g};var client={init,Event:EVENT,ConnectionState:CONNECT_STATE,ConversationType:CONVERATION_TYPE,MessageType:MESSAGE_TYPE,ConversationOrder:CONVERSATION_ORDER,ErrorType,MentionType:MENTION_TYPE,MessageOrder:MESSAGE_ORDER,MentionOrder:MENTION_ORDER,FileType:FILE_TYPE,UndisturbType:UNDISTURB_TYPE,SentState:MESSAGE_SENT_STATE,UnreadTag:UNREAD_TAG,ConversationTagType:CONVERATION_TAG_TYPE,MediaType:MEDIA_TYPE,UserType:USER_TYPE,StreamEvent:STREAM_EVENT,ConversationTopType:CONVERSATION_TOP_TYPE,PlatformType:PLATFORM_TYPE,PushChannel:PUSH_CHANNEL},index={...client};export{index as default};
|
|
332
|
+
*/return u}function DB$2(e){let t=e=>{},n=(e,t)=>{t({list:[]})},s=e=>{},o={insert:t,search:n,remove:s};return o}let DB=DB$3;common.isUni()&&(DB=DB$2);var DB$1=DB;function Logger(e={}){let t="LOGS",n={TIME:"time",LEVEL:"level",T_L_GROUP:"time_level"},{isConsole:d=!0,appkey:s,sessionId:o,getCurrentUser:i,getVersion:r,serverList:a}=e,m=DB$1({name:`_IMIIM_${s}`,tables:[{name:"LOGS",indexs:[{name:n.TIME,value:"time"},{name:n.LEVEL,value:"level"},{name:n.T_L_GROUP,value:["time","level"]}]}]}),c=()=>{let e=604800000,s=Date.now()-604800000;m.remove({name:t,index:{name:n.TIME,type:"upperBound",values:[s,!1]}})};c();let p=(e,n,s)=>{m.insert({name:t,record:{sessionId:o,level:e,time:n,content:s}})},l=(e,t)=>{let n=Date.now();if(p(e,n,t),d){let e=utils.formatTime(n),s=utils.toJSON(t)}},E=e=>{l(LOG_LEVEL.ERROR,e)},u=e=>{l(LOG_LEVEL.WARN,e)},g=e=>{l(LOG_LEVEL.FATAL,e)},T=e=>{l(LOG_LEVEL.INFO,e)},y=({start:e,end:o,messageId:r})=>{let d={name:t,index:{name:n.TIME,type:"bound",values:[e,o,!1,!1]}},c=common.getNaviStorageKey();Storage.get(c),m.search(d,e=>{let t=i(),{token:n}=t,o=a[0],{http:d}=utils.getProtocol(o),m=o.replace(/http:\/\/|https:\/\/|file:\/\/|wss:\/\/|ws:\/\//g,""),c=`${d}//${m}/navigator/upload-log-plain`;jrequest.requestNormal(c,{method:"POST",headers:{"Content-Type":"application/json","x-appkey":s,"x-token":n},body:utils.toJSON({msg_id:r,log:utils.toJSON(e.list)})})})};return{log:l,error:E,warn:u,fatal:g,info:T,report:y}}let init=e=>{function t(){return l.getCurrentUser({ignores:[]})}function n(){return l.getVersion()}let s=Emitter(),o={},{upload:i,appkey:r="",log:a={},serverList:d=[]}=e,m=common.checkUploadType(i),c=common.getSessionId(),p=Logger({...a,appkey:r,sessionId:c,getCurrentUser:t,getVersion:n,serverList:d});// 移除 AppKey 前后空格
|
|
333
|
+
r=r.trim(),utils.extend(e,{uploadType:m,logger:p,appkey:r});let l=IO(e),E=Web.init({io:l,emitter:s,logger:p});o=E,common.isDesktop()&&(s=Emitter(),o=Desktop.init({appkey:r,io:l,emitter:s,web:E,client:JGChatPCClient,logger:p}));let u={call:()=>RTCSignal({io:l,emitter:s,logger:p})};// PC 和 Web 复用的事件在此处透传
|
|
334
|
+
l.on(SIGNAL_NAME.CMD_STREAM_APPENDED,e=>{s.emit(EVENT.STREAM_APPENDED,{message:e})}),l.on(SIGNAL_NAME.CMD_STREAM_COMPLETED,e=>{let{conversationId:t,conversationType:n,messageId:i}=e;o.message.getMessagesByIds({conversationId:t,conversationType:n,messageIds:[i]}).then(({messages:t})=>{let n=t[0]||{content:""};s.emit(EVENT.STREAM_COMPLETED,{message:{...e,content:n.content}})})});let g={...o.socket,...o.message,...o.conversation,...o.chatroom,...o.moment,...s,registerMessage:common.registerMessage,isDesktop:common.isDesktop,install:e=>{if(!utils.isObject(e))return;let{name:t}=e,n=u[t]||function(){return{}},s=n();return s},Event:EVENT,ConnectionState:CONNECT_STATE,ConversationType:CONVERATION_TYPE,MessageType:MESSAGE_TYPE,ConversationOrder:CONVERSATION_ORDER,ErrorType,MentionType:MENTION_TYPE,MessageOrder:MESSAGE_ORDER,MentionOrder:MENTION_ORDER,FileType:FILE_TYPE,UndisturbType:UNDISTURB_TYPE,SentState:MESSAGE_SENT_STATE,UnreadTag:UNREAD_TAG,ConversationTagType:CONVERATION_TAG_TYPE,MediaType:MEDIA_TYPE,UserType:USER_TYPE,StreamEvent:STREAM_EVENT,ConversationTopType:CONVERSATION_TOP_TYPE,PlatformType:PLATFORM_TYPE,PushChannel:PUSH_CHANNEL};return g};var client={init,Event:EVENT,ConnectionState:CONNECT_STATE,ConversationType:CONVERATION_TYPE,MessageType:MESSAGE_TYPE,ConversationOrder:CONVERSATION_ORDER,ErrorType,MentionType:MENTION_TYPE,MessageOrder:MESSAGE_ORDER,MentionOrder:MENTION_ORDER,FileType:FILE_TYPE,UndisturbType:UNDISTURB_TYPE,SentState:MESSAGE_SENT_STATE,UnreadTag:UNREAD_TAG,ConversationTagType:CONVERATION_TAG_TYPE,MediaType:MEDIA_TYPE,UserType:USER_TYPE,StreamEvent:STREAM_EVENT,ConversationTopType:CONVERSATION_TOP_TYPE,PlatformType:PLATFORM_TYPE,PushChannel:PUSH_CHANNEL},index={...client};export{index as default};
|