sim-sdk-web 1.0.34 → 1.0.36

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.
@@ -1,5 +1,5 @@
1
1
  import SIMSDK from './index';
2
- import { GroupInfoVO, GroupItem, MessageItem, ReqPageParam, ServerResponse } from '../types/entity';
2
+ import { GroupInfoVO, GroupItem, LatestMessagesUpdateResponse, MessageItem, ReqPageParam, ServerResponse } from '../types/entity';
3
3
  /**
4
4
  * 群组服务 - 负责群组创建、管理和成员操作
5
5
  */
@@ -48,4 +48,10 @@ export declare class GroupService {
48
48
  * @returns Promise
49
49
  */
50
50
  getGroupLatestMessage(groups: Array<number>): Promise<ServerResponse<Map<number, MessageItem>>>;
51
+ /**
52
+ * 检测最新的群消息
53
+ * @param ttl
54
+ * @returns Promise
55
+ */
56
+ checkGroupLatestMessage(ttl: number): Promise<ServerResponse<LatestMessagesUpdateResponse>>;
51
57
  }
@@ -10,6 +10,7 @@ import { ConversationService } from './conversation';
10
10
  interface SDKOptions {
11
11
  debug?: boolean;
12
12
  apiAddr?: string;
13
+ ossApiAddr?: string;
13
14
  appKey?: string;
14
15
  }
15
16
  /**
@@ -21,10 +22,10 @@ declare class SIMSDK extends Emitter {
21
22
  private cacheManager;
22
23
  private sseClient?;
23
24
  private readonly serviceManager;
24
- private needCheckGroupMap;
25
25
  private conversationSyncTimer?;
26
26
  private syncInterval;
27
27
  private isSyncing;
28
+ private lastFetchTtl;
28
29
  /**
29
30
  * 创建SIMSDK实例
30
31
  * @param debug 是否启用调试模式
@@ -154,7 +155,7 @@ declare class SIMSDK extends Emitter {
154
155
  * @returns Promise<void> - 不返回数据,通过事件机制通知结果
155
156
  * @remarks 数据通过OnConversationListUpdated事件返回,请使用事件监听获取结果
156
157
  */
157
- getConversations: (params: ReqPageParam) => Promise<void>;
158
+ getConversations: (params: ReqPageParam) => Promise<boolean>;
158
159
  /**
159
160
  * 内部上传文件方法
160
161
  * @param file 要上传的文件
@@ -167,7 +168,8 @@ declare class SIMSDK extends Emitter {
167
168
  * @returns 上传结果Promise
168
169
  */
169
170
  uploadFile: ({ file }: UploadFileParams) => Promise<ServerResponse<{
170
- url: string;
171
+ originalUrl: string;
172
+ thumbnailUrl?: string;
171
173
  }>>;
172
174
  /**
173
175
  * 监听单条消息
@@ -202,11 +204,12 @@ declare class SIMSDK extends Emitter {
202
204
  sendTextMessage: (text: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
203
205
  /**
204
206
  * 发送图片消息
205
- * @param imageUrl 图片url
206
- * @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
207
+ * @param link 图片链接
208
+ * @param snapshot 图片快照(缩略图等)
209
+ * @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'和'snapshot'字段)
207
210
  * @returns 创建结果Promise
208
211
  */
209
- sendImageMessage: (imageUrl: string, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
212
+ sendImageMessage: (link: string, snapshot: string, params?: Partial<Omit<MessageItem, "link" | "snapshot">>) => Promise<ServerResponse<MessageItem[]>>;
210
213
  /**
211
214
  * 发送文件消息
212
215
  * @param fileUrl 文件URL
@@ -251,11 +254,11 @@ declare class SIMSDK extends Emitter {
251
254
  sendEmojiMessage: (emoji: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
252
255
  /**
253
256
  * 发送自定义消息
254
- * @param emoji 自定义消息内容
257
+ * @param customText 自定义消息内容
255
258
  * @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
256
259
  * @returns 创建结果Promise
257
260
  */
258
- sendCustomMessage: (emoji: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
261
+ sendCustomMessage: (customText: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
259
262
  /**
260
263
  * 获取历史消息列表
261
264
  * @param params
@@ -22,8 +22,7 @@ export declare class MessageService {
22
22
  * @param type 消息类型
23
23
  * @param url API端点
24
24
  * @param additionalParams 附加参数
25
- * @param contentKey 内容键名
26
- * @param content 消息内容
25
+ * @param content 内容对象,包含多个字段
27
26
  * @returns 创建结果Promise
28
27
  */
29
28
  private createMessage;
@@ -36,11 +35,14 @@ export declare class MessageService {
36
35
  createTextMessage(text: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
37
36
  /**
38
37
  * 创建图片消息
39
- * @param imageUrl 图片URL
38
+ * @param link 图片链接
39
+ * @param snapshot 图片快照URL
40
40
  * @param params 附加参数
41
41
  * @returns 创建结果Promise
42
42
  */
43
- createImageMessage(imageUrl: string, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
43
+ createImageMessage(link: string, // 图片链接
44
+ snapshot: string, // 图片快照
45
+ params?: Partial<Omit<MessageItem, 'link' | 'snapshot'>>): Promise<ServerResponse<MessageItem[]>>;
44
46
  /**
45
47
  * 创建文件消息
46
48
  * @param fileUrl 文件URL
@@ -15,6 +15,7 @@ export declare enum RequestApi {
15
15
  MarkConversationMessageAsRead = "/chat/group/lastRead",
16
16
  UpdateLatestMessage = "/chat/group/updateLatestMessage",
17
17
  GetLatestGroupChats = "/chat/group/latestGroupChats",
18
+ CheckLatestMessages = "/chat/group/checkLatestMessages",
18
19
  CreateTextMessage = "/chat/message/push",
19
20
  GetHistoryMessageList = "/chat/message/pull",
20
21
  UploadFile = "/chat/img/upload"
package/lib/index.es.js CHANGED
@@ -1 +1 @@
1
- import{EventSourcePolyfill as e}from"event-source-polyfill";function n(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,o=Array(n);t<n;t++)o[t]=e[t];return o}function t(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 o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},o.apply(null,arguments)}function r(e,n){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},r(e,n)}function s(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function n(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,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||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=n.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var n=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{n.eventSource=new e(n.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+n.token}}),n._openHandler=function(e){console.log("SSE connection established"),n.connected=!0,n.reconnectAttempts>0&&n.onReconnectSuccessCallback&&n.onReconnectSuccessCallback(),n.reconnectAttempts=0,n.reconnectTimeout=5e3,t("SSE connect successful!")},n._errorHandler=function(e){console.error("SSE connection error:",e),n.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(n.cleanup(),n.notifyConnectionClosed(!0)):n.handleReconnect(),n.connected||o(new Error("SSE connect error"))},n._messageHandler=function(e){try{console.log("SSE received message:",e.data);var t=JSON.parse(e.data);n.onMessageCallback&&n.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},n.eventSource.addEventListener("open",n._openHandler),n.eventSource.addEventListener("error",n._errorHandler),n.eventSource.addEventListener("message",n._messageHandler),n.handlers.forEach(function(e,t){var o=n._customHandlers.get(t);o&&n.eventSource&&n.eventSource.addEventListener(t,o)});var r=setTimeout(function(){n.connected||(o(new Error("Connection timeout")),n.handleReconnect())},1e4),s=n._openHandler;n._openHandler=function(e){clearTimeout(r),s(e)}}catch(e){console.error("Failed to create EventSource:",e),n.handleReconnect(),o(e)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},n}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(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.UpdateLatestMessage="/chat/group/updateLatestMessage",e.GetLatestGroupChats="/chat/group/latestGroupChats",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.OnActiveConversationSync="OnActiveConversationSync",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,v,f,p,m,C,M,S,O,E,y,A,G,I,b,T,P,R,N,k,L=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveMessages]=[],e[u.OnConversationListUpdated]=[],e[u.OnMessagesListLoaded]=[],e[u.OnActiveConversationSync]=[],e[u.OnConnected]=[],e[u.OnDisconnected]=[],e[u.OnReconnected]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();!function(e){e[e.Nomal=0]="Nomal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(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"}(v||(v={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(f||(f={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(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"}(C||(C={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(M||(M={})),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"}(S||(S={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(O||(O={})),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"}(y||(y={})),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"}(A||(A={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(G||(G={})),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"}(T||(T={})),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"}(P||(P={})),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"}(N||(N={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(k||(k={}));var U={NORMAL:0,EDITED:1,DELETED:2},_="undefined"!=typeof uni,w="undefined"!=typeof window,j="simsdk_",F={CONVERSATIONS:j+"conversations",GROUP_MESSAGES:j+"group_messages",USER_INFO:j+"user_info",META_INFO:j+"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 n=void 0===e?{}:e,t=n.persistEnabled,r=void 0===t||t,s=n.debug,i=void 0!==s&&s,a=n.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 n=e.prototype;return n.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))},n.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},n.getConversations=function(){return[].concat(this.conversationCache)},n.clearConversationUnread=function(e){var n=this.conversationCache.find(function(n){return n.id===e});n&&(n.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},n.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},n.getActiveConversation=function(){return this.activeConversation},n.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},n.updateConversation=function(e){var n=this.conversationCache.findIndex(function(n){return n.id===e.id});n>=0?this.conversationCache[n]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},n.updateConversationWithMessage=function(e){var n,t=e.groupId;if(!t)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===t});if(-1===o)return!1;var r=this.conversationCache[o],s=(null==(n=r.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===t?r.unreadCount=0:r.unreadCount+=e.msgId>s?e.msgId-s:1,r.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},n.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},n.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var n=this.groupMessageCache[e.groupId].findIndex(function(n){return n.msgId===e.msgId});n>=0?this.groupMessageCache[e.groupId][n]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},n.addGroupMessages=function(e){for(var n,o=this,r={},s=t(e);!(n=s()).done;){var i=n.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,n=o.groupMessageCache[d].findIndex(function(n){return n.msgId===e.msgId});n>=0?o.groupMessageCache[d][n]=e:o.groupMessageCache[d].push(e)},v=t(l);!(g=v()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},n.sortConversations=function(){this.conversationCache.sort(function(e,n){var t,o,r=(null==(t=e.latest)?void 0:t.createTime)||0;return((null==(o=n.latest)?void 0:o.createTime)||0)-r})},n.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,n){return(n.createTime||0)-(e.createTime||0)})},n.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))},n.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},n.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},n.enforceMemoryLimits=function(){var e=this,n=Object.keys(this.groupMessageCache).length;if(n>10){var t=Object.keys(this.groupMessageCache).map(function(n){return{groupId:n,lastAccess:e.accessTimeRecord[n]||0}});t.sort(function(e,n){return e.lastAccess-n.lastAccess});for(var o=Math.ceil(.3*n),r=0;r<o&&r<t.length;r++){var s=t[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},n.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},n.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var n=0,t=Object.entries(this.accessTimeRecord);n<t.length;n++){var o=t[n],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()},n.loadFromStorage=function(){var e=this;try{var n=localStorage.getItem(F.META_INFO);n&&(this.metaInfo=JSON.parse(n));var t=localStorage.getItem(F.CONVERSATIONS);t&&(this.conversationCache=JSON.parse(t)),Object.keys(localStorage).filter(function(e){return e.startsWith(F.GROUP_MESSAGES+".")}).forEach(function(n){var t=n.split(".")[1];t&&!isNaN(Number(t))&&(e.accessTimeRecord[t]=0)});var o=localStorage.getItem(F.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},n.loadGroupMessagesFromStorage=function(e){try{for(var n=[],t=0,o=!0;o;){var r=localStorage.getItem(F.GROUP_MESSAGES+"."+e+(t>0?"."+t:""));if(r){var s=JSON.parse(r);n=n.concat(s),t++}else o=!1}n.length>0&&(this.groupMessageCache[e]=n,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+n.length+" messages for group "+e+" from storage"))}catch(n){console.error("Failed to load group messages for "+e+" from storage:",n)}},n.saveConversationsToStorage=function(){try{localStorage.setItem(F.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},n.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var n=this.groupMessageCache[e];if(!n||0===n.length)return;var t=JSON.stringify(n);if(t.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=n.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(t.length/o))),s=0;s<o;s+=r){var i=n.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(F.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(F.GROUP_MESSAGES+"."+e,t)}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()}},n.saveMetaInfoToStorage=function(){try{localStorage.setItem(F.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},n.handleStorageError=function(){for(var e=this,n=Object.keys(this.accessTimeRecord).map(function(n){return{groupId:n,lastAccess:e.accessTimeRecord[n]||0}}).sort(function(e,n){return e.lastAccess-n.lastAccess}),t=Math.max(1,Math.floor(.2*n.length)),o=0;o<t&&o<n.length;o++)this.clearGroupMessageStorage(Number(n[o].groupId)),this.debug&&console.log("Cleared storage for group "+n[o].groupId+" due to quota exceeded")},n.clearGroupMessageStorage=function(e){for(var n=0,t=!0;t;){var o=F.GROUP_MESSAGES+"."+e+(n>0?"."+n:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),n++):t=!1}},n.saveUserInfoToStorage=function(){try{localStorage.setItem(F.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},n.clearStorage=function(){try{for(var e,n=t(Object.keys(localStorage).filter(function(e){return e.startsWith(j)}));!(e=n()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},n.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},n.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var n=this.conversationCache.find(function(n){return n.id===e});return!!n&&(this.activeConversation=o({},n),!0)},n.resetActiveConversation=function(){var e,n=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&n&&console.log("Active conversation reset"),n},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,t,r,s){var i;void 0===t&&(t={});var a=o({},t,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,n)},n.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.TEXT,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.IMAGE,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.FILE,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.VIDEO,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.LINK,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.GIF,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.OPTION,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.EMOJI,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.CUSTOM,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.getConversations=function(e){try{var n=this;return Promise.resolve(n.sdk.sendRequest({data:e,url:c.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}catch(e){return Promise.reject(e)}},n.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.normalizeConversation=function(e){var n,t,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(n=e.status)?n:1,latest:null!=(t=e.latest)?t:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},e}(),z=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateLatestMessage=function(e){try{var n=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:c.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:c.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),q=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case i.USER:return new K(this.sdk);case i.MESSAGE:return new H(this.sdk);case i.CONVERSATION:return new V(this.sdk);case i.GROUP:return new z(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function J(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var W=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],X=/*#__PURE__*/function(e){function n(n){var t;return void 0===n&&(n=!1),(t=e.call(this)||this).config={debug:!1},t.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},t.cacheManager=void 0,t.sseClient=void 0,t.serviceManager=void 0,t.needCheckGroupMap=new Map,t.conversationSyncTimer=void 0,t.syncInterval=2e4,t.isSyncing=!1,t.syncConversationsWithServer=function(){try{if(t.isSyncing)return t.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=t.isLoggedIn(),n=t.isConnected();return e&&n?Promise.resolve(function(e,n){try{var r=J(function(){if(t.isSyncing=!0,t.needCheckGroupMap.size<=0){var e=t.cacheManager.getConversations();if(t.needCheckGroupMap=new Map(e.filter(function(e){var n,t;return void 0!==(null==(n=e.latest)?void 0:n.msgId)&&null!==(null==(t=e.latest)?void 0:t.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),t.needCheckGroupMap.size<=0)return t.config.debug&&console.log("[SDK] No conversations to check"),void(t.isSyncing=!1)}return t.config.debug&&console.log("[SDK] Checking "+t.needCheckGroupMap.size+" conversations for updates"),Promise.resolve(t.group.updateLatestMessage(t.needCheckGroupMap)).then(function(e){if(0!==e.code)throw new Error("Failed to update latest messages: "+e.msg);var n=new Map(Object.entries(e.data||{}).map(function(e){var n=e[1];return[Number(e[0]),n]}));if(0===n.size)return t.config.debug&&console.log("[SDK] No conversations need updates"),void(t.isSyncing=!1);var r=t.cacheManager.getActiveConversation();if(r&&n.has(r.id)){var s=n.get(r.id),i=r.latest;if((null==i?void 0:i.msgId)!==s){var a=o({conversationId:r.id},null!=(null==i?void 0:i.msgId)&&{lastLocalMessageId:i.msgId},{serverLatestMessageId:s,timestamp:Date.now()});t.emit(u.OnActiveConversationSync,a),t.config.debug&&console.log("[SDK] Active conversation requires sync:",a)}n.delete(r.id)}var c=function(){if(n.size>0)return t.config.debug&&console.log("[SDK] Updating "+n.size+" non-active conversations"),Promise.resolve(t.group.getGroupLatestMessage(Array.from(n.keys()))).then(function(e){if(0===e.code&&e.data){var n=e.data,o=t.cacheManager.getConversations(),r=!1;if(n.forEach(function(e,n){var s=o.find(function(e){return e.id===n});s&&(s.latest&&s.latest.msgId===e.msgId&&s.latest.createTime===e.createTime||(s.latest=e,t.cacheManager.updateConversation(s),r=!0,t.config.debug&&console.log("[SDK] Updated conversation "+n+" with new message")))}),r){var s=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,s)}}else t.config.debug&&console.warn("[SDK] Failed to get latest messages:",e)})}();return c&&c.then?c.then(function(){}):void 0})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,r)}(0,function(e,n){var o=t.cacheManager.getConversations();if(t.needCheckGroupMap=new Map(o.filter(function(e){var n,t;return void 0!==(null==(n=e.latest)?void 0:n.msgId)&&null!==(null==(t=e.latest)?void 0:t.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),t.isSyncing=!1,e)throw n;return n})):(console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+n),Promise.resolve())}catch(e){return Promise.reject(e)}},t.configure=function(e){void 0!==e.debug&&(t.config.debug=e.debug),e.apiAddr&&(t.config.apiAddr=e.apiAddr),e.appKey&&(t.config.appKey=e.appKey)},t.sendRequest=function(e){t.internalState.lastActivity=Date.now(),t.config.debug&&t.logRequest(e);var n=t.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var n=e[1];null!=n&&r.append(e[0],String(n))});var s=r.toString();s&&(n+=(n.includes("?")?"&":"?")+s),o=void 0}return function(e){try{return Promise.resolve(_?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(w)return 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:n,method:e.method,headers:{"Content-Type":"application/json",Authorization:t.config.token?"Bearer "+t.config.token:""},data:o})},t.createRequestFunction=function(e,n){return function(o){return t.sendRequest({data:o,url:e,method:n})}},t.createRequestFunctionWithoutParams=function(e,n){return function(){return t.sendRequest({data:void 0,method:n,url:e})}},t.handleMessage=function(e){switch(t.config.debug&&console.log("handleMessage response",e),e.ev){case N.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var n=e.dt[0];t.needCheckGroupMap.has(n.groupId)&&t.needCheckGroupMap.delete(n.groupId),t.updateMessageCache(n),t.emit(u.OnReceiveMessage,n)}else{var o=e.dt;o.forEach(function(e){t.needCheckGroupMap.has(e.groupId)&&t.needCheckGroupMap.delete(e.groupId),t.updateMessageCache(e)}),t.emit(u.OnReceiveMessages,o)}break;case N.EVENT_PONG_IDLE:t.internalState.isConnected=!0;break;default:r=e.ev,Object.values(u).includes(r)?(t.emit(e.ev,e.dt),W.includes(e.ev)&&(t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.sseClient&&(t.sseClient.close(),t.sseClient=void 0))):t.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var r},t.handleReconnectSuccess=function(){t.config.username&&(t.internalState.isConnected=!0,t.internalState.reconnectAttempts=0,t.config.debug&&console.log("SSE reconnection successful"),t.emit(u.OnReconnected))},t.handleConnectionClosed=function(){t.internalState.isConnected=!1,t.config.debug&&console.log("SSE connection closed"),t.emit(u.OnDisconnected)},t.login=function(e){try{if(t.sseClient)return Promise.resolve("login repeat");if(!t.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!t.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");t.config.token=e.token,t.config.username=e.username,t.config.debug&&(console.log("login params",e),console.log("apiAddr",t.config.apiAddr)),t.cacheManager.initialize(e.username),t.cacheManager.resetActiveConversation();var n=t.cacheManager.getConversations();return n.length>0&&t.emit(u.OnConversationListUpdated,n),Promise.resolve(t.user.login(o({},e,{appKey:t.config.appKey}))).then(function(n){var o=n.code,r=n.data;return 0!=o?Promise.resolve("Login failed, Server error, error code is "+o):(t.initializeConversationCache(),console.log("initializeConversationCache "),t.sseClient=new d({url:t.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+t.config.appKey+"&random="+r,onMessage:t.handleMessage,onReconnectSuccess:t.handleReconnectSuccess,onConnectionClosed:t.handleConnectionClosed,token:e.token}),J(function(){return Promise.resolve(t.sseClient.connect()).then(function(e){return t.internalState.isLoggedIn=!0,e})},function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},t.logout=function(){try{return t.sseClient&&(t.sseClient.close(),t.sseClient=void 0),Promise.resolve(t.user.logout()).then(function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.config.username=void 0,t.config.token=void 0,t.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},t.getConversations=function(e){try{var n=J(function(){return Promise.resolve(t.conversation.getConversations(e)).then(function(n){var o=n.data;if(0===n.code&&o){var r=t.cacheManager.getConversations();if(1===e.pageNo)t.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);t.cacheManager.setConversations(c)}t.emit(u.OnConversationListUpdated,t.cacheManager.getConversations())}else{var d=t.cacheManager.getConversations();d.length>0&&t.emit(u.OnConversationListUpdated,d)}})},function(e){console.error("Failed to get conversations:",e);var n=t.cacheManager.getConversations();n.length>0&&t.emit(u.OnConversationListUpdated,n)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},t.internalUploadFile=function(e){try{return Promise.resolve(J(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+t.config.apiAddr+c.UploadFile,{method:"POST",headers:{Authorization:t.config.token?"Bearer "+t.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},t.uploadFile=function(e){var n=e.file;try{return Promise.resolve(t.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},t.sendTextMessage=function(e,n){return t.message.createTextMessage(e,n)},t.sendImageMessage=function(e,n){return t.message.createImageMessage(e,n)},t.sendFileMessage=function(e,n){return t.message.createFileMessage(e,n)},t.sendVideoMessage=function(e,n){return t.message.createVideoMessage(e,n)},t.sendLinkMessage=function(e,n){return t.message.createLinkMessage(e,n)},t.sendGifMessage=function(e,n){return t.message.createGifMessage(e,n)},t.sendOptionMessage=function(e,n){return t.message.createOptionMessage(e,n)},t.sendEmojiMessage=function(e,n){return t.message.createEmojiMessage(e,n)},t.sendCustomMessage=function(e,n){return t.message.createCustomMessage(e,n)},t.getHistoryMessageList=function(e){return t.message.getHistoryMessageList(e)},t.createGroup=function(e){return t.group.createGroup(e)},t.getGroupInfo=function(e){return t.group.getGroupInfo(e)},t.getGroupMembers=function(e){return t.group.getGroupMembers(e)},t.joinGroup=function(e){return t.group.joinGroup(e)},t.markConversationRead=function(e){return t.conversation.markConversationRead(e)},t.clearConversationUnread=function(e){t.cacheManager.clearConversationUnread(e);var n=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,n)},t.clearAllConversationUnread=function(){t.cacheManager.clearAllConversationUnread();var e=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,e)},t.config.debug=n,t.cacheManager=new D({persistEnabled:!0,debug:n}),t.serviceManager=new q(t),t.needCheckGroupMap=new Map,t.startConversationSync(),t}var t,l;l=e,(t=n).prototype=Object.create(l.prototype),t.prototype.constructor=t,r(t,l);var g,h,v=n.prototype;return v.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},v.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},v.syncConversationsNow=function(){return this.syncConversationsWithServer()},v.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},v.getService=function(e){return this.serviceManager.get(e)},v.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},v.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},v.logRequest=function(e){var n=Math.random().toString(36).substring(2,8),t={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 #"+n,"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: "+t+"; 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.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},v.initializeConversationCache=function(){try{var e=this,n=J(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var t=n.code,o=n.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",t,o),0===t&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(u.OnConversationListUpdated,r),e.needCheckGroupMap=new Map(r.filter(function(e){var n,t;return void 0!==(null==(n=e.latest)?void 0:n.msgId)&&null!==(null==(t=e.latest)?void 0:t.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),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(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},v.onMessage=function(e){var n=this;return this.on(u.OnReceiveMessage,e),function(){return n.off(u.OnReceiveMessage,e)}},v.onMessages=function(e){var n=this;return this.on(u.OnReceiveMessages,e),function(){return n.off(u.OnReceiveMessages,e)}},v.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(u.OnConnected,t),this.on(u.OnDisconnected,o),function(){n.off(u.OnConnected,t),n.off(u.OnDisconnected,o)}},v.onKickedOffline=function(e){var n=this;return this.on(u.OnKickedOffline,e),function(){return n.off(u.OnKickedOffline,e)}},v.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e)){var n=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,n)}},v.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},g=n,(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,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,s(o.key),o)}}(g.prototype,h),Object.defineProperty(g,"prototype",{writable:!1}),g}(L);export{g as AllowType,M as ApplicationHandleResult,u as CbEvents,a as ErrorCode,P as GROUP_TYPE,y as GroupAtType,v as GroupJoinSource,A as GroupMemberFilter,f as GroupMemberRole,T as GroupMessageReaderFilter,E as GroupStatus,h as GroupType,p as GroupVerificationType,C as LogLevel,I as LoginStatus,R as MSG_TYPE,l as MessageReceiveOptType,k as MessageSendStatus,U as MessageStatus,S as MessageType,b as OnlineState,m as Platform,G as Relationship,c as RequestApi,X as SIMSDK,N as SSE_RESPONSE_TYPE,i as ServiceName,O as SessionType};
1
+ import{EventSourcePolyfill as e}from"event-source-polyfill";function n(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,o=Array(n);t<n;t++)o[t]=e[t];return o}function t(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 o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},o.apply(null,arguments)}function r(e,n){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},r(e,n)}function s(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function n(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,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||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=n.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var n=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{n.eventSource=new e(n.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+n.token}}),n._openHandler=function(e){console.log("SSE connection established"),n.connected=!0,n.reconnectAttempts>0&&n.onReconnectSuccessCallback&&n.onReconnectSuccessCallback(),n.reconnectAttempts=0,n.reconnectTimeout=5e3,t("SSE connect successful!")},n._errorHandler=function(e){console.error("SSE connection error:",e),n.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(n.cleanup(),n.notifyConnectionClosed(!0)):n.handleReconnect(),n.connected||o(new Error("SSE connect error"))},n._messageHandler=function(e){try{console.log("SSE received message:",e.data);var t=JSON.parse(e.data);n.onMessageCallback&&n.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},n.eventSource.addEventListener("open",n._openHandler),n.eventSource.addEventListener("error",n._errorHandler),n.eventSource.addEventListener("message",n._messageHandler),n.handlers.forEach(function(e,t){var o=n._customHandlers.get(t);o&&n.eventSource&&n.eventSource.addEventListener(t,o)});var r=setTimeout(function(){n.connected||(o(new Error("Connection timeout")),n.handleReconnect())},1e4),s=n._openHandler;n._openHandler=function(e){clearTimeout(r),s(e)}}catch(e){console.error("Failed to create EventSource:",e),n.handleReconnect(),o(e)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},n}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(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.UpdateLatestMessage="/chat/group/updateLatestMessage",e.GetLatestGroupChats="/chat/group/latestGroupChats",e.CheckLatestMessages="/chat/group/checkLatestMessages",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.OnActiveConversationSync="OnActiveConversationSync",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,v,f,p,m,C,M,O,S,E,A,y,T,b,G,I,P,R,N,k,L=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveMessages]=[],e[u.OnConversationListUpdated]=[],e[u.OnMessagesListLoaded]=[],e[u.OnActiveConversationSync]=[],e[u.OnConnected]=[],e[u.OnDisconnected]=[],e[u.OnReconnected]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();!function(e){e[e.Nomal=0]="Nomal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(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"}(v||(v={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(f||(f={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(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"}(C||(C={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(M||(M={})),function(e){e[e.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",e[e.TextMessage=101]="TextMessage",e[e.PictureMessage=102]="PictureMessage",e[e.VoiceMessage=103]="VoiceMessage",e[e.VideoMessage=104]="VideoMessage",e[e.FileMessage=105]="FileMessage",e[e.AtTextMessage=106]="AtTextMessage",e[e.MergeMessage=107]="MergeMessage",e[e.CardMessage=108]="CardMessage",e[e.LocationMessage=109]="LocationMessage",e[e.CustomMessage=110]="CustomMessage",e[e.TypingMessage=113]="TypingMessage",e[e.QuoteMessage=114]="QuoteMessage",e[e.FaceMessage=115]="FaceMessage",e[e.FriendAdded=1201]="FriendAdded",e[e.OANotification=1400]="OANotification",e[e.GroupCreated=1501]="GroupCreated",e[e.MemberQuit=1504]="MemberQuit",e[e.GroupOwnerTransferred=1507]="GroupOwnerTransferred",e[e.MemberKicked=1508]="MemberKicked",e[e.MemberInvited=1509]="MemberInvited",e[e.MemberEnter=1510]="MemberEnter",e[e.GroupDismissed=1511]="GroupDismissed",e[e.GroupMemberMuted=1512]="GroupMemberMuted",e[e.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",e[e.GroupMuted=1514]="GroupMuted",e[e.GroupCancelMuted=1515]="GroupCancelMuted",e[e.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",e[e.GroupNameUpdated=1520]="GroupNameUpdated",e[e.BurnMessageChange=1701]="BurnMessageChange",e[e.RevokeMessage=2101]="RevokeMessage"}(O||(O={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(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"}(y||(y={})),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"}(b||(b={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(G||(G={})),function(e){e[e.Readed=0]="Readed",e[e.UnRead=1]="UnRead"}(I||(I={})),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"}(P||(P={})),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"}(N||(N={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(k||(k={}));var U={NORMAL:0,EDITED:1,DELETED:2},_="undefined"!=typeof uni,w="undefined"!=typeof window,j="simsdk_",F={CONVERSATIONS:j+"conversations",GROUP_MESSAGES:j+"group_messages",USER_INFO:j+"user_info",META_INFO:j+"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 n=void 0===e?{}:e,t=n.persistEnabled,r=void 0===t||t,s=n.debug,i=void 0!==s&&s,a=n.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 n=e.prototype;return n.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))},n.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},n.getConversations=function(){return[].concat(this.conversationCache)},n.clearConversationUnread=function(e){var n=this.conversationCache.find(function(n){return n.id===e});n&&(n.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},n.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},n.getActiveConversation=function(){return this.activeConversation},n.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},n.updateConversation=function(e){var n=this.conversationCache.findIndex(function(n){return n.id===e.id});n>=0?this.conversationCache[n]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},n.updateConversationWithMessage=function(e,n){var t,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(t=s.latest)?void 0:t.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:n!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},n.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},n.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var n=this.groupMessageCache[e.groupId].findIndex(function(n){return n.msgId===e.msgId});n>=0?this.groupMessageCache[e.groupId][n]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},n.addGroupMessages=function(e){for(var n,o=this,r={},s=t(e);!(n=s()).done;){var i=n.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,n=o.groupMessageCache[d].findIndex(function(n){return n.msgId===e.msgId});n>=0?o.groupMessageCache[d][n]=e:o.groupMessageCache[d].push(e)},v=t(l);!(g=v()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},n.sortConversations=function(){this.conversationCache.sort(function(e,n){var t,o,r=(null==(t=e.latest)?void 0:t.createTime)||0;return((null==(o=n.latest)?void 0:o.createTime)||0)-r})},n.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,n){return(n.createTime||0)-(e.createTime||0)})},n.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))},n.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},n.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},n.enforceMemoryLimits=function(){var e=this,n=Object.keys(this.groupMessageCache).length;if(n>10){var t=Object.keys(this.groupMessageCache).map(function(n){return{groupId:n,lastAccess:e.accessTimeRecord[n]||0}});t.sort(function(e,n){return e.lastAccess-n.lastAccess});for(var o=Math.ceil(.3*n),r=0;r<o&&r<t.length;r++){var s=t[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},n.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},n.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var n=0,t=Object.entries(this.accessTimeRecord);n<t.length;n++){var o=t[n],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()},n.loadFromStorage=function(){var e=this;try{var n=localStorage.getItem(F.META_INFO);n&&(this.metaInfo=JSON.parse(n));var t=localStorage.getItem(F.CONVERSATIONS);t&&(this.conversationCache=JSON.parse(t)),Object.keys(localStorage).filter(function(e){return e.startsWith(F.GROUP_MESSAGES+".")}).forEach(function(n){var t=n.split(".")[1];t&&!isNaN(Number(t))&&(e.accessTimeRecord[t]=0)});var o=localStorage.getItem(F.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},n.loadGroupMessagesFromStorage=function(e){try{for(var n=[],t=0,o=!0;o;){var r=localStorage.getItem(F.GROUP_MESSAGES+"."+e+(t>0?"."+t:""));if(r){var s=JSON.parse(r);n=n.concat(s),t++}else o=!1}n.length>0&&(this.groupMessageCache[e]=n,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+n.length+" messages for group "+e+" from storage"))}catch(n){console.error("Failed to load group messages for "+e+" from storage:",n)}},n.saveConversationsToStorage=function(){try{localStorage.setItem(F.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},n.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var n=this.groupMessageCache[e];if(!n||0===n.length)return;var t=JSON.stringify(n);if(t.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=n.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(t.length/o))),s=0;s<o;s+=r){var i=n.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(F.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(F.GROUP_MESSAGES+"."+e,t)}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()}},n.saveMetaInfoToStorage=function(){try{localStorage.setItem(F.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},n.handleStorageError=function(){for(var e=this,n=Object.keys(this.accessTimeRecord).map(function(n){return{groupId:n,lastAccess:e.accessTimeRecord[n]||0}}).sort(function(e,n){return e.lastAccess-n.lastAccess}),t=Math.max(1,Math.floor(.2*n.length)),o=0;o<t&&o<n.length;o++)this.clearGroupMessageStorage(Number(n[o].groupId)),this.debug&&console.log("Cleared storage for group "+n[o].groupId+" due to quota exceeded")},n.clearGroupMessageStorage=function(e){for(var n=0,t=!0;t;){var o=F.GROUP_MESSAGES+"."+e+(n>0?"."+n:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),n++):t=!1}},n.saveUserInfoToStorage=function(){try{localStorage.setItem(F.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},n.clearStorage=function(){try{for(var e,n=t(Object.keys(localStorage).filter(function(e){return e.startsWith(j)}));!(e=n()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},n.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},n.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var n=this.conversationCache.find(function(n){return n.id===e});return!!n&&(this.activeConversation=o({},n),!0)},n.resetActiveConversation=function(){var e,n=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&n&&console.log("Active conversation reset"),n},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,t,r){void 0===t&&(t={});var s=o({},t,{msgType:e},r,{status:0});return this.sendMessage(s,n)},n.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.TEXT,c.CreateTextMessage,n,{text:e}))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(e,n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(R.IMAGE,c.CreateTextMessage,t,{link:e,snapshot:n}))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.FILE,c.CreateTextMessage,n,{link:e}))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.VIDEO,c.CreateTextMessage,n,{link:e}))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.LINK,c.CreateTextMessage,n,{text:e}))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.GIF,c.CreateTextMessage,n,{link:e}))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.OPTION,c.CreateTextMessage,n,{text:e}))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.EMOJI,c.CreateTextMessage,n,{text:e}))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.CUSTOM,c.CreateTextMessage,n,{text:e}))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.getConversations=function(e){try{var n=this;return Promise.resolve(n.sdk.sendRequest({data:e,url:c.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}catch(e){return Promise.reject(e)}},n.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.normalizeConversation=function(e){var n,t,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(n=e.status)?n:1,latest:null!=(t=e.latest)?t:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},e}(),q=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateLatestMessage=function(e){try{var n=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:c.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:c.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},n.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:c.CheckLatestMessages,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 n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case i.USER:return new H(this.sdk);case i.MESSAGE:return new K(this.sdk);case i.CONVERSATION:return new V(this.sdk);case i.GROUP:return new q(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function J(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var W=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],X=/*#__PURE__*/function(e){function n(n){var t;return void 0===n&&(n=!1),(t=e.call(this)||this).config={debug:!1},t.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},t.cacheManager=void 0,t.sseClient=void 0,t.serviceManager=void 0,t.conversationSyncTimer=void 0,t.syncInterval=2e4,t.isSyncing=!1,t.lastFetchTtl=0,t.syncConversationsWithServer=function(){try{if(t.isSyncing)return t.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=t.isLoggedIn(),n=t.isConnected();if(!e||!n)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+n),Promise.resolve();var o=function(e,n){try{var o=J(function(){return t.isSyncing=!0,Promise.resolve(t.group.checkGroupLatestMessage(t.lastFetchTtl)).then(function(e){console.log("res ",e);var n=function(){if(0==e.code){var n=e.data,o=n.groupChatIds;return t.lastFetchTtl=n.ttl,Object.entries(o).forEach(function(e){var n=e[1],t=Number(e[0]);console.log("groupId: "+t+", messageId: "+n)}),Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(e){if(0===e.code){var n=e.data.records,o=t.cacheManager.getConversations(),r=new Set(o.map(function(e){return e.id})),s=n.filter(function(e){return!r.has(e.id)});s.length>0&&(t.cacheManager.setConversations([].concat(o,s)),t.emit(u.OnConversationCreated,s),t.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),t.emit(u.OnConversationListUpdated,t.cacheManager.getConversations())}})}}();if(n&&n.then)return n.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return o&&o.then?o.then(n.bind(null,!1),n.bind(null,!0)):n(!1,o)}(0,function(e,n){if(t.isSyncing=!1,e)throw n;return n});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},t.configure=function(e){void 0!==e.debug&&(t.config.debug=e.debug),e.apiAddr&&(t.config.apiAddr=e.apiAddr),e.ossApiAddr&&(t.config.ossApiAddr=e.ossApiAddr),e.appKey&&(t.config.appKey=e.appKey)},t.sendRequest=function(e){t.internalState.lastActivity=Date.now(),t.config.debug&&t.logRequest(e);var n=t.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var n=e[1];null!=n&&r.append(e[0],String(n))});var s=r.toString();s&&(n+=(n.includes("?")?"&":"?")+s),o=void 0}return function(e){try{return Promise.resolve(_?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(w)return 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:n,method:e.method,headers:{"Content-Type":"application/json",Authorization:t.config.token?"Bearer "+t.config.token:""},data:o})},t.createRequestFunction=function(e,n){return function(o){return t.sendRequest({data:o,url:e,method:n})}},t.createRequestFunctionWithoutParams=function(e,n){return function(){return t.sendRequest({data:void 0,method:n,url:e})}},t.handleMessage=function(e){switch(t.config.debug&&console.log("handleMessage response",e),e.ev){case N.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var n=e.dt[0];t.updateMessageCache(n),t.emit(u.OnReceiveMessage,n)}else{var o=e.dt;o.forEach(function(e){t.updateMessageCache(e)}),t.emit(u.OnReceiveMessages,o)}break;case N.EVENT_PONG_IDLE:t.internalState.isConnected=!0;break;default:r=e.ev,Object.values(u).includes(r)?(t.emit(e.ev,e.dt),W.includes(e.ev)&&(t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.sseClient&&(t.sseClient.close(),t.sseClient=void 0))):t.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var r},t.handleReconnectSuccess=function(){t.config.username&&(t.internalState.isConnected=!0,t.internalState.reconnectAttempts=0,t.config.debug&&console.log("SSE reconnection successful"),t.emit(u.OnReconnected))},t.handleConnectionClosed=function(){t.internalState.isConnected=!1,t.config.debug&&console.log("SSE connection closed"),t.emit(u.OnDisconnected)},t.login=function(e){try{if(t.sseClient)return Promise.resolve("login repeat");if(!t.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!t.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!t.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");t.config.token=e.token,t.config.username=e.username,t.config.debug&&(console.log("login params",e),console.log("apiAddr",t.config.apiAddr)),t.cacheManager.initialize(e.username),t.cacheManager.resetActiveConversation();var n=t.cacheManager.getConversations();return n.length>0&&t.emit(u.OnConversationListUpdated,n),Promise.resolve(t.user.login(o({},e,{appKey:t.config.appKey}))).then(function(n){var o=n.code,r=n.data;return 0!=o?Promise.resolve("Login failed, Server error, error code is "+o):(t.initializeConversationCache(),console.log("initializeConversationCache "),t.sseClient=new d({url:t.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+t.config.appKey+"&random="+r,onMessage:t.handleMessage,onReconnectSuccess:t.handleReconnectSuccess,onConnectionClosed:t.handleConnectionClosed,token:e.token}),J(function(){return Promise.resolve(t.sseClient.connect()).then(function(e){return t.internalState.isLoggedIn=!0,e})},function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},t.logout=function(){try{return t.sseClient&&(t.sseClient.close(),t.sseClient=void 0),Promise.resolve(t.user.logout()).then(function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.config.username=void 0,t.config.token=void 0,t.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},t.getConversations=function(e){try{return Promise.resolve(J(function(){return Promise.resolve(t.conversation.getConversations(e)).then(function(n){var o=n.data;if(0===n.code&&o){var r=t.cacheManager.getConversations();if(1===e.pageNo)t.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);t.cacheManager.setConversations(c)}t.emit(u.OnConversationListUpdated,t.cacheManager.getConversations())}else{var d=t.cacheManager.getConversations();d.length>0&&t.emit(u.OnConversationListUpdated,d)}return!0})},function(e){console.error("Failed to get conversations:",e);var n=t.cacheManager.getConversations();return n.length>0&&t.emit(u.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},t.internalUploadFile=function(e){try{return Promise.resolve(J(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+t.config.ossApiAddr+c.UploadFile,{method:"POST",headers:{Authorization:t.config.token?"Bearer "+t.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var n=(null==e?void 0:e.data)||{};return{originalUrl:n.originalUrl||"",thumbnailUrl:n.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},t.uploadFile=function(e){var n=e.file;try{return Promise.resolve(t.internalUploadFile(n)).then(function(e){var n,t=e.originalUrl,o=e.thumbnailUrl,r=e.error;return{data:{originalUrl:void 0===t?"":t,thumbnailUrl:void 0===o?"":o},msg:null!=(n=null==r?void 0:r.message)?n:"",code:r?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},t.sendTextMessage=function(e,n){return t.message.createTextMessage(e,n)},t.sendImageMessage=function(e,n,o){return t.message.createImageMessage(e,n,o)},t.sendFileMessage=function(e,n){return t.message.createFileMessage(e,n)},t.sendVideoMessage=function(e,n){return t.message.createVideoMessage(e,n)},t.sendLinkMessage=function(e,n){return t.message.createLinkMessage(e,n)},t.sendGifMessage=function(e,n){return t.message.createGifMessage(e,n)},t.sendOptionMessage=function(e,n){return t.message.createOptionMessage(e,n)},t.sendEmojiMessage=function(e,n){return t.message.createEmojiMessage(e,n)},t.sendCustomMessage=function(e,n){return t.message.createCustomMessage(e,n)},t.getHistoryMessageList=function(e){return e.groupId&&t.cacheManager.markConversationAsActive(e.groupId),t.message.getHistoryMessageList(e)},t.createGroup=function(e){return t.group.createGroup(e)},t.getGroupInfo=function(e){return t.group.getGroupInfo(e)},t.getGroupMembers=function(e){return t.group.getGroupMembers(e)},t.joinGroup=function(e){return t.group.joinGroup(e)},t.markConversationRead=function(e){return t.conversation.markConversationRead(e)},t.clearConversationUnread=function(e){t.cacheManager.clearConversationUnread(e);var n=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,n)},t.clearAllConversationUnread=function(){t.cacheManager.clearAllConversationUnread();var e=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,e)},t.config.debug=n,t.cacheManager=new D({persistEnabled:!0,debug:n}),t.serviceManager=new z(t),t.startConversationSync(),t}var t,l;l=e,(t=n).prototype=Object.create(l.prototype),t.prototype.constructor=t,r(t,l);var g,h,v=n.prototype;return v.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},v.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},v.syncConversationsNow=function(){return this.syncConversationsWithServer()},v.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},v.getService=function(e){return this.serviceManager.get(e)},v.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},v.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},v.logRequest=function(e){var n=Math.random().toString(36).substring(2,8),t={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 #"+n,"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: "+t+"; 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.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},v.initializeConversationCache=function(){try{var e=this,n=J(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var t=n.code,o=n.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",t,o),0===t&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(u.OnConversationListUpdated,r),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(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},v.onMessage=function(e){var n=this;return this.on(u.OnReceiveMessage,e),function(){return n.off(u.OnReceiveMessage,e)}},v.onMessages=function(e){var n=this;return this.on(u.OnReceiveMessages,e),function(){return n.off(u.OnReceiveMessages,e)}},v.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(u.OnConnected,t),this.on(u.OnDisconnected,o),function(){n.off(u.OnConnected,t),n.off(u.OnDisconnected,o)}},v.onKickedOffline=function(e){var n=this;return this.on(u.OnKickedOffline,e),function(){return n.off(u.OnKickedOffline,e)}},v.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var n=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,n)}},v.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},g=n,(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,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,s(o.key),o)}}(g.prototype,h),Object.defineProperty(g,"prototype",{writable:!1}),g}(L);export{g as AllowType,M as ApplicationHandleResult,u as CbEvents,a as ErrorCode,P as GROUP_TYPE,A as GroupAtType,v as GroupJoinSource,y as GroupMemberFilter,f as GroupMemberRole,I as GroupMessageReaderFilter,E as GroupStatus,h as GroupType,p as GroupVerificationType,C as LogLevel,b as LoginStatus,R as MSG_TYPE,l as MessageReceiveOptType,k as MessageSendStatus,U as MessageStatus,O as MessageType,G as OnlineState,m as Platform,T as Relationship,c as RequestApi,X as SIMSDK,N 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,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+""}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=2e3*Math.random()+3e3,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||2e3*Math.random()+3e3,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}();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.UpdateLatestMessage="/chat/group/updateLatestMessage",c.GetLatestGroupChats="/chat/group/latestGroupChats",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.OnActiveConversationSync="OnActiveConversationSync",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,C,M,S,O,E,G,b,A,T,x,y,R,I,P,N,k=/*#__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[exports.CbEvents.OnActiveConversationSync]=[],e[exports.CbEvents.OnConnected]=[],e[exports.CbEvents.OnDisconnected]=[],e[exports.CbEvents.OnReconnected]=[],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}();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,(C=exports.LogLevel||(exports.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",exports.ApplicationHandleResult=void 0,(M=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[M.Unprocessed=0]="Unprocessed",M[M.Agree=1]="Agree",M[M.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,(O=exports.SessionType||(exports.SessionType={}))[O.Single=1]="Single",O[O.Group=3]="Group",O[O.WorkingGroup=3]="WorkingGroup",O[O.Notification=4]="Notification",exports.GroupStatus=void 0,(E=exports.GroupStatus||(exports.GroupStatus={}))[E.Nomal=0]="Nomal",E[E.Baned=1]="Baned",E[E.Dismissed=2]="Dismissed",E[E.Muted=3]="Muted",exports.GroupAtType=void 0,(G=exports.GroupAtType||(exports.GroupAtType={}))[G.AtNormal=0]="AtNormal",G[G.AtMe=1]="AtMe",G[G.AtAll=2]="AtAll",G[G.AtAllAtMe=3]="AtAllAtMe",G[G.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(b=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[b.All=0]="All",b[b.Owner=1]="Owner",b[b.Admin=2]="Admin",b[b.Nomal=3]="Nomal",b[b.AdminAndNomal=4]="AdminAndNomal",b[b.AdminAndOwner=5]="AdminAndOwner",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,(x=exports.OnlineState||(exports.OnlineState={}))[x.Online=1]="Online",x[x.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(y=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[y.Readed=0]="Readed",y[y.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(R=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[R.ONE_ON_ONE=0]="ONE_ON_ONE",R[R.GROUP_CHAT=1]="GROUP_CHAT",R[R.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(I=exports.MSG_TYPE||(exports.MSG_TYPE={}))[I.TEXT=0]="TEXT",I[I.IMAGE=1]="IMAGE",I[I.FILE=2]="FILE",I[I.AUDIO=3]="AUDIO",I[I.VIDEO=4]="VIDEO",I[I.LINK=5]="LINK",I[I.GIF=6]="GIF",I[I.OPTION=7]="OPTION",I[I.EMOJI=8]="EMOJI",I[I.CUSTOM=100]="CUSTOM",exports.SSE_RESPONSE_TYPE=void 0,(P=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[P.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",P[P.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",P[P.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",P[P.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(N=exports.MessageSendStatus||(exports.MessageSendStatus={}))[N.Sending=1]="Sending",N[N.Succeed=2]="Succeed",N[N.Failed=3]="Failed";var _="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,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({},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.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),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,n=e.groupId;if(!n)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===n});if(-1===o)return!1;var r=this.conversationCache[o],s=(null==(t=r.latest)?void 0:t.msgId)||0;return this.activeConversation&&this.activeConversation.id===n?r.unreadCount=0:r.unreadCount+=e.msgId>s?e.msgId-s:1,r.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.msgId===e.msgId});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,p=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},h=o(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,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(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 o=localStorage.getItem(w.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(w.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(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 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(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)),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=w.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),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=o(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=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 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}(),q=/*#__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,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(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,o=e.size,r=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:r},url:exports.RequestApi.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{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(t.normalizeConversation),e})}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)}},t.normalizeConversation=function(e){var t,n,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},e}(),H=/*#__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)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:exports.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:exports.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__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 D(this.sdk);case exports.ServiceName.MESSAGE:return new q(this.sdk);case exports.ServiceName.CONVERSATION:return new K(this.sdk);case exports.ServiceName.GROUP:return new H(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 J=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired],Y=/*#__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.needCheckGroupMap=new Map,n.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();return e&&t?Promise.resolve(function(e,t){try{var o=z(function(){if(n.isSyncing=!0,n.needCheckGroupMap.size<=0){var e=n.cacheManager.getConversations();if(n.needCheckGroupMap=new Map(e.filter(function(e){var t,n;return void 0!==(null==(t=e.latest)?void 0:t.msgId)&&null!==(null==(n=e.latest)?void 0:n.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),n.needCheckGroupMap.size<=0)return n.config.debug&&console.log("[SDK] No conversations to check"),void(n.isSyncing=!1)}return n.config.debug&&console.log("[SDK] Checking "+n.needCheckGroupMap.size+" conversations for updates"),Promise.resolve(n.group.updateLatestMessage(n.needCheckGroupMap)).then(function(e){if(0!==e.code)throw new Error("Failed to update latest messages: "+e.msg);var t=new Map(Object.entries(e.data||{}).map(function(e){var t=e[1];return[Number(e[0]),t]}));if(0===t.size)return n.config.debug&&console.log("[SDK] No conversations need updates"),void(n.isSyncing=!1);var o=n.cacheManager.getActiveConversation();if(o&&t.has(o.id)){var s=t.get(o.id),i=o.latest;if((null==i?void 0:i.msgId)!==s){var a=r({conversationId:o.id},null!=(null==i?void 0:i.msgId)&&{lastLocalMessageId:i.msgId},{serverLatestMessageId:s,timestamp:Date.now()});n.emit(exports.CbEvents.OnActiveConversationSync,a),n.config.debug&&console.log("[SDK] Active conversation requires sync:",a)}t.delete(o.id)}var c=function(){if(t.size>0)return n.config.debug&&console.log("[SDK] Updating "+t.size+" non-active conversations"),Promise.resolve(n.group.getGroupLatestMessage(Array.from(t.keys()))).then(function(e){if(0===e.code&&e.data){var t=e.data,o=n.cacheManager.getConversations(),r=!1;if(t.forEach(function(e,t){var s=o.find(function(e){return e.id===t});s&&(s.latest&&s.latest.msgId===e.msgId&&s.latest.createTime===e.createTime||(s.latest=e,n.cacheManager.updateConversation(s),r=!0,n.config.debug&&console.log("[SDK] Updated conversation "+t+" with new message")))}),r){var s=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,s)}}else n.config.debug&&console.warn("[SDK] Failed to get latest messages:",e)})}();return c&&c.then?c.then(function(){}):void 0})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return t(!0,e)}return o&&o.then?o.then(t.bind(null,!1),t.bind(null,!0)):t(!1,o)}(0,function(e,t){var o=n.cacheManager.getConversations();if(n.needCheckGroupMap=new Map(o.filter(function(e){var t,n;return void 0!==(null==(t=e.latest)?void 0:t.msgId)&&null!==(null==(n=e.latest)?void 0:n.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),n.isSyncing=!1,e)throw t;return t})):(console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve())}catch(e){return Promise.reject(e)}},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(_?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 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 exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.needCheckGroupMap.has(t.groupId)&&n.needCheckGroupMap.delete(t.groupId),n.updateMessageCache(t),n.emit(exports.CbEvents.OnReceiveMessage,t)}else{var o=e.dt;o.forEach(function(e){n.needCheckGroupMap.has(e.groupId)&&n.needCheckGroupMap.delete(e.groupId),n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,o)}break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;default:r=e.ev,Object.values(exports.CbEvents).includes(r)?(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 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(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(r({},e,{appKey:n.config.appKey}))).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}),z(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!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 r=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);n.cacheManager.setConversations(c)}n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}else{var u=n.cacheManager.getConversations();u.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,u)}})},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(z(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,o=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?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){return n.message.getHistoryMessageList(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.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,e)},n.config.debug=t,n.cacheManager=new j({persistEnabled:!0,debug:t}),n.serviceManager=new V(n),n.needCheckGroupMap=new Map,n.startConversationSync(),n}var n,o;o=e,(n=t).prototype=Object.create(o.prototype),n.prototype.constructor=n,s(n,o);var a,c,u=t.prototype;return u.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},u.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},u.syncConversationsNow=function(){return this.syncConversationsWithServer()},u.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},u.getService=function(e){return this.serviceManager.get(e)},u.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},u.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),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",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.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},u.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.code,o=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,r),e.needCheckGroupMap=new Map(r.filter(function(e){var t,n;return void 0!==(null==(t=e.latest)?void 0:t.msgId)&&null!==(null==(n=e.latest)?void 0:n.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),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)}},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)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,o),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,o)}},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 o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(k);exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=Y;
1
+ var e,t=require("event-source-polyfill");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+""}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=2e3*Math.random()+3e3,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||2e3*Math.random()+3e3,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}();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.UpdateLatestMessage="/chat/group/updateLatestMessage",c.GetLatestGroupChats="/chat/group/latestGroupChats",c.CheckLatestMessages="/chat/group/checkLatestMessages",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.OnActiveConversationSync="OnActiveConversationSync",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,C,M,S,O,E,A,b,T,x,G,y,R,P,I,N,k=/*#__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[exports.CbEvents.OnActiveConversationSync]=[],e[exports.CbEvents.OnConnected]=[],e[exports.CbEvents.OnDisconnected]=[],e[exports.CbEvents.OnReconnected]=[],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}();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,(C=exports.LogLevel||(exports.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",exports.ApplicationHandleResult=void 0,(M=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[M.Unprocessed=0]="Unprocessed",M[M.Agree=1]="Agree",M[M.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,(O=exports.SessionType||(exports.SessionType={}))[O.Single=1]="Single",O[O.Group=3]="Group",O[O.WorkingGroup=3]="WorkingGroup",O[O.Notification=4]="Notification",exports.GroupStatus=void 0,(E=exports.GroupStatus||(exports.GroupStatus={}))[E.Nomal=0]="Nomal",E[E.Baned=1]="Baned",E[E.Dismissed=2]="Dismissed",E[E.Muted=3]="Muted",exports.GroupAtType=void 0,(A=exports.GroupAtType||(exports.GroupAtType={}))[A.AtNormal=0]="AtNormal",A[A.AtMe=1]="AtMe",A[A.AtAll=2]="AtAll",A[A.AtAllAtMe=3]="AtAllAtMe",A[A.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(b=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[b.All=0]="All",b[b.Owner=1]="Owner",b[b.Admin=2]="Admin",b[b.Nomal=3]="Nomal",b[b.AdminAndNomal=4]="AdminAndNomal",b[b.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(T=exports.Relationship||(exports.Relationship={}))[T.isBlack=0]="isBlack",T[T.isFriend=1]="isFriend",exports.LoginStatus=void 0,(x=exports.LoginStatus||(exports.LoginStatus={}))[x.Logout=1]="Logout",x[x.Logging=2]="Logging",x[x.Logged=3]="Logged",exports.OnlineState=void 0,(G=exports.OnlineState||(exports.OnlineState={}))[G.Online=1]="Online",G[G.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(y=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[y.Readed=0]="Readed",y[y.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(R=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[R.ONE_ON_ONE=0]="ONE_ON_ONE",R[R.GROUP_CHAT=1]="GROUP_CHAT",R[R.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(P=exports.MSG_TYPE||(exports.MSG_TYPE={}))[P.TEXT=0]="TEXT",P[P.IMAGE=1]="IMAGE",P[P.FILE=2]="FILE",P[P.AUDIO=3]="AUDIO",P[P.VIDEO=4]="VIDEO",P[P.LINK=5]="LINK",P[P.GIF=6]="GIF",P[P.OPTION=7]="OPTION",P[P.EMOJI=8]="EMOJI",P[P.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 L="undefined"!=typeof uni,_="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,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({},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.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),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,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.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.msgId===e.msgId});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,p=function(){var e=g.value,t=n.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?n.groupMessageCache[d][t]=e:n.groupMessageCache[d].push(e)},h=o(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,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(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 o=localStorage.getItem(w.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(w.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(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 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(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)),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=w.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),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=o(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=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 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}(),q=/*#__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,o){void 0===n&&(n={});var s=r({},n,{msgType:e},o,{status:0});return this.sendMessage(s,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,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,n,{link:e,snapshot:t}))}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,o=e.size,r=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:r},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{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(t.normalizeConversation),e})}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)}},t.normalizeConversation=function(e){var t,n,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},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)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:exports.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:exports.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:exports.RequestApi.CheckLatestMessages,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 D(this.sdk);case exports.ServiceName.MESSAGE:return new q(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 J(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var Y=[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.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.lastFetchTtl=0,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();if(!e||!t)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve();var o=function(e,t){try{var o=J(function(){return n.isSyncing=!0,Promise.resolve(n.group.checkGroupLatestMessage(n.lastFetchTtl)).then(function(e){console.log("res ",e);var t=function(){if(0==e.code){var t=e.data,o=t.groupChatIds;return n.lastFetchTtl=t.ttl,Object.entries(o).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(n.conversation.getConversations({pageNo:1,pageSize:20})).then(function(e){if(0===e.code){var t=e.data.records,o=n.cacheManager.getConversations(),r=new Set(o.map(function(e){return e.id})),s=t.filter(function(e){return!r.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(o,s)),n.emit(exports.CbEvents.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}})}}();if(t&&t.then)return t.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return t(!0,e)}return o&&o.then?o.then(t.bind(null,!1),t.bind(null,!0)):t(!1,o)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},n.configure=function(e){void 0!==e.debug&&(n.config.debug=e.debug),e.apiAddr&&(n.config.apiAddr=e.apiAddr),e.ossApiAddr&&(n.config.ossApiAddr=e.ossApiAddr),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(L?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(_)return 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 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 o=e.dt;o.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,o)}break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;default:r=e.ev,Object.values(exports.CbEvents).includes(r)?(n.emit(e.ev,e.dt),Y.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(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.ossApiAddr)return Promise.reject("No ossApiAddr 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(r({},e,{appKey:n.config.appKey}))).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}),J(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!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{return Promise.resolve(J(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var o=t.data;if(0===t.code&&o){var r=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);n.cacheManager.setConversations(c)}n.emit(exports.CbEvents.OnConversationListUpdated,n.cacheManager.getConversations())}else{var u=n.cacheManager.getConversations();u.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,u)}return!0})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(exports.CbEvents.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(J(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.ossApiAddr+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){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}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.originalUrl,o=e.thumbnailUrl,r=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===o?"":o},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,o){return n.message.createImageMessage(e,t,o)},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){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(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.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(exports.CbEvents.OnConversationListUpdated,e)},n.config.debug=t,n.cacheManager=new j({persistEnabled:!0,debug:t}),n.serviceManager=new K(n),n.startConversationSync(),n}var n,o;o=e,(n=t).prototype=Object.create(o.prototype),n.prototype.constructor=n,s(n,o);var a,c,u=t.prototype;return u.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},u.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},u.syncConversationsNow=function(){return this.syncConversationsWithServer()},u.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},u.getService=function(e){return this.serviceManager.get(e)},u.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},u.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),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",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.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},u.initializeConversationCache=function(){try{var e=this,t=J(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,o=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,o),0===n&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,r),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)}},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)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,o),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,o)}},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,this.config.username)){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 o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,i(o.key),o)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(k);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=2e3*Math.random()+3e3,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||2e3*Math.random()+3e3,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.UpdateLatestMessage="/chat/group/updateLatestMessage",u.GetLatestGroupChats="/chat/group/latestGroupChats",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.OnActiveConversationSync="OnActiveConversationSync",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,C,M,S,O,E,b,G,A,T,y,R,I,P,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[e.CbEvents.OnActiveConversationSync]=[],t[e.CbEvents.OnConnected]=[],t[e.CbEvents.OnDisconnected]=[],t[e.CbEvents.OnReconnected]=[],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,(C=e.Platform||(e.Platform={}))[C.iOS=1]="iOS",C[C.Android=2]="Android",C[C.Windows=3]="Windows",C[C.MacOSX=4]="MacOSX",C[C.Web=5]="Web",C[C.Linux=7]="Linux",C[C.AndroidPad=8]="AndroidPad",C[C.iPad=9]="iPad",e.LogLevel=void 0,(M=e.LogLevel||(e.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",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,(O=e.MessageType||(e.MessageType={}))[O.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",O[O.TextMessage=101]="TextMessage",O[O.PictureMessage=102]="PictureMessage",O[O.VoiceMessage=103]="VoiceMessage",O[O.VideoMessage=104]="VideoMessage",O[O.FileMessage=105]="FileMessage",O[O.AtTextMessage=106]="AtTextMessage",O[O.MergeMessage=107]="MergeMessage",O[O.CardMessage=108]="CardMessage",O[O.LocationMessage=109]="LocationMessage",O[O.CustomMessage=110]="CustomMessage",O[O.TypingMessage=113]="TypingMessage",O[O.QuoteMessage=114]="QuoteMessage",O[O.FaceMessage=115]="FaceMessage",O[O.FriendAdded=1201]="FriendAdded",O[O.OANotification=1400]="OANotification",O[O.GroupCreated=1501]="GroupCreated",O[O.MemberQuit=1504]="MemberQuit",O[O.GroupOwnerTransferred=1507]="GroupOwnerTransferred",O[O.MemberKicked=1508]="MemberKicked",O[O.MemberInvited=1509]="MemberInvited",O[O.MemberEnter=1510]="MemberEnter",O[O.GroupDismissed=1511]="GroupDismissed",O[O.GroupMemberMuted=1512]="GroupMemberMuted",O[O.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",O[O.GroupMuted=1514]="GroupMuted",O[O.GroupCancelMuted=1515]="GroupCancelMuted",O[O.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",O[O.GroupNameUpdated=1520]="GroupNameUpdated",O[O.BurnMessageChange=1701]="BurnMessageChange",O[O.RevokeMessage=2101]="RevokeMessage",e.SessionType=void 0,(E=e.SessionType||(e.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",e.GroupStatus=void 0,(b=e.GroupStatus||(e.GroupStatus={}))[b.Nomal=0]="Nomal",b[b.Baned=1]="Baned",b[b.Dismissed=2]="Dismissed",b[b.Muted=3]="Muted",e.GroupAtType=void 0,(G=e.GroupAtType||(e.GroupAtType={}))[G.AtNormal=0]="AtNormal",G[G.AtMe=1]="AtMe",G[G.AtAll=2]="AtAll",G[G.AtAllAtMe=3]="AtAllAtMe",G[G.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,(T=e.Relationship||(e.Relationship={}))[T.isBlack=0]="isBlack",T[T.isFriend=1]="isFriend",e.LoginStatus=void 0,(y=e.LoginStatus||(e.LoginStatus={}))[y.Logout=1]="Logout",y[y.Logging=2]="Logging",y[y.Logged=3]="Logged",e.OnlineState=void 0,(R=e.OnlineState||(e.OnlineState={}))[R.Online=1]="Online",R[R.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(I=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[I.Readed=0]="Readed",I[I.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(P=e.GROUP_TYPE||(e.GROUP_TYPE={}))[P.ONE_ON_ONE=0]="ONE_ON_ONE",P[P.GROUP_CHAT=1]="GROUP_CHAT",P[P.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",e.MSG_TYPE=void 0,(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,(k=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[k.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",k[k.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",k[k.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",k[k.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(_=e.MessageSendStatus||(e.MessageSendStatus={}))[_.Sending=1]="Sending",_[_.Succeed=2]="Succeed",_[_.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},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.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),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,n=e.groupId;if(!n)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===n});if(-1===o)return!1;var r=this.conversationCache[o],s=(null==(t=r.latest)?void 0:t.msgId)||0;return this.activeConversation&&this.activeConversation.id===n?r.unreadCount=0:r.unreadCount+=e.msgId>s?e.msgId-s:1,r.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.msgId===e.msgId});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.msgId===e.msgId});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}(),q=/*#__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}(),K=/*#__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}(),H=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.getConversations=function(t){try{var n=this;return Promise.resolve(n.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}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)}},n.normalizeConversation=function(e){var t,n,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},t}(),V=/*#__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)}},n.updateLatestMessage=function(t){try{var n=Object.fromEntries(t.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:e.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:t},url:e.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),z=/*#__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 q(this.sdk);case e.ServiceName.MESSAGE:return new K(this.sdk);case e.ServiceName.CONVERSATION:return new H(this.sdk);case e.ServiceName.GROUP:return new V(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 Y=[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.needCheckGroupMap=new Map,o.conversationSyncTimer=void 0,o.syncInterval=2e4,o.isSyncing=!1,o.syncConversationsWithServer=function(){try{if(o.isSyncing)return o.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var t=o.isLoggedIn(),n=o.isConnected();return t&&n?Promise.resolve(function(t,n){try{var s=J(function(){if(o.isSyncing=!0,o.needCheckGroupMap.size<=0){var t=o.cacheManager.getConversations();if(o.needCheckGroupMap=new Map(t.filter(function(e){var t,n;return void 0!==(null==(t=e.latest)?void 0:t.msgId)&&null!==(null==(n=e.latest)?void 0:n.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),o.needCheckGroupMap.size<=0)return o.config.debug&&console.log("[SDK] No conversations to check"),void(o.isSyncing=!1)}return o.config.debug&&console.log("[SDK] Checking "+o.needCheckGroupMap.size+" conversations for updates"),Promise.resolve(o.group.updateLatestMessage(o.needCheckGroupMap)).then(function(t){if(0!==t.code)throw new Error("Failed to update latest messages: "+t.msg);var n=new Map(Object.entries(t.data||{}).map(function(e){var t=e[1];return[Number(e[0]),t]}));if(0===n.size)return o.config.debug&&console.log("[SDK] No conversations need updates"),void(o.isSyncing=!1);var s=o.cacheManager.getActiveConversation();if(s&&n.has(s.id)){var i=n.get(s.id),a=s.latest;if((null==a?void 0:a.msgId)!==i){var c=r({conversationId:s.id},null!=(null==a?void 0:a.msgId)&&{lastLocalMessageId:a.msgId},{serverLatestMessageId:i,timestamp:Date.now()});o.emit(e.CbEvents.OnActiveConversationSync,c),o.config.debug&&console.log("[SDK] Active conversation requires sync:",c)}n.delete(s.id)}var u=function(){if(n.size>0)return o.config.debug&&console.log("[SDK] Updating "+n.size+" non-active conversations"),Promise.resolve(o.group.getGroupLatestMessage(Array.from(n.keys()))).then(function(t){if(0===t.code&&t.data){var n=t.data,r=o.cacheManager.getConversations(),s=!1;if(n.forEach(function(e,t){var n=r.find(function(e){return e.id===t});n&&(n.latest&&n.latest.msgId===e.msgId&&n.latest.createTime===e.createTime||(n.latest=e,o.cacheManager.updateConversation(n),s=!0,o.config.debug&&console.log("[SDK] Updated conversation "+t+" with new message")))}),s){var i=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,i)}}else o.config.debug&&console.warn("[SDK] Failed to get latest messages:",t)})}();return u&&u.then?u.then(function(){}):void 0})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return s&&s.then?s.then(n.bind(null,!1),n.bind(null,!0)):n(!1,s)}(0,function(e,t){var n=o.cacheManager.getConversations();if(o.needCheckGroupMap=new Map(n.filter(function(e){var t,n;return void 0!==(null==(t=e.latest)?void 0:t.msgId)&&null!==(null==(n=e.latest)?void 0:n.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),o.isSyncing=!1,e)throw t;return t})):(console.warn("[SDK] Not syncing. Login status: "+t+", Connection status: "+n),Promise.resolve())}catch(e){return Promise.reject(e)}},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 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.needCheckGroupMap.has(n.groupId)&&o.needCheckGroupMap.delete(n.groupId),o.updateMessageCache(n),o.emit(e.CbEvents.OnReceiveMessage,n)}else{var r=t.dt;r.forEach(function(e){o.needCheckGroupMap.has(e.groupId)&&o.needCheckGroupMap.delete(e.groupId),o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,r)}break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:o.internalState.isConnected=!0;break;default:s=t.ev,Object.values(e.CbEvents).includes(s)?(o.emit(t.ev,t.dt),Y.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(r({},t,{appKey:o.config.appKey}))).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,o.internalState.isConnected=!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 r=n.data;if(0===n.code&&r){var s=o.cacheManager.getConversations();if(1===t.pageNo)o.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);o.cacheManager.setConversations(u)}o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}else{var d=o.cacheManager.getConversations();d.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,d)}})},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(e){return o.message.getHistoryMessageList(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.clearConversationUnread=function(t){o.cacheManager.clearConversationUnread(t);var n=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,n)},o.clearAllConversationUnread=function(){o.cacheManager.clearAllConversationUnread();var t=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,t)},o.config.debug=n,o.cacheManager=new D({persistEnabled:!0,debug:n}),o.serviceManager=new z(o),o.needCheckGroupMap=new Map,o.startConversationSync(),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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},d.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},d.syncConversationsNow=function(){return this.syncConversationsWithServer()},d.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},d.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),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.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},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;if(t.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",o,r),0===o&&r&&r.records){t.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",t.cacheManager.getConversations());var s=t.cacheManager.getConversations();t.emit(e.CbEvents.OnConversationListUpdated,s),t.needCheckGroupMap=new Map(s.filter(function(e){var t,n;return void 0!==(null==(t=e.latest)?void 0:t.msgId)&&null!==(null==(n=e.latest)?void 0:n.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),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});
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=2e3*Math.random()+3e3,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||2e3*Math.random()+3e3,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.UpdateLatestMessage="/chat/group/updateLatestMessage",u.GetLatestGroupChats="/chat/group/latestGroupChats",u.CheckLatestMessages="/chat/group/checkLatestMessages",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.OnActiveConversationSync="OnActiveConversationSync",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,C,M,S,O,E,A,b,T,y,G,R,P,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[e.CbEvents.OnActiveConversationSync]=[],t[e.CbEvents.OnConnected]=[],t[e.CbEvents.OnDisconnected]=[],t[e.CbEvents.OnReconnected]=[],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,(C=e.Platform||(e.Platform={}))[C.iOS=1]="iOS",C[C.Android=2]="Android",C[C.Windows=3]="Windows",C[C.MacOSX=4]="MacOSX",C[C.Web=5]="Web",C[C.Linux=7]="Linux",C[C.AndroidPad=8]="AndroidPad",C[C.iPad=9]="iPad",e.LogLevel=void 0,(M=e.LogLevel||(e.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",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,(O=e.MessageType||(e.MessageType={}))[O.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",O[O.TextMessage=101]="TextMessage",O[O.PictureMessage=102]="PictureMessage",O[O.VoiceMessage=103]="VoiceMessage",O[O.VideoMessage=104]="VideoMessage",O[O.FileMessage=105]="FileMessage",O[O.AtTextMessage=106]="AtTextMessage",O[O.MergeMessage=107]="MergeMessage",O[O.CardMessage=108]="CardMessage",O[O.LocationMessage=109]="LocationMessage",O[O.CustomMessage=110]="CustomMessage",O[O.TypingMessage=113]="TypingMessage",O[O.QuoteMessage=114]="QuoteMessage",O[O.FaceMessage=115]="FaceMessage",O[O.FriendAdded=1201]="FriendAdded",O[O.OANotification=1400]="OANotification",O[O.GroupCreated=1501]="GroupCreated",O[O.MemberQuit=1504]="MemberQuit",O[O.GroupOwnerTransferred=1507]="GroupOwnerTransferred",O[O.MemberKicked=1508]="MemberKicked",O[O.MemberInvited=1509]="MemberInvited",O[O.MemberEnter=1510]="MemberEnter",O[O.GroupDismissed=1511]="GroupDismissed",O[O.GroupMemberMuted=1512]="GroupMemberMuted",O[O.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",O[O.GroupMuted=1514]="GroupMuted",O[O.GroupCancelMuted=1515]="GroupCancelMuted",O[O.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",O[O.GroupNameUpdated=1520]="GroupNameUpdated",O[O.BurnMessageChange=1701]="BurnMessageChange",O[O.RevokeMessage=2101]="RevokeMessage",e.SessionType=void 0,(E=e.SessionType||(e.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",e.GroupStatus=void 0,(A=e.GroupStatus||(e.GroupStatus={}))[A.Nomal=0]="Nomal",A[A.Baned=1]="Baned",A[A.Dismissed=2]="Dismissed",A[A.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,(y=e.Relationship||(e.Relationship={}))[y.isBlack=0]="isBlack",y[y.isFriend=1]="isFriend",e.LoginStatus=void 0,(G=e.LoginStatus||(e.LoginStatus={}))[G.Logout=1]="Logout",G[G.Logging=2]="Logging",G[G.Logged=3]="Logged",e.OnlineState=void 0,(R=e.OnlineState||(e.OnlineState={}))[R.Online=1]="Online",R[R.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(P=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[P.Readed=0]="Readed",P[P.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,(k=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[k.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",k[k.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",k[k.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",k[k.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(L=e.MessageSendStatus||(e.MessageSendStatus={}))[L.Sending=1]="Sending",L[L.Succeed=2]="Succeed",L[L.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},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.clearConversationUnread=function(e){var t=this.conversationCache.find(function(t){return t.id===e});t&&(t.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},t.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},t.getActiveConversation=function(){return this.activeConversation},t.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),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,t){var n,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:t!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.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.msgId===e.msgId});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.msgId===e.msgId});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}(),q=/*#__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){void 0===n&&(n={});var s=r({},n,{msgType:e},o,{status:0});return this.sendMessage(s,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,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,o,{link:t,snapshot:n}))}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{var n=this;return Promise.resolve(n.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}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)}},n.normalizeConversation=function(e){var t,n,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(t=e.status)?t:1,latest:null!=(n=e.latest)?n:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},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)}},n.updateLatestMessage=function(t){try{var n=Object.fromEntries(t.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:e.RequestApi.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:t},url:e.RequestApi.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},n.checkGroupLatestMessage=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:t},url:e.RequestApi.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),J=/*#__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 q(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 Y(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.conversationSyncTimer=void 0,o.syncInterval=2e4,o.isSyncing=!1,o.lastFetchTtl=0,o.syncConversationsWithServer=function(){try{if(o.isSyncing)return o.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var t=o.isLoggedIn(),n=o.isConnected();if(!t||!n)return console.warn("[SDK] Not syncing. Login status: "+t+", Connection status: "+n),Promise.resolve();var r=function(t,n){try{var r=Y(function(){return o.isSyncing=!0,Promise.resolve(o.group.checkGroupLatestMessage(o.lastFetchTtl)).then(function(t){console.log("res ",t);var n=function(){if(0==t.code){var n=t.data,r=n.groupChatIds;return o.lastFetchTtl=n.ttl,Object.entries(r).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(o.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){if(0===t.code){var n=t.data.records,r=o.cacheManager.getConversations(),s=new Set(r.map(function(e){return e.id})),i=n.filter(function(e){return!s.has(e.id)});i.length>0&&(o.cacheManager.setConversations([].concat(r,i)),o.emit(e.CbEvents.OnConversationCreated,i),o.config.debug&&console.log("[SDK] Found "+i.length+" new conversations")),o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}})}}();if(n&&n.then)return n.then(function(){})})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,r)}(0,function(e,t){if(o.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},o.configure=function(e){void 0!==e.debug&&(o.config.debug=e.debug),e.apiAddr&&(o.config.apiAddr=e.apiAddr),e.ossApiAddr&&(o.config.ossApiAddr=e.ossApiAddr),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 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){o.updateMessageCache(e)}),o.emit(e.CbEvents.OnReceiveMessages,r)}break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:o.internalState.isConnected=!0;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.ossApiAddr)return Promise.reject("No ossApiAddr 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(r({},t,{appKey:o.config.appKey}))).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}),Y(function(){return Promise.resolve(o.sseClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,e})},function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!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{return Promise.resolve(Y(function(){return Promise.resolve(o.conversation.getConversations(t)).then(function(n){var r=n.data;if(0===n.code&&r){var s=o.cacheManager.getConversations();if(1===t.pageNo)o.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);o.cacheManager.setConversations(u)}o.emit(e.CbEvents.OnConversationListUpdated,o.cacheManager.getConversations())}else{var d=o.cacheManager.getConversations();d.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,d)}return!0})},function(t){console.error("Failed to get conversations:",t);var n=o.cacheManager.getConversations();return n.length>0&&o.emit(e.CbEvents.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(t){try{return Promise.resolve(Y(function(){var n=new FormData;return n.append("file",t),n.append("filename",t.name),Promise.resolve(fetch(""+o.config.ossApiAddr+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){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}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.originalUrl,r=t.thumbnailUrl,s=t.error;return{data:{originalUrl:void 0===o?"":o,thumbnailUrl:void 0===r?"":r},msg:null!=(n=null==s?void 0:s.message)?n:"",code:s?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,n){return o.message.createImageMessage(e,t,n)},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(e){return e.groupId&&o.cacheManager.markConversationAsActive(e.groupId),o.message.getHistoryMessageList(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.clearConversationUnread=function(t){o.cacheManager.clearConversationUnread(t);var n=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,n)},o.clearAllConversationUnread=function(){o.cacheManager.clearAllConversationUnread();var t=o.cacheManager.getConversations();o.emit(e.CbEvents.OnConversationListUpdated,t)},o.config.debug=n,o.cacheManager=new D({persistEnabled:!0,debug:n}),o.serviceManager=new J(o),o.startConversationSync(),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.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},d.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},d.syncConversationsNow=function(){return this.syncConversationsWithServer()},d.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},d.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),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.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},d.initializeConversationCache=function(){try{var t=this,n=Y(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var o=n.code,r=n.data;if(t.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",o,r),0===o&&r&&r.records){t.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",t.cacheManager.getConversations());var s=t.cacheManager.getConversations();t.emit(e.CbEvents.OnConversationListUpdated,s),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,this.config.username)){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}(_);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=W});
@@ -323,4 +323,8 @@ export interface ActiveConversationSyncPayload {
323
323
  serverLatestMessageId: number;
324
324
  timestamp: number;
325
325
  }
326
+ export interface LatestMessagesUpdateResponse {
327
+ ttl: number;
328
+ groupChatIds: Record<number, number>;
329
+ }
326
330
  export {};
@@ -251,3 +251,11 @@ export declare type UploadFileParams = {
251
251
  uuid?: string;
252
252
  file: File;
253
253
  };
254
+ /**
255
+ * 上传返回结构
256
+ */
257
+ export type UploadResult = {
258
+ originalUrl?: string;
259
+ thumbnailUrl?: string;
260
+ error?: Error;
261
+ };
@@ -70,7 +70,7 @@ export declare class CacheManager {
70
70
  * @param message 消息
71
71
  * @returns 是否有更新
72
72
  */
73
- updateConversationWithMessage(message: MessageItem): boolean;
73
+ updateConversationWithMessage(message: MessageItem, username?: string): boolean;
74
74
  /**
75
75
  * 获取群组消息
76
76
  * @param groupId 群组ID
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "v1.0.34",
3
+ "version": "v1.0.36",
4
4
  "description": "Sim SDK for Web",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",