From 3688c421dcd450c972f8ad4698f67cec69599b67 Mon Sep 17 00:00:00 2001 From: rowger Date: Sat, 2 Dec 2023 18:44:35 +0800 Subject: [PATCH] IM --- im-uniapp/App.vue | 90 +++++++++++-------- im-uniapp/common/imSdk/lim-sdk.js | 2 +- im-uniapp/common/imSdk/lim-sdk.js.map | 2 +- im-uniapp/common/publicFc.js | 3 +- im-uniapp/common/socketTask.js | 36 ++++++-- im-uniapp/index.html | 4 +- im-uniapp/pages.json | 30 +++---- im-uniapp/pages/agreement/index.vue | 16 ++-- im-uniapp/store/index.js | 6 +- .../uni_modules/uni-nav-bar/changelog.md | 10 +++ .../components/uni-nav-bar/uni-nav-bar.vue | 15 +++- .../components/uni-nav-bar/uni-status-bar.vue | 5 +- .../uni_modules/uni-nav-bar/package.json | 11 +-- im-uniapp/wx/chatWindow/chat-item.vue | 3 +- im-uniapp/wx/chatWindow/index.vue | 88 ++++++++++++++---- .../lim-ts-sdk/src/lim/core/ImClient.ts | 58 +++++++----- 16 files changed, 251 insertions(+), 128 deletions(-) diff --git a/im-uniapp/App.vue b/im-uniapp/App.vue index 48374f2..ce136bd 100644 --- a/im-uniapp/App.vue +++ b/im-uniapp/App.vue @@ -6,29 +6,24 @@ import { versionName } from '@/manifest.json' - import {appInit} from "@/common/utils.js" + import { + appInit + } from "@/common/utils.js" import consoleImgs from '@/common/consoleImgs.js' // #ifdef APP-PLUS import appUpgrade from '@/common/appUpgrade.js'; const TUICalling = uni.requireNativePlugin("TUICallingUniPlugin-TUICallingModule"); // #endif export default { + data() { + return { + timer: null + } + }, onLaunch: function() { - localStorage.setItem("appId",10000) - - appInit(500).then((res)=>{ - console.log("获取到token,创建长链接") - this.$store.dispatch('getAddressList'); - setTimeout(()=>{ - this.$socketTask.connectSocket() - uni.setStorageSync("initReady",1) - },1000) - }).then((error)=>{ - console.log("未获取到IM的token") - console.log(error) - }) - - + localStorage.setItem("appId", 10000) + + console.log(consoleImgs.fz) // todo 下列两行 uni.setStorageSync('device', 'H5'); @@ -37,37 +32,59 @@ }, onShow: function() { console.log('App Show') - + + appInit(500).then((res) => { + console.log("获取到token,创建长链接") + this.$store.dispatch('getAddressList'); + setTimeout(() => { + this.$socketTask.connectSocket(() => { + if (this.timer != null) { + console.log("连接成功,清除定时器") + clearInterval(this.timer) + this.timer = null + } + }, () => { + + }) + uni.setStorageSync("initReady", 1) + }, 1000) + }).then((error) => { + console.log("未获取到IM的token") + console.log(error) + }) + + uni.getStorage({ key: 'call', success: (res) => { - var callx=res.data - if(callx){ - var call=JSON.parse(callx) - function getInervalHour(startDate) {//获取两个时间之间的小时 + var callx = res.data + if (callx) { + var call = JSON.parse(callx) + + function getInervalHour(startDate) { //获取两个时间之间的小时 if (!startDate) { return '0秒' } var ms = new Date().getTime() - startDate; if (ms < 0) return '0秒'; - if((ms/1000)<60){ - return Math.floor(ms / 1000)+'秒'; - }else{ - return Math.floor(ms / 1000 /60)+'分'; + if ((ms / 1000) < 60) { + return Math.floor(ms / 1000) + '秒'; + } else { + return Math.floor(ms / 1000 / 60) + '分'; } } - var msgType='' - if(call.type=='audio'){ - msgType='TRTC_VOICE_END' + var msgType = '' + if (call.type == 'audio') { + msgType = 'TRTC_VOICE_END' } - if(call.type=='video'){ - msgType='TRTC_VIDEO_END' + if (call.type == 'video') { + msgType = 'TRTC_VIDEO_END' } this.$fc.pushOutMsg({ - msgContent:getInervalHour(call.startTime), - msgType:msgType, - windowType:'SINGLE', - userId:call.userId, + msgContent: getInervalHour(call.startTime), + msgType: msgType, + windowType: 'SINGLE', + userId: call.userId, }) uni.removeStorageSync('call') } @@ -93,7 +110,6 @@ } /* #endif */ - + // 以下内容最好转移到单页 - - + \ No newline at end of file diff --git a/im-uniapp/common/imSdk/lim-sdk.js b/im-uniapp/common/imSdk/lim-sdk.js index 9e86a12..2014714 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=E,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 E},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 E(){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})},E.call(v.prototype),E.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 f9dab4b..132221e 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 < 1)) 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 +{"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 // 加入socket 连接事件\r\n if (typeof exports.imClient.listeners.onSocketErrorEvent === 'function') {\r\n exports.imClient.listeners.onSocketErrorEvent(err === null || err === void 0 ? void 0 : err.message);\r\n }\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 < 1)) 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 diff --git a/im-uniapp/common/publicFc.js b/im-uniapp/common/publicFc.js index f528d0e..eac82da 100644 --- a/im-uniapp/common/publicFc.js +++ b/im-uniapp/common/publicFc.js @@ -593,6 +593,7 @@ export default { msgTypeLabel = '[视频通话]' } var userInfo = store.state.userInfo; + const _userInfo = uni.getStorageSync("userInfo") store.dispatch('createChatObj', { userId: userId, windowType: windowType, @@ -655,7 +656,7 @@ export default { userId: userInfo.userId, personId: userInfo.userId, nickName: userInfo.nickName, - portrait: userInfo.portrait, + portrait: _userInfo.photo, msgType: msgType, content: msgContent, time: time, diff --git a/im-uniapp/common/socketTask.js b/im-uniapp/common/socketTask.js index 82dc95f..7a8dce2 100644 --- a/im-uniapp/common/socketTask.js +++ b/im-uniapp/common/socketTask.js @@ -8,15 +8,14 @@ import lim from "@/common/imSdk/sdk-bridge.js"; import publicFc from '@/common/publicFc'; import localForage from 'localforage'; -import { getCurrentInstance } from 'vue' let __that = this export default { socketTask: null, + retimer: null, // 连接WebSocket - connectSocket() { - + connectSocket(successCallBack = null, errorCallBack = null) { const ListenerMap = { onSocketConnectEvent: (option, status, data) => { @@ -24,16 +23,26 @@ export default { }, onSocketErrorEvent: (error) => { console.log("连接出现错误:" + userId); + this.socketTask = null + clearInterval(this.retimer) + this.retimer = null + console.log("开始定时重连"); + this.retimer = setInterval(() => { + this.connectSocket() + }, 2000) }, onSocketReConnectEvent: () => { console.log("正在重连:"); }, onSocketCloseEvent: () => { console.log("连接关闭:"); - console.log(__that) - __that.$socketTask.socketTask=null; - __that.$socketTask.connectSocket() - + this.socketTask = null + clearInterval(this.retimer) + this.retimer = null + console.log("开始定时重连"); + this.retimer = setInterval(() => { + this.connectSocket() + }, 2000) }, onSocketReConnectSuccessEvent: () => { console.log("重连成功"); @@ -72,7 +81,7 @@ export default { console.log(e) console.log("接收到的ws格式化之后数据") const _data = publicFc.formatMessage(e.data) - console.log(_data) + console.log(_data) uni.$emit('onP2PMessage', _data); store.dispatch('onP2PMessage', _data) }, @@ -96,6 +105,8 @@ export default { // 防止多次建立ws链接,貌似还没有生效,需要检查 if (this.socketTask != null) { + clearInterval(this.retimer) + this.retimer = null return false } @@ -108,6 +119,11 @@ export default { console.log('sdk 成功连接的回调, 可以使用 sdk 请求数据了.'); + if (this.retimer != null) { + clearInterval(this.retimer) + this.retimer = null + } + sdk.getSingleUserInfo(userId).then(res => { console.log("获取到自己的用户信息") console.log(res) @@ -199,4 +215,8 @@ export default { console.log('关闭WebSocket!'); } }, + reconnect() { + this.socketTask = null; + this.connectSocket() + } } \ No newline at end of file diff --git a/im-uniapp/index.html b/im-uniapp/index.html index 7a37587..b1f3b91 100644 --- a/im-uniapp/index.html +++ b/im-uniapp/index.html @@ -3,10 +3,10 @@ - + diff --git a/im-uniapp/pages.json b/im-uniapp/pages.json index 1cc7775..b006acf 100644 --- a/im-uniapp/pages.json +++ b/im-uniapp/pages.json @@ -22,16 +22,17 @@ // } // } // }, + // { + // "path": "wx/tabbar1/index", + // "name": "wxindex", + // "aliasPath": "/wxindex", + // "requireAuth": true, + // "style": { + // "navigationBarTitleText": "微信首页", + // "navigationStyle": "custom" + // } + // }, { - "path": "pages/wxindex/index", - "name": "wxindex", - "aliasPath": "/wxindex", - "requireAuth": true, - "style": { - "navigationBarTitleText": "微信首页", - "navigationStyle": "custom" - } - }, { "path": "pages/agreement/index", "name": "agreement", "aliasPath": "/agreement", @@ -104,16 +105,7 @@ "aliasPath": "/wxchatWindow", "requireAuth": true, "style": { - "navigationBarTitleText": "聊天窗口", - "app-plus": { - "titleNView": { - "buttons": [{ - "text": "\ue623", - "fontSrc": "/static/wx_iconfont.ttf", - "fontSize": "28px" - }] - } - } + "navigationStyle": "custom" } } , { diff --git a/im-uniapp/pages/agreement/index.vue b/im-uniapp/pages/agreement/index.vue index d5e23f1..2c10de2 100644 --- a/im-uniapp/pages/agreement/index.vue +++ b/im-uniapp/pages/agreement/index.vue @@ -1,7 +1,6 @@ @@ -10,16 +9,19 @@ export default { data() { return { - name:'zmm2113@qq.com基础版', + name: 'zmm2113@qq.com基础版', richtxt: '', } }, computed: {}, + onShow() { + console.log("跳转到tabbar1") + uni.switchTab({ + url: '/wx/tabbar1/index' + }); + }, onLoad(e) { - if(e.name){ - this.name=e.name - } - this.richtxt='

服务条款确认与接纳

'+this.name+'拥有相关软件的所有权和运作权,'+this.name+'享有对其产品的上一切活动的监督、提示、检查、纠正及处罚等权利。用户通过注册程序阅读本服务条款并点击"注册/登录"按钮完成注册/登录,即表示用户与'+this.name+'已达成协议,自愿接受本服务条款的所有内容。如果用户不同意服务条款的条件,则不能获得使用'+this.name+'服务以及注册成为'+this.name+'用户的权利。


使用规则

1.用户注册成功后,'+this.name+'将给予每个用户一个用户账号及相应的密码,该用户账号和密码由用户负责保管;用户应当对以其用户账号进行的所有活动和事件负法律责任。

2.用户须对在'+this.name+'的注册信息的真实性、合法性、有效性承担全部责任,用户不得冒充他人;不得利用他人的名义发布任何信息;不得恶意使用注册帐户导致其他用户误认;否则'+this.name+'有权立即停止提供服务,收回其账号并由用户独自承担由此而产生的一切法律责任。

3.用户不得使用'+this.name+'服务发送或传播敏感信息和违反国家法律制度的信息,包括但不限于下列信息:

反对宪法所确定的基本原则的;

危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;

损害国家荣誉和利益的;

煽动民族仇恨、民族岐视,破坏民族团结的;

破坏国家宗教政策,宣扬邪教和封建迷信散布谣言,扰乱社会秩序,破坏社会稳定的;

散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教峻犯罪的;

侮辱或者诽谤他人,侵害他人合法权益的;

含有法律、行政法规禁止的其他内容的。

4.'+this.name+'有权对用户使用'+this.name+'的情况进行审查和监督,如用户在使用'+this.name+'时违反任何上述规定'+this.name+'或其授权的人有权要求用户改正或直接采取一切必要的措施以减轻用户不当行为造成的影响。

5.盗取他人用户账号或利用网络通讯骚扰他人,均属于非法行为。用户不得采用测试、欺骗等任何非法手段,盗取其他用户的账号和对他人进行强扰。


免责声明

1.'+this.name+'不能对用户在本社区回答问题的答案或评论的准确性及合理性进行保证。

2.若'+this.name+'产品已经明示其网络服务提供方式发生变更提醒用户应当注意事项,用户未按要求操作所产生的一切后果由用户自行承担。

3.用户明确同意其使用'+this.name+'产品网络服务所存在的风险将完全由其自己承担;因其使用'+this.name+'服务而产生的一切后果也由其自己承担,'+this.name+'对用户不承担任何责任。

4.'+this.name+'不保证网络服务一定能满足用户的要求,也不保证网络服务不会中断,对网络服务的及时性、安全性、准确性也都不作保证。

5.对于因不可抗力或'+this.name+'不能控制的原因造成的网络服务中断或其它缺陷,'+this.name+'不承担任何责任,但将尽力减少因此而给用户造成的损失和影响。

6.用户同意保障和维护'+this.name+'及其他用户的利益,用户在'+this.name+'发表的内容仅表明其个人的立场和观点,并不代表'+this.name+'的立场或观点。由于用户发表内容违法、不真实、不正当、侵犯第三方合法权益,或用户违反本协议项下的任何条款而给'+this.name+'或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。


服务条款的修改

'+this.name+'会在必要时修改服务条款,服务条款ー旦发生变动,'+this.name+'将会在用户进入下一步使用前的页面提示修改内容。如果您同意改动,请再一次激活"我同意"按钮。如果您不接受,请及时取消您的帐户。用户要继续使用'+this.name+'各项服务需要两方面的确认:

1.首先确认'+this.name+'服务条款及其变动。

2.同意接受所有的服务条款限制。


隐私政策

'+this.name+'非常重视对用户隐私权的保护,承诺不会在未获得用户许可的情况下擅自将用户的个人资料信息出租或出售给任何第三方,但以下情况除外:

您同意让第三方共享资料;

您同意公开你的个人资料,享受为您提供的产品和服务;

本站需要听从法庭传票、法律命令或遵循法律;

本站发现您违反了本站服务条款或本站其它使用规定;

在本应用平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出信息披露请求的,本应用有权决定向该用户提供其交易对方的联络方式等必要信息,以促成交易的完成或纠纷的解决。


'+this.name+'在哪些方面用到了您的信息:

登陆注册功能,用户注册时输入的个人信息仅用于验证用户真实性;

您有权选择接受或拒绝接受本政策。但如果您选择拒绝接受本政策,则您可能无法登录或使用依赖于本政策的网络服务或功能。


信息的存储和交换:

本应用收集的有关您的信息和资料将保存在本应用及(或)其关联的服务器上,这些信息和资料均存储在中国境内服务器。


隐私政策的更改

如果决定更改隐私政策,我们会在本政策中、官方网站中以及我们认为适当的位置发布这些更改,以便您了解我们如何收集、使用您的个人信息,哪些人可以访问这些信息,以及在什么情况下我们会透露这些信息。

' + }, methods: {} } @@ -44,4 +46,4 @@ .agreementc img { max-width: 100%; } - + \ No newline at end of file diff --git a/im-uniapp/store/index.js b/im-uniapp/store/index.js index 95f8ba4..78e00e7 100644 --- a/im-uniapp/store/index.js +++ b/im-uniapp/store/index.js @@ -141,6 +141,7 @@ const store = new Vuex.Store({ updateChartHistoryFromServer(context, data) { const _userId = uni.getStorageSync("userId") + const _userInfo = uni.getStorageSync("userInfo") var retdata = publicFc.getKeyObjectStorage(_userId + '_' + 'chatData') var currentUserMsgList = retdata[data.userId].list @@ -167,6 +168,7 @@ const store = new Vuex.Store({ messageKey:item.messageKey, msgType:item.messageBody.msgType, nickName:_userId==item.fromId?"我":detail.nickName, + portrait:_userId==item.fromId?_userInfo.photo:detail.photo, personId:item.fromId, sendtype:"waiting", time:item.createTime, @@ -191,6 +193,7 @@ const store = new Vuex.Store({ uni.setStorageSync(_userId + '_' + 'chatData', JSON.stringify( retdata)); + context.dispatch('getchatDatalist'); const _obj=_serverMsgList[_serverMsgList.length-1] @@ -203,6 +206,7 @@ const store = new Vuex.Store({ if(_obj.msgType=="CALL_voice"){ _obj.content="【语音通话】" } + //判断头像是谁的 context.dispatch('updateChatListInfoById',{ userId:data.userId, @@ -211,7 +215,7 @@ const store = new Vuex.Store({ userId: data.userId, personId: _userId, nickName: detail.nickName, - portrait: detail.photo, + portrait:_userId==_obj.fromId?_userInfo.photo:detail.photo, time: dayjs(_obj.createTime).format("YYYY/MM/DD HH:mm:ss"), num: 0, windowType: 'SINGLE', diff --git a/im-uniapp/uni_modules/uni-nav-bar/changelog.md b/im-uniapp/uni_modules/uni-nav-bar/changelog.md index f0f6b56..0f9a2f1 100644 --- a/im-uniapp/uni_modules/uni-nav-bar/changelog.md +++ b/im-uniapp/uni_modules/uni-nav-bar/changelog.md @@ -1,3 +1,13 @@ +## 1.3.11(2023-03-29) +- 修复 自定义状态栏高度闪动BUG +## 1.3.10(2023-03-29) +- 修复 暗黑模式下边线颜色错误的bug +## 1.3.9(2022-10-13) +- 修复 条件编译错误的bug +## 1.3.8(2022-10-12) +- 修复 nvue 环境 fixed 为 true 的情况下,无法置顶的 bug +## 1.3.7(2022-08-11) +- 修复 nvue 环境下 fixed 为 true 的情况下,无法置顶的 bug ## 1.3.6(2022-06-30) - 修复 组件示例中插槽用法无法显示内容的bug ## 1.3.5(2022-05-24) diff --git a/im-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue b/im-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue index cbfc168..c890860 100644 --- a/im-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue +++ b/im-uniapp/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue @@ -1,7 +1,7 @@ @@ -50,6 +52,8 @@ const getVal = (val) => typeof val === 'number' ? val + 'px' : val; /** + * + * * NavBar 自定义导航栏 * @description 导航栏组件,主要用于头部导航 * @tutorial https://ext.dcloud.net.cn/plugin?id=52 @@ -196,6 +200,11 @@