sim-sdk-web 1.0.21 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.es.js CHANGED
@@ -1 +1 @@
1
- import{EventSourcePolyfill as e}from"event-source-polyfill";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},n.apply(null,arguments)}function t(e,n){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},t(e,n)}function o(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var r;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(r||(r={}));var i,s,c,a=/*#__PURE__*/function(){function n(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=n.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var n=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{n.eventSource=new e(n.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+n.token}}),n._openHandler=function(e){console.log("SSE connection established"),n.connected=!0,n.reconnectAttempts>0&&n.onReconnectSuccessCallback&&n.onReconnectSuccessCallback(),n.reconnectAttempts=0,n.reconnectTimeout=5e3,t("SSE connect successful!")},n._errorHandler=function(e){console.error("SSE connection error:",e),n.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(n.cleanup(),n.notifyConnectionClosed(!0)):n.handleReconnect(),n.connected||o(new Error("SSE connect error"))},n._messageHandler=function(e){try{console.log("SSE received message:",e.data);var t=JSON.parse(e.data);n.onMessageCallback&&n.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},n.eventSource.addEventListener("open",n._openHandler),n.eventSource.addEventListener("error",n._errorHandler),n.eventSource.addEventListener("message",n._messageHandler),n.handlers.forEach(function(e,t){var o=n._customHandlers.get(t);o&&n.eventSource&&n.eventSource.addEventListener(t,o)});var r=setTimeout(function(){n.connected||(o(new Error("Connection timeout")),n.handleReconnect())},1e4),i=n._openHandler;n._openHandler=function(e){clearTimeout(r),i(e)}}catch(e){console.error("Failed to create EventSource:",e),n.handleReconnect(),o(e)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},n}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(i||(i={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/info",e.GetAllConversationList="/chat/group/list",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/member/upload"}(s||(s={})),function(e){e.OnConnected="OnConnected",e.OnDisconnected="OnDisconnected",e.OnReconnecting="OnReconnecting",e.OnReconnected="OnReconnected",e.OnReconnectFailed="OnReconnectFailed",e.OnNetworkChange="OnNetworkChange",e.OnReceiveMessage="OnReceiveMessage",e.OnReceiveMessages="OnReceiveMessages",e.OnMessageSent="OnMessageSent",e.OnMessageFailed="OnMessageFailed",e.OnMessageRevoked="OnMessageRevoked",e.OnMessageDeleted="OnMessageDeleted",e.OnMessageRead="OnMessageRead",e.OnTypingStatusUpdate="OnTypingStatusUpdate",e.OnUserStatusChange="OnUserStatusChange",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired",e.OnForceOffline="OnForceOffline",e.OnUserInfoUpdated="OnUserInfoUpdated",e.OnGroupCreated="OnGroupCreated",e.OnGroupInfoUpdated="OnGroupInfoUpdated",e.OnGroupDissolved="OnGroupDissolved",e.OnJoinGroup="OnJoinGroup",e.OnLeaveGroup="OnLeaveGroup",e.OnGroupMemberJoined="OnGroupMemberJoined",e.OnGroupMemberLeft="OnGroupMemberLeft",e.OnGroupMemberKicked="OnGroupMemberKicked",e.OnGroupOwnerChanged="OnGroupOwnerChanged",e.OnGroupAdminAdded="OnGroupAdminAdded",e.OnGroupAdminRemoved="OnGroupAdminRemoved",e.OnGroupMemberMuted="OnGroupMemberMuted",e.OnGroupMemberUnmuted="OnGroupMemberUnmuted",e.OnGroupAllMemberMuted="OnGroupAllMemberMuted",e.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",e.OnConversationCreated="OnConversationCreated",e.OnConversationDeleted="OnConversationDeleted",e.OnConversationUpdated="OnConversationUpdated",e.OnUnreadCountChanged="OnUnreadCountChanged",e.OnConversationPinned="OnConversationPinned",e.OnConversationUnpinned="OnConversationUnpinned",e.OnConversationMuted="OnConversationMuted",e.OnConversationUnmuted="OnConversationUnmuted",e.OnPongConn="OnPongConn",e.OnPongReConn="OnPongReConn",e.OnPongIdle="OnPongIdle",e.OnError="OnError",e.OnWarning="OnWarning",e.OnLog="OnLog"}(c||(c={}));var u,d,l,g,f,h,p,m,v,O,M,C,S,E,A,G,b,k,y,N,P,R,T=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[c.OnReceiveMessage]=[],e[c.OnReceiveMessages]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();!function(e){e[e.Nomal=0]="Nomal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(u||(u={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(d||(d={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(l||(l={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(g||(g={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(f||(f={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(h||(h={})),function(e){e[e.iOS=1]="iOS",e[e.Android=2]="Android",e[e.Windows=3]="Windows",e[e.MacOSX=4]="MacOSX",e[e.Web=5]="Web",e[e.Linux=7]="Linux",e[e.AndroidPad=8]="AndroidPad",e[e.iPad=9]="iPad"}(p||(p={})),function(e){e[e.Debug=5]="Debug",e[e.Info=4]="Info",e[e.Warn=3]="Warn",e[e.Error=2]="Error",e[e.Fatal=1]="Fatal",e[e.Panic=0]="Panic"}(m||(m={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(v||(v={})),function(e){e[e.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",e[e.TextMessage=101]="TextMessage",e[e.PictureMessage=102]="PictureMessage",e[e.VoiceMessage=103]="VoiceMessage",e[e.VideoMessage=104]="VideoMessage",e[e.FileMessage=105]="FileMessage",e[e.AtTextMessage=106]="AtTextMessage",e[e.MergeMessage=107]="MergeMessage",e[e.CardMessage=108]="CardMessage",e[e.LocationMessage=109]="LocationMessage",e[e.CustomMessage=110]="CustomMessage",e[e.TypingMessage=113]="TypingMessage",e[e.QuoteMessage=114]="QuoteMessage",e[e.FaceMessage=115]="FaceMessage",e[e.FriendAdded=1201]="FriendAdded",e[e.OANotification=1400]="OANotification",e[e.GroupCreated=1501]="GroupCreated",e[e.MemberQuit=1504]="MemberQuit",e[e.GroupOwnerTransferred=1507]="GroupOwnerTransferred",e[e.MemberKicked=1508]="MemberKicked",e[e.MemberInvited=1509]="MemberInvited",e[e.MemberEnter=1510]="MemberEnter",e[e.GroupDismissed=1511]="GroupDismissed",e[e.GroupMemberMuted=1512]="GroupMemberMuted",e[e.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",e[e.GroupMuted=1514]="GroupMuted",e[e.GroupCancelMuted=1515]="GroupCancelMuted",e[e.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",e[e.GroupNameUpdated=1520]="GroupNameUpdated",e[e.BurnMessageChange=1701]="BurnMessageChange",e[e.RevokeMessage=2101]="RevokeMessage"}(O||(O={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(M||(M={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(C||(C={})),function(e){e[e.AtNormal=0]="AtNormal",e[e.AtMe=1]="AtMe",e[e.AtAll=2]="AtAll",e[e.AtAllAtMe=3]="AtAllAtMe",e[e.AtGroupNotice=4]="AtGroupNotice"}(S||(S={})),function(e){e[e.All=0]="All",e[e.Owner=1]="Owner",e[e.Admin=2]="Admin",e[e.Nomal=3]="Nomal",e[e.AdminAndNomal=4]="AdminAndNomal",e[e.AdminAndOwner=5]="AdminAndOwner"}(E||(E={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(A||(A={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(G||(G={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(b||(b={})),function(e){e[e.Readed=0]="Readed",e[e.UnRead=1]="UnRead"}(k||(k={})),function(e){e[e.ONE_ON_ONE=0]="ONE_ON_ONE",e[e.GROUP_CHAT=1]="GROUP_CHAT",e[e.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE"}(y||(y={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.VIDEO=3]="VIDEO",e[e.LINK=4]="LINK",e[e.GIF=5]="GIF"}(N||(N={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH"}(P||(P={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(R||(R={}));var w={NORMAL:0,EDITED:1,DELETED:2},_="undefined"!=typeof uni,U="undefined"!=typeof window,L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:s.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:s.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,o,r,i){var s;void 0===o&&(o={});var c=n({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(c,t)},t.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(N.TEXT,s.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(N.IMAGE,s.CreateTextMessage,n,"snapshot",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:s.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),x=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:s.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),F=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:s.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:s.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),j=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case r.USER:return new L(this.sdk);case r.MESSAGE:return new I(this.sdk);case r.CONVERSATION:return new x(this.sdk);case r.GROUP:return new F(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function D(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var H=[s.Logout,c.OnKickedOffline,c.OnUserTokenInvalid,c.OnUserTokenExpired],V=/*#__PURE__*/function(e){function n(n){var t;return void 0===n&&(n=!1),(t=e.call(this)||this).config={debug:!1},t.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},t.sseClient=void 0,t.serviceManager=void 0,t.configure=function(e){void 0!==e.debug&&(t.config.debug=e.debug),e.apiAddr&&(t.config.apiAddr=e.apiAddr),e.appKey&&(t.config.appKey=e.appKey)},t.sendRequest=function(e){return t.internalState.lastActivity=Date.now(),t.config.debug&&t.logRequest(e),function(e){try{return Promise.resolve(_?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(U)return console.log("isBrowser ",U),console.log("options ",e),Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:t.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:t.config.token?"Bearer "+t.config.token:""},data:e.data})},t.createRequestFunction=function(e,n){return function(o){return t.sendRequest({data:o,url:e,method:n})}},t.createRequestFunctionWithoutParams=function(e,n){return function(){return t.sendRequest({data:void 0,method:n,url:e})}},t.handleMessage=function(e){switch(t.config.debug&&console.log("handleMessage response",e),e.ev){case P.EVENT_MESSAGE_PUSH:1===e.dt.length?t.emit(c.OnReceiveMessage,e.dt[0]):t.emit(c.OnReceiveMessages,e.dt);break;case P.EVENT_PONG_CONN:t.internalState.isConnected=!0,t.emit(c.OnConnected);break;case P.EVENT_PONG_RE_CONN:t.internalState.isConnected=!0,t.emit(c.OnReconnected);break;case P.EVENT_PONG_IDLE:break;default:n=e.ev,Object.values(c).includes(n)?(t.emit(e.ev,e.dt),H.includes(e.ev)&&(t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.sseClient&&(t.sseClient.close(),t.sseClient=void 0))):t.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var n},t.handleReconnectSuccess=function(){t.config.username&&(t.internalState.isConnected=!0,t.internalState.reconnectAttempts=0,t.config.debug&&console.log("SSE reconnection successful"),t.emit(c.OnReconnected))},t.handleConnectionClosed=function(){t.internalState.isConnected=!1,t.config.debug&&console.log("SSE connection closed"),t.emit(c.OnDisconnected)},t.login=function(e){try{return t.sseClient?Promise.resolve("login repeat"):t.config.apiAddr?t.config.appKey?(t.config.token=e.token,t.config.username=e.username,t.config.debug&&(console.log("login params",e),console.log("apiAddr",t.config.apiAddr)),Promise.resolve(t.user.login(e)).then(function(n){var o=n.code,r=n.data;return 0!=o?Promise.resolve("Login failed, Server error, error code is "+o):(t.sseClient=new a({url:t.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+t.config.appKey+"&random="+r,onMessage:t.handleMessage,onReconnectSuccess:t.handleReconnectSuccess,onConnectionClosed:t.handleConnectionClosed,token:e.token}),D(function(){return Promise.resolve(t.sseClient.connect()).then(function(e){return t.internalState.isLoggedIn=!0,e})},function(e){return t.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})):Promise.reject("No appKey configured. Please call configure() before login()."):Promise.reject("No apiAddr configured. Please call configure() before login().")}catch(e){return Promise.reject(e)}},t.logout=function(){try{return t.sseClient&&(t.sseClient.close(),t.sseClient=void 0),Promise.resolve(t.user.logout()).then(function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.config.username=void 0,t.config.token=void 0,e})}catch(e){return Promise.reject(e)}},t.internalUploadFile=function(e){try{return Promise.resolve(D(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+t.config.apiAddr+s.UploadFile,{method:"POST",headers:{Authorization:t.config.token?"Bearer "+t.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},t.uploadFile=function(e){var n=e.file;try{return Promise.resolve(t.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?i.UnknownError:0}})}catch(e){return Promise.reject(e)}},t.sendTextMessage=function(e){return t.message.createTextMessage(e)},t.sendImageMessage=function(e){return t.message.createImageMessage(e)},t.getHistoryMessageList=function(e){return t.message.getHistoryMessageList(e)},t.getConversations=function(){return t.conversation.getConversations()},t.createGroup=function(e){return t.group.createGroup(e)},t.getGroupInfo=function(e){return t.group.getGroupInfo(e)},t.config.debug=n,t.serviceManager=new j(t),t}var u,d;d=e,(u=n).prototype=Object.create(d.prototype),u.prototype.constructor=u,t(u,d);var l,g,f=n.prototype;return f.getService=function(e){return this.serviceManager.get(e)},f.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},f.isLoggedIn=function(){return this.internalState.isLoggedIn},f.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},f.onMessage=function(e){var n=this;return this.on(c.OnReceiveMessage,e),function(){return n.off(c.OnReceiveMessage,e)}},f.onMessages=function(e){var n=this;return this.on(c.OnReceiveMessages,e),function(){return n.off(c.OnReceiveMessages,e)}},f.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(c.OnConnected,t),this.on(c.OnDisconnected,o),function(){n.off(c.OnConnected,t),n.off(c.OnDisconnected,o)}},f.onKickedOffline=function(e){var n=this;return this.on(c.OnKickedOffline,e),function(){return n.off(c.OnKickedOffline,e)}},l=n,(g=[{key:"message",get:function(){return this.getService(r.MESSAGE)}},{key:"conversation",get:function(){return this.getService(r.CONVERSATION)}},{key:"group",get:function(){return this.getService(r.GROUP)}},{key:"user",get:function(){return this.getService(r.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}(l.prototype,g),Object.defineProperty(l,"prototype",{writable:!1}),l}(T);export{d as AllowType,v as ApplicationHandleResult,c as CbEvents,i as ErrorCode,y as GROUP_TYPE,S as GroupAtType,g as GroupJoinSource,E as GroupMemberFilter,f as GroupMemberRole,k as GroupMessageReaderFilter,C as GroupStatus,l as GroupType,h as GroupVerificationType,m as LogLevel,G as LoginStatus,N as MSG_TYPE,u as MessageReceiveOptType,R as MessageSendStatus,w as MessageStatus,O as MessageType,b as OnlineState,p as Platform,A as Relationship,s as RequestApi,V as SIMSDK,P as SSE_RESPONSE_TYPE,r as ServiceName,M as SessionType};
1
+ import{EventSourcePolyfill as e}from"event-source-polyfill";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},n.apply(null,arguments)}function t(e,n){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},t(e,n)}function o(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var r;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(r||(r={}));var i,s,c,a=/*#__PURE__*/function(){function n(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=n.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var n=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{n.eventSource=new e(n.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+n.token}}),n._openHandler=function(e){console.log("SSE connection established"),n.connected=!0,n.reconnectAttempts>0&&n.onReconnectSuccessCallback&&n.onReconnectSuccessCallback(),n.reconnectAttempts=0,n.reconnectTimeout=5e3,t("SSE connect successful!")},n._errorHandler=function(e){console.error("SSE connection error:",e),n.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(n.cleanup(),n.notifyConnectionClosed(!0)):n.handleReconnect(),n.connected||o(new Error("SSE connect error"))},n._messageHandler=function(e){try{console.log("SSE received message:",e.data);var t=JSON.parse(e.data);n.onMessageCallback&&n.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},n.eventSource.addEventListener("open",n._openHandler),n.eventSource.addEventListener("error",n._errorHandler),n.eventSource.addEventListener("message",n._messageHandler),n.handlers.forEach(function(e,t){var o=n._customHandlers.get(t);o&&n.eventSource&&n.eventSource.addEventListener(t,o)});var r=setTimeout(function(){n.connected||(o(new Error("Connection timeout")),n.handleReconnect())},1e4),i=n._openHandler;n._openHandler=function(e){clearTimeout(r),i(e)}}catch(e){console.error("Failed to create EventSource:",e),n.handleReconnect(),o(e)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},n}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(i||(i={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/info",e.GetAllConversationList="/chat/group/list",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/member/upload"}(s||(s={})),function(e){e.OnConnected="OnConnected",e.OnDisconnected="OnDisconnected",e.OnReconnecting="OnReconnecting",e.OnReconnected="OnReconnected",e.OnReconnectFailed="OnReconnectFailed",e.OnNetworkChange="OnNetworkChange",e.OnReceiveMessage="OnReceiveMessage",e.OnReceiveMessages="OnReceiveMessages",e.OnMessageSent="OnMessageSent",e.OnMessageFailed="OnMessageFailed",e.OnMessageRevoked="OnMessageRevoked",e.OnMessageDeleted="OnMessageDeleted",e.OnMessageRead="OnMessageRead",e.OnTypingStatusUpdate="OnTypingStatusUpdate",e.OnUserStatusChange="OnUserStatusChange",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired",e.OnForceOffline="OnForceOffline",e.OnUserInfoUpdated="OnUserInfoUpdated",e.OnGroupCreated="OnGroupCreated",e.OnGroupInfoUpdated="OnGroupInfoUpdated",e.OnGroupDissolved="OnGroupDissolved",e.OnJoinGroup="OnJoinGroup",e.OnLeaveGroup="OnLeaveGroup",e.OnGroupMemberJoined="OnGroupMemberJoined",e.OnGroupMemberLeft="OnGroupMemberLeft",e.OnGroupMemberKicked="OnGroupMemberKicked",e.OnGroupOwnerChanged="OnGroupOwnerChanged",e.OnGroupAdminAdded="OnGroupAdminAdded",e.OnGroupAdminRemoved="OnGroupAdminRemoved",e.OnGroupMemberMuted="OnGroupMemberMuted",e.OnGroupMemberUnmuted="OnGroupMemberUnmuted",e.OnGroupAllMemberMuted="OnGroupAllMemberMuted",e.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",e.OnConversationCreated="OnConversationCreated",e.OnConversationDeleted="OnConversationDeleted",e.OnConversationUpdated="OnConversationUpdated",e.OnUnreadCountChanged="OnUnreadCountChanged",e.OnConversationPinned="OnConversationPinned",e.OnConversationUnpinned="OnConversationUnpinned",e.OnConversationMuted="OnConversationMuted",e.OnConversationUnmuted="OnConversationUnmuted",e.OnPongConn="OnPongConn",e.OnPongReConn="OnPongReConn",e.OnPongIdle="OnPongIdle",e.OnError="OnError",e.OnWarning="OnWarning",e.OnLog="OnLog"}(c||(c={}));var u,d,l,g,f,h,p,m,v,O,M,C,S,E,A,G,b,k,y,N,P,R,T=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[c.OnReceiveMessage]=[],e[c.OnReceiveMessages]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();!function(e){e[e.Nomal=0]="Nomal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(u||(u={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(d||(d={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(l||(l={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(g||(g={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(f||(f={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(h||(h={})),function(e){e[e.iOS=1]="iOS",e[e.Android=2]="Android",e[e.Windows=3]="Windows",e[e.MacOSX=4]="MacOSX",e[e.Web=5]="Web",e[e.Linux=7]="Linux",e[e.AndroidPad=8]="AndroidPad",e[e.iPad=9]="iPad"}(p||(p={})),function(e){e[e.Debug=5]="Debug",e[e.Info=4]="Info",e[e.Warn=3]="Warn",e[e.Error=2]="Error",e[e.Fatal=1]="Fatal",e[e.Panic=0]="Panic"}(m||(m={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(v||(v={})),function(e){e[e.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",e[e.TextMessage=101]="TextMessage",e[e.PictureMessage=102]="PictureMessage",e[e.VoiceMessage=103]="VoiceMessage",e[e.VideoMessage=104]="VideoMessage",e[e.FileMessage=105]="FileMessage",e[e.AtTextMessage=106]="AtTextMessage",e[e.MergeMessage=107]="MergeMessage",e[e.CardMessage=108]="CardMessage",e[e.LocationMessage=109]="LocationMessage",e[e.CustomMessage=110]="CustomMessage",e[e.TypingMessage=113]="TypingMessage",e[e.QuoteMessage=114]="QuoteMessage",e[e.FaceMessage=115]="FaceMessage",e[e.FriendAdded=1201]="FriendAdded",e[e.OANotification=1400]="OANotification",e[e.GroupCreated=1501]="GroupCreated",e[e.MemberQuit=1504]="MemberQuit",e[e.GroupOwnerTransferred=1507]="GroupOwnerTransferred",e[e.MemberKicked=1508]="MemberKicked",e[e.MemberInvited=1509]="MemberInvited",e[e.MemberEnter=1510]="MemberEnter",e[e.GroupDismissed=1511]="GroupDismissed",e[e.GroupMemberMuted=1512]="GroupMemberMuted",e[e.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",e[e.GroupMuted=1514]="GroupMuted",e[e.GroupCancelMuted=1515]="GroupCancelMuted",e[e.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",e[e.GroupNameUpdated=1520]="GroupNameUpdated",e[e.BurnMessageChange=1701]="BurnMessageChange",e[e.RevokeMessage=2101]="RevokeMessage"}(O||(O={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(M||(M={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(C||(C={})),function(e){e[e.AtNormal=0]="AtNormal",e[e.AtMe=1]="AtMe",e[e.AtAll=2]="AtAll",e[e.AtAllAtMe=3]="AtAllAtMe",e[e.AtGroupNotice=4]="AtGroupNotice"}(S||(S={})),function(e){e[e.All=0]="All",e[e.Owner=1]="Owner",e[e.Admin=2]="Admin",e[e.Nomal=3]="Nomal",e[e.AdminAndNomal=4]="AdminAndNomal",e[e.AdminAndOwner=5]="AdminAndOwner"}(E||(E={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(A||(A={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(G||(G={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(b||(b={})),function(e){e[e.Readed=0]="Readed",e[e.UnRead=1]="UnRead"}(k||(k={})),function(e){e[e.ONE_ON_ONE=0]="ONE_ON_ONE",e[e.GROUP_CHAT=1]="GROUP_CHAT",e[e.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE"}(y||(y={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.VIDEO=3]="VIDEO",e[e.LINK=4]="LINK",e[e.GIF=5]="GIF"}(N||(N={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH"}(P||(P={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(R||(R={}));var w={NORMAL:0,EDITED:1,DELETED:2},_="undefined"!=typeof uni,U="undefined"!=typeof window,L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:s.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:s.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,o,r,i){var s;void 0===o&&(o={});var c=n({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(c,t)},t.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(N.TEXT,s.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(N.IMAGE,s.CreateTextMessage,n,"snapshot",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:s.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),x=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:s.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),F=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:s.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:s.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),j=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case r.USER:return new L(this.sdk);case r.MESSAGE:return new I(this.sdk);case r.CONVERSATION:return new x(this.sdk);case r.GROUP:return new F(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function D(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var H=[s.Logout,c.OnKickedOffline,c.OnUserTokenInvalid,c.OnUserTokenExpired],V=/*#__PURE__*/function(e){function u(t){var o;return void 0===t&&(t=!1),(o=e.call(this)||this).config={debug:!1},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.sseClient=void 0,o.serviceManager=void 0,o.configure=function(e){void 0!==e.debug&&(o.config.debug=e.debug),e.apiAddr&&(o.config.apiAddr=e.apiAddr),e.appKey&&(o.config.appKey=e.appKey)},o.sendRequest=function(e){return o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e),function(e){try{return Promise.resolve(_?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(U)return console.log("isBrowser ",U),console.log("options ",e),Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:o.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:e.data})},o.createRequestFunction=function(e,n){return function(t){return o.sendRequest({data:t,url:e,method:n})}},o.createRequestFunctionWithoutParams=function(e,n){return function(){return o.sendRequest({data:void 0,method:n,url:e})}},o.handleMessage=function(e){switch(o.config.debug&&console.log("handleMessage response",e),e.ev){case P.EVENT_MESSAGE_PUSH:1===e.dt.length?o.emit(c.OnReceiveMessage,e.dt[0]):o.emit(c.OnReceiveMessages,e.dt);break;case P.EVENT_PONG_CONN:o.internalState.isConnected=!0,o.emit(c.OnConnected);break;case P.EVENT_PONG_RE_CONN:o.internalState.isConnected=!0,o.emit(c.OnReconnected);break;case P.EVENT_PONG_IDLE:break;default:n=e.ev,Object.values(c).includes(n)?(o.emit(e.ev,e.dt),H.includes(e.ev)&&(o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.sseClient&&(o.sseClient.close(),o.sseClient=void 0))):o.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var n},o.handleReconnectSuccess=function(){o.config.username&&(o.internalState.isConnected=!0,o.internalState.reconnectAttempts=0,o.config.debug&&console.log("SSE reconnection successful"),o.emit(c.OnReconnected))},o.handleConnectionClosed=function(){o.internalState.isConnected=!1,o.config.debug&&console.log("SSE connection closed"),o.emit(c.OnDisconnected)},o.login=function(e){try{return o.sseClient?Promise.resolve("login repeat"):o.config.apiAddr?o.config.appKey?(o.config.token=e.token,o.config.username=e.username,o.config.debug&&(console.log("login params",e),console.log("apiAddr",o.config.apiAddr)),Promise.resolve(o.user.login(n({},e,{appKey:o.config.appKey}))).then(function(n){var t=n.code,r=n.data;return 0!=t?Promise.resolve("Login failed, Server error, error code is "+t):(o.sseClient=new a({url:o.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+o.config.appKey+"&random="+r,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,token:e.token}),D(function(){return Promise.resolve(o.sseClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,e})},function(e){return o.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})):Promise.reject("No appKey configured. Please call configure() before login()."):Promise.reject("No apiAddr configured. Please call configure() before login().")}catch(e){return Promise.reject(e)}},o.logout=function(){try{return o.sseClient&&(o.sseClient.close(),o.sseClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.config.username=void 0,o.config.token=void 0,e})}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(e){try{return Promise.resolve(D(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+o.config.apiAddr+s.UploadFile,{method:"POST",headers:{Authorization:o.config.token?"Bearer "+o.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(e){var n=e.file;try{return Promise.resolve(o.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?i.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e){return o.message.createTextMessage(e)},o.sendImageMessage=function(e){return o.message.createImageMessage(e)},o.getHistoryMessageList=function(e){return o.message.getHistoryMessageList(e)},o.getConversations=function(){return o.conversation.getConversations()},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.config.debug=t,o.serviceManager=new j(o),o}var d,l;l=e,(d=u).prototype=Object.create(l.prototype),d.prototype.constructor=d,t(d,l);var g,f,h=u.prototype;return h.getService=function(e){return this.serviceManager.get(e)},h.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},h.isLoggedIn=function(){return this.internalState.isLoggedIn},h.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},h.onMessage=function(e){var n=this;return this.on(c.OnReceiveMessage,e),function(){return n.off(c.OnReceiveMessage,e)}},h.onMessages=function(e){var n=this;return this.on(c.OnReceiveMessages,e),function(){return n.off(c.OnReceiveMessages,e)}},h.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(c.OnConnected,t),this.on(c.OnDisconnected,o),function(){n.off(c.OnConnected,t),n.off(c.OnDisconnected,o)}},h.onKickedOffline=function(e){var n=this;return this.on(c.OnKickedOffline,e),function(){return n.off(c.OnKickedOffline,e)}},g=u,(f=[{key:"message",get:function(){return this.getService(r.MESSAGE)}},{key:"conversation",get:function(){return this.getService(r.CONVERSATION)}},{key:"group",get:function(){return this.getService(r.GROUP)}},{key:"user",get:function(){return this.getService(r.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}(g.prototype,f),Object.defineProperty(g,"prototype",{writable:!1}),g}(T);export{d as AllowType,v as ApplicationHandleResult,c as CbEvents,i as ErrorCode,y as GROUP_TYPE,S as GroupAtType,g as GroupJoinSource,E as GroupMemberFilter,f as GroupMemberRole,k as GroupMessageReaderFilter,C as GroupStatus,l as GroupType,h as GroupVerificationType,m as LogLevel,G as LoginStatus,N as MSG_TYPE,u as MessageReceiveOptType,R as MessageSendStatus,w as MessageStatus,O as MessageType,b as OnlineState,p as Platform,A as Relationship,s as RequestApi,V as SIMSDK,P as SSE_RESPONSE_TYPE,r as ServiceName,M as SessionType};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- var e,n=require("event-source-polyfill");function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},t.apply(null,arguments)}function o(e,n){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},o(e,n)}function r(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var s,i,a,c=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=e.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{e.eventSource=new n.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(n){console.error("SSE connection error:",n),e.connected=!1,401===n.status||n.statusText&&n.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(n){try{console.log("SSE received message:",n.data);var t=JSON.parse(n.data);e.onMessageCallback&&e.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.addEventListener(t,o)});var r=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(r),s(e)}}catch(n){console.error("Failed to create EventSource:",n),e.handleReconnect(),o(n)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(s=exports.ErrorCode||(exports.ErrorCode={}))[s.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",s[s.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",s[s.UnknownError=10005]="UnknownError",s[s.LoginRepeatError=10102]="LoginRepeatError",exports.RequestApi=void 0,(i=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",i.Logout="/chat/member/logout",i.CreateGroup="CreateGroup",i.GetGroupInfo="/chat/group/info",i.GetAllConversationList="/chat/group/list",i.CreateTextMessage="/chat/message/push",i.GetHistoryMessageList="/chat/message/pull",i.UploadFile="/chat/member/upload",exports.CbEvents=void 0,(a=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",a.OnDisconnected="OnDisconnected",a.OnReconnecting="OnReconnecting",a.OnReconnected="OnReconnected",a.OnReconnectFailed="OnReconnectFailed",a.OnNetworkChange="OnNetworkChange",a.OnReceiveMessage="OnReceiveMessage",a.OnReceiveMessages="OnReceiveMessages",a.OnMessageSent="OnMessageSent",a.OnMessageFailed="OnMessageFailed",a.OnMessageRevoked="OnMessageRevoked",a.OnMessageDeleted="OnMessageDeleted",a.OnMessageRead="OnMessageRead",a.OnTypingStatusUpdate="OnTypingStatusUpdate",a.OnUserStatusChange="OnUserStatusChange",a.OnKickedOffline="OnKickedOffline",a.OnUserTokenInvalid="OnUserTokenInvalid",a.OnUserTokenExpired="OnUserTokenExpired",a.OnForceOffline="OnForceOffline",a.OnUserInfoUpdated="OnUserInfoUpdated",a.OnGroupCreated="OnGroupCreated",a.OnGroupInfoUpdated="OnGroupInfoUpdated",a.OnGroupDissolved="OnGroupDissolved",a.OnJoinGroup="OnJoinGroup",a.OnLeaveGroup="OnLeaveGroup",a.OnGroupMemberJoined="OnGroupMemberJoined",a.OnGroupMemberLeft="OnGroupMemberLeft",a.OnGroupMemberKicked="OnGroupMemberKicked",a.OnGroupOwnerChanged="OnGroupOwnerChanged",a.OnGroupAdminAdded="OnGroupAdminAdded",a.OnGroupAdminRemoved="OnGroupAdminRemoved",a.OnGroupMemberMuted="OnGroupMemberMuted",a.OnGroupMemberUnmuted="OnGroupMemberUnmuted",a.OnGroupAllMemberMuted="OnGroupAllMemberMuted",a.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",a.OnConversationCreated="OnConversationCreated",a.OnConversationDeleted="OnConversationDeleted",a.OnConversationUpdated="OnConversationUpdated",a.OnUnreadCountChanged="OnUnreadCountChanged",a.OnConversationPinned="OnConversationPinned",a.OnConversationUnpinned="OnConversationUnpinned",a.OnConversationMuted="OnConversationMuted",a.OnConversationUnmuted="OnConversationUnmuted",a.OnPongConn="OnPongConn",a.OnPongReConn="OnPongReConn",a.OnPongIdle="OnPongIdle",a.OnError="OnError",a.OnWarning="OnWarning",a.OnLog="OnLog";var u,d,l,p,g,v,f,m,h,O,S,E,M,C,x,G,A,b,R,T,P,y,N=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();exports.MessageReceiveOptType=void 0,(u=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[u.Nomal=0]="Nomal",u[u.NotReceive=1]="NotReceive",u[u.NotNotify=2]="NotNotify",exports.AllowType=void 0,(d=exports.AllowType||(exports.AllowType={}))[d.Allowed=0]="Allowed",d[d.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(l=exports.GroupType||(exports.GroupType={}))[l.Group=2]="Group",l[l.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(p=exports.GroupJoinSource||(exports.GroupJoinSource={}))[p.Invitation=2]="Invitation",p[p.Search=3]="Search",p[p.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(g=exports.GroupMemberRole||(exports.GroupMemberRole={}))[g.Nomal=20]="Nomal",g[g.Admin=60]="Admin",g[g.Owner=100]="Owner",exports.GroupVerificationType=void 0,(v=exports.GroupVerificationType||(exports.GroupVerificationType={}))[v.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",v[v.AllNeed=1]="AllNeed",v[v.AllNot=2]="AllNot",exports.Platform=void 0,(f=exports.Platform||(exports.Platform={}))[f.iOS=1]="iOS",f[f.Android=2]="Android",f[f.Windows=3]="Windows",f[f.MacOSX=4]="MacOSX",f[f.Web=5]="Web",f[f.Linux=7]="Linux",f[f.AndroidPad=8]="AndroidPad",f[f.iPad=9]="iPad",exports.LogLevel=void 0,(m=exports.LogLevel||(exports.LogLevel={}))[m.Debug=5]="Debug",m[m.Info=4]="Info",m[m.Warn=3]="Warn",m[m.Error=2]="Error",m[m.Fatal=1]="Fatal",m[m.Panic=0]="Panic",exports.ApplicationHandleResult=void 0,(h=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[h.Unprocessed=0]="Unprocessed",h[h.Agree=1]="Agree",h[h.Reject=-1]="Reject",exports.MessageType=void 0,(O=exports.MessageType||(exports.MessageType={}))[O.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",O[O.TextMessage=101]="TextMessage",O[O.PictureMessage=102]="PictureMessage",O[O.VoiceMessage=103]="VoiceMessage",O[O.VideoMessage=104]="VideoMessage",O[O.FileMessage=105]="FileMessage",O[O.AtTextMessage=106]="AtTextMessage",O[O.MergeMessage=107]="MergeMessage",O[O.CardMessage=108]="CardMessage",O[O.LocationMessage=109]="LocationMessage",O[O.CustomMessage=110]="CustomMessage",O[O.TypingMessage=113]="TypingMessage",O[O.QuoteMessage=114]="QuoteMessage",O[O.FaceMessage=115]="FaceMessage",O[O.FriendAdded=1201]="FriendAdded",O[O.OANotification=1400]="OANotification",O[O.GroupCreated=1501]="GroupCreated",O[O.MemberQuit=1504]="MemberQuit",O[O.GroupOwnerTransferred=1507]="GroupOwnerTransferred",O[O.MemberKicked=1508]="MemberKicked",O[O.MemberInvited=1509]="MemberInvited",O[O.MemberEnter=1510]="MemberEnter",O[O.GroupDismissed=1511]="GroupDismissed",O[O.GroupMemberMuted=1512]="GroupMemberMuted",O[O.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",O[O.GroupMuted=1514]="GroupMuted",O[O.GroupCancelMuted=1515]="GroupCancelMuted",O[O.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",O[O.GroupNameUpdated=1520]="GroupNameUpdated",O[O.BurnMessageChange=1701]="BurnMessageChange",O[O.RevokeMessage=2101]="RevokeMessage",exports.SessionType=void 0,(S=exports.SessionType||(exports.SessionType={}))[S.Single=1]="Single",S[S.Group=3]="Group",S[S.WorkingGroup=3]="WorkingGroup",S[S.Notification=4]="Notification",exports.GroupStatus=void 0,(E=exports.GroupStatus||(exports.GroupStatus={}))[E.Nomal=0]="Nomal",E[E.Baned=1]="Baned",E[E.Dismissed=2]="Dismissed",E[E.Muted=3]="Muted",exports.GroupAtType=void 0,(M=exports.GroupAtType||(exports.GroupAtType={}))[M.AtNormal=0]="AtNormal",M[M.AtMe=1]="AtMe",M[M.AtAll=2]="AtAll",M[M.AtAllAtMe=3]="AtAllAtMe",M[M.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(C=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[C.All=0]="All",C[C.Owner=1]="Owner",C[C.Admin=2]="Admin",C[C.Nomal=3]="Nomal",C[C.AdminAndNomal=4]="AdminAndNomal",C[C.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(x=exports.Relationship||(exports.Relationship={}))[x.isBlack=0]="isBlack",x[x.isFriend=1]="isFriend",exports.LoginStatus=void 0,(G=exports.LoginStatus||(exports.LoginStatus={}))[G.Logout=1]="Logout",G[G.Logging=2]="Logging",G[G.Logged=3]="Logged",exports.OnlineState=void 0,(A=exports.OnlineState||(exports.OnlineState={}))[A.Online=1]="Online",A[A.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(b=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[b.Readed=0]="Readed",b[b.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(R=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[R.ONE_ON_ONE=0]="ONE_ON_ONE",R[R.GROUP_CHAT=1]="GROUP_CHAT",R[R.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(T=exports.MSG_TYPE||(exports.MSG_TYPE={}))[T.TEXT=0]="TEXT",T[T.IMAGE=1]="IMAGE",T[T.FILE=2]="FILE",T[T.VIDEO=3]="VIDEO",T[T.LINK=4]="LINK",T[T.GIF=5]="GIF",exports.SSE_RESPONSE_TYPE=void 0,(P=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[P.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",P[P.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",P[P.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",P[P.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(y=exports.MessageSendStatus||(exports.MessageSendStatus={}))[y.Sending=1]="Sending",y[y.Succeed=2]="Succeed",y[y.Failed=3]="Failed";var k="undefined"!=typeof uni,_="undefined"!=typeof window,w=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,o,r,s){var i;void 0===o&&(o={});var a=t({},o,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,n)},n.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.TEXT,exports.RequestApi.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,n,"snapshot",e))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),U=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:exports.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),F=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case exports.ServiceName.USER:return new w(this.sdk);case exports.ServiceName.MESSAGE:return new L(this.sdk);case exports.ServiceName.CONVERSATION:return new U(this.sdk);case exports.ServiceName.GROUP:return new I(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function H(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var j=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired],D=/*#__PURE__*/function(e){function n(n){var t;return void 0===n&&(n=!1),(t=e.call(this)||this).config={debug:!1},t.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},t.sseClient=void 0,t.serviceManager=void 0,t.configure=function(e){void 0!==e.debug&&(t.config.debug=e.debug),e.apiAddr&&(t.config.apiAddr=e.apiAddr),e.appKey&&(t.config.appKey=e.appKey)},t.sendRequest=function(e){return t.internalState.lastActivity=Date.now(),t.config.debug&&t.logRequest(e),function(e){try{return Promise.resolve(k?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(_)return console.log("isBrowser ",_),console.log("options ",e),Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:t.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:t.config.token?"Bearer "+t.config.token:""},data:e.data})},t.createRequestFunction=function(e,n){return function(o){return t.sendRequest({data:o,url:e,method:n})}},t.createRequestFunctionWithoutParams=function(e,n){return function(){return t.sendRequest({data:void 0,method:n,url:e})}},t.handleMessage=function(e){switch(t.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===e.dt.length?t.emit(exports.CbEvents.OnReceiveMessage,e.dt[0]):t.emit(exports.CbEvents.OnReceiveMessages,e.dt);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:t.internalState.isConnected=!0,t.emit(exports.CbEvents.OnConnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:t.internalState.isConnected=!0,t.emit(exports.CbEvents.OnReconnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:n=e.ev,Object.values(exports.CbEvents).includes(n)?(t.emit(e.ev,e.dt),j.includes(e.ev)&&(t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.sseClient&&(t.sseClient.close(),t.sseClient=void 0))):t.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var n},t.handleReconnectSuccess=function(){t.config.username&&(t.internalState.isConnected=!0,t.internalState.reconnectAttempts=0,t.config.debug&&console.log("SSE reconnection successful"),t.emit(exports.CbEvents.OnReconnected))},t.handleConnectionClosed=function(){t.internalState.isConnected=!1,t.config.debug&&console.log("SSE connection closed"),t.emit(exports.CbEvents.OnDisconnected)},t.login=function(e){try{return t.sseClient?Promise.resolve("login repeat"):t.config.apiAddr?t.config.appKey?(t.config.token=e.token,t.config.username=e.username,t.config.debug&&(console.log("login params",e),console.log("apiAddr",t.config.apiAddr)),Promise.resolve(t.user.login(e)).then(function(n){var o=n.code,r=n.data;return 0!=o?Promise.resolve("Login failed, Server error, error code is "+o):(t.sseClient=new c({url:t.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+t.config.appKey+"&random="+r,onMessage:t.handleMessage,onReconnectSuccess:t.handleReconnectSuccess,onConnectionClosed:t.handleConnectionClosed,token:e.token}),H(function(){return Promise.resolve(t.sseClient.connect()).then(function(e){return t.internalState.isLoggedIn=!0,e})},function(e){return t.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})):Promise.reject("No appKey configured. Please call configure() before login()."):Promise.reject("No apiAddr configured. Please call configure() before login().")}catch(e){return Promise.reject(e)}},t.logout=function(){try{return t.sseClient&&(t.sseClient.close(),t.sseClient=void 0),Promise.resolve(t.user.logout()).then(function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.config.username=void 0,t.config.token=void 0,e})}catch(e){return Promise.reject(e)}},t.internalUploadFile=function(e){try{return Promise.resolve(H(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+t.config.apiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:t.config.token?"Bearer "+t.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},t.uploadFile=function(e){var n=e.file;try{return Promise.resolve(t.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},t.sendTextMessage=function(e){return t.message.createTextMessage(e)},t.sendImageMessage=function(e){return t.message.createImageMessage(e)},t.getHistoryMessageList=function(e){return t.message.getHistoryMessageList(e)},t.getConversations=function(){return t.conversation.getConversations()},t.createGroup=function(e){return t.group.createGroup(e)},t.getGroupInfo=function(e){return t.group.getGroupInfo(e)},t.config.debug=n,t.serviceManager=new F(t),t}var t,s;s=e,(t=n).prototype=Object.create(s.prototype),t.prototype.constructor=t,o(t,s);var i,a,u=n.prototype;return u.getService=function(e){return this.serviceManager.get(e)},u.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},u.isLoggedIn=function(){return this.internalState.isLoggedIn},u.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},u.onMessage=function(e){var n=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return n.off(exports.CbEvents.OnReceiveMessage,e)}},u.onMessages=function(e){var n=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return n.off(exports.CbEvents.OnReceiveMessages,e)}},u.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,t),this.on(exports.CbEvents.OnDisconnected,o),function(){n.off(exports.CbEvents.OnConnected,t),n.off(exports.CbEvents.OnDisconnected,o)}},u.onKickedOffline=function(e){var n=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return n.off(exports.CbEvents.OnKickedOffline,e)}},i=n,(a=[{key:"message",get:function(){return this.getService(exports.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(exports.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(exports.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(exports.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}(i.prototype,a),Object.defineProperty(i,"prototype",{writable:!1}),i}(N);exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=D;
1
+ var e,n=require("event-source-polyfill");function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},t.apply(null,arguments)}function o(e,n){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},o(e,n)}function r(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var s,i,a,c=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=e.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{e.eventSource=new n.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(n){console.error("SSE connection error:",n),e.connected=!1,401===n.status||n.statusText&&n.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(n){try{console.log("SSE received message:",n.data);var t=JSON.parse(n.data);e.onMessageCallback&&e.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.addEventListener(t,o)});var r=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(r),s(e)}}catch(n){console.error("Failed to create EventSource:",n),e.handleReconnect(),o(n)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(s=exports.ErrorCode||(exports.ErrorCode={}))[s.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",s[s.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",s[s.UnknownError=10005]="UnknownError",s[s.LoginRepeatError=10102]="LoginRepeatError",exports.RequestApi=void 0,(i=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",i.Logout="/chat/member/logout",i.CreateGroup="CreateGroup",i.GetGroupInfo="/chat/group/info",i.GetAllConversationList="/chat/group/list",i.CreateTextMessage="/chat/message/push",i.GetHistoryMessageList="/chat/message/pull",i.UploadFile="/chat/member/upload",exports.CbEvents=void 0,(a=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",a.OnDisconnected="OnDisconnected",a.OnReconnecting="OnReconnecting",a.OnReconnected="OnReconnected",a.OnReconnectFailed="OnReconnectFailed",a.OnNetworkChange="OnNetworkChange",a.OnReceiveMessage="OnReceiveMessage",a.OnReceiveMessages="OnReceiveMessages",a.OnMessageSent="OnMessageSent",a.OnMessageFailed="OnMessageFailed",a.OnMessageRevoked="OnMessageRevoked",a.OnMessageDeleted="OnMessageDeleted",a.OnMessageRead="OnMessageRead",a.OnTypingStatusUpdate="OnTypingStatusUpdate",a.OnUserStatusChange="OnUserStatusChange",a.OnKickedOffline="OnKickedOffline",a.OnUserTokenInvalid="OnUserTokenInvalid",a.OnUserTokenExpired="OnUserTokenExpired",a.OnForceOffline="OnForceOffline",a.OnUserInfoUpdated="OnUserInfoUpdated",a.OnGroupCreated="OnGroupCreated",a.OnGroupInfoUpdated="OnGroupInfoUpdated",a.OnGroupDissolved="OnGroupDissolved",a.OnJoinGroup="OnJoinGroup",a.OnLeaveGroup="OnLeaveGroup",a.OnGroupMemberJoined="OnGroupMemberJoined",a.OnGroupMemberLeft="OnGroupMemberLeft",a.OnGroupMemberKicked="OnGroupMemberKicked",a.OnGroupOwnerChanged="OnGroupOwnerChanged",a.OnGroupAdminAdded="OnGroupAdminAdded",a.OnGroupAdminRemoved="OnGroupAdminRemoved",a.OnGroupMemberMuted="OnGroupMemberMuted",a.OnGroupMemberUnmuted="OnGroupMemberUnmuted",a.OnGroupAllMemberMuted="OnGroupAllMemberMuted",a.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",a.OnConversationCreated="OnConversationCreated",a.OnConversationDeleted="OnConversationDeleted",a.OnConversationUpdated="OnConversationUpdated",a.OnUnreadCountChanged="OnUnreadCountChanged",a.OnConversationPinned="OnConversationPinned",a.OnConversationUnpinned="OnConversationUnpinned",a.OnConversationMuted="OnConversationMuted",a.OnConversationUnmuted="OnConversationUnmuted",a.OnPongConn="OnPongConn",a.OnPongReConn="OnPongReConn",a.OnPongIdle="OnPongIdle",a.OnError="OnError",a.OnWarning="OnWarning",a.OnLog="OnLog";var u,d,l,p,g,v,f,m,h,O,S,E,M,C,x,G,A,b,R,T,P,y,N=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();exports.MessageReceiveOptType=void 0,(u=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[u.Nomal=0]="Nomal",u[u.NotReceive=1]="NotReceive",u[u.NotNotify=2]="NotNotify",exports.AllowType=void 0,(d=exports.AllowType||(exports.AllowType={}))[d.Allowed=0]="Allowed",d[d.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(l=exports.GroupType||(exports.GroupType={}))[l.Group=2]="Group",l[l.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(p=exports.GroupJoinSource||(exports.GroupJoinSource={}))[p.Invitation=2]="Invitation",p[p.Search=3]="Search",p[p.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(g=exports.GroupMemberRole||(exports.GroupMemberRole={}))[g.Nomal=20]="Nomal",g[g.Admin=60]="Admin",g[g.Owner=100]="Owner",exports.GroupVerificationType=void 0,(v=exports.GroupVerificationType||(exports.GroupVerificationType={}))[v.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",v[v.AllNeed=1]="AllNeed",v[v.AllNot=2]="AllNot",exports.Platform=void 0,(f=exports.Platform||(exports.Platform={}))[f.iOS=1]="iOS",f[f.Android=2]="Android",f[f.Windows=3]="Windows",f[f.MacOSX=4]="MacOSX",f[f.Web=5]="Web",f[f.Linux=7]="Linux",f[f.AndroidPad=8]="AndroidPad",f[f.iPad=9]="iPad",exports.LogLevel=void 0,(m=exports.LogLevel||(exports.LogLevel={}))[m.Debug=5]="Debug",m[m.Info=4]="Info",m[m.Warn=3]="Warn",m[m.Error=2]="Error",m[m.Fatal=1]="Fatal",m[m.Panic=0]="Panic",exports.ApplicationHandleResult=void 0,(h=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[h.Unprocessed=0]="Unprocessed",h[h.Agree=1]="Agree",h[h.Reject=-1]="Reject",exports.MessageType=void 0,(O=exports.MessageType||(exports.MessageType={}))[O.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",O[O.TextMessage=101]="TextMessage",O[O.PictureMessage=102]="PictureMessage",O[O.VoiceMessage=103]="VoiceMessage",O[O.VideoMessage=104]="VideoMessage",O[O.FileMessage=105]="FileMessage",O[O.AtTextMessage=106]="AtTextMessage",O[O.MergeMessage=107]="MergeMessage",O[O.CardMessage=108]="CardMessage",O[O.LocationMessage=109]="LocationMessage",O[O.CustomMessage=110]="CustomMessage",O[O.TypingMessage=113]="TypingMessage",O[O.QuoteMessage=114]="QuoteMessage",O[O.FaceMessage=115]="FaceMessage",O[O.FriendAdded=1201]="FriendAdded",O[O.OANotification=1400]="OANotification",O[O.GroupCreated=1501]="GroupCreated",O[O.MemberQuit=1504]="MemberQuit",O[O.GroupOwnerTransferred=1507]="GroupOwnerTransferred",O[O.MemberKicked=1508]="MemberKicked",O[O.MemberInvited=1509]="MemberInvited",O[O.MemberEnter=1510]="MemberEnter",O[O.GroupDismissed=1511]="GroupDismissed",O[O.GroupMemberMuted=1512]="GroupMemberMuted",O[O.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",O[O.GroupMuted=1514]="GroupMuted",O[O.GroupCancelMuted=1515]="GroupCancelMuted",O[O.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",O[O.GroupNameUpdated=1520]="GroupNameUpdated",O[O.BurnMessageChange=1701]="BurnMessageChange",O[O.RevokeMessage=2101]="RevokeMessage",exports.SessionType=void 0,(S=exports.SessionType||(exports.SessionType={}))[S.Single=1]="Single",S[S.Group=3]="Group",S[S.WorkingGroup=3]="WorkingGroup",S[S.Notification=4]="Notification",exports.GroupStatus=void 0,(E=exports.GroupStatus||(exports.GroupStatus={}))[E.Nomal=0]="Nomal",E[E.Baned=1]="Baned",E[E.Dismissed=2]="Dismissed",E[E.Muted=3]="Muted",exports.GroupAtType=void 0,(M=exports.GroupAtType||(exports.GroupAtType={}))[M.AtNormal=0]="AtNormal",M[M.AtMe=1]="AtMe",M[M.AtAll=2]="AtAll",M[M.AtAllAtMe=3]="AtAllAtMe",M[M.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(C=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[C.All=0]="All",C[C.Owner=1]="Owner",C[C.Admin=2]="Admin",C[C.Nomal=3]="Nomal",C[C.AdminAndNomal=4]="AdminAndNomal",C[C.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(x=exports.Relationship||(exports.Relationship={}))[x.isBlack=0]="isBlack",x[x.isFriend=1]="isFriend",exports.LoginStatus=void 0,(G=exports.LoginStatus||(exports.LoginStatus={}))[G.Logout=1]="Logout",G[G.Logging=2]="Logging",G[G.Logged=3]="Logged",exports.OnlineState=void 0,(A=exports.OnlineState||(exports.OnlineState={}))[A.Online=1]="Online",A[A.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(b=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[b.Readed=0]="Readed",b[b.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(R=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[R.ONE_ON_ONE=0]="ONE_ON_ONE",R[R.GROUP_CHAT=1]="GROUP_CHAT",R[R.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(T=exports.MSG_TYPE||(exports.MSG_TYPE={}))[T.TEXT=0]="TEXT",T[T.IMAGE=1]="IMAGE",T[T.FILE=2]="FILE",T[T.VIDEO=3]="VIDEO",T[T.LINK=4]="LINK",T[T.GIF=5]="GIF",exports.SSE_RESPONSE_TYPE=void 0,(P=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[P.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",P[P.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",P[P.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",P[P.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(y=exports.MessageSendStatus||(exports.MessageSendStatus={}))[y.Sending=1]="Sending",y[y.Succeed=2]="Succeed",y[y.Failed=3]="Failed";var k="undefined"!=typeof uni,_="undefined"!=typeof window,w=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,o,r,s){var i;void 0===o&&(o={});var a=t({},o,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,n)},n.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.TEXT,exports.RequestApi.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,n,"snapshot",e))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),U=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:exports.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),F=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case exports.ServiceName.USER:return new w(this.sdk);case exports.ServiceName.MESSAGE:return new L(this.sdk);case exports.ServiceName.CONVERSATION:return new U(this.sdk);case exports.ServiceName.GROUP:return new I(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function H(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var j=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired],D=/*#__PURE__*/function(e){function n(n){var o;return void 0===n&&(n=!1),(o=e.call(this)||this).config={debug:!1},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.sseClient=void 0,o.serviceManager=void 0,o.configure=function(e){void 0!==e.debug&&(o.config.debug=e.debug),e.apiAddr&&(o.config.apiAddr=e.apiAddr),e.appKey&&(o.config.appKey=e.appKey)},o.sendRequest=function(e){return o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e),function(e){try{return Promise.resolve(k?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(_)return console.log("isBrowser ",_),console.log("options ",e),Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:o.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:e.data})},o.createRequestFunction=function(e,n){return function(t){return o.sendRequest({data:t,url:e,method:n})}},o.createRequestFunctionWithoutParams=function(e,n){return function(){return o.sendRequest({data:void 0,method:n,url:e})}},o.handleMessage=function(e){switch(o.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===e.dt.length?o.emit(exports.CbEvents.OnReceiveMessage,e.dt[0]):o.emit(exports.CbEvents.OnReceiveMessages,e.dt);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:o.internalState.isConnected=!0,o.emit(exports.CbEvents.OnConnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:o.internalState.isConnected=!0,o.emit(exports.CbEvents.OnReconnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:n=e.ev,Object.values(exports.CbEvents).includes(n)?(o.emit(e.ev,e.dt),j.includes(e.ev)&&(o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.sseClient&&(o.sseClient.close(),o.sseClient=void 0))):o.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var n},o.handleReconnectSuccess=function(){o.config.username&&(o.internalState.isConnected=!0,o.internalState.reconnectAttempts=0,o.config.debug&&console.log("SSE reconnection successful"),o.emit(exports.CbEvents.OnReconnected))},o.handleConnectionClosed=function(){o.internalState.isConnected=!1,o.config.debug&&console.log("SSE connection closed"),o.emit(exports.CbEvents.OnDisconnected)},o.login=function(e){try{return o.sseClient?Promise.resolve("login repeat"):o.config.apiAddr?o.config.appKey?(o.config.token=e.token,o.config.username=e.username,o.config.debug&&(console.log("login params",e),console.log("apiAddr",o.config.apiAddr)),Promise.resolve(o.user.login(t({},e,{appKey:o.config.appKey}))).then(function(n){var t=n.code,r=n.data;return 0!=t?Promise.resolve("Login failed, Server error, error code is "+t):(o.sseClient=new c({url:o.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+o.config.appKey+"&random="+r,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,token:e.token}),H(function(){return Promise.resolve(o.sseClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,e})},function(e){return o.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})):Promise.reject("No appKey configured. Please call configure() before login()."):Promise.reject("No apiAddr configured. Please call configure() before login().")}catch(e){return Promise.reject(e)}},o.logout=function(){try{return o.sseClient&&(o.sseClient.close(),o.sseClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.config.username=void 0,o.config.token=void 0,e})}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(e){try{return Promise.resolve(H(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+o.config.apiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:o.config.token?"Bearer "+o.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(e){var n=e.file;try{return Promise.resolve(o.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e){return o.message.createTextMessage(e)},o.sendImageMessage=function(e){return o.message.createImageMessage(e)},o.getHistoryMessageList=function(e){return o.message.getHistoryMessageList(e)},o.getConversations=function(){return o.conversation.getConversations()},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.config.debug=n,o.serviceManager=new F(o),o}var s,i;i=e,(s=n).prototype=Object.create(i.prototype),s.prototype.constructor=s,o(s,i);var a,u,d=n.prototype;return d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},d.isLoggedIn=function(){return this.internalState.isLoggedIn},d.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},d.onMessage=function(e){var n=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return n.off(exports.CbEvents.OnReceiveMessage,e)}},d.onMessages=function(e){var n=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return n.off(exports.CbEvents.OnReceiveMessages,e)}},d.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,t),this.on(exports.CbEvents.OnDisconnected,o),function(){n.off(exports.CbEvents.OnConnected,t),n.off(exports.CbEvents.OnDisconnected,o)}},d.onKickedOffline=function(e){var n=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return n.off(exports.CbEvents.OnKickedOffline,e)}},a=n,(u=[{key:"message",get:function(){return this.getService(exports.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(exports.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(exports.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(exports.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}(a.prototype,u),Object.defineProperty(a,"prototype",{writable:!1}),a}(N);exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=D;
package/lib/index.umd.js CHANGED
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],n):n((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,n){function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},t.apply(null,arguments)}function o(e,n){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},o(e,n)}function r(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var i;e.ServiceName=void 0,(i=e.ServiceName||(e.ServiceName={})).MESSAGE="message",i.CONVERSATION="conversation",i.GROUP="group",i.USER="user";var s,a,c,u=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=e.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{e.eventSource=new n.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(n){console.error("SSE connection error:",n),e.connected=!1,401===n.status||n.statusText&&n.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(n){try{console.log("SSE received message:",n.data);var t=JSON.parse(n.data);e.onMessageCallback&&e.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.addEventListener(t,o)});var r=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},1e4),i=e._openHandler;e._openHandler=function(e){clearTimeout(r),i(e)}}catch(n){console.error("Failed to create EventSource:",n),e.handleReconnect(),o(n)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(s=e.ErrorCode||(e.ErrorCode={}))[s.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",s[s.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",s[s.UnknownError=10005]="UnknownError",s[s.LoginRepeatError=10102]="LoginRepeatError",e.RequestApi=void 0,(a=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",a.Logout="/chat/member/logout",a.CreateGroup="CreateGroup",a.GetGroupInfo="/chat/group/info",a.GetAllConversationList="/chat/group/list",a.CreateTextMessage="/chat/message/push",a.GetHistoryMessageList="/chat/message/pull",a.UploadFile="/chat/member/upload",e.CbEvents=void 0,(c=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",c.OnDisconnected="OnDisconnected",c.OnReconnecting="OnReconnecting",c.OnReconnected="OnReconnected",c.OnReconnectFailed="OnReconnectFailed",c.OnNetworkChange="OnNetworkChange",c.OnReceiveMessage="OnReceiveMessage",c.OnReceiveMessages="OnReceiveMessages",c.OnMessageSent="OnMessageSent",c.OnMessageFailed="OnMessageFailed",c.OnMessageRevoked="OnMessageRevoked",c.OnMessageDeleted="OnMessageDeleted",c.OnMessageRead="OnMessageRead",c.OnTypingStatusUpdate="OnTypingStatusUpdate",c.OnUserStatusChange="OnUserStatusChange",c.OnKickedOffline="OnKickedOffline",c.OnUserTokenInvalid="OnUserTokenInvalid",c.OnUserTokenExpired="OnUserTokenExpired",c.OnForceOffline="OnForceOffline",c.OnUserInfoUpdated="OnUserInfoUpdated",c.OnGroupCreated="OnGroupCreated",c.OnGroupInfoUpdated="OnGroupInfoUpdated",c.OnGroupDissolved="OnGroupDissolved",c.OnJoinGroup="OnJoinGroup",c.OnLeaveGroup="OnLeaveGroup",c.OnGroupMemberJoined="OnGroupMemberJoined",c.OnGroupMemberLeft="OnGroupMemberLeft",c.OnGroupMemberKicked="OnGroupMemberKicked",c.OnGroupOwnerChanged="OnGroupOwnerChanged",c.OnGroupAdminAdded="OnGroupAdminAdded",c.OnGroupAdminRemoved="OnGroupAdminRemoved",c.OnGroupMemberMuted="OnGroupMemberMuted",c.OnGroupMemberUnmuted="OnGroupMemberUnmuted",c.OnGroupAllMemberMuted="OnGroupAllMemberMuted",c.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",c.OnConversationCreated="OnConversationCreated",c.OnConversationDeleted="OnConversationDeleted",c.OnConversationUpdated="OnConversationUpdated",c.OnUnreadCountChanged="OnUnreadCountChanged",c.OnConversationPinned="OnConversationPinned",c.OnConversationUnpinned="OnConversationUnpinned",c.OnConversationMuted="OnConversationMuted",c.OnConversationUnmuted="OnConversationUnmuted",c.OnPongConn="OnPongConn",c.OnPongReConn="OnPongReConn",c.OnPongIdle="OnPongIdle",c.OnError="OnError",c.OnWarning="OnWarning",c.OnLog="OnLog";var d,l,g,p,v,f,m,h,O,S,E,M,C,b,G,A,R,T,P,y,N,k,_=/*#__PURE__*/function(){function n(){var n;this.events=((n={})[e.CbEvents.OnReceiveMessage]=[],n[e.CbEvents.OnReceiveMessages]=[],n)}var t=n.prototype;return t.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},t.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},t.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},n}();e.MessageReceiveOptType=void 0,(d=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[d.Nomal=0]="Nomal",d[d.NotReceive=1]="NotReceive",d[d.NotNotify=2]="NotNotify",e.AllowType=void 0,(l=e.AllowType||(e.AllowType={}))[l.Allowed=0]="Allowed",l[l.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(g=e.GroupType||(e.GroupType={}))[g.Group=2]="Group",g[g.WorkingGroup=2]="WorkingGroup",e.GroupJoinSource=void 0,(p=e.GroupJoinSource||(e.GroupJoinSource={}))[p.Invitation=2]="Invitation",p[p.Search=3]="Search",p[p.QrCode=4]="QrCode",e.GroupMemberRole=void 0,(v=e.GroupMemberRole||(e.GroupMemberRole={}))[v.Nomal=20]="Nomal",v[v.Admin=60]="Admin",v[v.Owner=100]="Owner",e.GroupVerificationType=void 0,(f=e.GroupVerificationType||(e.GroupVerificationType={}))[f.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",f[f.AllNeed=1]="AllNeed",f[f.AllNot=2]="AllNot",e.Platform=void 0,(m=e.Platform||(e.Platform={}))[m.iOS=1]="iOS",m[m.Android=2]="Android",m[m.Windows=3]="Windows",m[m.MacOSX=4]="MacOSX",m[m.Web=5]="Web",m[m.Linux=7]="Linux",m[m.AndroidPad=8]="AndroidPad",m[m.iPad=9]="iPad",e.LogLevel=void 0,(h=e.LogLevel||(e.LogLevel={}))[h.Debug=5]="Debug",h[h.Info=4]="Info",h[h.Warn=3]="Warn",h[h.Error=2]="Error",h[h.Fatal=1]="Fatal",h[h.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(O=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[O.Unprocessed=0]="Unprocessed",O[O.Agree=1]="Agree",O[O.Reject=-1]="Reject",e.MessageType=void 0,(S=e.MessageType||(e.MessageType={}))[S.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",S[S.TextMessage=101]="TextMessage",S[S.PictureMessage=102]="PictureMessage",S[S.VoiceMessage=103]="VoiceMessage",S[S.VideoMessage=104]="VideoMessage",S[S.FileMessage=105]="FileMessage",S[S.AtTextMessage=106]="AtTextMessage",S[S.MergeMessage=107]="MergeMessage",S[S.CardMessage=108]="CardMessage",S[S.LocationMessage=109]="LocationMessage",S[S.CustomMessage=110]="CustomMessage",S[S.TypingMessage=113]="TypingMessage",S[S.QuoteMessage=114]="QuoteMessage",S[S.FaceMessage=115]="FaceMessage",S[S.FriendAdded=1201]="FriendAdded",S[S.OANotification=1400]="OANotification",S[S.GroupCreated=1501]="GroupCreated",S[S.MemberQuit=1504]="MemberQuit",S[S.GroupOwnerTransferred=1507]="GroupOwnerTransferred",S[S.MemberKicked=1508]="MemberKicked",S[S.MemberInvited=1509]="MemberInvited",S[S.MemberEnter=1510]="MemberEnter",S[S.GroupDismissed=1511]="GroupDismissed",S[S.GroupMemberMuted=1512]="GroupMemberMuted",S[S.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",S[S.GroupMuted=1514]="GroupMuted",S[S.GroupCancelMuted=1515]="GroupCancelMuted",S[S.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",S[S.GroupNameUpdated=1520]="GroupNameUpdated",S[S.BurnMessageChange=1701]="BurnMessageChange",S[S.RevokeMessage=2101]="RevokeMessage",e.SessionType=void 0,(E=e.SessionType||(e.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",e.GroupStatus=void 0,(M=e.GroupStatus||(e.GroupStatus={}))[M.Nomal=0]="Nomal",M[M.Baned=1]="Baned",M[M.Dismissed=2]="Dismissed",M[M.Muted=3]="Muted",e.GroupAtType=void 0,(C=e.GroupAtType||(e.GroupAtType={}))[C.AtNormal=0]="AtNormal",C[C.AtMe=1]="AtMe",C[C.AtAll=2]="AtAll",C[C.AtAllAtMe=3]="AtAllAtMe",C[C.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(b=e.GroupMemberFilter||(e.GroupMemberFilter={}))[b.All=0]="All",b[b.Owner=1]="Owner",b[b.Admin=2]="Admin",b[b.Nomal=3]="Nomal",b[b.AdminAndNomal=4]="AdminAndNomal",b[b.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(G=e.Relationship||(e.Relationship={}))[G.isBlack=0]="isBlack",G[G.isFriend=1]="isFriend",e.LoginStatus=void 0,(A=e.LoginStatus||(e.LoginStatus={}))[A.Logout=1]="Logout",A[A.Logging=2]="Logging",A[A.Logged=3]="Logged",e.OnlineState=void 0,(R=e.OnlineState||(e.OnlineState={}))[R.Online=1]="Online",R[R.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(T=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[T.Readed=0]="Readed",T[T.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(P=e.GROUP_TYPE||(e.GROUP_TYPE={}))[P.ONE_ON_ONE=0]="ONE_ON_ONE",P[P.GROUP_CHAT=1]="GROUP_CHAT",P[P.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",e.MSG_TYPE=void 0,(y=e.MSG_TYPE||(e.MSG_TYPE={}))[y.TEXT=0]="TEXT",y[y.IMAGE=1]="IMAGE",y[y.FILE=2]="FILE",y[y.VIDEO=3]="VIDEO",y[y.LINK=4]="LINK",y[y.GIF=5]="GIF",e.SSE_RESPONSE_TYPE=void 0,(N=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[N.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",N[N.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",N[N.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",N[N.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(k=e.MessageSendStatus||(e.MessageSendStatus={}))[k.Sending=1]="Sending",k[k.Succeed=2]="Succeed",k[k.Failed=3]="Failed";var w="undefined"!=typeof uni,L="undefined"!=typeof window,U=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var t=n.prototype;return t.login=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:n,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},n}(),I=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var o=n.prototype;return o.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},o.createMessage=function(e,n,o,r,i){var s;void 0===o&&(o={});var a=t({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(a,n)},o.createTextMessage=function(n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,t,"text",n))}catch(e){return Promise.reject(e)}},o.createImageMessage=function(n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,t,"snapshot",n))}catch(e){return Promise.reject(e)}},o.getHistoryMessageList=function(n){var t=n.groupId,o=n.lastId,r=n.size,i=void 0===r?20:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:o,size:i},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},n}(),F=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}return n.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:e.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},n}(),x=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var t=n.prototype;return t.createGroup=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:n,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n}(),j=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.services={},this.sdk=e}var t=n.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(n){switch(n){case e.ServiceName.USER:return new U(this.sdk);case e.ServiceName.MESSAGE:return new I(this.sdk);case e.ServiceName.CONVERSATION:return new F(this.sdk);case e.ServiceName.GROUP:return new x(this.sdk);default:throw new Error("Unknown service: "+n)}},t.reset=function(){this.services={}},n}();function H(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var D=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired],q=/*#__PURE__*/function(n){function t(t){var o;return void 0===t&&(t=!1),(o=n.call(this)||this).config={debug:!1},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.sseClient=void 0,o.serviceManager=void 0,o.configure=function(e){void 0!==e.debug&&(o.config.debug=e.debug),e.apiAddr&&(o.config.apiAddr=e.apiAddr),e.appKey&&(o.config.appKey=e.appKey)},o.sendRequest=function(e){return o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e),function(e){try{return Promise.resolve(w?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(L)return console.log("isBrowser ",L),console.log("options ",e),Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:o.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:e.data})},o.createRequestFunction=function(e,n){return function(t){return o.sendRequest({data:t,url:e,method:n})}},o.createRequestFunctionWithoutParams=function(e,n){return function(){return o.sendRequest({data:void 0,method:n,url:e})}},o.handleMessage=function(n){switch(o.config.debug&&console.log("handleMessage response",n),n.ev){case e.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===n.dt.length?o.emit(e.CbEvents.OnReceiveMessage,n.dt[0]):o.emit(e.CbEvents.OnReceiveMessages,n.dt);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:o.internalState.isConnected=!0,o.emit(e.CbEvents.OnConnected);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:o.internalState.isConnected=!0,o.emit(e.CbEvents.OnReconnected);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:t=n.ev,Object.values(e.CbEvents).includes(t)?(o.emit(n.ev,n.dt),D.includes(n.ev)&&(o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.sseClient&&(o.sseClient.close(),o.sseClient=void 0))):o.config.debug&&console.warn("Unknown SSE event type:",n.ev)}var t},o.handleReconnectSuccess=function(){o.config.username&&(o.internalState.isConnected=!0,o.internalState.reconnectAttempts=0,o.config.debug&&console.log("SSE reconnection successful"),o.emit(e.CbEvents.OnReconnected))},o.handleConnectionClosed=function(){o.internalState.isConnected=!1,o.config.debug&&console.log("SSE connection closed"),o.emit(e.CbEvents.OnDisconnected)},o.login=function(e){try{return o.sseClient?Promise.resolve("login repeat"):o.config.apiAddr?o.config.appKey?(o.config.token=e.token,o.config.username=e.username,o.config.debug&&(console.log("login params",e),console.log("apiAddr",o.config.apiAddr)),Promise.resolve(o.user.login(e)).then(function(n){var t=n.code,r=n.data;return 0!=t?Promise.resolve("Login failed, Server error, error code is "+t):(o.sseClient=new u({url:o.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+o.config.appKey+"&random="+r,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,token:e.token}),H(function(){return Promise.resolve(o.sseClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,e})},function(e){return o.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})):Promise.reject("No appKey configured. Please call configure() before login()."):Promise.reject("No apiAddr configured. Please call configure() before login().")}catch(e){return Promise.reject(e)}},o.logout=function(){try{return o.sseClient&&(o.sseClient.close(),o.sseClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.config.username=void 0,o.config.token=void 0,e})}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(n){try{return Promise.resolve(H(function(){var t=new FormData;return t.append("file",n),t.append("filename",n.name),Promise.resolve(fetch(""+o.config.apiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:o.config.token?"Bearer "+o.config.token:""},body:t})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(n){var t=n.file;try{return Promise.resolve(o.internalUploadFile(t)).then(function(n){var t,o=n.url,r=n.error;return{data:{url:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e){return o.message.createTextMessage(e)},o.sendImageMessage=function(e){return o.message.createImageMessage(e)},o.getHistoryMessageList=function(e){return o.message.getHistoryMessageList(e)},o.getConversations=function(){return o.conversation.getConversations()},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.config.debug=t,o.serviceManager=new j(o),o}var i,s;s=n,(i=t).prototype=Object.create(s.prototype),i.prototype.constructor=i,o(i,s);var a,c,d=t.prototype;return d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},d.isLoggedIn=function(){return this.internalState.isLoggedIn},d.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},d.onMessage=function(n){var t=this;return this.on(e.CbEvents.OnReceiveMessage,n),function(){return t.off(e.CbEvents.OnReceiveMessage,n)}},d.onMessages=function(n){var t=this;return this.on(e.CbEvents.OnReceiveMessages,n),function(){return t.off(e.CbEvents.OnReceiveMessages,n)}},d.onConnectionChange=function(n){var t=this,o=function(){return n(!0)},r=function(){return n(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){t.off(e.CbEvents.OnConnected,o),t.off(e.CbEvents.OnDisconnected,r)}},d.onKickedOffline=function(n){var t=this;return this.on(e.CbEvents.OnKickedOffline,n),function(){return t.off(e.CbEvents.OnKickedOffline,n)}},a=t,(c=[{key:"message",get:function(){return this.getService(e.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(e.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(e.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(e.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(_);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=q});
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],n):n((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,n){function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},t.apply(null,arguments)}function o(e,n){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},o(e,n)}function r(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var i;e.ServiceName=void 0,(i=e.ServiceName||(e.ServiceName={})).MESSAGE="message",i.CONVERSATION="conversation",i.GROUP="group",i.USER="user";var s,a,c,u=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=e.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{e.eventSource=new n.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(n){console.error("SSE connection error:",n),e.connected=!1,401===n.status||n.statusText&&n.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(n){try{console.log("SSE received message:",n.data);var t=JSON.parse(n.data);e.onMessageCallback&&e.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.addEventListener(t,o)});var r=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},1e4),i=e._openHandler;e._openHandler=function(e){clearTimeout(r),i(e)}}catch(n){console.error("Failed to create EventSource:",n),e.handleReconnect(),o(n)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(s=e.ErrorCode||(e.ErrorCode={}))[s.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",s[s.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",s[s.UnknownError=10005]="UnknownError",s[s.LoginRepeatError=10102]="LoginRepeatError",e.RequestApi=void 0,(a=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",a.Logout="/chat/member/logout",a.CreateGroup="CreateGroup",a.GetGroupInfo="/chat/group/info",a.GetAllConversationList="/chat/group/list",a.CreateTextMessage="/chat/message/push",a.GetHistoryMessageList="/chat/message/pull",a.UploadFile="/chat/member/upload",e.CbEvents=void 0,(c=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",c.OnDisconnected="OnDisconnected",c.OnReconnecting="OnReconnecting",c.OnReconnected="OnReconnected",c.OnReconnectFailed="OnReconnectFailed",c.OnNetworkChange="OnNetworkChange",c.OnReceiveMessage="OnReceiveMessage",c.OnReceiveMessages="OnReceiveMessages",c.OnMessageSent="OnMessageSent",c.OnMessageFailed="OnMessageFailed",c.OnMessageRevoked="OnMessageRevoked",c.OnMessageDeleted="OnMessageDeleted",c.OnMessageRead="OnMessageRead",c.OnTypingStatusUpdate="OnTypingStatusUpdate",c.OnUserStatusChange="OnUserStatusChange",c.OnKickedOffline="OnKickedOffline",c.OnUserTokenInvalid="OnUserTokenInvalid",c.OnUserTokenExpired="OnUserTokenExpired",c.OnForceOffline="OnForceOffline",c.OnUserInfoUpdated="OnUserInfoUpdated",c.OnGroupCreated="OnGroupCreated",c.OnGroupInfoUpdated="OnGroupInfoUpdated",c.OnGroupDissolved="OnGroupDissolved",c.OnJoinGroup="OnJoinGroup",c.OnLeaveGroup="OnLeaveGroup",c.OnGroupMemberJoined="OnGroupMemberJoined",c.OnGroupMemberLeft="OnGroupMemberLeft",c.OnGroupMemberKicked="OnGroupMemberKicked",c.OnGroupOwnerChanged="OnGroupOwnerChanged",c.OnGroupAdminAdded="OnGroupAdminAdded",c.OnGroupAdminRemoved="OnGroupAdminRemoved",c.OnGroupMemberMuted="OnGroupMemberMuted",c.OnGroupMemberUnmuted="OnGroupMemberUnmuted",c.OnGroupAllMemberMuted="OnGroupAllMemberMuted",c.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",c.OnConversationCreated="OnConversationCreated",c.OnConversationDeleted="OnConversationDeleted",c.OnConversationUpdated="OnConversationUpdated",c.OnUnreadCountChanged="OnUnreadCountChanged",c.OnConversationPinned="OnConversationPinned",c.OnConversationUnpinned="OnConversationUnpinned",c.OnConversationMuted="OnConversationMuted",c.OnConversationUnmuted="OnConversationUnmuted",c.OnPongConn="OnPongConn",c.OnPongReConn="OnPongReConn",c.OnPongIdle="OnPongIdle",c.OnError="OnError",c.OnWarning="OnWarning",c.OnLog="OnLog";var d,l,g,p,v,f,m,h,O,S,E,M,C,b,G,A,R,T,y,P,N,k,_=/*#__PURE__*/function(){function n(){var n;this.events=((n={})[e.CbEvents.OnReceiveMessage]=[],n[e.CbEvents.OnReceiveMessages]=[],n)}var t=n.prototype;return t.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},t.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},t.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},n}();e.MessageReceiveOptType=void 0,(d=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[d.Nomal=0]="Nomal",d[d.NotReceive=1]="NotReceive",d[d.NotNotify=2]="NotNotify",e.AllowType=void 0,(l=e.AllowType||(e.AllowType={}))[l.Allowed=0]="Allowed",l[l.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(g=e.GroupType||(e.GroupType={}))[g.Group=2]="Group",g[g.WorkingGroup=2]="WorkingGroup",e.GroupJoinSource=void 0,(p=e.GroupJoinSource||(e.GroupJoinSource={}))[p.Invitation=2]="Invitation",p[p.Search=3]="Search",p[p.QrCode=4]="QrCode",e.GroupMemberRole=void 0,(v=e.GroupMemberRole||(e.GroupMemberRole={}))[v.Nomal=20]="Nomal",v[v.Admin=60]="Admin",v[v.Owner=100]="Owner",e.GroupVerificationType=void 0,(f=e.GroupVerificationType||(e.GroupVerificationType={}))[f.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",f[f.AllNeed=1]="AllNeed",f[f.AllNot=2]="AllNot",e.Platform=void 0,(m=e.Platform||(e.Platform={}))[m.iOS=1]="iOS",m[m.Android=2]="Android",m[m.Windows=3]="Windows",m[m.MacOSX=4]="MacOSX",m[m.Web=5]="Web",m[m.Linux=7]="Linux",m[m.AndroidPad=8]="AndroidPad",m[m.iPad=9]="iPad",e.LogLevel=void 0,(h=e.LogLevel||(e.LogLevel={}))[h.Debug=5]="Debug",h[h.Info=4]="Info",h[h.Warn=3]="Warn",h[h.Error=2]="Error",h[h.Fatal=1]="Fatal",h[h.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(O=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[O.Unprocessed=0]="Unprocessed",O[O.Agree=1]="Agree",O[O.Reject=-1]="Reject",e.MessageType=void 0,(S=e.MessageType||(e.MessageType={}))[S.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",S[S.TextMessage=101]="TextMessage",S[S.PictureMessage=102]="PictureMessage",S[S.VoiceMessage=103]="VoiceMessage",S[S.VideoMessage=104]="VideoMessage",S[S.FileMessage=105]="FileMessage",S[S.AtTextMessage=106]="AtTextMessage",S[S.MergeMessage=107]="MergeMessage",S[S.CardMessage=108]="CardMessage",S[S.LocationMessage=109]="LocationMessage",S[S.CustomMessage=110]="CustomMessage",S[S.TypingMessage=113]="TypingMessage",S[S.QuoteMessage=114]="QuoteMessage",S[S.FaceMessage=115]="FaceMessage",S[S.FriendAdded=1201]="FriendAdded",S[S.OANotification=1400]="OANotification",S[S.GroupCreated=1501]="GroupCreated",S[S.MemberQuit=1504]="MemberQuit",S[S.GroupOwnerTransferred=1507]="GroupOwnerTransferred",S[S.MemberKicked=1508]="MemberKicked",S[S.MemberInvited=1509]="MemberInvited",S[S.MemberEnter=1510]="MemberEnter",S[S.GroupDismissed=1511]="GroupDismissed",S[S.GroupMemberMuted=1512]="GroupMemberMuted",S[S.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",S[S.GroupMuted=1514]="GroupMuted",S[S.GroupCancelMuted=1515]="GroupCancelMuted",S[S.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",S[S.GroupNameUpdated=1520]="GroupNameUpdated",S[S.BurnMessageChange=1701]="BurnMessageChange",S[S.RevokeMessage=2101]="RevokeMessage",e.SessionType=void 0,(E=e.SessionType||(e.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",e.GroupStatus=void 0,(M=e.GroupStatus||(e.GroupStatus={}))[M.Nomal=0]="Nomal",M[M.Baned=1]="Baned",M[M.Dismissed=2]="Dismissed",M[M.Muted=3]="Muted",e.GroupAtType=void 0,(C=e.GroupAtType||(e.GroupAtType={}))[C.AtNormal=0]="AtNormal",C[C.AtMe=1]="AtMe",C[C.AtAll=2]="AtAll",C[C.AtAllAtMe=3]="AtAllAtMe",C[C.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(b=e.GroupMemberFilter||(e.GroupMemberFilter={}))[b.All=0]="All",b[b.Owner=1]="Owner",b[b.Admin=2]="Admin",b[b.Nomal=3]="Nomal",b[b.AdminAndNomal=4]="AdminAndNomal",b[b.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(G=e.Relationship||(e.Relationship={}))[G.isBlack=0]="isBlack",G[G.isFriend=1]="isFriend",e.LoginStatus=void 0,(A=e.LoginStatus||(e.LoginStatus={}))[A.Logout=1]="Logout",A[A.Logging=2]="Logging",A[A.Logged=3]="Logged",e.OnlineState=void 0,(R=e.OnlineState||(e.OnlineState={}))[R.Online=1]="Online",R[R.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(T=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[T.Readed=0]="Readed",T[T.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(y=e.GROUP_TYPE||(e.GROUP_TYPE={}))[y.ONE_ON_ONE=0]="ONE_ON_ONE",y[y.GROUP_CHAT=1]="GROUP_CHAT",y[y.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",e.MSG_TYPE=void 0,(P=e.MSG_TYPE||(e.MSG_TYPE={}))[P.TEXT=0]="TEXT",P[P.IMAGE=1]="IMAGE",P[P.FILE=2]="FILE",P[P.VIDEO=3]="VIDEO",P[P.LINK=4]="LINK",P[P.GIF=5]="GIF",e.SSE_RESPONSE_TYPE=void 0,(N=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[N.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",N[N.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",N[N.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",N[N.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(k=e.MessageSendStatus||(e.MessageSendStatus={}))[k.Sending=1]="Sending",k[k.Succeed=2]="Succeed",k[k.Failed=3]="Failed";var w="undefined"!=typeof uni,L="undefined"!=typeof window,U=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var t=n.prototype;return t.login=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:n,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},n}(),I=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var o=n.prototype;return o.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},o.createMessage=function(e,n,o,r,i){var s;void 0===o&&(o={});var a=t({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(a,n)},o.createTextMessage=function(n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,t,"text",n))}catch(e){return Promise.reject(e)}},o.createImageMessage=function(n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,t,"snapshot",n))}catch(e){return Promise.reject(e)}},o.getHistoryMessageList=function(n){var t=n.groupId,o=n.lastId,r=n.size,i=void 0===r?20:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:o,size:i},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},n}(),F=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}return n.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:e.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},n}(),x=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var t=n.prototype;return t.createGroup=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:n,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n}(),j=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.services={},this.sdk=e}var t=n.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(n){switch(n){case e.ServiceName.USER:return new U(this.sdk);case e.ServiceName.MESSAGE:return new I(this.sdk);case e.ServiceName.CONVERSATION:return new F(this.sdk);case e.ServiceName.GROUP:return new x(this.sdk);default:throw new Error("Unknown service: "+n)}},t.reset=function(){this.services={}},n}();function H(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var D=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired],q=/*#__PURE__*/function(n){function i(o){var r;return void 0===o&&(o=!1),(r=n.call(this)||this).config={debug:!1},r.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},r.sseClient=void 0,r.serviceManager=void 0,r.configure=function(e){void 0!==e.debug&&(r.config.debug=e.debug),e.apiAddr&&(r.config.apiAddr=e.apiAddr),e.appKey&&(r.config.appKey=e.appKey)},r.sendRequest=function(e){return r.internalState.lastActivity=Date.now(),r.config.debug&&r.logRequest(e),function(e){try{return Promise.resolve(w?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(L)return console.log("isBrowser ",L),console.log("options ",e),Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:r.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:r.config.token?"Bearer "+r.config.token:""},data:e.data})},r.createRequestFunction=function(e,n){return function(t){return r.sendRequest({data:t,url:e,method:n})}},r.createRequestFunctionWithoutParams=function(e,n){return function(){return r.sendRequest({data:void 0,method:n,url:e})}},r.handleMessage=function(n){switch(r.config.debug&&console.log("handleMessage response",n),n.ev){case e.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===n.dt.length?r.emit(e.CbEvents.OnReceiveMessage,n.dt[0]):r.emit(e.CbEvents.OnReceiveMessages,n.dt);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:r.internalState.isConnected=!0,r.emit(e.CbEvents.OnConnected);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:r.internalState.isConnected=!0,r.emit(e.CbEvents.OnReconnected);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:t=n.ev,Object.values(e.CbEvents).includes(t)?(r.emit(n.ev,n.dt),D.includes(n.ev)&&(r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,r.sseClient&&(r.sseClient.close(),r.sseClient=void 0))):r.config.debug&&console.warn("Unknown SSE event type:",n.ev)}var t},r.handleReconnectSuccess=function(){r.config.username&&(r.internalState.isConnected=!0,r.internalState.reconnectAttempts=0,r.config.debug&&console.log("SSE reconnection successful"),r.emit(e.CbEvents.OnReconnected))},r.handleConnectionClosed=function(){r.internalState.isConnected=!1,r.config.debug&&console.log("SSE connection closed"),r.emit(e.CbEvents.OnDisconnected)},r.login=function(e){try{return r.sseClient?Promise.resolve("login repeat"):r.config.apiAddr?r.config.appKey?(r.config.token=e.token,r.config.username=e.username,r.config.debug&&(console.log("login params",e),console.log("apiAddr",r.config.apiAddr)),Promise.resolve(r.user.login(t({},e,{appKey:r.config.appKey}))).then(function(n){var t=n.code,o=n.data;return 0!=t?Promise.resolve("Login failed, Server error, error code is "+t):(r.sseClient=new u({url:r.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+r.config.appKey+"&random="+o,onMessage:r.handleMessage,onReconnectSuccess:r.handleReconnectSuccess,onConnectionClosed:r.handleConnectionClosed,token:e.token}),H(function(){return Promise.resolve(r.sseClient.connect()).then(function(e){return r.internalState.isLoggedIn=!0,e})},function(e){return r.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})):Promise.reject("No appKey configured. Please call configure() before login()."):Promise.reject("No apiAddr configured. Please call configure() before login().")}catch(e){return Promise.reject(e)}},r.logout=function(){try{return r.sseClient&&(r.sseClient.close(),r.sseClient=void 0),Promise.resolve(r.user.logout()).then(function(e){return r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,r.config.username=void 0,r.config.token=void 0,e})}catch(e){return Promise.reject(e)}},r.internalUploadFile=function(n){try{return Promise.resolve(H(function(){var t=new FormData;return t.append("file",n),t.append("filename",n.name),Promise.resolve(fetch(""+r.config.apiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:r.config.token?"Bearer "+r.config.token:""},body:t})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},r.uploadFile=function(n){var t=n.file;try{return Promise.resolve(r.internalUploadFile(t)).then(function(n){var t,o=n.url,r=n.error;return{data:{url:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},r.sendTextMessage=function(e){return r.message.createTextMessage(e)},r.sendImageMessage=function(e){return r.message.createImageMessage(e)},r.getHistoryMessageList=function(e){return r.message.getHistoryMessageList(e)},r.getConversations=function(){return r.conversation.getConversations()},r.createGroup=function(e){return r.group.createGroup(e)},r.getGroupInfo=function(e){return r.group.getGroupInfo(e)},r.config.debug=o,r.serviceManager=new j(r),r}var s,a;a=n,(s=i).prototype=Object.create(a.prototype),s.prototype.constructor=s,o(s,a);var c,d,l=i.prototype;return l.getService=function(e){return this.serviceManager.get(e)},l.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},l.isLoggedIn=function(){return this.internalState.isLoggedIn},l.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},l.onMessage=function(n){var t=this;return this.on(e.CbEvents.OnReceiveMessage,n),function(){return t.off(e.CbEvents.OnReceiveMessage,n)}},l.onMessages=function(n){var t=this;return this.on(e.CbEvents.OnReceiveMessages,n),function(){return t.off(e.CbEvents.OnReceiveMessages,n)}},l.onConnectionChange=function(n){var t=this,o=function(){return n(!0)},r=function(){return n(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){t.off(e.CbEvents.OnConnected,o),t.off(e.CbEvents.OnDisconnected,r)}},l.onKickedOffline=function(n){var t=this;return this.on(e.CbEvents.OnKickedOffline,n),function(){return t.off(e.CbEvents.OnKickedOffline,n)}},c=i,(d=[{key:"message",get:function(){return this.getService(e.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(e.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(e.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(e.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}(c.prototype,d),Object.defineProperty(c,"prototype",{writable:!1}),c}(_);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=q});
@@ -3,6 +3,7 @@ import type { GroupJoinSource, GroupMemberFilter, GroupMemberRole, MessageReceiv
3
3
  export type LoginParams = {
4
4
  username: string;
5
5
  token: string;
6
+ appKey: string;
6
7
  };
7
8
  export type SetSelfInfoParams = Partial<SelfUserInfo>;
8
9
  export type GetUserInfoWithCacheParams = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "v1.0.21",
3
+ "version": "v1.0.22",
4
4
  "description": "Sim SDK for Web",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",