sim-sdk-web 1.0.38 → 1.0.41

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.
@@ -79,4 +79,62 @@ export declare class GroupService {
79
79
  * @returns Promise
80
80
  */
81
81
  updateGroupMemberPermission(params: UpdateGroupMemberPermission): Promise<ServerResponse>;
82
+ /**
83
+ * 修改群名称
84
+ * @param groupId 包含 groupId
85
+ * @param name 包含 name
86
+ * @returns Promise
87
+ */
88
+ editGroupName(groupId: number, name: string): Promise<ServerResponse>;
89
+ /**
90
+ * 修改群简介/公告
91
+ * @param groupId 包含 groupId
92
+ * @param notification 包含 notification
93
+ * @returns Promise
94
+ */
95
+ editNotification(groupId: number, notification: string): Promise<ServerResponse>;
96
+ /**
97
+ * 修改群自定义信息
98
+ * @param groupId 包含 groupId
99
+ * @param customer 包含 customer
100
+ * @returns Promise
101
+ */
102
+ editGroupCustomer(groupId: number, customer: string): Promise<ServerResponse>;
103
+ /**
104
+ * 设置群管理员
105
+ * @param groupId 群 ID
106
+ * @param memberId 成员 ID
107
+ * @returns Promise
108
+ */
109
+ addAdmin(groupId: number, memberId: number): Promise<ServerResponse>;
110
+ /**
111
+ * 删除群管理员
112
+ * @param groupId 群 ID
113
+ * @param memberId 成员 ID
114
+ * @returns Promise
115
+ */
116
+ deleteAdmin(groupId: number, memberId: number): Promise<ServerResponse>;
117
+ /**
118
+ * 置顶消息
119
+ * @param groupId 群 ID
120
+ * @param messageId 消息 ID
121
+ * @param type 类型(0:取消置顶,1:置顶)
122
+ * @returns Promise
123
+ */
124
+ pin(groupId: number, messageId: number, type: number): Promise<ServerResponse>;
125
+ /**
126
+ * 群禁言 / 解除禁言
127
+ * @param groupId 群 ID
128
+ * @param type 类型(0:禁言,1:解除禁言)
129
+ * @returns Promise
130
+ */
131
+ muteGroup(groupId: number, type: number): Promise<ServerResponse>;
132
+ /**
133
+ * 群成员禁言 / 解除禁言
134
+ * @param groupId 群 ID
135
+ * @param memberId 成员 ID
136
+ * @param type 类型(0:禁言,1:解除禁言)
137
+ * @returns Promise
138
+ */
139
+ muteMember(groupId: number, memberId: number, type: number): Promise<ServerResponse>;
82
140
  }
@@ -160,15 +160,16 @@ declare class SIMSDK extends Emitter {
160
160
  /**
161
161
  * 内部上传文件方法
162
162
  * @param file 要上传的文件
163
- * @returns 上传结果
163
+ * @param groupId 所属群组 ID,用于标识上传的文件归属
164
+ * @returns 上传结果,包括原图地址和缩略图地址,或错误信息
164
165
  */
165
166
  private internalUploadFile;
166
167
  /**
167
168
  * 上传文件
168
- * @param params 上传参数
169
- * @returns 上传结果Promise
169
+ * @param file
170
+ * @param groupId
170
171
  */
171
- uploadFile: ({ file }: UploadFileParams) => Promise<ServerResponse<{
172
+ uploadFile: ({ file }: UploadFileParams, groupId: number) => Promise<ServerResponse<{
172
173
  originalUrl: string;
173
174
  thumbnailUrl?: string;
174
175
  }>>;
@@ -344,6 +345,64 @@ declare class SIMSDK extends Emitter {
344
345
  * @returns Promise
345
346
  */
346
347
  updateGroupMemberPermission: (params: UpdateGroupMemberPermission) => Promise<ServerResponse>;
348
+ /**
349
+ * 修改群名称
350
+ * @param groupId 包含 groupId
351
+ * @param name 包含 name
352
+ * @returns Promise
353
+ */
354
+ editGroupName: (groupId: number, name: string) => Promise<ServerResponse>;
355
+ /**
356
+ * 修改群简介/公告
357
+ * @param groupId 包含 groupId
358
+ * @param notification 包含 notification
359
+ * @returns Promise
360
+ */
361
+ editNotification: (groupId: number, notification: string) => Promise<ServerResponse>;
362
+ /**
363
+ * 修改群自定义信息
364
+ * @param groupId 包含 groupId
365
+ * @param customer 包含 customer
366
+ * @returns Promise
367
+ */
368
+ editGroupCustomer: (groupId: number, customer: string) => Promise<ServerResponse>;
369
+ /**
370
+ * 设置群管理员
371
+ * @param groupId 群 ID
372
+ * @param memberId 成员 ID
373
+ * @returns Promise
374
+ */
375
+ addAdmin: (groupId: number, memberId: number) => Promise<ServerResponse>;
376
+ /**
377
+ * 删除群管理员
378
+ * @param groupId 群 ID
379
+ * @param memberId 成员 ID
380
+ * @returns Promise
381
+ */
382
+ deleteAdmin: (groupId: number, memberId: number) => Promise<ServerResponse>;
383
+ /**
384
+ * 置顶消息
385
+ * @param groupId 群 ID
386
+ * @param messageId 消息 ID
387
+ * @param type 类型(0:取消置顶,1:置顶)
388
+ * @returns Promise
389
+ */
390
+ pin: (groupId: number, messageId: number, type: number) => Promise<ServerResponse>;
391
+ /**
392
+ * 群禁言 / 解除禁言
393
+ * @param groupId 群 ID
394
+ * @param type 类型(0:禁言,1:解除禁言)
395
+ * @returns Promise
396
+ */
397
+ muteGroup: (groupId: number, type: number) => Promise<ServerResponse>;
398
+ /**
399
+ * 群成员禁言 / 解除禁言
400
+ * @param groupId 群 ID
401
+ * @param memberId 成员 ID
402
+ * @param type 类型(0:禁言,1:解除禁言)
403
+ * @returns Promise
404
+ */
405
+ muteMember: (groupId: number, memberId: number, type: number) => Promise<ServerResponse>;
347
406
  /**
348
407
  * 设置会话已读
349
408
  * @param params 会话已读参数
@@ -12,6 +12,14 @@ export declare enum RequestApi {
12
12
  GetGroupMemberPermission = "/chat/group/permission/groupMemberPermission",
13
13
  UpdateGroupPermission = "/chat/group/permission/updateGroupPermission",
14
14
  UpdateGroupMemberPermission = "/chat/group/permission/updateGroupMemberPermission",
15
+ editeGroupName = "/chat/group/operation/editeGroupName",
16
+ editeNotification = "/chat/group/operation/editeNotification",
17
+ editeGroupCustomer = "/chat/group/operation/editeGroupCustomer",
18
+ addAdmin = "/group/admin/add",
19
+ deleteAdmin = "/group/admin/delete",
20
+ pin = "/group/message/pin",
21
+ muteGroup = "/group/mute",
22
+ muteMember = "/group/member/mute",
15
23
  GetAllConversationList = "/chat/group/list",
16
24
  MarkConversationMessageAsRead = "/chat/group/lastRead",
17
25
  UpdateLatestMessage = "/chat/group/updateLatestMessage",
@@ -12,6 +12,7 @@ export declare enum CbEvents {
12
12
  OnNetworkChange = "OnNetworkChange",// 网络状态变化
13
13
  OnReceiveMessage = "OnReceiveMessage",// 收到单条消息
14
14
  OnReceiveMessages = "OnReceiveMessages",// 收到多条消息
15
+ OnReceiveSystemMessage = "OnReceiveSystemMessage",// 收到系统消息
15
16
  OnMessagesListLoaded = "OnMessagesListLoaded",
16
17
  OnActiveConversationSync = "OnActiveConversationSync",// 当前活跃会话需要同步
17
18
  OnMessageSent = "OnMessageSent",// 消息发送成功
package/lib/index.es.js CHANGED
@@ -1 +1 @@
1
- import{EventSourcePolyfill as e}from"event-source-polyfill";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function s(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function t(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=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=t.prototype;return n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t._openHandler=function(e){console.log("SSE connection established"),t.connected=!0,t.reconnectAttempts>0&&t.onReconnectSuccessCallback&&t.onReconnectSuccessCallback(),t.reconnectAttempts=0,t.reconnectTimeout=5e3,n("SSE connect successful!")},t._errorHandler=function(e){console.error("SSE connection error:",e),t.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(t.cleanup(),t.notifyConnectionClosed(!0)):t.handleReconnect(),t.connected||r(new Error("SSE connect error"))},t._messageHandler=function(e){try{console.log("SSE received message:",e.data);var n=JSON.parse(e.data);t.onMessageCallback&&t.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},t.eventSource.addEventListener("open",t._openHandler),t.eventSource.addEventListener("error",t._errorHandler),t.eventSource.addEventListener("message",t._messageHandler),t.handlers.forEach(function(e,n){var r=t._customHandlers.get(n);r&&t.eventSource&&t.eventSource.addEventListener(n,r)});var o=setTimeout(function(){t.connected||(r(new Error("Connection timeout")),t.handleReconnect())},1e4),s=t._openHandler;t._openHandler=function(e){clearTimeout(o),s(e)}}catch(e){console.error("Failed to create EventSource:",e),t.handleReconnect(),r(e)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},t}();!function(e){e[e.UnknownError=10005]="UnknownError"}(a||(a={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.GetMyGroupPermission="/chat/group/permission/getPermission",e.GetGroupPermission="/chat/group/permission/groupPermission",e.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",e.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",e.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",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 g,l,h,v=/*#__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 t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();!function(e){e[e.PrivateChat=0]="PrivateChat",e[e.PrivateGroup=1]="PrivateGroup",e[e.PublicGroup=2]="PublicGroup",e[e.CustomerService=3]="CustomerService",e[e.LiveGroup=4]="LiveGroup"}(g||(g={})),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"}(l||(l={})),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"}(h||(h={}));var p="undefined"!=typeof uni,f="undefined"!=typeof window,m="simsdk_",C={CONVERSATIONS:m+"conversations",GROUP_MESSAGES:m+"group_messages",USER_INFO:m+"user_info",META_INFO:m+"meta"},M={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},S=/*#__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({},M,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,r=e.groupId;if(!r)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===r});if(-1===o)return!1;var s=this.conversationCache[o],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===r?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,r=this,o={},s=n(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,h=function(){var e=l.value,t=r.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?r.groupMessageCache[d][t]=e:r.groupMessageCache[d].push(e)},v=n(g);!(l=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,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(C.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(C.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(C.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(C.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(C.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(C.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(C.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(C.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(C.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=C.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(C.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(m)}));!(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}(),O=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),y=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,o){void 0===n&&(n={});var s=r({},n,{msgType:e},o,{status:0});return this.sendMessage(s,t)},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.TEXT,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(l.IMAGE,c.CreateTextMessage,o,{link:e,snapshot:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.FILE,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.AUDIO,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.VIDEO,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.LINK,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.GIF,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.OPTION,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.EMOJI,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.CUSTOM,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),E=/*#__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:c.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:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.normalizeConversation=function(e){var t,n,r,o;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!=(r=e.unreadCount)?r:0,draftText:null!=(o=e.draftText)?o:""}},e}(),P=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:c.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:c.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:c.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:c.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),G=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case i.USER:return new O(this.sdk);case i.MESSAGE:return new y(this.sdk);case i.CONVERSATION:return new E(this.sdk);case i.GROUP:return new P(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function b(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var T=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],I=/*#__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 r=function(e,t){try{var r=b(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,r=t.groupChatIds;n.lastFetchTtl=t.ttl;var o=function(){if(r&&Object.keys(r).length>0)return Object.entries(r).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,r=n.cacheManager.getConversations(),o=new Set(r.map(function(e){return e.id})),s=t.filter(function(e){return!o.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(r,s)),n.emit(u.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(u.OnConversationListUpdated,n.cacheManager.getConversations())}})}();if(o&&o.then)return o.then(function(){})}}();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 r&&r.then?r.then(t.bind(null,!1),t.bind(null,!0)):t(!1,r)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.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,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(p?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(f)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:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case h.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(u.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){n.updateMessageCache(e)}),n.emit(u.OnReceiveMessages,r)}break;case h.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;default:o=e.ev,Object.values(u).includes(o)?(n.emit(e.ev,e.dt),T.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(u.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(u.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.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(u.OnConversationListUpdated,t),Promise.resolve(n.user.login(r({},e,{appKey:n.config.appKey}))).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),b(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(b(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var o=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var s=r.records||[],i=new Set(o.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(o,a);n.cacheManager.setConversations(c)}n.emit(u.OnConversationListUpdated,n.cacheManager.getConversations())}else{var d=n.cacheManager.getConversations();d.length>0&&n.emit(u.OnConversationListUpdated,d)}return!0})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(u.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(b(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.ossApiAddr+c.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:t})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){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,r=e.thumbnailUrl,o=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===r?"":r},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,r,o){return n.message.createTextMessage(e,t,r,o)},n.sendImageMessage=function(e,t,r,o,s){return n.message.createImageMessage(e,t,r,o,s)},n.sendFileMessage=function(e,t,r,o){return n.message.createFileMessage(e,t,r,o)},n.sendAudioMessage=function(e,t,r,o){return n.message.createAudioMessage(e,t,r,o)},n.sendVideoMessage=function(e,t,r,o){return n.message.createVideoMessage(e,t,r,o)},n.sendLinkMessage=function(e,t,r,o){return n.message.createLinkMessage(e,t,r,o)},n.sendGifMessage=function(e,t,r,o){return n.message.createGifMessage(e,t,r,o)},n.sendOptionMessage=function(e,t,r,o){return n.message.createOptionMessage(e,t,r,o)},n.sendEmojiMessage=function(e,t,r,o){return n.message.createEmojiMessage(e,t,r,o)},n.sendCustomMessage=function(e,t,r,o){return n.message.createCustomMessage(e,t,r,o)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(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.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(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(u.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(u.OnConversationListUpdated,e)},n.config.debug=t,n.cacheManager=new S({persistEnabled:!0,debug:t}),n.serviceManager=new G(n),n.startConversationSync(),n}var n,g;g=e,(n=t).prototype=Object.create(g.prototype),n.prototype.constructor=n,o(n,g);var l,v,m=t.prototype;return m.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")},m.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},m.syncConversationsNow=function(){return this.syncConversationsWithServer()},m.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")},m.getService=function(e){return this.serviceManager.get(e)},m.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},m.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},m.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.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;"))},m.initializeConversationCache=function(){try{var e=this,t=b(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,r=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,r),0===n&&r&&r.records){e.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var o=e.cacheManager.getConversations();e.emit(u.OnConversationListUpdated,o),e.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},m.onMessage=function(e){var t=this;return this.on(u.OnReceiveMessage,e),function(){return t.off(u.OnReceiveMessage,e)}},m.onMessages=function(e){var t=this;return this.on(u.OnReceiveMessages,e),function(){return t.off(u.OnReceiveMessages,e)}},m.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(u.OnConnected,n),this.on(u.OnDisconnected,r),function(){t.off(u.OnConnected,n),t.off(u.OnDisconnected,r)}},m.onKickedOffline=function(e){var t=this;return this.on(u.OnKickedOffline,e),function(){return t.off(u.OnKickedOffline,e)}},m.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,t)}},m.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},l=t,(v=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}(l.prototype,v),Object.defineProperty(l,"prototype",{writable:!1}),l}(v);export{u as CbEvents,a as ErrorCode,g as GroupType,l as MessageType,c as RequestApi,I as SIMSDK,i as ServiceName,h as SseEventType};
1
+ import{EventSourcePolyfill as e}from"event-source-polyfill";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function s(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function t(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=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=t.prototype;return n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t._openHandler=function(e){console.log("SSE connection established"),t.connected=!0,t.reconnectAttempts>0&&t.onReconnectSuccessCallback&&t.onReconnectSuccessCallback(),t.reconnectAttempts=0,t.reconnectTimeout=5e3,n("SSE connect successful!")},t._errorHandler=function(e){console.error("SSE connection error:",e),t.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(t.cleanup(),t.notifyConnectionClosed(!0)):t.handleReconnect(),t.connected||r(new Error("SSE connect error"))},t._messageHandler=function(e){try{console.log("SSE received message:",e.data);var n=JSON.parse(e.data);t.onMessageCallback&&t.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},t.eventSource.addEventListener("open",t._openHandler),t.eventSource.addEventListener("error",t._errorHandler),t.eventSource.addEventListener("message",t._messageHandler),t.handlers.forEach(function(e,n){var r=t._customHandlers.get(n);r&&t.eventSource&&t.eventSource.addEventListener(n,r)});var o=setTimeout(function(){t.connected||(r(new Error("Connection timeout")),t.handleReconnect())},1e4),s=t._openHandler;t._openHandler=function(e){clearTimeout(o),s(e)}}catch(e){console.error("Failed to create EventSource:",e),t.handleReconnect(),r(e)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},t}();!function(e){e[e.UnknownError=10005]="UnknownError"}(a||(a={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.GetMyGroupPermission="/chat/group/permission/getPermission",e.GetGroupPermission="/chat/group/permission/groupPermission",e.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",e.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",e.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",e.editeGroupName="/chat/group/operation/editeGroupName",e.editeNotification="/chat/group/operation/editeNotification",e.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",e.addAdmin="/group/admin/add",e.deleteAdmin="/group/admin/delete",e.pin="/group/message/pin",e.muteGroup="/group/mute",e.muteMember="/group/member/mute",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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 g,l,h,p,v=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveSystemMessage]=[],e[u.OnReceiveMessages]=[],e[u.OnConversationListUpdated]=[],e[u.OnMessagesListLoaded]=[],e[u.OnActiveConversationSync]=[],e[u.OnConnected]=[],e[u.OnDisconnected]=[],e[u.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 r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();!function(e){e[e.PrivateChat=0]="PrivateChat",e[e.PrivateGroup=1]="PrivateGroup",e[e.PublicGroup=2]="PublicGroup",e[e.CustomerService=3]="CustomerService",e[e.LiveGroup=4]="LiveGroup"}(g||(g={})),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"}(l||(l={})),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",e[e.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH"}(h||(h={})),function(e){e[e.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",e[e.GroupPermissionChange=4]="GroupPermissionChange"}(p||(p={}));var m="undefined"!=typeof uni,f="undefined"!=typeof window,C="simsdk_",M={CONVERSATIONS:C+"conversations",GROUP_MESSAGES:C+"group_messages",USER_INFO:C+"user_info",META_INFO:C+"meta"},S={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},O=/*#__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({},S,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,r=e.groupId;if(!r)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===r});if(-1===o)return!1;var s=this.conversationCache[o],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===r?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,r=this,o={},s=n(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,h=function(){var e=l.value,t=r.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?r.groupMessageCache[d][t]=e:r.groupMessageCache[d].push(e)},p=n(g);!(l=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(M.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(M.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(M.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(M.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(M.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(M.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(M.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(M.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(M.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=M.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(M.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(C)}));!(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}(),E=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),y=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,o){void 0===n&&(n={});var s=r({},n,{msgType:e},o,{status:0});return this.sendMessage(s,t)},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.TEXT,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(l.IMAGE,c.CreateTextMessage,o,{link:e,snapshot:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.FILE,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.AUDIO,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.VIDEO,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.LINK,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.GIF,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.OPTION,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.EMOJI,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.CUSTOM,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),G=/*#__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:c.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:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},t.normalizeConversation=function(e){var t,n,r,o;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!=(r=e.unreadCount)?r:0,draftText:null!=(o=e.draftText)?o:""}},e}(),P=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},t.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateLatestMessage=function(e){try{var t=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:t},url:c.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:c.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},t.checkGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{ttl:e},url:c.CheckLatestMessages,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:c.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.editGroupName=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:c.editeGroupName,method:"GET",data:{groupId:e,name:t}}))}catch(e){return Promise.reject(e)}},t.editNotification=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:c.editeNotification,method:"GET",data:{groupId:e,notification:t}}))}catch(e){return Promise.reject(e)}},t.editGroupCustomer=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:c.editeGroupCustomer,method:"GET",data:{groupId:e,customer:t}}))}catch(e){return Promise.reject(e)}},t.addAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:c.addAdmin,method:"GET",data:{groupId:e,memberId:t}}))}catch(e){return Promise.reject(e)}},t.deleteAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:c.deleteAdmin,method:"GET",data:{groupId:e,memberId:t}}))}catch(e){return Promise.reject(e)}},t.pin=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:c.pin,method:"GET",data:{groupId:e,messageId:t,type:n}}))}catch(e){return Promise.reject(e)}},t.muteGroup=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:c.muteGroup,method:"GET",data:{groupId:e,type:t}}))}catch(e){return Promise.reject(e)}},t.muteMember=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:c.muteMember,method:"POST",data:{groupId:e,memberId:t,type:n}}))}catch(e){return Promise.reject(e)}},e}(),b=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case i.USER:return new E(this.sdk);case i.MESSAGE:return new y(this.sdk);case i.CONVERSATION:return new G(this.sdk);case i.GROUP:return new P(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function T(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var I=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],A=/*#__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 r=function(e,t){try{var r=T(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,r=t.groupChatIds;n.lastFetchTtl=t.ttl;var o=function(){if(r&&Object.keys(r).length>0)return Object.entries(r).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,r=n.cacheManager.getConversations(),o=new Set(r.map(function(e){return e.id})),s=t.filter(function(e){return!o.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(r,s)),n.emit(u.OnConversationCreated,s),n.config.debug&&console.log("[SDK] Found "+s.length+" new conversations")),n.emit(u.OnConversationListUpdated,n.cacheManager.getConversations())}})}();if(o&&o.then)return o.then(function(){})}}();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 r&&r.then?r.then(t.bind(null,!1),t.bind(null,!0)):t(!1,r)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.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,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(m?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(f)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:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case h.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(u.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){n.updateMessageCache(e)}),n.emit(u.OnReceiveMessages,r)}break;case h.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;case h.EVENT_SYSTEM_MESSAGE_PUSH:n.emit(u.OnReceiveSystemMessage,e.dt);break;default:o=e.ev,Object.values(u).includes(o)?(n.emit(e.ev,e.dt),I.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(u.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(u.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.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(u.OnConversationListUpdated,t),Promise.resolve(n.user.login(r({},e,{appKey:n.config.appKey}))).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),T(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(T(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var o=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var s=r.records||[],i=new Set(o.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(o,a);n.cacheManager.setConversations(c)}n.emit(u.OnConversationListUpdated,n.cacheManager.getConversations())}else{var d=n.cacheManager.getConversations();d.length>0&&n.emit(u.OnConversationListUpdated,d)}return!0})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(u.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e,t){try{return Promise.resolve(T(function(){var r=new FormData;return r.append("file",e),r.append("filename",e.name),r.append("groupId",t.toString()),Promise.resolve(fetch(""+n.config.ossApiAddr+c.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:r})).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,t){var r=e.file;try{return Promise.resolve(n.internalUploadFile(r,t)).then(function(e){var t,n=e.originalUrl,r=e.thumbnailUrl,o=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===r?"":r},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,r,o){return n.message.createTextMessage(e,t,r,o)},n.sendImageMessage=function(e,t,r,o,s){return n.message.createImageMessage(e,t,r,o,s)},n.sendFileMessage=function(e,t,r,o){return n.message.createFileMessage(e,t,r,o)},n.sendAudioMessage=function(e,t,r,o){return n.message.createAudioMessage(e,t,r,o)},n.sendVideoMessage=function(e,t,r,o){return n.message.createVideoMessage(e,t,r,o)},n.sendLinkMessage=function(e,t,r,o){return n.message.createLinkMessage(e,t,r,o)},n.sendGifMessage=function(e,t,r,o){return n.message.createGifMessage(e,t,r,o)},n.sendOptionMessage=function(e,t,r,o){return n.message.createOptionMessage(e,t,r,o)},n.sendEmojiMessage=function(e,t,r,o){return n.message.createEmojiMessage(e,t,r,o)},n.sendCustomMessage=function(e,t,r,o){return n.message.createCustomMessage(e,t,r,o)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(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.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(e)},n.editGroupName=function(e,t){return n.group.editGroupName(e,t)},n.editNotification=function(e,t){return n.group.editNotification(e,t)},n.editGroupCustomer=function(e,t){return n.group.editGroupCustomer(e,t)},n.addAdmin=function(e,t){return n.group.addAdmin(e,t)},n.deleteAdmin=function(e,t){return n.group.deleteAdmin(e,t)},n.pin=function(e,t,r){return n.group.pin(e,t,r)},n.muteGroup=function(e,t){return n.group.muteGroup(e,t)},n.muteMember=function(e,t,r){return n.group.muteMember(e,t,r)},n.markConversationRead=function(e){return n.conversation.markConversationRead(e)},n.clearConversationUnread=function(e){n.cacheManager.clearConversationUnread(e);var t=n.cacheManager.getConversations();n.emit(u.OnConversationListUpdated,t)},n.clearAllConversationUnread=function(){n.cacheManager.clearAllConversationUnread();var e=n.cacheManager.getConversations();n.emit(u.OnConversationListUpdated,e)},n.config.debug=t,n.cacheManager=new O({persistEnabled:!0,debug:t}),n.serviceManager=new b(n),n.startConversationSync(),n}var n,g;g=e,(n=t).prototype=Object.create(g.prototype),n.prototype.constructor=n,o(n,g);var l,p,v=t.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 t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.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,t=T(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,r=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,r),0===n&&r&&r.records){e.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var o=e.cacheManager.getConversations();e.emit(u.OnConversationListUpdated,o),e.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},v.onMessage=function(e){var t=this;return this.on(u.OnReceiveMessage,e),function(){return t.off(u.OnReceiveMessage,e)}},v.onMessages=function(e){var t=this;return this.on(u.OnReceiveMessages,e),function(){return t.off(u.OnReceiveMessages,e)}},v.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(u.OnConnected,n),this.on(u.OnDisconnected,r),function(){t.off(u.OnConnected,n),t.off(u.OnDisconnected,r)}},v.onKickedOffline=function(e){var t=this;return this.on(u.OnKickedOffline,e),function(){return t.off(u.OnKickedOffline,e)}},v.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,t)}},v.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},l=t,(p=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s(r.key),r)}}(l.prototype,p),Object.defineProperty(l,"prototype",{writable:!1}),l}(v);export{u as CbEvents,a as ErrorCode,g as GroupType,l as MessageType,c as RequestApi,A as SIMSDK,i as ServiceName,h as SseEventType,p as SystemMessageType};
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- var e,t=require("event-source-polyfill");function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var a,c,u,d=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=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 r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||r(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.addEventListener(n,r)});var o=setTimeout(function(){e.connected||(r(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(o),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),r(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(a=exports.ErrorCode||(exports.ErrorCode={}))[a.UnknownError=10005]="UnknownError",exports.RequestApi=void 0,(c=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",c.Logout="/chat/member/logout",c.GetGroupInfo="/chat/group/groupInfo",c.GetGroupMembers="/chat/group/groupMembers",c.JoinGroup="/chat/group/joinGroup",c.GetMyGroupPermission="/chat/group/permission/getPermission",c.GetGroupPermission="/chat/group/permission/groupPermission",c.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",c.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",c.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",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 g,l,h,p=/*#__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 r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();exports.GroupType=void 0,(g=exports.GroupType||(exports.GroupType={}))[g.PrivateChat=0]="PrivateChat",g[g.PrivateGroup=1]="PrivateGroup",g[g.PublicGroup=2]="PublicGroup",g[g.CustomerService=3]="CustomerService",g[g.LiveGroup=4]="LiveGroup",exports.MessageType=void 0,(l=exports.MessageType||(exports.MessageType={}))[l.TEXT=0]="TEXT",l[l.IMAGE=1]="IMAGE",l[l.FILE=2]="FILE",l[l.AUDIO=3]="AUDIO",l[l.VIDEO=4]="VIDEO",l[l.LINK=5]="LINK",l[l.GIF=6]="GIF",l[l.OPTION=7]="OPTION",l[l.EMOJI=8]="EMOJI",l[l.CUSTOM=100]="CUSTOM",exports.SseEventType=void 0,(h=exports.SseEventType||(exports.SseEventType={}))[h.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",h[h.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",h[h.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",h[h.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH";var v="undefined"!=typeof uni,f="undefined"!=typeof window,m="simsdk_",C={CONVERSATIONS:m+"conversations",GROUP_MESSAGES:m+"group_messages",USER_INFO:m+"user_info",META_INFO:m+"meta"},M={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},S=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},M,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]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e,t){var n,r=e.groupId;if(!r)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===r});if(-1===o)return!1;var s=this.conversationCache[o],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===r?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,o={},s=r(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,h=function(){var e=l.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)},p=r(g);!(l=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(C.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(C.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(C.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(C.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(C.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(C.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(C.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(C.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(C.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=C.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(C.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=r(Object.keys(localStorage).filter(function(e){return e.startsWith(m)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),O=/*#__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}(),E=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,r){void 0===n&&(n={});var s=o({},n,{msgType:e},r,{status:0});return this.sendMessage(s,t)},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.TEXT,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.IMAGE,exports.RequestApi.CreateTextMessage,o,{link:e,snapshot:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.FILE,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.AUDIO,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.VIDEO,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.LINK,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.GIF,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.OPTION,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.EMOJI,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.CUSTOM,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),y=/*#__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,r,o;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!=(r=e.unreadCount)?r:0,draftText:null!=(o=e.draftText)?o:""}},e}(),b=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return 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)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:exports.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),T=/*#__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 O(this.sdk);case exports.ServiceName.MESSAGE:return new E(this.sdk);case exports.ServiceName.CONVERSATION:return new y(this.sdk);case exports.ServiceName.GROUP:return new b(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function P(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var G=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired];exports.SIMSDK=/*#__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 r=function(e,t){try{var r=P(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,r=t.groupChatIds;n.lastFetchTtl=t.ttl;var o=function(){if(r&&Object.keys(r).length>0)return Object.entries(r).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,r=n.cacheManager.getConversations(),o=new Set(r.map(function(e){return e.id})),s=t.filter(function(e){return!o.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(r,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(o&&o.then)return o.then(function(){})}}();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 r&&r.then?r.then(t.bind(null,!1),t.bind(null,!0)):t(!1,r)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.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,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(v?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(f)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:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SseEventType.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(exports.CbEvents.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,r)}break;case exports.SseEventType.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;default:o=e.ev,Object.values(exports.CbEvents).includes(o)?(n.emit(e.ev,e.dt),G.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.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(o({},e,{appKey:n.config.appKey}))).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),P(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(P(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var o=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var s=r.records||[],i=new Set(o.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(o,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(P(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,r=e.thumbnailUrl,o=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===r?"":r},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,r,o){return n.message.createTextMessage(e,t,r,o)},n.sendImageMessage=function(e,t,r,o,s){return n.message.createImageMessage(e,t,r,o,s)},n.sendFileMessage=function(e,t,r,o){return n.message.createFileMessage(e,t,r,o)},n.sendAudioMessage=function(e,t,r,o){return n.message.createAudioMessage(e,t,r,o)},n.sendVideoMessage=function(e,t,r,o){return n.message.createVideoMessage(e,t,r,o)},n.sendLinkMessage=function(e,t,r,o){return n.message.createLinkMessage(e,t,r,o)},n.sendGifMessage=function(e,t,r,o){return n.message.createGifMessage(e,t,r,o)},n.sendOptionMessage=function(e,t,r,o){return n.message.createOptionMessage(e,t,r,o)},n.sendEmojiMessage=function(e,t,r,o){return n.message.createEmojiMessage(e,t,r,o)},n.sendCustomMessage=function(e,t,r,o){return n.message.createCustomMessage(e,t,r,o)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(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.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(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 S({persistEnabled:!0,debug:t}),n.serviceManager=new T(n),n.startConversationSync(),n}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,s(n,r);var a,c,u=t.prototype;return u.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",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.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=P(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,r=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,r),0===n&&r&&r.records){e.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var o=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,o),e.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},u.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},u.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},u.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,r),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,r)}},u.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},u.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,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 r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(p);
1
+ var e,t=require("event-source-polyfill");function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var a,c,u,d=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=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 r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||r(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.addEventListener(n,r)});var o=setTimeout(function(){e.connected||(r(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(o),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),r(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(a=exports.ErrorCode||(exports.ErrorCode={}))[a.UnknownError=10005]="UnknownError",exports.RequestApi=void 0,(c=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",c.Logout="/chat/member/logout",c.GetGroupInfo="/chat/group/groupInfo",c.GetGroupMembers="/chat/group/groupMembers",c.JoinGroup="/chat/group/joinGroup",c.GetMyGroupPermission="/chat/group/permission/getPermission",c.GetGroupPermission="/chat/group/permission/groupPermission",c.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",c.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",c.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",c.editeGroupName="/chat/group/operation/editeGroupName",c.editeNotification="/chat/group/operation/editeNotification",c.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",c.addAdmin="/group/admin/add",c.deleteAdmin="/group/admin/delete",c.pin="/group/message/pin",c.muteGroup="/group/mute",c.muteMember="/group/member/mute",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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 g,l,p,h,v=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveSystemMessage]=[],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 r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();exports.GroupType=void 0,(g=exports.GroupType||(exports.GroupType={}))[g.PrivateChat=0]="PrivateChat",g[g.PrivateGroup=1]="PrivateGroup",g[g.PublicGroup=2]="PublicGroup",g[g.CustomerService=3]="CustomerService",g[g.LiveGroup=4]="LiveGroup",exports.MessageType=void 0,(l=exports.MessageType||(exports.MessageType={}))[l.TEXT=0]="TEXT",l[l.IMAGE=1]="IMAGE",l[l.FILE=2]="FILE",l[l.AUDIO=3]="AUDIO",l[l.VIDEO=4]="VIDEO",l[l.LINK=5]="LINK",l[l.GIF=6]="GIF",l[l.OPTION=7]="OPTION",l[l.EMOJI=8]="EMOJI",l[l.CUSTOM=100]="CUSTOM",exports.SseEventType=void 0,(p=exports.SseEventType||(exports.SseEventType={}))[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",p[p.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",exports.SystemMessageType=void 0,(h=exports.SystemMessageType||(exports.SystemMessageType={}))[h.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",h[h.GroupPermissionChange=4]="GroupPermissionChange";var m="undefined"!=typeof uni,f="undefined"!=typeof window,C="simsdk_",M={CONVERSATIONS:C+"conversations",GROUP_MESSAGES:C+"group_messages",USER_INFO:C+"user_info",META_INFO:C+"meta"},S={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},O=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},S,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]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e,t){var n,r=e.groupId;if(!r)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===r});if(-1===o)return!1;var s=this.conversationCache[o],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===r?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,o={},s=r(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,p=function(){var e=l.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=r(g);!(l=h()).done;)p();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(M.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(M.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(M.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(M.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(M.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(M.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(M.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(M.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(M.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=M.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(M.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=r(Object.keys(localStorage).filter(function(e){return e.startsWith(C)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),E=/*#__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}(),y=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,r){void 0===n&&(n={});var s=o({},n,{msgType:e},r,{status:0});return this.sendMessage(s,t)},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.TEXT,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(exports.MessageType.IMAGE,exports.RequestApi.CreateTextMessage,o,{link:e,snapshot:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.FILE,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.AUDIO,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.VIDEO,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.LINK,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.GIF,exports.RequestApi.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.OPTION,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.EMOJI,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.CUSTOM,exports.RequestApi.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),b=/*#__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,r,o;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!=(r=e.unreadCount)?r:0,draftText:null!=(o=e.draftText)?o:""}},e}(),G=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return 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)}},t.getMyGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.getGroupMemberPermission=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e,targetMemberId:t},url:exports.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},t.updateGroupPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.updateGroupMemberPermission=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t.editGroupName=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeGroupName,method:"GET",data:{groupId:e,name:t}}))}catch(e){return Promise.reject(e)}},t.editNotification=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeNotification,method:"GET",data:{groupId:e,notification:t}}))}catch(e){return Promise.reject(e)}},t.editGroupCustomer=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.editeGroupCustomer,method:"GET",data:{groupId:e,customer:t}}))}catch(e){return Promise.reject(e)}},t.addAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.addAdmin,method:"GET",data:{groupId:e,memberId:t}}))}catch(e){return Promise.reject(e)}},t.deleteAdmin=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.deleteAdmin,method:"GET",data:{groupId:e,memberId:t}}))}catch(e){return Promise.reject(e)}},t.pin=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.pin,method:"GET",data:{groupId:e,messageId:t,type:n}}))}catch(e){return Promise.reject(e)}},t.muteGroup=function(e,t){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.muteGroup,method:"GET",data:{groupId:e,type:t}}))}catch(e){return Promise.reject(e)}},t.muteMember=function(e,t,n){try{return Promise.resolve(this.sdk.sendRequest({url:exports.RequestApi.muteMember,method:"POST",data:{groupId:e,memberId:t,type:n}}))}catch(e){return Promise.reject(e)}},e}(),T=/*#__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 E(this.sdk);case exports.ServiceName.MESSAGE:return new y(this.sdk);case exports.ServiceName.CONVERSATION:return new b(this.sdk);case exports.ServiceName.GROUP:return new G(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function P(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var A=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired];exports.SIMSDK=/*#__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 r=function(e,t){try{var r=P(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,r=t.groupChatIds;n.lastFetchTtl=t.ttl;var o=function(){if(r&&Object.keys(r).length>0)return Object.entries(r).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,r=n.cacheManager.getConversations(),o=new Set(r.map(function(e){return e.id})),s=t.filter(function(e){return!o.has(e.id)});s.length>0&&(n.cacheManager.setConversations([].concat(r,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(o&&o.then)return o.then(function(){})}}();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 r&&r.then?r.then(t.bind(null,!1),t.bind(null,!0)):t(!1,r)}(0,function(e,t){if(n.isSyncing=!1,e)throw t;return t});return Promise.resolve(r&&r.then?r.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,r=e.data;if("GET"===e.method&&r){var o=new URLSearchParams;Object.entries(r).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),r=void 0}return function(e){try{return Promise.resolve(m?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(f)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:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SseEventType.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(exports.CbEvents.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){n.updateMessageCache(e)}),n.emit(exports.CbEvents.OnReceiveMessages,r)}break;case exports.SseEventType.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;case exports.SseEventType.EVENT_SYSTEM_MESSAGE_PUSH:n.emit(exports.CbEvents.OnReceiveSystemMessage,e.dt);break;default:o=e.ev,Object.values(exports.CbEvents).includes(o)?(n.emit(e.ev,e.dt),A.includes(e.ev)&&(n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.sseClient&&(n.sseClient.close(),n.sseClient=void 0))):n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var o},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.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(o({},e,{appKey:n.config.appKey}))).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),P(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(P(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var o=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var s=r.records||[],i=new Set(o.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(o,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,t){try{return Promise.resolve(P(function(){var r=new FormData;return r.append("file",e),r.append("filename",e.name),r.append("groupId",t.toString()),Promise.resolve(fetch(""+n.config.ossApiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:r})).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,t){var r=e.file;try{return Promise.resolve(n.internalUploadFile(r,t)).then(function(e){var t,n=e.originalUrl,r=e.thumbnailUrl,o=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===r?"":r},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,r,o){return n.message.createTextMessage(e,t,r,o)},n.sendImageMessage=function(e,t,r,o,s){return n.message.createImageMessage(e,t,r,o,s)},n.sendFileMessage=function(e,t,r,o){return n.message.createFileMessage(e,t,r,o)},n.sendAudioMessage=function(e,t,r,o){return n.message.createAudioMessage(e,t,r,o)},n.sendVideoMessage=function(e,t,r,o){return n.message.createVideoMessage(e,t,r,o)},n.sendLinkMessage=function(e,t,r,o){return n.message.createLinkMessage(e,t,r,o)},n.sendGifMessage=function(e,t,r,o){return n.message.createGifMessage(e,t,r,o)},n.sendOptionMessage=function(e,t,r,o){return n.message.createOptionMessage(e,t,r,o)},n.sendEmojiMessage=function(e,t,r,o){return n.message.createEmojiMessage(e,t,r,o)},n.sendCustomMessage=function(e,t,r,o){return n.message.createCustomMessage(e,t,r,o)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(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.getMyGroupPermission=function(e){return n.group.getMyGroupPermission(e)},n.getGroupPermission=function(e){return n.group.getGroupPermission(e)},n.getGroupMemberPermission=function(e,t){return n.group.getGroupMemberPermission(e,t)},n.updateGroupPermission=function(e){return n.group.updateGroupPermission(e)},n.updateGroupMemberPermission=function(e){return n.group.updateGroupMemberPermission(e)},n.editGroupName=function(e,t){return n.group.editGroupName(e,t)},n.editNotification=function(e,t){return n.group.editNotification(e,t)},n.editGroupCustomer=function(e,t){return n.group.editGroupCustomer(e,t)},n.addAdmin=function(e,t){return n.group.addAdmin(e,t)},n.deleteAdmin=function(e,t){return n.group.deleteAdmin(e,t)},n.pin=function(e,t,r){return n.group.pin(e,t,r)},n.muteGroup=function(e,t){return n.group.muteGroup(e,t)},n.muteMember=function(e,t,r){return n.group.muteMember(e,t,r)},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 O({persistEnabled:!0,debug:t}),n.serviceManager=new T(n),n.startConversationSync(),n}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,s(n,r);var a,c,u=t.prototype;return u.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",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.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=P(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,r=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,r),0===n&&r&&r.records){e.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var o=e.cacheManager.getConversations();e.emit(exports.CbEvents.OnConversationListUpdated,o),e.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},u.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},u.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},u.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,r),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,r)}},u.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},u.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,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 r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(v);
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,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}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,g=/*#__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 r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||r(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.addEventListener(n,r)});var o=setTimeout(function(){e.connected||(r(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(o),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),r(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(c=e.ErrorCode||(e.ErrorCode={}))[c.UnknownError=10005]="UnknownError",e.RequestApi=void 0,(u=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",u.Logout="/chat/member/logout",u.GetGroupInfo="/chat/group/groupInfo",u.GetGroupMembers="/chat/group/groupMembers",u.JoinGroup="/chat/group/joinGroup",u.GetMyGroupPermission="/chat/group/permission/getPermission",u.GetGroupPermission="/chat/group/permission/groupPermission",u.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",u.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",u.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",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 l,h,v,p=/*#__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 r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},t}();e.GroupType=void 0,(l=e.GroupType||(e.GroupType={}))[l.PrivateChat=0]="PrivateChat",l[l.PrivateGroup=1]="PrivateGroup",l[l.PublicGroup=2]="PublicGroup",l[l.CustomerService=3]="CustomerService",l[l.LiveGroup=4]="LiveGroup",e.MessageType=void 0,(h=e.MessageType||(e.MessageType={}))[h.TEXT=0]="TEXT",h[h.IMAGE=1]="IMAGE",h[h.FILE=2]="FILE",h[h.AUDIO=3]="AUDIO",h[h.VIDEO=4]="VIDEO",h[h.LINK=5]="LINK",h[h.GIF=6]="GIF",h[h.OPTION=7]="OPTION",h[h.EMOJI=8]="EMOJI",h[h.CUSTOM=100]="CUSTOM",e.SseEventType=void 0,(v=e.SseEventType||(e.SseEventType={}))[v.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",v[v.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",v[v.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",v[v.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH";var f="undefined"!=typeof uni,m="undefined"!=typeof window,C="simsdk_",M={CONVERSATIONS:C+"conversations",GROUP_MESSAGES:C+"group_messages",USER_INFO:C+"user_info",META_INFO:C+"meta"},S={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},O=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},S,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]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e,t){var n,r=e.groupId;if(!r)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===r});if(-1===o)return!1;var s=this.conversationCache[o],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===r?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,o={},s=r(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,h=function(){var e=l.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=r(g);!(l=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,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(M.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(M.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(M.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(M.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(M.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(M.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(M.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(M.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(M.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=M.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(M.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=r(Object.keys(localStorage).filter(function(e){return e.startsWith(C)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),E=/*#__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}(),y=/*#__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(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,t,n,r){void 0===n&&(n={});var s=o({},n,{msgType:e},r,{status:0});return this.sendMessage(s,t)},n.createTextMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.TEXT,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,n,r,o,s){void 0===s&&(s={});try{return Promise.resolve(this.createMessage(e.MessageType.IMAGE,e.RequestApi.CreateTextMessage,s,{link:t,snapshot:n,groupId:r,groupType:o}))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.FILE,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createAudioMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.AUDIO,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.VIDEO,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.LINK,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.GIF,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.OPTION,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.EMOJI,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.CUSTOM,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var n=t.groupId,r=t.lastId,o=t.size,s=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:r,size:s},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),b=/*#__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,r,o;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!=(r=e.unreadCount)?r:0,draftText:null!=(o=e.draftText)?o:""}},t}(),T=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return 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)}},n.getMyGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMemberPermission=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,targetMemberId:n},url:e.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.updateGroupMemberPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),P=/*#__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 E(this.sdk);case e.ServiceName.MESSAGE:return new y(this.sdk);case e.ServiceName.CONVERSATION:return new b(this.sdk);case e.ServiceName.GROUP:return new T(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function G(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var I=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired];e.SIMSDK=/*#__PURE__*/function(t){function n(n){var r;return void 0===n&&(n=!1),(r=t.call(this)||this).config={debug:!1},r.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},r.cacheManager=void 0,r.sseClient=void 0,r.serviceManager=void 0,r.conversationSyncTimer=void 0,r.syncInterval=2e4,r.isSyncing=!1,r.lastFetchTtl=0,r.syncConversationsWithServer=function(){try{if(r.isSyncing)return r.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var t=r.isLoggedIn(),n=r.isConnected();if(!t||!n)return console.warn("[SDK] Not syncing. Login status: "+t+", Connection status: "+n),Promise.resolve();var o=function(t,n){try{var o=G(function(){return r.isSyncing=!0,Promise.resolve(r.group.checkGroupLatestMessage(r.lastFetchTtl)).then(function(t){console.log("res ",t);var n=function(){if(0==t.code){var n=t.data,o=n.groupChatIds;r.lastFetchTtl=n.ttl;var s=function(){if(o&&Object.keys(o).length>0)return Object.entries(o).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(r.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){if(0===t.code){var n=t.data.records,o=r.cacheManager.getConversations(),s=new Set(o.map(function(e){return e.id})),i=n.filter(function(e){return!s.has(e.id)});i.length>0&&(r.cacheManager.setConversations([].concat(o,i)),r.emit(e.CbEvents.OnConversationCreated,i),r.config.debug&&console.log("[SDK] Found "+i.length+" new conversations")),r.emit(e.CbEvents.OnConversationListUpdated,r.cacheManager.getConversations())}})}();if(s&&s.then)return s.then(function(){})}}();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,t){if(r.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},r.configure=function(e){void 0!==e.debug&&(r.config.debug=e.debug),e.apiAddr&&(r.config.apiAddr=e.apiAddr),e.ossApiAddr&&(r.config.ossApiAddr=e.ossApiAddr),e.appKey&&(r.config.appKey=e.appKey)},r.sendRequest=function(e){r.internalState.lastActivity=Date.now(),r.config.debug&&r.logRequest(e);var t=r.config.apiAddr+e.url,n=e.data;if("GET"===e.method&&n){var o=new URLSearchParams;Object.entries(n).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),n=void 0}return function(e){try{return Promise.resolve(f?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(m)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:r.config.token?"Bearer "+r.config.token:""},data:n})},r.createRequestFunction=function(e,t){return function(n){return r.sendRequest({data:n,url:e,method:t})}},r.createRequestFunctionWithoutParams=function(e,t){return function(){return r.sendRequest({data:void 0,method:t,url:e})}},r.handleMessage=function(t){switch(r.config.debug&&console.log("handleMessage response",t),t.ev){case e.SseEventType.EVENT_MESSAGE_PUSH:if(1===t.dt.length){var n=t.dt[0];r.updateMessageCache(n),r.emit(e.CbEvents.OnReceiveMessage,n)}else{var o=t.dt;o.forEach(function(e){r.updateMessageCache(e)}),r.emit(e.CbEvents.OnReceiveMessages,o)}break;case e.SseEventType.EVENT_PONG_IDLE:r.internalState.isConnected=!0;break;default:s=t.ev,Object.values(e.CbEvents).includes(s)?(r.emit(t.ev,t.dt),I.includes(t.ev)&&(r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,r.sseClient&&(r.sseClient.close(),r.sseClient=void 0))):r.config.debug&&console.warn("Unknown SSE event type:",t.ev)}var s},r.handleReconnectSuccess=function(){r.config.username&&(r.internalState.isConnected=!0,r.internalState.reconnectAttempts=0,r.config.debug&&console.log("SSE reconnection successful"),r.emit(e.CbEvents.OnReconnected))},r.handleConnectionClosed=function(){r.internalState.isConnected=!1,r.config.debug&&console.log("SSE connection closed"),r.emit(e.CbEvents.OnDisconnected)},r.login=function(t){try{if(r.sseClient)return Promise.resolve("login repeat");if(!r.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!r.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!r.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");r.config.token=t.token,r.config.username=t.username,r.config.debug&&(console.log("login params",t),console.log("apiAddr",r.config.apiAddr)),r.cacheManager.initialize(t.username),r.cacheManager.resetActiveConversation();var n=r.cacheManager.getConversations();return n.length>0&&r.emit(e.CbEvents.OnConversationListUpdated,n),Promise.resolve(r.user.login(o({},t,{appKey:r.config.appKey}))).then(function(e){var n=e.code,o=e.data;return 0!=n?Promise.resolve("Login failed, Server error, error code is "+n):(r.initializeConversationCache(),console.log("initializeConversationCache "),r.sseClient=new g({url:r.config.apiAddr+"/chat/sse/conn?username="+t.username+"&token="+t.token+"&appKey="+r.config.appKey+"&random="+o,onMessage:r.handleMessage,onReconnectSuccess:r.handleReconnectSuccess,onConnectionClosed:r.handleConnectionClosed,token:t.token}),G(function(){return Promise.resolve(r.sseClient.connect()).then(function(e){return r.internalState.isLoggedIn=!0,e})},function(e){return r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},r.logout=function(){try{return r.sseClient&&(r.sseClient.close(),r.sseClient=void 0),Promise.resolve(r.user.logout()).then(function(e){return r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,r.config.username=void 0,r.config.token=void 0,r.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},r.getConversations=function(t){try{return Promise.resolve(G(function(){return Promise.resolve(r.conversation.getConversations(t)).then(function(n){var o=n.data;if(0===n.code&&o){var s=r.cacheManager.getConversations();if(1===t.pageNo)r.cacheManager.setConversations([].concat(o.records));else{var i=o.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),u=[].concat(s,c);r.cacheManager.setConversations(u)}r.emit(e.CbEvents.OnConversationListUpdated,r.cacheManager.getConversations())}else{var d=r.cacheManager.getConversations();d.length>0&&r.emit(e.CbEvents.OnConversationListUpdated,d)}return!0})},function(t){console.error("Failed to get conversations:",t);var n=r.cacheManager.getConversations();return n.length>0&&r.emit(e.CbEvents.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},r.internalUploadFile=function(t){try{return Promise.resolve(G(function(){var n=new FormData;return n.append("file",t),n.append("filename",t.name),Promise.resolve(fetch(""+r.config.ossApiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:r.config.token?"Bearer "+r.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)}},r.uploadFile=function(t){var n=t.file;try{return Promise.resolve(r.internalUploadFile(n)).then(function(t){var n,r=t.originalUrl,o=t.thumbnailUrl,s=t.error;return{data:{originalUrl:void 0===r?"":r,thumbnailUrl:void 0===o?"":o},msg:null!=(n=null==s?void 0:s.message)?n:"",code:s?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},r.sendTextMessage=function(e,t,n,o){return r.message.createTextMessage(e,t,n,o)},r.sendImageMessage=function(e,t,n,o,s){return r.message.createImageMessage(e,t,n,o,s)},r.sendFileMessage=function(e,t,n,o){return r.message.createFileMessage(e,t,n,o)},r.sendAudioMessage=function(e,t,n,o){return r.message.createAudioMessage(e,t,n,o)},r.sendVideoMessage=function(e,t,n,o){return r.message.createVideoMessage(e,t,n,o)},r.sendLinkMessage=function(e,t,n,o){return r.message.createLinkMessage(e,t,n,o)},r.sendGifMessage=function(e,t,n,o){return r.message.createGifMessage(e,t,n,o)},r.sendOptionMessage=function(e,t,n,o){return r.message.createOptionMessage(e,t,n,o)},r.sendEmojiMessage=function(e,t,n,o){return r.message.createEmojiMessage(e,t,n,o)},r.sendCustomMessage=function(e,t,n,o){return r.message.createCustomMessage(e,t,n,o)},r.getHistoryMessageList=function(e){return e.groupId&&r.cacheManager.markConversationAsActive(e.groupId),r.message.getHistoryMessageList(e)},r.getGroupInfo=function(e){return r.group.getGroupInfo(e)},r.getGroupMembers=function(e){return r.group.getGroupMembers(e)},r.joinGroup=function(e){return r.group.joinGroup(e)},r.getMyGroupPermission=function(e){return r.group.getMyGroupPermission(e)},r.getGroupPermission=function(e){return r.group.getGroupPermission(e)},r.getGroupMemberPermission=function(e,t){return r.group.getGroupMemberPermission(e,t)},r.updateGroupPermission=function(e){return r.group.updateGroupPermission(e)},r.updateGroupMemberPermission=function(e){return r.group.updateGroupMemberPermission(e)},r.markConversationRead=function(e){return r.conversation.markConversationRead(e)},r.clearConversationUnread=function(t){r.cacheManager.clearConversationUnread(t);var n=r.cacheManager.getConversations();r.emit(e.CbEvents.OnConversationListUpdated,n)},r.clearAllConversationUnread=function(){r.cacheManager.clearAllConversationUnread();var t=r.cacheManager.getConversations();r.emit(e.CbEvents.OnConversationListUpdated,t)},r.config.debug=n,r.cacheManager=new O({persistEnabled:!0,debug:n}),r.serviceManager=new P(r),r.startConversationSync(),r}var r,a;a=t,(r=n).prototype=Object.create(a.prototype),r.prototype.constructor=r,s(r,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",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.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=G(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var r=n.code,o=n.data;if(t.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",r,o),0===r&&o&&o.records){t.cacheManager.setConversations(o.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",o.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},d.onMessage=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessage,t),function(){return n.off(e.CbEvents.OnReceiveMessage,t)}},d.onMessages=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessages,t),function(){return n.off(e.CbEvents.OnReceiveMessages,t)}},d.onConnectionChange=function(t){var n=this,r=function(){return t(!0)},o=function(){return t(!1)};return this.on(e.CbEvents.OnConnected,r),this.on(e.CbEvents.OnDisconnected,o),function(){n.off(e.CbEvents.OnConnected,r),n.off(e.CbEvents.OnDisconnected,o)}},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 r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(p)});
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,r=Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(null,arguments)}function s(e,t){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},s(e,t)}function i(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}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,g=/*#__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 r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.removeEventListener(n,r)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,r){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||r(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var r=e._customHandlers.get(n);r&&e.eventSource&&e.eventSource.addEventListener(n,r)});var o=setTimeout(function(){e.connected||(r(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(o),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),r(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(c=e.ErrorCode||(e.ErrorCode={}))[c.UnknownError=10005]="UnknownError",e.RequestApi=void 0,(u=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",u.Logout="/chat/member/logout",u.GetGroupInfo="/chat/group/groupInfo",u.GetGroupMembers="/chat/group/groupMembers",u.JoinGroup="/chat/group/joinGroup",u.GetMyGroupPermission="/chat/group/permission/getPermission",u.GetGroupPermission="/chat/group/permission/groupPermission",u.GetGroupMemberPermission="/chat/group/permission/groupMemberPermission",u.UpdateGroupPermission="/chat/group/permission/updateGroupPermission",u.UpdateGroupMemberPermission="/chat/group/permission/updateGroupMemberPermission",u.editeGroupName="/chat/group/operation/editeGroupName",u.editeNotification="/chat/group/operation/editeNotification",u.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",u.addAdmin="/group/admin/add",u.deleteAdmin="/group/admin/delete",u.pin="/group/message/pin",u.muteGroup="/group/mute",u.muteMember="/group/member/mute",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.OnReceiveSystemMessage="OnReceiveSystemMessage",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 l,h,p,v,m=/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.OnReceiveMessage]=[],t[e.CbEvents.OnReceiveSystemMessage]=[],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 r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},t}();e.GroupType=void 0,(l=e.GroupType||(e.GroupType={}))[l.PrivateChat=0]="PrivateChat",l[l.PrivateGroup=1]="PrivateGroup",l[l.PublicGroup=2]="PublicGroup",l[l.CustomerService=3]="CustomerService",l[l.LiveGroup=4]="LiveGroup",e.MessageType=void 0,(h=e.MessageType||(e.MessageType={}))[h.TEXT=0]="TEXT",h[h.IMAGE=1]="IMAGE",h[h.FILE=2]="FILE",h[h.AUDIO=3]="AUDIO",h[h.VIDEO=4]="VIDEO",h[h.LINK=5]="LINK",h[h.GIF=6]="GIF",h[h.OPTION=7]="OPTION",h[h.EMOJI=8]="EMOJI",h[h.CUSTOM=100]="CUSTOM",e.SseEventType=void 0,(p=e.SseEventType||(e.SseEventType={}))[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",p[p.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",e.SystemMessageType=void 0,(v=e.SystemMessageType||(e.SystemMessageType={}))[v.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",v[v.GroupPermissionChange=4]="GroupPermissionChange";var f="undefined"!=typeof uni,C="undefined"!=typeof window,M="simsdk_",S={CONVERSATIONS:M+"conversations",GROUP_MESSAGES:M+"group_messages",USER_INFO:M+"user_info",META_INFO:M+"meta"},O={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},E=/*#__PURE__*/function(){function e(e){var t=void 0===e?{}:e,n=t.persistEnabled,r=void 0===n||n,s=t.debug,i=void 0!==s&&s,a=t.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},O,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]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},t.updateConversationWithMessage=function(e,t){var n,r=e.groupId;if(!r)return!1;var o=this.conversationCache.findIndex(function(e){return e.id===r});if(-1===o)return!1;var s=this.conversationCache[o],i=(null==(n=s.latest)?void 0:n.msgId)||0;return this.activeConversation&&this.activeConversation.id===r?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,o={},s=r(e);!(t=s()).done;){var i=t.value;i.groupId&&(o[i.groupId]||(o[i.groupId]=[]),o[i.groupId].push(i))}for(var a=0,c=Object.entries(o);a<c.length;a++){var u=c[a],d=u[0],g=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var l,h=function(){var e=l.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)},p=r(g);!(l=p()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(S.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(S.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(S.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(S.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(S.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(S.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(S.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(S.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(S.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=S.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(S.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=r(Object.keys(localStorage).filter(function(e){return e.startsWith(M)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=o({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),y=/*#__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}(),b=/*#__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(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,t,n,r){void 0===n&&(n={});var s=o({},n,{msgType:e},r,{status:0});return this.sendMessage(s,t)},n.createTextMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.TEXT,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,n,r,o,s){void 0===s&&(s={});try{return Promise.resolve(this.createMessage(e.MessageType.IMAGE,e.RequestApi.CreateTextMessage,s,{link:t,snapshot:n,groupId:r,groupType:o}))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.FILE,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createAudioMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.AUDIO,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.VIDEO,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.LINK,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.GIF,e.RequestApi.CreateTextMessage,o,{link:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.OPTION,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.EMOJI,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.CUSTOM,e.RequestApi.CreateTextMessage,o,{text:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var n=t.groupId,r=t.lastId,o=t.size,s=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:r,size:s},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),T=/*#__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,r,o;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!=(r=e.unreadCount)?r:0,draftText:null!=(o=e.draftText)?o:""}},t}(),G=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return 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)}},n.getMyGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetMyGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMemberPermission=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,targetMemberId:n},url:e.RequestApi.GetGroupMemberPermission,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateGroupPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.updateGroupMemberPermission=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.UpdateGroupMemberPermission,method:"POST"}))}catch(e){return Promise.reject(e)}},n.editGroupName=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeGroupName,method:"GET",data:{groupId:t,name:n}}))}catch(e){return Promise.reject(e)}},n.editNotification=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeNotification,method:"GET",data:{groupId:t,notification:n}}))}catch(e){return Promise.reject(e)}},n.editGroupCustomer=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.editeGroupCustomer,method:"GET",data:{groupId:t,customer:n}}))}catch(e){return Promise.reject(e)}},n.addAdmin=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.addAdmin,method:"GET",data:{groupId:t,memberId:n}}))}catch(e){return Promise.reject(e)}},n.deleteAdmin=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.deleteAdmin,method:"GET",data:{groupId:t,memberId:n}}))}catch(e){return Promise.reject(e)}},n.pin=function(t,n,r){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.pin,method:"GET",data:{groupId:t,messageId:n,type:r}}))}catch(e){return Promise.reject(e)}},n.muteGroup=function(t,n){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.muteGroup,method:"GET",data:{groupId:t,type:n}}))}catch(e){return Promise.reject(e)}},n.muteMember=function(t,n,r){try{return Promise.resolve(this.sdk.sendRequest({url:e.RequestApi.muteMember,method:"POST",data:{groupId:t,memberId:n,type:r}}))}catch(e){return Promise.reject(e)}},t}(),P=/*#__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 y(this.sdk);case e.ServiceName.MESSAGE:return new b(this.sdk);case e.ServiceName.CONVERSATION:return new T(this.sdk);case e.ServiceName.GROUP:return new G(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}();function A(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var I=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired];e.SIMSDK=/*#__PURE__*/function(t){function n(n){var r;return void 0===n&&(n=!1),(r=t.call(this)||this).config={debug:!1},r.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},r.cacheManager=void 0,r.sseClient=void 0,r.serviceManager=void 0,r.conversationSyncTimer=void 0,r.syncInterval=2e4,r.isSyncing=!1,r.lastFetchTtl=0,r.syncConversationsWithServer=function(){try{if(r.isSyncing)return r.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var t=r.isLoggedIn(),n=r.isConnected();if(!t||!n)return console.warn("[SDK] Not syncing. Login status: "+t+", Connection status: "+n),Promise.resolve();var o=function(t,n){try{var o=A(function(){return r.isSyncing=!0,Promise.resolve(r.group.checkGroupLatestMessage(r.lastFetchTtl)).then(function(t){console.log("res ",t);var n=function(){if(0==t.code){var n=t.data,o=n.groupChatIds;r.lastFetchTtl=n.ttl;var s=function(){if(o&&Object.keys(o).length>0)return Object.entries(o).forEach(function(e){var t=e[1],n=Number(e[0]);console.log("groupId: "+n+", messageId: "+t)}),Promise.resolve(r.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){if(0===t.code){var n=t.data.records,o=r.cacheManager.getConversations(),s=new Set(o.map(function(e){return e.id})),i=n.filter(function(e){return!s.has(e.id)});i.length>0&&(r.cacheManager.setConversations([].concat(o,i)),r.emit(e.CbEvents.OnConversationCreated,i),r.config.debug&&console.log("[SDK] Found "+i.length+" new conversations")),r.emit(e.CbEvents.OnConversationListUpdated,r.cacheManager.getConversations())}})}();if(s&&s.then)return s.then(function(){})}}();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,t){if(r.isSyncing=!1,e)throw t;return t});return Promise.resolve(o&&o.then?o.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},r.configure=function(e){void 0!==e.debug&&(r.config.debug=e.debug),e.apiAddr&&(r.config.apiAddr=e.apiAddr),e.ossApiAddr&&(r.config.ossApiAddr=e.ossApiAddr),e.appKey&&(r.config.appKey=e.appKey)},r.sendRequest=function(e){r.internalState.lastActivity=Date.now(),r.config.debug&&r.logRequest(e);var t=r.config.apiAddr+e.url,n=e.data;if("GET"===e.method&&n){var o=new URLSearchParams;Object.entries(n).forEach(function(e){var t=e[1];null!=t&&o.append(e[0],String(t))});var s=o.toString();s&&(t+=(t.includes("?")?"&":"?")+s),n=void 0}return function(e){try{return Promise.resolve(f?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(C)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:r.config.token?"Bearer "+r.config.token:""},data:n})},r.createRequestFunction=function(e,t){return function(n){return r.sendRequest({data:n,url:e,method:t})}},r.createRequestFunctionWithoutParams=function(e,t){return function(){return r.sendRequest({data:void 0,method:t,url:e})}},r.handleMessage=function(t){switch(r.config.debug&&console.log("handleMessage response",t),t.ev){case e.SseEventType.EVENT_MESSAGE_PUSH:if(1===t.dt.length){var n=t.dt[0];r.updateMessageCache(n),r.emit(e.CbEvents.OnReceiveMessage,n)}else{var o=t.dt;o.forEach(function(e){r.updateMessageCache(e)}),r.emit(e.CbEvents.OnReceiveMessages,o)}break;case e.SseEventType.EVENT_PONG_IDLE:r.internalState.isConnected=!0;break;case e.SseEventType.EVENT_SYSTEM_MESSAGE_PUSH:r.emit(e.CbEvents.OnReceiveSystemMessage,t.dt);break;default:s=t.ev,Object.values(e.CbEvents).includes(s)?(r.emit(t.ev,t.dt),I.includes(t.ev)&&(r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,r.sseClient&&(r.sseClient.close(),r.sseClient=void 0))):r.config.debug&&console.warn("Unknown SSE event type:",t.ev)}var s},r.handleReconnectSuccess=function(){r.config.username&&(r.internalState.isConnected=!0,r.internalState.reconnectAttempts=0,r.config.debug&&console.log("SSE reconnection successful"),r.emit(e.CbEvents.OnReconnected))},r.handleConnectionClosed=function(){r.internalState.isConnected=!1,r.config.debug&&console.log("SSE connection closed"),r.emit(e.CbEvents.OnDisconnected)},r.login=function(t){try{if(r.sseClient)return Promise.resolve("login repeat");if(!r.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!r.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!r.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");r.config.token=t.token,r.config.username=t.username,r.config.debug&&(console.log("login params",t),console.log("apiAddr",r.config.apiAddr)),r.cacheManager.initialize(t.username),r.cacheManager.resetActiveConversation();var n=r.cacheManager.getConversations();return n.length>0&&r.emit(e.CbEvents.OnConversationListUpdated,n),Promise.resolve(r.user.login(o({},t,{appKey:r.config.appKey}))).then(function(e){var n=e.code,o=e.data;return 0!=n?Promise.resolve("Login failed, Server error, error code is "+n):(r.initializeConversationCache(),console.log("initializeConversationCache "),r.sseClient=new g({url:r.config.apiAddr+"/chat/sse/conn?username="+t.username+"&token="+t.token+"&appKey="+r.config.appKey+"&random="+o,onMessage:r.handleMessage,onReconnectSuccess:r.handleReconnectSuccess,onConnectionClosed:r.handleConnectionClosed,token:t.token}),A(function(){return Promise.resolve(r.sseClient.connect()).then(function(e){return r.internalState.isLoggedIn=!0,e})},function(e){return r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},r.logout=function(){try{return r.sseClient&&(r.sseClient.close(),r.sseClient=void 0),Promise.resolve(r.user.logout()).then(function(e){return r.internalState.isLoggedIn=!1,r.internalState.isConnected=!1,r.config.username=void 0,r.config.token=void 0,r.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},r.getConversations=function(t){try{return Promise.resolve(A(function(){return Promise.resolve(r.conversation.getConversations(t)).then(function(n){var o=n.data;if(0===n.code&&o){var s=r.cacheManager.getConversations();if(1===t.pageNo)r.cacheManager.setConversations([].concat(o.records));else{var i=o.records||[],a=new Set(s.map(function(e){return e.id})),c=i.filter(function(e){return!a.has(e.id)}),u=[].concat(s,c);r.cacheManager.setConversations(u)}r.emit(e.CbEvents.OnConversationListUpdated,r.cacheManager.getConversations())}else{var d=r.cacheManager.getConversations();d.length>0&&r.emit(e.CbEvents.OnConversationListUpdated,d)}return!0})},function(t){console.error("Failed to get conversations:",t);var n=r.cacheManager.getConversations();return n.length>0&&r.emit(e.CbEvents.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},r.internalUploadFile=function(t,n){try{return Promise.resolve(A(function(){var o=new FormData;return o.append("file",t),o.append("filename",t.name),o.append("groupId",n.toString()),Promise.resolve(fetch(""+r.config.ossApiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:r.config.token?"Bearer "+r.config.token:""},body:o})).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)}},r.uploadFile=function(t,n){var o=t.file;try{return Promise.resolve(r.internalUploadFile(o,n)).then(function(t){var n,r=t.originalUrl,o=t.thumbnailUrl,s=t.error;return{data:{originalUrl:void 0===r?"":r,thumbnailUrl:void 0===o?"":o},msg:null!=(n=null==s?void 0:s.message)?n:"",code:s?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},r.sendTextMessage=function(e,t,n,o){return r.message.createTextMessage(e,t,n,o)},r.sendImageMessage=function(e,t,n,o,s){return r.message.createImageMessage(e,t,n,o,s)},r.sendFileMessage=function(e,t,n,o){return r.message.createFileMessage(e,t,n,o)},r.sendAudioMessage=function(e,t,n,o){return r.message.createAudioMessage(e,t,n,o)},r.sendVideoMessage=function(e,t,n,o){return r.message.createVideoMessage(e,t,n,o)},r.sendLinkMessage=function(e,t,n,o){return r.message.createLinkMessage(e,t,n,o)},r.sendGifMessage=function(e,t,n,o){return r.message.createGifMessage(e,t,n,o)},r.sendOptionMessage=function(e,t,n,o){return r.message.createOptionMessage(e,t,n,o)},r.sendEmojiMessage=function(e,t,n,o){return r.message.createEmojiMessage(e,t,n,o)},r.sendCustomMessage=function(e,t,n,o){return r.message.createCustomMessage(e,t,n,o)},r.getHistoryMessageList=function(e){return e.groupId&&r.cacheManager.markConversationAsActive(e.groupId),r.message.getHistoryMessageList(e)},r.getGroupInfo=function(e){return r.group.getGroupInfo(e)},r.getGroupMembers=function(e){return r.group.getGroupMembers(e)},r.joinGroup=function(e){return r.group.joinGroup(e)},r.getMyGroupPermission=function(e){return r.group.getMyGroupPermission(e)},r.getGroupPermission=function(e){return r.group.getGroupPermission(e)},r.getGroupMemberPermission=function(e,t){return r.group.getGroupMemberPermission(e,t)},r.updateGroupPermission=function(e){return r.group.updateGroupPermission(e)},r.updateGroupMemberPermission=function(e){return r.group.updateGroupMemberPermission(e)},r.editGroupName=function(e,t){return r.group.editGroupName(e,t)},r.editNotification=function(e,t){return r.group.editNotification(e,t)},r.editGroupCustomer=function(e,t){return r.group.editGroupCustomer(e,t)},r.addAdmin=function(e,t){return r.group.addAdmin(e,t)},r.deleteAdmin=function(e,t){return r.group.deleteAdmin(e,t)},r.pin=function(e,t,n){return r.group.pin(e,t,n)},r.muteGroup=function(e,t){return r.group.muteGroup(e,t)},r.muteMember=function(e,t,n){return r.group.muteMember(e,t,n)},r.markConversationRead=function(e){return r.conversation.markConversationRead(e)},r.clearConversationUnread=function(t){r.cacheManager.clearConversationUnread(t);var n=r.cacheManager.getConversations();r.emit(e.CbEvents.OnConversationListUpdated,n)},r.clearAllConversationUnread=function(){r.cacheManager.clearAllConversationUnread();var t=r.cacheManager.getConversations();r.emit(e.CbEvents.OnConversationListUpdated,t)},r.config.debug=n,r.cacheManager=new E({persistEnabled:!0,debug:n}),r.serviceManager=new P(r),r.startConversationSync(),r}var r,a;a=t,(r=n).prototype=Object.create(a.prototype),r.prototype.constructor=r,s(r,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",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.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=A(function(){return Promise.resolve(t.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var r=n.code,o=n.data;if(t.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",r,o),0===r&&o&&o.records){t.cacheManager.setConversations(o.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",o.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},d.onMessage=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessage,t),function(){return n.off(e.CbEvents.OnReceiveMessage,t)}},d.onMessages=function(t){var n=this;return this.on(e.CbEvents.OnReceiveMessages,t),function(){return n.off(e.CbEvents.OnReceiveMessages,t)}},d.onConnectionChange=function(t){var n=this,r=function(){return t(!0)},o=function(){return t(!1)};return this.on(e.CbEvents.OnConnected,r),this.on(e.CbEvents.OnDisconnected,o),function(){n.off(e.CbEvents.OnConnected,r),n.off(e.CbEvents.OnDisconnected,o)}},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 r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(m)});
@@ -207,9 +207,15 @@ export interface UpdateGroupPermission {
207
207
  export interface UpdateGroupMemberPermission {
208
208
  /** 群id */
209
209
  groupId: number;
210
- /** 成员id,可选字段,如果不是必须的 */
211
- targetMemberId?: number;
210
+ /**
211
+ * 群成员id
212
+ */
213
+ targetMemberId: number;
212
214
  /** 更新的权限列表 */
213
215
  permissions: GroupPermission[];
214
216
  }
217
+ export type SystemMessageResponse = {
218
+ groupId: number;
219
+ type: number;
220
+ };
215
221
  export {};
@@ -21,5 +21,10 @@ export declare enum SseEventType {
21
21
  EVENT_PONG_CONN = 0,
22
22
  EVENT_PONG_RE_CONN = 1,
23
23
  EVENT_PONG_IDLE = 2,
24
- EVENT_MESSAGE_PUSH = 3
24
+ EVENT_MESSAGE_PUSH = 3,
25
+ EVENT_SYSTEM_MESSAGE_PUSH = 4
26
+ }
27
+ export declare enum SystemMessageType {
28
+ GroupMemberPermissionChange = 3,// 群用户权限设置更改
29
+ GroupPermissionChange = 4
25
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "v1.0.38",
3
+ "version": "v1.0.41",
4
4
  "description": "Sim SDK for Web",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",