sim-sdk-web 1.0.32 → 1.0.33
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 +1 -1
- package/lib/index.js +1 -1
- package/lib/index.umd.js +1 -1
- package/lib/types/entity.d.ts +4 -0
- package/package.json +1 -1
package/lib/index.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventSourcePolyfill as e}from"event-source-polyfill";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function s(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function t(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 n=t.prototype;return n.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(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t._openHandler=function(e){console.log("SSE connection established"),t.connected=!0,t.reconnectAttempts>0&&t.onReconnectSuccessCallback&&t.onReconnectSuccessCallback(),t.reconnectAttempts=0,t.reconnectTimeout=5e3,n("SSE connect successful!")},t._errorHandler=function(e){console.error("SSE connection error:",e),t.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(t.cleanup(),t.notifyConnectionClosed(!0)):t.handleReconnect(),t.connected||r(new Error("SSE connect error"))},t._messageHandler=function(e){try{console.log("SSE received message:",e.data);var n=JSON.parse(e.data);t.onMessageCallback&&t.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},t.eventSource.addEventListener("open",t._openHandler),t.eventSource.addEventListener("error",t._errorHandler),t.eventSource.addEventListener("message",t._messageHandler),t.handlers.forEach(function(e,n){var r=t._customHandlers.get(n);r&&t.eventSource&&t.eventSource.addEventListener(n,r)});var o=setTimeout(function(){t.connected||(r(new Error("Connection timeout")),t.handleReconnect())},1e4),s=t._openHandler;t._openHandler=function(e){clearTimeout(o),s(e)}}catch(e){console.error("Failed to create EventSource:",e),t.handleReconnect(),r(e)}})},n.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")},n.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)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},t}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(a||(a={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.GetAllConversationList="/chat/group/list",e.MarkConversationMessageAsRead="/chat/group/lastRead",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/img/upload"}(c||(c={})),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.OnMessagesListLoaded="OnMessagesListLoaded",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.OnConversationListUpdated="OnConversationListUpdated",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"}(u||(u={}));var l,g,h,f,v,p,m,M,O,C,S,E,A,G,T,I,b,y,N,R,P,k,_=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveMessages]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.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"}(l||(l={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(g||(g={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(h||(h={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(f||(f={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(v||(v={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(p||(p={})),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"}(m||(m={})),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"}(O||(O={})),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"}(C||(C={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(S||(S={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(E||(E={})),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"}(A||(A={})),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"}(G||(G={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(T||(T={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(I||(I={})),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"}(y||(y={})),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"}(N||(N={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.AUDIO=3]="AUDIO",e[e.VIDEO=4]="VIDEO",e[e.LINK=5]="LINK",e[e.GIF=6]="GIF",e[e.OPTION=7]="OPTION",e[e.EMOJI=8]="EMOJI",e[e.CUSTOM=100]="CUSTOM"}(R||(R={})),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"}(k||(k={}));var L={NORMAL:0,EDITED:1,DELETED:2},U="undefined"!=typeof uni,w="undefined"!=typeof window,F="simsdk_",j={CONVERSATIONS:F+"conversations",GROUP_MESSAGES:F+"group_messages",USER_INFO:F+"user_info",META_INFO:F+"meta"},x={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},D=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=i,this.config=r({},x,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=r({},e):(this.conversationCache.push(r({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e){var t=e.groupId;if(!t)return!1;var n=this.conversationCache.findIndex(function(e){return e.id===t});return n>=0&&(this.conversationCache[n].latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0)},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.id===e.id});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,r=this,o={},s=n(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=r.groupMessageCache[d].findIndex(function(t){return t.id===e.id});t>=0?r.groupMessageCache[d][t]=e:r.groupMessageCache[d].push(e)},f=n(l);!(g=f()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(j.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(j.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(j.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(j.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(j.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(j.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(j.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(j.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(j.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=j.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(j.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(F)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=r({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,o,s){var i;void 0===n&&(n={});var a=r({},n,((i={msgType:e})[o]=s,i.status=0,i));return this.sendMessage(a,t)},t.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.TEXT,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.IMAGE,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.FILE,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.VIDEO,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.LINK,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.GIF,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.OPTION,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.EMOJI,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.CUSTOM,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),J=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),q=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case i.USER:return new H(this.sdk);case i.MESSAGE:return new V(this.sdk);case i.CONVERSATION:return new K(this.sdk);case i.GROUP:return new J(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function z(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var X=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],W=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.sseClient=void 0,n.serviceManager=void 0,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.appKey&&(n.config.appKey=e.appKey)},n.sendRequest=function(e){n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(U?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(e)}})}):function(){if(w)return console.log("isBrowser ",w),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,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case P.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(u.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){return n.updateMessageCache(e)}),n.emit(u.OnReceiveMessages,r)}break;case P.EVENT_PONG_CONN:n.internalState.isConnected=!0,n.emit(u.OnConnected);break;case P.EVENT_PONG_RE_CONN:n.internalState.isConnected=!0,n.emit(u.OnReconnected);break;case P.EVENT_PONG_IDLE:break;default:o=e.ev,Object.values(u).includes(o)?(n.emit(e.ev,e.dt),X.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(u.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(u.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");n.config.token=e.token,n.config.username=e.username,n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var t=n.cacheManager.getConversations();return t.length>0&&n.emit(u.OnConversationListUpdated,t),Promise.resolve(n.user.login(e)).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),z(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.sseClient&&(n.sseClient.close(),n.sseClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{var t=z(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var o=t.data;if(0===t.code&&o){var s=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var i=o.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),d=[].concat(s,c);n.cacheManager.setConversations(d)}var l=r({},o,{records:n.cacheManager.getConversations()});n.emit(u.OnConversationListUpdated,l)}else{var g=n.cacheManager.getConversations();g.length>0&&n.emit(u.OnConversationListUpdated,g)}})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();t.length>0&&n.emit(u.OnConversationListUpdated,t)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(z(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.apiAddr+c.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.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){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.url,r=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t){return n.message.createTextMessage(e,t)},n.sendImageMessage=function(e,t){return n.message.createImageMessage(e,t)},n.sendFileMessage=function(e,t){return n.message.createFileMessage(e,t)},n.sendVideoMessage=function(e,t){return n.message.createVideoMessage(e,t)},n.sendLinkMessage=function(e,t){return n.message.createLinkMessage(e,t)},n.sendGifMessage=function(e,t){return n.message.createGifMessage(e,t)},n.sendOptionMessage=function(e,t){return n.message.createOptionMessage(e,t)},n.sendEmojiMessage=function(e,t){return n.message.createEmojiMessage(e,t)},n.sendCustomMessage=function(e,t){return n.message.createCustomMessage(e,t)},n.getHistoryMessageList=function(e){try{var t=z(function(){e.groupId&&n.cacheManager.markConversationAsActive(e.groupId);var t=[];if(e.groupId&&(t=n.cacheManager.getGroupMessages(e.groupId)),t.length>0&&""===e.lastId){var o=t.slice(0,e.size||20);n.emit(u.OnMessagesListLoaded,{list:o,groupId:e.groupId})}return Promise.resolve(n.message.getHistoryMessageList(e)).then(function(o){var s=o.data;if(0===o.code&&s)e.groupId&&n.cacheManager.addGroupMessages(s.groupChatList||[]),n.emit(u.OnMessagesListLoaded,r({},s,{isFromCache:!1,groupId:e.groupId}));else if(t.length>0&&!(""===e.lastId&&t.length>0)){var i=t.slice(0,0+(e.size||20));n.emit(u.OnMessagesListLoaded,{list:i,groupId:e.groupId})}})},function(t){console.error("Failed to get history messages:",t);var r=[];if(e.groupId&&(r=n.cacheManager.getGroupMessages(e.groupId)),r.length>0){var o=r.slice(0,0+(e.size||20));n.emit(u.OnMessagesListLoaded,{list:o,groupId:e.groupId,error:t.message})}});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.createGroup=function(e){return n.group.createGroup(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.config.debug=t,n.cacheManager=new D({persistEnabled:!0,debug:t}),n.serviceManager=new q(n),n}var n,l;l=e,(n=t).prototype=Object.create(l.prototype),n.prototype.constructor=n,o(n,l);var g,h,f=t.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){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.groupCollapsed("%c📦 Request Payload","color: #555; font-weight: bold;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.4;",JSON.stringify(e.data,null,2)),console.groupEnd())},f.initializeConversationCache=function(){try{var e=this,t=z(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.data;0===t.code&&n&&n.records&&(e.cacheManager.setConversations(n.records),e.emit(u.OnConversationListUpdated,n),e.config.debug&&console.log("Conversation cache initialized with",n.records.length,"conversations"))})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},f.onMessage=function(e){var t=this;return this.on(u.OnReceiveMessage,e),function(){return t.off(u.OnReceiveMessage,e)}},f.onMessages=function(e){var t=this;return this.on(u.OnReceiveMessages,e),function(){return t.off(u.OnReceiveMessages,e)}},f.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(u.OnConnected,n),this.on(u.OnDisconnected,r),function(){t.off(u.OnConnected,n),t.off(u.OnDisconnected,r)}},f.onKickedOffline=function(e){var t=this;return this.on(u.OnKickedOffline,e),function(){return t.off(u.OnKickedOffline,e)}},f.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e)){var t=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,t)}},f.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},g=t,(h=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.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,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}(g.prototype,h),Object.defineProperty(g,"prototype",{writable:!1}),g}(_);export{g as AllowType,O as ApplicationHandleResult,u as CbEvents,a as ErrorCode,N as GROUP_TYPE,A as GroupAtType,f as GroupJoinSource,G as GroupMemberFilter,v as GroupMemberRole,y as GroupMessageReaderFilter,E as GroupStatus,h as GroupType,p as GroupVerificationType,M as LogLevel,I as LoginStatus,R as MSG_TYPE,l as MessageReceiveOptType,k as MessageSendStatus,L as MessageStatus,C as MessageType,b as OnlineState,m as Platform,T as Relationship,c as RequestApi,W as SIMSDK,P as SSE_RESPONSE_TYPE,i as ServiceName,S as SessionType};
|
|
1
|
+
import{EventSourcePolyfill as e}from"event-source-polyfill";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function n(e,n){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,n){if(e){if("string"==typeof e)return t(e,n);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},o.apply(null,arguments)}function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function s(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function t(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 n=t.prototype;return n.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(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t._openHandler=function(e){console.log("SSE connection established"),t.connected=!0,t.reconnectAttempts>0&&t.onReconnectSuccessCallback&&t.onReconnectSuccessCallback(),t.reconnectAttempts=0,t.reconnectTimeout=5e3,n("SSE connect successful!")},t._errorHandler=function(e){console.error("SSE connection error:",e),t.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(t.cleanup(),t.notifyConnectionClosed(!0)):t.handleReconnect(),t.connected||o(new Error("SSE connect error"))},t._messageHandler=function(e){try{console.log("SSE received message:",e.data);var n=JSON.parse(e.data);t.onMessageCallback&&t.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},t.eventSource.addEventListener("open",t._openHandler),t.eventSource.addEventListener("error",t._errorHandler),t.eventSource.addEventListener("message",t._messageHandler),t.handlers.forEach(function(e,n){var o=t._customHandlers.get(n);o&&t.eventSource&&t.eventSource.addEventListener(n,o)});var r=setTimeout(function(){t.connected||(o(new Error("Connection timeout")),t.handleReconnect())},1e4),s=t._openHandler;t._openHandler=function(e){clearTimeout(r),s(e)}}catch(e){console.error("Failed to create EventSource:",e),t.handleReconnect(),o(e)}})},n.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")},n.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)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},t}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(a||(a={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.GetAllConversationList="/chat/group/list",e.MarkConversationMessageAsRead="/chat/group/lastRead",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/img/upload"}(c||(c={})),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.OnMessagesListLoaded="OnMessagesListLoaded",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.OnConversationListUpdated="OnConversationListUpdated",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"}(u||(u={}));var g,l,h,f,v,p,m,M,O,C,S,E,A,G,T,I,b,y,N,R,P,k,L=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveMessages]=[],e[u.OnConversationListUpdated]=[],e[u.OnMessagesListLoaded]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.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"}(g||(g={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(l||(l={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(h||(h={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(f||(f={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(v||(v={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(p||(p={})),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"}(m||(m={})),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"}(O||(O={})),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"}(C||(C={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(S||(S={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(E||(E={})),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"}(A||(A={})),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"}(G||(G={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(T||(T={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(I||(I={})),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"}(y||(y={})),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"}(N||(N={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.AUDIO=3]="AUDIO",e[e.VIDEO=4]="VIDEO",e[e.LINK=5]="LINK",e[e.GIF=6]="GIF",e[e.OPTION=7]="OPTION",e[e.EMOJI=8]="EMOJI",e[e.CUSTOM=100]="CUSTOM"}(R||(R={})),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"}(k||(k={}));var _={NORMAL:0,EDITED:1,DELETED:2},U="undefined"!=typeof uni,w="undefined"!=typeof window,F="simsdk_",j={CONVERSATIONS:F+"conversations",GROUP_MESSAGES:F+"group_messages",USER_INFO:F+"user_info",META_INFO:F+"meta"},x={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},D=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},x,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e){var t=e.groupId;if(!t)return!1;var n=this.conversationCache.findIndex(function(e){return e.id===t});return n>=0&&(this.conversationCache[n].latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0)},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.id===e.id});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,o=this,r={},s=n(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,h=function(){var e=l.value,t=o.groupMessageCache[d].findIndex(function(t){return t.id===e.id});t>=0?o.groupMessageCache[d][t]=e:o.groupMessageCache[d].push(e)},f=n(g);!(l=f()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(j.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(j.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(j.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(j.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(j.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(j.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(j.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(j.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(j.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=j.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(j.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(F)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,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)}},t.createMessage=function(e,t,n,r,s){var i;void 0===n&&(n={});var a=o({},n,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,t)},t.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.TEXT,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.IMAGE,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.FILE,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.VIDEO,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.LINK,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.GIF,c.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.OPTION,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.EMOJI,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.CUSTOM,c.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.size,r=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:r},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),J=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),z=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case i.USER:return new H(this.sdk);case i.MESSAGE:return new V(this.sdk);case i.CONVERSATION:return new K(this.sdk);case i.GROUP:return new J(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function q(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var X=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],W=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.sseClient=void 0,n.serviceManager=void 0,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.appKey&&(n.config.appKey=e.appKey)},n.sendRequest=function(e){n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),o=void 0}return function(e){try{return Promise.resolve(U?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(e)}})}):function(){if(w)return console.log("isBrowser ",w),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,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:o})},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case P.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(u.OnReceiveMessage,t)}else{var o=e.dt;o.forEach(function(e){return n.updateMessageCache(e)}),n.emit(u.OnReceiveMessages,o)}break;case P.EVENT_PONG_CONN:n.internalState.isConnected=!0,n.emit(u.OnConnected);break;case P.EVENT_PONG_RE_CONN:n.internalState.isConnected=!0,n.emit(u.OnReconnected);break;case P.EVENT_PONG_IDLE:break;default:r=e.ev,Object.values(u).includes(r)?(n.emit(e.ev,e.dt),X.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var r},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(u.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(u.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");n.config.token=e.token,n.config.username=e.username,n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var t=n.cacheManager.getConversations();return t.length>0&&n.emit(u.OnConversationListUpdated,t),Promise.resolve(n.user.login(e)).then(function(t){var o=t.code,r=t.data;return 0!=o?Promise.resolve("Login failed, Server error, error code is "+o):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+r,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),q(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.sseClient&&(n.sseClient.close(),n.sseClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{var t=q(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var s=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var i=r.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),d=[].concat(s,c);n.cacheManager.setConversations(d)}var g=o({},r,{records:n.cacheManager.getConversations()});n.emit(u.OnConversationListUpdated,g)}else{var l=n.cacheManager.getConversations();l.length>0&&n.emit(u.OnConversationListUpdated,l)}})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();t.length>0&&n.emit(u.OnConversationListUpdated,t)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(q(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.apiAddr+c.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.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){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.url,o=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t){return n.message.createTextMessage(e,t)},n.sendImageMessage=function(e,t){return n.message.createImageMessage(e,t)},n.sendFileMessage=function(e,t){return n.message.createFileMessage(e,t)},n.sendVideoMessage=function(e,t){return n.message.createVideoMessage(e,t)},n.sendLinkMessage=function(e,t){return n.message.createLinkMessage(e,t)},n.sendGifMessage=function(e,t){return n.message.createGifMessage(e,t)},n.sendOptionMessage=function(e,t){return n.message.createOptionMessage(e,t)},n.sendEmojiMessage=function(e,t){return n.message.createEmojiMessage(e,t)},n.sendCustomMessage=function(e,t){return n.message.createCustomMessage(e,t)},n.getHistoryMessageList=function(e){try{var t=q(function(){e.groupId&&n.cacheManager.markConversationAsActive(e.groupId);var t=[];if(e.groupId&&(t=n.cacheManager.getGroupMessages(e.groupId)),t.length>0&&""===e.lastId){var r=t.slice(0,e.size||20);n.emit(u.OnMessagesListLoaded,{messages:r,groupId:e.groupId})}return Promise.resolve(n.message.getHistoryMessageList(e)).then(function(r){var s=r.data;if(0===r.code&&s)e.groupId&&n.cacheManager.addGroupMessages(s.groupChatList||[]),n.emit(u.OnMessagesListLoaded,o({},s,{isFromCache:!1,groupId:e.groupId}));else if(t.length>0&&!(""===e.lastId&&t.length>0)){var i=t.slice(0,0+(e.size||20));n.emit(u.OnMessagesListLoaded,{messages:i,groupId:e.groupId})}})},function(t){console.error("Failed to get history messages:",t);var o=[];if(e.groupId&&(o=n.cacheManager.getGroupMessages(e.groupId)),o.length>0){var r=o.slice(0,0+(e.size||20));n.emit(u.OnMessagesListLoaded,{messages:r,groupId:e.groupId,error:t.message})}});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.createGroup=function(e){return n.group.createGroup(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.config.debug=t,n.cacheManager=new D({persistEnabled:!0,debug:t}),n.serviceManager=new z(n),n}var n,g;g=e,(n=t).prototype=Object.create(g.prototype),n.prototype.constructor=n,r(n,g);var l,h,f=t.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){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.groupCollapsed("%c📦 Request Payload","color: #555; font-weight: bold;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.4;",JSON.stringify(e.data,null,2)),console.groupEnd())},f.initializeConversationCache=function(){try{var e=this,t=q(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,o=t.data;e.config.debug&&console.log("Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records&&(e.cacheManager.setConversations(o.records),e.emit(u.OnConversationListUpdated,o),e.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations"))})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},f.onMessage=function(e){var t=this;return this.on(u.OnReceiveMessage,e),function(){return t.off(u.OnReceiveMessage,e)}},f.onMessages=function(e){var t=this;return this.on(u.OnReceiveMessages,e),function(){return t.off(u.OnReceiveMessages,e)}},f.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},o=function(){return e(!1)};return this.on(u.OnConnected,n),this.on(u.OnDisconnected,o),function(){t.off(u.OnConnected,n),t.off(u.OnDisconnected,o)}},f.onKickedOffline=function(e){var t=this;return this.on(u.OnKickedOffline,e),function(){return t.off(u.OnKickedOffline,e)}},f.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e)){var t=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,t)}},f.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},l=t,(h=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.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,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,s(o.key),o)}}(l.prototype,h),Object.defineProperty(l,"prototype",{writable:!1}),l}(L);export{l as AllowType,O as ApplicationHandleResult,u as CbEvents,a as ErrorCode,N as GROUP_TYPE,A as GroupAtType,f as GroupJoinSource,G as GroupMemberFilter,v as GroupMemberRole,y as GroupMessageReaderFilter,E as GroupStatus,h as GroupType,p as GroupVerificationType,M as LogLevel,I as LoginStatus,R as MSG_TYPE,g as MessageReceiveOptType,k as MessageSendStatus,_ as MessageStatus,C as MessageType,b as OnlineState,m as Platform,T as Relationship,c as RequestApi,W as SIMSDK,P as SSE_RESPONSE_TYPE,i as ServiceName,S as SessionType};
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t=require("event-source-polyfill");function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var a,c,u,d=/*#__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 n=e.prototype;return n.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(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||r(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}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(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.addEventListener(n,r)});var o=setTimeout(function(){e.connected||(r(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(o),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),r(t)}})},n.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")},n.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)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(a=exports.ErrorCode||(exports.ErrorCode={}))[a.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",a[a.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",a[a.UnknownError=10005]="UnknownError",a[a.LoginRepeatError=10102]="LoginRepeatError",exports.RequestApi=void 0,(c=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",c.Logout="/chat/member/logout",c.CreateGroup="CreateGroup",c.GetGroupInfo="/chat/group/groupInfo",c.GetGroupMembers="/chat/group/groupMembers",c.JoinGroup="/chat/group/joinGroup",c.GetAllConversationList="/chat/group/list",c.MarkConversationMessageAsRead="/chat/group/lastRead",c.CreateTextMessage="/chat/message/push",c.GetHistoryMessageList="/chat/message/pull",c.UploadFile="/chat/img/upload",exports.CbEvents=void 0,(u=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",u.OnDisconnected="OnDisconnected",u.OnReconnecting="OnReconnecting",u.OnReconnected="OnReconnected",u.OnReconnectFailed="OnReconnectFailed",u.OnNetworkChange="OnNetworkChange",u.OnReceiveMessage="OnReceiveMessage",u.OnReceiveMessages="OnReceiveMessages",u.OnMessagesListLoaded="OnMessagesListLoaded",u.OnMessageSent="OnMessageSent",u.OnMessageFailed="OnMessageFailed",u.OnMessageRevoked="OnMessageRevoked",u.OnMessageDeleted="OnMessageDeleted",u.OnMessageRead="OnMessageRead",u.OnTypingStatusUpdate="OnTypingStatusUpdate",u.OnUserStatusChange="OnUserStatusChange",u.OnKickedOffline="OnKickedOffline",u.OnUserTokenInvalid="OnUserTokenInvalid",u.OnUserTokenExpired="OnUserTokenExpired",u.OnForceOffline="OnForceOffline",u.OnUserInfoUpdated="OnUserInfoUpdated",u.OnGroupCreated="OnGroupCreated",u.OnGroupInfoUpdated="OnGroupInfoUpdated",u.OnGroupDissolved="OnGroupDissolved",u.OnJoinGroup="OnJoinGroup",u.OnLeaveGroup="OnLeaveGroup",u.OnGroupMemberJoined="OnGroupMemberJoined",u.OnGroupMemberLeft="OnGroupMemberLeft",u.OnGroupMemberKicked="OnGroupMemberKicked",u.OnGroupOwnerChanged="OnGroupOwnerChanged",u.OnGroupAdminAdded="OnGroupAdminAdded",u.OnGroupAdminRemoved="OnGroupAdminRemoved",u.OnGroupMemberMuted="OnGroupMemberMuted",u.OnGroupMemberUnmuted="OnGroupMemberUnmuted",u.OnGroupAllMemberMuted="OnGroupAllMemberMuted",u.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",u.OnConversationCreated="OnConversationCreated",u.OnConversationDeleted="OnConversationDeleted",u.OnConversationListUpdated="OnConversationListUpdated",u.OnConversationUpdated="OnConversationUpdated",u.OnUnreadCountChanged="OnUnreadCountChanged",u.OnConversationPinned="OnConversationPinned",u.OnConversationUnpinned="OnConversationUnpinned",u.OnConversationMuted="OnConversationMuted",u.OnConversationUnmuted="OnConversationUnmuted",u.OnPongConn="OnPongConn",u.OnPongReConn="OnPongReConn",u.OnPongIdle="OnPongIdle",u.OnError="OnError",u.OnWarning="OnWarning",u.OnLog="OnLog";var l,g,p,h,v,f,m,M,S,C,E,O,x,G,A,T,b,R,P,y,I,N,_=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();exports.MessageReceiveOptType=void 0,(l=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[l.Nomal=0]="Nomal",l[l.NotReceive=1]="NotReceive",l[l.NotNotify=2]="NotNotify",exports.AllowType=void 0,(g=exports.AllowType||(exports.AllowType={}))[g.Allowed=0]="Allowed",g[g.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(p=exports.GroupType||(exports.GroupType={}))[p.Group=2]="Group",p[p.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(h=exports.GroupJoinSource||(exports.GroupJoinSource={}))[h.Invitation=2]="Invitation",h[h.Search=3]="Search",h[h.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(v=exports.GroupMemberRole||(exports.GroupMemberRole={}))[v.Nomal=20]="Nomal",v[v.Admin=60]="Admin",v[v.Owner=100]="Owner",exports.GroupVerificationType=void 0,(f=exports.GroupVerificationType||(exports.GroupVerificationType={}))[f.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",f[f.AllNeed=1]="AllNeed",f[f.AllNot=2]="AllNot",exports.Platform=void 0,(m=exports.Platform||(exports.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",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,(S=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[S.Unprocessed=0]="Unprocessed",S[S.Agree=1]="Agree",S[S.Reject=-1]="Reject",exports.MessageType=void 0,(C=exports.MessageType||(exports.MessageType={}))[C.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",C[C.TextMessage=101]="TextMessage",C[C.PictureMessage=102]="PictureMessage",C[C.VoiceMessage=103]="VoiceMessage",C[C.VideoMessage=104]="VideoMessage",C[C.FileMessage=105]="FileMessage",C[C.AtTextMessage=106]="AtTextMessage",C[C.MergeMessage=107]="MergeMessage",C[C.CardMessage=108]="CardMessage",C[C.LocationMessage=109]="LocationMessage",C[C.CustomMessage=110]="CustomMessage",C[C.TypingMessage=113]="TypingMessage",C[C.QuoteMessage=114]="QuoteMessage",C[C.FaceMessage=115]="FaceMessage",C[C.FriendAdded=1201]="FriendAdded",C[C.OANotification=1400]="OANotification",C[C.GroupCreated=1501]="GroupCreated",C[C.MemberQuit=1504]="MemberQuit",C[C.GroupOwnerTransferred=1507]="GroupOwnerTransferred",C[C.MemberKicked=1508]="MemberKicked",C[C.MemberInvited=1509]="MemberInvited",C[C.MemberEnter=1510]="MemberEnter",C[C.GroupDismissed=1511]="GroupDismissed",C[C.GroupMemberMuted=1512]="GroupMemberMuted",C[C.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",C[C.GroupMuted=1514]="GroupMuted",C[C.GroupCancelMuted=1515]="GroupCancelMuted",C[C.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",C[C.GroupNameUpdated=1520]="GroupNameUpdated",C[C.BurnMessageChange=1701]="BurnMessageChange",C[C.RevokeMessage=2101]="RevokeMessage",exports.SessionType=void 0,(E=exports.SessionType||(exports.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",exports.GroupStatus=void 0,(O=exports.GroupStatus||(exports.GroupStatus={}))[O.Nomal=0]="Nomal",O[O.Baned=1]="Baned",O[O.Dismissed=2]="Dismissed",O[O.Muted=3]="Muted",exports.GroupAtType=void 0,(x=exports.GroupAtType||(exports.GroupAtType={}))[x.AtNormal=0]="AtNormal",x[x.AtMe=1]="AtMe",x[x.AtAll=2]="AtAll",x[x.AtAllAtMe=3]="AtAllAtMe",x[x.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(G=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[G.All=0]="All",G[G.Owner=1]="Owner",G[G.Admin=2]="Admin",G[G.Nomal=3]="Nomal",G[G.AdminAndNomal=4]="AdminAndNomal",G[G.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(A=exports.Relationship||(exports.Relationship={}))[A.isBlack=0]="isBlack",A[A.isFriend=1]="isFriend",exports.LoginStatus=void 0,(T=exports.LoginStatus||(exports.LoginStatus={}))[T.Logout=1]="Logout",T[T.Logging=2]="Logging",T[T.Logged=3]="Logged",exports.OnlineState=void 0,(b=exports.OnlineState||(exports.OnlineState={}))[b.Online=1]="Online",b[b.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(R=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[R.Readed=0]="Readed",R[R.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(P=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[P.ONE_ON_ONE=0]="ONE_ON_ONE",P[P.GROUP_CHAT=1]="GROUP_CHAT",P[P.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(y=exports.MSG_TYPE||(exports.MSG_TYPE={}))[y.TEXT=0]="TEXT",y[y.IMAGE=1]="IMAGE",y[y.FILE=2]="FILE",y[y.AUDIO=3]="AUDIO",y[y.VIDEO=4]="VIDEO",y[y.LINK=5]="LINK",y[y.GIF=6]="GIF",y[y.OPTION=7]="OPTION",y[y.EMOJI=8]="EMOJI",y[y.CUSTOM=100]="CUSTOM",exports.SSE_RESPONSE_TYPE=void 0,(I=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[I.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",I[I.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",I[I.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",I[I.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(N=exports.MessageSendStatus||(exports.MessageSendStatus={}))[N.Sending=1]="Sending",N[N.Succeed=2]="Succeed",N[N.Failed=3]="Failed";var k="undefined"!=typeof uni,L="undefined"!=typeof window,U="simsdk_",w={CONVERSATIONS:U+"conversations",GROUP_MESSAGES:U+"group_messages",USER_INFO:U+"user_info",META_INFO:U+"meta"},F={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},j=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},F,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e){var t=e.groupId;if(!t)return!1;var n=this.conversationCache.findIndex(function(e){return e.id===t});return n>=0&&(this.conversationCache[n].latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0)},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.id===e.id});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,o={},s=r(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,p=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.id===e.id});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},h=r(l);!(g=h()).done;)p();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(w.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(w.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(w.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(w.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(w.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(w.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(w.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(w.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(w.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=w.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(w.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=r(Object.keys(localStorage).filter(function(e){return e.startsWith(U)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),q=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),D=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,r,s){var i;void 0===n&&(n={});var a=o({},n,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,t)},t.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.TEXT,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.FILE,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.VIDEO,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.LINK,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.GIF,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.OPTION,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.EMOJI,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.CUSTOM,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.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)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case exports.ServiceName.USER:return new q(this.sdk);case exports.ServiceName.MESSAGE:return new D(this.sdk);case exports.ServiceName.CONVERSATION:return new H(this.sdk);case exports.ServiceName.GROUP:return new V(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function Y(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var J=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired],z=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.sseClient=void 0,n.serviceManager=void 0,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.appKey&&(n.config.appKey=e.appKey)},n.sendRequest=function(e){n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(k?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(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:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(exports.CbEvents.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){return n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,r)}break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:n.internalState.isConnected=!0,n.emit(exports.CbEvents.OnConnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:n.internalState.isConnected=!0,n.emit(exports.CbEvents.OnReconnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:o=e.ev,Object.values(exports.CbEvents).includes(o)?(n.emit(e.ev,e.dt),J.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");n.config.token=e.token,n.config.username=e.username,n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var t=n.cacheManager.getConversations();return t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t),Promise.resolve(n.user.login(e)).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),Y(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.sseClient&&(n.sseClient.close(),n.sseClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{var t=Y(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var s=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var i=r.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),u=[].concat(s,c);n.cacheManager.setConversations(u)}var d=o({},r,{records:n.cacheManager.getConversations()});n.emit(exports.CbEvents.OnConversationListUpdated,d)}else{var l=n.cacheManager.getConversations();l.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,l)}})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(Y(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.apiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.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){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.url,r=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t){return n.message.createTextMessage(e,t)},n.sendImageMessage=function(e,t){return n.message.createImageMessage(e,t)},n.sendFileMessage=function(e,t){return n.message.createFileMessage(e,t)},n.sendVideoMessage=function(e,t){return n.message.createVideoMessage(e,t)},n.sendLinkMessage=function(e,t){return n.message.createLinkMessage(e,t)},n.sendGifMessage=function(e,t){return n.message.createGifMessage(e,t)},n.sendOptionMessage=function(e,t){return n.message.createOptionMessage(e,t)},n.sendEmojiMessage=function(e,t){return n.message.createEmojiMessage(e,t)},n.sendCustomMessage=function(e,t){return n.message.createCustomMessage(e,t)},n.getHistoryMessageList=function(e){try{var t=Y(function(){e.groupId&&n.cacheManager.markConversationAsActive(e.groupId);var t=[];if(e.groupId&&(t=n.cacheManager.getGroupMessages(e.groupId)),t.length>0&&""===e.lastId){var r=t.slice(0,e.size||20);n.emit(exports.CbEvents.OnMessagesListLoaded,{list:r,groupId:e.groupId})}return Promise.resolve(n.message.getHistoryMessageList(e)).then(function(r){var s=r.data;if(0===r.code&&s)e.groupId&&n.cacheManager.addGroupMessages(s.groupChatList||[]),n.emit(exports.CbEvents.OnMessagesListLoaded,o({},s,{isFromCache:!1,groupId:e.groupId}));else if(t.length>0&&!(""===e.lastId&&t.length>0)){var i=t.slice(0,0+(e.size||20));n.emit(exports.CbEvents.OnMessagesListLoaded,{list:i,groupId:e.groupId})}})},function(t){console.error("Failed to get history messages:",t);var r=[];if(e.groupId&&(r=n.cacheManager.getGroupMessages(e.groupId)),r.length>0){var o=r.slice(0,0+(e.size||20));n.emit(exports.CbEvents.OnMessagesListLoaded,{list:o,groupId:e.groupId,error:t.message})}});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.createGroup=function(e){return n.group.createGroup(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.config.debug=t,n.cacheManager=new j({persistEnabled:!0,debug:t}),n.serviceManager=new K(n),n}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,s(n,r);var a,c,u=t.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){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.groupCollapsed("%c📦 Request Payload","color: #555; font-weight: bold;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.4;",JSON.stringify(e.data,null,2)),console.groupEnd())},u.initializeConversationCache=function(){try{var e=this,t=Y(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.data;0===t.code&&n&&n.records&&(e.cacheManager.setConversations(n.records),e.emit(exports.CbEvents.OnConversationListUpdated,n),e.config.debug&&console.log("Conversation cache initialized with",n.records.length,"conversations"))})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},u.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},u.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},u.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,r),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,r)}},u.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},u.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e)){var t=this.cacheManager.getConversations();this.emit(exports.CbEvents.OnConversationListUpdated,t)}},u.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},a=t,(c=[{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,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(_);exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=z;
|
|
1
|
+
var e,t=require("event-source-polyfill");function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var a,c,u,d=/*#__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 n=e.prototype;return n.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(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||r(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}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(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.addEventListener(n,r)});var o=setTimeout(function(){e.connected||(r(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(o),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),r(t)}})},n.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")},n.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)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(a=exports.ErrorCode||(exports.ErrorCode={}))[a.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",a[a.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",a[a.UnknownError=10005]="UnknownError",a[a.LoginRepeatError=10102]="LoginRepeatError",exports.RequestApi=void 0,(c=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",c.Logout="/chat/member/logout",c.CreateGroup="CreateGroup",c.GetGroupInfo="/chat/group/groupInfo",c.GetGroupMembers="/chat/group/groupMembers",c.JoinGroup="/chat/group/joinGroup",c.GetAllConversationList="/chat/group/list",c.MarkConversationMessageAsRead="/chat/group/lastRead",c.CreateTextMessage="/chat/message/push",c.GetHistoryMessageList="/chat/message/pull",c.UploadFile="/chat/img/upload",exports.CbEvents=void 0,(u=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",u.OnDisconnected="OnDisconnected",u.OnReconnecting="OnReconnecting",u.OnReconnected="OnReconnected",u.OnReconnectFailed="OnReconnectFailed",u.OnNetworkChange="OnNetworkChange",u.OnReceiveMessage="OnReceiveMessage",u.OnReceiveMessages="OnReceiveMessages",u.OnMessagesListLoaded="OnMessagesListLoaded",u.OnMessageSent="OnMessageSent",u.OnMessageFailed="OnMessageFailed",u.OnMessageRevoked="OnMessageRevoked",u.OnMessageDeleted="OnMessageDeleted",u.OnMessageRead="OnMessageRead",u.OnTypingStatusUpdate="OnTypingStatusUpdate",u.OnUserStatusChange="OnUserStatusChange",u.OnKickedOffline="OnKickedOffline",u.OnUserTokenInvalid="OnUserTokenInvalid",u.OnUserTokenExpired="OnUserTokenExpired",u.OnForceOffline="OnForceOffline",u.OnUserInfoUpdated="OnUserInfoUpdated",u.OnGroupCreated="OnGroupCreated",u.OnGroupInfoUpdated="OnGroupInfoUpdated",u.OnGroupDissolved="OnGroupDissolved",u.OnJoinGroup="OnJoinGroup",u.OnLeaveGroup="OnLeaveGroup",u.OnGroupMemberJoined="OnGroupMemberJoined",u.OnGroupMemberLeft="OnGroupMemberLeft",u.OnGroupMemberKicked="OnGroupMemberKicked",u.OnGroupOwnerChanged="OnGroupOwnerChanged",u.OnGroupAdminAdded="OnGroupAdminAdded",u.OnGroupAdminRemoved="OnGroupAdminRemoved",u.OnGroupMemberMuted="OnGroupMemberMuted",u.OnGroupMemberUnmuted="OnGroupMemberUnmuted",u.OnGroupAllMemberMuted="OnGroupAllMemberMuted",u.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",u.OnConversationCreated="OnConversationCreated",u.OnConversationDeleted="OnConversationDeleted",u.OnConversationListUpdated="OnConversationListUpdated",u.OnConversationUpdated="OnConversationUpdated",u.OnUnreadCountChanged="OnUnreadCountChanged",u.OnConversationPinned="OnConversationPinned",u.OnConversationUnpinned="OnConversationUnpinned",u.OnConversationMuted="OnConversationMuted",u.OnConversationUnmuted="OnConversationUnmuted",u.OnPongConn="OnPongConn",u.OnPongReConn="OnPongReConn",u.OnPongIdle="OnPongIdle",u.OnError="OnError",u.OnWarning="OnWarning",u.OnLog="OnLog";var l,g,p,h,v,f,m,M,C,S,E,O,x,G,A,T,b,R,P,y,I,N,_=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e[exports.CbEvents.OnConversationListUpdated]=[],e[exports.CbEvents.OnMessagesListLoaded]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();exports.MessageReceiveOptType=void 0,(l=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[l.Nomal=0]="Nomal",l[l.NotReceive=1]="NotReceive",l[l.NotNotify=2]="NotNotify",exports.AllowType=void 0,(g=exports.AllowType||(exports.AllowType={}))[g.Allowed=0]="Allowed",g[g.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(p=exports.GroupType||(exports.GroupType={}))[p.Group=2]="Group",p[p.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(h=exports.GroupJoinSource||(exports.GroupJoinSource={}))[h.Invitation=2]="Invitation",h[h.Search=3]="Search",h[h.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(v=exports.GroupMemberRole||(exports.GroupMemberRole={}))[v.Nomal=20]="Nomal",v[v.Admin=60]="Admin",v[v.Owner=100]="Owner",exports.GroupVerificationType=void 0,(f=exports.GroupVerificationType||(exports.GroupVerificationType={}))[f.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",f[f.AllNeed=1]="AllNeed",f[f.AllNot=2]="AllNot",exports.Platform=void 0,(m=exports.Platform||(exports.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",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,(C=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[C.Unprocessed=0]="Unprocessed",C[C.Agree=1]="Agree",C[C.Reject=-1]="Reject",exports.MessageType=void 0,(S=exports.MessageType||(exports.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",exports.SessionType=void 0,(E=exports.SessionType||(exports.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",exports.GroupStatus=void 0,(O=exports.GroupStatus||(exports.GroupStatus={}))[O.Nomal=0]="Nomal",O[O.Baned=1]="Baned",O[O.Dismissed=2]="Dismissed",O[O.Muted=3]="Muted",exports.GroupAtType=void 0,(x=exports.GroupAtType||(exports.GroupAtType={}))[x.AtNormal=0]="AtNormal",x[x.AtMe=1]="AtMe",x[x.AtAll=2]="AtAll",x[x.AtAllAtMe=3]="AtAllAtMe",x[x.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(G=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[G.All=0]="All",G[G.Owner=1]="Owner",G[G.Admin=2]="Admin",G[G.Nomal=3]="Nomal",G[G.AdminAndNomal=4]="AdminAndNomal",G[G.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(A=exports.Relationship||(exports.Relationship={}))[A.isBlack=0]="isBlack",A[A.isFriend=1]="isFriend",exports.LoginStatus=void 0,(T=exports.LoginStatus||(exports.LoginStatus={}))[T.Logout=1]="Logout",T[T.Logging=2]="Logging",T[T.Logged=3]="Logged",exports.OnlineState=void 0,(b=exports.OnlineState||(exports.OnlineState={}))[b.Online=1]="Online",b[b.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(R=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[R.Readed=0]="Readed",R[R.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(P=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[P.ONE_ON_ONE=0]="ONE_ON_ONE",P[P.GROUP_CHAT=1]="GROUP_CHAT",P[P.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(y=exports.MSG_TYPE||(exports.MSG_TYPE={}))[y.TEXT=0]="TEXT",y[y.IMAGE=1]="IMAGE",y[y.FILE=2]="FILE",y[y.AUDIO=3]="AUDIO",y[y.VIDEO=4]="VIDEO",y[y.LINK=5]="LINK",y[y.GIF=6]="GIF",y[y.OPTION=7]="OPTION",y[y.EMOJI=8]="EMOJI",y[y.CUSTOM=100]="CUSTOM",exports.SSE_RESPONSE_TYPE=void 0,(I=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[I.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",I[I.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",I[I.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",I[I.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(N=exports.MessageSendStatus||(exports.MessageSendStatus={}))[N.Sending=1]="Sending",N[N.Succeed=2]="Succeed",N[N.Failed=3]="Failed";var k="undefined"!=typeof uni,L="undefined"!=typeof window,U="simsdk_",w={CONVERSATIONS:U+"conversations",GROUP_MESSAGES:U+"group_messages",USER_INFO:U+"user_info",META_INFO:U+"meta"},F={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},j=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},F,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e){var t=e.groupId;if(!t)return!1;var n=this.conversationCache.findIndex(function(e){return e.id===t});return n>=0&&(this.conversationCache[n].latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0)},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.id===e.id});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,o={},s=r(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,p=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.id===e.id});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},h=r(l);!(g=h()).done;)p();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(w.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(w.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(w.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(w.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(w.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(w.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(w.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(w.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(w.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=w.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(w.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=r(Object.keys(localStorage).filter(function(e){return e.startsWith(U)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),q=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),D=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,r,s){var i;void 0===n&&(n={});var a=o({},n,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,t)},t.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.TEXT,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.FILE,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.VIDEO,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.LINK,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.GIF,exports.RequestApi.CreateTextMessage,t,"link",e))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.OPTION,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.EMOJI,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.CUSTOM,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},t.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.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)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case exports.ServiceName.USER:return new q(this.sdk);case exports.ServiceName.MESSAGE:return new D(this.sdk);case exports.ServiceName.CONVERSATION:return new H(this.sdk);case exports.ServiceName.GROUP:return new V(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function Y(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var J=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired],z=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.sseClient=void 0,n.serviceManager=void 0,n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.appKey&&(n.config.appKey=e.appKey)},n.sendRequest=function(e){n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e);var t=n.config.apiAddr+e.url,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(k?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(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:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(exports.CbEvents.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){return n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,r)}break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:n.internalState.isConnected=!0,n.emit(exports.CbEvents.OnConnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:n.internalState.isConnected=!0,n.emit(exports.CbEvents.OnReconnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:o=e.ev,Object.values(exports.CbEvents).includes(o)?(n.emit(e.ev,e.dt),J.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");n.config.token=e.token,n.config.username=e.username,n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var t=n.cacheManager.getConversations();return t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t),Promise.resolve(n.user.login(e)).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),Y(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.sseClient&&(n.sseClient.close(),n.sseClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{var t=Y(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var s=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var i=r.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),u=[].concat(s,c);n.cacheManager.setConversations(u)}var d=o({},r,{records:n.cacheManager.getConversations()});n.emit(exports.CbEvents.OnConversationListUpdated,d)}else{var l=n.cacheManager.getConversations();l.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,l)}})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(Y(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.apiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.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){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.url,r=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t){return n.message.createTextMessage(e,t)},n.sendImageMessage=function(e,t){return n.message.createImageMessage(e,t)},n.sendFileMessage=function(e,t){return n.message.createFileMessage(e,t)},n.sendVideoMessage=function(e,t){return n.message.createVideoMessage(e,t)},n.sendLinkMessage=function(e,t){return n.message.createLinkMessage(e,t)},n.sendGifMessage=function(e,t){return n.message.createGifMessage(e,t)},n.sendOptionMessage=function(e,t){return n.message.createOptionMessage(e,t)},n.sendEmojiMessage=function(e,t){return n.message.createEmojiMessage(e,t)},n.sendCustomMessage=function(e,t){return n.message.createCustomMessage(e,t)},n.getHistoryMessageList=function(e){try{var t=Y(function(){e.groupId&&n.cacheManager.markConversationAsActive(e.groupId);var t=[];if(e.groupId&&(t=n.cacheManager.getGroupMessages(e.groupId)),t.length>0&&""===e.lastId){var r=t.slice(0,e.size||20);n.emit(exports.CbEvents.OnMessagesListLoaded,{messages:r,groupId:e.groupId})}return Promise.resolve(n.message.getHistoryMessageList(e)).then(function(r){var s=r.data;if(0===r.code&&s)e.groupId&&n.cacheManager.addGroupMessages(s.groupChatList||[]),n.emit(exports.CbEvents.OnMessagesListLoaded,o({},s,{isFromCache:!1,groupId:e.groupId}));else if(t.length>0&&!(""===e.lastId&&t.length>0)){var i=t.slice(0,0+(e.size||20));n.emit(exports.CbEvents.OnMessagesListLoaded,{messages:i,groupId:e.groupId})}})},function(t){console.error("Failed to get history messages:",t);var r=[];if(e.groupId&&(r=n.cacheManager.getGroupMessages(e.groupId)),r.length>0){var o=r.slice(0,0+(e.size||20));n.emit(exports.CbEvents.OnMessagesListLoaded,{messages:o,groupId:e.groupId,error:t.message})}});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.createGroup=function(e){return n.group.createGroup(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.config.debug=t,n.cacheManager=new j({persistEnabled:!0,debug:t}),n.serviceManager=new K(n),n}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,s(n,r);var a,c,u=t.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){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.groupCollapsed("%c📦 Request Payload","color: #555; font-weight: bold;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.4;",JSON.stringify(e.data,null,2)),console.groupEnd())},u.initializeConversationCache=function(){try{var e=this,t=Y(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,r=t.data;e.config.debug&&console.log("Conversation 获取第一页会话数据",n,r),0===n&&r&&r.records&&(e.cacheManager.setConversations(r.records),e.emit(exports.CbEvents.OnConversationListUpdated,r),e.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations"))})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},u.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},u.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},u.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,r),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,r)}},u.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},u.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e)){var t=this.cacheManager.getConversations();this.emit(exports.CbEvents.OnConversationListUpdated,t)}},u.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},a=t,(c=[{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,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(_);exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=z;
|
package/lib/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],t):t((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,t){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function o(e,t){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,t){if(e){if("string"==typeof e)return n(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var a;e.ServiceName=void 0,(a=e.ServiceName||(e.ServiceName={})).MESSAGE="message",a.CONVERSATION="conversation",a.GROUP="group",a.USER="user";var c,u,d,l=/*#__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 n=e.prototype;return n.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(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}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(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,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(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},n.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")},n.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)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(c=e.ErrorCode||(e.ErrorCode={}))[c.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",c[c.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",c[c.UnknownError=10005]="UnknownError",c[c.LoginRepeatError=10102]="LoginRepeatError",e.RequestApi=void 0,(u=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",u.Logout="/chat/member/logout",u.CreateGroup="CreateGroup",u.GetGroupInfo="/chat/group/groupInfo",u.GetGroupMembers="/chat/group/groupMembers",u.JoinGroup="/chat/group/joinGroup",u.GetAllConversationList="/chat/group/list",u.MarkConversationMessageAsRead="/chat/group/lastRead",u.CreateTextMessage="/chat/message/push",u.GetHistoryMessageList="/chat/message/pull",u.UploadFile="/chat/img/upload",e.CbEvents=void 0,(d=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",d.OnDisconnected="OnDisconnected",d.OnReconnecting="OnReconnecting",d.OnReconnected="OnReconnected",d.OnReconnectFailed="OnReconnectFailed",d.OnNetworkChange="OnNetworkChange",d.OnReceiveMessage="OnReceiveMessage",d.OnReceiveMessages="OnReceiveMessages",d.OnMessagesListLoaded="OnMessagesListLoaded",d.OnMessageSent="OnMessageSent",d.OnMessageFailed="OnMessageFailed",d.OnMessageRevoked="OnMessageRevoked",d.OnMessageDeleted="OnMessageDeleted",d.OnMessageRead="OnMessageRead",d.OnTypingStatusUpdate="OnTypingStatusUpdate",d.OnUserStatusChange="OnUserStatusChange",d.OnKickedOffline="OnKickedOffline",d.OnUserTokenInvalid="OnUserTokenInvalid",d.OnUserTokenExpired="OnUserTokenExpired",d.OnForceOffline="OnForceOffline",d.OnUserInfoUpdated="OnUserInfoUpdated",d.OnGroupCreated="OnGroupCreated",d.OnGroupInfoUpdated="OnGroupInfoUpdated",d.OnGroupDissolved="OnGroupDissolved",d.OnJoinGroup="OnJoinGroup",d.OnLeaveGroup="OnLeaveGroup",d.OnGroupMemberJoined="OnGroupMemberJoined",d.OnGroupMemberLeft="OnGroupMemberLeft",d.OnGroupMemberKicked="OnGroupMemberKicked",d.OnGroupOwnerChanged="OnGroupOwnerChanged",d.OnGroupAdminAdded="OnGroupAdminAdded",d.OnGroupAdminRemoved="OnGroupAdminRemoved",d.OnGroupMemberMuted="OnGroupMemberMuted",d.OnGroupMemberUnmuted="OnGroupMemberUnmuted",d.OnGroupAllMemberMuted="OnGroupAllMemberMuted",d.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",d.OnConversationCreated="OnConversationCreated",d.OnConversationDeleted="OnConversationDeleted",d.OnConversationListUpdated="OnConversationListUpdated",d.OnConversationUpdated="OnConversationUpdated",d.OnUnreadCountChanged="OnUnreadCountChanged",d.OnConversationPinned="OnConversationPinned",d.OnConversationUnpinned="OnConversationUnpinned",d.OnConversationMuted="OnConversationMuted",d.OnConversationUnmuted="OnConversationUnmuted",d.OnPongConn="OnPongConn",d.OnPongReConn="OnPongReConn",d.OnPongIdle="OnPongIdle",d.OnError="OnError",d.OnWarning="OnWarning",d.OnLog="OnLog";var g,h,v,p,f,m,M,S,C,E,O,G,T,A,b,R,P,y,I,N,_,k,L=/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.OnReceiveMessage]=[],t[e.CbEvents.OnReceiveMessages]=[],t)}var n=t.prototype;return n.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},n.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},n.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},t}();e.MessageReceiveOptType=void 0,(g=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[g.Nomal=0]="Nomal",g[g.NotReceive=1]="NotReceive",g[g.NotNotify=2]="NotNotify",e.AllowType=void 0,(h=e.AllowType||(e.AllowType={}))[h.Allowed=0]="Allowed",h[h.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(v=e.GroupType||(e.GroupType={}))[v.Group=2]="Group",v[v.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,(f=e.GroupMemberRole||(e.GroupMemberRole={}))[f.Nomal=20]="Nomal",f[f.Admin=60]="Admin",f[f.Owner=100]="Owner",e.GroupVerificationType=void 0,(m=e.GroupVerificationType||(e.GroupVerificationType={}))[m.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",m[m.AllNeed=1]="AllNeed",m[m.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,(S=e.LogLevel||(e.LogLevel={}))[S.Debug=5]="Debug",S[S.Info=4]="Info",S[S.Warn=3]="Warn",S[S.Error=2]="Error",S[S.Fatal=1]="Fatal",S[S.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(C=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[C.Unprocessed=0]="Unprocessed",C[C.Agree=1]="Agree",C[C.Reject=-1]="Reject",e.MessageType=void 0,(E=e.MessageType||(e.MessageType={}))[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",e.SessionType=void 0,(O=e.SessionType||(e.SessionType={}))[O.Single=1]="Single",O[O.Group=3]="Group",O[O.WorkingGroup=3]="WorkingGroup",O[O.Notification=4]="Notification",e.GroupStatus=void 0,(G=e.GroupStatus||(e.GroupStatus={}))[G.Nomal=0]="Nomal",G[G.Baned=1]="Baned",G[G.Dismissed=2]="Dismissed",G[G.Muted=3]="Muted",e.GroupAtType=void 0,(T=e.GroupAtType||(e.GroupAtType={}))[T.AtNormal=0]="AtNormal",T[T.AtMe=1]="AtMe",T[T.AtAll=2]="AtAll",T[T.AtAllAtMe=3]="AtAllAtMe",T[T.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(A=e.GroupMemberFilter||(e.GroupMemberFilter={}))[A.All=0]="All",A[A.Owner=1]="Owner",A[A.Admin=2]="Admin",A[A.Nomal=3]="Nomal",A[A.AdminAndNomal=4]="AdminAndNomal",A[A.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(b=e.Relationship||(e.Relationship={}))[b.isBlack=0]="isBlack",b[b.isFriend=1]="isFriend",e.LoginStatus=void 0,(R=e.LoginStatus||(e.LoginStatus={}))[R.Logout=1]="Logout",R[R.Logging=2]="Logging",R[R.Logged=3]="Logged",e.OnlineState=void 0,(P=e.OnlineState||(e.OnlineState={}))[P.Online=1]="Online",P[P.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(y=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[y.Readed=0]="Readed",y[y.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(I=e.GROUP_TYPE||(e.GROUP_TYPE={}))[I.ONE_ON_ONE=0]="ONE_ON_ONE",I[I.GROUP_CHAT=1]="GROUP_CHAT",I[I.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",e.MSG_TYPE=void 0,(N=e.MSG_TYPE||(e.MSG_TYPE={}))[N.TEXT=0]="TEXT",N[N.IMAGE=1]="IMAGE",N[N.FILE=2]="FILE",N[N.AUDIO=3]="AUDIO",N[N.VIDEO=4]="VIDEO",N[N.LINK=5]="LINK",N[N.GIF=6]="GIF",N[N.OPTION=7]="OPTION",N[N.EMOJI=8]="EMOJI",N[N.CUSTOM=100]="CUSTOM",e.SSE_RESPONSE_TYPE=void 0,(_=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[_.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",_[_.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",_[_.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",_[_.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 U="undefined"!=typeof uni,w="undefined"!=typeof window,F="simsdk_",j={CONVERSATIONS:F+"conversations",GROUP_MESSAGES:F+"group_messages",USER_INFO:F+"user_info",META_INFO:F+"meta"},x={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},q=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=i,this.config=r({},x,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=r({},e):(this.conversationCache.push(r({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e){var t=e.groupId;if(!t)return!1;var n=this.conversationCache.findIndex(function(e){return e.id===t});return n>=0&&(this.conversationCache[n].latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0)},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.id===e.id});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,r={},s=o(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.id===e.id});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},v=o(l);!(g=v()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(j.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(j.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(j.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(j.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(j.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(j.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(j.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(j.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(j.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=j.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(j.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=o(Object.keys(localStorage).filter(function(e){return e.startsWith(F)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=r({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),D=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.login=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),H=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,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,t,n,o,s){var i;void 0===n&&(n={});var a=r({},n,((i={msgType:e})[o]=s,i.status=0,i));return this.sendMessage(a,t)},n.createTextMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.FILE,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.VIDEO,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.LINK,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.GIF,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.OPTION,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.EMOJI,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.CUSTOM,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var n=t.groupId,o=t.lastId,r=t.size,s=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:o,size:s},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),V=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getConversations=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},n.markConversationRead=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),K=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.createGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),Y=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.services={},this.sdk=e}var n=t.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(t){switch(t){case e.ServiceName.USER:return new D(this.sdk);case e.ServiceName.MESSAGE:return new H(this.sdk);case e.ServiceName.CONVERSATION:return new V(this.sdk);case e.ServiceName.GROUP:return new K(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function J(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var z=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired],W=/*#__PURE__*/function(t){function n(n){var o;return void 0===n&&(n=!1),(o=t.call(this)||this).config={debug:!1},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.cacheManager=void 0,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){o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e);var t=o.config.apiAddr+e.url,n=e.data;if("GET"===e.method&&n){var r=new URLSearchParams;Object.entries(n).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),n=void 0}return function(e){try{return Promise.resolve(U?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(e)}})}):function(){if(w)return console.log("isBrowser ",w),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,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:n})},o.createRequestFunction=function(e,t){return function(n){return o.sendRequest({data:n,url:e,method:t})}},o.createRequestFunctionWithoutParams=function(e,t){return function(){return o.sendRequest({data:void 0,method:t,url:e})}},o.handleMessage=function(t){switch(o.config.debug&&console.log("handleMessage response",t),t.ev){case e.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:if(1===t.dt.length){var n=t.dt[0];o.updateMessageCache(n),o.emit(e.CbEvents.OnReceiveMessage,n)}else{var r=t.dt;r.forEach(function(e){return o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,r)}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:s=t.ev,Object.values(e.CbEvents).includes(s)?(o.emit(t.ev,t.dt),z.includes(t.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:",t.ev)}var s},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(t){try{if(o.sseClient)return Promise.resolve("login repeat");if(!o.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!o.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");o.config.token=t.token,o.config.username=t.username,o.config.debug&&(console.log("login params",t),console.log("apiAddr",o.config.apiAddr)),o.cacheManager.initialize(t.username),o.cacheManager.resetActiveConversation();var n=o.cacheManager.getConversations();return n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n),Promise.resolve(o.user.login(t)).then(function(e){var n=e.code,r=e.data;return 0!=n?Promise.resolve("Login failed, Server error, error code is "+n):(o.initializeConversationCache(),o.sseClient=new l({url:o.config.apiAddr+"/chat/sse/conn?username="+t.username+"&token="+t.token+"&appKey="+o.config.appKey+"&random="+r,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,token:t.token}),J(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)}))})}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,o.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},o.getConversations=function(t){try{var n=J(function(){return Promise.resolve(o.conversation.getConversations(t)).then(function(n){var s=n.data;if(0===n.code&&s){var i=o.cacheManager.getConversations();if(1===t.pageNo)o.cacheManager.setConversations([].concat(s.records));else{var a=s.records||[],c=new Set(i.map(function(e){return e.id})),u=a.filter(function(e){return!c.has(e.id)}),d=[].concat(i,u);o.cacheManager.setConversations(d)}var l=r({},s,{records:o.cacheManager.getConversations()});o.emit(e.CbEvents.OnConversationListUpdated,l)}else{var g=o.cacheManager.getConversations();g.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,g)}})},function(t){console.error("Failed to get conversations:",t);var n=o.cacheManager.getConversations();n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(t){try{return Promise.resolve(J(function(){var n=new FormData;return n.append("file",t),n.append("filename",t.name),Promise.resolve(fetch(""+o.config.apiAddr+e.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){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(t){var n=t.file;try{return Promise.resolve(o.internalUploadFile(n)).then(function(t){var n,o=t.url,r=t.error;return{data:{url:void 0===o?"":o},msg:null!=(n=null==r?void 0:r.message)?n:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e,t){return o.message.createTextMessage(e,t)},o.sendImageMessage=function(e,t){return o.message.createImageMessage(e,t)},o.sendFileMessage=function(e,t){return o.message.createFileMessage(e,t)},o.sendVideoMessage=function(e,t){return o.message.createVideoMessage(e,t)},o.sendLinkMessage=function(e,t){return o.message.createLinkMessage(e,t)},o.sendGifMessage=function(e,t){return o.message.createGifMessage(e,t)},o.sendOptionMessage=function(e,t){return o.message.createOptionMessage(e,t)},o.sendEmojiMessage=function(e,t){return o.message.createEmojiMessage(e,t)},o.sendCustomMessage=function(e,t){return o.message.createCustomMessage(e,t)},o.getHistoryMessageList=function(t){try{var n=J(function(){t.groupId&&o.cacheManager.markConversationAsActive(t.groupId);var n=[];if(t.groupId&&(n=o.cacheManager.getGroupMessages(t.groupId)),n.length>0&&""===t.lastId){var s=n.slice(0,t.size||20);o.emit(e.CbEvents.OnMessagesListLoaded,{list:s,groupId:t.groupId})}return Promise.resolve(o.message.getHistoryMessageList(t)).then(function(s){var i=s.data;if(0===s.code&&i)t.groupId&&o.cacheManager.addGroupMessages(i.groupChatList||[]),o.emit(e.CbEvents.OnMessagesListLoaded,r({},i,{isFromCache:!1,groupId:t.groupId}));else if(n.length>0&&!(""===t.lastId&&n.length>0)){var a=n.slice(0,0+(t.size||20));o.emit(e.CbEvents.OnMessagesListLoaded,{list:a,groupId:t.groupId})}})},function(n){console.error("Failed to get history messages:",n);var r=[];if(t.groupId&&(r=o.cacheManager.getGroupMessages(t.groupId)),r.length>0){var s=r.slice(0,0+(t.size||20));o.emit(e.CbEvents.OnMessagesListLoaded,{list:s,groupId:t.groupId,error:n.message})}});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.getGroupMembers=function(e){return o.group.getGroupMembers(e)},o.joinGroup=function(e){return o.group.joinGroup(e)},o.markConversationRead=function(e){return o.conversation.markConversationRead(e)},o.config.debug=n,o.cacheManager=new q({persistEnabled:!0,debug:n}),o.serviceManager=new Y(o),o}var o,a;a=t,(o=n).prototype=Object.create(a.prototype),o.prototype.constructor=o,s(o,a);var c,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){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.groupCollapsed("%c📦 Request Payload","color: #555; font-weight: bold;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.4;",JSON.stringify(e.data,null,2)),console.groupEnd())},d.initializeConversationCache=function(){try{var t=this,n=J(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var o=n.data;0===n.code&&o&&o.records&&(t.cacheManager.setConversations(o.records),t.emit(e.CbEvents.OnConversationListUpdated,o),t.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations"))})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},d.onMessage=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessage,t),function(){return n.off(e.CbEvents.OnReceiveMessage,t)}},d.onMessages=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessages,t),function(){return n.off(e.CbEvents.OnReceiveMessages,t)}},d.onConnectionChange=function(t){var n=this,o=function(){return t(!0)},r=function(){return t(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){n.off(e.CbEvents.OnConnected,o),n.off(e.CbEvents.OnDisconnected,r)}},d.onKickedOffline=function(t){var n=this;return this.on(e.CbEvents.OnKickedOffline,t),function(){return n.off(e.CbEvents.OnKickedOffline,t)}},d.updateMessageCache=function(t){if(t.groupId&&this.cacheManager.addGroupMessage(t),this.cacheManager.updateConversationWithMessage(t)){var n=this.cacheManager.getConversations();this.emit(e.CbEvents.OnConversationListUpdated,n)}},d.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},c=n,(u=[{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,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(L);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=W});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],t):t((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,t){function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function o(e,t){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,t){if(e){if("string"==typeof e)return n(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var a;e.ServiceName=void 0,(a=e.ServiceName||(e.ServiceName={})).MESSAGE="message",a.CONVERSATION="conversation",a.GROUP="group",a.USER="user";var c,u,d,l=/*#__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 n=e.prototype;return n.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(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}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(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,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(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},n.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")},n.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)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(c=e.ErrorCode||(e.ErrorCode={}))[c.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",c[c.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",c[c.UnknownError=10005]="UnknownError",c[c.LoginRepeatError=10102]="LoginRepeatError",e.RequestApi=void 0,(u=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",u.Logout="/chat/member/logout",u.CreateGroup="CreateGroup",u.GetGroupInfo="/chat/group/groupInfo",u.GetGroupMembers="/chat/group/groupMembers",u.JoinGroup="/chat/group/joinGroup",u.GetAllConversationList="/chat/group/list",u.MarkConversationMessageAsRead="/chat/group/lastRead",u.CreateTextMessage="/chat/message/push",u.GetHistoryMessageList="/chat/message/pull",u.UploadFile="/chat/img/upload",e.CbEvents=void 0,(d=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",d.OnDisconnected="OnDisconnected",d.OnReconnecting="OnReconnecting",d.OnReconnected="OnReconnected",d.OnReconnectFailed="OnReconnectFailed",d.OnNetworkChange="OnNetworkChange",d.OnReceiveMessage="OnReceiveMessage",d.OnReceiveMessages="OnReceiveMessages",d.OnMessagesListLoaded="OnMessagesListLoaded",d.OnMessageSent="OnMessageSent",d.OnMessageFailed="OnMessageFailed",d.OnMessageRevoked="OnMessageRevoked",d.OnMessageDeleted="OnMessageDeleted",d.OnMessageRead="OnMessageRead",d.OnTypingStatusUpdate="OnTypingStatusUpdate",d.OnUserStatusChange="OnUserStatusChange",d.OnKickedOffline="OnKickedOffline",d.OnUserTokenInvalid="OnUserTokenInvalid",d.OnUserTokenExpired="OnUserTokenExpired",d.OnForceOffline="OnForceOffline",d.OnUserInfoUpdated="OnUserInfoUpdated",d.OnGroupCreated="OnGroupCreated",d.OnGroupInfoUpdated="OnGroupInfoUpdated",d.OnGroupDissolved="OnGroupDissolved",d.OnJoinGroup="OnJoinGroup",d.OnLeaveGroup="OnLeaveGroup",d.OnGroupMemberJoined="OnGroupMemberJoined",d.OnGroupMemberLeft="OnGroupMemberLeft",d.OnGroupMemberKicked="OnGroupMemberKicked",d.OnGroupOwnerChanged="OnGroupOwnerChanged",d.OnGroupAdminAdded="OnGroupAdminAdded",d.OnGroupAdminRemoved="OnGroupAdminRemoved",d.OnGroupMemberMuted="OnGroupMemberMuted",d.OnGroupMemberUnmuted="OnGroupMemberUnmuted",d.OnGroupAllMemberMuted="OnGroupAllMemberMuted",d.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",d.OnConversationCreated="OnConversationCreated",d.OnConversationDeleted="OnConversationDeleted",d.OnConversationListUpdated="OnConversationListUpdated",d.OnConversationUpdated="OnConversationUpdated",d.OnUnreadCountChanged="OnUnreadCountChanged",d.OnConversationPinned="OnConversationPinned",d.OnConversationUnpinned="OnConversationUnpinned",d.OnConversationMuted="OnConversationMuted",d.OnConversationUnmuted="OnConversationUnmuted",d.OnPongConn="OnPongConn",d.OnPongReConn="OnPongReConn",d.OnPongIdle="OnPongIdle",d.OnError="OnError",d.OnWarning="OnWarning",d.OnLog="OnLog";var g,h,v,p,f,m,M,C,S,E,O,G,b,T,A,R,P,y,I,N,_,k,L=/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.OnReceiveMessage]=[],t[e.CbEvents.OnReceiveMessages]=[],t[e.CbEvents.OnConversationListUpdated]=[],t[e.CbEvents.OnMessagesListLoaded]=[],t)}var n=t.prototype;return n.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},n.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},n.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},t}();e.MessageReceiveOptType=void 0,(g=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[g.Nomal=0]="Nomal",g[g.NotReceive=1]="NotReceive",g[g.NotNotify=2]="NotNotify",e.AllowType=void 0,(h=e.AllowType||(e.AllowType={}))[h.Allowed=0]="Allowed",h[h.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(v=e.GroupType||(e.GroupType={}))[v.Group=2]="Group",v[v.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,(f=e.GroupMemberRole||(e.GroupMemberRole={}))[f.Nomal=20]="Nomal",f[f.Admin=60]="Admin",f[f.Owner=100]="Owner",e.GroupVerificationType=void 0,(m=e.GroupVerificationType||(e.GroupVerificationType={}))[m.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",m[m.AllNeed=1]="AllNeed",m[m.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,(C=e.LogLevel||(e.LogLevel={}))[C.Debug=5]="Debug",C[C.Info=4]="Info",C[C.Warn=3]="Warn",C[C.Error=2]="Error",C[C.Fatal=1]="Fatal",C[C.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(S=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[S.Unprocessed=0]="Unprocessed",S[S.Agree=1]="Agree",S[S.Reject=-1]="Reject",e.MessageType=void 0,(E=e.MessageType||(e.MessageType={}))[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",e.SessionType=void 0,(O=e.SessionType||(e.SessionType={}))[O.Single=1]="Single",O[O.Group=3]="Group",O[O.WorkingGroup=3]="WorkingGroup",O[O.Notification=4]="Notification",e.GroupStatus=void 0,(G=e.GroupStatus||(e.GroupStatus={}))[G.Nomal=0]="Nomal",G[G.Baned=1]="Baned",G[G.Dismissed=2]="Dismissed",G[G.Muted=3]="Muted",e.GroupAtType=void 0,(b=e.GroupAtType||(e.GroupAtType={}))[b.AtNormal=0]="AtNormal",b[b.AtMe=1]="AtMe",b[b.AtAll=2]="AtAll",b[b.AtAllAtMe=3]="AtAllAtMe",b[b.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(T=e.GroupMemberFilter||(e.GroupMemberFilter={}))[T.All=0]="All",T[T.Owner=1]="Owner",T[T.Admin=2]="Admin",T[T.Nomal=3]="Nomal",T[T.AdminAndNomal=4]="AdminAndNomal",T[T.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(A=e.Relationship||(e.Relationship={}))[A.isBlack=0]="isBlack",A[A.isFriend=1]="isFriend",e.LoginStatus=void 0,(R=e.LoginStatus||(e.LoginStatus={}))[R.Logout=1]="Logout",R[R.Logging=2]="Logging",R[R.Logged=3]="Logged",e.OnlineState=void 0,(P=e.OnlineState||(e.OnlineState={}))[P.Online=1]="Online",P[P.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(y=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[y.Readed=0]="Readed",y[y.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(I=e.GROUP_TYPE||(e.GROUP_TYPE={}))[I.ONE_ON_ONE=0]="ONE_ON_ONE",I[I.GROUP_CHAT=1]="GROUP_CHAT",I[I.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",e.MSG_TYPE=void 0,(N=e.MSG_TYPE||(e.MSG_TYPE={}))[N.TEXT=0]="TEXT",N[N.IMAGE=1]="IMAGE",N[N.FILE=2]="FILE",N[N.AUDIO=3]="AUDIO",N[N.VIDEO=4]="VIDEO",N[N.LINK=5]="LINK",N[N.GIF=6]="GIF",N[N.OPTION=7]="OPTION",N[N.EMOJI=8]="EMOJI",N[N.CUSTOM=100]="CUSTOM",e.SSE_RESPONSE_TYPE=void 0,(_=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[_.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",_[_.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",_[_.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",_[_.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 U="undefined"!=typeof uni,w="undefined"!=typeof window,F="simsdk_",j={CONVERSATIONS:F+"conversations",GROUP_MESSAGES:F+"group_messages",USER_INFO:F+"user_info",META_INFO:F+"meta"},x={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},q=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,o=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=o,this.debug=i,this.config=r({},x,c)}var t=e.prototype;return t.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},t.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},t.getConversations=function(){return[].concat(this.conversationCache)},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversation=function(e){var t=this.conversationCache.findIndex(function(t){return t.id===e.id});t>=0?this.conversationCache[t]=r({},e):(this.conversationCache.push(r({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e){var t=e.groupId;if(!t)return!1;var n=this.conversationCache.findIndex(function(e){return e.id===t});return n>=0&&(this.conversationCache[n].latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0)},t.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},t.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var t=this.groupMessageCache[e.groupId].findIndex(function(t){return t.id===e.id});t>=0?this.groupMessageCache[e.groupId][t]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},t.addGroupMessages=function(e){for(var t,n=this,r={},s=o(e);!(t=s()).done;){var i=t.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.id===e.id});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},v=o(l);!(g=v()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,o,r=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(o=t.latest)?void 0:o.createTime)||0)-r})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var o=Math.ceil(.3*t),r=0;r<o&&r<n.length;r++){var s=n[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var o=n[t],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(j.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(j.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(j.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var o=localStorage.getItem(j.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,o=!0;o;){var r=localStorage.getItem(j.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(r){var s=JSON.parse(r);t=t.concat(s),n++}else o=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(j.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=t.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/o))),s=0;s<o;s+=r){var i=t.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(j.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(j.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(j.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),o=0;o<n&&o<t.length;o++)this.clearGroupMessageStorage(Number(t[o].groupId)),this.debug&&console.log("Cleared storage for group "+t[o].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var o=j.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(j.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=o(Object.keys(localStorage).filter(function(e){return e.startsWith(F)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=r({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),D=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.login=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),H=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,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,t,n,o,s){var i;void 0===n&&(n={});var a=r({},n,((i={msgType:e})[o]=s,i.status=0,i));return this.sendMessage(a,t)},n.createTextMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.FILE,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.VIDEO,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.LINK,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.GIF,e.RequestApi.CreateTextMessage,n,"link",t))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.OPTION,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.EMOJI,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.CUSTOM,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var n=t.groupId,o=t.lastId,r=t.size,s=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:o,size:s},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),V=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getConversations=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},n.markConversationRead=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),K=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.createGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),Y=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.services={},this.sdk=e}var n=t.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(t){switch(t){case e.ServiceName.USER:return new D(this.sdk);case e.ServiceName.MESSAGE:return new H(this.sdk);case e.ServiceName.CONVERSATION:return new V(this.sdk);case e.ServiceName.GROUP:return new K(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function J(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var z=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired],W=/*#__PURE__*/function(t){function n(n){var o;return void 0===n&&(n=!1),(o=t.call(this)||this).config={debug:!1},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.cacheManager=void 0,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){o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e);var t=o.config.apiAddr+e.url,n=e.data;if("GET"===e.method&&n){var r=new URLSearchParams;Object.entries(n).forEach(function(e){var t=e[1];null!=t&&r.append(e[0],String(t))});var s=r.toString();s&&(t+=(t.includes("?")?"&":"?")+s),n=void 0}return function(e){try{return Promise.resolve(U?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(e)}})}):function(){if(w)return console.log("isBrowser ",w),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,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:n})},o.createRequestFunction=function(e,t){return function(n){return o.sendRequest({data:n,url:e,method:t})}},o.createRequestFunctionWithoutParams=function(e,t){return function(){return o.sendRequest({data:void 0,method:t,url:e})}},o.handleMessage=function(t){switch(o.config.debug&&console.log("handleMessage response",t),t.ev){case e.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:if(1===t.dt.length){var n=t.dt[0];o.updateMessageCache(n),o.emit(e.CbEvents.OnReceiveMessage,n)}else{var r=t.dt;r.forEach(function(e){return o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,r)}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:s=t.ev,Object.values(e.CbEvents).includes(s)?(o.emit(t.ev,t.dt),z.includes(t.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:",t.ev)}var s},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(t){try{if(o.sseClient)return Promise.resolve("login repeat");if(!o.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!o.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");o.config.token=t.token,o.config.username=t.username,o.config.debug&&(console.log("login params",t),console.log("apiAddr",o.config.apiAddr)),o.cacheManager.initialize(t.username),o.cacheManager.resetActiveConversation();var n=o.cacheManager.getConversations();return n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n),Promise.resolve(o.user.login(t)).then(function(e){var n=e.code,r=e.data;return 0!=n?Promise.resolve("Login failed, Server error, error code is "+n):(o.initializeConversationCache(),console.log("initializeConversationCache "),o.sseClient=new l({url:o.config.apiAddr+"/chat/sse/conn?username="+t.username+"&token="+t.token+"&appKey="+o.config.appKey+"&random="+r,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,token:t.token}),J(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)}))})}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,o.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},o.getConversations=function(t){try{var n=J(function(){return Promise.resolve(o.conversation.getConversations(t)).then(function(n){var s=n.data;if(0===n.code&&s){var i=o.cacheManager.getConversations();if(1===t.pageNo)o.cacheManager.setConversations([].concat(s.records));else{var a=s.records||[],c=new Set(i.map(function(e){return e.id})),u=a.filter(function(e){return!c.has(e.id)}),d=[].concat(i,u);o.cacheManager.setConversations(d)}var l=r({},s,{records:o.cacheManager.getConversations()});o.emit(e.CbEvents.OnConversationListUpdated,l)}else{var g=o.cacheManager.getConversations();g.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,g)}})},function(t){console.error("Failed to get conversations:",t);var n=o.cacheManager.getConversations();n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(t){try{return Promise.resolve(J(function(){var n=new FormData;return n.append("file",t),n.append("filename",t.name),Promise.resolve(fetch(""+o.config.apiAddr+e.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){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(t){var n=t.file;try{return Promise.resolve(o.internalUploadFile(n)).then(function(t){var n,o=t.url,r=t.error;return{data:{url:void 0===o?"":o},msg:null!=(n=null==r?void 0:r.message)?n:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.sendTextMessage=function(e,t){return o.message.createTextMessage(e,t)},o.sendImageMessage=function(e,t){return o.message.createImageMessage(e,t)},o.sendFileMessage=function(e,t){return o.message.createFileMessage(e,t)},o.sendVideoMessage=function(e,t){return o.message.createVideoMessage(e,t)},o.sendLinkMessage=function(e,t){return o.message.createLinkMessage(e,t)},o.sendGifMessage=function(e,t){return o.message.createGifMessage(e,t)},o.sendOptionMessage=function(e,t){return o.message.createOptionMessage(e,t)},o.sendEmojiMessage=function(e,t){return o.message.createEmojiMessage(e,t)},o.sendCustomMessage=function(e,t){return o.message.createCustomMessage(e,t)},o.getHistoryMessageList=function(t){try{var n=J(function(){t.groupId&&o.cacheManager.markConversationAsActive(t.groupId);var n=[];if(t.groupId&&(n=o.cacheManager.getGroupMessages(t.groupId)),n.length>0&&""===t.lastId){var s=n.slice(0,t.size||20);o.emit(e.CbEvents.OnMessagesListLoaded,{messages:s,groupId:t.groupId})}return Promise.resolve(o.message.getHistoryMessageList(t)).then(function(s){var i=s.data;if(0===s.code&&i)t.groupId&&o.cacheManager.addGroupMessages(i.groupChatList||[]),o.emit(e.CbEvents.OnMessagesListLoaded,r({},i,{isFromCache:!1,groupId:t.groupId}));else if(n.length>0&&!(""===t.lastId&&n.length>0)){var a=n.slice(0,0+(t.size||20));o.emit(e.CbEvents.OnMessagesListLoaded,{messages:a,groupId:t.groupId})}})},function(n){console.error("Failed to get history messages:",n);var r=[];if(t.groupId&&(r=o.cacheManager.getGroupMessages(t.groupId)),r.length>0){var s=r.slice(0,0+(t.size||20));o.emit(e.CbEvents.OnMessagesListLoaded,{messages:s,groupId:t.groupId,error:n.message})}});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.getGroupMembers=function(e){return o.group.getGroupMembers(e)},o.joinGroup=function(e){return o.group.joinGroup(e)},o.markConversationRead=function(e){return o.conversation.markConversationRead(e)},o.config.debug=n,o.cacheManager=new q({persistEnabled:!0,debug:n}),o.serviceManager=new Y(o),o}var o,a;a=t,(o=n).prototype=Object.create(a.prototype),o.prototype.constructor=o,s(o,a);var c,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){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.groupCollapsed("%c📦 Request Payload","color: #555; font-weight: bold;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.4;",JSON.stringify(e.data,null,2)),console.groupEnd())},d.initializeConversationCache=function(){try{var t=this,n=J(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var o=n.code,r=n.data;t.config.debug&&console.log("Conversation 获取第一页会话数据",o,r),0===o&&r&&r.records&&(t.cacheManager.setConversations(r.records),t.emit(e.CbEvents.OnConversationListUpdated,r),t.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations"))})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},d.onMessage=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessage,t),function(){return n.off(e.CbEvents.OnReceiveMessage,t)}},d.onMessages=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessages,t),function(){return n.off(e.CbEvents.OnReceiveMessages,t)}},d.onConnectionChange=function(t){var n=this,o=function(){return t(!0)},r=function(){return t(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){n.off(e.CbEvents.OnConnected,o),n.off(e.CbEvents.OnDisconnected,r)}},d.onKickedOffline=function(t){var n=this;return this.on(e.CbEvents.OnKickedOffline,t),function(){return n.off(e.CbEvents.OnKickedOffline,t)}},d.updateMessageCache=function(t){if(t.groupId&&this.cacheManager.addGroupMessage(t),this.cacheManager.updateConversationWithMessage(t)){var n=this.cacheManager.getConversations();this.emit(e.CbEvents.OnConversationListUpdated,n)}},d.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},c=n,(u=[{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,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(L);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=W});
|
package/lib/types/entity.d.ts
CHANGED