sim-sdk-web 1.0.43 → 1.0.45

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.
@@ -2,7 +2,7 @@ import { HistoryMessageParam, ServerResponse, Request, MessageItem, ReqPageParam
2
2
  import type { LoginParams, UploadFileParams } from '../types/params';
3
3
  import { RequestApi } from '../constant/api';
4
4
  import Emitter from '../utils/emitter';
5
- import { ConversationType } from '../types/enum';
5
+ import { GroupType } from '../types/enum';
6
6
  import { HttpMethod } from '../utils/request';
7
7
  import { UserService } from './user';
8
8
  import { GroupService } from './group';
@@ -201,93 +201,93 @@ declare class SIMSDK extends Emitter {
201
201
  * 发送文本消息
202
202
  * @param text 文本内容
203
203
  * @param to 接收者用户名或群组ID
204
- * @param conversationType 会话类型(群聊或私聊)
204
+ * @param groupType 会话类型(群聊或私聊)
205
205
  * @param params 附加消息参数(MessageItem 类型的部分属性,排除 text 字段)
206
206
  * @returns Promise,返回服务器响应的消息列表
207
207
  */
208
- sendTextMessage: (text: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
208
+ sendTextMessage: (text: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
209
209
  /**
210
210
  * 发送图片消息
211
211
  * @param link 图片链接
212
212
  * @param snapshot 图片缩略图(base64)
213
213
  * @param to 接收者用户名或群组ID
214
- * @param conversationType 会话类型
214
+ * @param groupType 会话类型
215
215
  * @param params 附加消息参数(排除 link 和 snapshot 字段)
216
216
  * @returns Promise,返回服务器响应的消息列表
217
217
  */
218
- sendImageMessage: (link: string, snapshot: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "link" | "snapshot">>) => Promise<ServerResponse<MessageItem[]>>;
218
+ sendImageMessage: (link: string, snapshot: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "link" | "snapshot">>) => Promise<ServerResponse<MessageItem[]>>;
219
219
  /**
220
220
  * 发送文件消息
221
221
  * @param fileUrl 文件链接
222
222
  * @param to 接收者用户名或群组ID
223
- * @param conversationType 会话类型
223
+ * @param groupType 会话类型
224
224
  * @param params 附加消息参数(排除 link 字段)
225
225
  * @returns Promise,返回服务器响应的消息列表
226
226
  */
227
- sendFileMessage: (fileUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
227
+ sendFileMessage: (fileUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
228
228
  /**
229
229
  * 发送音频消息
230
230
  * @param audioUrl 音频链接
231
231
  * @param to 接收者用户名或群组ID
232
- * @param conversationType 会话类型
232
+ * @param groupType 会话类型
233
233
  * @param params 附加消息参数(排除 link 字段)
234
234
  * @returns Promise,返回服务器响应的消息列表
235
235
  */
236
- sendAudioMessage: (audioUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
236
+ sendAudioMessage: (audioUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
237
237
  /**
238
238
  * 发送视频消息
239
239
  * @param videoUrl 视频链接
240
240
  * @param to 接收者用户名或群组ID
241
- * @param conversationType 会话类型
241
+ * @param groupType 会话类型
242
242
  * @param params 附加消息参数(排除 link 字段)
243
243
  * @returns Promise,返回服务器响应的消息列表
244
244
  */
245
- sendVideoMessage: (videoUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
245
+ sendVideoMessage: (videoUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
246
246
  /**
247
247
  * 发送超链接消息
248
248
  * @param linkUrl 超链接地址
249
249
  * @param to 接收者用户名或群组ID
250
- * @param conversationType 会话类型
250
+ * @param groupType 会话类型
251
251
  * @param params 附加消息参数(排除 text 字段)
252
252
  * @returns Promise,返回服务器响应的消息列表
253
253
  */
254
- sendLinkMessage: (linkUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
254
+ sendLinkMessage: (linkUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
255
255
  /**
256
256
  * 发送 Gif 动图消息
257
257
  * @param gifUrl gif 图片链接
258
258
  * @param to 接收者用户名或群组ID
259
- * @param conversationType 会话类型
259
+ * @param groupType 会话类型
260
260
  * @param params 附加消息参数(排除 link 字段)
261
261
  * @returns Promise,返回服务器响应的消息列表
262
262
  */
263
- sendGifMessage: (gifUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
263
+ sendGifMessage: (gifUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
264
264
  /**
265
265
  * 发送操作类型消息(如系统提示、操作反馈等)
266
266
  * @param optionText 操作文本内容
267
267
  * @param to 接收者用户名或群组ID
268
- * @param conversationType 会话类型
268
+ * @param groupType 会话类型
269
269
  * @param params 附加消息参数(排除 text 字段)
270
270
  * @returns Promise,返回服务器响应的消息列表
271
271
  */
272
- sendOptionMessage: (optionText: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
272
+ sendOptionMessage: (optionText: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
273
273
  /**
274
274
  * 发送 Emoji 表情消息
275
275
  * @param emoji Emoji 内容(如 😂)
276
276
  * @param to 接收者用户名或群组ID
277
- * @param conversationType 会话类型
277
+ * @param groupType 会话类型
278
278
  * @param params 附加消息参数(排除 text 字段)
279
279
  * @returns Promise,返回服务器响应的消息列表
280
280
  */
281
- sendEmojiMessage: (emoji: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
281
+ sendEmojiMessage: (emoji: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
282
282
  /**
283
283
  * 发送自定义消息(前端/业务自定义格式)
284
284
  * @param customText 自定义内容(如 json 字符串)
285
285
  * @param to 接收者用户名或群组ID
286
- * @param conversationType 会话类型
286
+ * @param groupType 会话类型
287
287
  * @param params 附加消息参数(排除 text 字段)
288
288
  * @returns Promise,返回服务器响应的消息列表
289
289
  */
290
- sendCustomMessage: (customText: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
290
+ sendCustomMessage: (customText: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
291
291
  /**
292
292
  * 获取历史消息列表
293
293
  * @param params
@@ -1,6 +1,6 @@
1
1
  import { HistoryMessageParam, HistoryMessageResponse, MessageItem, ServerResponse } from '../types/entity';
2
2
  import SIMSDK from './index';
3
- import { ConversationType } from '../types/enum';
3
+ import { GroupType } from '../types/enum';
4
4
  /**
5
5
  * 消息服务 - 负责消息创建、发送和历史记录
6
6
  */
@@ -21,7 +21,7 @@ export declare class MessageService {
21
21
  /**
22
22
  * 获取发送消息所需的API端点
23
23
  * @param params 附加参数
24
- * @param conversationType 会话类型
24
+ * @param groupType 会话类型
25
25
  * @returns API端点
26
26
  */
27
27
  private getMessageApi;
@@ -29,7 +29,7 @@ export declare class MessageService {
29
29
  * 创建消息通用方法
30
30
  * @param type 消息类型
31
31
  * @param to 接收者用户名或群组ID
32
- * @param conversationType 会话类型
32
+ * @param groupType 会话类型
33
33
  * @param additionalParams 附加参数
34
34
  * @param content 内容对象
35
35
  * @returns 创建结果Promise
@@ -39,83 +39,83 @@ export declare class MessageService {
39
39
  * 创建文本消息
40
40
  * @param text 文本内容
41
41
  * @param to 接收者用户名或群组ID
42
- * @param conversationType 会话类型
42
+ * @param groupType 会话类型
43
43
  * @param params 附加参数
44
44
  */
45
- createTextMessage(text: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
45
+ createTextMessage(text: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
46
46
  /**
47
47
  * 创建图片消息
48
48
  * @param link 图片链接
49
49
  * @param snapshot 快照链接
50
50
  * @param to 接收者用户名或群组ID
51
- * @param conversationType 会话类型
51
+ * @param groupType 会话类型
52
52
  * @param params 附加参数
53
53
  */
54
- createImageMessage(link: string, snapshot: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'link' | 'snapshot'>>): Promise<ServerResponse<MessageItem[]>>;
54
+ createImageMessage(link: string, snapshot: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link' | 'snapshot'>>): Promise<ServerResponse<MessageItem[]>>;
55
55
  /**
56
56
  * 创建文件消息
57
57
  * @param fileUrl 文件链接
58
58
  * @param to 接收者用户名或群组ID
59
- * @param conversationType 会话类型
59
+ * @param groupType 会话类型
60
60
  * @param params 附加参数
61
61
  */
62
- createFileMessage(fileUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
62
+ createFileMessage(fileUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
63
63
  /**
64
64
  * 创建音频消息
65
65
  * @param audioUrl 音频链接
66
66
  * @param to 接收者用户名或群组ID
67
- * @param conversationType 会话类型
67
+ * @param groupType 会话类型
68
68
  * @param params 附加参数
69
69
  */
70
- createAudioMessage(audioUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
70
+ createAudioMessage(audioUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
71
71
  /**
72
72
  * 创建视频消息
73
73
  * @param videoUrl 视频链接
74
74
  * @param to 接收者用户名或群组ID
75
- * @param conversationType 会话类型
75
+ * @param groupType 会话类型
76
76
  * @param params 附加参数
77
77
  */
78
- createVideoMessage(videoUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
78
+ createVideoMessage(videoUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
79
79
  /**
80
80
  * 创建链接消息
81
81
  * @param linkUrl 链接地址
82
82
  * @param to 接收者用户名或群组ID
83
- * @param conversationType 会话类型
83
+ * @param groupType 会话类型
84
84
  * @param params 附加参数
85
85
  */
86
- createLinkMessage(linkUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
86
+ createLinkMessage(linkUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
87
87
  /**
88
88
  * 创建GIF消息
89
89
  * @param gifUrl GIF图片链接
90
90
  * @param to 接收者用户名或群组ID
91
- * @param conversationType 会话类型
91
+ * @param groupType 会话类型
92
92
  * @param params 附加参数
93
93
  */
94
- createGifMessage(gifUrl: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
94
+ createGifMessage(gifUrl: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
95
95
  /**
96
96
  * 创建操作类消息
97
97
  * @param optionText 操作文本
98
98
  * @param to 接收者用户名或群组ID
99
- * @param conversationType 会话类型
99
+ * @param groupType 会话类型
100
100
  * @param params 附加参数
101
101
  */
102
- createOptionMessage(optionText: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
102
+ createOptionMessage(optionText: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
103
103
  /**
104
104
  * 创建Emoji消息
105
105
  * @param emoji emoji文本
106
106
  * @param to 接收者用户名或群组ID
107
- * @param conversationType 会话类型
107
+ * @param groupType 会话类型
108
108
  * @param params 附加参数
109
109
  */
110
- createEmojiMessage(emoji: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
110
+ createEmojiMessage(emoji: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
111
111
  /**
112
112
  * 创建自定义消息
113
113
  * @param customText 自定义文本
114
114
  * @param to 接收者用户名或群组ID
115
- * @param conversationType 会话类型
115
+ * @param groupType 会话类型
116
116
  * @param params 附加参数
117
117
  */
118
- createCustomMessage(customText: string, to: string, conversationType: ConversationType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
118
+ createCustomMessage(customText: string, to: string, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
119
119
  /**
120
120
  * 获取历史消息列表
121
121
  * @param params 查询参数,包括groupId, lastId, size
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.editeGroupName="/chat/group/operation/editeGroupName",e.editeNotification="/chat/group/operation/editeNotification",e.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",e.addAdmin="/chat/group/operation/addAdmin",e.deleteAdmin="/chat/group/operation/deleteAdmin",e.pin="/chat/group/operation/pin",e.muteGroup="/chat/group/operation/muteGroup",e.muteMember="/chat/group/operation/muteMember",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.PushMessageToMember="/chat/message/push2Member",e.PushPrivateMessage="/chat/message/pushPrivateMessage",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,v,m=/*#__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"}(v||(v={}));var p="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)},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(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}(),P=/*#__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.getMessageApi=function(e,t){return t===g.PrivateChat?c.PushPrivateMessage:null!=e&&e.receiverName?c.PushMessageToMember:c.CreateTextMessage},t.createMessage=function(e,t,n,o,s){void 0===o&&(o={});var i={groupType:n};n===g.PublicGroup?i.groupId=t:i.receiverName=t;var a=r({},i,o,{msgType:e},s);return this.sendMessage(a,this.getMessageApi(i,n))},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.TEXT,t,n,r,{text:e}))}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,n,r,o,{link:e,snapshot:t}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),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||"",conversationType:e.conversationType||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}(),y=/*#__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:"GET",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 P(this.sdk);case i.CONVERSATION:return new G(this.sdk);case i.GROUP:return new y(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function I(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],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=I(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;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),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}),I(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(I(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(I(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,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=I(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}(m);export{u as CbEvents,g as ConversationType,a as ErrorCode,l as MessageType,c as RequestApi,A as SIMSDK,i as ServiceName,h as SseEventType,v as SystemMessageType};
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="/chat/group/operation/addAdmin",e.deleteAdmin="/chat/group/operation/deleteAdmin",e.pin="/chat/group/operation/pin",e.muteGroup="/chat/group/operation/muteGroup",e.muteMember="/chat/group/operation/muteMember",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.PushMessageToMember="/chat/message/push2Member",e.PushPrivateMessage="/chat/message/pushPrivateMessage",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,v,m=/*#__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"}(v||(v={}));var p="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)},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(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}(),P=/*#__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.getMessageApi=function(e,t){return t===g.PrivateChat?c.PushPrivateMessage:null!=e&&e.receiverName?c.PushMessageToMember:c.CreateTextMessage},t.createMessage=function(e,t,n,o,s){void 0===o&&(o={});var i={groupType:n};n===g.PublicGroup?i.groupId=t:i.receiverName=t;var a=r({},i,o,{msgType:e},s);return this.sendMessage(a,this.getMessageApi(i,n))},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(l.TEXT,t,n,r,{text:e}))}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,n,r,o,{link:e,snapshot:t}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),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}(),y=/*#__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:"GET",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 P(this.sdk);case i.CONVERSATION:return new G(this.sdk);case i.GROUP:return new y(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function I(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],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=I(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;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),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}),I(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(I(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(I(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,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=I(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}(m);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,v 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.editeGroupName="/chat/group/operation/editeGroupName",c.editeNotification="/chat/group/operation/editeNotification",c.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",c.addAdmin="/chat/group/operation/addAdmin",c.deleteAdmin="/chat/group/operation/deleteAdmin",c.pin="/chat/group/operation/pin",c.muteGroup="/chat/group/operation/muteGroup",c.muteMember="/chat/group/operation/muteMember",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.PushMessageToMember="/chat/message/push2Member",c.PushPrivateMessage="/chat/message/pushPrivateMessage",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,h,p,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.ConversationType=void 0,(g=exports.ConversationType||(exports.ConversationType={}))[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",h[h.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",exports.SystemMessageType=void 0,(p=exports.SystemMessageType||(exports.SystemMessageType={}))[p.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",p[p.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,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(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.getMessageApi=function(e,t){return t===exports.ConversationType.PrivateChat?exports.RequestApi.PushPrivateMessage:null!=e&&e.receiverName?exports.RequestApi.PushMessageToMember:exports.RequestApi.CreateTextMessage},t.createMessage=function(e,t,n,r,s){void 0===r&&(r={});var i={groupType:n};n===exports.ConversationType.PublicGroup?i.groupId=t:i.receiverName=t;var a=o({},i,r,{msgType:e},s);return this.sendMessage(a,this.getMessageApi(i,n))},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.TEXT,t,n,r,{text:e}))}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,n,r,o,{link:e,snapshot:t}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),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||"",conversationType:e.conversationType||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: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:"GET",data:{groupId:e,memberId:t,type:n}}))}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 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 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 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=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(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}),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(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(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+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 G(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=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(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);
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="/chat/group/operation/addAdmin",c.deleteAdmin="/chat/group/operation/deleteAdmin",c.pin="/chat/group/operation/pin",c.muteGroup="/chat/group/operation/muteGroup",c.muteMember="/chat/group/operation/muteMember",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.PushMessageToMember="/chat/message/push2Member",c.PushPrivateMessage="/chat/message/pushPrivateMessage",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,h,p,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,(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",h[h.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",exports.SystemMessageType=void 0,(p=exports.SystemMessageType||(exports.SystemMessageType={}))[p.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",p[p.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,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(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.getMessageApi=function(e,t){return t===exports.GroupType.PrivateChat?exports.RequestApi.PushPrivateMessage:null!=e&&e.receiverName?exports.RequestApi.PushMessageToMember:exports.RequestApi.CreateTextMessage},t.createMessage=function(e,t,n,r,s){void 0===r&&(r={});var i={groupType:n};n===exports.GroupType.PublicGroup?i.groupId=t:i.receiverName=t;var a=o({},i,r,{msgType:e},s);return this.sendMessage(a,this.getMessageApi(i,n))},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(exports.MessageType.TEXT,t,n,r,{text:e}))}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,n,r,o,{link:e,snapshot:t}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{link:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}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,t,n,r,{text:e}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),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:"GET",data:{groupId:e,memberId:t,type:n}}))}catch(e){return Promise.reject(e)}},e}(),P=/*#__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 T(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=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(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}),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(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(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+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 P(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=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(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.editeGroupName="/chat/group/operation/editeGroupName",u.editeNotification="/chat/group/operation/editeNotification",u.editeGroupCustomer="/chat/group/operation/editeGroupCustomer",u.addAdmin="/chat/group/operation/addAdmin",u.deleteAdmin="/chat/group/operation/deleteAdmin",u.pin="/chat/group/operation/pin",u.muteGroup="/chat/group/operation/muteGroup",u.muteMember="/chat/group/operation/muteMember",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.PushMessageToMember="/chat/message/push2Member",u.PushPrivateMessage="/chat/message/pushPrivateMessage",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,v,p,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.ConversationType=void 0,(l=e.ConversationType||(e.ConversationType={}))[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",v[v.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",e.SystemMessageType=void 0,(p=e.SystemMessageType||(e.SystemMessageType={}))[p.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",p[p.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)},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(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.getMessageApi=function(t,n){return n===e.ConversationType.PrivateChat?e.RequestApi.PushPrivateMessage:null!=t&&t.receiverName?e.RequestApi.PushMessageToMember:e.RequestApi.CreateTextMessage},n.createMessage=function(t,n,r,s,i){void 0===s&&(s={});var a={groupType:r};r===e.ConversationType.PublicGroup?a.groupId=n:a.receiverName=n;var c=o({},a,s,{msgType:t},i);return this.sendMessage(c,this.getMessageApi(a,r))},n.createTextMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.TEXT,n,r,o,{text:t}))}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,r,o,s,{link:t,snapshot:n}))}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,n,r,o,{link:t}))}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,n,r,o,{link:t}))}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,n,r,o,{link:t}))}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,n,r,o,{text:t}))}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,n,r,o,{link:t}))}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,n,r,o,{text:t}))}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,n,r,o,{text:t}))}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,n,r,o,{text:t}))}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}(),P=/*#__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||"",conversationType:e.conversationType||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:"GET",data:{groupId:t,memberId:n,type:r}}))}catch(e){return Promise.reject(e)}},t}(),T=/*#__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 P(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 T(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)});
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="/chat/group/operation/addAdmin",u.deleteAdmin="/chat/group/operation/deleteAdmin",u.pin="/chat/group/operation/pin",u.muteGroup="/chat/group/operation/muteGroup",u.muteMember="/chat/group/operation/muteMember",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.PushMessageToMember="/chat/message/push2Member",u.PushPrivateMessage="/chat/message/pushPrivateMessage",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,v,p,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,(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",v[v.EVENT_SYSTEM_MESSAGE_PUSH=4]="EVENT_SYSTEM_MESSAGE_PUSH",e.SystemMessageType=void 0,(p=e.SystemMessageType||(e.SystemMessageType={}))[p.GroupMemberPermissionChange=3]="GroupMemberPermissionChange",p[p.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)},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(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.getMessageApi=function(t,n){return n===e.GroupType.PrivateChat?e.RequestApi.PushPrivateMessage:null!=t&&t.receiverName?e.RequestApi.PushMessageToMember:e.RequestApi.CreateTextMessage},n.createMessage=function(t,n,r,s,i){void 0===s&&(s={});var a={groupType:r};r===e.GroupType.PublicGroup?a.groupId=n:a.receiverName=n;var c=o({},a,s,{msgType:t},i);return this.sendMessage(c,this.getMessageApi(a,r))},n.createTextMessage=function(t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MessageType.TEXT,n,r,o,{text:t}))}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,r,o,s,{link:t,snapshot:n}))}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,n,r,o,{link:t}))}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,n,r,o,{link:t}))}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,n,r,o,{link:t}))}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,n,r,o,{text:t}))}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,n,r,o,{link:t}))}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,n,r,o,{text:t}))}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,n,r,o,{text:t}))}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,n,r,o,{text:t}))}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}(),G=/*#__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}(),P=/*#__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:"GET",data:{groupId:t,memberId:n,type:r}}))}catch(e){return Promise.reject(e)}},t}(),T=/*#__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 G(this.sdk);case e.ServiceName.GROUP:return new P(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 T(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)});
@@ -1,5 +1,5 @@
1
1
  import { RequestApi } from '../constant/api';
2
- import { ConversationType, MessageType } from './enum';
2
+ import { GroupType, MessageType } from './enum';
3
3
  import { HttpMethod } from '../utils/request';
4
4
  import { MessageService } from '../api/message';
5
5
  import { ConversationService } from '../api/conversation';
@@ -41,7 +41,7 @@ export type Pagination = {
41
41
  export type ConversationItem = {
42
42
  id: number;
43
43
  name: string;
44
- conversationType: ConversationType;
44
+ groupType: GroupType;
45
45
  avatar: string;
46
46
  status: number;
47
47
  latest: MessageItem;
@@ -74,7 +74,7 @@ interface AvatarMap {
74
74
  export type MessageItem = {
75
75
  msgId: number;
76
76
  username: string;
77
- conversationType: ConversationType;
77
+ groupType: GroupType;
78
78
  groupId: number;
79
79
  replyMsgId: number;
80
80
  clientMsgId: string;
@@ -100,7 +100,7 @@ export interface GroupInfoVO {
100
100
  /**
101
101
  * 聊天群类型: 0:一对一私聊 ,1:群聊,2:客服聊天
102
102
  */
103
- conversationType: ConversationType;
103
+ groupType: GroupType;
104
104
  createTime: number;
105
105
  updateTime: number;
106
106
  /**
@@ -1,4 +1,4 @@
1
- export declare enum ConversationType {
1
+ export declare enum GroupType {
2
2
  PrivateChat = 0,// 一对一私聊
3
3
  PrivateGroup = 1,// 群聊 - 私群
4
4
  PublicGroup = 2,// 群聊 - 公群
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "v1.0.43",
3
+ "version": "v1.0.45",
4
4
  "description": "Sim SDK for Web",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",