diff --git a/im-uniapp/common/imSdk/lim-sdk.js b/im-uniapp/common/imSdk/lim-sdk.js index 0208664..74c9ba2 100644 --- a/im-uniapp/common/imSdk/lim-sdk.js +++ b/im-uniapp/common/imSdk/lim-sdk.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.imsdk=e():t.imsdk=e()}(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=4)}([function(t,e,n){"use strict";var r=this&&this.__spreadArrays||function(){for(var t=0,e=0,n=arguments.length;e0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=1e4){r=Date.now();var s=e.imClient.buildMessagePack(y.SystemCommand.PING,{});t.send(s.pack(!1))}setTimeout(i,500)}else a.default.error("heartbeatLoop exited")};setTimeout(i,500)},t.prototype.createP2PTextMessage=function(t,e){var n=new g.MessagePack(this.appId);return n.buildTextMessagePack(this.userId,t,e),n},t.prototype.sendP2PMessage=function(t){var n=e.imClient.buildMessagePack(y.MessageCommand.MSG_P2P,t);this.conn&&this.conn.send(n.pack(!1))},t.prototype.sendP2PMessageReciveAck=function(t){console.log("=============== sendP2PMessageReciveAck"),console.log(t),t.toId=t.fromId,t.fromId=this.userId,console.log(t);var n=e.imClient.buildMessagePack(y.MessageCommand.MSG_RECIVE_ACK,t);t.conversationType=0;var r=e.imClient.buildMessagePack(y.MessageCommand.MSG_READED,t),i=e.imClient.buildMessagePack(y.MessageCommand.MSG_READED_RECEIPT,t);this.conn&&(this.conn.send(n.pack(!1)),this.conn.send(r.pack(!1)),this.conn.send(i.pack(!1)))},t.prototype.sendP2PMessageReadedReceipt=function(t){console.log("=============== sendP2PMessageReadedRECEIPT"),console.log(t),t.toId=t.fromId,t.fromId=this.userId,console.log(t);var n=e.imClient.buildMessagePack(y.MessageCommand.MSG_READED_RECEIPT,t);this.conn&&(console.log("=============== sendP2PMessageReadedRECEIPT 正式开始发送已读回执"),this.conn.send(n.pack(!1)))},t.prototype.getUserId=function(){return this.userId},t.prototype.loadOfflineMessage=function(){return r(this,void 0,void 0,(function(){var t,n;return i(this,(function(r){switch(r.label){case 0:return a.default.info("loadOfflineMessage start"),[4,new p.default(this.httpUrl).call("/message/syncOfflineMessage",this.getRequestParams(),{clientType:this.clientType,operater:this.userId,appId:this.appId,lastSequence:this.lastOfflineMessageSequence,maxLimit:100})];case 1:return(t=r.sent()).isSucceed()?(this.lastOfflineMessageSequence=t.data.maxSequence,n=t.data.dataList,this.offlineMessageList.push(n),n.length>0&&"function"==typeof e.imClient.listeners.onOfflineMessage&&e.imClient.listeners.onOfflineMessage(n),console.log(t.data.completed),t.data.completed||this.loadOfflineMessage()):a.default.error("loadOfflineMessage - error"),[2]}}))}))},t}();e.ImClient=b,e.limLogin=function(t,e,n){return r(void 0,void 0,void 0,(function(){return i(this,(function(r){return[2,new Promise((function(r,i){var o=new c.w3cwebsocket(t);o.binaryType="arraybuffer",a.default.info("limLogin");var s=setTimeout((function(){clearTimeout(s),r({success:!1,err:new Error("timeout"),conn:o})}),1e4);o.onopen=function(){if(o.readyState==c.w3cwebsocket.OPEN){"function"==typeof n.listeners.onSocketConnectEvent&&n.listeners.onSocketConnectEvent(t,e),a.default.info("开启连接");var r={userId:e.userId},i=n.buildMessagePack(9e3,r);o.send(i.pack(!1))}},o.onerror=function(t){clearTimeout(s),a.default.error(t),r({success:!1,err:t,conn:o})},o.onmessage=function(t){if("string"!=typeof t.data){clearTimeout(s);var e=new u.default(t.data).int32().int32().unpack(),n=e[0];e[1];9001==n&&r({success:!0,conn:o})}else a.default.info("Received: '"+t.data+"'")}}))]}))}))},e.getLen=function(t){for(var e=0,n=0;n=1&&r<=126||65376<=r&&r<=65439?e++:e+=3}return e},e.imClient=new b},function(t,e,n){"use strict";(function(t){e.__esModule=!0;var r=function(){function e(){}return e.getFetchToolkit=function(){var e;if(void 0!==t.fetch&&"function"==typeof t.fetch)e=t.fetch;else if("function"==typeof fetch)e=fetch;else{e=n(9).fetch}return e},e}();e.default=r}).call(this,n(8))},function(t,e,n){"use strict";e.__esModule=!0,e.im=void 0;var r=n(2);e.im=r.imClient,"undefined"!=typeof uni&&(uni.im=r.imClient)},function(t,e,n){"use strict";e.__esModule=!0;var r=function(){function t(t,e){this.Type_Byte=1,this.Type_Short=2,this.Type_UShort=3,this.Type_Int32=4,this.Type_UInt32=5,this.Type_String=6,this.Type_VString=7,this.Type_Int64=8,this.Type_Float=9,this.Type_Double=10,this.Type_ByteArray=11,this._offset=0,this._list=[],this._littleEndian=!1,this._org_buf=t?t.constructor==DataView?t:t.constructor==Uint8Array?new DataView(t.buffer,e):new DataView(t,e):new DataView(new Uint8Array([]).buffer),this.arrayBuf=t,this.offset=e}return t.prototype.bigEndian=function(){return this._littleEndian=!1,this},t.prototype.littleEndianfunction=function(){return this._littleEndian=!0,this},t.prototype.utf8Write=function(t,e,n){for(var r=0,i=0,o=n.length;i>6),t.setUint8(e++,128|63&r)):r<55296||r>=57344?(t.setUint8(e++,224|r>>12),t.setUint8(e++,128|r>>6&63),t.setUint8(e++,128|63&r)):(i++,r=65536+((1023&r)<<10|1023&n.charCodeAt(i)),t.setUint8(e++,240|r>>18),t.setUint8(e++,128|r>>12&63),t.setUint8(e++,128|r>>6&63),t.setUint8(e++,128|63&r))},t.prototype.int32=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getInt32(this._offset,this._littleEndian)),this._offset+=4):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Int32,d:t,l:4}),this._offset+=4),this},t.prototype.uint32=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getUint32(this._offset,this._littleEndian)),this._offset+=4):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_UInt32,d:t,l:4}),this._offset+=4),this},t.prototype.blength=function(){return this._offset},t.prototype.string=function(t,e){if(0==arguments.length){var n=this._org_buf.getInt32(this._offset,this._littleEndian);this._offset+=4,this._list.push(this.utf8Read(this._org_buf,this._offset,n)),this._offset+=n}else{n=0;t&&(n=this.utf8Length(t)),this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_String,d:t,l:n}),this._offset+=n+4}return this},t.prototype.utf8Length=function(t){for(var e=0,n=0,r=0,i=t.length;r=57344?n+=3:(r++,n+=4);return n},t.prototype.utf8Read=function(t,e,n){for(var r="",i=0,o=e,s=e+n;o=65536?(i-=65536,r+=String.fromCharCode(55296+(i>>>10),56320+(1023&i))):r+=String.fromCharCode(i)}else r+=String.fromCharCode((15&a)<<12|(63&t.getUint8(++o))<<6|(63&t.getUint8(++o))<<0);else r+=String.fromCharCode((15&a)<<6|63&t.getUint8(++o));else r+=String.fromCharCode(a)}return r},t.prototype.vstring=function(t,e,n){if(!e)throw new Error("vstring must got len argument");if(null==t||null==t){for(var r=0,i=this._offset;i0&&r++;this._list.push(this.utf8Read(this._org_buf,this._offset,r)),this._offset+=e}else this._list.splice(null!=n?n:this._list.length,0,{t:this.Type_VString,d:t,l:e}),this._offset+=e;return this},t.prototype.int64=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getFloat64(this._offset,this._littleEndian)),this._offset+=8):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Int64,d:t,l:8}),this._offset+=8),this},t.prototype.float=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getFloat32(this._offset,this._littleEndian)),this._offset+=4):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Float,d:t,l:4}),this._offset+=4),this},t.prototype.double=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getFloat64(this._offset,this._littleEndian)),this._offset+=8):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Double,d:t,l:8}),this._offset+=8),this},t.prototype.byteArray=function(t,e,n){if(!e)throw new Error("byteArray must got len argument");if(null==t||null==t){var r=new Uint8Array(this._org_buf.buffer.slice(this._offset,this._offset+e));this._list.push(r),this._offset+=e}else this._list.splice(null!=n?n:this._list.length,0,{t:this.Type_ByteArray,d:t,l:e}),this._offset+=e;return this},t.prototype.unpack=function(){return this._list},t.prototype.packWithHead=function(){return this.pack(!0)},t.prototype.pack=function(t){this._org_buf=new DataView(new ArrayBuffer(t?this._offset+4:this._offset));var e=0;t&&(this._org_buf.setUint32(e,this._offset,this._littleEndian),e+=4);for(var n=0;n>2,o=(3&e)<<4|(n=t.charCodeAt(l++))>>4,s=(15&n)<<2|(r=t.charCodeAt(l++))>>6,a=63&r,isNaN(n)?s=a=64:isNaN(r)&&(a=64),u=u+this._keyStr.charAt(i)+this._keyStr.charAt(o)+this._keyStr.charAt(s)+this._keyStr.charAt(a);return u},decode:function(t){var e,n,r,i,o,s,a="",u=0;for(t=t.replace(/[^A-Za-z0-9+/=]/g,"");u>4,n=(15&i)<<4|(o=this._keyStr.indexOf(t.charAt(u++)))>>2,r=(3&o)<<6|(s=this._keyStr.indexOf(t.charAt(u++))),a+=String.fromCharCode(e),64!=o&&(a+=String.fromCharCode(n)),64!=s&&(a+=String.fromCharCode(r));return a=Base64._utf8_decode(a)},_utf8_encode:function(t){t=t.replace(/rn/g,"n");for(var e="",n=0;n127&&r<2048?(e+=String.fromCharCode(r>>6|192),e+=String.fromCharCode(63&r|128)):(e+=String.fromCharCode(r>>12|224),e+=String.fromCharCode(r>>6&63|128),e+=String.fromCharCode(63&r|128))}return e},_utf8_decode:function(t){for(var e="",n=0,r=0,i=0;n191&&r<224)i=t.charCodeAt(n+1),e+=String.fromCharCode((31&r)<<6|63&i),n+=2;else{i=t.charCodeAt(n+1);var o=t.charCodeAt(n+2);e+=String.fromCharCode((15&r)<<12|(63&i)<<6|63&o),n+=3}return e}},WebToolkit=function(){function WebToolkit(){}return WebToolkit.getBrowserInfo=function(){var t=navigator.userAgent.toLowerCase(),e=/edge\/[\d.]+/gi,n=/trident\/[\d.]+/gi,r=/msie\s[\d.]+/gi,i=/firefox\/[\d.]+/gi,o=/chrome\/[\d.]+/gi,s=/safari\/[\d.]+/gi,a=/opr\/[\d.]+/gi,u={code:0,system:t.split(" ")[1].split(" ")[0].split("(")[1],browser:"",browserVersion:""};return t.indexOf("trident")>0?(u.browser=t.match(n)[0].split("/")[0],u.browserVersion=t.match(n)[0].split("/")[1],u):t.indexOf("msie")>0?(u.browser=t.match(r)[0].split(" ")[0],u.browserVersion=t.match(r)[0].split(" ")[1],u):t.indexOf("edge")>0?(u.browser=t.match(e)[0].split("/")[0],u.browserVersion=t.match(e)[0].split("/")[1],u):t.indexOf("firefox")>0?(u.browser=t.match(i)[0].split("/")[0],u.browserVersion=t.match(i)[0].split("/")[1],u):t.indexOf("opr")>0?(u.browser=t.match(a)[0].split("/")[0],u.browserVersion=t.match(a)[0].split("/")[1],u):t.indexOf("safari")>0&&t.indexOf("chrome")<0?(u.browser=t.match(s)[0].split("/")[0],u.browserVersion=t.match(s)[0].split("/")[1],u):t.indexOf("chrome")>0?(u.browser=t.match(o)[0].split("/")[0],u.browserVersion=t.match(o)[0].split("/")[1],u):(u.code=-1,u)},WebToolkit.getWxappInfo=function(){return{system:"WXAPP",browser:"WXAPP",browserVersion:"1.0"}},WebToolkit.getReactNativeInfo=function(){return{system:"RNNative",browser:"RNNative",browserVersion:"1.0"}},WebToolkit.getUniAppInfo=function(){return{system:"UNIAPP",browser:"UNIAPP",browserVersion:"1.0"}},WebToolkit.loadJS=function(t,e){var n=document.createElement("script"),r=e||function(){};n.type="text/javascript";var i=!1;for(var o in document.getElementsByTagName("head")[0].children){var s=document.getElementsByTagName("head")[0].children[o];void 0!==s.outerHTML&&s.outerHTML.indexOf(t)>=0&&(i=!0)}i?r():(n.readyState?n.onreadystatechange=function(){"loaded"!=n.readyState&&"complete"!=n.readyState||(n.onreadystatechange=null,r())}:n.onload=function(){r()},n.src=t,document.getElementsByTagName("head")[0].appendChild(n))},WebToolkit.getIpInfoByFetch=function(callback){var url="http://pv.sohu.com/cityjson?ie=utf-8",fetch=Fetch_1.default.getFetchToolkit(),request={method:"GET",mode:"cors",headers:{"Content-Type":"application/json"}};return fetch(url,request).then((function(t){return t.text()})).then((function(res){if("function"==typeof callback){var currentCity=eval("_current_city="+res.replace("var returnCitySN = ",""));callback(currentCity)}})).catch((function(t){Logger_1.default.trace(t)}))},WebToolkit.getIpInfoByInsertScript=function(t){WebToolkit.loadJS("http://pv.sohu.com/cityjson?ie=utf-8",(function(){t(window.returnCitySN)}))},WebToolkit.getIpInfo=function(t){WebToolkit.getIpInfoByFetch(t)},WebToolkit.getDeviceInfo=function(){return WebToolkit.getUniAppInfo()},WebToolkit.base64Encode=function(t){return Base64.encode(t)},WebToolkit.base64Decode=function(t){return Base64.decode(t)},WebToolkit}();exports.default=WebToolkit},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";n.r(e),n.d(e,"Headers",(function(){return p})),n.d(e,"Request",(function(){return v})),n.d(e,"Response",(function(){return C})),n.d(e,"DOMException",(function(){return I})),n.d(e,"fetch",(function(){return R}));var r="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==r&&r,i="URLSearchParams"in r,o="Symbol"in r&&"iterator"in Symbol,s="FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch(t){return!1}}(),a="FormData"in r,u="ArrayBuffer"in r;if(u)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],f=ArrayBuffer.isView||function(t){return t&&l.indexOf(Object.prototype.toString.call(t))>-1};function c(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t}function h(t){return"string"!=typeof t&&(t=String(t)),t}function d(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return o&&(e[Symbol.iterator]=function(){return e}),e}function p(t){this.map={},t instanceof p?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function _(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function y(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function g(t){var e=new FileReader,n=y(e);return e.readAsArrayBuffer(t),n}function m(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:s&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:a&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:i&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():u&&s&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=m(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u&&(ArrayBuffer.prototype.isPrototypeOf(t)||f(t))?this._bodyArrayBuffer=m(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("Content-Type")||("string"==typeof t?this.headers.set("Content-Type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("Content-Type",this._bodyBlob.type):i&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"))},s&&(this.blob=function(){var t=_(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var t=_(this);return t||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(g)}),this.text=function(){var t,e,n,r=_(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=y(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(i),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var o=/([?&])_=[^&]*/;if(o.test(this.url))this.url=this.url.replace(o,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function S(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(i))}})),e}function T(t){var e=new p;for(var n in t)e.append(n,t[n]);return e}function C(t,e){if(!(this instanceof C))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new p(e.headers),this.url=e.url||"",this._initBody(t)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})},b.call(v.prototype),b.call(C.prototype),C.prototype.clone=function(){return new C(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},C.error=function(){var t=new C(null,{status:0,statusText:""});return t.type="error",t};var w=[301,302,303,307,308];C.redirect=function(t,e){if(-1===w.indexOf(e))throw new RangeError("Invalid status code");return new C(null,{status:e,headers:{location:t}})};var I=r.DOMException;try{new I}catch(t){(I=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),I.prototype.constructor=I}function R(t,e){return new Promise((function(n,i){var o=new v(t,e);if(o.signal&&o.signal.aborted)return i(new I("Aborted","AbortError"));function s(t){try{if("object"==typeof t)return JSON.stringify(t);if("string"==typeof t)return t}catch(t){}return t.toString()}let a=void 0===o._bodyInit?null:o._bodyInit;o.headers.hasOwnProperty("Content-Type")&&o.headers["Content-Type"].indexOf("application/json")>=0&&"POST"===o.method.toUpperCase()&&(a=JSON.parse(a));const u=uni.request({url:function(t){try{return""===t&&r.location.href?r.location.href:t}catch(e){return t}}(o.url),method:o.method,data:a,header:o.headers.map,complete:t=>{if(o.signal&&o.signal.removeEventListener("abort",l),t.errMsg.indexOf("fail")>=0)setTimeout((function(){i(new TypeError("Network request failed"))}),0);else{var e={status:t.statusCode,statusText:t.data?s(t.data):"",headers:T(t.header||{})};e.url=e.headers.get("X-Request-URL");var r=e.statusText;setTimeout((function(){n(new C(r,e))}),0)}}});function l(){u.abort()}o.signal&&o.signal.addEventListener("abort",l)}))}R.polyfill=!0,r.fetch||(r.fetch=R,r.Headers=p,r.Request=v,r.Response=C)},function(t,e,n){var r;if("object"==typeof globalThis)r=globalThis;else try{r=n(11)}catch(t){}finally{if(r||"undefined"==typeof window||(r=window),!r)throw new Error("Could not determine global this")}var i=r.WebSocket||r.MozWebSocket,o=n(12);function s(t,e){return e?new i(t,e):new i(t)}i&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(t){Object.defineProperty(s,t,{get:function(){return i[t]}})})),t.exports={w3cwebsocket:i?s:null,version:o}},function(t,e){var n=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};t.exports=function(){if(this)return this;if("object"==typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(t){return n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},function(t,e,n){t.exports=n(13).version},function(t){t.exports=JSON.parse('{"name":"websocket","description":"Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.","keywords":["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],"author":"Brian McKelvey (https://github.com/theturtle32)","contributors":["Iñaki Baz Castillo (http://dev.sipdoc.net)"],"version":"1.0.34","repository":{"type":"git","url":"https://github.com/theturtle32/WebSocket-Node.git"},"homepage":"https://github.com/theturtle32/WebSocket-Node","engines":{"node":">=4.0.0"},"dependencies":{"bufferutil":"^4.0.1","debug":"^2.2.0","es5-ext":"^0.10.50","typedarray-to-buffer":"^3.1.5","utf-8-validate":"^5.0.2","yaeti":"^0.0.6"},"devDependencies":{"buffer-equal":"^1.0.0","gulp":"^4.0.2","gulp-jshint":"^2.0.4","jshint-stylish":"^2.2.1","jshint":"^2.0.0","tape":"^4.9.1"},"config":{"verbose":false},"scripts":{"test":"tape test/unit/*.js","gulp":"gulp"},"main":"index","directories":{"lib":"./lib"},"browser":"lib/browser.js","license":"Apache-2.0"}')},function(t,e,n){"use strict";e.__esModule=!0,e.RequestBase=void 0;var r=function(t,e,n){this.appId=t,this.clientType=e,this.imei=n};e.RequestBase=r},function(t,e,n){"use strict";e.__esModule=!0,e.RequestParams=void 0;var r=function(t,e,n){this.appId=t,this.identifier=e,this.userSign=n};e.RequestParams=r},function(t,e,n){"use strict";e.__esModule=!0;var r=n(0),i=n(2),o=n(17),s=n(1),a=n(3),u=function(){function t(t){this.url="",this.url=t}return t.prototype.call=function(t,e,n){var o=i.imClient.userId;r.default.info(o);var a=this.url+t;null!=e&&(a+=this.setQueryConfig(e));n=this.setQueryToBody(e,n);var u={method:"POST",headers:{"Content-Type":"application/json"},body:s.default.json(n)};return this.httpFetch(a,u)},t.prototype.setQueryToBody=function(t,e){for(var n in t)e[n]=t[n];return e},t.prototype.setQueryConfig=function(t){var e="?";for(var n in t)e+=n+"="+t[n]+"&";return e=e.substring(0,e.length-1)},t.prototype.httpFetch=function(t,e){var n=this;return console.log("httpFetch"),a.default.getFetchToolkit()(t,e).then((function(t){return t.json()})).then((function(i){r.default.info("==> ["+e.method+"] "+t+" back:"+s.default.json(i));var o=n.response2ApiResponse(i);return o.isFailed()?Promise.reject(o):Promise.resolve(o)}))},t.prototype.response2ApiResponse=function(t){var e=new o.default(!0);return e.data=t.data,e.msg=t.msg,e.code=t.code,e},t}();e.default=u},function(t,e,n){"use strict";e.__esModule=!0;var r=function(){function t(t){void 0===t&&(t=!1),this.msg="",this.data=null,t&&(this.code=200)}return t.prototype.isSucceed=function(){return 200===this.code},t.prototype.isFailed=function(){return!this.isSucceed()},t}();e.default=r},function(t,e,n){"use strict";var r,i,o,s,a,u;e.__esModule=!0,e.ConversationEventCommand=e.UserEventCommand=e.SystemCommand=e.GroupCommand=e.FriendShipCommand=e.MessageCommand=void 0,function(t){t[t.MSG_P2P=1103]="MSG_P2P",t[t.MSG_P2P_SYNC=1108]="MSG_P2P_SYNC",t[t.MSG_READED=1106]="MSG_READED",t[t.MSG_RECIVE_ACK=1107]="MSG_RECIVE_ACK",t[t.MSG_ACK=1046]="MSG_ACK",t[t.MSG_RECALL=1050]="MSG_RECALL",t[t.MSG_RECALL_NOTIFY=1052]="MSG_RECALL_NOTIFY",t[t.MSG_RECALL_ACK=1051]="MSG_RECALL_ACK",t[t.MSG_READED_NOTIFY=1053]="MSG_READED_NOTIFY",t[t.MSG_READED_RECEIPT=1054]="MSG_READED_RECEIPT"}(r||(r={})),e.MessageCommand=r,function(t){t[t.FRIEND_ADD=3e3]="FRIEND_ADD",t[t.FRIEND_UPDATE=3001]="FRIEND_UPDATE",t[t.FRIEND_DELETE=3002]="FRIEND_DELETE",t[t.FRIEND_REQUEST=3003]="FRIEND_REQUEST",t[t.FRIEND_REQUEST_READ=3004]="FRIEND_REQUEST_READ",t[t.FRIEND_REQUEST_APPROVER=3005]="FRIEND_REQUEST_APPROVER",t[t.FRIEND_BLACK_ADD=3010]="FRIEND_BLACK_ADD",t[t.FRIEND_BLACK_DELETE=3011]="FRIEND_BLACK_DELETE",t[t.FRIEND_GROUP_ADD=3012]="FRIEND_GROUP_ADD",t[t.FRIEND_GROUP_DELETE=3013]="FRIEND_GROUP_DELETE",t[t.FRIEND_GROUP_MEMBER_ADD=3014]="FRIEND_GROUP_MEMBER_ADD",t[t.FRIEND_GROUP_MEMBER_DELETE=3015]="FRIEND_GROUP_MEMBER_DELETE"}(i||(i={})),e.FriendShipCommand=i,function(t){t[t.JOIN_GROUP=2e3]="JOIN_GROUP",t[t.ADDED_MEMBER=2001]="ADDED_MEMBER",t[t.CREATED_GROUP=2002]="CREATED_GROUP",t[t.UPDATED_GROUP=2003]="UPDATED_GROUP",t[t.EXIT_GROUP=2004]="EXIT_GROUP",t[t.UPDATED_MEMBER=2005]="UPDATED_MEMBER",t[t.DELETED_MEMBER=2006]="DELETED_MEMBER",t[t.DESTROY_GROUP=2007]="DESTROY_GROUP",t[t.TRANSFER_GROUP=2008]="TRANSFER_GROUP",t[t.MUTE_GROUP=2009]="MUTE_GROUP",t[t.SPEAK_GOUP_MEMBER=2010]="SPEAK_GOUP_MEMBER",t[t.MSG_GROUP=2104]="MSG_GROUP",t[t.MSG_GROUP_SYNC=2105]="MSG_GROUP_SYNC",t[t.GROUP_MSG_ACK=2047]="GROUP_MSG_ACK"}(o||(o={})),e.GroupCommand=o,function(t){t[t.PING=9999]="PING",t[t.LOGIN=9e3]="LOGIN",t[t.LOGINACK=9001]="LOGINACK",t[t.MUTUALLOGIN=9002]="MUTUALLOGIN",t[t.LOGOUT=9003]="LOGOUT"}(s||(s={})),e.SystemCommand=s,function(t){t[t.USER_MODIFY=4e3]="USER_MODIFY",t[t.USER_ONLINE_STATUS_CHANGE=4001]="USER_ONLINE_STATUS_CHANGE",t[t.USER_ONLINE_STATUS_SUBSCRIBE=4002]="USER_ONLINE_STATUS_SUBSCRIBE",t[t.PULL_USER_ONLINE_STATUS=4003]="PULL_USER_ONLINE_STATUS",t[t.USER_ONLINE_STATUS_CHANGE_NOTIFY=4004]="USER_ONLINE_STATUS_CHANGE_NOTIFY"}(a||(a={})),e.UserEventCommand=a,function(t){t[t.CONVERSATION_DELETE=5e3]="CONVERSATION_DELETE",t[t.CONVERSATION_UPDATE=5001]="CONVERSATION_UPDATE"}(u||(u={})),e.ConversationEventCommand=u},function(t,e,n){"use strict";e.__esModule=!0,e.MessagePack=void 0;var r=n(1),i=function(){function t(t){this.messageId=r.default.uuid(),this.appId=t,this.messageRandom=this.RangeInteger(0,1e4),this.messageTime=Date.parse((new Date).toString())}return t.prototype.RangeInteger=function(t,e){var n=e-t;return Math.floor(Math.random()*n)+t},t.prototype.buildTextMessagePack=function(t,e,n){this.fromId=t,this.toId=e,console.warn(typeof n),console.log(n);var i=n;this.messageBody=r.default.json(i)},t.prototype.buildCustomerMessagePack=function(t,e,n,i){this.fromId=t,this.toId=e;var o={type:n,content:i};this.messageBody=r.default.json(o)},t}();e.MessagePack=i}])})); +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.imsdk=e():t.imsdk=e()}(window,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=4)}([function(t,e,n){"use strict";var r=this&&this.__spreadArrays||function(){for(var t=0,e=0,n=arguments.length;e0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=1e4){r=Date.now();var s=e.imClient.buildMessagePack(y.SystemCommand.PING,{});t.send(s.pack(!1))}setTimeout(i,500)}else a.default.error("heartbeatLoop exited")};setTimeout(i,500)},t.prototype.createP2PTextMessage=function(t,e){var n=new g.MessagePack(this.appId);return n.buildTextMessagePack(this.userId,t,e),n},t.prototype.sendP2PMessage=function(t){var n=e.imClient.buildMessagePack(y.MessageCommand.MSG_P2P,t);this.conn&&this.conn.send(n.pack(!1))},t.prototype.sendP2PMessageReciveAck=function(t){console.log("=============== sendP2PMessageReciveAck"),console.log(t),t.toId=t.fromId,t.fromId=this.userId,console.log(t);var n=e.imClient.buildMessagePack(y.MessageCommand.MSG_RECIVE_ACK,t);t.conversationType=0;var r=e.imClient.buildMessagePack(y.MessageCommand.MSG_READED,t),i=e.imClient.buildMessagePack(y.MessageCommand.MSG_READED_RECEIPT,t);this.conn&&(this.conn.send(n.pack(!1)),this.conn.send(r.pack(!1)),this.conn.send(i.pack(!1)))},t.prototype.sendP2PMessageReadedReceipt=function(t){console.log("=============== sendP2PMessageReadedRECEIPT"),console.log(t),t.toId=t.fromId,t.fromId=this.userId,console.log(t);var n=e.imClient.buildMessagePack(y.MessageCommand.MSG_READED_RECEIPT,t);this.conn&&(console.log("=============== sendP2PMessageReadedRECEIPT 正式开始发送已读回执"),this.conn.send(n.pack(!1)))},t.prototype.getUserId=function(){return this.userId},t.prototype.loadOfflineMessage=function(){return r(this,void 0,void 0,(function(){var t,n;return i(this,(function(r){switch(r.label){case 0:return a.default.info("loadOfflineMessage start"),[4,new p.default(this.httpUrl).call("/message/syncOfflineMessage",this.getRequestParams(),{clientType:this.clientType,operater:this.userId,appId:this.appId,lastSequence:this.lastOfflineMessageSequence,maxLimit:100})];case 1:return(t=r.sent()).isSucceed()?(this.lastOfflineMessageSequence=t.data.maxSequence,n=t.data.dataList,this.offlineMessageList.push(n),n.length>0&&"function"==typeof e.imClient.listeners.onOfflineMessage&&e.imClient.listeners.onOfflineMessage(n),console.log(t.data.completed),t.data.completed||this.loadOfflineMessage()):a.default.error("loadOfflineMessage - error"),[2]}}))}))},t}();e.ImClient=b,e.limLogin=function(t,e,n){return r(void 0,void 0,void 0,(function(){return i(this,(function(r){return[2,new Promise((function(r,i){var o=new c.w3cwebsocket(t);o.binaryType="arraybuffer",a.default.info("limLogin");var s=setTimeout((function(){clearTimeout(s),r({success:!1,err:new Error("timeout"),conn:o})}),1e4);o.onopen=function(){if(o.readyState==c.w3cwebsocket.OPEN){"function"==typeof n.listeners.onSocketConnectEvent&&n.listeners.onSocketConnectEvent(t,e),a.default.info("开启连接");var r={userId:e.userId},i=n.buildMessagePack(9e3,r);o.send(i.pack(!1))}},o.onerror=function(t){clearTimeout(s),a.default.error(t),r({success:!1,err:t,conn:o})},o.onmessage=function(t){if("string"!=typeof t.data){clearTimeout(s);var e=new u.default(t.data).int32().int32().unpack(),n=e[0];e[1];9001==n&&r({success:!0,conn:o})}else a.default.info("Received: '"+t.data+"'")}}))]}))}))},e.getLen=function(t){for(var e=0,n=0;n=1&&r<=126||65376<=r&&r<=65439?e++:e+=3}return e},e.imClient=new b},function(t,e,n){"use strict";(function(t){e.__esModule=!0;var r=function(){function e(){}return e.getFetchToolkit=function(){var e;if(void 0!==t.fetch&&"function"==typeof t.fetch)e=t.fetch;else if("function"==typeof fetch)e=fetch;else{e=n(9).fetch}return e},e}();e.default=r}).call(this,n(8))},function(t,e,n){"use strict";e.__esModule=!0,e.im=void 0;var r=n(2);e.im=r.imClient,"undefined"!=typeof uni&&(uni.im=r.imClient)},function(t,e,n){"use strict";e.__esModule=!0;var r=function(){function t(t,e){this.Type_Byte=1,this.Type_Short=2,this.Type_UShort=3,this.Type_Int32=4,this.Type_UInt32=5,this.Type_String=6,this.Type_VString=7,this.Type_Int64=8,this.Type_Float=9,this.Type_Double=10,this.Type_ByteArray=11,this._offset=0,this._list=[],this._littleEndian=!1,this._org_buf=t?t.constructor==DataView?t:t.constructor==Uint8Array?new DataView(t.buffer,e):new DataView(t,e):new DataView(new Uint8Array([]).buffer),this.arrayBuf=t,this.offset=e}return t.prototype.bigEndian=function(){return this._littleEndian=!1,this},t.prototype.littleEndianfunction=function(){return this._littleEndian=!0,this},t.prototype.utf8Write=function(t,e,n){for(var r=0,i=0,o=n.length;i>6),t.setUint8(e++,128|63&r)):r<55296||r>=57344?(t.setUint8(e++,224|r>>12),t.setUint8(e++,128|r>>6&63),t.setUint8(e++,128|63&r)):(i++,r=65536+((1023&r)<<10|1023&n.charCodeAt(i)),t.setUint8(e++,240|r>>18),t.setUint8(e++,128|r>>12&63),t.setUint8(e++,128|r>>6&63),t.setUint8(e++,128|63&r))},t.prototype.int32=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getInt32(this._offset,this._littleEndian)),this._offset+=4):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Int32,d:t,l:4}),this._offset+=4),this},t.prototype.uint32=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getUint32(this._offset,this._littleEndian)),this._offset+=4):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_UInt32,d:t,l:4}),this._offset+=4),this},t.prototype.blength=function(){return this._offset},t.prototype.string=function(t,e){if(0==arguments.length){var n=this._org_buf.getInt32(this._offset,this._littleEndian);this._offset+=4,this._list.push(this.utf8Read(this._org_buf,this._offset,n)),this._offset+=n}else{n=0;t&&(n=this.utf8Length(t)),this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_String,d:t,l:n}),this._offset+=n+4}return this},t.prototype.utf8Length=function(t){for(var e=0,n=0,r=0,i=t.length;r=57344?n+=3:(r++,n+=4);return n},t.prototype.utf8Read=function(t,e,n){for(var r="",i=0,o=e,s=e+n;o=65536?(i-=65536,r+=String.fromCharCode(55296+(i>>>10),56320+(1023&i))):r+=String.fromCharCode(i)}else r+=String.fromCharCode((15&a)<<12|(63&t.getUint8(++o))<<6|(63&t.getUint8(++o))<<0);else r+=String.fromCharCode((15&a)<<6|63&t.getUint8(++o));else r+=String.fromCharCode(a)}return r},t.prototype.vstring=function(t,e,n){if(!e)throw new Error("vstring must got len argument");if(null==t||null==t){for(var r=0,i=this._offset;i0&&r++;this._list.push(this.utf8Read(this._org_buf,this._offset,r)),this._offset+=e}else this._list.splice(null!=n?n:this._list.length,0,{t:this.Type_VString,d:t,l:e}),this._offset+=e;return this},t.prototype.int64=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getFloat64(this._offset,this._littleEndian)),this._offset+=8):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Int64,d:t,l:8}),this._offset+=8),this},t.prototype.float=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getFloat32(this._offset,this._littleEndian)),this._offset+=4):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Float,d:t,l:4}),this._offset+=4),this},t.prototype.double=function(t,e){return 0==arguments.length?(this._list.push(this._org_buf.getFloat64(this._offset,this._littleEndian)),this._offset+=8):(this._list.splice(null!=e?e:this._list.length,0,{t:this.Type_Double,d:t,l:8}),this._offset+=8),this},t.prototype.byteArray=function(t,e,n){if(!e)throw new Error("byteArray must got len argument");if(null==t||null==t){var r=new Uint8Array(this._org_buf.buffer.slice(this._offset,this._offset+e));this._list.push(r),this._offset+=e}else this._list.splice(null!=n?n:this._list.length,0,{t:this.Type_ByteArray,d:t,l:e}),this._offset+=e;return this},t.prototype.unpack=function(){return this._list},t.prototype.packWithHead=function(){return this.pack(!0)},t.prototype.pack=function(t){this._org_buf=new DataView(new ArrayBuffer(t?this._offset+4:this._offset));var e=0;t&&(this._org_buf.setUint32(e,this._offset,this._littleEndian),e+=4);for(var n=0;n>2,o=(3&e)<<4|(n=t.charCodeAt(l++))>>4,s=(15&n)<<2|(r=t.charCodeAt(l++))>>6,a=63&r,isNaN(n)?s=a=64:isNaN(r)&&(a=64),u=u+this._keyStr.charAt(i)+this._keyStr.charAt(o)+this._keyStr.charAt(s)+this._keyStr.charAt(a);return u},decode:function(t){var e,n,r,i,o,s,a="",u=0;for(t=t.replace(/[^A-Za-z0-9+/=]/g,"");u>4,n=(15&i)<<4|(o=this._keyStr.indexOf(t.charAt(u++)))>>2,r=(3&o)<<6|(s=this._keyStr.indexOf(t.charAt(u++))),a+=String.fromCharCode(e),64!=o&&(a+=String.fromCharCode(n)),64!=s&&(a+=String.fromCharCode(r));return a=Base64._utf8_decode(a)},_utf8_encode:function(t){t=t.replace(/rn/g,"n");for(var e="",n=0;n127&&r<2048?(e+=String.fromCharCode(r>>6|192),e+=String.fromCharCode(63&r|128)):(e+=String.fromCharCode(r>>12|224),e+=String.fromCharCode(r>>6&63|128),e+=String.fromCharCode(63&r|128))}return e},_utf8_decode:function(t){for(var e="",n=0,r=0,i=0;n191&&r<224)i=t.charCodeAt(n+1),e+=String.fromCharCode((31&r)<<6|63&i),n+=2;else{i=t.charCodeAt(n+1);var o=t.charCodeAt(n+2);e+=String.fromCharCode((15&r)<<12|(63&i)<<6|63&o),n+=3}return e}},WebToolkit=function(){function WebToolkit(){}return WebToolkit.getBrowserInfo=function(){var t=navigator.userAgent.toLowerCase(),e=/edge\/[\d.]+/gi,n=/trident\/[\d.]+/gi,r=/msie\s[\d.]+/gi,i=/firefox\/[\d.]+/gi,o=/chrome\/[\d.]+/gi,s=/safari\/[\d.]+/gi,a=/opr\/[\d.]+/gi,u={code:0,system:t.split(" ")[1].split(" ")[0].split("(")[1],browser:"",browserVersion:""};return t.indexOf("trident")>0?(u.browser=t.match(n)[0].split("/")[0],u.browserVersion=t.match(n)[0].split("/")[1],u):t.indexOf("msie")>0?(u.browser=t.match(r)[0].split(" ")[0],u.browserVersion=t.match(r)[0].split(" ")[1],u):t.indexOf("edge")>0?(u.browser=t.match(e)[0].split("/")[0],u.browserVersion=t.match(e)[0].split("/")[1],u):t.indexOf("firefox")>0?(u.browser=t.match(i)[0].split("/")[0],u.browserVersion=t.match(i)[0].split("/")[1],u):t.indexOf("opr")>0?(u.browser=t.match(a)[0].split("/")[0],u.browserVersion=t.match(a)[0].split("/")[1],u):t.indexOf("safari")>0&&t.indexOf("chrome")<0?(u.browser=t.match(s)[0].split("/")[0],u.browserVersion=t.match(s)[0].split("/")[1],u):t.indexOf("chrome")>0?(u.browser=t.match(o)[0].split("/")[0],u.browserVersion=t.match(o)[0].split("/")[1],u):(u.code=-1,u)},WebToolkit.getWxappInfo=function(){return{system:"WXAPP",browser:"WXAPP",browserVersion:"1.0"}},WebToolkit.getReactNativeInfo=function(){return{system:"RNNative",browser:"RNNative",browserVersion:"1.0"}},WebToolkit.getUniAppInfo=function(){return{system:"UNIAPP",browser:"UNIAPP",browserVersion:"1.0"}},WebToolkit.loadJS=function(t,e){var n=document.createElement("script"),r=e||function(){};n.type="text/javascript";var i=!1;for(var o in document.getElementsByTagName("head")[0].children){var s=document.getElementsByTagName("head")[0].children[o];void 0!==s.outerHTML&&s.outerHTML.indexOf(t)>=0&&(i=!0)}i?r():(n.readyState?n.onreadystatechange=function(){"loaded"!=n.readyState&&"complete"!=n.readyState||(n.onreadystatechange=null,r())}:n.onload=function(){r()},n.src=t,document.getElementsByTagName("head")[0].appendChild(n))},WebToolkit.getIpInfoByFetch=function(callback){var url="http://pv.sohu.com/cityjson?ie=utf-8",fetch=Fetch_1.default.getFetchToolkit(),request={method:"GET",mode:"cors",headers:{"Content-Type":"application/json"}};return fetch(url,request).then((function(t){return t.text()})).then((function(res){if("function"==typeof callback){var currentCity=eval("_current_city="+res.replace("var returnCitySN = ",""));callback(currentCity)}})).catch((function(t){Logger_1.default.trace(t)}))},WebToolkit.getIpInfoByInsertScript=function(t){WebToolkit.loadJS("http://pv.sohu.com/cityjson?ie=utf-8",(function(){t(window.returnCitySN)}))},WebToolkit.getIpInfo=function(t){WebToolkit.getIpInfoByFetch(t)},WebToolkit.getDeviceInfo=function(){return WebToolkit.getUniAppInfo()},WebToolkit.base64Encode=function(t){return Base64.encode(t)},WebToolkit.base64Decode=function(t){return Base64.decode(t)},WebToolkit}();exports.default=WebToolkit},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";n.r(e),n.d(e,"Headers",(function(){return p})),n.d(e,"Request",(function(){return v})),n.d(e,"Response",(function(){return C})),n.d(e,"DOMException",(function(){return I})),n.d(e,"fetch",(function(){return R}));var r="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==r&&r,i="URLSearchParams"in r,o="Symbol"in r&&"iterator"in Symbol,s="FileReader"in r&&"Blob"in r&&function(){try{return new Blob,!0}catch(t){return!1}}(),a="FormData"in r,u="ArrayBuffer"in r;if(u)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],f=ArrayBuffer.isView||function(t){return t&&l.indexOf(Object.prototype.toString.call(t))>-1};function c(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t}function h(t){return"string"!=typeof t&&(t=String(t)),t}function d(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return o&&(e[Symbol.iterator]=function(){return e}),e}function p(t){this.map={},t instanceof p?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function _(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function y(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function g(t){var e=new FileReader,n=y(e);return e.readAsArrayBuffer(t),n}function m(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function b(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:s&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:a&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:i&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():u&&s&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=m(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u&&(ArrayBuffer.prototype.isPrototypeOf(t)||f(t))?this._bodyArrayBuffer=m(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("Content-Type")||("string"==typeof t?this.headers.set("Content-Type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("Content-Type",this._bodyBlob.type):i&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"))},s&&(this.blob=function(){var t=_(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var t=_(this);return t||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(g)}),this.text=function(){var t,e,n,r=_(this);if(r)return r;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,n=y(e),e.readAsText(t),n;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?r:n),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(i),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var o=/([?&])_=[^&]*/;if(o.test(this.url))this.url=this.url.replace(o,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function S(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(i))}})),e}function T(t){var e=new p;for(var n in t)e.append(n,t[n]);return e}function C(t,e){if(!(this instanceof C))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new p(e.headers),this.url=e.url||"",this._initBody(t)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})},b.call(v.prototype),b.call(C.prototype),C.prototype.clone=function(){return new C(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new p(this.headers),url:this.url})},C.error=function(){var t=new C(null,{status:0,statusText:""});return t.type="error",t};var w=[301,302,303,307,308];C.redirect=function(t,e){if(-1===w.indexOf(e))throw new RangeError("Invalid status code");return new C(null,{status:e,headers:{location:t}})};var I=r.DOMException;try{new I}catch(t){(I=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),I.prototype.constructor=I}function R(t,e){return new Promise((function(n,i){var o=new v(t,e);if(o.signal&&o.signal.aborted)return i(new I("Aborted","AbortError"));function s(t){try{if("object"==typeof t)return JSON.stringify(t);if("string"==typeof t)return t}catch(t){}return t.toString()}let a=void 0===o._bodyInit?null:o._bodyInit;o.headers.hasOwnProperty("Content-Type")&&o.headers["Content-Type"].indexOf("application/json")>=0&&"POST"===o.method.toUpperCase()&&(a=JSON.parse(a));const u=uni.request({url:function(t){try{return""===t&&r.location.href?r.location.href:t}catch(e){return t}}(o.url),method:o.method,data:a,header:o.headers.map,complete:t=>{if(o.signal&&o.signal.removeEventListener("abort",l),t.errMsg.indexOf("fail")>=0)setTimeout((function(){i(new TypeError("Network request failed"))}),0);else{var e={status:t.statusCode,statusText:t.data?s(t.data):"",headers:T(t.header||{})};e.url=e.headers.get("X-Request-URL");var r=e.statusText;setTimeout((function(){n(new C(r,e))}),0)}}});function l(){u.abort()}o.signal&&o.signal.addEventListener("abort",l)}))}R.polyfill=!0,r.fetch||(r.fetch=R,r.Headers=p,r.Request=v,r.Response=C)},function(t,e,n){var r;if("object"==typeof globalThis)r=globalThis;else try{r=n(11)}catch(t){}finally{if(r||"undefined"==typeof window||(r=window),!r)throw new Error("Could not determine global this")}var i=r.WebSocket||r.MozWebSocket,o=n(12);function s(t,e){return e?new i(t,e):new i(t)}i&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(t){Object.defineProperty(s,t,{get:function(){return i[t]}})})),t.exports={w3cwebsocket:i?s:null,version:o}},function(t,e){var n=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};t.exports=function(){if(this)return this;if("object"==typeof globalThis&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(t){return n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},function(t,e,n){t.exports=n(13).version},function(t){t.exports=JSON.parse('{"name":"websocket","description":"Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.","keywords":["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],"author":"Brian McKelvey (https://github.com/theturtle32)","contributors":["Iñaki Baz Castillo (http://dev.sipdoc.net)"],"version":"1.0.34","repository":{"type":"git","url":"https://github.com/theturtle32/WebSocket-Node.git"},"homepage":"https://github.com/theturtle32/WebSocket-Node","engines":{"node":">=4.0.0"},"dependencies":{"bufferutil":"^4.0.1","debug":"^2.2.0","es5-ext":"^0.10.50","typedarray-to-buffer":"^3.1.5","utf-8-validate":"^5.0.2","yaeti":"^0.0.6"},"devDependencies":{"buffer-equal":"^1.0.0","gulp":"^4.0.2","gulp-jshint":"^2.0.4","jshint-stylish":"^2.2.1","jshint":"^2.0.0","tape":"^4.9.1"},"config":{"verbose":false},"scripts":{"test":"tape test/unit/*.js","gulp":"gulp"},"main":"index","directories":{"lib":"./lib"},"browser":"lib/browser.js","license":"Apache-2.0"}')},function(t,e,n){"use strict";e.__esModule=!0,e.RequestBase=void 0;var r=function(t,e,n){this.appId=t,this.clientType=e,this.imei=n};e.RequestBase=r},function(t,e,n){"use strict";e.__esModule=!0,e.RequestParams=void 0;var r=function(t,e,n){this.appId=t,this.identifier=e,this.userSign=n};e.RequestParams=r},function(t,e,n){"use strict";e.__esModule=!0;var r=n(0),i=n(2),o=n(17),s=n(1),a=n(3),u=function(){function t(t){this.url="",this.url=t}return t.prototype.call=function(t,e,n){var o=i.imClient.userId;r.default.info(o);var a=this.url+t;null!=e&&(a+=this.setQueryConfig(e));n=this.setQueryToBody(e,n);var u={method:"POST",headers:{"Content-Type":"application/json"},body:s.default.json(n)};return this.httpFetch(a,u)},t.prototype.setQueryToBody=function(t,e){for(var n in t)e[n]=t[n];return e},t.prototype.setQueryConfig=function(t){var e="?";for(var n in t)e+=n+"="+t[n]+"&";return e=e.substring(0,e.length-1)},t.prototype.httpFetch=function(t,e){var n=this;return console.log("httpFetch"),a.default.getFetchToolkit()(t,e).then((function(t){return t.json()})).then((function(i){r.default.info("==> ["+e.method+"] "+t+" back:"+s.default.json(i));var o=n.response2ApiResponse(i);return o.isFailed()?Promise.reject(o):Promise.resolve(o)}))},t.prototype.response2ApiResponse=function(t){var e=new o.default(!0);return e.data=t.data,e.msg=t.msg,e.code=t.code,e},t}();e.default=u},function(t,e,n){"use strict";e.__esModule=!0;var r=function(){function t(t){void 0===t&&(t=!1),this.msg="",this.data=null,t&&(this.code=200)}return t.prototype.isSucceed=function(){return 200===this.code},t.prototype.isFailed=function(){return!this.isSucceed()},t}();e.default=r},function(t,e,n){"use strict";var r,i,o,s,a,u;e.__esModule=!0,e.ConversationEventCommand=e.UserEventCommand=e.SystemCommand=e.GroupCommand=e.FriendShipCommand=e.MessageCommand=void 0,function(t){t[t.MSG_P2P=1103]="MSG_P2P",t[t.MSG_P2P_SYNC=1108]="MSG_P2P_SYNC",t[t.MSG_READED=1106]="MSG_READED",t[t.MSG_RECIVE_ACK=1107]="MSG_RECIVE_ACK",t[t.MSG_ACK=1046]="MSG_ACK",t[t.MSG_RECALL=1050]="MSG_RECALL",t[t.MSG_RECALL_NOTIFY=1052]="MSG_RECALL_NOTIFY",t[t.MSG_RECALL_ACK=1051]="MSG_RECALL_ACK",t[t.MSG_READED_NOTIFY=1053]="MSG_READED_NOTIFY",t[t.MSG_READED_RECEIPT=1054]="MSG_READED_RECEIPT"}(r||(r={})),e.MessageCommand=r,function(t){t[t.FRIEND_ADD=3e3]="FRIEND_ADD",t[t.FRIEND_UPDATE=3001]="FRIEND_UPDATE",t[t.FRIEND_DELETE=3002]="FRIEND_DELETE",t[t.FRIEND_REQUEST=3003]="FRIEND_REQUEST",t[t.FRIEND_REQUEST_READ=3004]="FRIEND_REQUEST_READ",t[t.FRIEND_REQUEST_APPROVER=3005]="FRIEND_REQUEST_APPROVER",t[t.FRIEND_BLACK_ADD=3010]="FRIEND_BLACK_ADD",t[t.FRIEND_BLACK_DELETE=3011]="FRIEND_BLACK_DELETE",t[t.FRIEND_GROUP_ADD=3012]="FRIEND_GROUP_ADD",t[t.FRIEND_GROUP_DELETE=3013]="FRIEND_GROUP_DELETE",t[t.FRIEND_GROUP_MEMBER_ADD=3014]="FRIEND_GROUP_MEMBER_ADD",t[t.FRIEND_GROUP_MEMBER_DELETE=3015]="FRIEND_GROUP_MEMBER_DELETE"}(i||(i={})),e.FriendShipCommand=i,function(t){t[t.JOIN_GROUP=2e3]="JOIN_GROUP",t[t.ADDED_MEMBER=2001]="ADDED_MEMBER",t[t.CREATED_GROUP=2002]="CREATED_GROUP",t[t.UPDATED_GROUP=2003]="UPDATED_GROUP",t[t.EXIT_GROUP=2004]="EXIT_GROUP",t[t.UPDATED_MEMBER=2005]="UPDATED_MEMBER",t[t.DELETED_MEMBER=2006]="DELETED_MEMBER",t[t.DESTROY_GROUP=2007]="DESTROY_GROUP",t[t.TRANSFER_GROUP=2008]="TRANSFER_GROUP",t[t.MUTE_GROUP=2009]="MUTE_GROUP",t[t.SPEAK_GOUP_MEMBER=2010]="SPEAK_GOUP_MEMBER",t[t.MSG_GROUP=2104]="MSG_GROUP",t[t.MSG_GROUP_SYNC=2105]="MSG_GROUP_SYNC",t[t.GROUP_MSG_ACK=2047]="GROUP_MSG_ACK"}(o||(o={})),e.GroupCommand=o,function(t){t[t.PING=9999]="PING",t[t.LOGIN=9e3]="LOGIN",t[t.LOGINACK=9001]="LOGINACK",t[t.MUTUALLOGIN=9002]="MUTUALLOGIN",t[t.LOGOUT=9003]="LOGOUT"}(s||(s={})),e.SystemCommand=s,function(t){t[t.USER_MODIFY=4e3]="USER_MODIFY",t[t.USER_ONLINE_STATUS_CHANGE=4001]="USER_ONLINE_STATUS_CHANGE",t[t.USER_ONLINE_STATUS_SUBSCRIBE=4002]="USER_ONLINE_STATUS_SUBSCRIBE",t[t.PULL_USER_ONLINE_STATUS=4003]="PULL_USER_ONLINE_STATUS",t[t.USER_ONLINE_STATUS_CHANGE_NOTIFY=4004]="USER_ONLINE_STATUS_CHANGE_NOTIFY"}(a||(a={})),e.UserEventCommand=a,function(t){t[t.CONVERSATION_DELETE=5e3]="CONVERSATION_DELETE",t[t.CONVERSATION_UPDATE=5001]="CONVERSATION_UPDATE"}(u||(u={})),e.ConversationEventCommand=u},function(t,e,n){"use strict";e.__esModule=!0,e.MessagePack=void 0;var r=n(1),i=function(){function t(t){this.messageId=r.default.uuid(),this.appId=t,this.messageRandom=this.RangeInteger(0,1e4),this.messageTime=Date.parse((new Date).toString())}return t.prototype.RangeInteger=function(t,e){var n=e-t;return Math.floor(Math.random()*n)+t},t.prototype.buildTextMessagePack=function(t,e,n){this.fromId=t,this.toId=e,console.warn(typeof n),console.log(n);var i=n;this.messageBody=r.default.json(i)},t.prototype.buildCustomerMessagePack=function(t,e,n,i){this.fromId=t,this.toId=e;var o={type:n,content:i};this.messageBody=r.default.json(o)},t}();e.MessagePack=i}])})); //# sourceMappingURL=lim-sdk.js.map \ No newline at end of file diff --git a/im-uniapp/common/imSdk/lim-sdk.js.map b/im-uniapp/common/imSdk/lim-sdk.js.map index 7548275..5056cc8 100644 --- a/im-uniapp/common/imSdk/lim-sdk.js.map +++ b/im-uniapp/common/imSdk/lim-sdk.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://imsdk/webpack/universalModuleDefinition","webpack://imsdk/webpack/bootstrap","webpack://imsdk/./src/lim/log/Logger.ts","webpack://imsdk/./src/lim/common/utils.ts","webpack://imsdk/./src/lim/core/ImClient.ts","webpack://imsdk/./src/lim/common/Fetch.ts","webpack://imsdk/./src/lim.ts","webpack://imsdk/./src/lim/codec/ByteBuffer.ts","webpack://imsdk/./src/lim/pack/LoginPack.ts","webpack://imsdk/./src/lim/common/WebToolkit.ts","webpack://imsdk/(webpack)/buildin/global.js","webpack://imsdk/./src/lim/uniapp/http/uni-fetch.js","webpack://imsdk/./node_modules/websocket/lib/browser.js","webpack://imsdk/./node_modules/es5-ext/global.js","webpack://imsdk/./node_modules/websocket/lib/version.js","webpack://imsdk/./src/lim/model/RequestBase.ts","webpack://imsdk/./src/lim/model/RequestParams.ts","webpack://imsdk/./src/lim/core/HttpApi.ts","webpack://imsdk/./src/lim/model/ApiResponse.ts","webpack://imsdk/./src/lim/common/Command.ts","webpack://imsdk/./src/lim/pack/MessagePack.ts"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__spreadArrays","this","il","arguments","length","Array","k","a","j","jl","Logger","info","message","optionalParams","_i","debug","console","apply","Date","toISOString","infoTag","tag","error","errorTag","trace","e","Error","undefined","stack","Beans","to","target","JSON","parse","stringify","bean","json","copy","replace","replaceJSON","v","toMapByKey","arrs","result","forEach","strEmpty","strNotEmpty","isEmpty","str","uuid","Math","random","toString","slice","getTime","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","op","TypeError","pop","push","imClient","getLen","limLogin","ImClient","sleep","State","TimeUnit","Logger_1","ByteBuffer_1","LoginPack_1","WebToolkit_1","websocket_1","RequestBase_1","RequestParams_1","HttpApi_1","utils_1","Command_1","MessagePack_1","firstMonitorSocket","second","Unit","Second","_a","setTimeout","url","version","clientType","listeners","state","INIT","lastOfflineMessageSequence","offlineMessageList","httpUrl","getRequestBase","RequestBase","appId","imei","isInit","CONNECTED","getRequestParams","RequestParams","userId","userSign","init","callback","self","resp","ip","port","protocolStr","req","success","err","conn","_this","_b","getDeviceInfo","system","imeiLength","isFailed","data","document","location","protocol","LoginPack","onerror","onSocketErrorEvent","errorHandler","onclose","CLOSEING","onSocketCloseEvent","reason","onmessage","evt","bytebuf","byteBuffer","int32","unpack","command","bodyLen","msgBody","vstring","log","MessageCommand","MSG_P2P","onP2PMessage","onTestMessage","loadOfflineMessage","heartbeatLoop","onLogin","buildMessagePack","messagePack","jsonData","pack","index","error_1","CLOSED","RECONNECTING","onSocketReConnectEvent","onSocketReConnectSuccessEvent","getSingleUserInfo","uid","syncGetUserInfo","api","userIds","getUserInfo","getAllFriend","fromId","getUserSequence","getUserConversationList","lastSequence","maxLimit","operater","getChatMessageHistoryList","offset","limit","createRoom","room","joinRoom","getRoomInfo","roomId","start","now","loop","pingPack","SystemCommand","PING","send","createP2PTextMessage","text","MessagePack","buildTextMessagePack","sendP2PMessage","p2pPack","sendP2PMessageReciveAck","rAck","toId","p2pPack_1107","MSG_RECIVE_ACK","conversationType","p2pPack_1106","MSG_READED","p2pPack_1054","MSG_READED_RECEIPT","sendP2PMessageReadedReceipt","getUserId","offmessages","isSucceed","maxSequence","dataList","onOfflineMessage","completed","w3cwebsocket","binaryType","tr","clearTimeout","onopen","readyState","OPEN","onSocketConnectEvent","loginPack","len","charCodeAt","Fetch","getFetchToolkit","httpFetch","global","fetch","im","ImClient_1","uni","ByteBuffer","arrayBuf","Type_Byte","Type_Short","Type_UShort","Type_Int32","Type_UInt32","Type_String","Type_VString","Type_Int64","Type_Float","Type_Double","Type_ByteArray","_offset","_list","_littleEndian","_org_buf","constructor","DataView","Uint8Array","buffer","bigEndian","littleEndianfunction","utf8Write","view","setUint8","val","getInt32","splice","uint32","getUint32","blength","string","utf8Read","utf8Length","chr","end","byte","getUint8","String","fromCharCode","vlen","int64","getFloat64","float","getFloat32","double","byteArray","arr","packWithHead","ifHead","ArrayBuffer","setUint32","setInt8","setInt16","setUint16","setInt32","setFloat64","setFloat32","indx","getAvailable","byteLength","Fetch_1","Base64","_keyStr","encode","u","_utf8_encode","isNaN","charAt","decode","indexOf","_utf8_decode","c2","c3","WebToolkit","getBrowserInfo","agent","navigator","userAgent","toLowerCase","REGSTR_EDGE","REGSTR_IE","OLD_IE","REGSTR_FF","REGSTR_CHROME","REGSTR_SAF","REGSTR_OPERA","code","split","browser","browserVersion","match","getWxappInfo","getReactNativeInfo","getUniAppInfo","loadJS","script","createElement","fn","type","exist","getElementsByTagName","children","dom","outerHTML","onreadystatechange","onload","src","appendChild","getIpInfoByFetch","request","method","headers","response","res","currentCity","eval","getIpInfoByInsertScript","getIpInfo","base64Encode","base64Decode","Function","globalThis","support","Blob","viewClasses","isArrayBufferView","isView","obj","normalizeName","test","normalizeValue","iteratorFor","items","shift","Headers","map","append","isArray","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","set","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","arrayBuffer","isConsumed","byteOffset","readAsText","chars","join","readArrayBufferAsText","formData","oldValue","has","keys","values","entries","methods","Request","input","options","upcased","credentials","signal","toUpperCase","referrer","cache","reParamSearch","form","trim","bytes","decodeURIComponent","parseUniappHeaders","rawHeaders","Response","bodyInit","status","ok","statusText","clone","redirectStatuses","redirect","RangeError","DOMException","aborted","toStr","rawBody","requestTask","href","fixUrl","complete","removeEventListener","abortXhr","errMsg","statusCode","abort","addEventListener","polyfill","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","W3CWebSocket","uri","protocols","prop","naiveFallback","configurable","__global__","identifier","ApiResponse_1","HttpApi","params","reqUrl","setQueryConfig","setQueryToBody","_str","substring","rnfetch1","response2ApiResponse","apiResponse","msg","ApiResponse","succeed","FriendShipCommand","GroupCommand","UserEventCommand","ConversationEventCommand","messageId","messageRandom","RangeInteger","messageTime","min","max","range","floor","warn","messageBody","buildCustomerMessagePack","content"],"mappings":"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","file":"lim-sdk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"imsdk\"] = factory();\n\telse\n\t\troot[\"imsdk\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\"use strict\";\r\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\nexports.__esModule = true;\r\nvar Logger = /** @class */ (function () {\r\n function Logger() {\r\n }\r\n Logger.info = function (message) {\r\n var optionalParams = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n optionalParams[_i - 1] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.info.apply(console, __spreadArrays([new Date().toISOString() + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.infoTag = function (tag, message) {\r\n var optionalParams = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n optionalParams[_i - 2] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.info.apply(console, __spreadArrays([new Date().toISOString() + \" \" + tag + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.error = function (message) {\r\n var optionalParams = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n optionalParams[_i - 1] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.error.apply(console, __spreadArrays([new Date().toISOString() + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.errorTag = function (tag, message) {\r\n var optionalParams = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n optionalParams[_i - 2] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.error.apply(console, __spreadArrays([new Date().toISOString() + \" \" + tag + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.trace = function (e) {\r\n if (Logger.debug) {\r\n if (e instanceof Error) {\r\n console.error(e.message + \" \\n \" + (e.stack !== undefined ? e.stack : ''));\r\n }\r\n else {\r\n console.error(e);\r\n }\r\n }\r\n };\r\n Logger.debug = false;\r\n return Logger;\r\n}());\r\nexports[\"default\"] = Logger;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Beans = /** @class */ (function () {\r\n function Beans() {\r\n }\r\n Beans.to = function (target) {\r\n return JSON.parse(JSON.stringify(target));\r\n };\r\n Beans.bean = function (json) {\r\n return JSON.parse(json);\r\n };\r\n Beans.copy = function (target) {\r\n return Beans.to(target);\r\n };\r\n Beans.replace = function (target, replaceJSON) {\r\n var r = Beans.to(target);\r\n for (var v in replaceJSON) {\r\n r[v] = replaceJSON[v];\r\n }\r\n return r;\r\n };\r\n Beans.toMapByKey = function (arrs, key) {\r\n var result = {};\r\n arrs.forEach(function (v) {\r\n if (v.hasOwnProperty(key)) {\r\n result[key] = v;\r\n }\r\n });\r\n return result;\r\n };\r\n Beans.json = function (target) {\r\n return JSON.stringify(target);\r\n };\r\n Beans.strEmpty = function (s) {\r\n return !!s;\r\n };\r\n Beans.strNotEmpty = function (s) {\r\n return !s;\r\n };\r\n Beans.isEmpty = function (str) {\r\n if (str === null ||\r\n str === '' ||\r\n str === undefined ||\r\n str.length === 0) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n Beans.uuid = function () {\r\n return (Math.random() * 36).toString(36).slice(2) + new Date().getTime().toString();\r\n };\r\n return Beans;\r\n}());\r\nexports[\"default\"] = Beans;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nexports.__esModule = true;\r\nexports.imClient = exports.getLen = exports.limLogin = exports.ImClient = exports.sleep = exports.State = void 0;\r\nvar Logger_1 = require(\"../log/Logger\");\r\nvar ByteBuffer_1 = require(\"../codec/ByteBuffer\");\r\nvar LoginPack_1 = require(\"../pack/LoginPack\");\r\nvar WebToolkit_1 = require(\"../common/WebToolkit\");\r\nvar websocket_1 = require(\"websocket\");\r\nvar RequestBase_1 = require(\"../model/RequestBase\");\r\nvar RequestParams_1 = require(\"../model/RequestParams\");\r\nvar HttpApi_1 = require(\"./HttpApi\");\r\nvar utils_1 = require(\"../common/utils\");\r\nvar Command_1 = require(\"../common/Command\");\r\nvar MessagePack_1 = require(\"../pack/MessagePack\");\r\nvar loginTimeout = 10 * 1000; // 10 seconds\r\nvar heartbeatInterval = 10 * 1000; // seconds\r\nvar firstMonitorSocket = false; // 第一次监听socket\r\nvar State;\r\n(function (State) {\r\n State[State[\"INIT\"] = 0] = \"INIT\";\r\n State[State[\"CONNECTING\"] = 1] = \"CONNECTING\";\r\n State[State[\"CONNECTED\"] = 2] = \"CONNECTED\";\r\n State[State[\"RECONNECTING\"] = 3] = \"RECONNECTING\";\r\n State[State[\"CLOSEING\"] = 4] = \"CLOSEING\";\r\n State[State[\"CLOSED\"] = 5] = \"CLOSED\";\r\n})(State = exports.State || (exports.State = {}));\r\nvar TimeUnit;\r\n(function (TimeUnit) {\r\n TimeUnit[TimeUnit[\"Second\"] = 1000] = \"Second\";\r\n TimeUnit[TimeUnit[\"Millisecond\"] = 1] = \"Millisecond\";\r\n})(TimeUnit || (TimeUnit = {}));\r\nexports.sleep = function (second, Unit) {\r\n if (Unit === void 0) { Unit = TimeUnit.Second; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, _) {\r\n setTimeout(function () {\r\n resolve();\r\n }, second * Unit);\r\n })];\r\n });\r\n });\r\n};\r\nvar ImClient = /** @class */ (function () {\r\n function ImClient() {\r\n this.url = \"\";\r\n this.version = 1;\r\n this.clientType = 1;\r\n this.listeners = null;\r\n this.state = State.INIT;\r\n this.lastOfflineMessageSequence = 0;\r\n this.offlineMessageList = new Array();\r\n this.httpUrl = \"\"; //http://127.0.0.1:8000/v1\r\n }\r\n ImClient.prototype.getRequestBase = function () {\r\n return new RequestBase_1.RequestBase(this.appId, this.clientType, this.imei);\r\n };\r\n ImClient.prototype.isInit = function () {\r\n return this.state == State.CONNECTED;\r\n };\r\n ImClient.prototype.getRequestParams = function () {\r\n return new RequestParams_1.RequestParams(this.appId, this.userId, this.userSign);\r\n };\r\n ImClient.prototype.init = function (httpUrl, appId, userId, userSign, listeners, callback) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var self, api, resp, ip, port, protocolStr, req, _a, success, err, conn;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n self = this;\r\n self.httpUrl = httpUrl;\r\n self.appId = appId;\r\n self.listeners = listeners;\r\n self.imei = WebToolkit_1[\"default\"].getDeviceInfo().system;\r\n self.imeiLength = exports.getLen(self.imei);\r\n self.userId = userId;\r\n this.userSign = userSign;\r\n this.imeiLength = self.imeiLength;\r\n if (!utils_1[\"default\"].isEmpty(this.url)) return [3 /*break*/, 2];\r\n Logger_1[\"default\"].info(\"获取im地址\");\r\n api = new HttpApi_1[\"default\"](this.httpUrl);\r\n return [4 /*yield*/, api.call(\"/user/login\", {}, { clientType: this.clientType, appId: this.appId, userId: this.userId })\r\n // console.log(resp)\r\n ];\r\n case 1:\r\n resp = _b.sent();\r\n // console.log(resp)\r\n if (resp.isFailed()) {\r\n Logger_1[\"default\"].info(\"登录失败:获取im地址失败\");\r\n return [2 /*return*/];\r\n }\r\n ip = resp.data.ip;\r\n port = resp.data.port;\r\n protocolStr = document.location.protocol;\r\n if (protocolStr == \"http:\") {\r\n this.url = \"ws://\" + ip + \":\" + port + \"/ws\";\r\n }\r\n else if (protocolStr == \"https:\") {\r\n this.url = \"wss://\" + ip + \"/hs_ws\";\r\n }\r\n _b.label = 2;\r\n case 2:\r\n req = new LoginPack_1.LoginPack(self.appId, self.userId, 1);\r\n return [4 /*yield*/, exports.limLogin(self.url, req, self)];\r\n case 3:\r\n _a = _b.sent(), success = _a.success, err = _a.err, conn = _a.conn;\r\n if (success) {\r\n if (!firstMonitorSocket) {\r\n firstMonitorSocket = true;\r\n }\r\n //登录成功以后操作\r\n conn.onerror = function (error) {\r\n Logger_1[\"default\"].info(\"websocket error: \", error);\r\n // 加入socket 连接事件\r\n if (typeof exports.imClient.listeners.onSocketErrorEvent === 'function') {\r\n exports.imClient.listeners.onSocketErrorEvent(error);\r\n }\r\n //异步方法,自动重连\r\n _this.errorHandler(error, req);\r\n };\r\n conn.onclose = function (e) {\r\n Logger_1[\"default\"].info(\"event[onclose] fired\");\r\n if (self.state == State.CLOSEING) {\r\n _this.onclose(\"logout\");\r\n return;\r\n }\r\n // socket断开事件 连接事件\r\n if (typeof exports.imClient.listeners.onSocketCloseEvent === 'function') {\r\n exports.imClient.listeners.onSocketCloseEvent();\r\n }\r\n // 异步方法 自动重连\r\n _this.errorHandler(new Error(e.reason), req);\r\n };\r\n conn.onmessage = function (evt) {\r\n var bytebuf = new ByteBuffer_1[\"default\"](evt.data);\r\n var byteBuffer = bytebuf.int32().int32().unpack();\r\n var command = byteBuffer[0]; //解析command\r\n var bodyLen = byteBuffer[1]; //解析bodylen\r\n var unpack = bytebuf.vstring(null, bodyLen).unpack(); //解析出字符串\r\n var msgBody = unpack[2];\r\n console.log(\"sdk收到服务端数据 command:\" + command);\r\n console.log(\"sdk收到服务端数据:\" + msgBody);\r\n if (command === Command_1.MessageCommand.MSG_P2P) {\r\n //单聊消息收发\r\n if (typeof exports.imClient.listeners.onP2PMessage === 'function') {\r\n exports.imClient.listeners.onP2PMessage(msgBody);\r\n }\r\n }\r\n else {\r\n if (typeof exports.imClient.listeners.onTestMessage === 'function') {\r\n exports.imClient.listeners.onTestMessage(msgBody);\r\n }\r\n }\r\n };\r\n this.conn = conn;\r\n this.state = State.CONNECTED;\r\n //拉取离线消息\r\n this.loadOfflineMessage();\r\n //心跳包\r\n this.heartbeatLoop(this.conn);\r\n if (typeof exports.imClient.listeners.onLogin === 'function') {\r\n exports.imClient.listeners.onLogin(this.userId);\r\n }\r\n callback(self);\r\n }\r\n else {\r\n Logger_1[\"default\"].error(err === null || err === void 0 ? void 0 : err.message);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n ImClient.prototype.buildMessagePack = function (command, messagePack) {\r\n var jsonData = JSON.stringify(messagePack);\r\n // console.log(\"=============buildMessagePack=========\")\r\n // log.info(jsonData);\r\n var bodyLen = exports.getLen(jsonData);\r\n var pack = new ByteBuffer_1[\"default\"](null, 0);\r\n pack.int32(command).int32(this.version).int32(this.clientType)\r\n .int32(0x0)\r\n .int32(this.appId)\r\n .int32(this.imeiLength)\r\n .int32(bodyLen)\r\n .vstring(this.imei, this.imeiLength)\r\n .vstring(jsonData, bodyLen);\r\n return pack;\r\n };\r\n // 4. 自动重连\r\n ImClient.prototype.errorHandler = function (error, req) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var index, _a, success, err, conn, error_1;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n // 如果是主动断开连接,就没有必要自动重连\r\n // 比如收到被踢,或者主动调用logout()方法\r\n if (this.state == State.CLOSED || this.state == State.CLOSEING) {\r\n return [2 /*return*/];\r\n }\r\n this.state = State.RECONNECTING;\r\n if (typeof exports.imClient.listeners.onSocketReConnectEvent === 'function') {\r\n exports.imClient.listeners.onSocketReConnectEvent();\r\n }\r\n index = 0;\r\n _b.label = 1;\r\n case 1:\r\n if (!(index < 10)) return [3 /*break*/, 7];\r\n return [4 /*yield*/, exports.sleep(3)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n Logger_1[\"default\"].info(\"try to relogin\");\r\n return [4 /*yield*/, exports.limLogin(this.url, req, this)];\r\n case 4:\r\n _a = _b.sent(), success = _a.success, err = _a.err, conn = _a.conn;\r\n if (success) {\r\n if (typeof exports.imClient.listeners.onSocketReConnectSuccessEvent === 'function') {\r\n exports.imClient.listeners.onSocketReConnectSuccessEvent();\r\n }\r\n return [2 /*return*/];\r\n }\r\n Logger_1[\"default\"].info(err);\r\n return [3 /*break*/, 6];\r\n case 5:\r\n error_1 = _b.sent();\r\n Logger_1[\"default\"].info(error_1);\r\n return [3 /*break*/, 6];\r\n case 6:\r\n index++;\r\n return [3 /*break*/, 1];\r\n case 7:\r\n this.onclose(\"reconnect timeout\");\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // 表示连接中止\r\n ImClient.prototype.onclose = function (reason) {\r\n if (this.state == State.CLOSED) {\r\n return;\r\n }\r\n this.state = State.CLOSED;\r\n Logger_1[\"default\"].info(\"connection closed due to \" + reason);\r\n this.conn = undefined;\r\n this.userId = \"\";\r\n // 加入socket 关闭事件\r\n if (typeof exports.imClient.listeners.onSocketErrorEvent === 'function') {\r\n exports.imClient.listeners.onSocketCloseEvent();\r\n }\r\n };\r\n ImClient.prototype.getSingleUserInfo = function (uid) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/user/data/getSingleUserInfo\", _this.getRequestParams(), { userId: uid });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.syncGetUserInfo = function (userId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var api, resp;\r\n return __generator(this, function (_a) {\r\n api = new HttpApi_1[\"default\"](this.httpUrl);\r\n resp = api.call(\"/user/data/getUserInfo\", this.getRequestParams(), { userIds: userId });\r\n return [2 /*return*/, resp];\r\n });\r\n });\r\n };\r\n ImClient.prototype.getUserInfo = function (userId) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/user/data/getUserInfo\", _this.getRequestParams(), { userIds: userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getAllFriend = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/friendship/getAllFriendShip\", _this.getRequestParams(), { fromId: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getUserSequence = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/user/getUserSequence\", _this.getRequestParams(), { userId: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getUserConversationList = function (lastSequence) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/conversation/syncConversationList\", _this.getRequestParams(), { userId: _this.userId, appId: _this.appId, maxLimit: 100, lastSequence: lastSequence, operater: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getChatMessageHistoryList = function (uid, offset, limit) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/message/chatHistory\", _this.getRequestParams(), { userId: uid, appId: _this.appId, offset: offset, limit: limit, operater: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.createRoom = function (room) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/room/createRoom\", _this.getRequestParams(), room);\r\n return resp;\r\n });\r\n };\r\n ImClient.prototype.joinRoom = function (room) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/room/joinRoom\", _this.getRequestParams(), room);\r\n return resp;\r\n });\r\n };\r\n ImClient.prototype.getRoomInfo = function (roomId) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/room/getRoomInfo\", _this.getRequestParams(), { roomId: roomId });\r\n return resp;\r\n });\r\n };\r\n // 2、心跳\r\n ImClient.prototype.heartbeatLoop = function (conn) {\r\n var _this = this;\r\n var start = Date.now();\r\n var loop = function () {\r\n if (_this.state != State.CONNECTED) {\r\n Logger_1[\"default\"].error(\"heartbeatLoop exited\");\r\n return;\r\n }\r\n if (Date.now() - start >= heartbeatInterval) {\r\n // log.info(`>>> send ping ;`)\r\n start = Date.now();\r\n var pingPack = exports.imClient.buildMessagePack(Command_1.SystemCommand.PING, {});\r\n conn.send(pingPack.pack(false));\r\n }\r\n setTimeout(loop, 500);\r\n };\r\n setTimeout(loop, 500);\r\n };\r\n //构建单聊消息对象\r\n ImClient.prototype.createP2PTextMessage = function (to, text) {\r\n var messagePack = new MessagePack_1.MessagePack(this.appId);\r\n messagePack.buildTextMessagePack(this.userId, to, text);\r\n return messagePack;\r\n };\r\n ImClient.prototype.sendP2PMessage = function (pack) {\r\n var p2pPack = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_P2P, pack);\r\n if (this.conn) {\r\n this.conn.send(p2pPack.pack(false));\r\n }\r\n };\r\n // 消息接收ack\r\n ImClient.prototype.sendP2PMessageReciveAck = function (rAck) {\r\n console.log(\"=============== sendP2PMessageReciveAck\");\r\n console.log(rAck);\r\n rAck.toId = rAck.fromId;\r\n rAck.fromId = this.userId;\r\n console.log(rAck);\r\n var p2pPack_1107 = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_RECIVE_ACK, rAck); // 1107\r\n rAck.conversationType = 0;\r\n var p2pPack_1106 = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_READED, rAck); // 1106\r\n var p2pPack_1054 = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_READED_RECEIPT, rAck); // 1054\r\n if (this.conn) {\r\n // console.log(\"=============== sendP2PMessageReciveAck 正式开始消息接收ack\")\r\n this.conn.send(p2pPack_1107.pack(false));\r\n this.conn.send(p2pPack_1106.pack(false));\r\n this.conn.send(p2pPack_1054.pack(false));\r\n }\r\n };\r\n // 消息已读回执,给原消息发送方 1054\r\n ImClient.prototype.sendP2PMessageReadedReceipt = function (rAck) {\r\n console.log(\"=============== sendP2PMessageReadedRECEIPT\");\r\n console.log(rAck);\r\n rAck.toId = rAck.fromId;\r\n rAck.fromId = this.userId;\r\n console.log(rAck);\r\n var p2pPack = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_READED_RECEIPT, rAck);\r\n if (this.conn) {\r\n console.log(\"=============== sendP2PMessageReadedRECEIPT 正式开始发送已读回执\");\r\n this.conn.send(p2pPack.pack(false));\r\n }\r\n };\r\n ImClient.prototype.getUserId = function () {\r\n return this.userId;\r\n };\r\n //拉取离线信息记录\r\n ImClient.prototype.loadOfflineMessage = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var api, resp, offmessages;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Logger_1[\"default\"].info(\"loadOfflineMessage start\");\r\n api = new HttpApi_1[\"default\"](this.httpUrl);\r\n return [4 /*yield*/, api.call(\"/message/syncOfflineMessage\", this.getRequestParams(), { clientType: this.clientType, operater: this.userId, appId: this.appId, lastSequence: this.lastOfflineMessageSequence, maxLimit: 100 })];\r\n case 1:\r\n resp = _a.sent();\r\n if (resp.isSucceed()) {\r\n this.lastOfflineMessageSequence = resp.data.maxSequence;\r\n offmessages = resp.data.dataList;\r\n this.offlineMessageList.push(offmessages);\r\n if (offmessages.length > 0 && typeof exports.imClient.listeners.onOfflineMessage === 'function') {\r\n exports.imClient.listeners.onOfflineMessage(offmessages);\r\n }\r\n console.log(resp.data.completed);\r\n if (!resp.data.completed) {\r\n this.loadOfflineMessage();\r\n }\r\n }\r\n else {\r\n Logger_1[\"default\"].error(\"loadOfflineMessage - error\");\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return ImClient;\r\n}());\r\nexports.ImClient = ImClient;\r\nexports.limLogin = function (url, req, imClient) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, _) {\r\n var conn = new websocket_1.w3cwebsocket(url);\r\n conn.binaryType = \"arraybuffer\";\r\n Logger_1[\"default\"].info(\"limLogin\");\r\n // 设置一个登陆超时器\r\n var tr = setTimeout(function () {\r\n clearTimeout(tr);\r\n resolve({ success: false, err: new Error(\"timeout\"), conn: conn });\r\n }, loginTimeout);\r\n conn.onopen = function () {\r\n if (conn.readyState == websocket_1.w3cwebsocket.OPEN) {\r\n // 加入socket 连接事件\r\n if (typeof imClient.listeners.onSocketConnectEvent === 'function') {\r\n imClient.listeners.onSocketConnectEvent(url, req);\r\n }\r\n Logger_1[\"default\"].info(\"\\u5F00\\u542F\\u8FDE\\u63A5\");\r\n //登录数据包\r\n var data = {\r\n \"userId\": req.userId\r\n };\r\n var loginPack = imClient.buildMessagePack(0x2328, data);\r\n conn.send(loginPack.pack(false));\r\n }\r\n };\r\n conn.onerror = function (error) {\r\n clearTimeout(tr);\r\n Logger_1[\"default\"].error(error);\r\n resolve({ success: false, err: error, conn: conn });\r\n };\r\n conn.onmessage = function (evt) {\r\n if (typeof evt.data === 'string') {\r\n Logger_1[\"default\"].info(\"Received: '\" + evt.data + \"'\");\r\n return;\r\n }\r\n clearTimeout(tr);\r\n var bytebuf = new ByteBuffer_1[\"default\"](evt.data);\r\n var byteBuffer = bytebuf.int32().int32().unpack();\r\n var command = byteBuffer[0];\r\n var bodyLen = byteBuffer[1];\r\n if (command == 0x2329) {\r\n resolve({ success: true, conn: conn });\r\n }\r\n };\r\n })];\r\n });\r\n}); };\r\nexports.getLen = function (str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n //单字节加1\r\n if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {\r\n len++;\r\n }\r\n else {\r\n len += 3;\r\n }\r\n }\r\n return len;\r\n};\r\nexports.imClient = new ImClient();\r\n","\"use strict\";\r\nexports.__esModule = true;\r\n/**\r\n * 返回平台所用的 fetch 工具\r\n * */\r\nvar Fetch = /** @class */ (function () {\r\n function Fetch() {\r\n }\r\n Fetch.getFetchToolkit = function () {\r\n var httpFetch;\r\n // @ts-ignore\r\n if (typeof global.fetch !== 'undefined' && typeof global.fetch === 'function') {\r\n // @ts-ignore\r\n httpFetch = global.fetch;\r\n }\r\n else if (typeof fetch === 'function') {\r\n httpFetch = fetch; // RN FETCH\r\n }\r\n else {\r\n var uniFetch = require(\"../uniapp/http/uni-fetch\");\r\n httpFetch = uniFetch.fetch;\r\n }\r\n return httpFetch;\r\n };\r\n return Fetch;\r\n}());\r\nexports[\"default\"] = Fetch;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.im = void 0;\r\nvar ImClient_1 = require(\"./lim/core/ImClient\");\r\nexports.im = ImClient_1.imClient;\r\n// if(typeof window !== 'undefined'){\r\n// console.log(\"window\");\r\n// }\r\n// if(typeof global !== 'undefined'){\r\n// console.log(\"global\");\r\n// }\r\n// @ts-ignore\r\nif (typeof uni !== 'undefined') {\r\n // console.log(\"uni\");\r\n // @ts-ignore\r\n uni['im'] = ImClient_1.imClient;\r\n // @ts-ignore\r\n // uni['im_webtoolkit'] = WebToolkit;\r\n}\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar ByteBuffer = /** @class */ (function () {\r\n function ByteBuffer(arrayBuf, offset) {\r\n this.Type_Byte = 1;\r\n this.Type_Short = 2;\r\n this.Type_UShort = 3;\r\n this.Type_Int32 = 4;\r\n this.Type_UInt32 = 5;\r\n this.Type_String = 6; //变长字符串,前两个字节表示长度\r\n this.Type_VString = 7; //定长字符串\r\n this.Type_Int64 = 8;\r\n this.Type_Float = 9;\r\n this.Type_Double = 10;\r\n this.Type_ByteArray = 11;\r\n this._offset = 0;\r\n this._list = [];\r\n this._littleEndian = false;\r\n this._org_buf = arrayBuf ? (arrayBuf.constructor == DataView ? arrayBuf\r\n : (arrayBuf.constructor == Uint8Array ? new DataView(arrayBuf.buffer, offset) : new DataView(arrayBuf, offset))) : new DataView(new Uint8Array([]).buffer);\r\n this.arrayBuf = arrayBuf;\r\n this.offset = offset;\r\n // if (!ArrayBuffer.prototype.slice) {\r\n // ArrayBuffer.prototype.slice = function (start, end) {\r\n // var that = new Uint8Array(this);\r\n // if (end == undefined) end = that.length;\r\n // var result = new ArrayBuffer(end - start);\r\n // var resultArray = new Uint8Array(result);\r\n // for (var i = 0; i < resultArray.length; i++)\r\n // resultArray[i] = that[i + start];\r\n // return result;\r\n // }\r\n // }\r\n }\r\n //指定字节序 为BigEndian\r\n ByteBuffer.prototype.bigEndian = function () {\r\n this._littleEndian = false;\r\n return this;\r\n };\r\n ;\r\n //指定字节序 为LittleEndian\r\n ByteBuffer.prototype.littleEndianfunction = function () {\r\n this._littleEndian = true;\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.utf8Write = function (view, offset, str) {\r\n var c = 0;\r\n for (var i = 0, l = str.length; i < l; i++) {\r\n c = str.charCodeAt(i);\r\n if (c < 0x80) {\r\n view.setUint8(offset++, c);\r\n }\r\n else if (c < 0x800) {\r\n view.setUint8(offset++, 0xc0 | (c >> 6));\r\n view.setUint8(offset++, 0x80 | (c & 0x3f));\r\n }\r\n else if (c < 0xd800 || c >= 0xe000) {\r\n view.setUint8(offset++, 0xe0 | (c >> 12));\r\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\r\n view.setUint8(offset++, 0x80 | (c & 0x3f));\r\n }\r\n else {\r\n i++;\r\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\r\n view.setUint8(offset++, 0xf0 | (c >> 18));\r\n view.setUint8(offset++, 0x80 | (c >> 12) & 0x3f);\r\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\r\n view.setUint8(offset++, 0x80 | (c & 0x3f));\r\n }\r\n }\r\n };\r\n // byte (val, index) {\r\n // if (arguments.length == 0) {\r\n // this._list.push(this._org_buf.getUint8(this._offset, this._littleEndian));\r\n // this._offset += 1;\r\n // } else {\r\n // this._list.splice(index != undefined ? index : this._list.length, 0);\r\n // this._offset += 1;\r\n // }\r\n // return this;\r\n // };\r\n // short(val:number, index:number) {\r\n // if (arguments.length == 0) {\r\n // this._list.push(this._org_buf.getInt16(this._offset, this._littleEndian));\r\n // this._offset += 2;\r\n // } else {\r\n // this._list.splice(index != undefined ? index : this._list.length, 0, this.Type_Short);\r\n // this._offset += 2;\r\n // }\r\n // return this;\r\n // };\r\n // ushort(val, index) {\r\n // if (arguments.length == 0) {\r\n // this._list.push(this._org_buf.getUint16(this._offset, this._littleEndian));\r\n // this._offset += 2;\r\n // } else {\r\n // // , {t: this.Type_UShort, d: val, l: 2}\r\n // this._list.splice(index != undefined ? index : this._list.length, 0);\r\n // this._offset += 2;\r\n // }\r\n // return this;\r\n // };\r\n ByteBuffer.prototype.int32 = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getInt32(this._offset, this._littleEndian));\r\n this._offset += 4;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Int32, d: val, l: 4 });\r\n this._offset += 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.uint32 = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getUint32(this._offset, this._littleEndian));\r\n this._offset += 4;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_UInt32, d: val, l: 4 });\r\n this._offset += 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n /**\r\n * 新加的方法,获取bytebuffer的长度\r\n */\r\n ByteBuffer.prototype.blength = function () {\r\n return this._offset;\r\n };\r\n ;\r\n /**\r\n * 变长字符串 前4个字节表示字符串长度\r\n **/\r\n ByteBuffer.prototype.string = function (val, index) {\r\n if (arguments.length == 0) {\r\n var len = this._org_buf.getInt32(this._offset, this._littleEndian);\r\n this._offset += 4;\r\n this._list.push(this.utf8Read(this._org_buf, this._offset, len));\r\n this._offset += len;\r\n }\r\n else {\r\n var len = 0;\r\n if (val) {\r\n len = this.utf8Length(val);\r\n }\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_String, d: val, l: len });\r\n this._offset += len + 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.utf8Length = function (str) {\r\n var c = 0, length = 0;\r\n for (var i = 0, l = str.length; i < l; i++) {\r\n c = str.charCodeAt(i);\r\n if (c < 0x80) {\r\n length += 1;\r\n }\r\n else if (c < 0x800) {\r\n length += 2;\r\n }\r\n else if (c < 0xd800 || c >= 0xe000) {\r\n length += 3;\r\n }\r\n else {\r\n i++;\r\n length += 4;\r\n }\r\n }\r\n return length;\r\n };\r\n ByteBuffer.prototype.utf8Read = function (view, offset, length) {\r\n var string = '', chr = 0;\r\n for (var i = offset, end = offset + length; i < end; i++) {\r\n var byte = view.getUint8(i);\r\n if ((byte & 0x80) === 0x00) {\r\n string += String.fromCharCode(byte);\r\n continue;\r\n }\r\n if ((byte & 0xe0) === 0xc0) {\r\n string += String.fromCharCode(((byte & 0x0f) << 6) |\r\n (view.getUint8(++i) & 0x3f));\r\n continue;\r\n }\r\n if ((byte & 0xf0) === 0xe0) {\r\n string += String.fromCharCode(((byte & 0x0f) << 12) |\r\n ((view.getUint8(++i) & 0x3f) << 6) |\r\n ((view.getUint8(++i) & 0x3f) << 0));\r\n continue;\r\n }\r\n if ((byte & 0xf8) === 0xf0) {\r\n chr = ((byte & 0x07) << 18) |\r\n ((view.getUint8(++i) & 0x3f) << 12) |\r\n ((view.getUint8(++i) & 0x3f) << 6) |\r\n ((view.getUint8(++i) & 0x3f) << 0);\r\n if (chr >= 0x010000) { // surrogate pair\r\n chr -= 0x010000;\r\n string += String.fromCharCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);\r\n }\r\n else {\r\n string += String.fromCharCode(chr);\r\n }\r\n continue;\r\n }\r\n throw new Error('Invalid byte ' + byte.toString(16));\r\n }\r\n return string;\r\n };\r\n /**\r\n * 定长字符串 val为null时,读取定长字符串(需指定长度len)\r\n **/\r\n ByteBuffer.prototype.vstring = function (val, len, index) {\r\n if (!len) {\r\n throw new Error('vstring must got len argument');\r\n return this;\r\n }\r\n if (val == undefined || val == null) {\r\n var vlen = 0; //实际长度\r\n for (var i = this._offset; i < this._offset + len; i++) {\r\n if (this._org_buf.getUint8(i) > 0)\r\n vlen++;\r\n }\r\n this._list.push(this.utf8Read(this._org_buf, this._offset, vlen));\r\n this._offset += len;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_VString, d: val, l: len });\r\n this._offset += len;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.int64 = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getFloat64(this._offset, this._littleEndian));\r\n this._offset += 8;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Int64, d: val, l: 8 });\r\n this._offset += 8;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.float = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getFloat32(this._offset, this._littleEndian));\r\n this._offset += 4;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Float, d: val, l: 4 });\r\n this._offset += 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.double = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getFloat64(this._offset, this._littleEndian));\r\n this._offset += 8;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Double, d: val, l: 8 });\r\n this._offset += 8;\r\n }\r\n return this;\r\n };\r\n ;\r\n /**\r\n * 写入或读取一段字节数组\r\n **/\r\n ByteBuffer.prototype.byteArray = function (val, len, index) {\r\n if (!len) {\r\n throw new Error('byteArray must got len argument');\r\n return this;\r\n }\r\n if (val == undefined || val == null) {\r\n var arr = new Uint8Array(this._org_buf.buffer.slice(this._offset, this._offset + len));\r\n this._list.push(arr);\r\n this._offset += len;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_ByteArray, d: val, l: len });\r\n this._offset += len;\r\n }\r\n return this;\r\n };\r\n ;\r\n /**\r\n * 解包成数据数组\r\n **/\r\n ByteBuffer.prototype.unpack = function () {\r\n return this._list;\r\n };\r\n ;\r\n /**\r\n * 打包成二进制,在前面加上4个字节表示包长\r\n **/\r\n ByteBuffer.prototype.packWithHead = function () {\r\n return this.pack(true);\r\n };\r\n ;\r\n /**\r\n * 打包成二进制\r\n * @param ifHead 是否在前面加上4个字节表示包长\r\n **/\r\n ByteBuffer.prototype.pack = function (ifHead) {\r\n this._org_buf = new DataView(new ArrayBuffer((ifHead) ? this._offset + 4 : this._offset));\r\n var offset = 0;\r\n if (ifHead) {\r\n this._org_buf.setUint32(offset, this._offset, this._littleEndian);\r\n offset += 4;\r\n }\r\n for (var i = 0; i < this._list.length; i++) {\r\n switch (this._list[i].t) {\r\n case this.Type_Byte:\r\n this._org_buf.setInt8(offset, this._list[i].d);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Short:\r\n this._org_buf.setInt16(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_UShort:\r\n this._org_buf.setUint16(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Int32:\r\n this._org_buf.setInt32(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_UInt32:\r\n this._org_buf.setUint32(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_String:\r\n //前4个字节表示字符串长度\r\n this._org_buf.setUint32(offset, this._list[i].l, this._littleEndian);\r\n offset += 4;\r\n this.utf8Write(this._org_buf, offset, this._list[i].d);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_VString:\r\n this.utf8Write(this._org_buf, offset, this._list[i].d);\r\n var vlen = this.utf8Length(this._list[i].d); //字符串实际长度\r\n //补齐\\0\r\n for (var j = offset + vlen; j < offset + this._list[i].l; j++) {\r\n this._org_buf.setUint8(j, 0);\r\n }\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Int64:\r\n this._org_buf.setFloat64(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Float:\r\n this._org_buf.setFloat32(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Double:\r\n this._org_buf.setFloat64(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_ByteArray:\r\n var indx = 0;\r\n for (var j = offset; j < offset + this._list[i].l; j++) {\r\n if (indx < this._list[i].d.length) {\r\n this._org_buf.setUint8(j, this._list[i].d[indx]);\r\n }\r\n else { //不够的话,后面补齐0x00\r\n this._org_buf.setUint8(j, 0);\r\n }\r\n indx++;\r\n }\r\n offset += this._list[i].l;\r\n break;\r\n }\r\n }\r\n return this._org_buf.buffer;\r\n };\r\n ;\r\n /**\r\n * 未读数据长度\r\n **/\r\n ByteBuffer.prototype.getAvailable = function () {\r\n if (!this._org_buf)\r\n return this._offset;\r\n return this._org_buf.buffer.byteLength - this._offset;\r\n };\r\n ;\r\n return ByteBuffer;\r\n}());\r\nexports[\"default\"] = ByteBuffer;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.LoginPack = void 0;\r\nvar LoginPack = /** @class */ (function () {\r\n function LoginPack(appId, userId, clientType) {\r\n this.userId = userId;\r\n this.clientType = clientType;\r\n this.appId = appId;\r\n }\r\n return LoginPack;\r\n}());\r\nexports.LoginPack = LoginPack;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Fetch_1 = require(\"../common/Fetch\");\r\nvar Logger_1 = require(\"../log/Logger\");\r\nvar Base64 = {\r\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\r\n encode: function (e) {\r\n var t = \"\";\r\n var n, r, i, s, o, u, a;\r\n var f = 0;\r\n e = Base64._utf8_encode(e);\r\n while (f < e.length) {\r\n n = e.charCodeAt(f++);\r\n r = e.charCodeAt(f++);\r\n i = e.charCodeAt(f++);\r\n s = n >> 2;\r\n o = (n & 3) << 4 | r >> 4;\r\n u = (r & 15) << 2 | i >> 6;\r\n a = i & 63;\r\n if (isNaN(r)) {\r\n u = a = 64;\r\n }\r\n else if (isNaN(i)) {\r\n a = 64;\r\n }\r\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\r\n }\r\n return t;\r\n },\r\n decode: function (e) {\r\n var t = \"\";\r\n var n, r, i;\r\n var s, o, u, a;\r\n var f = 0;\r\n e = e.replace(/[^A-Za-z0-9+/=]/g, \"\");\r\n while (f < e.length) {\r\n s = this._keyStr.indexOf(e.charAt(f++));\r\n o = this._keyStr.indexOf(e.charAt(f++));\r\n u = this._keyStr.indexOf(e.charAt(f++));\r\n a = this._keyStr.indexOf(e.charAt(f++));\r\n n = s << 2 | o >> 4;\r\n r = (o & 15) << 4 | u >> 2;\r\n i = (u & 3) << 6 | a;\r\n t = t + String.fromCharCode(n);\r\n if (u != 64) {\r\n t = t + String.fromCharCode(r);\r\n }\r\n if (a != 64) {\r\n t = t + String.fromCharCode(i);\r\n }\r\n }\r\n t = Base64._utf8_decode(t);\r\n return t;\r\n },\r\n _utf8_encode: function (e) {\r\n e = e.replace(/rn/g, \"n\");\r\n var t = \"\";\r\n for (var n = 0; n < e.length; n++) {\r\n var r = e.charCodeAt(n);\r\n if (r < 128) {\r\n t += String.fromCharCode(r);\r\n }\r\n else if (r > 127 && r < 2048) {\r\n t += String.fromCharCode(r >> 6 | 192);\r\n t += String.fromCharCode(r & 63 | 128);\r\n }\r\n else {\r\n t += String.fromCharCode(r >> 12 | 224);\r\n t += String.fromCharCode(r >> 6 & 63 | 128);\r\n t += String.fromCharCode(r & 63 | 128);\r\n }\r\n }\r\n return t;\r\n },\r\n _utf8_decode: function (e) {\r\n var t = \"\";\r\n var n = 0;\r\n var r = 0;\r\n var c1 = 0;\r\n var c2 = 0;\r\n while (n < e.length) {\r\n r = e.charCodeAt(n);\r\n if (r < 128) {\r\n t += String.fromCharCode(r);\r\n n++;\r\n }\r\n else if (r > 191 && r < 224) {\r\n c2 = e.charCodeAt(n + 1);\r\n t += String.fromCharCode((r & 31) << 6 | c2 & 63);\r\n n += 2;\r\n }\r\n else {\r\n c2 = e.charCodeAt(n + 1);\r\n var c3 = e.charCodeAt(n + 2);\r\n t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\r\n n += 3;\r\n }\r\n }\r\n return t;\r\n }\r\n};\r\nvar WebToolkit = /** @class */ (function () {\r\n function WebToolkit() {\r\n }\r\n // 获取浏览器信息\r\n WebToolkit.getBrowserInfo = function () {\r\n var agent = navigator.userAgent.toLowerCase();\r\n var system = agent.split(\" \")[1].split(\" \")[0].split(\"(\")[1];\r\n var REGSTR_EDGE = /edge\\/[\\d.]+/gi;\r\n var REGSTR_IE = /trident\\/[\\d.]+/gi;\r\n var OLD_IE = /msie\\s[\\d.]+/gi;\r\n var REGSTR_FF = /firefox\\/[\\d.]+/gi;\r\n var REGSTR_CHROME = /chrome\\/[\\d.]+/gi;\r\n var REGSTR_SAF = /safari\\/[\\d.]+/gi;\r\n var REGSTR_OPERA = /opr\\/[\\d.]+/gi;\r\n var info = {\r\n code: 0,\r\n system: system,\r\n browser: \"\",\r\n browserVersion: \"\"\r\n };\r\n // IE\r\n if (agent.indexOf(\"trident\") > 0) {\r\n info.browser = agent.match(REGSTR_IE)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_IE)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // OLD_IE\r\n if (agent.indexOf(\"msie\") > 0) {\r\n info.browser = agent.match(OLD_IE)[0].split(\" \")[0];\r\n info.browserVersion = agent.match(OLD_IE)[0].split(\" \")[1];\r\n return info;\r\n }\r\n // Edge\r\n if (agent.indexOf(\"edge\") > 0) {\r\n info.browser = agent.match(REGSTR_EDGE)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_EDGE)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // firefox\r\n if (agent.indexOf(\"firefox\") > 0) {\r\n info.browser = agent.match(REGSTR_FF)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_FF)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // Opera\r\n if (agent.indexOf(\"opr\") > 0) {\r\n info.browser = agent.match(REGSTR_OPERA)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_OPERA)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // Safari\r\n if (agent.indexOf(\"safari\") > 0 && agent.indexOf(\"chrome\") < 0) {\r\n info.browser = agent.match(REGSTR_SAF)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_SAF)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // Chrome\r\n if (agent.indexOf(\"chrome\") > 0) {\r\n info.browser = agent.match(REGSTR_CHROME)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_CHROME)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n else {\r\n info.code = -1;\r\n return info;\r\n }\r\n };\r\n // TODO: 获取小程序设备信息\r\n WebToolkit.getWxappInfo = function () {\r\n return {\r\n system: 'WXAPP',\r\n browser: 'WXAPP',\r\n browserVersion: '1.0'\r\n };\r\n };\r\n // TODO: 获取ReactNative设备信息\r\n WebToolkit.getReactNativeInfo = function () {\r\n return {\r\n system: 'RNNative',\r\n browser: 'RNNative',\r\n browserVersion: '1.0'\r\n };\r\n };\r\n // TODO: 获取UniApp设备信息\r\n WebToolkit.getUniAppInfo = function () {\r\n return {\r\n system: 'UNIAPP',\r\n browser: 'UNIAPP',\r\n browserVersion: '1.0'\r\n };\r\n };\r\n // 动态加入script 到head 标签处\r\n WebToolkit.loadJS = function (url, callback) {\r\n var script = document.createElement('script'), fn = callback || function () { };\r\n script.type = 'text/javascript';\r\n // document.getElementsByTagName('head')[0].children[16].outerHTML.indexOf('http://pv.sohu.com/cityjson?ie=utf-8')\r\n var exist = false;\r\n for (var v in document.getElementsByTagName('head')[0].children) {\r\n var dom = document.getElementsByTagName('head')[0].children[v];\r\n if (dom.outerHTML !== undefined && dom.outerHTML.indexOf(url) >= 0) {\r\n exist = true;\r\n }\r\n }\r\n if (exist) {\r\n fn();\r\n return;\r\n }\r\n //IE\r\n if (script.readyState) {\r\n script.onreadystatechange = function () {\r\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\r\n script.onreadystatechange = null;\r\n fn();\r\n }\r\n };\r\n }\r\n else {\r\n //其他浏览器\r\n script.onload = function () {\r\n fn();\r\n };\r\n }\r\n script.src = url;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n };\r\n // 获取当前ip信息(fetch方式)\r\n WebToolkit.getIpInfoByFetch = function (callback) {\r\n var url = 'http://pv.sohu.com/cityjson?ie=utf-8';\r\n var fetch = Fetch_1[\"default\"].getFetchToolkit();\r\n var request = { method: \"GET\", mode: \"cors\", headers: { \"Content-Type\": \"application/json\" } };\r\n return fetch(url, request).then(function (response) {\r\n return response.text();\r\n }).then(function (res) {\r\n if (typeof callback === 'function') {\r\n var currentCity = eval('_current_city=' + res.replace('var returnCitySN = ', ''));\r\n callback(currentCity);\r\n }\r\n })[\"catch\"](function (e) {\r\n Logger_1[\"default\"].trace(e);\r\n });\r\n };\r\n // 获取当前ip信息(动态插入script脚本方式)\r\n WebToolkit.getIpInfoByInsertScript = function (callback) {\r\n var url = 'http://pv.sohu.com/cityjson?ie=utf-8';\r\n WebToolkit.loadJS(url, function () {\r\n callback(window['returnCitySN']);\r\n });\r\n };\r\n WebToolkit.getIpInfo = function (callback) {\r\n // 小程序的情况需要把pv.sohu.com域名加入白名单中\r\n WebToolkit.getIpInfoByFetch(callback);\r\n };\r\n // 获取客户端设备信息\r\n WebToolkit.getDeviceInfo = function () {\r\n var deviceInfo = WebToolkit.getUniAppInfo();\r\n return deviceInfo;\r\n };\r\n WebToolkit.base64Encode = function (str) {\r\n return Base64.encode(str);\r\n };\r\n WebToolkit.base64Decode = function (str) {\r\n return Base64.decode(str);\r\n };\r\n return WebToolkit;\r\n}());\r\nexports[\"default\"] = WebToolkit;\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global =\r\n (typeof globalThis !== 'undefined' && globalThis) ||\r\n (typeof self !== 'undefined' && self) ||\r\n (typeof global !== 'undefined' && global)\r\n\r\nvar support = {\r\n searchParams: 'URLSearchParams' in global,\r\n iterable: 'Symbol' in global && 'iterator' in Symbol,\r\n blob:\r\n 'FileReader' in global &&\r\n 'Blob' in global &&\r\n (function() {\r\n try {\r\n new Blob()\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n })(),\r\n formData: 'FormData' in global,\r\n arrayBuffer: 'ArrayBuffer' in global\r\n}\r\n\r\nfunction isDataView(obj) {\r\n return obj && DataView.prototype.isPrototypeOf(obj)\r\n}\r\n\r\nif (support.arrayBuffer) {\r\n var viewClasses = [\r\n '[object Int8Array]',\r\n '[object Uint8Array]',\r\n '[object Uint8ClampedArray]',\r\n '[object Int16Array]',\r\n '[object Uint16Array]',\r\n '[object Int32Array]',\r\n '[object Uint32Array]',\r\n '[object Float32Array]',\r\n '[object Float64Array]'\r\n ]\r\n\r\n var isArrayBufferView =\r\n ArrayBuffer.isView ||\r\n function(obj) {\r\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\r\n }\r\n}\r\n\r\nfunction normalizeName(name) {\r\n if (typeof name !== 'string') {\r\n name = String(name)\r\n }\r\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\r\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\r\n }\r\n // return name.toLowerCase()\r\n return name;\r\n}\r\n\r\nfunction normalizeValue(value) {\r\n if (typeof value !== 'string') {\r\n value = String(value)\r\n }\r\n return value\r\n}\r\n\r\n// Build a destructive iterator for the value list\r\nfunction iteratorFor(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift()\r\n return {done: value === undefined, value: value}\r\n }\r\n }\r\n\r\n if (support.iterable) {\r\n iterator[Symbol.iterator] = function() {\r\n return iterator\r\n }\r\n }\r\n\r\n return iterator\r\n}\r\n\r\nexport function Headers(headers) {\r\n this.map = {}\r\n\r\n if (headers instanceof Headers) {\r\n headers.forEach(function(value, name) {\r\n this.append(name, value)\r\n }, this)\r\n } else if (Array.isArray(headers)) {\r\n headers.forEach(function(header) {\r\n this.append(header[0], header[1])\r\n }, this)\r\n } else if (headers) {\r\n Object.getOwnPropertyNames(headers).forEach(function(name) {\r\n this.append(name, headers[name])\r\n }, this)\r\n }\r\n}\r\n\r\nHeaders.prototype.append = function(name, value) {\r\n name = normalizeName(name)\r\n value = normalizeValue(value)\r\n var oldValue = this.map[name]\r\n this.map[name] = oldValue ? oldValue + ', ' + value : value\r\n}\r\n\r\nHeaders.prototype['delete'] = function(name) {\r\n delete this.map[normalizeName(name)]\r\n}\r\n\r\nHeaders.prototype.get = function(name) {\r\n name = normalizeName(name)\r\n return this.has(name) ? this.map[name] : null\r\n}\r\n\r\nHeaders.prototype.has = function(name) {\r\n return this.map.hasOwnProperty(normalizeName(name))\r\n}\r\n\r\nHeaders.prototype.set = function(name, value) {\r\n this.map[normalizeName(name)] = normalizeValue(value)\r\n}\r\n\r\nHeaders.prototype.forEach = function(callback, thisArg) {\r\n for (var name in this.map) {\r\n if (this.map.hasOwnProperty(name)) {\r\n callback.call(thisArg, this.map[name], name, this)\r\n }\r\n }\r\n}\r\n\r\nHeaders.prototype.keys = function() {\r\n var items = []\r\n this.forEach(function(value, name) {\r\n items.push(name)\r\n })\r\n return iteratorFor(items)\r\n}\r\n\r\nHeaders.prototype.values = function() {\r\n var items = []\r\n this.forEach(function(value) {\r\n items.push(value)\r\n })\r\n return iteratorFor(items)\r\n}\r\n\r\nHeaders.prototype.entries = function() {\r\n var items = []\r\n this.forEach(function(value, name) {\r\n items.push([name, value])\r\n })\r\n return iteratorFor(items)\r\n}\r\n\r\nif (support.iterable) {\r\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\r\n}\r\n\r\nfunction consumed(body) {\r\n if (body.bodyUsed) {\r\n return Promise.reject(new TypeError('Already read'))\r\n }\r\n body.bodyUsed = true\r\n}\r\n\r\nfunction fileReaderReady(reader) {\r\n return new Promise(function(resolve, reject) {\r\n reader.onload = function() {\r\n resolve(reader.result)\r\n }\r\n reader.onerror = function() {\r\n reject(reader.error)\r\n }\r\n })\r\n}\r\n\r\nfunction readBlobAsArrayBuffer(blob) {\r\n var reader = new FileReader()\r\n var promise = fileReaderReady(reader)\r\n reader.readAsArrayBuffer(blob)\r\n return promise\r\n}\r\n\r\nfunction readBlobAsText(blob) {\r\n var reader = new FileReader()\r\n var promise = fileReaderReady(reader)\r\n reader.readAsText(blob)\r\n return promise\r\n}\r\n\r\nfunction readArrayBufferAsText(buf) {\r\n var view = new Uint8Array(buf)\r\n var chars = new Array(view.length)\r\n\r\n for (var i = 0; i < view.length; i++) {\r\n chars[i] = String.fromCharCode(view[i])\r\n }\r\n return chars.join('')\r\n}\r\n\r\nfunction bufferClone(buf) {\r\n if (buf.slice) {\r\n return buf.slice(0)\r\n } else {\r\n var view = new Uint8Array(buf.byteLength)\r\n view.set(new Uint8Array(buf))\r\n return view.buffer\r\n }\r\n}\r\n\r\nfunction Body() {\r\n this.bodyUsed = false\r\n\r\n this._initBody = function(body) {\r\n /*\r\n fetch-mock wraps the Response object in an ES6 Proxy to\r\n provide useful test harness features such as flush. However, on\r\n ES5 browsers without fetch or Proxy support pollyfills must be used;\r\n the proxy-pollyfill is unable to proxy an attribute unless it exists\r\n on the object before the Proxy is created. This change ensures\r\n Response.bodyUsed exists on the instance, while maintaining the\r\n semantic of setting Request.bodyUsed in the constructor before\r\n _initBody is called.\r\n */\r\n this.bodyUsed = this.bodyUsed\r\n this._bodyInit = body\r\n if (!body) {\r\n this._bodyText = ''\r\n } else if (typeof body === 'string') {\r\n this._bodyText = body\r\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\r\n this._bodyBlob = body\r\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\r\n this._bodyFormData = body\r\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\r\n this._bodyText = body.toString()\r\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\r\n this._bodyArrayBuffer = bufferClone(body.buffer)\r\n // IE 10-11 can't handle a DataView body.\r\n this._bodyInit = new Blob([this._bodyArrayBuffer])\r\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\r\n this._bodyArrayBuffer = bufferClone(body)\r\n } else {\r\n this._bodyText = body = Object.prototype.toString.call(body)\r\n }\r\n\r\n if (!this.headers.get('Content-Type')) {\r\n if (typeof body === 'string') {\r\n this.headers.set('Content-Type', 'text/plain;charset=UTF-8')\r\n } else if (this._bodyBlob && this._bodyBlob.type) {\r\n this.headers.set('Content-Type', this._bodyBlob.type)\r\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\r\n this.headers.set('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8')\r\n }\r\n }\r\n }\r\n\r\n if (support.blob) {\r\n this.blob = function() {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return Promise.resolve(this._bodyBlob)\r\n } else if (this._bodyArrayBuffer) {\r\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as blob')\r\n } else {\r\n return Promise.resolve(new Blob([this._bodyText]))\r\n }\r\n }\r\n\r\n this.arrayBuffer = function() {\r\n if (this._bodyArrayBuffer) {\r\n var isConsumed = consumed(this)\r\n if (isConsumed) {\r\n return isConsumed\r\n }\r\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\r\n return Promise.resolve(\r\n this._bodyArrayBuffer.buffer.slice(\r\n this._bodyArrayBuffer.byteOffset,\r\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\r\n )\r\n )\r\n } else {\r\n return Promise.resolve(this._bodyArrayBuffer)\r\n }\r\n } else {\r\n return this.blob().then(readBlobAsArrayBuffer)\r\n }\r\n }\r\n }\r\n\r\n this.text = function() {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return readBlobAsText(this._bodyBlob)\r\n } else if (this._bodyArrayBuffer) {\r\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as text')\r\n } else {\r\n return Promise.resolve(this._bodyText)\r\n }\r\n }\r\n\r\n if (support.formData) {\r\n this.formData = function() {\r\n return this.text().then(decode)\r\n }\r\n }\r\n\r\n this.json = function() {\r\n return this.text().then(JSON.parse)\r\n }\r\n\r\n return this\r\n}\r\n\r\n// HTTP methods whose capitalization should be normalized\r\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\r\n\r\nfunction normalizeMethod(method) {\r\n var upcased = method.toUpperCase()\r\n return methods.indexOf(upcased) > -1 ? upcased : method\r\n}\r\n\r\nexport function Request(input, options) {\r\n if (!(this instanceof Request)) {\r\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\r\n }\r\n\r\n options = options || {}\r\n var body = options.body\r\n\r\n if (input instanceof Request) {\r\n if (input.bodyUsed) {\r\n throw new TypeError('Already read')\r\n }\r\n this.url = input.url\r\n this.credentials = input.credentials\r\n if (!options.headers) {\r\n this.headers = new Headers(input.headers)\r\n }\r\n this.method = input.method\r\n this.mode = input.mode\r\n this.signal = input.signal\r\n if (!body && input._bodyInit != null) {\r\n body = input._bodyInit\r\n input.bodyUsed = true\r\n }\r\n } else {\r\n this.url = String(input)\r\n }\r\n\r\n this.credentials = options.credentials || this.credentials || 'same-origin'\r\n if (options.headers || !this.headers) {\r\n this.headers = new Headers(options.headers)\r\n }\r\n this.method = normalizeMethod(options.method || this.method || 'GET')\r\n this.mode = options.mode || this.mode || null\r\n this.signal = options.signal || this.signal\r\n this.referrer = null\r\n\r\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\r\n throw new TypeError('Body not allowed for GET or HEAD requests')\r\n }\r\n this._initBody(body)\r\n\r\n if (this.method === 'GET' || this.method === 'HEAD') {\r\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\r\n // Search for a '_' parameter in the query string\r\n var reParamSearch = /([?&])_=[^&]*/\r\n if (reParamSearch.test(this.url)) {\r\n // If it already exists then set the value with the current time\r\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\r\n } else {\r\n // Otherwise add a new '_' parameter to the end with the current time\r\n var reQueryString = /\\?/\r\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\r\n }\r\n }\r\n }\r\n}\r\n\r\nRequest.prototype.clone = function() {\r\n return new Request(this, {body: this._bodyInit})\r\n}\r\n\r\nfunction decode(body) {\r\n var form = new FormData()\r\n body\r\n .trim()\r\n .split('&')\r\n .forEach(function(bytes) {\r\n if (bytes) {\r\n var split = bytes.split('=')\r\n var name = split.shift().replace(/\\+/g, ' ')\r\n var value = split.join('=').replace(/\\+/g, ' ')\r\n form.append(decodeURIComponent(name), decodeURIComponent(value))\r\n }\r\n })\r\n return form\r\n}\r\n\r\nfunction parseHeaders(rawHeaders) {\r\n var headers = new Headers()\r\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\r\n // https://tools.ietf.org/html/rfc7230#section-3.2\r\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\r\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\r\n // https://github.com/github/fetch/issues/748\r\n // https://github.com/zloirock/core-js/issues/751\r\n preProcessedHeaders\r\n .split('\\r')\r\n .map(function(header) {\r\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\r\n })\r\n .forEach(function(line) {\r\n var parts = line.split(':')\r\n var key = parts.shift().trim()\r\n if (key) {\r\n var value = parts.join(':').trim()\r\n headers.append(key, value)\r\n }\r\n })\r\n return headers\r\n}\r\n\r\nfunction parseUniappHeaders(rawHeaders) {\r\n var headers = new Headers()\r\n for(var key in rawHeaders){\r\n headers.append(key, rawHeaders[key])\r\n }\r\n return headers\r\n}\r\n\r\n\r\nBody.call(Request.prototype)\r\n\r\nexport function Response(bodyInit, options) {\r\n if (!(this instanceof Response)) {\r\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\r\n }\r\n if (!options) {\r\n options = {}\r\n }\r\n\r\n this.type = 'default'\r\n this.status = options.status === undefined ? 200 : options.status\r\n this.ok = this.status >= 200 && this.status < 300\r\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\r\n this.headers = new Headers(options.headers)\r\n this.url = options.url || ''\r\n this._initBody(bodyInit)\r\n}\r\n\r\nBody.call(Response.prototype)\r\n\r\nResponse.prototype.clone = function() {\r\n return new Response(this._bodyInit, {\r\n status: this.status,\r\n statusText: this.statusText,\r\n headers: new Headers(this.headers),\r\n url: this.url\r\n })\r\n}\r\n\r\nResponse.error = function() {\r\n var response = new Response(null, {status: 0, statusText: ''})\r\n response.type = 'error'\r\n return response\r\n}\r\n\r\nvar redirectStatuses = [301, 302, 303, 307, 308]\r\n\r\nResponse.redirect = function(url, status) {\r\n if (redirectStatuses.indexOf(status) === -1) {\r\n throw new RangeError('Invalid status code')\r\n }\r\n\r\n return new Response(null, {status: status, headers: {location: url}})\r\n}\r\n\r\nexport var DOMException = global.DOMException\r\ntry {\r\n new DOMException()\r\n} catch (err) {\r\n DOMException = function(message, name) {\r\n this.message = message\r\n this.name = name\r\n var error = Error(message)\r\n this.stack = error.stack\r\n }\r\n DOMException.prototype = Object.create(Error.prototype)\r\n DOMException.prototype.constructor = DOMException\r\n}\r\n\r\n// 从 whatwg-fetch 项目改写\r\nexport function fetch(input, init) {\r\n return new Promise(function(resolve, reject) {\r\n var request = new Request(input, init)\r\n\r\n if (request.signal && request.signal.aborted) {\r\n return reject(new DOMException('Aborted', 'AbortError'))\r\n }\r\n\r\n function fixUrl(url) {\r\n try {\r\n return url === '' && global.location.href ? global.location.href : url\r\n } catch (e) {\r\n return url\r\n }\r\n }\r\n function isJson(json) {\r\n try {\r\n if (typeof json == \"object\") {\r\n return true;\r\n }\r\n if (typeof json == \"string\") {\r\n if (typeof JSON.parse(str) == \"object\") {\r\n return true;\r\n }\r\n }\r\n } catch(e) {\r\n }\r\n return false;\r\n }\r\n function toStr(json) {\r\n try {\r\n if (typeof json == \"object\") {\r\n return JSON.stringify(json);\r\n }\r\n if (typeof json == \"string\") {\r\n return json;\r\n }\r\n } catch(e) {\r\n }\r\n return json.toString();\r\n }\r\n\r\n\r\n let rawBody = typeof request._bodyInit === 'undefined' ? null : request._bodyInit;\r\n if(request.headers.hasOwnProperty('Content-Type') && request.headers['Content-Type'].indexOf('application/json') >= 0){\r\n if(request.method.toUpperCase() === 'POST'){\r\n rawBody = JSON.parse(rawBody); // uniapp框架遇到 method = 'POST' 且 Content-Type = 'application/json' 会自动序列化\r\n }\r\n }\r\n const requestTask = uni.request({\r\n url: fixUrl(request.url),\r\n method: request.method,\r\n data: rawBody,\r\n header: request.headers.map,\r\n complete: (resp)=> {\r\n // Logger.info(resp);\r\n if (request.signal) {\r\n request.signal.removeEventListener('abort', abortXhr);\r\n }\r\n if(resp.errMsg.indexOf('fail') >= 0){\r\n setTimeout(function() {\r\n reject(new TypeError('Network request failed'))\r\n }, 0);\r\n return;\r\n }\r\n // if(resp.statusCode !== 200){\r\n // setTimeout(function() {\r\n // reject(new TypeError('Network request failed, statusCode:' + resp.statusCode + \" full text:\" + JSON.stringify(resp.data)))\r\n // }, 0)\r\n // return;\r\n // }\r\n var options = {\r\n status: resp.statusCode,\r\n statusText: resp.data ? toStr(resp.data) : '',\r\n headers: parseUniappHeaders(resp.header || {})\r\n };\r\n options.url = options.headers.get('X-Request-URL')\r\n var body = options.statusText;\r\n setTimeout(function() {\r\n resolve(new Response(body, options))\r\n }, 0)\r\n\r\n }\r\n });\r\n function abortXhr() {\r\n requestTask.abort()\r\n }\r\n if (request.signal) {\r\n request.signal.addEventListener('abort', abortXhr)\r\n }\r\n\r\n })\r\n}\r\n\r\nfetch.polyfill = true\r\n\r\nif (!global.fetch) {\r\n global.fetch = fetch\r\n global.Headers = Headers\r\n global.Request = Request\r\n global.Response = Response\r\n}\r\n","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","module.exports = require('../package.json').version;\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.RequestBase = void 0;\r\nvar RequestBase = /** @class */ (function () {\r\n function RequestBase(appId, clientType, imei) {\r\n this.appId = appId;\r\n this.clientType = clientType;\r\n this.imei = imei;\r\n }\r\n return RequestBase;\r\n}());\r\nexports.RequestBase = RequestBase;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.RequestParams = void 0;\r\nvar RequestParams = /** @class */ (function () {\r\n function RequestParams(appId, identifier, userSign) {\r\n this.appId = appId;\r\n this.identifier = identifier;\r\n this.userSign = userSign;\r\n }\r\n return RequestParams;\r\n}());\r\nexports.RequestParams = RequestParams;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Logger_1 = require(\"../log/Logger\");\r\nvar ImClient_1 = require(\"./ImClient\");\r\nvar ApiResponse_1 = require(\"../model/ApiResponse\");\r\nvar utils_1 = require(\"../common/utils\");\r\nvar Fetch_1 = require(\"../common/Fetch\");\r\nvar HttpApi = /** @class */ (function () {\r\n function HttpApi(url) {\r\n this.url = \"\"; //http://127.0.0.1:8000/v1\r\n this.url = url;\r\n }\r\n HttpApi.prototype.call = function (url, params, body) {\r\n var userId = ImClient_1.imClient.userId;\r\n Logger_1[\"default\"].info(userId);\r\n var reqUrl = this.url + url;\r\n if (params != null) {\r\n var paramStr = this.setQueryConfig(params);\r\n // console.log(paramStr);\r\n reqUrl += paramStr;\r\n }\r\n var requestMethod = \"POST\";\r\n // 讲appid等参数写入body\r\n body = this.setQueryToBody(params, body);\r\n var headers = {\r\n 'Content-Type': 'application/json',\r\n };\r\n // const request: any = {method: requestMethod,headers:headers, mode: 'cors', body: Beans.json(body)};\r\n var request = { method: requestMethod, headers: headers, body: utils_1[\"default\"].json(body) };\r\n return this.httpFetch(reqUrl, request);\r\n };\r\n HttpApi.prototype.setQueryToBody = function (params, body) {\r\n for (var o in params) {\r\n body[o] = params[o];\r\n }\r\n return body;\r\n };\r\n HttpApi.prototype.setQueryConfig = function (params) {\r\n var _str = \"?\";\r\n for (var o in params) {\r\n _str += o + \"=\" + params[o] + \"&\";\r\n }\r\n var _str = _str.substring(0, _str.length - 1); //末尾是&\r\n return _str;\r\n };\r\n HttpApi.prototype.httpFetch = function (url, request) {\r\n var _this = this;\r\n console.log(\"httpFetch\");\r\n var rnfetch1 = Fetch_1[\"default\"].getFetchToolkit();\r\n return rnfetch1(url, request).then(function (response) {\r\n // console.log(response)\r\n return response.json();\r\n }).then(function (res) {\r\n Logger_1[\"default\"].info(\"==> [\" + request.method + \"] \" + url + \" back:\" + utils_1[\"default\"].json(res));\r\n var resp = _this.response2ApiResponse(res);\r\n if (resp.isFailed()) {\r\n return Promise.reject(resp);\r\n }\r\n // return Promise.resolve(this.response2ApiResponse(res));\r\n return Promise.resolve(resp);\r\n });\r\n };\r\n HttpApi.prototype.response2ApiResponse = function (response) {\r\n var apiResponse = new ApiResponse_1[\"default\"](true);\r\n apiResponse.data = response.data;\r\n apiResponse.msg = response.msg;\r\n apiResponse.code = response.code;\r\n return apiResponse;\r\n };\r\n return HttpApi;\r\n}());\r\nexports[\"default\"] = HttpApi;\r\n// export const httpApi = new HttpApi();\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar ApiResponse = /** @class */ (function () {\r\n function ApiResponse(succeed) {\r\n if (succeed === void 0) { succeed = false; }\r\n this.msg = '';\r\n this.data = null;\r\n if (succeed) {\r\n this.code = 200;\r\n }\r\n }\r\n ApiResponse.prototype.isSucceed = function () {\r\n return this.code === 200;\r\n };\r\n ApiResponse.prototype.isFailed = function () {\r\n return !this.isSucceed();\r\n };\r\n return ApiResponse;\r\n}());\r\nexports[\"default\"] = ApiResponse;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.ConversationEventCommand = exports.UserEventCommand = exports.SystemCommand = exports.GroupCommand = exports.FriendShipCommand = exports.MessageCommand = void 0;\r\nvar MessageCommand;\r\n(function (MessageCommand) {\r\n MessageCommand[MessageCommand[\"MSG_P2P\"] = 1103] = \"MSG_P2P\";\r\n MessageCommand[MessageCommand[\"MSG_P2P_SYNC\"] = 1108] = \"MSG_P2P_SYNC\";\r\n //发送消息已读 1106\r\n MessageCommand[MessageCommand[\"MSG_READED\"] = 1106] = \"MSG_READED\";\r\n //消息接收ack\r\n MessageCommand[MessageCommand[\"MSG_RECIVE_ACK\"] = 1107] = \"MSG_RECIVE_ACK\";\r\n //单聊消息ACK 1046\r\n MessageCommand[MessageCommand[\"MSG_ACK\"] = 1046] = \"MSG_ACK\";\r\n // 消息撤回 1050\r\n MessageCommand[MessageCommand[\"MSG_RECALL\"] = 1050] = \"MSG_RECALL\";\r\n // //消息撤回通知 1052\r\n MessageCommand[MessageCommand[\"MSG_RECALL_NOTIFY\"] = 1052] = \"MSG_RECALL_NOTIFY\";\r\n // 消息撤回回包 1051\r\n MessageCommand[MessageCommand[\"MSG_RECALL_ACK\"] = 1051] = \"MSG_RECALL_ACK\";\r\n // //消息已读通知 1053\r\n MessageCommand[MessageCommand[\"MSG_READED_NOTIFY\"] = 1053] = \"MSG_READED_NOTIFY\";\r\n // 消息已读回执,给原消息发送方 1054\r\n MessageCommand[MessageCommand[\"MSG_READED_RECEIPT\"] = 1054] = \"MSG_READED_RECEIPT\";\r\n})(MessageCommand || (MessageCommand = {}));\r\nexports.MessageCommand = MessageCommand;\r\nvar FriendShipCommand;\r\n(function (FriendShipCommand) {\r\n //添加好友 3000\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_ADD\"] = 3000] = \"FRIEND_ADD\";\r\n //更新好友 3001\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_UPDATE\"] = 3001] = \"FRIEND_UPDATE\";\r\n //删除好友 3002\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_DELETE\"] = 3002] = \"FRIEND_DELETE\";\r\n //好友申请 3003\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_REQUEST\"] = 3003] = \"FRIEND_REQUEST\";\r\n //好友申请已读 3004\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_REQUEST_READ\"] = 3004] = \"FRIEND_REQUEST_READ\";\r\n //好友申请审批 3005\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_REQUEST_APPROVER\"] = 3005] = \"FRIEND_REQUEST_APPROVER\";\r\n //添加黑名单 3010\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_BLACK_ADD\"] = 3010] = \"FRIEND_BLACK_ADD\";\r\n //移除黑名单 3011\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_BLACK_DELETE\"] = 3011] = \"FRIEND_BLACK_DELETE\";\r\n //新建好友分组 3012\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_ADD\"] = 3012] = \"FRIEND_GROUP_ADD\";\r\n //删除好友分组 3013\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_DELETE\"] = 3013] = \"FRIEND_GROUP_DELETE\";\r\n //好友分组添加成员 3014\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_MEMBER_ADD\"] = 3014] = \"FRIEND_GROUP_MEMBER_ADD\";\r\n //好友分组移除成员 3015\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_MEMBER_DELETE\"] = 3015] = \"FRIEND_GROUP_MEMBER_DELETE\";\r\n})(FriendShipCommand || (FriendShipCommand = {}));\r\nexports.FriendShipCommand = FriendShipCommand;\r\nvar GroupCommand;\r\n(function (GroupCommand) {\r\n /**\r\n * 推送申请入群通知 2000\r\n */\r\n GroupCommand[GroupCommand[\"JOIN_GROUP\"] = 2000] = \"JOIN_GROUP\";\r\n /**\r\n * 推送添加群成员 2001,通知给所有管理员和本人\r\n */\r\n GroupCommand[GroupCommand[\"ADDED_MEMBER\"] = 2001] = \"ADDED_MEMBER\";\r\n /**\r\n * 推送创建群组通知 2002,通知给所有人\r\n */\r\n GroupCommand[GroupCommand[\"CREATED_GROUP\"] = 2002] = \"CREATED_GROUP\";\r\n /**\r\n * 推送更新群组通知 2003,通知给所有人\r\n */\r\n GroupCommand[GroupCommand[\"UPDATED_GROUP\"] = 2003] = \"UPDATED_GROUP\";\r\n /**\r\n * 推送退出群组通知 2004,通知给管理员和操作人\r\n */\r\n GroupCommand[GroupCommand[\"EXIT_GROUP\"] = 2004] = \"EXIT_GROUP\";\r\n /**\r\n * 推送修改群成员通知 2005,通知给管理员和被操作人\r\n */\r\n GroupCommand[GroupCommand[\"UPDATED_MEMBER\"] = 2005] = \"UPDATED_MEMBER\";\r\n /**\r\n * 推送删除群成员通知 2006,通知给所有群成员和被踢人\r\n */\r\n GroupCommand[GroupCommand[\"DELETED_MEMBER\"] = 2006] = \"DELETED_MEMBER\";\r\n /**\r\n * 推送解散群通知 2007,通知所有人\r\n */\r\n GroupCommand[GroupCommand[\"DESTROY_GROUP\"] = 2007] = \"DESTROY_GROUP\";\r\n /**\r\n * 推送转让群主 2008,通知所有人\r\n */\r\n GroupCommand[GroupCommand[\"TRANSFER_GROUP\"] = 2008] = \"TRANSFER_GROUP\";\r\n /**\r\n * 禁言群 2009,通知所有人\r\n */\r\n GroupCommand[GroupCommand[\"MUTE_GROUP\"] = 2009] = \"MUTE_GROUP\";\r\n /**\r\n * 禁言/解禁 群成员 2010,通知管理员和被操作人\r\n */\r\n GroupCommand[GroupCommand[\"SPEAK_GOUP_MEMBER\"] = 2010] = \"SPEAK_GOUP_MEMBER\";\r\n //群聊消息收发 2104\r\n GroupCommand[GroupCommand[\"MSG_GROUP\"] = 2104] = \"MSG_GROUP\";\r\n //群聊消息收发同步消息 2105\r\n GroupCommand[GroupCommand[\"MSG_GROUP_SYNC\"] = 2105] = \"MSG_GROUP_SYNC\";\r\n //群聊消息ACK 2047\r\n GroupCommand[GroupCommand[\"GROUP_MSG_ACK\"] = 2047] = \"GROUP_MSG_ACK\";\r\n})(GroupCommand || (GroupCommand = {}));\r\nexports.GroupCommand = GroupCommand;\r\nvar SystemCommand;\r\n(function (SystemCommand) {\r\n //心跳 9999\r\n SystemCommand[SystemCommand[\"PING\"] = 9999] = \"PING\";\r\n //登陸 9000\r\n SystemCommand[SystemCommand[\"LOGIN\"] = 9000] = \"LOGIN\";\r\n //登录ack 9001\r\n SystemCommand[SystemCommand[\"LOGINACK\"] = 9001] = \"LOGINACK\";\r\n //下线通知 用于多端互斥 9002\r\n SystemCommand[SystemCommand[\"MUTUALLOGIN\"] = 9002] = \"MUTUALLOGIN\";\r\n //登出 9003\r\n SystemCommand[SystemCommand[\"LOGOUT\"] = 9003] = \"LOGOUT\";\r\n})(SystemCommand || (SystemCommand = {}));\r\nexports.SystemCommand = SystemCommand;\r\nvar UserEventCommand;\r\n(function (UserEventCommand) {\r\n //4000\r\n UserEventCommand[UserEventCommand[\"USER_MODIFY\"] = 4000] = \"USER_MODIFY\";\r\n //4001\r\n UserEventCommand[UserEventCommand[\"USER_ONLINE_STATUS_CHANGE\"] = 4001] = \"USER_ONLINE_STATUS_CHANGE\";\r\n //4002 在线状态订阅\r\n UserEventCommand[UserEventCommand[\"USER_ONLINE_STATUS_SUBSCRIBE\"] = 4002] = \"USER_ONLINE_STATUS_SUBSCRIBE\";\r\n //4003 拉取订阅的在线状态好友,只发送给请求端\r\n UserEventCommand[UserEventCommand[\"PULL_USER_ONLINE_STATUS\"] = 4003] = \"PULL_USER_ONLINE_STATUS\";\r\n //4004 用户在线状态通知报文\r\n UserEventCommand[UserEventCommand[\"USER_ONLINE_STATUS_CHANGE_NOTIFY\"] = 4004] = \"USER_ONLINE_STATUS_CHANGE_NOTIFY\";\r\n})(UserEventCommand || (UserEventCommand = {}));\r\nexports.UserEventCommand = UserEventCommand;\r\nvar ConversationEventCommand;\r\n(function (ConversationEventCommand) {\r\n //5000 会话删除\r\n ConversationEventCommand[ConversationEventCommand[\"CONVERSATION_DELETE\"] = 5000] = \"CONVERSATION_DELETE\";\r\n //5001 会话修改\r\n ConversationEventCommand[ConversationEventCommand[\"CONVERSATION_UPDATE\"] = 5001] = \"CONVERSATION_UPDATE\";\r\n})(ConversationEventCommand || (ConversationEventCommand = {}));\r\nexports.ConversationEventCommand = ConversationEventCommand;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.MessagePack = void 0;\r\nvar utils_1 = require(\"../common/utils\");\r\nvar MessagePack = /** @class */ (function () {\r\n function MessagePack(appId) {\r\n this.messageId = utils_1[\"default\"].uuid();\r\n this.appId = appId;\r\n this.messageRandom = this.RangeInteger(0, 10000);\r\n this.messageTime = Date.parse(new Date().toString());\r\n }\r\n MessagePack.prototype.RangeInteger = function (min, max) {\r\n var range = max - min;\r\n var value = Math.floor(Math.random() * range) + min;\r\n return value;\r\n };\r\n MessagePack.prototype.buildTextMessagePack = function (fromId, toId, text) {\r\n this.fromId = fromId;\r\n this.toId = toId;\r\n console.warn(typeof text);\r\n console.log(text);\r\n var body = text;\r\n this.messageBody = utils_1[\"default\"].json(body);\r\n };\r\n MessagePack.prototype.buildCustomerMessagePack = function (fromId, toId, type, obj) {\r\n this.fromId = fromId;\r\n this.toId = toId;\r\n var body = { type: type, content: obj };\r\n this.messageBody = utils_1[\"default\"].json(body);\r\n };\r\n return MessagePack;\r\n}());\r\nexports.MessagePack = MessagePack;\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://imsdk/webpack/universalModuleDefinition","webpack://imsdk/webpack/bootstrap","webpack://imsdk/./src/lim/log/Logger.ts","webpack://imsdk/./src/lim/common/utils.ts","webpack://imsdk/./src/lim/core/ImClient.ts","webpack://imsdk/./src/lim/common/Fetch.ts","webpack://imsdk/./src/lim.ts","webpack://imsdk/./src/lim/codec/ByteBuffer.ts","webpack://imsdk/./src/lim/pack/LoginPack.ts","webpack://imsdk/./src/lim/common/WebToolkit.ts","webpack://imsdk/(webpack)/buildin/global.js","webpack://imsdk/./src/lim/uniapp/http/uni-fetch.js","webpack://imsdk/./node_modules/websocket/lib/browser.js","webpack://imsdk/./node_modules/es5-ext/global.js","webpack://imsdk/./node_modules/websocket/lib/version.js","webpack://imsdk/./src/lim/model/RequestBase.ts","webpack://imsdk/./src/lim/model/RequestParams.ts","webpack://imsdk/./src/lim/core/HttpApi.ts","webpack://imsdk/./src/lim/model/ApiResponse.ts","webpack://imsdk/./src/lim/common/Command.ts","webpack://imsdk/./src/lim/pack/MessagePack.ts"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__spreadArrays","this","il","arguments","length","Array","k","a","j","jl","Logger","info","message","optionalParams","_i","debug","console","apply","Date","toISOString","infoTag","tag","error","errorTag","trace","e","Error","undefined","stack","Beans","to","target","JSON","parse","stringify","bean","json","copy","replace","replaceJSON","v","toMapByKey","arrs","result","forEach","strEmpty","strNotEmpty","isEmpty","str","uuid","Math","random","toString","slice","getTime","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","op","TypeError","pop","push","imClient","getLen","limLogin","ImClient","sleep","State","TimeUnit","Logger_1","ByteBuffer_1","LoginPack_1","WebToolkit_1","websocket_1","RequestBase_1","RequestParams_1","HttpApi_1","utils_1","Command_1","MessagePack_1","firstMonitorSocket","second","Unit","Second","_a","setTimeout","url","version","clientType","listeners","state","INIT","lastOfflineMessageSequence","offlineMessageList","httpUrl","getRequestBase","RequestBase","appId","imei","isInit","CONNECTED","getRequestParams","RequestParams","userId","userSign","init","callback","self","resp","ip","port","protocolStr","req","success","err","conn","_this","_b","getDeviceInfo","system","imeiLength","isFailed","data","document","location","protocol","LoginPack","onerror","onSocketErrorEvent","errorHandler","onclose","CLOSEING","onSocketCloseEvent","reason","onmessage","evt","bytebuf","byteBuffer","int32","unpack","command","bodyLen","msgBody","vstring","log","MessageCommand","MSG_P2P","onP2PMessage","onTestMessage","loadOfflineMessage","heartbeatLoop","onLogin","buildMessagePack","messagePack","jsonData","pack","index","error_1","CLOSED","RECONNECTING","onSocketReConnectEvent","onSocketReConnectSuccessEvent","getSingleUserInfo","uid","syncGetUserInfo","api","userIds","getUserInfo","getAllFriend","fromId","getUserSequence","getUserConversationList","lastSequence","maxLimit","operater","getChatMessageHistoryList","offset","limit","createRoom","room","joinRoom","getRoomInfo","roomId","start","now","loop","pingPack","SystemCommand","PING","send","createP2PTextMessage","text","MessagePack","buildTextMessagePack","sendP2PMessage","p2pPack","sendP2PMessageReciveAck","rAck","toId","p2pPack_1107","MSG_RECIVE_ACK","conversationType","p2pPack_1106","MSG_READED","p2pPack_1054","MSG_READED_RECEIPT","sendP2PMessageReadedReceipt","getUserId","offmessages","isSucceed","maxSequence","dataList","onOfflineMessage","completed","w3cwebsocket","binaryType","tr","clearTimeout","onopen","readyState","OPEN","onSocketConnectEvent","loginPack","len","charCodeAt","Fetch","getFetchToolkit","httpFetch","global","fetch","im","ImClient_1","uni","ByteBuffer","arrayBuf","Type_Byte","Type_Short","Type_UShort","Type_Int32","Type_UInt32","Type_String","Type_VString","Type_Int64","Type_Float","Type_Double","Type_ByteArray","_offset","_list","_littleEndian","_org_buf","constructor","DataView","Uint8Array","buffer","bigEndian","littleEndianfunction","utf8Write","view","setUint8","val","getInt32","splice","uint32","getUint32","blength","string","utf8Read","utf8Length","chr","end","byte","getUint8","String","fromCharCode","vlen","int64","getFloat64","float","getFloat32","double","byteArray","arr","packWithHead","ifHead","ArrayBuffer","setUint32","setInt8","setInt16","setUint16","setInt32","setFloat64","setFloat32","indx","getAvailable","byteLength","Fetch_1","Base64","_keyStr","encode","u","_utf8_encode","isNaN","charAt","decode","indexOf","_utf8_decode","c2","c3","WebToolkit","getBrowserInfo","agent","navigator","userAgent","toLowerCase","REGSTR_EDGE","REGSTR_IE","OLD_IE","REGSTR_FF","REGSTR_CHROME","REGSTR_SAF","REGSTR_OPERA","code","split","browser","browserVersion","match","getWxappInfo","getReactNativeInfo","getUniAppInfo","loadJS","script","createElement","fn","type","exist","getElementsByTagName","children","dom","outerHTML","onreadystatechange","onload","src","appendChild","getIpInfoByFetch","request","method","headers","response","res","currentCity","eval","getIpInfoByInsertScript","getIpInfo","base64Encode","base64Decode","Function","globalThis","support","Blob","viewClasses","isArrayBufferView","isView","obj","normalizeName","test","normalizeValue","iteratorFor","items","shift","Headers","map","append","isArray","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","set","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","arrayBuffer","isConsumed","byteOffset","readAsText","chars","join","readArrayBufferAsText","formData","oldValue","has","keys","values","entries","methods","Request","input","options","upcased","credentials","signal","toUpperCase","referrer","cache","reParamSearch","form","trim","bytes","decodeURIComponent","parseUniappHeaders","rawHeaders","Response","bodyInit","status","ok","statusText","clone","redirectStatuses","redirect","RangeError","DOMException","aborted","toStr","rawBody","requestTask","href","fixUrl","complete","removeEventListener","abortXhr","errMsg","statusCode","abort","addEventListener","polyfill","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","W3CWebSocket","uri","protocols","prop","naiveFallback","configurable","__global__","identifier","ApiResponse_1","HttpApi","params","reqUrl","setQueryConfig","setQueryToBody","_str","substring","rnfetch1","response2ApiResponse","apiResponse","msg","ApiResponse","succeed","FriendShipCommand","GroupCommand","UserEventCommand","ConversationEventCommand","messageId","messageRandom","RangeInteger","messageTime","min","max","range","floor","warn","messageBody","buildCustomerMessagePack","content"],"mappings":"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","file":"lim-sdk.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"imsdk\"] = factory();\n\telse\n\t\troot[\"imsdk\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","\"use strict\";\r\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\nexports.__esModule = true;\r\nvar Logger = /** @class */ (function () {\r\n function Logger() {\r\n }\r\n Logger.info = function (message) {\r\n var optionalParams = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n optionalParams[_i - 1] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.info.apply(console, __spreadArrays([new Date().toISOString() + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.infoTag = function (tag, message) {\r\n var optionalParams = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n optionalParams[_i - 2] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.info.apply(console, __spreadArrays([new Date().toISOString() + \" \" + tag + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.error = function (message) {\r\n var optionalParams = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n optionalParams[_i - 1] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.error.apply(console, __spreadArrays([new Date().toISOString() + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.errorTag = function (tag, message) {\r\n var optionalParams = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n optionalParams[_i - 2] = arguments[_i];\r\n }\r\n if (Logger.debug) {\r\n console.error.apply(console, __spreadArrays([new Date().toISOString() + \" \" + tag + \" : \" + message], optionalParams));\r\n }\r\n };\r\n Logger.trace = function (e) {\r\n if (Logger.debug) {\r\n if (e instanceof Error) {\r\n console.error(e.message + \" \\n \" + (e.stack !== undefined ? e.stack : ''));\r\n }\r\n else {\r\n console.error(e);\r\n }\r\n }\r\n };\r\n Logger.debug = false;\r\n return Logger;\r\n}());\r\nexports[\"default\"] = Logger;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Beans = /** @class */ (function () {\r\n function Beans() {\r\n }\r\n Beans.to = function (target) {\r\n return JSON.parse(JSON.stringify(target));\r\n };\r\n Beans.bean = function (json) {\r\n return JSON.parse(json);\r\n };\r\n Beans.copy = function (target) {\r\n return Beans.to(target);\r\n };\r\n Beans.replace = function (target, replaceJSON) {\r\n var r = Beans.to(target);\r\n for (var v in replaceJSON) {\r\n r[v] = replaceJSON[v];\r\n }\r\n return r;\r\n };\r\n Beans.toMapByKey = function (arrs, key) {\r\n var result = {};\r\n arrs.forEach(function (v) {\r\n if (v.hasOwnProperty(key)) {\r\n result[key] = v;\r\n }\r\n });\r\n return result;\r\n };\r\n Beans.json = function (target) {\r\n return JSON.stringify(target);\r\n };\r\n Beans.strEmpty = function (s) {\r\n return !!s;\r\n };\r\n Beans.strNotEmpty = function (s) {\r\n return !s;\r\n };\r\n Beans.isEmpty = function (str) {\r\n if (str === null ||\r\n str === '' ||\r\n str === undefined ||\r\n str.length === 0) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n Beans.uuid = function () {\r\n return (Math.random() * 36).toString(36).slice(2) + new Date().getTime().toString();\r\n };\r\n return Beans;\r\n}());\r\nexports[\"default\"] = Beans;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nexports.__esModule = true;\r\nexports.imClient = exports.getLen = exports.limLogin = exports.ImClient = exports.sleep = exports.State = void 0;\r\nvar Logger_1 = require(\"../log/Logger\");\r\nvar ByteBuffer_1 = require(\"../codec/ByteBuffer\");\r\nvar LoginPack_1 = require(\"../pack/LoginPack\");\r\nvar WebToolkit_1 = require(\"../common/WebToolkit\");\r\nvar websocket_1 = require(\"websocket\");\r\nvar RequestBase_1 = require(\"../model/RequestBase\");\r\nvar RequestParams_1 = require(\"../model/RequestParams\");\r\nvar HttpApi_1 = require(\"./HttpApi\");\r\nvar utils_1 = require(\"../common/utils\");\r\nvar Command_1 = require(\"../common/Command\");\r\nvar MessagePack_1 = require(\"../pack/MessagePack\");\r\nvar loginTimeout = 10 * 1000; // 10 seconds\r\nvar heartbeatInterval = 10 * 1000; // seconds\r\nvar firstMonitorSocket = false; // 第一次监听socket\r\nvar State;\r\n(function (State) {\r\n State[State[\"INIT\"] = 0] = \"INIT\";\r\n State[State[\"CONNECTING\"] = 1] = \"CONNECTING\";\r\n State[State[\"CONNECTED\"] = 2] = \"CONNECTED\";\r\n State[State[\"RECONNECTING\"] = 3] = \"RECONNECTING\";\r\n State[State[\"CLOSEING\"] = 4] = \"CLOSEING\";\r\n State[State[\"CLOSED\"] = 5] = \"CLOSED\";\r\n})(State = exports.State || (exports.State = {}));\r\nvar TimeUnit;\r\n(function (TimeUnit) {\r\n TimeUnit[TimeUnit[\"Second\"] = 1000] = \"Second\";\r\n TimeUnit[TimeUnit[\"Millisecond\"] = 1] = \"Millisecond\";\r\n})(TimeUnit || (TimeUnit = {}));\r\nexports.sleep = function (second, Unit) {\r\n if (Unit === void 0) { Unit = TimeUnit.Second; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, _) {\r\n setTimeout(function () {\r\n resolve();\r\n }, second * Unit);\r\n })];\r\n });\r\n });\r\n};\r\nvar ImClient = /** @class */ (function () {\r\n function ImClient() {\r\n this.url = \"\";\r\n this.version = 1;\r\n this.clientType = 1;\r\n this.listeners = null;\r\n this.state = State.INIT;\r\n this.lastOfflineMessageSequence = 0;\r\n this.offlineMessageList = new Array();\r\n this.httpUrl = \"\"; //http://127.0.0.1:8000/v1\r\n }\r\n ImClient.prototype.getRequestBase = function () {\r\n return new RequestBase_1.RequestBase(this.appId, this.clientType, this.imei);\r\n };\r\n ImClient.prototype.isInit = function () {\r\n return this.state == State.CONNECTED;\r\n };\r\n ImClient.prototype.getRequestParams = function () {\r\n return new RequestParams_1.RequestParams(this.appId, this.userId, this.userSign);\r\n };\r\n ImClient.prototype.init = function (httpUrl, appId, userId, userSign, listeners, callback) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var self, api, resp, ip, port, protocolStr, req, _a, success, err, conn;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n self = this;\r\n self.httpUrl = httpUrl;\r\n self.appId = appId;\r\n self.listeners = listeners;\r\n self.imei = WebToolkit_1[\"default\"].getDeviceInfo().system;\r\n self.imeiLength = exports.getLen(self.imei);\r\n self.userId = userId;\r\n this.userSign = userSign;\r\n this.imeiLength = self.imeiLength;\r\n if (!utils_1[\"default\"].isEmpty(this.url)) return [3 /*break*/, 2];\r\n Logger_1[\"default\"].info(\"获取im地址\");\r\n api = new HttpApi_1[\"default\"](this.httpUrl);\r\n return [4 /*yield*/, api.call(\"/user/login\", {}, { clientType: this.clientType, appId: this.appId, userId: this.userId })\r\n // console.log(resp)\r\n ];\r\n case 1:\r\n resp = _b.sent();\r\n // console.log(resp)\r\n if (resp.isFailed()) {\r\n Logger_1[\"default\"].info(\"登录失败:获取im地址失败\");\r\n return [2 /*return*/];\r\n }\r\n ip = resp.data.ip;\r\n port = resp.data.port;\r\n protocolStr = document.location.protocol;\r\n if (protocolStr == \"http:\") {\r\n this.url = \"ws://\" + ip + \":\" + port + \"/ws\";\r\n }\r\n else if (protocolStr == \"https:\") {\r\n this.url = \"wss://\" + ip + \"/hs_ws\";\r\n }\r\n _b.label = 2;\r\n case 2:\r\n req = new LoginPack_1.LoginPack(self.appId, self.userId, 1);\r\n return [4 /*yield*/, exports.limLogin(self.url, req, self)];\r\n case 3:\r\n _a = _b.sent(), success = _a.success, err = _a.err, conn = _a.conn;\r\n if (success) {\r\n if (!firstMonitorSocket) {\r\n firstMonitorSocket = true;\r\n }\r\n //登录成功以后操作\r\n conn.onerror = function (error) {\r\n Logger_1[\"default\"].info(\"websocket error: \", error);\r\n // 加入socket 连接事件\r\n if (typeof exports.imClient.listeners.onSocketErrorEvent === 'function') {\r\n exports.imClient.listeners.onSocketErrorEvent(error);\r\n }\r\n //异步方法,自动重连\r\n _this.errorHandler(error, req);\r\n };\r\n conn.onclose = function (e) {\r\n Logger_1[\"default\"].info(\"event[onclose] fired\");\r\n if (self.state == State.CLOSEING) {\r\n _this.onclose(\"logout\");\r\n return;\r\n }\r\n // socket断开事件 连接事件\r\n if (typeof exports.imClient.listeners.onSocketCloseEvent === 'function') {\r\n exports.imClient.listeners.onSocketCloseEvent();\r\n }\r\n // 异步方法 自动重连\r\n _this.errorHandler(new Error(e.reason), req);\r\n };\r\n conn.onmessage = function (evt) {\r\n var bytebuf = new ByteBuffer_1[\"default\"](evt.data);\r\n var byteBuffer = bytebuf.int32().int32().unpack();\r\n var command = byteBuffer[0]; //解析command\r\n var bodyLen = byteBuffer[1]; //解析bodylen\r\n var unpack = bytebuf.vstring(null, bodyLen).unpack(); //解析出字符串\r\n var msgBody = unpack[2];\r\n console.log(\"sdk收到服务端数据 command:\" + command);\r\n console.log(\"sdk收到服务端数据:\" + msgBody);\r\n if (command === Command_1.MessageCommand.MSG_P2P) {\r\n //单聊消息收发\r\n if (typeof exports.imClient.listeners.onP2PMessage === 'function') {\r\n exports.imClient.listeners.onP2PMessage(msgBody);\r\n }\r\n }\r\n else {\r\n if (typeof exports.imClient.listeners.onTestMessage === 'function') {\r\n exports.imClient.listeners.onTestMessage(msgBody);\r\n }\r\n }\r\n };\r\n this.conn = conn;\r\n this.state = State.CONNECTED;\r\n //拉取离线消息\r\n this.loadOfflineMessage();\r\n //心跳包\r\n this.heartbeatLoop(this.conn);\r\n if (typeof exports.imClient.listeners.onLogin === 'function') {\r\n exports.imClient.listeners.onLogin(this.userId);\r\n }\r\n callback(self);\r\n }\r\n else {\r\n Logger_1[\"default\"].error(err === null || err === void 0 ? void 0 : err.message);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n ImClient.prototype.buildMessagePack = function (command, messagePack) {\r\n var jsonData = JSON.stringify(messagePack);\r\n // console.log(\"=============buildMessagePack=========\")\r\n // log.info(jsonData);\r\n var bodyLen = exports.getLen(jsonData);\r\n var pack = new ByteBuffer_1[\"default\"](null, 0);\r\n pack.int32(command).int32(this.version).int32(this.clientType)\r\n .int32(0x0)\r\n .int32(this.appId)\r\n .int32(this.imeiLength)\r\n .int32(bodyLen)\r\n .vstring(this.imei, this.imeiLength)\r\n .vstring(jsonData, bodyLen);\r\n return pack;\r\n };\r\n // 4. 自动重连\r\n ImClient.prototype.errorHandler = function (error, req) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var index, _a, success, err, conn, error_1;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n // 如果是主动断开连接,就没有必要自动重连\r\n // 比如收到被踢,或者主动调用logout()方法\r\n if (this.state == State.CLOSED || this.state == State.CLOSEING) {\r\n return [2 /*return*/];\r\n }\r\n this.state = State.RECONNECTING;\r\n if (typeof exports.imClient.listeners.onSocketReConnectEvent === 'function') {\r\n exports.imClient.listeners.onSocketReConnectEvent();\r\n }\r\n index = 0;\r\n _b.label = 1;\r\n case 1:\r\n if (!(index < 10000000)) return [3 /*break*/, 7];\r\n return [4 /*yield*/, exports.sleep(5)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n Logger_1[\"default\"].info(\"try to relogin\");\r\n return [4 /*yield*/, exports.limLogin(this.url, req, this)];\r\n case 4:\r\n _a = _b.sent(), success = _a.success, err = _a.err, conn = _a.conn;\r\n if (success) {\r\n if (typeof exports.imClient.listeners.onSocketReConnectSuccessEvent === 'function') {\r\n exports.imClient.listeners.onSocketReConnectSuccessEvent();\r\n }\r\n return [2 /*return*/];\r\n }\r\n Logger_1[\"default\"].info(err);\r\n return [3 /*break*/, 6];\r\n case 5:\r\n error_1 = _b.sent();\r\n Logger_1[\"default\"].info(error_1);\r\n return [3 /*break*/, 6];\r\n case 6:\r\n index++;\r\n return [3 /*break*/, 1];\r\n case 7:\r\n this.onclose(\"reconnect timeout\");\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // 表示连接中止\r\n ImClient.prototype.onclose = function (reason) {\r\n if (this.state == State.CLOSED) {\r\n return;\r\n }\r\n this.state = State.CLOSED;\r\n Logger_1[\"default\"].info(\"connection closed due to \" + reason);\r\n this.conn = undefined;\r\n this.userId = \"\";\r\n // 加入socket 关闭事件\r\n if (typeof exports.imClient.listeners.onSocketErrorEvent === 'function') {\r\n exports.imClient.listeners.onSocketCloseEvent();\r\n }\r\n };\r\n ImClient.prototype.getSingleUserInfo = function (uid) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/user/data/getSingleUserInfo\", _this.getRequestParams(), { userId: uid });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.syncGetUserInfo = function (userId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var api, resp;\r\n return __generator(this, function (_a) {\r\n api = new HttpApi_1[\"default\"](this.httpUrl);\r\n resp = api.call(\"/user/data/getUserInfo\", this.getRequestParams(), { userIds: userId });\r\n return [2 /*return*/, resp];\r\n });\r\n });\r\n };\r\n ImClient.prototype.getUserInfo = function (userId) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/user/data/getUserInfo\", _this.getRequestParams(), { userIds: userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getAllFriend = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/friendship/getAllFriendShip\", _this.getRequestParams(), { fromId: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getUserSequence = function () {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/user/getUserSequence\", _this.getRequestParams(), { userId: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getUserConversationList = function (lastSequence) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/conversation/syncConversationList\", _this.getRequestParams(), { userId: _this.userId, appId: _this.appId, maxLimit: 100, lastSequence: lastSequence, operater: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.getChatMessageHistoryList = function (uid, offset, limit) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/message/chatHistory\", _this.getRequestParams(), { userId: uid, appId: _this.appId, offset: offset, limit: limit, operater: _this.userId });\r\n resolve(resp);\r\n });\r\n };\r\n ImClient.prototype.createRoom = function (room) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/room/createRoom\", _this.getRequestParams(), room);\r\n return resp;\r\n });\r\n };\r\n ImClient.prototype.joinRoom = function (room) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/room/joinRoom\", _this.getRequestParams(), room);\r\n return resp;\r\n });\r\n };\r\n ImClient.prototype.getRoomInfo = function (roomId) {\r\n var _this = this;\r\n return new Promise(function (resolve, _) {\r\n var api = new HttpApi_1[\"default\"](_this.httpUrl);\r\n var resp = api.call(\"/room/getRoomInfo\", _this.getRequestParams(), { roomId: roomId });\r\n return resp;\r\n });\r\n };\r\n // 2、心跳\r\n ImClient.prototype.heartbeatLoop = function (conn) {\r\n var _this = this;\r\n var start = Date.now();\r\n var loop = function () {\r\n if (_this.state != State.CONNECTED) {\r\n Logger_1[\"default\"].error(\"heartbeatLoop exited\");\r\n return;\r\n }\r\n if (Date.now() - start >= heartbeatInterval) {\r\n // log.info(`>>> send ping ;`)\r\n start = Date.now();\r\n var pingPack = exports.imClient.buildMessagePack(Command_1.SystemCommand.PING, {});\r\n conn.send(pingPack.pack(false));\r\n }\r\n setTimeout(loop, 500);\r\n };\r\n setTimeout(loop, 500);\r\n };\r\n //构建单聊消息对象\r\n ImClient.prototype.createP2PTextMessage = function (to, text) {\r\n var messagePack = new MessagePack_1.MessagePack(this.appId);\r\n messagePack.buildTextMessagePack(this.userId, to, text);\r\n return messagePack;\r\n };\r\n ImClient.prototype.sendP2PMessage = function (pack) {\r\n var p2pPack = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_P2P, pack);\r\n if (this.conn) {\r\n this.conn.send(p2pPack.pack(false));\r\n }\r\n };\r\n // 消息接收ack\r\n ImClient.prototype.sendP2PMessageReciveAck = function (rAck) {\r\n console.log(\"=============== sendP2PMessageReciveAck\");\r\n console.log(rAck);\r\n rAck.toId = rAck.fromId;\r\n rAck.fromId = this.userId;\r\n console.log(rAck);\r\n var p2pPack_1107 = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_RECIVE_ACK, rAck); // 1107\r\n rAck.conversationType = 0;\r\n var p2pPack_1106 = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_READED, rAck); // 1106\r\n var p2pPack_1054 = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_READED_RECEIPT, rAck); // 1054\r\n if (this.conn) {\r\n // console.log(\"=============== sendP2PMessageReciveAck 正式开始消息接收ack\")\r\n this.conn.send(p2pPack_1107.pack(false));\r\n this.conn.send(p2pPack_1106.pack(false));\r\n this.conn.send(p2pPack_1054.pack(false));\r\n }\r\n };\r\n // 消息已读回执,给原消息发送方 1054\r\n ImClient.prototype.sendP2PMessageReadedReceipt = function (rAck) {\r\n console.log(\"=============== sendP2PMessageReadedRECEIPT\");\r\n console.log(rAck);\r\n rAck.toId = rAck.fromId;\r\n rAck.fromId = this.userId;\r\n console.log(rAck);\r\n var p2pPack = exports.imClient.buildMessagePack(Command_1.MessageCommand.MSG_READED_RECEIPT, rAck);\r\n if (this.conn) {\r\n console.log(\"=============== sendP2PMessageReadedRECEIPT 正式开始发送已读回执\");\r\n this.conn.send(p2pPack.pack(false));\r\n }\r\n };\r\n ImClient.prototype.getUserId = function () {\r\n return this.userId;\r\n };\r\n //拉取离线信息记录\r\n ImClient.prototype.loadOfflineMessage = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var api, resp, offmessages;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Logger_1[\"default\"].info(\"loadOfflineMessage start\");\r\n api = new HttpApi_1[\"default\"](this.httpUrl);\r\n return [4 /*yield*/, api.call(\"/message/syncOfflineMessage\", this.getRequestParams(), { clientType: this.clientType, operater: this.userId, appId: this.appId, lastSequence: this.lastOfflineMessageSequence, maxLimit: 100 })];\r\n case 1:\r\n resp = _a.sent();\r\n if (resp.isSucceed()) {\r\n this.lastOfflineMessageSequence = resp.data.maxSequence;\r\n offmessages = resp.data.dataList;\r\n this.offlineMessageList.push(offmessages);\r\n if (offmessages.length > 0 && typeof exports.imClient.listeners.onOfflineMessage === 'function') {\r\n exports.imClient.listeners.onOfflineMessage(offmessages);\r\n }\r\n console.log(resp.data.completed);\r\n if (!resp.data.completed) {\r\n this.loadOfflineMessage();\r\n }\r\n }\r\n else {\r\n Logger_1[\"default\"].error(\"loadOfflineMessage - error\");\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return ImClient;\r\n}());\r\nexports.ImClient = ImClient;\r\nexports.limLogin = function (url, req, imClient) { return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, _) {\r\n var conn = new websocket_1.w3cwebsocket(url);\r\n conn.binaryType = \"arraybuffer\";\r\n Logger_1[\"default\"].info(\"limLogin\");\r\n // 设置一个登陆超时器\r\n var tr = setTimeout(function () {\r\n clearTimeout(tr);\r\n resolve({ success: false, err: new Error(\"timeout\"), conn: conn });\r\n }, loginTimeout);\r\n conn.onopen = function () {\r\n if (conn.readyState == websocket_1.w3cwebsocket.OPEN) {\r\n // 加入socket 连接事件\r\n if (typeof imClient.listeners.onSocketConnectEvent === 'function') {\r\n imClient.listeners.onSocketConnectEvent(url, req);\r\n }\r\n Logger_1[\"default\"].info(\"\\u5F00\\u542F\\u8FDE\\u63A5\");\r\n //登录数据包\r\n var data = {\r\n \"userId\": req.userId\r\n };\r\n var loginPack = imClient.buildMessagePack(0x2328, data);\r\n conn.send(loginPack.pack(false));\r\n }\r\n };\r\n conn.onerror = function (error) {\r\n clearTimeout(tr);\r\n Logger_1[\"default\"].error(error);\r\n resolve({ success: false, err: error, conn: conn });\r\n };\r\n conn.onmessage = function (evt) {\r\n if (typeof evt.data === 'string') {\r\n Logger_1[\"default\"].info(\"Received: '\" + evt.data + \"'\");\r\n return;\r\n }\r\n clearTimeout(tr);\r\n var bytebuf = new ByteBuffer_1[\"default\"](evt.data);\r\n var byteBuffer = bytebuf.int32().int32().unpack();\r\n var command = byteBuffer[0];\r\n var bodyLen = byteBuffer[1];\r\n if (command == 0x2329) {\r\n resolve({ success: true, conn: conn });\r\n }\r\n };\r\n })];\r\n });\r\n}); };\r\nexports.getLen = function (str) {\r\n var len = 0;\r\n for (var i = 0; i < str.length; i++) {\r\n var c = str.charCodeAt(i);\r\n //单字节加1\r\n if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {\r\n len++;\r\n }\r\n else {\r\n len += 3;\r\n }\r\n }\r\n return len;\r\n};\r\nexports.imClient = new ImClient();\r\n","\"use strict\";\r\nexports.__esModule = true;\r\n/**\r\n * 返回平台所用的 fetch 工具\r\n * */\r\nvar Fetch = /** @class */ (function () {\r\n function Fetch() {\r\n }\r\n Fetch.getFetchToolkit = function () {\r\n var httpFetch;\r\n // @ts-ignore\r\n if (typeof global.fetch !== 'undefined' && typeof global.fetch === 'function') {\r\n // @ts-ignore\r\n httpFetch = global.fetch;\r\n }\r\n else if (typeof fetch === 'function') {\r\n httpFetch = fetch; // RN FETCH\r\n }\r\n else {\r\n var uniFetch = require(\"../uniapp/http/uni-fetch\");\r\n httpFetch = uniFetch.fetch;\r\n }\r\n return httpFetch;\r\n };\r\n return Fetch;\r\n}());\r\nexports[\"default\"] = Fetch;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.im = void 0;\r\nvar ImClient_1 = require(\"./lim/core/ImClient\");\r\nexports.im = ImClient_1.imClient;\r\n// if(typeof window !== 'undefined'){\r\n// console.log(\"window\");\r\n// }\r\n// if(typeof global !== 'undefined'){\r\n// console.log(\"global\");\r\n// }\r\n// @ts-ignore\r\nif (typeof uni !== 'undefined') {\r\n // console.log(\"uni\");\r\n // @ts-ignore\r\n uni['im'] = ImClient_1.imClient;\r\n // @ts-ignore\r\n // uni['im_webtoolkit'] = WebToolkit;\r\n}\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar ByteBuffer = /** @class */ (function () {\r\n function ByteBuffer(arrayBuf, offset) {\r\n this.Type_Byte = 1;\r\n this.Type_Short = 2;\r\n this.Type_UShort = 3;\r\n this.Type_Int32 = 4;\r\n this.Type_UInt32 = 5;\r\n this.Type_String = 6; //变长字符串,前两个字节表示长度\r\n this.Type_VString = 7; //定长字符串\r\n this.Type_Int64 = 8;\r\n this.Type_Float = 9;\r\n this.Type_Double = 10;\r\n this.Type_ByteArray = 11;\r\n this._offset = 0;\r\n this._list = [];\r\n this._littleEndian = false;\r\n this._org_buf = arrayBuf ? (arrayBuf.constructor == DataView ? arrayBuf\r\n : (arrayBuf.constructor == Uint8Array ? new DataView(arrayBuf.buffer, offset) : new DataView(arrayBuf, offset))) : new DataView(new Uint8Array([]).buffer);\r\n this.arrayBuf = arrayBuf;\r\n this.offset = offset;\r\n // if (!ArrayBuffer.prototype.slice) {\r\n // ArrayBuffer.prototype.slice = function (start, end) {\r\n // var that = new Uint8Array(this);\r\n // if (end == undefined) end = that.length;\r\n // var result = new ArrayBuffer(end - start);\r\n // var resultArray = new Uint8Array(result);\r\n // for (var i = 0; i < resultArray.length; i++)\r\n // resultArray[i] = that[i + start];\r\n // return result;\r\n // }\r\n // }\r\n }\r\n //指定字节序 为BigEndian\r\n ByteBuffer.prototype.bigEndian = function () {\r\n this._littleEndian = false;\r\n return this;\r\n };\r\n ;\r\n //指定字节序 为LittleEndian\r\n ByteBuffer.prototype.littleEndianfunction = function () {\r\n this._littleEndian = true;\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.utf8Write = function (view, offset, str) {\r\n var c = 0;\r\n for (var i = 0, l = str.length; i < l; i++) {\r\n c = str.charCodeAt(i);\r\n if (c < 0x80) {\r\n view.setUint8(offset++, c);\r\n }\r\n else if (c < 0x800) {\r\n view.setUint8(offset++, 0xc0 | (c >> 6));\r\n view.setUint8(offset++, 0x80 | (c & 0x3f));\r\n }\r\n else if (c < 0xd800 || c >= 0xe000) {\r\n view.setUint8(offset++, 0xe0 | (c >> 12));\r\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\r\n view.setUint8(offset++, 0x80 | (c & 0x3f));\r\n }\r\n else {\r\n i++;\r\n c = 0x10000 + (((c & 0x3ff) << 10) | (str.charCodeAt(i) & 0x3ff));\r\n view.setUint8(offset++, 0xf0 | (c >> 18));\r\n view.setUint8(offset++, 0x80 | (c >> 12) & 0x3f);\r\n view.setUint8(offset++, 0x80 | (c >> 6) & 0x3f);\r\n view.setUint8(offset++, 0x80 | (c & 0x3f));\r\n }\r\n }\r\n };\r\n // byte (val, index) {\r\n // if (arguments.length == 0) {\r\n // this._list.push(this._org_buf.getUint8(this._offset, this._littleEndian));\r\n // this._offset += 1;\r\n // } else {\r\n // this._list.splice(index != undefined ? index : this._list.length, 0);\r\n // this._offset += 1;\r\n // }\r\n // return this;\r\n // };\r\n // short(val:number, index:number) {\r\n // if (arguments.length == 0) {\r\n // this._list.push(this._org_buf.getInt16(this._offset, this._littleEndian));\r\n // this._offset += 2;\r\n // } else {\r\n // this._list.splice(index != undefined ? index : this._list.length, 0, this.Type_Short);\r\n // this._offset += 2;\r\n // }\r\n // return this;\r\n // };\r\n // ushort(val, index) {\r\n // if (arguments.length == 0) {\r\n // this._list.push(this._org_buf.getUint16(this._offset, this._littleEndian));\r\n // this._offset += 2;\r\n // } else {\r\n // // , {t: this.Type_UShort, d: val, l: 2}\r\n // this._list.splice(index != undefined ? index : this._list.length, 0);\r\n // this._offset += 2;\r\n // }\r\n // return this;\r\n // };\r\n ByteBuffer.prototype.int32 = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getInt32(this._offset, this._littleEndian));\r\n this._offset += 4;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Int32, d: val, l: 4 });\r\n this._offset += 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.uint32 = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getUint32(this._offset, this._littleEndian));\r\n this._offset += 4;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_UInt32, d: val, l: 4 });\r\n this._offset += 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n /**\r\n * 新加的方法,获取bytebuffer的长度\r\n */\r\n ByteBuffer.prototype.blength = function () {\r\n return this._offset;\r\n };\r\n ;\r\n /**\r\n * 变长字符串 前4个字节表示字符串长度\r\n **/\r\n ByteBuffer.prototype.string = function (val, index) {\r\n if (arguments.length == 0) {\r\n var len = this._org_buf.getInt32(this._offset, this._littleEndian);\r\n this._offset += 4;\r\n this._list.push(this.utf8Read(this._org_buf, this._offset, len));\r\n this._offset += len;\r\n }\r\n else {\r\n var len = 0;\r\n if (val) {\r\n len = this.utf8Length(val);\r\n }\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_String, d: val, l: len });\r\n this._offset += len + 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.utf8Length = function (str) {\r\n var c = 0, length = 0;\r\n for (var i = 0, l = str.length; i < l; i++) {\r\n c = str.charCodeAt(i);\r\n if (c < 0x80) {\r\n length += 1;\r\n }\r\n else if (c < 0x800) {\r\n length += 2;\r\n }\r\n else if (c < 0xd800 || c >= 0xe000) {\r\n length += 3;\r\n }\r\n else {\r\n i++;\r\n length += 4;\r\n }\r\n }\r\n return length;\r\n };\r\n ByteBuffer.prototype.utf8Read = function (view, offset, length) {\r\n var string = '', chr = 0;\r\n for (var i = offset, end = offset + length; i < end; i++) {\r\n var byte = view.getUint8(i);\r\n if ((byte & 0x80) === 0x00) {\r\n string += String.fromCharCode(byte);\r\n continue;\r\n }\r\n if ((byte & 0xe0) === 0xc0) {\r\n string += String.fromCharCode(((byte & 0x0f) << 6) |\r\n (view.getUint8(++i) & 0x3f));\r\n continue;\r\n }\r\n if ((byte & 0xf0) === 0xe0) {\r\n string += String.fromCharCode(((byte & 0x0f) << 12) |\r\n ((view.getUint8(++i) & 0x3f) << 6) |\r\n ((view.getUint8(++i) & 0x3f) << 0));\r\n continue;\r\n }\r\n if ((byte & 0xf8) === 0xf0) {\r\n chr = ((byte & 0x07) << 18) |\r\n ((view.getUint8(++i) & 0x3f) << 12) |\r\n ((view.getUint8(++i) & 0x3f) << 6) |\r\n ((view.getUint8(++i) & 0x3f) << 0);\r\n if (chr >= 0x010000) { // surrogate pair\r\n chr -= 0x010000;\r\n string += String.fromCharCode((chr >>> 10) + 0xD800, (chr & 0x3FF) + 0xDC00);\r\n }\r\n else {\r\n string += String.fromCharCode(chr);\r\n }\r\n continue;\r\n }\r\n throw new Error('Invalid byte ' + byte.toString(16));\r\n }\r\n return string;\r\n };\r\n /**\r\n * 定长字符串 val为null时,读取定长字符串(需指定长度len)\r\n **/\r\n ByteBuffer.prototype.vstring = function (val, len, index) {\r\n if (!len) {\r\n throw new Error('vstring must got len argument');\r\n return this;\r\n }\r\n if (val == undefined || val == null) {\r\n var vlen = 0; //实际长度\r\n for (var i = this._offset; i < this._offset + len; i++) {\r\n if (this._org_buf.getUint8(i) > 0)\r\n vlen++;\r\n }\r\n this._list.push(this.utf8Read(this._org_buf, this._offset, vlen));\r\n this._offset += len;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_VString, d: val, l: len });\r\n this._offset += len;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.int64 = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getFloat64(this._offset, this._littleEndian));\r\n this._offset += 8;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Int64, d: val, l: 8 });\r\n this._offset += 8;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.float = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getFloat32(this._offset, this._littleEndian));\r\n this._offset += 4;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Float, d: val, l: 4 });\r\n this._offset += 4;\r\n }\r\n return this;\r\n };\r\n ;\r\n ByteBuffer.prototype.double = function (val, index) {\r\n if (arguments.length == 0) {\r\n this._list.push(this._org_buf.getFloat64(this._offset, this._littleEndian));\r\n this._offset += 8;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_Double, d: val, l: 8 });\r\n this._offset += 8;\r\n }\r\n return this;\r\n };\r\n ;\r\n /**\r\n * 写入或读取一段字节数组\r\n **/\r\n ByteBuffer.prototype.byteArray = function (val, len, index) {\r\n if (!len) {\r\n throw new Error('byteArray must got len argument');\r\n return this;\r\n }\r\n if (val == undefined || val == null) {\r\n var arr = new Uint8Array(this._org_buf.buffer.slice(this._offset, this._offset + len));\r\n this._list.push(arr);\r\n this._offset += len;\r\n }\r\n else {\r\n this._list.splice(index != undefined ? index : this._list.length, 0, { t: this.Type_ByteArray, d: val, l: len });\r\n this._offset += len;\r\n }\r\n return this;\r\n };\r\n ;\r\n /**\r\n * 解包成数据数组\r\n **/\r\n ByteBuffer.prototype.unpack = function () {\r\n return this._list;\r\n };\r\n ;\r\n /**\r\n * 打包成二进制,在前面加上4个字节表示包长\r\n **/\r\n ByteBuffer.prototype.packWithHead = function () {\r\n return this.pack(true);\r\n };\r\n ;\r\n /**\r\n * 打包成二进制\r\n * @param ifHead 是否在前面加上4个字节表示包长\r\n **/\r\n ByteBuffer.prototype.pack = function (ifHead) {\r\n this._org_buf = new DataView(new ArrayBuffer((ifHead) ? this._offset + 4 : this._offset));\r\n var offset = 0;\r\n if (ifHead) {\r\n this._org_buf.setUint32(offset, this._offset, this._littleEndian);\r\n offset += 4;\r\n }\r\n for (var i = 0; i < this._list.length; i++) {\r\n switch (this._list[i].t) {\r\n case this.Type_Byte:\r\n this._org_buf.setInt8(offset, this._list[i].d);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Short:\r\n this._org_buf.setInt16(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_UShort:\r\n this._org_buf.setUint16(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Int32:\r\n this._org_buf.setInt32(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_UInt32:\r\n this._org_buf.setUint32(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_String:\r\n //前4个字节表示字符串长度\r\n this._org_buf.setUint32(offset, this._list[i].l, this._littleEndian);\r\n offset += 4;\r\n this.utf8Write(this._org_buf, offset, this._list[i].d);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_VString:\r\n this.utf8Write(this._org_buf, offset, this._list[i].d);\r\n var vlen = this.utf8Length(this._list[i].d); //字符串实际长度\r\n //补齐\\0\r\n for (var j = offset + vlen; j < offset + this._list[i].l; j++) {\r\n this._org_buf.setUint8(j, 0);\r\n }\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Int64:\r\n this._org_buf.setFloat64(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Float:\r\n this._org_buf.setFloat32(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_Double:\r\n this._org_buf.setFloat64(offset, this._list[i].d, this._littleEndian);\r\n offset += this._list[i].l;\r\n break;\r\n case this.Type_ByteArray:\r\n var indx = 0;\r\n for (var j = offset; j < offset + this._list[i].l; j++) {\r\n if (indx < this._list[i].d.length) {\r\n this._org_buf.setUint8(j, this._list[i].d[indx]);\r\n }\r\n else { //不够的话,后面补齐0x00\r\n this._org_buf.setUint8(j, 0);\r\n }\r\n indx++;\r\n }\r\n offset += this._list[i].l;\r\n break;\r\n }\r\n }\r\n return this._org_buf.buffer;\r\n };\r\n ;\r\n /**\r\n * 未读数据长度\r\n **/\r\n ByteBuffer.prototype.getAvailable = function () {\r\n if (!this._org_buf)\r\n return this._offset;\r\n return this._org_buf.buffer.byteLength - this._offset;\r\n };\r\n ;\r\n return ByteBuffer;\r\n}());\r\nexports[\"default\"] = ByteBuffer;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.LoginPack = void 0;\r\nvar LoginPack = /** @class */ (function () {\r\n function LoginPack(appId, userId, clientType) {\r\n this.userId = userId;\r\n this.clientType = clientType;\r\n this.appId = appId;\r\n }\r\n return LoginPack;\r\n}());\r\nexports.LoginPack = LoginPack;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Fetch_1 = require(\"../common/Fetch\");\r\nvar Logger_1 = require(\"../log/Logger\");\r\nvar Base64 = {\r\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\r\n encode: function (e) {\r\n var t = \"\";\r\n var n, r, i, s, o, u, a;\r\n var f = 0;\r\n e = Base64._utf8_encode(e);\r\n while (f < e.length) {\r\n n = e.charCodeAt(f++);\r\n r = e.charCodeAt(f++);\r\n i = e.charCodeAt(f++);\r\n s = n >> 2;\r\n o = (n & 3) << 4 | r >> 4;\r\n u = (r & 15) << 2 | i >> 6;\r\n a = i & 63;\r\n if (isNaN(r)) {\r\n u = a = 64;\r\n }\r\n else if (isNaN(i)) {\r\n a = 64;\r\n }\r\n t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a);\r\n }\r\n return t;\r\n },\r\n decode: function (e) {\r\n var t = \"\";\r\n var n, r, i;\r\n var s, o, u, a;\r\n var f = 0;\r\n e = e.replace(/[^A-Za-z0-9+/=]/g, \"\");\r\n while (f < e.length) {\r\n s = this._keyStr.indexOf(e.charAt(f++));\r\n o = this._keyStr.indexOf(e.charAt(f++));\r\n u = this._keyStr.indexOf(e.charAt(f++));\r\n a = this._keyStr.indexOf(e.charAt(f++));\r\n n = s << 2 | o >> 4;\r\n r = (o & 15) << 4 | u >> 2;\r\n i = (u & 3) << 6 | a;\r\n t = t + String.fromCharCode(n);\r\n if (u != 64) {\r\n t = t + String.fromCharCode(r);\r\n }\r\n if (a != 64) {\r\n t = t + String.fromCharCode(i);\r\n }\r\n }\r\n t = Base64._utf8_decode(t);\r\n return t;\r\n },\r\n _utf8_encode: function (e) {\r\n e = e.replace(/rn/g, \"n\");\r\n var t = \"\";\r\n for (var n = 0; n < e.length; n++) {\r\n var r = e.charCodeAt(n);\r\n if (r < 128) {\r\n t += String.fromCharCode(r);\r\n }\r\n else if (r > 127 && r < 2048) {\r\n t += String.fromCharCode(r >> 6 | 192);\r\n t += String.fromCharCode(r & 63 | 128);\r\n }\r\n else {\r\n t += String.fromCharCode(r >> 12 | 224);\r\n t += String.fromCharCode(r >> 6 & 63 | 128);\r\n t += String.fromCharCode(r & 63 | 128);\r\n }\r\n }\r\n return t;\r\n },\r\n _utf8_decode: function (e) {\r\n var t = \"\";\r\n var n = 0;\r\n var r = 0;\r\n var c1 = 0;\r\n var c2 = 0;\r\n while (n < e.length) {\r\n r = e.charCodeAt(n);\r\n if (r < 128) {\r\n t += String.fromCharCode(r);\r\n n++;\r\n }\r\n else if (r > 191 && r < 224) {\r\n c2 = e.charCodeAt(n + 1);\r\n t += String.fromCharCode((r & 31) << 6 | c2 & 63);\r\n n += 2;\r\n }\r\n else {\r\n c2 = e.charCodeAt(n + 1);\r\n var c3 = e.charCodeAt(n + 2);\r\n t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\r\n n += 3;\r\n }\r\n }\r\n return t;\r\n }\r\n};\r\nvar WebToolkit = /** @class */ (function () {\r\n function WebToolkit() {\r\n }\r\n // 获取浏览器信息\r\n WebToolkit.getBrowserInfo = function () {\r\n var agent = navigator.userAgent.toLowerCase();\r\n var system = agent.split(\" \")[1].split(\" \")[0].split(\"(\")[1];\r\n var REGSTR_EDGE = /edge\\/[\\d.]+/gi;\r\n var REGSTR_IE = /trident\\/[\\d.]+/gi;\r\n var OLD_IE = /msie\\s[\\d.]+/gi;\r\n var REGSTR_FF = /firefox\\/[\\d.]+/gi;\r\n var REGSTR_CHROME = /chrome\\/[\\d.]+/gi;\r\n var REGSTR_SAF = /safari\\/[\\d.]+/gi;\r\n var REGSTR_OPERA = /opr\\/[\\d.]+/gi;\r\n var info = {\r\n code: 0,\r\n system: system,\r\n browser: \"\",\r\n browserVersion: \"\"\r\n };\r\n // IE\r\n if (agent.indexOf(\"trident\") > 0) {\r\n info.browser = agent.match(REGSTR_IE)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_IE)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // OLD_IE\r\n if (agent.indexOf(\"msie\") > 0) {\r\n info.browser = agent.match(OLD_IE)[0].split(\" \")[0];\r\n info.browserVersion = agent.match(OLD_IE)[0].split(\" \")[1];\r\n return info;\r\n }\r\n // Edge\r\n if (agent.indexOf(\"edge\") > 0) {\r\n info.browser = agent.match(REGSTR_EDGE)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_EDGE)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // firefox\r\n if (agent.indexOf(\"firefox\") > 0) {\r\n info.browser = agent.match(REGSTR_FF)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_FF)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // Opera\r\n if (agent.indexOf(\"opr\") > 0) {\r\n info.browser = agent.match(REGSTR_OPERA)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_OPERA)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // Safari\r\n if (agent.indexOf(\"safari\") > 0 && agent.indexOf(\"chrome\") < 0) {\r\n info.browser = agent.match(REGSTR_SAF)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_SAF)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n // Chrome\r\n if (agent.indexOf(\"chrome\") > 0) {\r\n info.browser = agent.match(REGSTR_CHROME)[0].split(\"/\")[0];\r\n info.browserVersion = agent.match(REGSTR_CHROME)[0].split(\"/\")[1];\r\n return info;\r\n }\r\n else {\r\n info.code = -1;\r\n return info;\r\n }\r\n };\r\n // TODO: 获取小程序设备信息\r\n WebToolkit.getWxappInfo = function () {\r\n return {\r\n system: 'WXAPP',\r\n browser: 'WXAPP',\r\n browserVersion: '1.0'\r\n };\r\n };\r\n // TODO: 获取ReactNative设备信息\r\n WebToolkit.getReactNativeInfo = function () {\r\n return {\r\n system: 'RNNative',\r\n browser: 'RNNative',\r\n browserVersion: '1.0'\r\n };\r\n };\r\n // TODO: 获取UniApp设备信息\r\n WebToolkit.getUniAppInfo = function () {\r\n return {\r\n system: 'UNIAPP',\r\n browser: 'UNIAPP',\r\n browserVersion: '1.0'\r\n };\r\n };\r\n // 动态加入script 到head 标签处\r\n WebToolkit.loadJS = function (url, callback) {\r\n var script = document.createElement('script'), fn = callback || function () { };\r\n script.type = 'text/javascript';\r\n // document.getElementsByTagName('head')[0].children[16].outerHTML.indexOf('http://pv.sohu.com/cityjson?ie=utf-8')\r\n var exist = false;\r\n for (var v in document.getElementsByTagName('head')[0].children) {\r\n var dom = document.getElementsByTagName('head')[0].children[v];\r\n if (dom.outerHTML !== undefined && dom.outerHTML.indexOf(url) >= 0) {\r\n exist = true;\r\n }\r\n }\r\n if (exist) {\r\n fn();\r\n return;\r\n }\r\n //IE\r\n if (script.readyState) {\r\n script.onreadystatechange = function () {\r\n if (script.readyState == 'loaded' || script.readyState == 'complete') {\r\n script.onreadystatechange = null;\r\n fn();\r\n }\r\n };\r\n }\r\n else {\r\n //其他浏览器\r\n script.onload = function () {\r\n fn();\r\n };\r\n }\r\n script.src = url;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n };\r\n // 获取当前ip信息(fetch方式)\r\n WebToolkit.getIpInfoByFetch = function (callback) {\r\n var url = 'http://pv.sohu.com/cityjson?ie=utf-8';\r\n var fetch = Fetch_1[\"default\"].getFetchToolkit();\r\n var request = { method: \"GET\", mode: \"cors\", headers: { \"Content-Type\": \"application/json\" } };\r\n return fetch(url, request).then(function (response) {\r\n return response.text();\r\n }).then(function (res) {\r\n if (typeof callback === 'function') {\r\n var currentCity = eval('_current_city=' + res.replace('var returnCitySN = ', ''));\r\n callback(currentCity);\r\n }\r\n })[\"catch\"](function (e) {\r\n Logger_1[\"default\"].trace(e);\r\n });\r\n };\r\n // 获取当前ip信息(动态插入script脚本方式)\r\n WebToolkit.getIpInfoByInsertScript = function (callback) {\r\n var url = 'http://pv.sohu.com/cityjson?ie=utf-8';\r\n WebToolkit.loadJS(url, function () {\r\n callback(window['returnCitySN']);\r\n });\r\n };\r\n WebToolkit.getIpInfo = function (callback) {\r\n // 小程序的情况需要把pv.sohu.com域名加入白名单中\r\n WebToolkit.getIpInfoByFetch(callback);\r\n };\r\n // 获取客户端设备信息\r\n WebToolkit.getDeviceInfo = function () {\r\n var deviceInfo = WebToolkit.getUniAppInfo();\r\n return deviceInfo;\r\n };\r\n WebToolkit.base64Encode = function (str) {\r\n return Base64.encode(str);\r\n };\r\n WebToolkit.base64Decode = function (str) {\r\n return Base64.decode(str);\r\n };\r\n return WebToolkit;\r\n}());\r\nexports[\"default\"] = WebToolkit;\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global =\r\n (typeof globalThis !== 'undefined' && globalThis) ||\r\n (typeof self !== 'undefined' && self) ||\r\n (typeof global !== 'undefined' && global)\r\n\r\nvar support = {\r\n searchParams: 'URLSearchParams' in global,\r\n iterable: 'Symbol' in global && 'iterator' in Symbol,\r\n blob:\r\n 'FileReader' in global &&\r\n 'Blob' in global &&\r\n (function() {\r\n try {\r\n new Blob()\r\n return true\r\n } catch (e) {\r\n return false\r\n }\r\n })(),\r\n formData: 'FormData' in global,\r\n arrayBuffer: 'ArrayBuffer' in global\r\n}\r\n\r\nfunction isDataView(obj) {\r\n return obj && DataView.prototype.isPrototypeOf(obj)\r\n}\r\n\r\nif (support.arrayBuffer) {\r\n var viewClasses = [\r\n '[object Int8Array]',\r\n '[object Uint8Array]',\r\n '[object Uint8ClampedArray]',\r\n '[object Int16Array]',\r\n '[object Uint16Array]',\r\n '[object Int32Array]',\r\n '[object Uint32Array]',\r\n '[object Float32Array]',\r\n '[object Float64Array]'\r\n ]\r\n\r\n var isArrayBufferView =\r\n ArrayBuffer.isView ||\r\n function(obj) {\r\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\r\n }\r\n}\r\n\r\nfunction normalizeName(name) {\r\n if (typeof name !== 'string') {\r\n name = String(name)\r\n }\r\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\r\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\r\n }\r\n // return name.toLowerCase()\r\n return name;\r\n}\r\n\r\nfunction normalizeValue(value) {\r\n if (typeof value !== 'string') {\r\n value = String(value)\r\n }\r\n return value\r\n}\r\n\r\n// Build a destructive iterator for the value list\r\nfunction iteratorFor(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift()\r\n return {done: value === undefined, value: value}\r\n }\r\n }\r\n\r\n if (support.iterable) {\r\n iterator[Symbol.iterator] = function() {\r\n return iterator\r\n }\r\n }\r\n\r\n return iterator\r\n}\r\n\r\nexport function Headers(headers) {\r\n this.map = {}\r\n\r\n if (headers instanceof Headers) {\r\n headers.forEach(function(value, name) {\r\n this.append(name, value)\r\n }, this)\r\n } else if (Array.isArray(headers)) {\r\n headers.forEach(function(header) {\r\n this.append(header[0], header[1])\r\n }, this)\r\n } else if (headers) {\r\n Object.getOwnPropertyNames(headers).forEach(function(name) {\r\n this.append(name, headers[name])\r\n }, this)\r\n }\r\n}\r\n\r\nHeaders.prototype.append = function(name, value) {\r\n name = normalizeName(name)\r\n value = normalizeValue(value)\r\n var oldValue = this.map[name]\r\n this.map[name] = oldValue ? oldValue + ', ' + value : value\r\n}\r\n\r\nHeaders.prototype['delete'] = function(name) {\r\n delete this.map[normalizeName(name)]\r\n}\r\n\r\nHeaders.prototype.get = function(name) {\r\n name = normalizeName(name)\r\n return this.has(name) ? this.map[name] : null\r\n}\r\n\r\nHeaders.prototype.has = function(name) {\r\n return this.map.hasOwnProperty(normalizeName(name))\r\n}\r\n\r\nHeaders.prototype.set = function(name, value) {\r\n this.map[normalizeName(name)] = normalizeValue(value)\r\n}\r\n\r\nHeaders.prototype.forEach = function(callback, thisArg) {\r\n for (var name in this.map) {\r\n if (this.map.hasOwnProperty(name)) {\r\n callback.call(thisArg, this.map[name], name, this)\r\n }\r\n }\r\n}\r\n\r\nHeaders.prototype.keys = function() {\r\n var items = []\r\n this.forEach(function(value, name) {\r\n items.push(name)\r\n })\r\n return iteratorFor(items)\r\n}\r\n\r\nHeaders.prototype.values = function() {\r\n var items = []\r\n this.forEach(function(value) {\r\n items.push(value)\r\n })\r\n return iteratorFor(items)\r\n}\r\n\r\nHeaders.prototype.entries = function() {\r\n var items = []\r\n this.forEach(function(value, name) {\r\n items.push([name, value])\r\n })\r\n return iteratorFor(items)\r\n}\r\n\r\nif (support.iterable) {\r\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\r\n}\r\n\r\nfunction consumed(body) {\r\n if (body.bodyUsed) {\r\n return Promise.reject(new TypeError('Already read'))\r\n }\r\n body.bodyUsed = true\r\n}\r\n\r\nfunction fileReaderReady(reader) {\r\n return new Promise(function(resolve, reject) {\r\n reader.onload = function() {\r\n resolve(reader.result)\r\n }\r\n reader.onerror = function() {\r\n reject(reader.error)\r\n }\r\n })\r\n}\r\n\r\nfunction readBlobAsArrayBuffer(blob) {\r\n var reader = new FileReader()\r\n var promise = fileReaderReady(reader)\r\n reader.readAsArrayBuffer(blob)\r\n return promise\r\n}\r\n\r\nfunction readBlobAsText(blob) {\r\n var reader = new FileReader()\r\n var promise = fileReaderReady(reader)\r\n reader.readAsText(blob)\r\n return promise\r\n}\r\n\r\nfunction readArrayBufferAsText(buf) {\r\n var view = new Uint8Array(buf)\r\n var chars = new Array(view.length)\r\n\r\n for (var i = 0; i < view.length; i++) {\r\n chars[i] = String.fromCharCode(view[i])\r\n }\r\n return chars.join('')\r\n}\r\n\r\nfunction bufferClone(buf) {\r\n if (buf.slice) {\r\n return buf.slice(0)\r\n } else {\r\n var view = new Uint8Array(buf.byteLength)\r\n view.set(new Uint8Array(buf))\r\n return view.buffer\r\n }\r\n}\r\n\r\nfunction Body() {\r\n this.bodyUsed = false\r\n\r\n this._initBody = function(body) {\r\n /*\r\n fetch-mock wraps the Response object in an ES6 Proxy to\r\n provide useful test harness features such as flush. However, on\r\n ES5 browsers without fetch or Proxy support pollyfills must be used;\r\n the proxy-pollyfill is unable to proxy an attribute unless it exists\r\n on the object before the Proxy is created. This change ensures\r\n Response.bodyUsed exists on the instance, while maintaining the\r\n semantic of setting Request.bodyUsed in the constructor before\r\n _initBody is called.\r\n */\r\n this.bodyUsed = this.bodyUsed\r\n this._bodyInit = body\r\n if (!body) {\r\n this._bodyText = ''\r\n } else if (typeof body === 'string') {\r\n this._bodyText = body\r\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\r\n this._bodyBlob = body\r\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\r\n this._bodyFormData = body\r\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\r\n this._bodyText = body.toString()\r\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\r\n this._bodyArrayBuffer = bufferClone(body.buffer)\r\n // IE 10-11 can't handle a DataView body.\r\n this._bodyInit = new Blob([this._bodyArrayBuffer])\r\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\r\n this._bodyArrayBuffer = bufferClone(body)\r\n } else {\r\n this._bodyText = body = Object.prototype.toString.call(body)\r\n }\r\n\r\n if (!this.headers.get('Content-Type')) {\r\n if (typeof body === 'string') {\r\n this.headers.set('Content-Type', 'text/plain;charset=UTF-8')\r\n } else if (this._bodyBlob && this._bodyBlob.type) {\r\n this.headers.set('Content-Type', this._bodyBlob.type)\r\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\r\n this.headers.set('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8')\r\n }\r\n }\r\n }\r\n\r\n if (support.blob) {\r\n this.blob = function() {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return Promise.resolve(this._bodyBlob)\r\n } else if (this._bodyArrayBuffer) {\r\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as blob')\r\n } else {\r\n return Promise.resolve(new Blob([this._bodyText]))\r\n }\r\n }\r\n\r\n this.arrayBuffer = function() {\r\n if (this._bodyArrayBuffer) {\r\n var isConsumed = consumed(this)\r\n if (isConsumed) {\r\n return isConsumed\r\n }\r\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\r\n return Promise.resolve(\r\n this._bodyArrayBuffer.buffer.slice(\r\n this._bodyArrayBuffer.byteOffset,\r\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\r\n )\r\n )\r\n } else {\r\n return Promise.resolve(this._bodyArrayBuffer)\r\n }\r\n } else {\r\n return this.blob().then(readBlobAsArrayBuffer)\r\n }\r\n }\r\n }\r\n\r\n this.text = function() {\r\n var rejected = consumed(this)\r\n if (rejected) {\r\n return rejected\r\n }\r\n\r\n if (this._bodyBlob) {\r\n return readBlobAsText(this._bodyBlob)\r\n } else if (this._bodyArrayBuffer) {\r\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\r\n } else if (this._bodyFormData) {\r\n throw new Error('could not read FormData body as text')\r\n } else {\r\n return Promise.resolve(this._bodyText)\r\n }\r\n }\r\n\r\n if (support.formData) {\r\n this.formData = function() {\r\n return this.text().then(decode)\r\n }\r\n }\r\n\r\n this.json = function() {\r\n return this.text().then(JSON.parse)\r\n }\r\n\r\n return this\r\n}\r\n\r\n// HTTP methods whose capitalization should be normalized\r\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\r\n\r\nfunction normalizeMethod(method) {\r\n var upcased = method.toUpperCase()\r\n return methods.indexOf(upcased) > -1 ? upcased : method\r\n}\r\n\r\nexport function Request(input, options) {\r\n if (!(this instanceof Request)) {\r\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\r\n }\r\n\r\n options = options || {}\r\n var body = options.body\r\n\r\n if (input instanceof Request) {\r\n if (input.bodyUsed) {\r\n throw new TypeError('Already read')\r\n }\r\n this.url = input.url\r\n this.credentials = input.credentials\r\n if (!options.headers) {\r\n this.headers = new Headers(input.headers)\r\n }\r\n this.method = input.method\r\n this.mode = input.mode\r\n this.signal = input.signal\r\n if (!body && input._bodyInit != null) {\r\n body = input._bodyInit\r\n input.bodyUsed = true\r\n }\r\n } else {\r\n this.url = String(input)\r\n }\r\n\r\n this.credentials = options.credentials || this.credentials || 'same-origin'\r\n if (options.headers || !this.headers) {\r\n this.headers = new Headers(options.headers)\r\n }\r\n this.method = normalizeMethod(options.method || this.method || 'GET')\r\n this.mode = options.mode || this.mode || null\r\n this.signal = options.signal || this.signal\r\n this.referrer = null\r\n\r\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\r\n throw new TypeError('Body not allowed for GET or HEAD requests')\r\n }\r\n this._initBody(body)\r\n\r\n if (this.method === 'GET' || this.method === 'HEAD') {\r\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\r\n // Search for a '_' parameter in the query string\r\n var reParamSearch = /([?&])_=[^&]*/\r\n if (reParamSearch.test(this.url)) {\r\n // If it already exists then set the value with the current time\r\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\r\n } else {\r\n // Otherwise add a new '_' parameter to the end with the current time\r\n var reQueryString = /\\?/\r\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\r\n }\r\n }\r\n }\r\n}\r\n\r\nRequest.prototype.clone = function() {\r\n return new Request(this, {body: this._bodyInit})\r\n}\r\n\r\nfunction decode(body) {\r\n var form = new FormData()\r\n body\r\n .trim()\r\n .split('&')\r\n .forEach(function(bytes) {\r\n if (bytes) {\r\n var split = bytes.split('=')\r\n var name = split.shift().replace(/\\+/g, ' ')\r\n var value = split.join('=').replace(/\\+/g, ' ')\r\n form.append(decodeURIComponent(name), decodeURIComponent(value))\r\n }\r\n })\r\n return form\r\n}\r\n\r\nfunction parseHeaders(rawHeaders) {\r\n var headers = new Headers()\r\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\r\n // https://tools.ietf.org/html/rfc7230#section-3.2\r\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\r\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\r\n // https://github.com/github/fetch/issues/748\r\n // https://github.com/zloirock/core-js/issues/751\r\n preProcessedHeaders\r\n .split('\\r')\r\n .map(function(header) {\r\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\r\n })\r\n .forEach(function(line) {\r\n var parts = line.split(':')\r\n var key = parts.shift().trim()\r\n if (key) {\r\n var value = parts.join(':').trim()\r\n headers.append(key, value)\r\n }\r\n })\r\n return headers\r\n}\r\n\r\nfunction parseUniappHeaders(rawHeaders) {\r\n var headers = new Headers()\r\n for(var key in rawHeaders){\r\n headers.append(key, rawHeaders[key])\r\n }\r\n return headers\r\n}\r\n\r\n\r\nBody.call(Request.prototype)\r\n\r\nexport function Response(bodyInit, options) {\r\n if (!(this instanceof Response)) {\r\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\r\n }\r\n if (!options) {\r\n options = {}\r\n }\r\n\r\n this.type = 'default'\r\n this.status = options.status === undefined ? 200 : options.status\r\n this.ok = this.status >= 200 && this.status < 300\r\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\r\n this.headers = new Headers(options.headers)\r\n this.url = options.url || ''\r\n this._initBody(bodyInit)\r\n}\r\n\r\nBody.call(Response.prototype)\r\n\r\nResponse.prototype.clone = function() {\r\n return new Response(this._bodyInit, {\r\n status: this.status,\r\n statusText: this.statusText,\r\n headers: new Headers(this.headers),\r\n url: this.url\r\n })\r\n}\r\n\r\nResponse.error = function() {\r\n var response = new Response(null, {status: 0, statusText: ''})\r\n response.type = 'error'\r\n return response\r\n}\r\n\r\nvar redirectStatuses = [301, 302, 303, 307, 308]\r\n\r\nResponse.redirect = function(url, status) {\r\n if (redirectStatuses.indexOf(status) === -1) {\r\n throw new RangeError('Invalid status code')\r\n }\r\n\r\n return new Response(null, {status: status, headers: {location: url}})\r\n}\r\n\r\nexport var DOMException = global.DOMException\r\ntry {\r\n new DOMException()\r\n} catch (err) {\r\n DOMException = function(message, name) {\r\n this.message = message\r\n this.name = name\r\n var error = Error(message)\r\n this.stack = error.stack\r\n }\r\n DOMException.prototype = Object.create(Error.prototype)\r\n DOMException.prototype.constructor = DOMException\r\n}\r\n\r\n// 从 whatwg-fetch 项目改写\r\nexport function fetch(input, init) {\r\n return new Promise(function(resolve, reject) {\r\n var request = new Request(input, init)\r\n\r\n if (request.signal && request.signal.aborted) {\r\n return reject(new DOMException('Aborted', 'AbortError'))\r\n }\r\n\r\n function fixUrl(url) {\r\n try {\r\n return url === '' && global.location.href ? global.location.href : url\r\n } catch (e) {\r\n return url\r\n }\r\n }\r\n function isJson(json) {\r\n try {\r\n if (typeof json == \"object\") {\r\n return true;\r\n }\r\n if (typeof json == \"string\") {\r\n if (typeof JSON.parse(str) == \"object\") {\r\n return true;\r\n }\r\n }\r\n } catch(e) {\r\n }\r\n return false;\r\n }\r\n function toStr(json) {\r\n try {\r\n if (typeof json == \"object\") {\r\n return JSON.stringify(json);\r\n }\r\n if (typeof json == \"string\") {\r\n return json;\r\n }\r\n } catch(e) {\r\n }\r\n return json.toString();\r\n }\r\n\r\n\r\n let rawBody = typeof request._bodyInit === 'undefined' ? null : request._bodyInit;\r\n if(request.headers.hasOwnProperty('Content-Type') && request.headers['Content-Type'].indexOf('application/json') >= 0){\r\n if(request.method.toUpperCase() === 'POST'){\r\n rawBody = JSON.parse(rawBody); // uniapp框架遇到 method = 'POST' 且 Content-Type = 'application/json' 会自动序列化\r\n }\r\n }\r\n const requestTask = uni.request({\r\n url: fixUrl(request.url),\r\n method: request.method,\r\n data: rawBody,\r\n header: request.headers.map,\r\n complete: (resp)=> {\r\n // Logger.info(resp);\r\n if (request.signal) {\r\n request.signal.removeEventListener('abort', abortXhr);\r\n }\r\n if(resp.errMsg.indexOf('fail') >= 0){\r\n setTimeout(function() {\r\n reject(new TypeError('Network request failed'))\r\n }, 0);\r\n return;\r\n }\r\n // if(resp.statusCode !== 200){\r\n // setTimeout(function() {\r\n // reject(new TypeError('Network request failed, statusCode:' + resp.statusCode + \" full text:\" + JSON.stringify(resp.data)))\r\n // }, 0)\r\n // return;\r\n // }\r\n var options = {\r\n status: resp.statusCode,\r\n statusText: resp.data ? toStr(resp.data) : '',\r\n headers: parseUniappHeaders(resp.header || {})\r\n };\r\n options.url = options.headers.get('X-Request-URL')\r\n var body = options.statusText;\r\n setTimeout(function() {\r\n resolve(new Response(body, options))\r\n }, 0)\r\n\r\n }\r\n });\r\n function abortXhr() {\r\n requestTask.abort()\r\n }\r\n if (request.signal) {\r\n request.signal.addEventListener('abort', abortXhr)\r\n }\r\n\r\n })\r\n}\r\n\r\nfetch.polyfill = true\r\n\r\nif (!global.fetch) {\r\n global.fetch = fetch\r\n global.Headers = Headers\r\n global.Request = Request\r\n global.Response = Response\r\n}\r\n","var _globalThis;\nif (typeof globalThis === 'object') {\n\t_globalThis = globalThis;\n} else {\n\ttry {\n\t\t_globalThis = require('es5-ext/global');\n\t} catch (error) {\n\t} finally {\n\t\tif (!_globalThis && typeof window !== 'undefined') { _globalThis = window; }\n\t\tif (!_globalThis) { throw new Error('Could not determine global this'); }\n\t}\n}\n\nvar NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket;\nvar websocket_version = require('./version');\n\n\n/**\n * Expose a W3C WebSocket class with just one or two arguments.\n */\nfunction W3CWebSocket(uri, protocols) {\n\tvar native_instance;\n\n\tif (protocols) {\n\t\tnative_instance = new NativeWebSocket(uri, protocols);\n\t}\n\telse {\n\t\tnative_instance = new NativeWebSocket(uri);\n\t}\n\n\t/**\n\t * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket\n\t * class). Since it is an Object it will be returned as it is when creating an\n\t * instance of W3CWebSocket via 'new W3CWebSocket()'.\n\t *\n\t * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2\n\t */\n\treturn native_instance;\n}\nif (NativeWebSocket) {\n\t['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) {\n\t\tObject.defineProperty(W3CWebSocket, prop, {\n\t\t\tget: function() { return NativeWebSocket[prop]; }\n\t\t});\n\t});\n}\n\n/**\n * Module exports.\n */\nmodule.exports = {\n 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null,\n 'version' : websocket_version\n};\n","var naiveFallback = function () {\n\tif (typeof self === \"object\" && self) return self;\n\tif (typeof window === \"object\" && window) return window;\n\tthrow new Error(\"Unable to resolve global `this`\");\n};\n\nmodule.exports = (function () {\n\tif (this) return this;\n\n\t// Unexpected strict mode (may happen if e.g. bundled into ESM module)\n\n\t// Fallback to standard globalThis if available\n\tif (typeof globalThis === \"object\" && globalThis) return globalThis;\n\n\t// Thanks @mathiasbynens -> https://mathiasbynens.be/notes/globalthis\n\t// In all ES5+ engines global object inherits from Object.prototype\n\t// (if you approached one that doesn't please report)\n\ttry {\n\t\tObject.defineProperty(Object.prototype, \"__global__\", {\n\t\t\tget: function () { return this; },\n\t\t\tconfigurable: true\n\t\t});\n\t} catch (error) {\n\t\t// Unfortunate case of updates to Object.prototype being restricted\n\t\t// via preventExtensions, seal or freeze\n\t\treturn naiveFallback();\n\t}\n\ttry {\n\t\t// Safari case (window.__global__ works, but __global__ does not)\n\t\tif (!__global__) return naiveFallback();\n\t\treturn __global__;\n\t} finally {\n\t\tdelete Object.prototype.__global__;\n\t}\n})();\n","module.exports = require('../package.json').version;\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.RequestBase = void 0;\r\nvar RequestBase = /** @class */ (function () {\r\n function RequestBase(appId, clientType, imei) {\r\n this.appId = appId;\r\n this.clientType = clientType;\r\n this.imei = imei;\r\n }\r\n return RequestBase;\r\n}());\r\nexports.RequestBase = RequestBase;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.RequestParams = void 0;\r\nvar RequestParams = /** @class */ (function () {\r\n function RequestParams(appId, identifier, userSign) {\r\n this.appId = appId;\r\n this.identifier = identifier;\r\n this.userSign = userSign;\r\n }\r\n return RequestParams;\r\n}());\r\nexports.RequestParams = RequestParams;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Logger_1 = require(\"../log/Logger\");\r\nvar ImClient_1 = require(\"./ImClient\");\r\nvar ApiResponse_1 = require(\"../model/ApiResponse\");\r\nvar utils_1 = require(\"../common/utils\");\r\nvar Fetch_1 = require(\"../common/Fetch\");\r\nvar HttpApi = /** @class */ (function () {\r\n function HttpApi(url) {\r\n this.url = \"\"; //http://127.0.0.1:8000/v1\r\n this.url = url;\r\n }\r\n HttpApi.prototype.call = function (url, params, body) {\r\n var userId = ImClient_1.imClient.userId;\r\n Logger_1[\"default\"].info(userId);\r\n var reqUrl = this.url + url;\r\n if (params != null) {\r\n var paramStr = this.setQueryConfig(params);\r\n // console.log(paramStr);\r\n reqUrl += paramStr;\r\n }\r\n var requestMethod = \"POST\";\r\n // 讲appid等参数写入body\r\n body = this.setQueryToBody(params, body);\r\n var headers = {\r\n 'Content-Type': 'application/json',\r\n };\r\n // const request: any = {method: requestMethod,headers:headers, mode: 'cors', body: Beans.json(body)};\r\n var request = { method: requestMethod, headers: headers, body: utils_1[\"default\"].json(body) };\r\n return this.httpFetch(reqUrl, request);\r\n };\r\n HttpApi.prototype.setQueryToBody = function (params, body) {\r\n for (var o in params) {\r\n body[o] = params[o];\r\n }\r\n return body;\r\n };\r\n HttpApi.prototype.setQueryConfig = function (params) {\r\n var _str = \"?\";\r\n for (var o in params) {\r\n _str += o + \"=\" + params[o] + \"&\";\r\n }\r\n var _str = _str.substring(0, _str.length - 1); //末尾是&\r\n return _str;\r\n };\r\n HttpApi.prototype.httpFetch = function (url, request) {\r\n var _this = this;\r\n console.log(\"httpFetch\");\r\n var rnfetch1 = Fetch_1[\"default\"].getFetchToolkit();\r\n return rnfetch1(url, request).then(function (response) {\r\n // console.log(response)\r\n return response.json();\r\n }).then(function (res) {\r\n Logger_1[\"default\"].info(\"==> [\" + request.method + \"] \" + url + \" back:\" + utils_1[\"default\"].json(res));\r\n var resp = _this.response2ApiResponse(res);\r\n if (resp.isFailed()) {\r\n return Promise.reject(resp);\r\n }\r\n // return Promise.resolve(this.response2ApiResponse(res));\r\n return Promise.resolve(resp);\r\n });\r\n };\r\n HttpApi.prototype.response2ApiResponse = function (response) {\r\n var apiResponse = new ApiResponse_1[\"default\"](true);\r\n apiResponse.data = response.data;\r\n apiResponse.msg = response.msg;\r\n apiResponse.code = response.code;\r\n return apiResponse;\r\n };\r\n return HttpApi;\r\n}());\r\nexports[\"default\"] = HttpApi;\r\n// export const httpApi = new HttpApi();\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar ApiResponse = /** @class */ (function () {\r\n function ApiResponse(succeed) {\r\n if (succeed === void 0) { succeed = false; }\r\n this.msg = '';\r\n this.data = null;\r\n if (succeed) {\r\n this.code = 200;\r\n }\r\n }\r\n ApiResponse.prototype.isSucceed = function () {\r\n return this.code === 200;\r\n };\r\n ApiResponse.prototype.isFailed = function () {\r\n return !this.isSucceed();\r\n };\r\n return ApiResponse;\r\n}());\r\nexports[\"default\"] = ApiResponse;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.ConversationEventCommand = exports.UserEventCommand = exports.SystemCommand = exports.GroupCommand = exports.FriendShipCommand = exports.MessageCommand = void 0;\r\nvar MessageCommand;\r\n(function (MessageCommand) {\r\n MessageCommand[MessageCommand[\"MSG_P2P\"] = 1103] = \"MSG_P2P\";\r\n MessageCommand[MessageCommand[\"MSG_P2P_SYNC\"] = 1108] = \"MSG_P2P_SYNC\";\r\n //发送消息已读 1106\r\n MessageCommand[MessageCommand[\"MSG_READED\"] = 1106] = \"MSG_READED\";\r\n //消息接收ack\r\n MessageCommand[MessageCommand[\"MSG_RECIVE_ACK\"] = 1107] = \"MSG_RECIVE_ACK\";\r\n //单聊消息ACK 1046\r\n MessageCommand[MessageCommand[\"MSG_ACK\"] = 1046] = \"MSG_ACK\";\r\n // 消息撤回 1050\r\n MessageCommand[MessageCommand[\"MSG_RECALL\"] = 1050] = \"MSG_RECALL\";\r\n // //消息撤回通知 1052\r\n MessageCommand[MessageCommand[\"MSG_RECALL_NOTIFY\"] = 1052] = \"MSG_RECALL_NOTIFY\";\r\n // 消息撤回回包 1051\r\n MessageCommand[MessageCommand[\"MSG_RECALL_ACK\"] = 1051] = \"MSG_RECALL_ACK\";\r\n // //消息已读通知 1053\r\n MessageCommand[MessageCommand[\"MSG_READED_NOTIFY\"] = 1053] = \"MSG_READED_NOTIFY\";\r\n // 消息已读回执,给原消息发送方 1054\r\n MessageCommand[MessageCommand[\"MSG_READED_RECEIPT\"] = 1054] = \"MSG_READED_RECEIPT\";\r\n})(MessageCommand || (MessageCommand = {}));\r\nexports.MessageCommand = MessageCommand;\r\nvar FriendShipCommand;\r\n(function (FriendShipCommand) {\r\n //添加好友 3000\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_ADD\"] = 3000] = \"FRIEND_ADD\";\r\n //更新好友 3001\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_UPDATE\"] = 3001] = \"FRIEND_UPDATE\";\r\n //删除好友 3002\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_DELETE\"] = 3002] = \"FRIEND_DELETE\";\r\n //好友申请 3003\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_REQUEST\"] = 3003] = \"FRIEND_REQUEST\";\r\n //好友申请已读 3004\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_REQUEST_READ\"] = 3004] = \"FRIEND_REQUEST_READ\";\r\n //好友申请审批 3005\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_REQUEST_APPROVER\"] = 3005] = \"FRIEND_REQUEST_APPROVER\";\r\n //添加黑名单 3010\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_BLACK_ADD\"] = 3010] = \"FRIEND_BLACK_ADD\";\r\n //移除黑名单 3011\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_BLACK_DELETE\"] = 3011] = \"FRIEND_BLACK_DELETE\";\r\n //新建好友分组 3012\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_ADD\"] = 3012] = \"FRIEND_GROUP_ADD\";\r\n //删除好友分组 3013\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_DELETE\"] = 3013] = \"FRIEND_GROUP_DELETE\";\r\n //好友分组添加成员 3014\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_MEMBER_ADD\"] = 3014] = \"FRIEND_GROUP_MEMBER_ADD\";\r\n //好友分组移除成员 3015\r\n FriendShipCommand[FriendShipCommand[\"FRIEND_GROUP_MEMBER_DELETE\"] = 3015] = \"FRIEND_GROUP_MEMBER_DELETE\";\r\n})(FriendShipCommand || (FriendShipCommand = {}));\r\nexports.FriendShipCommand = FriendShipCommand;\r\nvar GroupCommand;\r\n(function (GroupCommand) {\r\n /**\r\n * 推送申请入群通知 2000\r\n */\r\n GroupCommand[GroupCommand[\"JOIN_GROUP\"] = 2000] = \"JOIN_GROUP\";\r\n /**\r\n * 推送添加群成员 2001,通知给所有管理员和本人\r\n */\r\n GroupCommand[GroupCommand[\"ADDED_MEMBER\"] = 2001] = \"ADDED_MEMBER\";\r\n /**\r\n * 推送创建群组通知 2002,通知给所有人\r\n */\r\n GroupCommand[GroupCommand[\"CREATED_GROUP\"] = 2002] = \"CREATED_GROUP\";\r\n /**\r\n * 推送更新群组通知 2003,通知给所有人\r\n */\r\n GroupCommand[GroupCommand[\"UPDATED_GROUP\"] = 2003] = \"UPDATED_GROUP\";\r\n /**\r\n * 推送退出群组通知 2004,通知给管理员和操作人\r\n */\r\n GroupCommand[GroupCommand[\"EXIT_GROUP\"] = 2004] = \"EXIT_GROUP\";\r\n /**\r\n * 推送修改群成员通知 2005,通知给管理员和被操作人\r\n */\r\n GroupCommand[GroupCommand[\"UPDATED_MEMBER\"] = 2005] = \"UPDATED_MEMBER\";\r\n /**\r\n * 推送删除群成员通知 2006,通知给所有群成员和被踢人\r\n */\r\n GroupCommand[GroupCommand[\"DELETED_MEMBER\"] = 2006] = \"DELETED_MEMBER\";\r\n /**\r\n * 推送解散群通知 2007,通知所有人\r\n */\r\n GroupCommand[GroupCommand[\"DESTROY_GROUP\"] = 2007] = \"DESTROY_GROUP\";\r\n /**\r\n * 推送转让群主 2008,通知所有人\r\n */\r\n GroupCommand[GroupCommand[\"TRANSFER_GROUP\"] = 2008] = \"TRANSFER_GROUP\";\r\n /**\r\n * 禁言群 2009,通知所有人\r\n */\r\n GroupCommand[GroupCommand[\"MUTE_GROUP\"] = 2009] = \"MUTE_GROUP\";\r\n /**\r\n * 禁言/解禁 群成员 2010,通知管理员和被操作人\r\n */\r\n GroupCommand[GroupCommand[\"SPEAK_GOUP_MEMBER\"] = 2010] = \"SPEAK_GOUP_MEMBER\";\r\n //群聊消息收发 2104\r\n GroupCommand[GroupCommand[\"MSG_GROUP\"] = 2104] = \"MSG_GROUP\";\r\n //群聊消息收发同步消息 2105\r\n GroupCommand[GroupCommand[\"MSG_GROUP_SYNC\"] = 2105] = \"MSG_GROUP_SYNC\";\r\n //群聊消息ACK 2047\r\n GroupCommand[GroupCommand[\"GROUP_MSG_ACK\"] = 2047] = \"GROUP_MSG_ACK\";\r\n})(GroupCommand || (GroupCommand = {}));\r\nexports.GroupCommand = GroupCommand;\r\nvar SystemCommand;\r\n(function (SystemCommand) {\r\n //心跳 9999\r\n SystemCommand[SystemCommand[\"PING\"] = 9999] = \"PING\";\r\n //登陸 9000\r\n SystemCommand[SystemCommand[\"LOGIN\"] = 9000] = \"LOGIN\";\r\n //登录ack 9001\r\n SystemCommand[SystemCommand[\"LOGINACK\"] = 9001] = \"LOGINACK\";\r\n //下线通知 用于多端互斥 9002\r\n SystemCommand[SystemCommand[\"MUTUALLOGIN\"] = 9002] = \"MUTUALLOGIN\";\r\n //登出 9003\r\n SystemCommand[SystemCommand[\"LOGOUT\"] = 9003] = \"LOGOUT\";\r\n})(SystemCommand || (SystemCommand = {}));\r\nexports.SystemCommand = SystemCommand;\r\nvar UserEventCommand;\r\n(function (UserEventCommand) {\r\n //4000\r\n UserEventCommand[UserEventCommand[\"USER_MODIFY\"] = 4000] = \"USER_MODIFY\";\r\n //4001\r\n UserEventCommand[UserEventCommand[\"USER_ONLINE_STATUS_CHANGE\"] = 4001] = \"USER_ONLINE_STATUS_CHANGE\";\r\n //4002 在线状态订阅\r\n UserEventCommand[UserEventCommand[\"USER_ONLINE_STATUS_SUBSCRIBE\"] = 4002] = \"USER_ONLINE_STATUS_SUBSCRIBE\";\r\n //4003 拉取订阅的在线状态好友,只发送给请求端\r\n UserEventCommand[UserEventCommand[\"PULL_USER_ONLINE_STATUS\"] = 4003] = \"PULL_USER_ONLINE_STATUS\";\r\n //4004 用户在线状态通知报文\r\n UserEventCommand[UserEventCommand[\"USER_ONLINE_STATUS_CHANGE_NOTIFY\"] = 4004] = \"USER_ONLINE_STATUS_CHANGE_NOTIFY\";\r\n})(UserEventCommand || (UserEventCommand = {}));\r\nexports.UserEventCommand = UserEventCommand;\r\nvar ConversationEventCommand;\r\n(function (ConversationEventCommand) {\r\n //5000 会话删除\r\n ConversationEventCommand[ConversationEventCommand[\"CONVERSATION_DELETE\"] = 5000] = \"CONVERSATION_DELETE\";\r\n //5001 会话修改\r\n ConversationEventCommand[ConversationEventCommand[\"CONVERSATION_UPDATE\"] = 5001] = \"CONVERSATION_UPDATE\";\r\n})(ConversationEventCommand || (ConversationEventCommand = {}));\r\nexports.ConversationEventCommand = ConversationEventCommand;\r\n","\"use strict\";\r\nexports.__esModule = true;\r\nexports.MessagePack = void 0;\r\nvar utils_1 = require(\"../common/utils\");\r\nvar MessagePack = /** @class */ (function () {\r\n function MessagePack(appId) {\r\n this.messageId = utils_1[\"default\"].uuid();\r\n this.appId = appId;\r\n this.messageRandom = this.RangeInteger(0, 10000);\r\n this.messageTime = Date.parse(new Date().toString());\r\n }\r\n MessagePack.prototype.RangeInteger = function (min, max) {\r\n var range = max - min;\r\n var value = Math.floor(Math.random() * range) + min;\r\n return value;\r\n };\r\n MessagePack.prototype.buildTextMessagePack = function (fromId, toId, text) {\r\n this.fromId = fromId;\r\n this.toId = toId;\r\n console.warn(typeof text);\r\n console.log(text);\r\n var body = text;\r\n this.messageBody = utils_1[\"default\"].json(body);\r\n };\r\n MessagePack.prototype.buildCustomerMessagePack = function (fromId, toId, type, obj) {\r\n this.fromId = fromId;\r\n this.toId = toId;\r\n var body = { type: type, content: obj };\r\n this.messageBody = utils_1[\"default\"].json(body);\r\n };\r\n return MessagePack;\r\n}());\r\nexports.MessagePack = MessagePack;\r\n"],"sourceRoot":""} \ No newline at end of file