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