sim-sdk-web 1.0.35 → 1.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/group.d.ts +7 -7
- package/lib/api/index.d.ts +50 -25
- package/lib/api/message.d.ts +42 -12
- package/lib/constant/api.d.ts +1 -0
- package/lib/index.es.js +1 -1
- package/lib/index.js +1 -1
- package/lib/index.umd.js +1 -1
- package/lib/types/entity.d.ts +9 -149
- package/lib/types/enum.d.ts +1 -139
- package/lib/types/params.d.ts +8 -200
- package/package.json +1 -1
package/lib/api/group.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import SIMSDK from './index';
|
|
2
|
-
import { GroupInfoVO,
|
|
2
|
+
import { GroupInfoVO, LatestMessagesUpdateResponse, MessageItem, ReqPageParam, ServerResponse } from '../types/entity';
|
|
3
3
|
/**
|
|
4
4
|
* 群组服务 - 负责群组创建、管理和成员操作
|
|
5
5
|
*/
|
|
@@ -10,12 +10,6 @@ export declare class GroupService {
|
|
|
10
10
|
* @param sdk SIMSDK实例
|
|
11
11
|
*/
|
|
12
12
|
constructor(sdk: SIMSDK);
|
|
13
|
-
/**
|
|
14
|
-
* 创建新群组
|
|
15
|
-
* @param group 群组信息
|
|
16
|
-
* @returns 创建结果Promise
|
|
17
|
-
*/
|
|
18
|
-
createGroup(group: GroupItem): Promise<ServerResponse<GroupInfoVO>>;
|
|
19
13
|
/**
|
|
20
14
|
* 获取群组详细信息
|
|
21
15
|
* @param groupId 群组ID
|
|
@@ -48,4 +42,10 @@ export declare class GroupService {
|
|
|
48
42
|
* @returns Promise
|
|
49
43
|
*/
|
|
50
44
|
getGroupLatestMessage(groups: Array<number>): Promise<ServerResponse<Map<number, MessageItem>>>;
|
|
45
|
+
/**
|
|
46
|
+
* 检测最新的群消息
|
|
47
|
+
* @param ttl
|
|
48
|
+
* @returns Promise
|
|
49
|
+
*/
|
|
50
|
+
checkGroupLatestMessage(ttl: number): Promise<ServerResponse<LatestMessagesUpdateResponse>>;
|
|
51
51
|
}
|
package/lib/api/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HistoryMessageParam, ServerResponse, Request, MessageItem, ReqPageParam, MarkConversationReadParam, HistoryMessageResponse } from '../types/entity';
|
|
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 { GroupType } from '../types/enum';
|
|
5
6
|
import { HttpMethod } from '../utils/request';
|
|
6
7
|
import { UserService } from './user';
|
|
7
8
|
import { GroupService } from './group';
|
|
@@ -10,6 +11,7 @@ import { ConversationService } from './conversation';
|
|
|
10
11
|
interface SDKOptions {
|
|
11
12
|
debug?: boolean;
|
|
12
13
|
apiAddr?: string;
|
|
14
|
+
ossApiAddr?: string;
|
|
13
15
|
appKey?: string;
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
@@ -21,10 +23,10 @@ declare class SIMSDK extends Emitter {
|
|
|
21
23
|
private cacheManager;
|
|
22
24
|
private sseClient?;
|
|
23
25
|
private readonly serviceManager;
|
|
24
|
-
private needCheckGroupMap;
|
|
25
26
|
private conversationSyncTimer?;
|
|
26
27
|
private syncInterval;
|
|
27
28
|
private isSyncing;
|
|
29
|
+
private lastFetchTtl;
|
|
28
30
|
/**
|
|
29
31
|
* 创建SIMSDK实例
|
|
30
32
|
* @param debug 是否启用调试模式
|
|
@@ -167,7 +169,8 @@ declare class SIMSDK extends Emitter {
|
|
|
167
169
|
* @returns 上传结果Promise
|
|
168
170
|
*/
|
|
169
171
|
uploadFile: ({ file }: UploadFileParams) => Promise<ServerResponse<{
|
|
170
|
-
|
|
172
|
+
originalUrl: string;
|
|
173
|
+
thumbnailUrl?: string;
|
|
171
174
|
}>>;
|
|
172
175
|
/**
|
|
173
176
|
* 监听单条消息
|
|
@@ -196,78 +199,100 @@ declare class SIMSDK extends Emitter {
|
|
|
196
199
|
/**
|
|
197
200
|
* 发送文本消息
|
|
198
201
|
* @param text 文本内容
|
|
202
|
+
* @param groupId 群组ID
|
|
203
|
+
* @param groupType 群组类型
|
|
199
204
|
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'text'字段)
|
|
200
205
|
* @returns 创建结果Promise
|
|
201
206
|
*/
|
|
202
|
-
sendTextMessage: (text: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
207
|
+
sendTextMessage: (text: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
203
208
|
/**
|
|
204
209
|
* 发送图片消息
|
|
205
|
-
* @param
|
|
206
|
-
* @param
|
|
210
|
+
* @param link 图片链接
|
|
211
|
+
* @param snapshot 图片快照(缩略图等)
|
|
212
|
+
* @param groupId 群组ID
|
|
213
|
+
* @param groupType 群组类型
|
|
214
|
+
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'和'snapshot'字段)
|
|
207
215
|
* @returns 创建结果Promise
|
|
208
216
|
*/
|
|
209
|
-
sendImageMessage: (
|
|
217
|
+
sendImageMessage: (link: string, snapshot: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "link" | "snapshot">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
210
218
|
/**
|
|
211
219
|
* 发送文件消息
|
|
212
220
|
* @param fileUrl 文件URL
|
|
221
|
+
* @param groupId 群组ID
|
|
222
|
+
* @param groupType 群组类型
|
|
223
|
+
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
|
|
224
|
+
* @returns 创建结果Promise
|
|
225
|
+
*/
|
|
226
|
+
sendFileMessage: (fileUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
227
|
+
/**
|
|
228
|
+
* 发送音频消息
|
|
229
|
+
* @param audioUrl 音频URL
|
|
230
|
+
* @param groupId 群组ID
|
|
231
|
+
* @param groupType 群组类型
|
|
213
232
|
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
|
|
214
233
|
* @returns 创建结果Promise
|
|
215
234
|
*/
|
|
216
|
-
|
|
235
|
+
sendAudioMessage: (audioUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
217
236
|
/**
|
|
218
237
|
* 发送视频消息
|
|
219
238
|
* @param videoUrl 视频URL
|
|
239
|
+
* @param groupId 群组ID
|
|
240
|
+
* @param groupType 群组类型
|
|
220
241
|
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
|
|
221
242
|
* @returns 创建结果Promise
|
|
222
243
|
*/
|
|
223
|
-
sendVideoMessage: (videoUrl: string, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
244
|
+
sendVideoMessage: (videoUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
224
245
|
/**
|
|
225
246
|
* 发送超链接消息
|
|
226
|
-
* @param linkUrl
|
|
247
|
+
* @param linkUrl 超链接URL
|
|
248
|
+
* @param groupId 群组ID
|
|
249
|
+
* @param groupType 群组类型
|
|
227
250
|
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
|
|
228
251
|
* @returns 创建结果Promise
|
|
229
252
|
*/
|
|
230
|
-
sendLinkMessage: (linkUrl: string, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
253
|
+
sendLinkMessage: (linkUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
231
254
|
/**
|
|
232
255
|
* 发送Gif消息
|
|
233
256
|
* @param gifUrl gifURL
|
|
257
|
+
* @param groupId 群组ID
|
|
258
|
+
* @param groupType 群组类型
|
|
234
259
|
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'link'字段)
|
|
235
260
|
* @returns 创建结果Promise
|
|
236
261
|
*/
|
|
237
|
-
sendGifMessage: (gifUrl: string, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
262
|
+
sendGifMessage: (gifUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "link">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
238
263
|
/**
|
|
239
264
|
* 发送操作消息
|
|
240
265
|
* @param optionText 操作消息内容
|
|
241
|
-
* @param
|
|
266
|
+
* @param groupId 群组ID
|
|
267
|
+
* @param groupType 群组类型
|
|
268
|
+
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'text'字段)
|
|
242
269
|
* @returns 创建结果Promise
|
|
243
270
|
*/
|
|
244
|
-
sendOptionMessage: (optionText: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
271
|
+
sendOptionMessage: (optionText: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
245
272
|
/**
|
|
246
273
|
* 发送emoji消息
|
|
247
274
|
* @param emoji emoji消息内容
|
|
248
|
-
* @param
|
|
275
|
+
* @param groupId 群组ID
|
|
276
|
+
* @param groupType 群组类型
|
|
277
|
+
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'text'字段)
|
|
249
278
|
* @returns 创建结果Promise
|
|
250
279
|
*/
|
|
251
|
-
sendEmojiMessage: (emoji: string, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
280
|
+
sendEmojiMessage: (emoji: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
252
281
|
/**
|
|
253
282
|
* 发送自定义消息
|
|
254
|
-
* @param
|
|
255
|
-
* @param
|
|
283
|
+
* @param customText 自定义消息内容
|
|
284
|
+
* @param groupId 群组ID
|
|
285
|
+
* @param groupType 群组类型
|
|
286
|
+
* @param params 附加消息参数,MessageItem类型的部分属性(不包含'text'字段)
|
|
256
287
|
* @returns 创建结果Promise
|
|
257
288
|
*/
|
|
258
|
-
sendCustomMessage: (
|
|
289
|
+
sendCustomMessage: (customText: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, "text">>) => Promise<ServerResponse<MessageItem[]>>;
|
|
259
290
|
/**
|
|
260
291
|
* 获取历史消息列表
|
|
261
292
|
* @param params
|
|
262
293
|
* @returns 历史消息
|
|
263
294
|
*/
|
|
264
295
|
getHistoryMessageList: (params: HistoryMessageParam) => Promise<ServerResponse<HistoryMessageResponse>>;
|
|
265
|
-
/**
|
|
266
|
-
* 创建群组
|
|
267
|
-
* @param group 群组信息
|
|
268
|
-
* @returns 创建结果
|
|
269
|
-
*/
|
|
270
|
-
createGroup: (group: GroupItem) => Promise<ServerResponse<import("../types/entity").GroupInfoVO>>;
|
|
271
296
|
/**
|
|
272
297
|
* 获取群组信息
|
|
273
298
|
* @param groupId 群组ID
|
package/lib/api/message.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { HistoryMessageParam, HistoryMessageResponse, MessageItem, ServerResponse } from '../types/entity';
|
|
2
2
|
import SIMSDK from './index';
|
|
3
|
+
import { GroupType } from '../types/enum';
|
|
3
4
|
/**
|
|
4
5
|
* 消息服务 - 负责消息创建、发送和历史记录
|
|
5
6
|
*/
|
|
@@ -22,74 +23,103 @@ export declare class MessageService {
|
|
|
22
23
|
* @param type 消息类型
|
|
23
24
|
* @param url API端点
|
|
24
25
|
* @param additionalParams 附加参数
|
|
25
|
-
* @param
|
|
26
|
-
* @param content 消息内容
|
|
26
|
+
* @param content 内容对象,包含多个字段
|
|
27
27
|
* @returns 创建结果Promise
|
|
28
28
|
*/
|
|
29
29
|
private createMessage;
|
|
30
30
|
/**
|
|
31
31
|
* 创建文本消息
|
|
32
32
|
* @param text 文本内容
|
|
33
|
+
* @param groupId 群组ID
|
|
34
|
+
* @param groupType 群组类型
|
|
33
35
|
* @param params 附加参数
|
|
34
36
|
* @returns 创建结果Promise
|
|
35
37
|
*/
|
|
36
|
-
createTextMessage(text: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
38
|
+
createTextMessage(text: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
37
39
|
/**
|
|
38
40
|
* 创建图片消息
|
|
39
|
-
* @param
|
|
41
|
+
* @param link 图片链接
|
|
42
|
+
* @param snapshot 图片快照URL
|
|
43
|
+
* @param groupId 群组ID
|
|
44
|
+
* @param groupType 群组类型
|
|
40
45
|
* @param params 附加参数
|
|
41
46
|
* @returns 创建结果Promise
|
|
42
47
|
*/
|
|
43
|
-
createImageMessage(
|
|
48
|
+
createImageMessage(link: string, // 图片链接
|
|
49
|
+
snapshot: string, // 图片快照
|
|
50
|
+
groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link' | 'snapshot'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
44
51
|
/**
|
|
45
52
|
* 创建文件消息
|
|
46
53
|
* @param fileUrl 文件URL
|
|
54
|
+
* @param groupId 群组ID
|
|
55
|
+
* @param groupType 群组类型
|
|
47
56
|
* @param params 附加参数
|
|
48
57
|
* @returns 创建结果Promise
|
|
49
58
|
*/
|
|
50
|
-
createFileMessage(fileUrl: string, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
59
|
+
createFileMessage(fileUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
60
|
+
/**
|
|
61
|
+
* 创建音频消息
|
|
62
|
+
* @param audioUrl 音频URL
|
|
63
|
+
* @param groupId 群组ID
|
|
64
|
+
* @param groupType 群组类型
|
|
65
|
+
* @param params 附加参数
|
|
66
|
+
* @returns 创建结果Promise
|
|
67
|
+
*/
|
|
68
|
+
createAudioMessage(audioUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
51
69
|
/**
|
|
52
70
|
* 创建视频消息
|
|
53
71
|
* @param videoUrl 视频URL
|
|
72
|
+
* @param groupId 群组ID
|
|
73
|
+
* @param groupType 群组类型
|
|
54
74
|
* @param params 附加参数
|
|
55
75
|
* @returns 创建结果Promise
|
|
56
76
|
*/
|
|
57
|
-
createVideoMessage(videoUrl: string, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
77
|
+
createVideoMessage(videoUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
58
78
|
/**
|
|
59
79
|
* 创建超链接消息
|
|
60
80
|
* @param linkUrl 超链接
|
|
81
|
+
* @param groupId 群组ID
|
|
82
|
+
* @param groupType 群组类型
|
|
61
83
|
* @param params 附加参数
|
|
62
84
|
* @returns 创建结果Promise
|
|
63
85
|
*/
|
|
64
|
-
createLinkMessage(linkUrl: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
86
|
+
createLinkMessage(linkUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
65
87
|
/**
|
|
66
88
|
* 创建Gif消息
|
|
67
89
|
* @param gifUrl gifURL
|
|
90
|
+
* @param groupId 群组ID
|
|
91
|
+
* @param groupType 群组类型
|
|
68
92
|
* @param params 附加参数
|
|
69
93
|
* @returns 创建结果Promise
|
|
70
94
|
*/
|
|
71
|
-
createGifMessage(gifUrl: string, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
95
|
+
createGifMessage(gifUrl: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'link'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
72
96
|
/**
|
|
73
97
|
* 创建操作消息
|
|
74
98
|
* @param optionText 操作消息内容
|
|
99
|
+
* @param groupId 群组ID
|
|
100
|
+
* @param groupType 群组类型
|
|
75
101
|
* @param params 附加参数
|
|
76
102
|
* @returns 创建结果Promise
|
|
77
103
|
*/
|
|
78
|
-
createOptionMessage(optionText: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
104
|
+
createOptionMessage(optionText: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
79
105
|
/**
|
|
80
106
|
* 创建emoji消息
|
|
81
107
|
* @param emoji emoji消息内容
|
|
108
|
+
* @param groupId 群组ID
|
|
109
|
+
* @param groupType 群组类型
|
|
82
110
|
* @param params 附加参数
|
|
83
111
|
* @returns 创建结果Promise
|
|
84
112
|
*/
|
|
85
|
-
createEmojiMessage(emoji: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
113
|
+
createEmojiMessage(emoji: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
86
114
|
/**
|
|
87
115
|
* 创建自定义消息
|
|
88
116
|
* @param customText 自定义消息内容
|
|
117
|
+
* @param groupId 群组ID
|
|
118
|
+
* @param groupType 群组类型
|
|
89
119
|
* @param params 附加参数
|
|
90
120
|
* @returns 创建结果Promise
|
|
91
121
|
*/
|
|
92
|
-
createCustomMessage(customText: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
122
|
+
createCustomMessage(customText: string, groupId: number, groupType: GroupType, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem[]>>;
|
|
93
123
|
/**
|
|
94
124
|
* 获取历史消息列表
|
|
95
125
|
* @param params 查询参数
|
package/lib/constant/api.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare enum RequestApi {
|
|
|
15
15
|
MarkConversationMessageAsRead = "/chat/group/lastRead",
|
|
16
16
|
UpdateLatestMessage = "/chat/group/updateLatestMessage",
|
|
17
17
|
GetLatestGroupChats = "/chat/group/latestGroupChats",
|
|
18
|
+
CheckLatestMessages = "/chat/group/checkLatestMessages",
|
|
18
19
|
CreateTextMessage = "/chat/message/push",
|
|
19
20
|
GetHistoryMessageList = "/chat/message/pull",
|
|
20
21
|
UploadFile = "/chat/img/upload"
|
package/lib/index.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventSourcePolyfill as e}from"event-source-polyfill";function n(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,o=Array(n);t<n;t++)o[t]=e[t];return o}function t(e,t){var o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return(o=o.call(e)).next.bind(o);if(Array.isArray(e)||(o=function(e,t){if(e){if("string"==typeof e)return n(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){o&&(e=o);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)({}).hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},o.apply(null,arguments)}function r(e,n){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},r(e,n)}function s(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}var i;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(i||(i={}));var a,c,u,d=/*#__PURE__*/function(){function n(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=2e3*Math.random()+3e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.onConnectionClosedCallback=void 0,this._openHandler=null,this._errorHandler=null,this._messageHandler=null,this._customHandlers=new Map,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||2e3*Math.random()+3e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=n.prototype;return t.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.removeEventListener(t,o)}))},t.subscribe=function(e,n){this.handlers.set(e,n);var t=function(e){try{var t=JSON.parse(e.data);n(t)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,t),this.eventSource?this.eventSource.addEventListener(e,t):this.connect()},t.connect=function(){var n=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{n.eventSource=new e(n.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+n.token}}),n._openHandler=function(e){console.log("SSE connection established"),n.connected=!0,n.reconnectAttempts>0&&n.onReconnectSuccessCallback&&n.onReconnectSuccessCallback(),n.reconnectAttempts=0,n.reconnectTimeout=5e3,t("SSE connect successful!")},n._errorHandler=function(e){console.error("SSE connection error:",e),n.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?(n.cleanup(),n.notifyConnectionClosed(!0)):n.handleReconnect(),n.connected||o(new Error("SSE connect error"))},n._messageHandler=function(e){try{console.log("SSE received message:",e.data);var t=JSON.parse(e.data);n.onMessageCallback&&n.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},n.eventSource.addEventListener("open",n._openHandler),n.eventSource.addEventListener("error",n._errorHandler),n.eventSource.addEventListener("message",n._messageHandler),n.handlers.forEach(function(e,t){var o=n._customHandlers.get(t);o&&n.eventSource&&n.eventSource.addEventListener(t,o)});var r=setTimeout(function(){n.connected||(o(new Error("Connection timeout")),n.handleReconnect())},1e4),s=n._openHandler;n._openHandler=function(e){clearTimeout(r),s(e)}}catch(e){console.error("Failed to create EventSource:",e),n.handleReconnect(),o(e)}})},t.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},t.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},t.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},t.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},t.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},t.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},t.isConnected=function(){return this.connected},n}();!function(e){e[e.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(a||(a={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.GetAllConversationList="/chat/group/list",e.MarkConversationMessageAsRead="/chat/group/lastRead",e.UpdateLatestMessage="/chat/group/updateLatestMessage",e.GetLatestGroupChats="/chat/group/latestGroupChats",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/img/upload"}(c||(c={})),function(e){e.OnConnected="OnConnected",e.OnDisconnected="OnDisconnected",e.OnReconnecting="OnReconnecting",e.OnReconnected="OnReconnected",e.OnReconnectFailed="OnReconnectFailed",e.OnNetworkChange="OnNetworkChange",e.OnReceiveMessage="OnReceiveMessage",e.OnReceiveMessages="OnReceiveMessages",e.OnMessagesListLoaded="OnMessagesListLoaded",e.OnActiveConversationSync="OnActiveConversationSync",e.OnMessageSent="OnMessageSent",e.OnMessageFailed="OnMessageFailed",e.OnMessageRevoked="OnMessageRevoked",e.OnMessageDeleted="OnMessageDeleted",e.OnMessageRead="OnMessageRead",e.OnTypingStatusUpdate="OnTypingStatusUpdate",e.OnUserStatusChange="OnUserStatusChange",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired",e.OnForceOffline="OnForceOffline",e.OnUserInfoUpdated="OnUserInfoUpdated",e.OnGroupCreated="OnGroupCreated",e.OnGroupInfoUpdated="OnGroupInfoUpdated",e.OnGroupDissolved="OnGroupDissolved",e.OnJoinGroup="OnJoinGroup",e.OnLeaveGroup="OnLeaveGroup",e.OnGroupMemberJoined="OnGroupMemberJoined",e.OnGroupMemberLeft="OnGroupMemberLeft",e.OnGroupMemberKicked="OnGroupMemberKicked",e.OnGroupOwnerChanged="OnGroupOwnerChanged",e.OnGroupAdminAdded="OnGroupAdminAdded",e.OnGroupAdminRemoved="OnGroupAdminRemoved",e.OnGroupMemberMuted="OnGroupMemberMuted",e.OnGroupMemberUnmuted="OnGroupMemberUnmuted",e.OnGroupAllMemberMuted="OnGroupAllMemberMuted",e.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",e.OnConversationCreated="OnConversationCreated",e.OnConversationDeleted="OnConversationDeleted",e.OnConversationListUpdated="OnConversationListUpdated",e.OnConversationUpdated="OnConversationUpdated",e.OnUnreadCountChanged="OnUnreadCountChanged",e.OnConversationPinned="OnConversationPinned",e.OnConversationUnpinned="OnConversationUnpinned",e.OnConversationMuted="OnConversationMuted",e.OnConversationUnmuted="OnConversationUnmuted",e.OnPongConn="OnPongConn",e.OnPongReConn="OnPongReConn",e.OnPongIdle="OnPongIdle",e.OnError="OnError",e.OnWarning="OnWarning",e.OnLog="OnLog"}(u||(u={}));var l,g,h,v,f,p,m,C,M,S,O,E,y,A,G,I,b,T,P,R,N,k,L=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveMessages]=[],e[u.OnConversationListUpdated]=[],e[u.OnMessagesListLoaded]=[],e[u.OnActiveConversationSync]=[],e[u.OnConnected]=[],e[u.OnDisconnected]=[],e[u.OnReconnected]=[],e)}var n=e.prototype;return n.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},n.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},n.off=function(e,n){var t=this.events[e];if(t){var o=t.indexOf(n);o>-1&&(t.splice(o,1),0===t.length&&delete this.events[e])}return this},e}();!function(e){e[e.Nomal=0]="Nomal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(l||(l={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(g||(g={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(h||(h={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(v||(v={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(f||(f={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(p||(p={})),function(e){e[e.iOS=1]="iOS",e[e.Android=2]="Android",e[e.Windows=3]="Windows",e[e.MacOSX=4]="MacOSX",e[e.Web=5]="Web",e[e.Linux=7]="Linux",e[e.AndroidPad=8]="AndroidPad",e[e.iPad=9]="iPad"}(m||(m={})),function(e){e[e.Debug=5]="Debug",e[e.Info=4]="Info",e[e.Warn=3]="Warn",e[e.Error=2]="Error",e[e.Fatal=1]="Fatal",e[e.Panic=0]="Panic"}(C||(C={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(M||(M={})),function(e){e[e.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",e[e.TextMessage=101]="TextMessage",e[e.PictureMessage=102]="PictureMessage",e[e.VoiceMessage=103]="VoiceMessage",e[e.VideoMessage=104]="VideoMessage",e[e.FileMessage=105]="FileMessage",e[e.AtTextMessage=106]="AtTextMessage",e[e.MergeMessage=107]="MergeMessage",e[e.CardMessage=108]="CardMessage",e[e.LocationMessage=109]="LocationMessage",e[e.CustomMessage=110]="CustomMessage",e[e.TypingMessage=113]="TypingMessage",e[e.QuoteMessage=114]="QuoteMessage",e[e.FaceMessage=115]="FaceMessage",e[e.FriendAdded=1201]="FriendAdded",e[e.OANotification=1400]="OANotification",e[e.GroupCreated=1501]="GroupCreated",e[e.MemberQuit=1504]="MemberQuit",e[e.GroupOwnerTransferred=1507]="GroupOwnerTransferred",e[e.MemberKicked=1508]="MemberKicked",e[e.MemberInvited=1509]="MemberInvited",e[e.MemberEnter=1510]="MemberEnter",e[e.GroupDismissed=1511]="GroupDismissed",e[e.GroupMemberMuted=1512]="GroupMemberMuted",e[e.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",e[e.GroupMuted=1514]="GroupMuted",e[e.GroupCancelMuted=1515]="GroupCancelMuted",e[e.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",e[e.GroupNameUpdated=1520]="GroupNameUpdated",e[e.BurnMessageChange=1701]="BurnMessageChange",e[e.RevokeMessage=2101]="RevokeMessage"}(S||(S={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(O||(O={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(E||(E={})),function(e){e[e.AtNormal=0]="AtNormal",e[e.AtMe=1]="AtMe",e[e.AtAll=2]="AtAll",e[e.AtAllAtMe=3]="AtAllAtMe",e[e.AtGroupNotice=4]="AtGroupNotice"}(y||(y={})),function(e){e[e.All=0]="All",e[e.Owner=1]="Owner",e[e.Admin=2]="Admin",e[e.Nomal=3]="Nomal",e[e.AdminAndNomal=4]="AdminAndNomal",e[e.AdminAndOwner=5]="AdminAndOwner"}(A||(A={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(G||(G={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(I||(I={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(b||(b={})),function(e){e[e.Readed=0]="Readed",e[e.UnRead=1]="UnRead"}(T||(T={})),function(e){e[e.ONE_ON_ONE=0]="ONE_ON_ONE",e[e.GROUP_CHAT=1]="GROUP_CHAT",e[e.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE"}(P||(P={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.AUDIO=3]="AUDIO",e[e.VIDEO=4]="VIDEO",e[e.LINK=5]="LINK",e[e.GIF=6]="GIF",e[e.OPTION=7]="OPTION",e[e.EMOJI=8]="EMOJI",e[e.CUSTOM=100]="CUSTOM"}(R||(R={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH"}(N||(N={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(k||(k={}));var U={NORMAL:0,EDITED:1,DELETED:2},_="undefined"!=typeof uni,w="undefined"!=typeof window,j="simsdk_",F={CONVERSATIONS:j+"conversations",GROUP_MESSAGES:j+"group_messages",USER_INFO:j+"user_info",META_INFO:j+"meta"},x={MAX_CONVERSATIONS:100,MAX_GROUP_MESSAGES:200,STORAGE_CHUNK_SIZE:512e3,CACHE_TTL:6048e5,EXPIRY_CHECK_INTERVAL:18e5},D=/*#__PURE__*/function(){function e(e){var n=void 0===e?{}:e,t=n.persistEnabled,r=void 0===t||t,s=n.debug,i=void 0!==s&&s,a=n.config,c=void 0===a?{}:a;this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.userInfo={},this.activeConversation=void 0,this.metaInfo={},this.persistEnabled=void 0,this.debug=void 0,this.config=void 0,this.cleanupTimer=void 0,this.persistEnabled=r,this.debug=i,this.config=o({},x,c)}var n=e.prototype;return n.initialize=function(e){this.userInfo.username=e,this.persistEnabled&&this.loadFromStorage(),this.setupCleanupInterval(),this.debug&&(console.log("Cache initialized for user:",e),console.log("Loaded conversations:",this.conversationCache.length),console.log("Loaded group messages for groups:",Object.keys(this.groupMessageCache).length))},n.clear=function(){this.conversationCache=[],this.groupMessageCache={},this.accessTimeRecord={},this.persistEnabled&&this.clearStorage(),this.debug&&console.log("Cache cleared")},n.getConversations=function(){return[].concat(this.conversationCache)},n.clearConversationUnread=function(e){var n=this.conversationCache.find(function(n){return n.id===e});n&&(n.unreadCount=0,this.persistEnabled&&this.saveConversationsToStorage())},n.clearAllConversationUnread=function(){this.conversationCache.forEach(function(e){e.unreadCount>0&&(e.unreadCount=0)}),this.persistEnabled&&this.saveConversationsToStorage()},n.getActiveConversation=function(){return this.activeConversation},n.setConversations=function(e){this.conversationCache=e.length>this.config.MAX_CONVERSATIONS?e.slice(0,this.config.MAX_CONVERSATIONS):[].concat(e),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},n.updateConversation=function(e){var n=this.conversationCache.findIndex(function(n){return n.id===e.id});n>=0?this.conversationCache[n]=o({},e):(this.conversationCache.push(o({},e)),this.conversationCache.length>this.config.MAX_CONVERSATIONS&&this.enforceConversationLimit()),this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage()},n.updateConversationWithMessage=function(e,n){var t,o=e.groupId;if(!o)return!1;var r=this.conversationCache.findIndex(function(e){return e.id===o});if(-1===r)return!1;var s=this.conversationCache[r],i=(null==(t=s.latest)?void 0:t.msgId)||0;return this.activeConversation&&this.activeConversation.id===o?s.unreadCount=0:n!==e.username&&(s.unreadCount+=e.msgId>i?e.msgId-i:1),s.latest=e,this.sortConversations(),this.persistEnabled&&this.saveConversationsToStorage(),!0},n.getGroupMessages=function(e){return this.recordAccess(e),!this.groupMessageCache[e]&&this.persistEnabled&&this.loadGroupMessagesFromStorage(e),this.groupMessageCache[e]||[]},n.addGroupMessage=function(e){if(e.groupId){this.recordAccess(e.groupId),this.groupMessageCache[e.groupId]||(this.groupMessageCache[e.groupId]=[]);var n=this.groupMessageCache[e.groupId].findIndex(function(n){return n.msgId===e.msgId});n>=0?this.groupMessageCache[e.groupId][n]=e:this.groupMessageCache[e.groupId].push(e),this.sortGroupMessages(e.groupId),this.limitGroupMessageCache(e.groupId),this.enforceMemoryLimits(),this.persistEnabled&&this.saveGroupMessagesToStorage(e.groupId)}},n.addGroupMessages=function(e){for(var n,o=this,r={},s=t(e);!(n=s()).done;){var i=n.value;i.groupId&&(r[i.groupId]||(r[i.groupId]=[]),r[i.groupId].push(i))}for(var a=0,c=Object.entries(r);a<c.length;a++){var u=c[a],d=u[0],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,n=o.groupMessageCache[d].findIndex(function(n){return n.msgId===e.msgId});n>=0?o.groupMessageCache[d][n]=e:o.groupMessageCache[d].push(e)},v=t(l);!(g=v()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},n.sortConversations=function(){this.conversationCache.sort(function(e,n){var t,o,r=(null==(t=e.latest)?void 0:t.createTime)||0;return((null==(o=n.latest)?void 0:o.createTime)||0)-r})},n.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,n){return(n.createTime||0)-(e.createTime||0)})},n.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},n.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},n.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},n.enforceMemoryLimits=function(){var e=this,n=Object.keys(this.groupMessageCache).length;if(n>10){var t=Object.keys(this.groupMessageCache).map(function(n){return{groupId:n,lastAccess:e.accessTimeRecord[n]||0}});t.sort(function(e,n){return e.lastAccess-n.lastAccess});for(var o=Math.ceil(.3*n),r=0;r<o&&r<t.length;r++){var s=t[r].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},n.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},n.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var n=0,t=Object.entries(this.accessTimeRecord);n<t.length;n++){var o=t[n],r=o[0];e-o[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[r],this.groupMessageCache[r]&&delete this.groupMessageCache[r])}this.persistEnabled&&this.saveMetaInfoToStorage()},n.loadFromStorage=function(){var e=this;try{var n=localStorage.getItem(F.META_INFO);n&&(this.metaInfo=JSON.parse(n));var t=localStorage.getItem(F.CONVERSATIONS);t&&(this.conversationCache=JSON.parse(t)),Object.keys(localStorage).filter(function(e){return e.startsWith(F.GROUP_MESSAGES+".")}).forEach(function(n){var t=n.split(".")[1];t&&!isNaN(Number(t))&&(e.accessTimeRecord[t]=0)});var o=localStorage.getItem(F.USER_INFO);o&&(this.userInfo=JSON.parse(o))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},n.loadGroupMessagesFromStorage=function(e){try{for(var n=[],t=0,o=!0;o;){var r=localStorage.getItem(F.GROUP_MESSAGES+"."+e+(t>0?"."+t:""));if(r){var s=JSON.parse(r);n=n.concat(s),t++}else o=!1}n.length>0&&(this.groupMessageCache[e]=n,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+n.length+" messages for group "+e+" from storage"))}catch(n){console.error("Failed to load group messages for "+e+" from storage:",n)}},n.saveConversationsToStorage=function(){try{localStorage.setItem(F.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},n.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var n=this.groupMessageCache[e];if(!n||0===n.length)return;var t=JSON.stringify(n);if(t.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var o=n.length,r=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(t.length/o))),s=0;s<o;s+=r){var i=n.slice(s,s+r),a=Math.floor(s/r);localStorage.setItem(F.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(F.GROUP_MESSAGES+"."+e,t)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},n.saveMetaInfoToStorage=function(){try{localStorage.setItem(F.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},n.handleStorageError=function(){for(var e=this,n=Object.keys(this.accessTimeRecord).map(function(n){return{groupId:n,lastAccess:e.accessTimeRecord[n]||0}}).sort(function(e,n){return e.lastAccess-n.lastAccess}),t=Math.max(1,Math.floor(.2*n.length)),o=0;o<t&&o<n.length;o++)this.clearGroupMessageStorage(Number(n[o].groupId)),this.debug&&console.log("Cleared storage for group "+n[o].groupId+" due to quota exceeded")},n.clearGroupMessageStorage=function(e){for(var n=0,t=!0;t;){var o=F.GROUP_MESSAGES+"."+e+(n>0?"."+n:"");null!==localStorage.getItem(o)?(localStorage.removeItem(o),n++):t=!1}},n.saveUserInfoToStorage=function(){try{localStorage.setItem(F.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},n.clearStorage=function(){try{for(var e,n=t(Object.keys(localStorage).filter(function(e){return e.startsWith(j)}));!(e=n()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},n.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},n.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var n=this.conversationCache.find(function(n){return n.id===e});return!!n&&(this.activeConversation=o({},n),!0)},n.resetActiveConversation=function(){var e,n=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&n&&console.log("Active conversation reset"),n},e}(),K=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:c.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),H=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,t,r,s){var i;void 0===t&&(t={});var a=o({},t,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,n)},n.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.TEXT,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.IMAGE,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createFileMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.FILE,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createVideoMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.VIDEO,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createLinkMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.LINK,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createGifMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.GIF,c.CreateTextMessage,n,"link",e))}catch(e){return Promise.reject(e)}},n.createOptionMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.OPTION,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createEmojiMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.EMOJI,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.createCustomMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(R.CUSTOM,c.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?100:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),V=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.getConversations=function(e){try{var n=this;return Promise.resolve(n.sdk.sendRequest({data:e,url:c.GetAllConversationList,method:"GET"})).then(function(e){return e.data.records=e.data.records.map(n.normalizeConversation),e})}catch(e){return Promise.reject(e)}},n.markConversationRead=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.MarkConversationMessageAsRead,method:"GET"}))}catch(e){return Promise.reject(e)}},n.normalizeConversation=function(e){var n,t,o,r;return{id:e.id,name:e.name||"",groupType:e.groupType||0,avatar:e.avatar||"",status:null!=(n=e.status)?n:1,latest:null!=(t=e.latest)?t:{},unreadCount:null!=(o=e.unreadCount)?o:0,draftText:null!=(r=e.draftText)?r:""}},e}(),z=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n.getGroupMembers=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:c.GetGroupMembers,method:"GET"}))}catch(e){return Promise.reject(e)}},n.joinGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:c.JoinGroup,method:"GET"}))}catch(e){return Promise.reject(e)}},n.updateLatestMessage=function(e){try{var n=Object.fromEntries(e.entries());return Promise.resolve(this.sdk.sendRequest({data:{latestMessage:n},url:c.UpdateLatestMessage,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupLatestMessage=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groups:e},url:c.GetLatestGroupChats,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),q=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var n=e.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(e){switch(e){case i.USER:return new K(this.sdk);case i.MESSAGE:return new H(this.sdk);case i.CONVERSATION:return new V(this.sdk);case i.GROUP:return new z(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function J(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var W=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],X=/*#__PURE__*/function(e){function n(n){var t;return void 0===n&&(n=!1),(t=e.call(this)||this).config={debug:!1},t.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},t.cacheManager=void 0,t.sseClient=void 0,t.serviceManager=void 0,t.needCheckGroupMap=new Map,t.conversationSyncTimer=void 0,t.syncInterval=2e4,t.isSyncing=!1,t.syncConversationsWithServer=function(){try{if(t.isSyncing)return t.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=t.isLoggedIn(),n=t.isConnected();return e&&n?Promise.resolve(function(e,n){try{var r=J(function(){if(t.isSyncing=!0,t.needCheckGroupMap.size<=0){var e=t.cacheManager.getConversations();if(t.needCheckGroupMap=new Map(e.filter(function(e){var n,t;return void 0!==(null==(n=e.latest)?void 0:n.msgId)&&null!==(null==(t=e.latest)?void 0:t.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),t.needCheckGroupMap.size<=0)return t.config.debug&&console.log("[SDK] No conversations to check"),void(t.isSyncing=!1)}return t.config.debug&&console.log("[SDK] Checking "+t.needCheckGroupMap.size+" conversations for updates"),Promise.resolve(t.group.updateLatestMessage(t.needCheckGroupMap)).then(function(e){if(0!==e.code)throw new Error("Failed to update latest messages: "+e.msg);var n=new Map(Object.entries(e.data||{}).map(function(e){var n=e[1];return[Number(e[0]),n]}));if(0===n.size)return t.config.debug&&console.log("[SDK] No conversations need updates"),void(t.isSyncing=!1);var r=t.cacheManager.getActiveConversation();if(r&&n.has(r.id)){var s=n.get(r.id),i=r.latest;if((null==i?void 0:i.msgId)!==s){var a=o({conversationId:r.id},null!=(null==i?void 0:i.msgId)&&{lastLocalMessageId:i.msgId},{serverLatestMessageId:s,timestamp:Date.now()});t.emit(u.OnActiveConversationSync,a),t.config.debug&&console.log("[SDK] Active conversation requires sync:",a)}n.delete(r.id)}var c=function(){if(n.size>0)return t.config.debug&&console.log("[SDK] Updating "+n.size+" non-active conversations"),Promise.resolve(t.group.getGroupLatestMessage(Array.from(n.keys()))).then(function(e){if(0===e.code&&e.data){var n=e.data,o=t.cacheManager.getConversations(),r=!1;if(n.forEach(function(e,n){var s=o.find(function(e){return e.id===n});s&&(s.latest&&s.latest.msgId===e.msgId&&s.latest.createTime===e.createTime||(s.latest=e,t.cacheManager.updateConversation(s),r=!0,t.config.debug&&console.log("[SDK] Updated conversation "+n+" with new message")))}),r){var s=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,s)}}else t.config.debug&&console.warn("[SDK] Failed to get latest messages:",e)})}();return c&&c.then?c.then(function(){}):void 0})},function(e){console.error("[SDK] Error during conversation sync:",e)})}catch(e){return n(!0,e)}return r&&r.then?r.then(n.bind(null,!1),n.bind(null,!0)):n(!1,r)}(0,function(e,n){var o=t.cacheManager.getConversations();if(t.needCheckGroupMap=new Map(o.filter(function(e){var n,t;return void 0!==(null==(n=e.latest)?void 0:n.msgId)&&null!==(null==(t=e.latest)?void 0:t.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),t.isSyncing=!1,e)throw n;return n})):(console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+n),Promise.resolve())}catch(e){return Promise.reject(e)}},t.configure=function(e){void 0!==e.debug&&(t.config.debug=e.debug),e.apiAddr&&(t.config.apiAddr=e.apiAddr),e.appKey&&(t.config.appKey=e.appKey)},t.sendRequest=function(e){t.internalState.lastActivity=Date.now(),t.config.debug&&t.logRequest(e);var n=t.config.apiAddr+e.url,o=e.data;if("GET"===e.method&&o){var r=new URLSearchParams;Object.entries(o).forEach(function(e){var n=e[1];null!=n&&r.append(e[0],String(n))});var s=r.toString();s&&(n+=(n.includes("?")?"&":"?")+s),o=void 0}return function(e){try{return Promise.resolve(_?new Promise(function(n,t){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return n(e.data)},fail:function(e){return t(e)}})}):function(){if(w)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:n,method:e.method,headers:{"Content-Type":"application/json",Authorization:t.config.token?"Bearer "+t.config.token:""},data:o})},t.createRequestFunction=function(e,n){return function(o){return t.sendRequest({data:o,url:e,method:n})}},t.createRequestFunctionWithoutParams=function(e,n){return function(){return t.sendRequest({data:void 0,method:n,url:e})}},t.handleMessage=function(e){switch(t.config.debug&&console.log("handleMessage response",e),e.ev){case N.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var n=e.dt[0];t.needCheckGroupMap.has(n.groupId)&&t.needCheckGroupMap.delete(n.groupId),t.updateMessageCache(n),t.emit(u.OnReceiveMessage,n)}else{var o=e.dt;o.forEach(function(e){t.needCheckGroupMap.has(e.groupId)&&t.needCheckGroupMap.delete(e.groupId),t.updateMessageCache(e)}),t.emit(u.OnReceiveMessages,o)}break;case N.EVENT_PONG_IDLE:t.internalState.isConnected=!0;break;default:r=e.ev,Object.values(u).includes(r)?(t.emit(e.ev,e.dt),W.includes(e.ev)&&(t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.sseClient&&(t.sseClient.close(),t.sseClient=void 0))):t.config.debug&&console.warn("Unknown SSE event type:",e.ev)}var r},t.handleReconnectSuccess=function(){t.config.username&&(t.internalState.isConnected=!0,t.internalState.reconnectAttempts=0,t.config.debug&&console.log("SSE reconnection successful"),t.emit(u.OnReconnected))},t.handleConnectionClosed=function(){t.internalState.isConnected=!1,t.config.debug&&console.log("SSE connection closed"),t.emit(u.OnDisconnected)},t.login=function(e){try{if(t.sseClient)return Promise.resolve("login repeat");if(!t.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!t.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");t.config.token=e.token,t.config.username=e.username,t.config.debug&&(console.log("login params",e),console.log("apiAddr",t.config.apiAddr)),t.cacheManager.initialize(e.username),t.cacheManager.resetActiveConversation();var n=t.cacheManager.getConversations();return n.length>0&&t.emit(u.OnConversationListUpdated,n),Promise.resolve(t.user.login(o({},e,{appKey:t.config.appKey}))).then(function(n){var o=n.code,r=n.data;return 0!=o?Promise.resolve("Login failed, Server error, error code is "+o):(t.initializeConversationCache(),console.log("initializeConversationCache "),t.sseClient=new d({url:t.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+t.config.appKey+"&random="+r,onMessage:t.handleMessage,onReconnectSuccess:t.handleReconnectSuccess,onConnectionClosed:t.handleConnectionClosed,token:e.token}),J(function(){return Promise.resolve(t.sseClient.connect()).then(function(e){return t.internalState.isLoggedIn=!0,e})},function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},t.logout=function(){try{return t.sseClient&&(t.sseClient.close(),t.sseClient=void 0),Promise.resolve(t.user.logout()).then(function(e){return t.internalState.isLoggedIn=!1,t.internalState.isConnected=!1,t.config.username=void 0,t.config.token=void 0,t.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},t.getConversations=function(e){try{return Promise.resolve(J(function(){return Promise.resolve(t.conversation.getConversations(e)).then(function(n){var o=n.data;if(0===n.code&&o){var r=t.cacheManager.getConversations();if(1===e.pageNo)t.cacheManager.setConversations([].concat(o.records));else{var s=o.records||[],i=new Set(r.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(r,a);t.cacheManager.setConversations(c)}t.emit(u.OnConversationListUpdated,t.cacheManager.getConversations())}else{var d=t.cacheManager.getConversations();d.length>0&&t.emit(u.OnConversationListUpdated,d)}return!0})},function(e){console.error("Failed to get conversations:",e);var n=t.cacheManager.getConversations();return n.length>0&&t.emit(u.OnConversationListUpdated,n),!1}))}catch(e){return Promise.reject(e)}},t.internalUploadFile=function(e){try{return Promise.resolve(J(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+t.config.apiAddr+c.UploadFile,{method:"POST",headers:{Authorization:t.config.token?"Bearer "+t.config.token:""},body:n})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){return{url:e.data||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},t.uploadFile=function(e){var n=e.file;try{return Promise.resolve(t.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},t.sendTextMessage=function(e,n){return t.message.createTextMessage(e,n)},t.sendImageMessage=function(e,n){return t.message.createImageMessage(e,n)},t.sendFileMessage=function(e,n){return t.message.createFileMessage(e,n)},t.sendVideoMessage=function(e,n){return t.message.createVideoMessage(e,n)},t.sendLinkMessage=function(e,n){return t.message.createLinkMessage(e,n)},t.sendGifMessage=function(e,n){return t.message.createGifMessage(e,n)},t.sendOptionMessage=function(e,n){return t.message.createOptionMessage(e,n)},t.sendEmojiMessage=function(e,n){return t.message.createEmojiMessage(e,n)},t.sendCustomMessage=function(e,n){return t.message.createCustomMessage(e,n)},t.getHistoryMessageList=function(e){return e.groupId&&t.cacheManager.markConversationAsActive(e.groupId),t.message.getHistoryMessageList(e)},t.createGroup=function(e){return t.group.createGroup(e)},t.getGroupInfo=function(e){return t.group.getGroupInfo(e)},t.getGroupMembers=function(e){return t.group.getGroupMembers(e)},t.joinGroup=function(e){return t.group.joinGroup(e)},t.markConversationRead=function(e){return t.conversation.markConversationRead(e)},t.clearConversationUnread=function(e){t.cacheManager.clearConversationUnread(e);var n=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,n)},t.clearAllConversationUnread=function(){t.cacheManager.clearAllConversationUnread();var e=t.cacheManager.getConversations();t.emit(u.OnConversationListUpdated,e)},t.config.debug=n,t.cacheManager=new D({persistEnabled:!0,debug:n}),t.serviceManager=new q(t),t.needCheckGroupMap=new Map,t.startConversationSync(),t}var t,l;l=e,(t=n).prototype=Object.create(l.prototype),t.prototype.constructor=t,r(t,l);var g,h,v=n.prototype;return v.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},v.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},v.syncConversationsNow=function(){return this.syncConversationsWithServer()},v.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},v.getService=function(e){return this.serviceManager.get(e)},v.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},v.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},v.logRequest=function(e){var n=Math.random().toString(36).substring(2,8),t={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",o={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+o+" "+e.method+" %c "+e.url+" %c #"+n,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+t+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},v.initializeConversationCache=function(){try{var e=this,n=J(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(n){var t=n.code,o=n.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",t,o),0===t&&o&&o.records){e.cacheManager.setConversations(o.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var r=e.cacheManager.getConversations();e.emit(u.OnConversationListUpdated,r),e.needCheckGroupMap=new Map(r.filter(function(e){var n,t;return void 0!==(null==(n=e.latest)?void 0:n.msgId)&&null!==(null==(t=e.latest)?void 0:t.msgId)}).map(function(e){return[e.id,e.latest.msgId]})),e.config.debug&&console.log("Conversation cache initialized with",o.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(n&&n.then?n.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},v.onMessage=function(e){var n=this;return this.on(u.OnReceiveMessage,e),function(){return n.off(u.OnReceiveMessage,e)}},v.onMessages=function(e){var n=this;return this.on(u.OnReceiveMessages,e),function(){return n.off(u.OnReceiveMessages,e)}},v.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(u.OnConnected,t),this.on(u.OnDisconnected,o),function(){n.off(u.OnConnected,t),n.off(u.OnDisconnected,o)}},v.onKickedOffline=function(e){var n=this;return this.on(u.OnKickedOffline,e),function(){return n.off(u.OnKickedOffline,e)}},v.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var n=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,n)}},v.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},g=n,(h=[{key:"message",get:function(){return this.getService(i.MESSAGE)}},{key:"conversation",get:function(){return this.getService(i.CONVERSATION)}},{key:"group",get:function(){return this.getService(i.GROUP)}},{key:"user",get:function(){return this.getService(i.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,s(o.key),o)}}(g.prototype,h),Object.defineProperty(g,"prototype",{writable:!1}),g}(L);export{g as AllowType,M as ApplicationHandleResult,u as CbEvents,a as ErrorCode,P as GROUP_TYPE,y as GroupAtType,v as GroupJoinSource,A as GroupMemberFilter,f as GroupMemberRole,T as GroupMessageReaderFilter,E as GroupStatus,h as GroupType,p as GroupVerificationType,C as LogLevel,I as LoginStatus,R as MSG_TYPE,l as MessageReceiveOptType,k as MessageSendStatus,U as MessageStatus,S as MessageType,b as OnlineState,m as Platform,G as Relationship,c as RequestApi,X as SIMSDK,N as SSE_RESPONSE_TYPE,i as ServiceName,O as SessionType};
|
|
1
|
+
import{EventSourcePolyfill as e}from"event-source-polyfill";function 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.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",e[e.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",e[e.UnknownError=10005]="UnknownError",e[e.LoginRepeatError=10102]="LoginRepeatError"}(a||(a={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/groupInfo",e.GetGroupMembers="/chat/group/groupMembers",e.JoinGroup="/chat/group/joinGroup",e.GetAllConversationList="/chat/group/list",e.MarkConversationMessageAsRead="/chat/group/lastRead",e.UpdateLatestMessage="/chat/group/updateLatestMessage",e.GetLatestGroupChats="/chat/group/latestGroupChats",e.CheckLatestMessages="/chat/group/checkLatestMessages",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/img/upload"}(c||(c={})),function(e){e.OnConnected="OnConnected",e.OnDisconnected="OnDisconnected",e.OnReconnecting="OnReconnecting",e.OnReconnected="OnReconnected",e.OnReconnectFailed="OnReconnectFailed",e.OnNetworkChange="OnNetworkChange",e.OnReceiveMessage="OnReceiveMessage",e.OnReceiveMessages="OnReceiveMessages",e.OnMessagesListLoaded="OnMessagesListLoaded",e.OnActiveConversationSync="OnActiveConversationSync",e.OnMessageSent="OnMessageSent",e.OnMessageFailed="OnMessageFailed",e.OnMessageRevoked="OnMessageRevoked",e.OnMessageDeleted="OnMessageDeleted",e.OnMessageRead="OnMessageRead",e.OnTypingStatusUpdate="OnTypingStatusUpdate",e.OnUserStatusChange="OnUserStatusChange",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired",e.OnForceOffline="OnForceOffline",e.OnUserInfoUpdated="OnUserInfoUpdated",e.OnGroupCreated="OnGroupCreated",e.OnGroupInfoUpdated="OnGroupInfoUpdated",e.OnGroupDissolved="OnGroupDissolved",e.OnJoinGroup="OnJoinGroup",e.OnLeaveGroup="OnLeaveGroup",e.OnGroupMemberJoined="OnGroupMemberJoined",e.OnGroupMemberLeft="OnGroupMemberLeft",e.OnGroupMemberKicked="OnGroupMemberKicked",e.OnGroupOwnerChanged="OnGroupOwnerChanged",e.OnGroupAdminAdded="OnGroupAdminAdded",e.OnGroupAdminRemoved="OnGroupAdminRemoved",e.OnGroupMemberMuted="OnGroupMemberMuted",e.OnGroupMemberUnmuted="OnGroupMemberUnmuted",e.OnGroupAllMemberMuted="OnGroupAllMemberMuted",e.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",e.OnConversationCreated="OnConversationCreated",e.OnConversationDeleted="OnConversationDeleted",e.OnConversationListUpdated="OnConversationListUpdated",e.OnConversationUpdated="OnConversationUpdated",e.OnUnreadCountChanged="OnUnreadCountChanged",e.OnConversationPinned="OnConversationPinned",e.OnConversationUnpinned="OnConversationUnpinned",e.OnConversationMuted="OnConversationMuted",e.OnConversationUnmuted="OnConversationUnmuted",e.OnPongConn="OnPongConn",e.OnPongReConn="OnPongReConn",e.OnPongIdle="OnPongIdle",e.OnError="OnError",e.OnWarning="OnWarning",e.OnLog="OnLog"}(u||(u={}));var l,g,h,v=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[u.OnReceiveMessage]=[],e[u.OnReceiveMessages]=[],e[u.OnConversationListUpdated]=[],e[u.OnMessagesListLoaded]=[],e[u.OnActiveConversationSync]=[],e[u.OnConnected]=[],e[u.OnDisconnected]=[],e[u.OnReconnected]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.length&&delete this.events[e])}return this},e}();!function(e){e[e.ONE_ON_ONE=0]="ONE_ON_ONE",e[e.GROUP_CHAT=1]="GROUP_CHAT",e[e.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE"}(l||(l={})),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"}(g||(g={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH"}(h||(h={}));var f="undefined"!=typeof uni,p="undefined"!=typeof window,m="simsdk_",C={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},M=/*#__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({},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]=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],l=u[1];this.recordAccess(Number(d)),this.groupMessageCache[d]||(this.groupMessageCache[d]=[]);for(var g,h=function(){var e=g.value,t=r.groupMessageCache[d].findIndex(function(t){return t.msgId===e.msgId});t>=0?r.groupMessageCache[d][t]=e:r.groupMessageCache[d].push(e)},v=n(l);!(g=v()).done;)h();this.sortGroupMessages(Number(d)),this.limitGroupMessageCache(Number(d)),this.persistEnabled&&this.saveGroupMessagesToStorage(Number(d))}this.enforceMemoryLimits()},t.sortConversations=function(){this.conversationCache.sort(function(e,t){var n,r,o=(null==(n=e.latest)?void 0:n.createTime)||0;return((null==(r=t.latest)?void 0:r.createTime)||0)-o})},t.sortGroupMessages=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].sort(function(e,t){return(t.createTime||0)-(e.createTime||0)})},t.limitGroupMessageCache=function(e){this.groupMessageCache[e]&&this.groupMessageCache[e].length>this.config.MAX_GROUP_MESSAGES&&(this.groupMessageCache[e]=this.groupMessageCache[e].slice(0,this.config.MAX_GROUP_MESSAGES))},t.recordAccess=function(e){this.accessTimeRecord[e]=Date.now()},t.enforceConversationLimit=function(){this.conversationCache.length<=this.config.MAX_CONVERSATIONS||(this.sortConversations(),this.conversationCache=this.conversationCache.slice(0,this.config.MAX_CONVERSATIONS))},t.enforceMemoryLimits=function(){var e=this,t=Object.keys(this.groupMessageCache).length;if(t>10){var n=Object.keys(this.groupMessageCache).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}});n.sort(function(e,t){return e.lastAccess-t.lastAccess});for(var r=Math.ceil(.3*t),o=0;o<r&&o<n.length;o++){var s=n[o].groupId;this.persistEnabled&&(delete this.groupMessageCache[s],this.debug&&console.log("Released memory for inactive group: "+s))}}},t.setupCleanupInterval=function(){var e=this;this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=window.setInterval(function(){e.cleanupExpiredData()},this.config.EXPIRY_CHECK_INTERVAL)},t.cleanupExpiredData=function(){var e=Date.now();this.metaInfo.lastCleanup=e,this.debug&&console.log("Running cache cleanup");for(var t=0,n=Object.entries(this.accessTimeRecord);t<n.length;t++){var r=n[t],o=r[0];e-r[1]>this.config.CACHE_TTL&&(delete this.accessTimeRecord[o],this.groupMessageCache[o]&&delete this.groupMessageCache[o])}this.persistEnabled&&this.saveMetaInfoToStorage()},t.loadFromStorage=function(){var e=this;try{var t=localStorage.getItem(C.META_INFO);t&&(this.metaInfo=JSON.parse(t));var n=localStorage.getItem(C.CONVERSATIONS);n&&(this.conversationCache=JSON.parse(n)),Object.keys(localStorage).filter(function(e){return e.startsWith(C.GROUP_MESSAGES+".")}).forEach(function(t){var n=t.split(".")[1];n&&!isNaN(Number(n))&&(e.accessTimeRecord[n]=0)});var r=localStorage.getItem(C.USER_INFO);r&&(this.userInfo=JSON.parse(r))}catch(e){console.error("Failed to load cache from storage:",e),this.clearStorage()}},t.loadGroupMessagesFromStorage=function(e){try{for(var t=[],n=0,r=!0;r;){var o=localStorage.getItem(C.GROUP_MESSAGES+"."+e+(n>0?"."+n:""));if(o){var s=JSON.parse(o);t=t.concat(s),n++}else r=!1}t.length>0&&(this.groupMessageCache[e]=t,this.sortGroupMessages(e),this.limitGroupMessageCache(e),this.debug&&console.log("Loaded "+t.length+" messages for group "+e+" from storage"))}catch(t){console.error("Failed to load group messages for "+e+" from storage:",t)}},t.saveConversationsToStorage=function(){try{localStorage.setItem(C.CONVERSATIONS,JSON.stringify(this.conversationCache))}catch(e){console.error("Failed to save conversations to storage:",e),this.handleStorageError()}},t.saveGroupMessagesToStorage=function(e){try{if(void 0!==e){var t=this.groupMessageCache[e];if(!t||0===t.length)return;var n=JSON.stringify(t);if(n.length>this.config.STORAGE_CHUNK_SIZE){this.clearGroupMessageStorage(e);for(var r=t.length,o=Math.max(1,Math.floor(this.config.STORAGE_CHUNK_SIZE/(n.length/r))),s=0;s<r;s+=o){var i=t.slice(s,s+o),a=Math.floor(s/o);localStorage.setItem(C.GROUP_MESSAGES+"."+e+(a>0?"."+a:""),JSON.stringify(i))}}else localStorage.setItem(C.GROUP_MESSAGES+"."+e,n)}else for(var c=0,u=Object.keys(this.groupMessageCache);c<u.length;c++)this.saveGroupMessagesToStorage(Number(u[c]))}catch(e){console.error("Failed to save group messages to storage:",e),this.handleStorageError()}},t.saveMetaInfoToStorage=function(){try{localStorage.setItem(C.META_INFO,JSON.stringify(this.metaInfo))}catch(e){console.error("Failed to save meta info to storage:",e)}},t.handleStorageError=function(){for(var e=this,t=Object.keys(this.accessTimeRecord).map(function(t){return{groupId:t,lastAccess:e.accessTimeRecord[t]||0}}).sort(function(e,t){return e.lastAccess-t.lastAccess}),n=Math.max(1,Math.floor(.2*t.length)),r=0;r<n&&r<t.length;r++)this.clearGroupMessageStorage(Number(t[r].groupId)),this.debug&&console.log("Cleared storage for group "+t[r].groupId+" due to quota exceeded")},t.clearGroupMessageStorage=function(e){for(var t=0,n=!0;n;){var r=C.GROUP_MESSAGES+"."+e+(t>0?"."+t:"");null!==localStorage.getItem(r)?(localStorage.removeItem(r),t++):n=!1}},t.saveUserInfoToStorage=function(){try{localStorage.setItem(C.USER_INFO,JSON.stringify(this.userInfo))}catch(e){console.error("Failed to save user info to storage:",e)}},t.clearStorage=function(){try{for(var e,t=n(Object.keys(localStorage).filter(function(e){return e.startsWith(m)}));!(e=t()).done;)localStorage.removeItem(e.value)}catch(e){console.error("Failed to clear storage:",e)}},t.destroy=function(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=void 0),this.debug&&console.log("Cache manager destroyed")},t.markConversationAsActive=function(e){this.accessTimeRecord[e]=Date.now();var t=this.conversationCache.find(function(t){return t.id===e});return!!t&&(this.activeConversation=r({},t),!0)},t.resetActiveConversation=function(){var e,t=!(null==(e=this.activeConversation)||!e.id);return this.activeConversation=void 0,this.debug&&t&&console.log("Active conversation reset"),t},e}(),S=/*#__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}(),E=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,n,o){void 0===n&&(n={});var s=r({},n,{msgType:e},o,{status:0});return this.sendMessage(s,t)},t.createTextMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.TEXT,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t,n,r,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(g.IMAGE,c.CreateTextMessage,o,{link:e,snapshot:t,groupId:n,groupType:r}))}catch(e){return Promise.reject(e)}},t.createFileMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.FILE,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createAudioMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.AUDIO,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createVideoMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.VIDEO,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createLinkMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.LINK,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createGifMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.GIF,c.CreateTextMessage,r,{link:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createOptionMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.OPTION,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createEmojiMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.EMOJI,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.createCustomMessage=function(e,t,n,r){void 0===r&&(r={});try{return Promise.resolve(this.createMessage(g.CUSTOM,c.CreateTextMessage,r,{text:e,groupId:t,groupType:n}))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?100:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:c.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),y=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.getConversations=function(e){try{var t=this;return Promise.resolve(t.sdk.sendRequest({data:e,url: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}(),T=/*#__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)}},e}(),I=/*#__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 S(this.sdk);case i.MESSAGE:return new E(this.sdk);case i.CONVERSATION:return new y(this.sdk);case i.GROUP:return new T(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function b(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var A=[c.Logout,u.OnKickedOffline,u.OnUserTokenInvalid,u.OnUserTokenExpired],G=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1},n.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},n.cacheManager=void 0,n.sseClient=void 0,n.serviceManager=void 0,n.conversationSyncTimer=void 0,n.syncInterval=2e4,n.isSyncing=!1,n.lastFetchTtl=0,n.syncConversationsWithServer=function(){try{if(n.isSyncing)return n.config.debug&&console.log("[SDK] Sync already in progress, skipping"),Promise.resolve();var e=n.isLoggedIn(),t=n.isConnected();if(!e||!t)return console.warn("[SDK] Not syncing. Login status: "+e+", Connection status: "+t),Promise.resolve();var r=function(e,t){try{var r=b(function(){return n.isSyncing=!0,Promise.resolve(n.group.checkGroupLatestMessage(n.lastFetchTtl)).then(function(e){console.log("res ",e);var t=function(){if(0==e.code){var t=e.data,r=t.groupChatIds;return n.lastFetchTtl=t.ttl,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(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(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(p)return Promise.resolve(fetch(e.url,{method:e.method||"GET",headers:e.headers,body:e.data?JSON.stringify(e.data):null})).then(function(e){return Promise.resolve(e.json())})}())}catch(e){return Promise.reject(e)}}({url:t,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:r})},n.createRequestFunction=function(e,t){return function(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case h.EVENT_MESSAGE_PUSH:if(1===e.dt.length){var t=e.dt[0];n.updateMessageCache(t),n.emit(u.OnReceiveMessage,t)}else{var r=e.dt;r.forEach(function(e){n.updateMessageCache(e)}),n.emit(u.OnReceiveMessages,r)}break;case h.EVENT_PONG_IDLE:n.internalState.isConnected=!0;break;default:o=e.ev,Object.values(u).includes(o)?(n.emit(e.ev,e.dt),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(u.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(u.OnDisconnected)},n.login=function(e){try{if(n.sseClient)return Promise.resolve("login repeat");if(!n.config.apiAddr)return Promise.reject("No apiAddr configured. Please call configure() before login().");if(!n.config.ossApiAddr)return Promise.reject("No ossApiAddr configured. Please call configure() before login().");if(!n.config.appKey)return Promise.reject("No appKey configured. Please call configure() before login().");n.config.token=e.token,n.config.username=e.username,n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),n.cacheManager.initialize(e.username),n.cacheManager.resetActiveConversation();var t=n.cacheManager.getConversations();return t.length>0&&n.emit(u.OnConversationListUpdated,t),Promise.resolve(n.user.login(r({},e,{appKey:n.config.appKey}))).then(function(t){var r=t.code,o=t.data;return 0!=r?Promise.resolve("Login failed, Server error, error code is "+r):(n.initializeConversationCache(),console.log("initializeConversationCache "),n.sseClient=new d({url:n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+n.config.appKey+"&random="+o,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),b(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,Promise.reject(e.message)}))})}catch(e){return Promise.reject(e)}},n.logout=function(){try{return n.sseClient&&(n.sseClient.close(),n.sseClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.internalState.isLoggedIn=!1,n.internalState.isConnected=!1,n.config.username=void 0,n.config.token=void 0,n.cacheManager.clear(),e})}catch(e){return Promise.reject(e)}},n.getConversations=function(e){try{return Promise.resolve(b(function(){return Promise.resolve(n.conversation.getConversations(e)).then(function(t){var r=t.data;if(0===t.code&&r){var o=n.cacheManager.getConversations();if(1===e.pageNo)n.cacheManager.setConversations([].concat(r.records));else{var s=r.records||[],i=new Set(o.map(function(e){return e.id})),a=s.filter(function(e){return!i.has(e.id)}),c=[].concat(o,a);n.cacheManager.setConversations(c)}n.emit(u.OnConversationListUpdated,n.cacheManager.getConversations())}else{var d=n.cacheManager.getConversations();d.length>0&&n.emit(u.OnConversationListUpdated,d)}return!0})},function(e){console.error("Failed to get conversations:",e);var t=n.cacheManager.getConversations();return t.length>0&&n.emit(u.OnConversationListUpdated,t),!1}))}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(b(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.ossApiAddr+c.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:t})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t=(null==e?void 0:e.data)||{};return{originalUrl:t.originalUrl||"",thumbnailUrl:t.thumbnailUrl||""}})})},function(e){return console.error("[Upload Error]",e),{error:e instanceof Error?e:new Error("Unknown upload error")}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.originalUrl,r=e.thumbnailUrl,o=e.error;return{data:{originalUrl:void 0===n?"":n,thumbnailUrl:void 0===r?"":r},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?a.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.sendTextMessage=function(e,t,r,o){return n.message.createTextMessage(e,t,r,o)},n.sendImageMessage=function(e,t,r,o,s){return n.message.createImageMessage(e,t,r,o,s)},n.sendFileMessage=function(e,t,r,o){return n.message.createFileMessage(e,t,r,o)},n.sendAudioMessage=function(e,t,r,o){return n.message.createAudioMessage(e,t,r,o)},n.sendVideoMessage=function(e,t,r,o){return n.message.createVideoMessage(e,t,r,o)},n.sendLinkMessage=function(e,t,r,o){return n.message.createLinkMessage(e,t,r,o)},n.sendGifMessage=function(e,t,r,o){return n.message.createGifMessage(e,t,r,o)},n.sendOptionMessage=function(e,t,r,o){return n.message.createOptionMessage(e,t,r,o)},n.sendEmojiMessage=function(e,t,r,o){return n.message.createEmojiMessage(e,t,r,o)},n.sendCustomMessage=function(e,t,r,o){return n.message.createCustomMessage(e,t,r,o)},n.getHistoryMessageList=function(e){return e.groupId&&n.cacheManager.markConversationAsActive(e.groupId),n.message.getHistoryMessageList(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.getGroupMembers=function(e){return n.group.getGroupMembers(e)},n.joinGroup=function(e){return n.group.joinGroup(e)},n.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 M({persistEnabled:!0,debug:t}),n.serviceManager=new I(n),n.startConversationSync(),n}var n,l;l=e,(n=t).prototype=Object.create(l.prototype),n.prototype.constructor=n,o(n,l);var g,v,m=t.prototype;return m.startConversationSync=function(e){this.stopConversationSync(),e&&e>0&&(this.syncInterval=e),this.conversationSyncTimer=window.setInterval(this.syncConversationsWithServer,this.syncInterval),this.config.debug&&console.log("[SDK] Started conversation sync timer with interval: "+this.syncInterval+"ms")},m.stopConversationSync=function(){this.conversationSyncTimer&&(clearInterval(this.conversationSyncTimer),this.conversationSyncTimer=void 0,this.config.debug&&console.log("[SDK] Stopped conversation sync timer"))},m.syncConversationsNow=function(){return this.syncConversationsWithServer()},m.destroy=function(){this.stopConversationSync(),this.sseClient&&(this.sseClient.close(),this.sseClient=void 0),this.cacheManager.destroy(),this.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},this.config.debug&&console.log("[SDK] Resources destroyed")},m.getService=function(e){return this.serviceManager.get(e)},m.isConnected=function(){return this.config.debug&&console.log("[SDK] Connection status: "+(this.internalState.isConnected?"connected":"disconnected")),this.internalState.isConnected},m.isLoggedIn=function(){return this.config.debug&&console.log("[SDK] Login status: "+(this.internalState.isLoggedIn?"logged in":"not logged in")),this.internalState.isLoggedIn},m.logRequest=function(e){var t=Math.random().toString(36).substring(2,8),n={GET:"#4CAF50",POST:"#2196F3",PUT:"#FF9800",DELETE:"#F44336"}[e.method]||"#9C27B0",r={GET:"🔍",POST:"📝",PUT:"🔄",DELETE:"🗑️"}[e.method]||"📡";console.log("%c "+(new Date).toISOString().substring(11,19)+" %c SDK %c "+r+" "+e.method+" %c "+e.url+" %c #"+t,"color: #888; font-size: 11px; padding: 2px 0;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","background: "+n+"; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin: 0 4px;","color: #0066cc; font-weight: bold;","color: #888; font-style: italic;"),e.data&&Object.keys(e.data).length>0&&(console.log("%c─── 📦 Request Payload ───────────────────────────────","color: #999; font-style: italic;"),console.log("%c%s","color: #333; background: #f8f8f8; padding: 8px; border-radius: 4px; border-left: 4px solid #7CAEFF; font-family: monospace; line-height: 1.5;",JSON.stringify(e.data,null,2)),console.log("%c─────────────────────────────────────────────────────","color: #999;"))},m.initializeConversationCache=function(){try{var e=this,t=b(function(){return Promise.resolve(e.conversation.getConversations({pageNo:1,pageSize:20})).then(function(t){var n=t.code,r=t.data;if(e.config.debug&&console.log("initializeConversationCache Conversation 获取第一页会话数据",n,r),0===n&&r&&r.records){e.cacheManager.setConversations(r.records),console.log("initializeConversationCache Conversation 获取第一页会话数据 this.cacheManager.getConversations()",e.cacheManager.getConversations());var o=e.cacheManager.getConversations();e.emit(u.OnConversationListUpdated,o),e.config.debug&&console.log("Conversation cache initialized with",r.records.length,"conversations")}})},function(e){console.error("Failed to initialize conversation cache:",e)});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},m.onMessage=function(e){var t=this;return this.on(u.OnReceiveMessage,e),function(){return t.off(u.OnReceiveMessage,e)}},m.onMessages=function(e){var t=this;return this.on(u.OnReceiveMessages,e),function(){return t.off(u.OnReceiveMessages,e)}},m.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},r=function(){return e(!1)};return this.on(u.OnConnected,n),this.on(u.OnDisconnected,r),function(){t.off(u.OnConnected,n),t.off(u.OnDisconnected,r)}},m.onKickedOffline=function(e){var t=this;return this.on(u.OnKickedOffline,e),function(){return t.off(u.OnKickedOffline,e)}},m.updateMessageCache=function(e){if(e.groupId&&this.cacheManager.addGroupMessage(e),this.cacheManager.updateConversationWithMessage(e,this.config.username)){var t=this.cacheManager.getConversations();this.emit(u.OnConversationListUpdated,t)}},m.getCachedGroupMessages=function(e){return this.cacheManager.getGroupMessages(e)},g=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)}}(g.prototype,v),Object.defineProperty(g,"prototype",{writable:!1}),g}(v);export{u as CbEvents,a as ErrorCode,l as GroupType,g as MessageType,c as RequestApi,G as SIMSDK,h as SSE_RESPONSE_TYPE,i as ServiceName};
|