sim-sdk-web 1.0.17 → 1.0.19
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/ServiceManager.d.ts +30 -0
- package/lib/api/conversation.d.ts +17 -23
- package/lib/api/group.d.ts +21 -4
- package/lib/api/index.d.ts +169 -65
- package/lib/api/message.d.ts +43 -4
- package/lib/api/user.d.ts +24 -15
- package/lib/constant/api.d.ts +3 -2
- package/lib/constant/callback.d.ts +54 -5
- 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 +19 -217
- package/lib/types/enum.d.ts +5 -5
- package/lib/types/params.d.ts +1 -8
- package/lib/utils/SseClient.d.ts +7 -4
- package/package.json +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import SIMSDK from './index';
|
|
2
|
+
import { ServiceTypes } from '../types/entity';
|
|
3
|
+
/**
|
|
4
|
+
* 服务管理器 - 负责管理SDK的各个服务实例
|
|
5
|
+
*/
|
|
6
|
+
export declare class ServiceManager {
|
|
7
|
+
private sdk;
|
|
8
|
+
private services;
|
|
9
|
+
/**
|
|
10
|
+
* 创建服务管理器
|
|
11
|
+
* @param sdk SIMSDK实例
|
|
12
|
+
*/
|
|
13
|
+
constructor(sdk: SIMSDK);
|
|
14
|
+
/**
|
|
15
|
+
* 获取服务实例,如果不存在则创建
|
|
16
|
+
* @param name 服务名称
|
|
17
|
+
* @returns 服务实例
|
|
18
|
+
*/
|
|
19
|
+
get<K extends keyof ServiceTypes>(name: K): ServiceTypes[K];
|
|
20
|
+
/**
|
|
21
|
+
* 创建服务实例
|
|
22
|
+
* @param name 服务名称
|
|
23
|
+
* @returns 创建的服务实例
|
|
24
|
+
*/
|
|
25
|
+
private createService;
|
|
26
|
+
/**
|
|
27
|
+
* 重置服务管理器,清空所有服务实例
|
|
28
|
+
*/
|
|
29
|
+
reset(): void;
|
|
30
|
+
}
|
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
import SIMSDK from '
|
|
2
|
-
import type { GetOneConversationParams, PinConversationParams, SetBurnDurationParams, SetConversationDraftParams, SetConversationPrivateParams, SetConversationRecvOptParams, SplitConversationParams } from '../types/params';
|
|
1
|
+
import SIMSDK from './index';
|
|
3
2
|
import { ConversationItem, PageParam, ServerResponse } from '../types/entity';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
resetConversationGroupAtType: (params: string, operationID?: string) => Promise<ServerResponse<unknown>>;
|
|
21
|
-
hideConversation: (params: string, operationID?: string) => Promise<ServerResponse<unknown>>;
|
|
22
|
-
hideAllConversation: (operationID?: string) => Promise<ServerResponse<unknown>>;
|
|
23
|
-
clearConversationAndDeleteAllMsg: (params: string, operationID?: string) => Promise<ServerResponse<unknown>>;
|
|
24
|
-
deleteConversationAndDeleteAllMsg: (params: string, operationID?: string) => Promise<ServerResponse<unknown>>;
|
|
3
|
+
/**
|
|
4
|
+
* 会话服务类 - 处理所有会话相关操作
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConversationService {
|
|
7
|
+
private readonly sdk;
|
|
8
|
+
/**
|
|
9
|
+
* 创建会话服务实例
|
|
10
|
+
* @param sdk SIMSDK实例
|
|
11
|
+
*/
|
|
12
|
+
constructor(sdk: SIMSDK);
|
|
13
|
+
/**
|
|
14
|
+
* 获取所有会话列表
|
|
15
|
+
* @param params 分页参数
|
|
16
|
+
* @returns 会话列表Promise
|
|
17
|
+
*/
|
|
18
|
+
getConversations(): Promise<ServerResponse<PageParam<ConversationItem>>>;
|
|
25
19
|
}
|
package/lib/api/group.d.ts
CHANGED
|
@@ -1,8 +1,25 @@
|
|
|
1
|
-
import SIMSDK from '
|
|
1
|
+
import SIMSDK from './index';
|
|
2
2
|
import { GroupInfoVO, GroupItem, ServerResponse } from '../types/entity';
|
|
3
|
+
/**
|
|
4
|
+
* 群组服务 - 负责群组创建、管理和成员操作
|
|
5
|
+
*/
|
|
3
6
|
export declare class GroupService {
|
|
4
|
-
private
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
private readonly sdk;
|
|
8
|
+
/**
|
|
9
|
+
* 创建群组服务实例
|
|
10
|
+
* @param sdk SIMSDK实例
|
|
11
|
+
*/
|
|
12
|
+
constructor(sdk: SIMSDK);
|
|
13
|
+
/**
|
|
14
|
+
* 创建新群组
|
|
15
|
+
* @param group 群组信息
|
|
16
|
+
* @returns 创建结果Promise
|
|
17
|
+
*/
|
|
18
|
+
createGroup(group: GroupItem): Promise<ServerResponse<GroupInfoVO>>;
|
|
19
|
+
/**
|
|
20
|
+
* 获取群组详细信息
|
|
21
|
+
* @param groupId 群组ID
|
|
22
|
+
* @returns 群组信息Promise
|
|
23
|
+
*/
|
|
7
24
|
getGroupInfo(groupId: string): Promise<ServerResponse<GroupInfoVO>>;
|
|
8
25
|
}
|
package/lib/api/index.d.ts
CHANGED
|
@@ -1,85 +1,189 @@
|
|
|
1
|
-
import { GroupItem, HistoryMessageParam, ServerResponse, Request } from '../types/entity';
|
|
1
|
+
import { GroupItem, HistoryMessageParam, ServerResponse, Request, MessageItem } from '../types/entity';
|
|
2
2
|
import type { LoginParams, UploadFileParams } from '../types/params';
|
|
3
3
|
import { RequestApi } from '../constant/api';
|
|
4
|
-
import { UserApi } from './user';
|
|
5
|
-
import { FriendApi } from './friend';
|
|
6
|
-
import { ConversationApi } from './conversation';
|
|
7
4
|
import Emitter from '../utils/emitter';
|
|
8
5
|
import { HttpMethod } from '../utils/request';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
import { UserService } from './user';
|
|
7
|
+
import { GroupService } from './group';
|
|
8
|
+
import { MessageService } from './message';
|
|
9
|
+
import { ConversationService } from './conversation';
|
|
10
|
+
interface SDKOptions {
|
|
11
|
+
debug?: boolean;
|
|
12
|
+
apiAddr?: string;
|
|
13
|
+
appKey?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* SIMSDK主类 - 实时通信SDK的入口点
|
|
17
|
+
*/
|
|
18
|
+
declare class SIMSDK extends Emitter {
|
|
19
|
+
private config;
|
|
20
|
+
private internalState;
|
|
14
21
|
private sseClient?;
|
|
15
|
-
private readonly
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
private readonly serviceManager;
|
|
23
|
+
/**
|
|
24
|
+
* 创建SIMSDK实例
|
|
25
|
+
* @param debug 是否启用调试模式
|
|
26
|
+
*/
|
|
18
27
|
constructor(debug?: boolean);
|
|
28
|
+
/**
|
|
29
|
+
* 配置SDK
|
|
30
|
+
* @param options SDK配置选项
|
|
31
|
+
*/
|
|
32
|
+
configure(options: SDKOptions): void;
|
|
33
|
+
/**
|
|
34
|
+
* 设置API地址
|
|
35
|
+
* @param apiAddr API地址
|
|
36
|
+
*/
|
|
37
|
+
setApiAddr(apiAddr: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* 设置应用密钥
|
|
40
|
+
* @param appKey 应用密钥
|
|
41
|
+
*/
|
|
42
|
+
setAppKey(appKey: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* 获取指定服务实例
|
|
45
|
+
* @param name 服务名称
|
|
46
|
+
* @returns 服务实例
|
|
47
|
+
*/
|
|
48
|
+
private getService;
|
|
49
|
+
/**
|
|
50
|
+
* 消息服务访问器
|
|
51
|
+
*/
|
|
52
|
+
get message(): MessageService;
|
|
53
|
+
/**
|
|
54
|
+
* 会话服务访问器
|
|
55
|
+
*/
|
|
56
|
+
get conversation(): ConversationService;
|
|
57
|
+
/**
|
|
58
|
+
* 群组服务访问器
|
|
59
|
+
*/
|
|
60
|
+
get group(): GroupService;
|
|
61
|
+
/**
|
|
62
|
+
* 用户服务访问器
|
|
63
|
+
*/
|
|
64
|
+
get user(): UserService;
|
|
65
|
+
/**
|
|
66
|
+
* 获取用户名
|
|
67
|
+
*/
|
|
68
|
+
get username(): string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* 检查是否已连接
|
|
71
|
+
* @returns 是否已连接
|
|
72
|
+
*/
|
|
73
|
+
isConnected(): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* 检查是否已登录
|
|
76
|
+
* @returns 是否已登录
|
|
77
|
+
*/
|
|
78
|
+
isLoggedIn(): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* 发送请求到服务器
|
|
81
|
+
* @param requestObj 请求对象
|
|
82
|
+
* @returns 请求响应Promise
|
|
83
|
+
*/
|
|
19
84
|
sendRequest: <T>(requestObj: Request) => Promise<ServerResponse<T>>;
|
|
20
|
-
|
|
21
|
-
|
|
85
|
+
/**
|
|
86
|
+
* 记录请求日志
|
|
87
|
+
* @param requestObj 请求对象
|
|
88
|
+
*/
|
|
89
|
+
private logRequest;
|
|
90
|
+
/**
|
|
91
|
+
* 创建带参数的请求函数
|
|
92
|
+
* @param reqFuncName 请求API名称
|
|
93
|
+
* @param method HTTP方法
|
|
94
|
+
* @returns 请求函数
|
|
95
|
+
*/
|
|
96
|
+
createRequestFunction: <ReqType extends Record<string, any> | undefined, ResType = unknown>(reqFuncName: RequestApi, method: HttpMethod) => (params: ReqType) => Promise<ServerResponse<ResType>>;
|
|
97
|
+
/**
|
|
98
|
+
* 创建无参数的请求函数
|
|
99
|
+
* @param reqFuncName 请求API名称
|
|
100
|
+
* @param method HTTP方法
|
|
101
|
+
* @returns 请求函数
|
|
102
|
+
*/
|
|
103
|
+
createRequestFunctionWithoutParams: <ResType = unknown>(reqFuncName: RequestApi, method: HttpMethod) => () => Promise<ServerResponse<ResType>>;
|
|
104
|
+
/**
|
|
105
|
+
* 处理SSE消息
|
|
106
|
+
* @param response SSE响应数据
|
|
107
|
+
*/
|
|
22
108
|
private handleMessage;
|
|
109
|
+
/**
|
|
110
|
+
* 处理重连成功事件
|
|
111
|
+
*/
|
|
23
112
|
private handleReconnectSuccess;
|
|
24
|
-
log(...args: any[]): void;
|
|
25
113
|
/**
|
|
26
|
-
*
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
114
|
+
* 处理连接关闭事件
|
|
115
|
+
*/
|
|
116
|
+
private handleConnectionClosed;
|
|
117
|
+
/**
|
|
118
|
+
* 登录到服务器
|
|
119
|
+
* @param params 登录参数
|
|
120
|
+
* @returns 登录结果Promise
|
|
30
121
|
*/
|
|
31
122
|
login: (params: LoginParams) => Promise<string>;
|
|
123
|
+
/**
|
|
124
|
+
* 登出
|
|
125
|
+
* @returns 登出结果Promise
|
|
126
|
+
*/
|
|
32
127
|
logout: () => Promise<ServerResponse<unknown>>;
|
|
128
|
+
/**
|
|
129
|
+
* 内部上传文件方法
|
|
130
|
+
* @param file 要上传的文件
|
|
131
|
+
* @returns 上传结果
|
|
132
|
+
*/
|
|
33
133
|
private internalUploadFile;
|
|
134
|
+
/**
|
|
135
|
+
* 上传文件
|
|
136
|
+
* @param params 上传参数
|
|
137
|
+
* @returns 上传结果Promise
|
|
138
|
+
*/
|
|
34
139
|
uploadFile: ({ file }: UploadFileParams) => Promise<ServerResponse<{
|
|
35
140
|
url: string;
|
|
36
141
|
}>>;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
142
|
+
/**
|
|
143
|
+
* 监听单条消息
|
|
144
|
+
* @param callback 消息回调函数
|
|
145
|
+
* @returns 取消订阅函数
|
|
146
|
+
*/
|
|
147
|
+
onMessage(callback: (message: MessageItem) => void): () => void;
|
|
148
|
+
/**
|
|
149
|
+
* 监听多条消息
|
|
150
|
+
* @param callback 消息回调函数
|
|
151
|
+
* @returns 取消订阅函数
|
|
152
|
+
*/
|
|
153
|
+
onMessages(callback: (messages: MessageItem[]) => void): () => void;
|
|
154
|
+
/**
|
|
155
|
+
* 监听连接状态变化
|
|
156
|
+
* @param callback 状态变化回调
|
|
157
|
+
* @returns 取消订阅函数
|
|
158
|
+
*/
|
|
159
|
+
onConnectionChange(callback: (isConnected: boolean) => void): () => void;
|
|
160
|
+
/**
|
|
161
|
+
* 监听被踢下线事件
|
|
162
|
+
* @param callback 回调函数
|
|
163
|
+
* @returns 取消订阅函数
|
|
164
|
+
*/
|
|
165
|
+
onKickedOffline(callback: () => void): () => void;
|
|
166
|
+
createTextMessage: (text: string) => Promise<ServerResponse<MessageItem>>;
|
|
167
|
+
createImageMessage: (imageUrl: string) => Promise<ServerResponse<MessageItem>>;
|
|
168
|
+
getHistoryMessageList: (params: HistoryMessageParam) => Promise<ServerResponse<import("../types/entity").HistoryMessageResponse>>;
|
|
169
|
+
/**
|
|
170
|
+
* 获取会话列表
|
|
171
|
+
* @param params 分页参数
|
|
172
|
+
* @returns 会话列表
|
|
173
|
+
*/
|
|
174
|
+
getConversations: () => Promise<ServerResponse<import("../types/entity").PageParam<import("../types/entity").ConversationItem>>>;
|
|
175
|
+
/**
|
|
176
|
+
* 创建群组
|
|
177
|
+
* @param group 群组信息
|
|
178
|
+
* @returns 创建结果
|
|
179
|
+
*/
|
|
180
|
+
createGroup: (group: GroupItem) => Promise<ServerResponse<import("../types/entity").GroupInfoVO>>;
|
|
181
|
+
/**
|
|
182
|
+
* 获取群组信息
|
|
183
|
+
* @param groupId 群组ID
|
|
184
|
+
* @returns 群组信息
|
|
185
|
+
*/
|
|
186
|
+
getGroupInfo: (groupId: string) => Promise<ServerResponse<import("../types/entity").GroupInfoVO>>;
|
|
65
187
|
get uuid(): string;
|
|
66
|
-
getAllConversationList: ConversationApi['getAllConversationList'];
|
|
67
|
-
getConversationListSplit: ConversationApi['getConversationListSplit'];
|
|
68
|
-
getOneConversation: ConversationApi['getOneConversation'];
|
|
69
|
-
getMultipleConversation: ConversationApi['getMultipleConversation'];
|
|
70
|
-
getConversationIDBySessionType: ConversationApi['getConversationIDBySessionType'];
|
|
71
|
-
getTotalUnreadMsgCount: ConversationApi['getTotalUnreadMsgCount'];
|
|
72
|
-
markConversationMessageAsRead: ConversationApi['markConversationMessageAsRead'];
|
|
73
|
-
setConversationDraft: ConversationApi['setConversationDraft'];
|
|
74
|
-
pinConversation: ConversationApi['pinConversation'];
|
|
75
|
-
setConversationRecvMessageOpt: ConversationApi['setConversationRecvMessageOpt'];
|
|
76
|
-
setConversationPrivateChat: ConversationApi['setConversationPrivateChat'];
|
|
77
|
-
setConversationBurnDuration: ConversationApi['setConversationBurnDuration'];
|
|
78
|
-
resetConversationGroupAtType: ConversationApi['resetConversationGroupAtType'];
|
|
79
|
-
hideConversation: ConversationApi['hideConversation'];
|
|
80
|
-
hideAllConversation: ConversationApi['hideAllConversation'];
|
|
81
|
-
clearConversationAndDeleteAllMsg: ConversationApi['clearConversationAndDeleteAllMsg'];
|
|
82
|
-
deleteConversationAndDeleteAllMsg: ConversationApi['deleteConversationAndDeleteAllMsg'];
|
|
83
188
|
}
|
|
84
189
|
export default SIMSDK;
|
|
85
|
-
export type MixinApiService = SIMSDK & UserApi & FriendApi & ConversationApi;
|
package/lib/api/message.d.ts
CHANGED
|
@@ -1,11 +1,50 @@
|
|
|
1
1
|
import { HistoryMessageParam, HistoryMessageResponse, MessageItem, ServerResponse } from '../types/entity';
|
|
2
|
-
import SIMSDK from '
|
|
2
|
+
import SIMSDK from './index';
|
|
3
|
+
/**
|
|
4
|
+
* 消息服务 - 负责消息创建、发送和历史记录
|
|
5
|
+
*/
|
|
3
6
|
export declare class MessageService {
|
|
4
|
-
private
|
|
5
|
-
|
|
7
|
+
private readonly sdk;
|
|
8
|
+
/**
|
|
9
|
+
* 创建消息服务实例
|
|
10
|
+
* @param sdk SIMSDK实例
|
|
11
|
+
*/
|
|
12
|
+
constructor(sdk: SIMSDK);
|
|
13
|
+
/**
|
|
14
|
+
* 通用发送消息方法
|
|
15
|
+
* @param messageItem 消息项
|
|
16
|
+
* @param apiEndpoint API端点
|
|
17
|
+
* @returns 发送结果Promise
|
|
18
|
+
*/
|
|
6
19
|
private sendMessage;
|
|
20
|
+
/**
|
|
21
|
+
* 创建消息通用方法
|
|
22
|
+
* @param type 消息类型
|
|
23
|
+
* @param url API端点
|
|
24
|
+
* @param additionalParams 附加参数
|
|
25
|
+
* @param contentKey 内容键名
|
|
26
|
+
* @param content 消息内容
|
|
27
|
+
* @returns 创建结果Promise
|
|
28
|
+
*/
|
|
7
29
|
private createMessage;
|
|
8
|
-
|
|
30
|
+
/**
|
|
31
|
+
* 创建文本消息
|
|
32
|
+
* @param text 文本内容
|
|
33
|
+
* @param params 附加参数
|
|
34
|
+
* @returns 创建结果Promise
|
|
35
|
+
*/
|
|
36
|
+
createTextMessage(text: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse<MessageItem>>;
|
|
37
|
+
/**
|
|
38
|
+
* 创建图片消息
|
|
39
|
+
* @param imageUrl 图片URL
|
|
40
|
+
* @param params 附加参数
|
|
41
|
+
* @returns 创建结果Promise
|
|
42
|
+
*/
|
|
9
43
|
createImageMessage(imageUrl: string, params?: Partial<Omit<MessageItem, 'snapshot'>>): Promise<ServerResponse<MessageItem>>;
|
|
44
|
+
/**
|
|
45
|
+
* 获取历史消息列表
|
|
46
|
+
* @param params 查询参数
|
|
47
|
+
* @returns 历史消息Promise
|
|
48
|
+
*/
|
|
10
49
|
getHistoryMessageList({ groupId, lastId, size }: HistoryMessageParam): Promise<ServerResponse<HistoryMessageResponse>>;
|
|
11
50
|
}
|
package/lib/api/user.d.ts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
import SIMSDK from '
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { LoginParams } from '../types/params';
|
|
2
|
+
import SIMSDK from './index';
|
|
3
|
+
import { ServerResponse } from '../types/entity';
|
|
4
|
+
/**
|
|
5
|
+
* 用户服务 - 负责用户认证与基本信息
|
|
6
|
+
*/
|
|
7
|
+
export declare class UserService {
|
|
8
|
+
private readonly sdk;
|
|
9
|
+
/**
|
|
10
|
+
* 创建用户服务实例
|
|
11
|
+
* @param sdk SIMSDK实例
|
|
12
|
+
*/
|
|
13
|
+
constructor(sdk: SIMSDK);
|
|
14
|
+
/**
|
|
15
|
+
* 用户登录
|
|
16
|
+
* @param params 登录参数
|
|
17
|
+
* @returns 登录结果Promise
|
|
18
|
+
*/
|
|
19
|
+
login(params: LoginParams): Promise<ServerResponse<string>>;
|
|
20
|
+
/**
|
|
21
|
+
* 用户登出
|
|
22
|
+
* @returns 登出结果Promise
|
|
23
|
+
*/
|
|
24
|
+
logout(): Promise<ServerResponse<void>>;
|
|
16
25
|
}
|
package/lib/constant/api.d.ts
CHANGED
|
@@ -6,10 +6,11 @@ export declare enum ErrorCode {
|
|
|
6
6
|
}
|
|
7
7
|
export declare enum RequestApi {
|
|
8
8
|
Login = "/chat/member/login",
|
|
9
|
-
Logout = "
|
|
9
|
+
Logout = "/chat/member/logout",
|
|
10
10
|
CreateGroup = "CreateGroup",
|
|
11
11
|
GetGroupInfo = "/chat/group/info",
|
|
12
12
|
GetAllConversationList = "/chat/group/list",
|
|
13
13
|
CreateTextMessage = "/chat/message/push",
|
|
14
|
-
GetHistoryMessageList = "/chat/message/pull"
|
|
14
|
+
GetHistoryMessageList = "/chat/message/pull",
|
|
15
|
+
UploadFile = "/chat/member/upload"
|
|
15
16
|
}
|
|
@@ -1,7 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK 回调事件枚举
|
|
3
|
+
* - 所有事件使用 On 前缀,便于统一识别
|
|
4
|
+
* - 事件分类: 连接状态、消息、用户状态、群组、会话
|
|
5
|
+
*/
|
|
1
6
|
export declare enum CbEvents {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
OnConnected = "OnConnected",// 连接成功
|
|
8
|
+
OnDisconnected = "OnDisconnected",// 连接断开
|
|
9
|
+
OnReconnecting = "OnReconnecting",// 正在重连
|
|
10
|
+
OnReconnected = "OnReconnected",// 重连成功
|
|
11
|
+
OnReconnectFailed = "OnReconnectFailed",// 重连失败
|
|
12
|
+
OnNetworkChange = "OnNetworkChange",// 网络状态变化
|
|
13
|
+
OnReceiveMessage = "OnReceiveMessage",// 收到单条消息
|
|
14
|
+
OnReceiveMessages = "OnReceiveMessages",// 收到多条消息
|
|
15
|
+
OnMessageSent = "OnMessageSent",// 消息发送成功
|
|
16
|
+
OnMessageFailed = "OnMessageFailed",// 消息发送失败
|
|
17
|
+
OnMessageRevoked = "OnMessageRevoked",// 消息被撤回
|
|
18
|
+
OnMessageDeleted = "OnMessageDeleted",// 消息被删除
|
|
19
|
+
OnMessageRead = "OnMessageRead",// 消息已读
|
|
20
|
+
OnTypingStatusUpdate = "OnTypingStatusUpdate",// 对方正在输入
|
|
21
|
+
OnUserStatusChange = "OnUserStatusChange",// 用户状态变更
|
|
22
|
+
OnKickedOffline = "OnKickedOffline",// 被踢下线
|
|
23
|
+
OnUserTokenInvalid = "OnUserTokenInvalid",// 用户 Token 无效
|
|
24
|
+
OnUserTokenExpired = "OnUserTokenExpired",// 用户 Token 过期
|
|
25
|
+
OnForceOffline = "OnForceOffline",// 强制下线
|
|
26
|
+
OnUserInfoUpdated = "OnUserInfoUpdated",// 用户信息更新
|
|
27
|
+
OnGroupCreated = "OnGroupCreated",// 群组被创建
|
|
28
|
+
OnGroupInfoUpdated = "OnGroupInfoUpdated",// 群组信息更新
|
|
29
|
+
OnGroupDissolved = "OnGroupDissolved",// 群组被解散
|
|
30
|
+
OnJoinGroup = "OnJoinGroup",// 加入群组
|
|
31
|
+
OnLeaveGroup = "OnLeaveGroup",// 离开群组
|
|
32
|
+
OnGroupMemberJoined = "OnGroupMemberJoined",// 群成员加入
|
|
33
|
+
OnGroupMemberLeft = "OnGroupMemberLeft",// 群成员离开
|
|
34
|
+
OnGroupMemberKicked = "OnGroupMemberKicked",// 群成员被踢
|
|
35
|
+
OnGroupOwnerChanged = "OnGroupOwnerChanged",// 群主变更
|
|
36
|
+
OnGroupAdminAdded = "OnGroupAdminAdded",// 新增管理员
|
|
37
|
+
OnGroupAdminRemoved = "OnGroupAdminRemoved",// 移除管理员
|
|
38
|
+
OnGroupMemberMuted = "OnGroupMemberMuted",// 群成员被禁言
|
|
39
|
+
OnGroupMemberUnmuted = "OnGroupMemberUnmuted",// 群成员解除禁言
|
|
40
|
+
OnGroupAllMemberMuted = "OnGroupAllMemberMuted",// 全员禁言
|
|
41
|
+
OnGroupAllMemberUnmuted = "OnGroupAllMemberUnmuted",// 解除全员禁言
|
|
42
|
+
OnConversationCreated = "OnConversationCreated",// 新建会话
|
|
43
|
+
OnConversationDeleted = "OnConversationDeleted",// 删除会话
|
|
44
|
+
OnConversationUpdated = "OnConversationUpdated",// 会话更新
|
|
45
|
+
OnUnreadCountChanged = "OnUnreadCountChanged",// 未读消息数变化
|
|
46
|
+
OnConversationPinned = "OnConversationPinned",// 会话置顶
|
|
47
|
+
OnConversationUnpinned = "OnConversationUnpinned",// 会话取消置顶
|
|
48
|
+
OnConversationMuted = "OnConversationMuted",// 会话免打扰
|
|
49
|
+
OnConversationUnmuted = "OnConversationUnmuted",// 取消会话免打扰
|
|
50
|
+
OnPongConn = "OnPongConn",// SSE 连接心跳
|
|
51
|
+
OnPongReConn = "OnPongReConn",// SSE 重连心跳
|
|
52
|
+
OnPongIdle = "OnPongIdle",// SSE 空闲心跳
|
|
53
|
+
OnError = "OnError",// 错误事件
|
|
54
|
+
OnWarning = "OnWarning",// 警告事件
|
|
55
|
+
OnLog = "OnLog"
|
|
7
56
|
}
|
package/lib/index.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EventSourcePolyfill as e}from"event-source-polyfill";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},t.apply(null,arguments)}function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}function o(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 r,i,s=/*#__PURE__*/function(){function t(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess}var n=t.prototype;return n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this.eventSource.removeEventListener("open",this.onOpen),this.handlers.forEach(function(t,n){var o;null==(o=e.eventSource)||o.removeEventListener(n,t)}),this.eventSource.removeEventListener("error",this.onError))},n.subscribe=function(e,t){this.handlers.set(e,t),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,o){try{t.eventSource=new e(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t.eventSource.addEventListener("open",function(e){t.onOpen(e),n("SSE connect successful!")}),t.eventSource.addEventListener("message",function(e){t.handleMessage(e.data)}),t.handlers.forEach(function(e,n){var o;null==(o=t.eventSource)||o.addEventListener(n,t.onMessage(e))}),t.eventSource.addEventListener("error",function(e){t.onError(e),t.connected||o("SSE connect error.")})}catch(e){console.error("Failed to create EventSource:",e),t.handleReconnect(),o(e)}})},n.onOpen=function(e){console.log("SSE connection established"),this.connected=!0,this.reconnectAttempts>0&&this.onReconnectSuccessCallback&&this.onReconnectSuccessCallback(),this.reconnectAttempts=0,this.reconnectTimeout=5e3},n.handleMessage=function(e){try{console.log("SSE handleMessage ",e);var t=JSON.parse(e);this.onMessageCallback&&this.onMessageCallback(t)}catch(e){console.error("数据解析错误:",e)}},n.onMessage=function(e){return function(t){try{var n=JSON.parse(t.data);console.log("Received SSE message:",n),"function"==typeof e&&e(n)}catch(e){console.error("Failed to parse SSE message:",e)}}},n.onError=function(e){console.error("SSE connection error:",e),this.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?this.cleanup():this.handleReconnect()},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()},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(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts},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"}(r||(r={})),function(e){e.Login="/chat/member/login",e.Logout="Logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/info",e.GetAllConversationList="/chat/group/list",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull"}(i||(i={}));var a,c,u,d,l,v,g,h,p,m,f,M,S,A,E,y,T,O,b=/*#__PURE__*/function(){function e(e){this.simSDK=void 0,this.simSDK=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.simSDK.sendRequest({data:e,url:i.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(e){try{return Promise.resolve(this.simSDK.sendRequest({data:{groupId:e},url:i.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}();!function(e){e[e.Nomal=0]="Nomal",e[e.NotReceive=1]="NotReceive",e[e.NotNotify=2]="NotNotify"}(a||(a={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(c||(c={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(u||(u={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(d||(d={})),function(e){e[e.Nomal=20]="Nomal",e[e.Admin=60]="Admin",e[e.Owner=100]="Owner"}(l||(l={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(v||(v={})),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"}(g||(g={})),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"}(h||(h={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(p||(p={})),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"}(m||(m={})),function(e){e[e.Single=1]="Single",e[e.Group=3]="Group",e[e.WorkingGroup=3]="WorkingGroup",e[e.Notification=4]="Notification"}(f||(f={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(M||(M={})),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"}(S||(S={})),function(e){e[e.All=0]="All",e[e.Owner=1]="Owner",e[e.Admin=2]="Admin",e[e.Nomal=3]="Nomal",e[e.AdminAndNomal=4]="AdminAndNomal",e[e.AdminAndOwner=5]="AdminAndOwner"}(A||(A={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(E||(E={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(y||(y={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(T||(T={})),function(e){e[e.Readed=0]="Readed",e[e.UnRead=1]="UnRead"}(O||(O={}));var C,N,G,P={ONE_ON_ONE:0,GROUP_CHAT:1,CUSTOMER_SERVICE:2};!function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.VIDEO=3]="VIDEO",e[e.LINK=4]="LINK",e[e.GIF=5]="GIF"}(C||(C={})),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"}(G||(G={}));var R,k={NORMAL:0,EDITED:1,DELETED:2},L=/*#__PURE__*/function(){function e(e){this.simSDK=void 0,this.simSDK=e}var n=e.prototype;return n.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(n.simSDK.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,o,r,i){var s;void 0===o&&(o={});var a=t({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(a,n)},n.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(C.TEXT,i.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(C.IMAGE,i.CreateTextMessage,t,"snapshot",e))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.simSDK.sendRequest({data:{groupId:t,lastId:n,size:r},url:i.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}();!function(e){e.onReceiveMessage="onReceiveMessage",e.onReceiveMessages="onReceiveMessages",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired"}(R||(R={}));var F="undefined"!=typeof uni,I="undefined"!=typeof window,w=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!0),(n=e.call(this)||this).username=void 0,n.token=void 0,n.appKey=void 0,n.apiAddr=void 0,n.sseClient=void 0,n.debug=void 0,n.messageService=void 0,n.groupService=void 0,n.sendRequest=function(e){return n.log("%cSDK =>%c [sendRequest] url:"+e.url+" [method]: "+e.method+" args "+JSON.stringify(e.data),"font-size:14px; background:#7CAEFF; border-radius:4px; padding-inline:4px;",""),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(I)return console.log("isBrowser ",I),console.log("options ",e),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.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:"Bearer "+n.token},data:e.data})},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,username:n.username,url:e})}},n.handleMessage=function(e){console.log("handleMessage response",e)},n.handleReconnectSuccess=function(){},n.login=function(e){try{return n.sseClient?Promise.resolve("login repeat"):(console.log("login params ",e),n.apiAddr=e.apiAddr,n.token=e.token,console.log("this.apiAddr ",n.apiAddr),Promise.resolve(n.sendRequest({data:e,url:i.Login,method:"POST"})).then(function(t){var o=t.code,r=t.data;if(0!=o)return console.log("code ",o),Promise.resolve("Login failed, Server error, error code is "+o);var i=n.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+r;n.username=e.username,n.token=e.token,n.appKey=e.appKey,n.sseClient=new s({url:i,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,token:e.token});try{return n.sseClient.connect()}catch(e){return Promise.reject(e.message)}}))}catch(e){return Promise.reject(e)}},n.logout=n.createRequestFunctionWithoutParams(i.Logout,"DELETE"),n.internalUploadFile=function(e){try{try{return Promise.resolve({})}catch(e){return console.error("Upload failed:",e),Promise.resolve({error:e})}}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.url,o=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?r.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.getSelfUserInfo=void 0,n.setSelfInfo=void 0,n.getUsersInfoWithCache=void 0,n.subscribeUsersStatus=void 0,n.unsubscribeUsersStatus=void 0,n.getSubscribeUsersStatus=void 0,n.setAppBackgroundStatus=void 0,n.networkStatusChanged=void 0,n.setGlobalRecvMessageOpt=void 0,n.acceptFriendApplication=void 0,n.addBlack=void 0,n.addFriend=void 0,n.checkFriend=void 0,n.deleteFriend=void 0,n.getBlackList=void 0,n.getFriendApplicationListAsApplicant=void 0,n.getFriendApplicationListAsRecipient=void 0,n.getFriendList=void 0,n.getFriendListPage=void 0,n.getSpecifiedFriendsInfo=void 0,n.refuseFriendApplication=void 0,n.removeBlack=void 0,n.searchFriends=void 0,n.setFriendRemark=void 0,n.getAllConversationList=void 0,n.getConversationListSplit=void 0,n.getOneConversation=void 0,n.getMultipleConversation=void 0,n.getConversationIDBySessionType=void 0,n.getTotalUnreadMsgCount=void 0,n.markConversationMessageAsRead=void 0,n.setConversationDraft=void 0,n.pinConversation=void 0,n.setConversationRecvMessageOpt=void 0,n.setConversationPrivateChat=void 0,n.setConversationBurnDuration=void 0,n.resetConversationGroupAtType=void 0,n.hideConversation=void 0,n.hideAllConversation=void 0,n.clearConversationAndDeleteAllMsg=void 0,n.deleteConversationAndDeleteAllMsg=void 0,n.debug=t,Object.assign(n,{}),Object.assign(n,{}),Object.assign(n,{getAllConversationList:n.createRequestFunctionWithoutParams(i.GetAllConversationList,"GET")}),n.messageService=new L(n),n.groupService=new b(n),n}var a,c,u,d;return c=e,(a=t).prototype=Object.create(c.prototype),a.prototype.constructor=a,n(a,c),t.prototype.log=function(){var e;this.debug&&(e=console).info.apply(e,[].slice.call(arguments))},u=t,(d=[{key:"createGroup",get:function(){var e=this;return function(t){return e.groupService.createGroup(t)}}},{key:"getGroupInfo",get:function(){var e=this;return function(t){return e.groupService.getGroupInfo(t)}}},{key:"createTextMessage",get:function(){return this.messageService.createTextMessage.bind(this.messageService)}},{key:"getHistoryMessageList",get:function(){var e=this;return console.log("sdk getHistoryMessageList"),function(t){return e.messageService.getHistoryMessageList(t)}}},{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,o(r.key),r)}}(u.prototype,d),Object.defineProperty(u,"prototype",{writable:!1}),u}(/*#__PURE__*/function(){function e(){var e;this.events=((e={})[R.onReceiveMessage]=[],e[R.onReceiveMessages]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},e}());export{c as AllowType,p as ApplicationHandleResult,R as CbEvents,r as ErrorCode,P as GROUP_TYPE,S as GroupAtType,d as GroupJoinSource,A as GroupMemberFilter,l as GroupMemberRole,O as GroupMessageReaderFilter,M as GroupStatus,u as GroupType,v as GroupVerificationType,h as LogLevel,y as LoginStatus,C as MSG_TYPE,a as MessageReceiveOptType,G as MessageSendStatus,k as MessageStatus,m as MessageType,T as OnlineState,g as Platform,E as Relationship,i as RequestApi,w as SIMSDK,N as SSE_RESPONSE_TYPE,f as SessionType};
|
|
1
|
+
import{EventSourcePolyfill as e}from"event-source-polyfill";function n(){return n=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},n.apply(null,arguments)}function t(e,n){return t=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},t(e,n)}function o(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 r;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(r||(r={}));var i,s,c,a=/*#__PURE__*/function(){function n(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,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||5e3,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),i=n._openHandler;n._openHandler=function(e){clearTimeout(r),i(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"}(i||(i={})),function(e){e.Login="/chat/member/login",e.Logout="/chat/member/logout",e.CreateGroup="CreateGroup",e.GetGroupInfo="/chat/group/info",e.GetAllConversationList="/chat/group/list",e.CreateTextMessage="/chat/message/push",e.GetHistoryMessageList="/chat/message/pull",e.UploadFile="/chat/member/upload"}(s||(s={})),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.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.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"}(c||(c={}));var u,d,l,g,f,h,p,m,v,O,M,C,S,E,A,G,b,k,y,N,R,P,T=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[c.OnReceiveMessage]=[],e[c.OnReceiveMessages]=[],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"}(u||(u={})),function(e){e[e.Allowed=0]="Allowed",e[e.NotAllowed=1]="NotAllowed"}(d||(d={})),function(e){e[e.Group=2]="Group",e[e.WorkingGroup=2]="WorkingGroup"}(l||(l={})),function(e){e[e.Invitation=2]="Invitation",e[e.Search=3]="Search",e[e.QrCode=4]="QrCode"}(g||(g={})),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"}(h||(h={})),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"}(p||(p={})),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"}(m||(m={})),function(e){e[e.Unprocessed=0]="Unprocessed",e[e.Agree=1]="Agree",e[e.Reject=-1]="Reject"}(v||(v={})),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"}(M||(M={})),function(e){e[e.Nomal=0]="Nomal",e[e.Baned=1]="Baned",e[e.Dismissed=2]="Dismissed",e[e.Muted=3]="Muted"}(C||(C={})),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"}(S||(S={})),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"}(E||(E={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(A||(A={})),function(e){e[e.Logout=1]="Logout",e[e.Logging=2]="Logging",e[e.Logged=3]="Logged"}(G||(G={})),function(e){e[e.Online=1]="Online",e[e.Offline=0]="Offline"}(b||(b={})),function(e){e[e.Readed=0]="Readed",e[e.UnRead=1]="UnRead"}(k||(k={})),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"}(y||(y={})),function(e){e[e.TEXT=0]="TEXT",e[e.IMAGE=1]="IMAGE",e[e.FILE=2]="FILE",e[e.VIDEO=3]="VIDEO",e[e.LINK=4]="LINK",e[e.GIF=5]="GIF"}(N||(N={})),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"}(R||(R={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(P||(P={}));var w={NORMAL:0,EDITED:1,DELETED:2},_="undefined"!=typeof uni,U="undefined"!=typeof window,L=/*#__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:s.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:s.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,o,r,i){var s;void 0===o&&(o={});var c=n({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(c,t)},t.createTextMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(N.TEXT,s.CreateTextMessage,n,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(N.IMAGE,s.CreateTextMessage,n,"snapshot",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var n=e.groupId,t=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:t,size:r},url:s.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),x=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:s.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),F=/*#__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:s.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:s.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),j=/*#__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 r.USER:return new L(this.sdk);case r.MESSAGE:return new I(this.sdk);case r.CONVERSATION:return new x(this.sdk);case r.GROUP:return new F(this.sdk);default:throw new Error("Unknown service: "+e)}},n.reset=function(){this.services={}},e}();function D(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var H=[s.Logout,c.OnKickedOffline,c.OnUserTokenInvalid,c.OnUserTokenExpired],V=/*#__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.sseClient=void 0,t.serviceManager=void 0,t.sendRequest=function(e){return t.internalState.lastActivity=Date.now(),t.config.debug&&t.logRequest(e),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(U)return console.log("isBrowser ",U),console.log("options ",e),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.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:t.config.token?"Bearer "+t.config.token:""},data:e.data})},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 R.EVENT_MESSAGE_PUSH:1===e.dt.length?t.emit(c.OnReceiveMessage,e.dt[0]):t.emit(c.OnReceiveMessages,e.dt);break;case R.EVENT_PONG_CONN:t.internalState.isConnected=!0,t.emit(c.OnConnected);break;case R.EVENT_PONG_RE_CONN:t.internalState.isConnected=!0,t.emit(c.OnReconnected);break;case R.EVENT_PONG_IDLE:break;default:n=e.ev,Object.values(c).includes(n)?(t.emit(e.ev,e.dt),H.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 n},t.handleReconnectSuccess=function(){t.config.username&&(t.internalState.isConnected=!0,t.internalState.reconnectAttempts=0,t.config.debug&&console.log("SSE reconnection successful"),t.emit(c.OnReconnected))},t.handleConnectionClosed=function(){t.internalState.isConnected=!1,t.config.debug&&console.log("SSE connection closed"),t.emit(c.OnDisconnected)},t.login=function(e){try{return t.sseClient?Promise.resolve("login repeat"):(t.config.apiAddr=e.apiAddr,t.config.token=e.token,t.config.debug&&(console.log("login params",e),console.log("apiAddr",t.config.apiAddr)),Promise.resolve(t.user.login(e)).then(function(n){var o=n.code,r=n.data;if(0!=o)return Promise.resolve("Login failed, Server error, error code is "+o);var i=t.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+r;return t.config.username=e.username,t.config.token=e.token,t.config.appKey=e.appKey,t.sseClient=new a({url:i,onMessage:t.handleMessage,onReconnectSuccess:t.handleReconnectSuccess,onConnectionClosed:t.handleConnectionClosed,token:e.token}),D(function(){return Promise.resolve(t.sseClient.connect()).then(function(e){return t.internalState.isLoggedIn=!0,e})},function(e){return t.internalState.isLoggedIn=!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,e})}catch(e){return Promise.reject(e)}},t.internalUploadFile=function(e){try{return Promise.resolve(D(function(){var n=new FormData;return n.append("file",e),n.append("filename",e.name),Promise.resolve(fetch(""+t.config.apiAddr+s.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;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},t.uploadFile=function(e){var n=e.file;try{return Promise.resolve(t.internalUploadFile(n)).then(function(e){var n,t=e.url,o=e.error;return{data:{url:void 0===t?"":t},msg:null!=(n=null==o?void 0:o.message)?n:"",code:o?i.UnknownError:0}})}catch(e){return Promise.reject(e)}},t.createTextMessage=function(e){return t.message.createTextMessage(e)},t.createImageMessage=function(e){return t.message.createImageMessage(e)},t.getHistoryMessageList=function(e){return t.message.getHistoryMessageList(e)},t.getConversations=function(){return t.conversation.getConversations()},t.createGroup=function(e){return t.group.createGroup(e)},t.getGroupInfo=function(e){return t.group.getGroupInfo(e)},t.config.debug=n,t.serviceManager=new j(t),t}var u,d;d=e,(u=n).prototype=Object.create(d.prototype),u.prototype.constructor=u,t(u,d);var l,g,f=n.prototype;return f.configure=function(e){void 0!==e.debug&&(this.config.debug=e.debug),e.apiAddr&&(this.config.apiAddr=e.apiAddr),e.appKey&&(this.config.appKey=e.appKey)},f.setApiAddr=function(e){this.config.apiAddr=e},f.setAppKey=function(e){this.config.appKey=e},f.getService=function(e){return this.serviceManager.get(e)},f.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},f.isLoggedIn=function(){return this.internalState.isLoggedIn},f.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},f.onMessage=function(e){var n=this;return this.on(c.OnReceiveMessage,e),function(){return n.off(c.OnReceiveMessage,e)}},f.onMessages=function(e){var n=this;return this.on(c.OnReceiveMessages,e),function(){return n.off(c.OnReceiveMessages,e)}},f.onConnectionChange=function(e){var n=this,t=function(){return e(!0)},o=function(){return e(!1)};return this.on(c.OnConnected,t),this.on(c.OnDisconnected,o),function(){n.off(c.OnConnected,t),n.off(c.OnDisconnected,o)}},f.onKickedOffline=function(e){var n=this;return this.on(c.OnKickedOffline,e),function(){return n.off(c.OnKickedOffline,e)}},l=n,(g=[{key:"message",get:function(){return this.getService(r.MESSAGE)}},{key:"conversation",get:function(){return this.getService(r.CONVERSATION)}},{key:"group",get:function(){return this.getService(r.GROUP)}},{key:"user",get:function(){return this.getService(r.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 r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}(l.prototype,g),Object.defineProperty(l,"prototype",{writable:!1}),l}(T);export{d as AllowType,v as ApplicationHandleResult,c as CbEvents,i as ErrorCode,y as GROUP_TYPE,S as GroupAtType,g as GroupJoinSource,E as GroupMemberFilter,f as GroupMemberRole,k as GroupMessageReaderFilter,C as GroupStatus,l as GroupType,h as GroupVerificationType,m as LogLevel,G as LoginStatus,N as MSG_TYPE,u as MessageReceiveOptType,P as MessageSendStatus,w as MessageStatus,O as MessageType,b as OnlineState,p as Platform,A as Relationship,s as RequestApi,V as SIMSDK,R as SSE_RESPONSE_TYPE,r as ServiceName,M as SessionType};
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=require("event-source-polyfill");function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)({}).hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},t.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 r(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var n,s,i=/*#__PURE__*/function(){function t(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess}var o=t.prototype;return o.removeAllEventListeners=function(){var e=this;this.eventSource&&(this.eventSource.removeEventListener("open",this.onOpen),this.handlers.forEach(function(t,o){var r;null==(r=e.eventSource)||r.removeEventListener(o,t)}),this.eventSource.removeEventListener("error",this.onError))},o.subscribe=function(e,t){this.handlers.set(e,t),this.connect()},o.connect=function(){var t=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(o,r){try{t.eventSource=new e.EventSourcePolyfill(t.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+t.token}}),t.eventSource.addEventListener("open",function(e){t.onOpen(e),o("SSE connect successful!")}),t.eventSource.addEventListener("message",function(e){t.handleMessage(e.data)}),t.handlers.forEach(function(e,o){var r;null==(r=t.eventSource)||r.addEventListener(o,t.onMessage(e))}),t.eventSource.addEventListener("error",function(e){t.onError(e),t.connected||r("SSE connect error.")})}catch(e){console.error("Failed to create EventSource:",e),t.handleReconnect(),r(e)}})},o.onOpen=function(e){console.log("SSE connection established"),this.connected=!0,this.reconnectAttempts>0&&this.onReconnectSuccessCallback&&this.onReconnectSuccessCallback(),this.reconnectAttempts=0,this.reconnectTimeout=5e3},o.handleMessage=function(e){try{console.log("SSE handleMessage ",e);var t=JSON.parse(e);this.onMessageCallback&&this.onMessageCallback(t)}catch(e){console.error("数据解析错误:",e)}},o.onMessage=function(e){return function(t){try{var o=JSON.parse(t.data);console.log("Received SSE message:",o),"function"==typeof e&&e(o)}catch(e){console.error("Failed to parse SSE message:",e)}}},o.onError=function(e){console.error("SSE connection error:",e),this.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?this.cleanup():this.handleReconnect()},o.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()},this.reconnectTimeout)}},o.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},o.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},o.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts},o.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},o.isConnected=function(){return this.connected},t}();exports.ErrorCode=void 0,(n=exports.ErrorCode||(exports.ErrorCode={}))[n.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",n[n.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",n[n.UnknownError=10005]="UnknownError",n[n.LoginRepeatError=10102]="LoginRepeatError",exports.RequestApi=void 0,(s=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",s.Logout="Logout",s.CreateGroup="CreateGroup",s.GetGroupInfo="/chat/group/info",s.GetAllConversationList="/chat/group/list",s.CreateTextMessage="/chat/message/push",s.GetHistoryMessageList="/chat/message/pull";var a,c,u,d,l,p,v,g,h,m,f,S,M,E,A,x,T,y,G,R,O,P=/*#__PURE__*/function(){function e(e){this.simSDK=void 0,this.simSDK=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.simSDK.sendRequest({data:e,url:exports.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(e){try{return Promise.resolve(this.simSDK.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}();exports.MessageReceiveOptType=void 0,(a=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[a.Nomal=0]="Nomal",a[a.NotReceive=1]="NotReceive",a[a.NotNotify=2]="NotNotify",exports.AllowType=void 0,(c=exports.AllowType||(exports.AllowType={}))[c.Allowed=0]="Allowed",c[c.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(u=exports.GroupType||(exports.GroupType={}))[u.Group=2]="Group",u[u.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(d=exports.GroupJoinSource||(exports.GroupJoinSource={}))[d.Invitation=2]="Invitation",d[d.Search=3]="Search",d[d.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(l=exports.GroupMemberRole||(exports.GroupMemberRole={}))[l.Nomal=20]="Nomal",l[l.Admin=60]="Admin",l[l.Owner=100]="Owner",exports.GroupVerificationType=void 0,(p=exports.GroupVerificationType||(exports.GroupVerificationType={}))[p.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",p[p.AllNeed=1]="AllNeed",p[p.AllNot=2]="AllNot",exports.Platform=void 0,(v=exports.Platform||(exports.Platform={}))[v.iOS=1]="iOS",v[v.Android=2]="Android",v[v.Windows=3]="Windows",v[v.MacOSX=4]="MacOSX",v[v.Web=5]="Web",v[v.Linux=7]="Linux",v[v.AndroidPad=8]="AndroidPad",v[v.iPad=9]="iPad",exports.LogLevel=void 0,(g=exports.LogLevel||(exports.LogLevel={}))[g.Debug=5]="Debug",g[g.Info=4]="Info",g[g.Warn=3]="Warn",g[g.Error=2]="Error",g[g.Fatal=1]="Fatal",g[g.Panic=0]="Panic",exports.ApplicationHandleResult=void 0,(h=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[h.Unprocessed=0]="Unprocessed",h[h.Agree=1]="Agree",h[h.Reject=-1]="Reject",exports.MessageType=void 0,(m=exports.MessageType||(exports.MessageType={}))[m.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",m[m.TextMessage=101]="TextMessage",m[m.PictureMessage=102]="PictureMessage",m[m.VoiceMessage=103]="VoiceMessage",m[m.VideoMessage=104]="VideoMessage",m[m.FileMessage=105]="FileMessage",m[m.AtTextMessage=106]="AtTextMessage",m[m.MergeMessage=107]="MergeMessage",m[m.CardMessage=108]="CardMessage",m[m.LocationMessage=109]="LocationMessage",m[m.CustomMessage=110]="CustomMessage",m[m.TypingMessage=113]="TypingMessage",m[m.QuoteMessage=114]="QuoteMessage",m[m.FaceMessage=115]="FaceMessage",m[m.FriendAdded=1201]="FriendAdded",m[m.OANotification=1400]="OANotification",m[m.GroupCreated=1501]="GroupCreated",m[m.MemberQuit=1504]="MemberQuit",m[m.GroupOwnerTransferred=1507]="GroupOwnerTransferred",m[m.MemberKicked=1508]="MemberKicked",m[m.MemberInvited=1509]="MemberInvited",m[m.MemberEnter=1510]="MemberEnter",m[m.GroupDismissed=1511]="GroupDismissed",m[m.GroupMemberMuted=1512]="GroupMemberMuted",m[m.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",m[m.GroupMuted=1514]="GroupMuted",m[m.GroupCancelMuted=1515]="GroupCancelMuted",m[m.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",m[m.GroupNameUpdated=1520]="GroupNameUpdated",m[m.BurnMessageChange=1701]="BurnMessageChange",m[m.RevokeMessage=2101]="RevokeMessage",exports.SessionType=void 0,(f=exports.SessionType||(exports.SessionType={}))[f.Single=1]="Single",f[f.Group=3]="Group",f[f.WorkingGroup=3]="WorkingGroup",f[f.Notification=4]="Notification",exports.GroupStatus=void 0,(S=exports.GroupStatus||(exports.GroupStatus={}))[S.Nomal=0]="Nomal",S[S.Baned=1]="Baned",S[S.Dismissed=2]="Dismissed",S[S.Muted=3]="Muted",exports.GroupAtType=void 0,(M=exports.GroupAtType||(exports.GroupAtType={}))[M.AtNormal=0]="AtNormal",M[M.AtMe=1]="AtMe",M[M.AtAll=2]="AtAll",M[M.AtAllAtMe=3]="AtAllAtMe",M[M.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(E=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[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",exports.Relationship=void 0,(A=exports.Relationship||(exports.Relationship={}))[A.isBlack=0]="isBlack",A[A.isFriend=1]="isFriend",exports.LoginStatus=void 0,(x=exports.LoginStatus||(exports.LoginStatus={}))[x.Logout=1]="Logout",x[x.Logging=2]="Logging",x[x.Logged=3]="Logged",exports.OnlineState=void 0,(T=exports.OnlineState||(exports.OnlineState={}))[T.Online=1]="Online",T[T.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(y=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[y.Readed=0]="Readed",y[y.UnRead=1]="UnRead",exports.MSG_TYPE=void 0,(G=exports.MSG_TYPE||(exports.MSG_TYPE={}))[G.TEXT=0]="TEXT",G[G.IMAGE=1]="IMAGE",G[G.FILE=2]="FILE",G[G.VIDEO=3]="VIDEO",G[G.LINK=4]="LINK",G[G.GIF=5]="GIF",exports.SSE_RESPONSE_TYPE=void 0,(R=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[R.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",R[R.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",R[R.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",R[R.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(O=exports.MessageSendStatus||(exports.MessageSendStatus={}))[O.Sending=1]="Sending",O[O.Succeed=2]="Succeed",O[O.Failed=3]="Failed";var b,C=/*#__PURE__*/function(){function e(e){this.simSDK=void 0,this.simSDK=e}var o=e.prototype;return o.sendMessage=function(e,t){try{var o=this;return Promise.resolve(function(r,n){try{var s=Promise.resolve(o.simSDK.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return n(e)}return s&&s.then?s.then(void 0,n):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},o.createMessage=function(e,o,r,n,s){var i;void 0===r&&(r={});var a=t({},r,((i={msgType:e})[n]=s,i.status=0,i));return this.sendMessage(a,o)},o.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.TEXT,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},o.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,t,"snapshot",e))}catch(e){return Promise.reject(e)}},o.getHistoryMessageList=function(e){var t=e.groupId,o=e.lastId,r=e.size,n=void 0===r?20:r;try{return Promise.resolve(this.simSDK.sendRequest({data:{groupId:t,lastId:o,size:n},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}();exports.CbEvents=void 0,(b=exports.CbEvents||(exports.CbEvents={})).onReceiveMessage="onReceiveMessage",b.onReceiveMessages="onReceiveMessages",b.OnKickedOffline="OnKickedOffline",b.OnUserTokenInvalid="OnUserTokenInvalid",b.OnUserTokenExpired="OnUserTokenExpired";var N="undefined"!=typeof uni,L="undefined"!=typeof window,k=/*#__PURE__*/function(e){function t(t){var o;return void 0===t&&(t=!0),(o=e.call(this)||this).username=void 0,o.token=void 0,o.appKey=void 0,o.apiAddr=void 0,o.sseClient=void 0,o.debug=void 0,o.messageService=void 0,o.groupService=void 0,o.sendRequest=function(e){return o.log("%cSDK =>%c [sendRequest] url:"+e.url+" [method]: "+e.method+" args "+JSON.stringify(e.data),"font-size:14px; background:#7CAEFF; border-radius:4px; padding-inline:4px;",""),function(e){try{return Promise.resolve(N?new Promise(function(t,o){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 o(e)}})}):function(){if(L)return console.log("isBrowser ",L),console.log("options ",e),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:o.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:"Bearer "+o.token},data:e.data})},o.createRequestFunction=function(e,t){return function(r){return o.sendRequest({data:r,url:e,method:t})}},o.createRequestFunctionWithoutParams=function(e,t){return function(){return o.sendRequest({data:void 0,method:t,username:o.username,url:e})}},o.handleMessage=function(e){console.log("handleMessage response",e)},o.handleReconnectSuccess=function(){},o.login=function(e){try{return o.sseClient?Promise.resolve("login repeat"):(console.log("login params ",e),o.apiAddr=e.apiAddr,o.token=e.token,console.log("this.apiAddr ",o.apiAddr),Promise.resolve(o.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"})).then(function(t){var r=t.code,n=t.data;if(0!=r)return console.log("code ",r),Promise.resolve("Login failed, Server error, error code is "+r);var s=o.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+n;o.username=e.username,o.token=e.token,o.appKey=e.appKey,o.sseClient=new i({url:s,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,token:e.token});try{return o.sseClient.connect()}catch(e){return Promise.reject(e.message)}}))}catch(e){return Promise.reject(e)}},o.logout=o.createRequestFunctionWithoutParams(exports.RequestApi.Logout,"DELETE"),o.internalUploadFile=function(e){try{try{return Promise.resolve({})}catch(e){return console.error("Upload failed:",e),Promise.resolve({error:e})}}catch(e){return Promise.reject(e)}},o.uploadFile=function(e){var t=e.file;try{return Promise.resolve(o.internalUploadFile(t)).then(function(e){var t,o=e.url,r=e.error;return{data:{url:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.getSelfUserInfo=void 0,o.setSelfInfo=void 0,o.getUsersInfoWithCache=void 0,o.subscribeUsersStatus=void 0,o.unsubscribeUsersStatus=void 0,o.getSubscribeUsersStatus=void 0,o.setAppBackgroundStatus=void 0,o.networkStatusChanged=void 0,o.setGlobalRecvMessageOpt=void 0,o.acceptFriendApplication=void 0,o.addBlack=void 0,o.addFriend=void 0,o.checkFriend=void 0,o.deleteFriend=void 0,o.getBlackList=void 0,o.getFriendApplicationListAsApplicant=void 0,o.getFriendApplicationListAsRecipient=void 0,o.getFriendList=void 0,o.getFriendListPage=void 0,o.getSpecifiedFriendsInfo=void 0,o.refuseFriendApplication=void 0,o.removeBlack=void 0,o.searchFriends=void 0,o.setFriendRemark=void 0,o.getAllConversationList=void 0,o.getConversationListSplit=void 0,o.getOneConversation=void 0,o.getMultipleConversation=void 0,o.getConversationIDBySessionType=void 0,o.getTotalUnreadMsgCount=void 0,o.markConversationMessageAsRead=void 0,o.setConversationDraft=void 0,o.pinConversation=void 0,o.setConversationRecvMessageOpt=void 0,o.setConversationPrivateChat=void 0,o.setConversationBurnDuration=void 0,o.resetConversationGroupAtType=void 0,o.hideConversation=void 0,o.hideAllConversation=void 0,o.clearConversationAndDeleteAllMsg=void 0,o.deleteConversationAndDeleteAllMsg=void 0,o.debug=t,Object.assign(o,{}),Object.assign(o,{}),Object.assign(o,{getAllConversationList:o.createRequestFunctionWithoutParams(exports.RequestApi.GetAllConversationList,"GET")}),o.messageService=new C(o),o.groupService=new P(o),o}var n,s,a,c;return s=e,(n=t).prototype=Object.create(s.prototype),n.prototype.constructor=n,o(n,s),t.prototype.log=function(){var e;this.debug&&(e=console).info.apply(e,[].slice.call(arguments))},a=t,(c=[{key:"createGroup",get:function(){var e=this;return function(t){return e.groupService.createGroup(t)}}},{key:"getGroupInfo",get:function(){var e=this;return function(t){return e.groupService.getGroupInfo(t)}}},{key:"createTextMessage",get:function(){return this.messageService.createTextMessage.bind(this.messageService)}},{key:"getHistoryMessageList",get:function(){var e=this;return console.log("sdk getHistoryMessageList"),function(t){return e.messageService.getHistoryMessageList(t)}}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,r(n.key),n)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.onReceiveMessage]=[],e[exports.CbEvents.onReceiveMessages]=[],e)}var t=e.prototype;return t.emit=function(e,t){var o=this.events[e];return o&&o.forEach(function(e){return e(t)}),this},t.on=function(e,t){var o;return this.events[e]||(this.events[e]=[]),null==(o=this.events[e])||o.push(t),this},t.off=function(e,t){var o=this.events[e];if(o){var r=o.indexOf(t);r>-1&&(o.splice(r,1),0===o.length&&delete this.events[e])}return this},e}());exports.GROUP_TYPE={ONE_ON_ONE:0,GROUP_CHAT:1,CUSTOMER_SERVICE:2},exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=k;
|
|
1
|
+
var e,t=require("event-source-polyfill");function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},n.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 r(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}exports.ServiceName=void 0,(e=exports.ServiceName||(exports.ServiceName={})).MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user";var s,i,a,c=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,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||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var n=e.prototype;return n.removeAllEventListeners=function(){var e=this;this.eventSource&&(this._openHandler&&this.eventSource.removeEventListener("open",this._openHandler),this._errorHandler&&this.eventSource.removeEventListener("error",this._errorHandler),this._messageHandler&&this.eventSource.removeEventListener("message",this._messageHandler),this.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.removeEventListener(n,o)}))},n.subscribe=function(e,t){this.handlers.set(e,t);var n=function(e){try{var n=JSON.parse(e.data);t(n)}catch(e){console.error("Error parsing message data:",e)}};this._customHandlers.set(e,n),this.eventSource?this.eventSource.addEventListener(e,n):this.connect()},n.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(n,o){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(t){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,n("SSE connect successful!")},e._errorHandler=function(t){console.error("SSE connection error:",t),e.connected=!1,401===t.status||t.statusText&&t.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(t){try{console.log("SSE received message:",t.data);var n=JSON.parse(t.data);e.onMessageCallback&&e.onMessageCallback(n)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(t,n){var o=e._customHandlers.get(n);o&&e.eventSource&&e.eventSource.addEventListener(n,o)});var r=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},1e4),s=e._openHandler;e._openHandler=function(e){clearTimeout(r),s(e)}}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},n.notifyConnectionClosed=function(e){void 0===e&&(e=!1),this.onConnectionClosedCallback&&this.onConnectionClosedCallback(),e?console.warn("SSE connection closed due to authentication error"):console.log("SSE connection closed")},n.handleReconnect=function(){var e=this;if(null===this.reconnectTimer){if(this.reconnectAttempts>=this.maxReconnectAttempts)return console.error("Max reconnection attempts reached"),void this.destroySse();console.log("Attempting to reconnect in "+this.reconnectTimeout/1e3+" seconds..."),this.cleanup(),this.reconnectTimer=window.setTimeout(function(){e.reconnectAttempts++,e.reconnectTimeout=Math.min(2*e.reconnectTimeout,3e4),e.reconnectTimer=null,e.connect().catch(function(){})},this.reconnectTimeout)}},n.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},n.unsubscribe=function(){this.cleanup(),this.handlers.clear(),this._customHandlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},n.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts,this.notifyConnectionClosed()},n.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},n.isConnected=function(){return this.connected},e}();exports.ErrorCode=void 0,(s=exports.ErrorCode||(exports.ErrorCode={}))[s.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",s[s.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",s[s.UnknownError=10005]="UnknownError",s[s.LoginRepeatError=10102]="LoginRepeatError",exports.RequestApi=void 0,(i=exports.RequestApi||(exports.RequestApi={})).Login="/chat/member/login",i.Logout="/chat/member/logout",i.CreateGroup="CreateGroup",i.GetGroupInfo="/chat/group/info",i.GetAllConversationList="/chat/group/list",i.CreateTextMessage="/chat/message/push",i.GetHistoryMessageList="/chat/message/pull",i.UploadFile="/chat/member/upload",exports.CbEvents=void 0,(a=exports.CbEvents||(exports.CbEvents={})).OnConnected="OnConnected",a.OnDisconnected="OnDisconnected",a.OnReconnecting="OnReconnecting",a.OnReconnected="OnReconnected",a.OnReconnectFailed="OnReconnectFailed",a.OnNetworkChange="OnNetworkChange",a.OnReceiveMessage="OnReceiveMessage",a.OnReceiveMessages="OnReceiveMessages",a.OnMessageSent="OnMessageSent",a.OnMessageFailed="OnMessageFailed",a.OnMessageRevoked="OnMessageRevoked",a.OnMessageDeleted="OnMessageDeleted",a.OnMessageRead="OnMessageRead",a.OnTypingStatusUpdate="OnTypingStatusUpdate",a.OnUserStatusChange="OnUserStatusChange",a.OnKickedOffline="OnKickedOffline",a.OnUserTokenInvalid="OnUserTokenInvalid",a.OnUserTokenExpired="OnUserTokenExpired",a.OnForceOffline="OnForceOffline",a.OnUserInfoUpdated="OnUserInfoUpdated",a.OnGroupCreated="OnGroupCreated",a.OnGroupInfoUpdated="OnGroupInfoUpdated",a.OnGroupDissolved="OnGroupDissolved",a.OnJoinGroup="OnJoinGroup",a.OnLeaveGroup="OnLeaveGroup",a.OnGroupMemberJoined="OnGroupMemberJoined",a.OnGroupMemberLeft="OnGroupMemberLeft",a.OnGroupMemberKicked="OnGroupMemberKicked",a.OnGroupOwnerChanged="OnGroupOwnerChanged",a.OnGroupAdminAdded="OnGroupAdminAdded",a.OnGroupAdminRemoved="OnGroupAdminRemoved",a.OnGroupMemberMuted="OnGroupMemberMuted",a.OnGroupMemberUnmuted="OnGroupMemberUnmuted",a.OnGroupAllMemberMuted="OnGroupAllMemberMuted",a.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",a.OnConversationCreated="OnConversationCreated",a.OnConversationDeleted="OnConversationDeleted",a.OnConversationUpdated="OnConversationUpdated",a.OnUnreadCountChanged="OnUnreadCountChanged",a.OnConversationPinned="OnConversationPinned",a.OnConversationUnpinned="OnConversationUnpinned",a.OnConversationMuted="OnConversationMuted",a.OnConversationUnmuted="OnConversationUnmuted",a.OnPongConn="OnPongConn",a.OnPongReConn="OnPongReConn",a.OnPongIdle="OnPongIdle",a.OnError="OnError",a.OnWarning="OnWarning",a.OnLog="OnLog";var u,d,l,p,g,v,h,f,m,O,S,E,M,C,x,A,G,b,R,T,P,y,N=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[exports.CbEvents.OnReceiveMessage]=[],e[exports.CbEvents.OnReceiveMessages]=[],e)}var t=e.prototype;return t.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},t.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},t.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},e}();exports.MessageReceiveOptType=void 0,(u=exports.MessageReceiveOptType||(exports.MessageReceiveOptType={}))[u.Nomal=0]="Nomal",u[u.NotReceive=1]="NotReceive",u[u.NotNotify=2]="NotNotify",exports.AllowType=void 0,(d=exports.AllowType||(exports.AllowType={}))[d.Allowed=0]="Allowed",d[d.NotAllowed=1]="NotAllowed",exports.GroupType=void 0,(l=exports.GroupType||(exports.GroupType={}))[l.Group=2]="Group",l[l.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(p=exports.GroupJoinSource||(exports.GroupJoinSource={}))[p.Invitation=2]="Invitation",p[p.Search=3]="Search",p[p.QrCode=4]="QrCode",exports.GroupMemberRole=void 0,(g=exports.GroupMemberRole||(exports.GroupMemberRole={}))[g.Nomal=20]="Nomal",g[g.Admin=60]="Admin",g[g.Owner=100]="Owner",exports.GroupVerificationType=void 0,(v=exports.GroupVerificationType||(exports.GroupVerificationType={}))[v.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",v[v.AllNeed=1]="AllNeed",v[v.AllNot=2]="AllNot",exports.Platform=void 0,(h=exports.Platform||(exports.Platform={}))[h.iOS=1]="iOS",h[h.Android=2]="Android",h[h.Windows=3]="Windows",h[h.MacOSX=4]="MacOSX",h[h.Web=5]="Web",h[h.Linux=7]="Linux",h[h.AndroidPad=8]="AndroidPad",h[h.iPad=9]="iPad",exports.LogLevel=void 0,(f=exports.LogLevel||(exports.LogLevel={}))[f.Debug=5]="Debug",f[f.Info=4]="Info",f[f.Warn=3]="Warn",f[f.Error=2]="Error",f[f.Fatal=1]="Fatal",f[f.Panic=0]="Panic",exports.ApplicationHandleResult=void 0,(m=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[m.Unprocessed=0]="Unprocessed",m[m.Agree=1]="Agree",m[m.Reject=-1]="Reject",exports.MessageType=void 0,(O=exports.MessageType||(exports.MessageType={}))[O.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",O[O.TextMessage=101]="TextMessage",O[O.PictureMessage=102]="PictureMessage",O[O.VoiceMessage=103]="VoiceMessage",O[O.VideoMessage=104]="VideoMessage",O[O.FileMessage=105]="FileMessage",O[O.AtTextMessage=106]="AtTextMessage",O[O.MergeMessage=107]="MergeMessage",O[O.CardMessage=108]="CardMessage",O[O.LocationMessage=109]="LocationMessage",O[O.CustomMessage=110]="CustomMessage",O[O.TypingMessage=113]="TypingMessage",O[O.QuoteMessage=114]="QuoteMessage",O[O.FaceMessage=115]="FaceMessage",O[O.FriendAdded=1201]="FriendAdded",O[O.OANotification=1400]="OANotification",O[O.GroupCreated=1501]="GroupCreated",O[O.MemberQuit=1504]="MemberQuit",O[O.GroupOwnerTransferred=1507]="GroupOwnerTransferred",O[O.MemberKicked=1508]="MemberKicked",O[O.MemberInvited=1509]="MemberInvited",O[O.MemberEnter=1510]="MemberEnter",O[O.GroupDismissed=1511]="GroupDismissed",O[O.GroupMemberMuted=1512]="GroupMemberMuted",O[O.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",O[O.GroupMuted=1514]="GroupMuted",O[O.GroupCancelMuted=1515]="GroupCancelMuted",O[O.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",O[O.GroupNameUpdated=1520]="GroupNameUpdated",O[O.BurnMessageChange=1701]="BurnMessageChange",O[O.RevokeMessage=2101]="RevokeMessage",exports.SessionType=void 0,(S=exports.SessionType||(exports.SessionType={}))[S.Single=1]="Single",S[S.Group=3]="Group",S[S.WorkingGroup=3]="WorkingGroup",S[S.Notification=4]="Notification",exports.GroupStatus=void 0,(E=exports.GroupStatus||(exports.GroupStatus={}))[E.Nomal=0]="Nomal",E[E.Baned=1]="Baned",E[E.Dismissed=2]="Dismissed",E[E.Muted=3]="Muted",exports.GroupAtType=void 0,(M=exports.GroupAtType||(exports.GroupAtType={}))[M.AtNormal=0]="AtNormal",M[M.AtMe=1]="AtMe",M[M.AtAll=2]="AtAll",M[M.AtAllAtMe=3]="AtAllAtMe",M[M.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(C=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[C.All=0]="All",C[C.Owner=1]="Owner",C[C.Admin=2]="Admin",C[C.Nomal=3]="Nomal",C[C.AdminAndNomal=4]="AdminAndNomal",C[C.AdminAndOwner=5]="AdminAndOwner",exports.Relationship=void 0,(x=exports.Relationship||(exports.Relationship={}))[x.isBlack=0]="isBlack",x[x.isFriend=1]="isFriend",exports.LoginStatus=void 0,(A=exports.LoginStatus||(exports.LoginStatus={}))[A.Logout=1]="Logout",A[A.Logging=2]="Logging",A[A.Logged=3]="Logged",exports.OnlineState=void 0,(G=exports.OnlineState||(exports.OnlineState={}))[G.Online=1]="Online",G[G.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(b=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[b.Readed=0]="Readed",b[b.UnRead=1]="UnRead",exports.GROUP_TYPE=void 0,(R=exports.GROUP_TYPE||(exports.GROUP_TYPE={}))[R.ONE_ON_ONE=0]="ONE_ON_ONE",R[R.GROUP_CHAT=1]="GROUP_CHAT",R[R.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",exports.MSG_TYPE=void 0,(T=exports.MSG_TYPE||(exports.MSG_TYPE={}))[T.TEXT=0]="TEXT",T[T.IMAGE=1]="IMAGE",T[T.FILE=2]="FILE",T[T.VIDEO=3]="VIDEO",T[T.LINK=4]="LINK",T[T.GIF=5]="GIF",exports.SSE_RESPONSE_TYPE=void 0,(P=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[P.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",P[P.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",P[P.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",P[P.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(y=exports.MessageSendStatus||(exports.MessageSendStatus={}))[y.Sending=1]="Sending",y[y.Succeed=2]="Succeed",y[y.Failed=3]="Failed";var k="undefined"!=typeof uni,_="undefined"!=typeof window,w=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.login=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:exports.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),L=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(o,r){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return s&&s.then?s.then(void 0,r):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},t.createMessage=function(e,t,o,r,s){var i;void 0===o&&(o={});var a=n({},o,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(a,t)},t.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.TEXT,exports.RequestApi.CreateTextMessage,t,"text",e))}catch(e){return Promise.reject(e)}},t.createImageMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(exports.MSG_TYPE.IMAGE,exports.RequestApi.CreateTextMessage,t,"snapshot",e))}catch(e){return Promise.reject(e)}},t.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,o=e.size,r=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:r},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),U=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:exports.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var t=e.prototype;return t.createGroup=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:exports.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),F=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.services={},this.sdk=e}var t=e.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(e){switch(e){case exports.ServiceName.USER:return new w(this.sdk);case exports.ServiceName.MESSAGE:return new L(this.sdk);case exports.ServiceName.CONVERSATION:return new U(this.sdk);case exports.ServiceName.GROUP:return new I(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}();function H(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var D=[exports.RequestApi.Logout,exports.CbEvents.OnKickedOffline,exports.CbEvents.OnUserTokenInvalid,exports.CbEvents.OnUserTokenExpired],j=/*#__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.sseClient=void 0,n.serviceManager=void 0,n.sendRequest=function(e){return n.internalState.lastActivity=Date.now(),n.config.debug&&n.logRequest(e),function(e){try{return Promise.resolve(k?new Promise(function(t,n){uni.request({url:e.url,method:e.method||"GET",header:e.headers,data:e.data,success:function(e){return t(e.data)},fail:function(e){return n(e)}})}):function(){if(_)return console.log("isBrowser ",_),console.log("options ",e),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.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:n.config.token?"Bearer "+n.config.token:""},data:e.data})},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===e.dt.length?n.emit(exports.CbEvents.OnReceiveMessage,e.dt[0]):n.emit(exports.CbEvents.OnReceiveMessages,e.dt);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:n.internalState.isConnected=!0,n.emit(exports.CbEvents.OnConnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:n.internalState.isConnected=!0,n.emit(exports.CbEvents.OnReconnected);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:t=e.ev,Object.values(exports.CbEvents).includes(t)?(n.emit(e.ev,e.dt),D.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 t},n.handleReconnectSuccess=function(){n.config.username&&(n.internalState.isConnected=!0,n.internalState.reconnectAttempts=0,n.config.debug&&console.log("SSE reconnection successful"),n.emit(exports.CbEvents.OnReconnected))},n.handleConnectionClosed=function(){n.internalState.isConnected=!1,n.config.debug&&console.log("SSE connection closed"),n.emit(exports.CbEvents.OnDisconnected)},n.login=function(e){try{return n.sseClient?Promise.resolve("login repeat"):(n.config.apiAddr=e.apiAddr,n.config.token=e.token,n.config.debug&&(console.log("login params",e),console.log("apiAddr",n.config.apiAddr)),Promise.resolve(n.user.login(e)).then(function(t){var o=t.code,r=t.data;if(0!=o)return Promise.resolve("Login failed, Server error, error code is "+o);var s=n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+r;return n.config.username=e.username,n.config.token=e.token,n.config.appKey=e.appKey,n.sseClient=new c({url:s,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,onConnectionClosed:n.handleConnectionClosed,token:e.token}),H(function(){return Promise.resolve(n.sseClient.connect()).then(function(e){return n.internalState.isLoggedIn=!0,e})},function(e){return n.internalState.isLoggedIn=!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,e})}catch(e){return Promise.reject(e)}},n.internalUploadFile=function(e){try{return Promise.resolve(H(function(){var t=new FormData;return t.append("file",e),t.append("filename",e.name),Promise.resolve(fetch(""+n.config.apiAddr+exports.RequestApi.UploadFile,{method:"POST",headers:{Authorization:n.config.token?"Bearer "+n.config.token:""},body:t})).then(function(e){if(!e.ok)throw new Error("Upload failed with status: "+e.status);return Promise.resolve(e.json()).then(function(e){var t;return{url:(null==(t=e.data)?void 0:t.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},n.uploadFile=function(e){var t=e.file;try{return Promise.resolve(n.internalUploadFile(t)).then(function(e){var t,n=e.url,o=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.createTextMessage=function(e){return n.message.createTextMessage(e)},n.createImageMessage=function(e){return n.message.createImageMessage(e)},n.getHistoryMessageList=function(e){return n.message.getHistoryMessageList(e)},n.getConversations=function(){return n.conversation.getConversations()},n.createGroup=function(e){return n.group.createGroup(e)},n.getGroupInfo=function(e){return n.group.getGroupInfo(e)},n.config.debug=t,n.serviceManager=new F(n),n}var n,s;s=e,(n=t).prototype=Object.create(s.prototype),n.prototype.constructor=n,o(n,s);var i,a,u=t.prototype;return u.configure=function(e){void 0!==e.debug&&(this.config.debug=e.debug),e.apiAddr&&(this.config.apiAddr=e.apiAddr),e.appKey&&(this.config.appKey=e.appKey)},u.setApiAddr=function(e){this.config.apiAddr=e},u.setAppKey=function(e){this.config.appKey=e},u.getService=function(e){return this.serviceManager.get(e)},u.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},u.isLoggedIn=function(){return this.internalState.isLoggedIn},u.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},u.onMessage=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessage,e),function(){return t.off(exports.CbEvents.OnReceiveMessage,e)}},u.onMessages=function(e){var t=this;return this.on(exports.CbEvents.OnReceiveMessages,e),function(){return t.off(exports.CbEvents.OnReceiveMessages,e)}},u.onConnectionChange=function(e){var t=this,n=function(){return e(!0)},o=function(){return e(!1)};return this.on(exports.CbEvents.OnConnected,n),this.on(exports.CbEvents.OnDisconnected,o),function(){t.off(exports.CbEvents.OnConnected,n),t.off(exports.CbEvents.OnDisconnected,o)}},u.onKickedOffline=function(e){var t=this;return this.on(exports.CbEvents.OnKickedOffline,e),function(){return t.off(exports.CbEvents.OnKickedOffline,e)}},i=t,(a=[{key:"message",get:function(){return this.getService(exports.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(exports.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(exports.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(exports.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}(i.prototype,a),Object.defineProperty(i,"prototype",{writable:!1}),i}(N);exports.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},exports.SIMSDK=j;
|
package/lib/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],t):t((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,t){function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var n in o)({}).hasOwnProperty.call(o,n)&&(e[n]=o[n])}return e},o.apply(null,arguments)}function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}function r(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}var i,s,a=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,this.reconnectTimer=null,this.handlers=new Map,this.connected=!1,this.onMessageCallback=void 0,this.onReconnectSuccessCallback=void 0,this.url=e.url,this.token=e.token,this.reconnectTimeout=e.retryInterval||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess}var o=e.prototype;return o.removeAllEventListeners=function(){var e=this;this.eventSource&&(this.eventSource.removeEventListener("open",this.onOpen),this.handlers.forEach(function(t,o){var n;null==(n=e.eventSource)||n.removeEventListener(o,t)}),this.eventSource.removeEventListener("error",this.onError))},o.subscribe=function(e,t){this.handlers.set(e,t),this.connect()},o.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(o,n){try{e.eventSource=new t.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e.eventSource.addEventListener("open",function(t){e.onOpen(t),o("SSE connect successful!")}),e.eventSource.addEventListener("message",function(t){e.handleMessage(t.data)}),e.handlers.forEach(function(t,o){var n;null==(n=e.eventSource)||n.addEventListener(o,e.onMessage(t))}),e.eventSource.addEventListener("error",function(t){e.onError(t),e.connected||n("SSE connect error.")})}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),n(t)}})},o.onOpen=function(e){console.log("SSE connection established"),this.connected=!0,this.reconnectAttempts>0&&this.onReconnectSuccessCallback&&this.onReconnectSuccessCallback(),this.reconnectAttempts=0,this.reconnectTimeout=5e3},o.handleMessage=function(e){try{console.log("SSE handleMessage ",e);var t=JSON.parse(e);this.onMessageCallback&&this.onMessageCallback(t)}catch(e){console.error("数据解析错误:",e)}},o.onMessage=function(e){return function(t){try{var o=JSON.parse(t.data);console.log("Received SSE message:",o),"function"==typeof e&&e(o)}catch(e){console.error("Failed to parse SSE message:",e)}}},o.onError=function(e){console.error("SSE connection error:",e),this.connected=!1,401===e.status||e.statusText&&e.statusText.includes("Unauthorized")?this.cleanup():this.handleReconnect()},o.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()},this.reconnectTimeout)}},o.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},o.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},o.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts},o.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},o.isConnected=function(){return this.connected},e}();e.ErrorCode=void 0,(i=e.ErrorCode||(e.ErrorCode={}))[i.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",i[i.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",i[i.UnknownError=10005]="UnknownError",i[i.LoginRepeatError=10102]="LoginRepeatError",e.RequestApi=void 0,(s=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",s.Logout="Logout",s.CreateGroup="CreateGroup",s.GetGroupInfo="/chat/group/info",s.GetAllConversationList="/chat/group/list",s.CreateTextMessage="/chat/message/push",s.GetHistoryMessageList="/chat/message/pull";var c,u,d,l,p,v,g,h,m,f,S,M,E,A,T,y,G,R,b,P,O,C=/*#__PURE__*/function(){function t(e){this.simSDK=void 0,this.simSDK=e}var o=t.prototype;return o.createGroup=function(t){try{return Promise.resolve(this.simSDK.sendRequest({data:t,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},o.getGroupInfo=function(t){try{return Promise.resolve(this.simSDK.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t}();e.MessageReceiveOptType=void 0,(c=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[c.Nomal=0]="Nomal",c[c.NotReceive=1]="NotReceive",c[c.NotNotify=2]="NotNotify",e.AllowType=void 0,(u=e.AllowType||(e.AllowType={}))[u.Allowed=0]="Allowed",u[u.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(d=e.GroupType||(e.GroupType={}))[d.Group=2]="Group",d[d.WorkingGroup=2]="WorkingGroup",e.GroupJoinSource=void 0,(l=e.GroupJoinSource||(e.GroupJoinSource={}))[l.Invitation=2]="Invitation",l[l.Search=3]="Search",l[l.QrCode=4]="QrCode",e.GroupMemberRole=void 0,(p=e.GroupMemberRole||(e.GroupMemberRole={}))[p.Nomal=20]="Nomal",p[p.Admin=60]="Admin",p[p.Owner=100]="Owner",e.GroupVerificationType=void 0,(v=e.GroupVerificationType||(e.GroupVerificationType={}))[v.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",v[v.AllNeed=1]="AllNeed",v[v.AllNot=2]="AllNot",e.Platform=void 0,(g=e.Platform||(e.Platform={}))[g.iOS=1]="iOS",g[g.Android=2]="Android",g[g.Windows=3]="Windows",g[g.MacOSX=4]="MacOSX",g[g.Web=5]="Web",g[g.Linux=7]="Linux",g[g.AndroidPad=8]="AndroidPad",g[g.iPad=9]="iPad",e.LogLevel=void 0,(h=e.LogLevel||(e.LogLevel={}))[h.Debug=5]="Debug",h[h.Info=4]="Info",h[h.Warn=3]="Warn",h[h.Error=2]="Error",h[h.Fatal=1]="Fatal",h[h.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(m=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[m.Unprocessed=0]="Unprocessed",m[m.Agree=1]="Agree",m[m.Reject=-1]="Reject",e.MessageType=void 0,(f=e.MessageType||(e.MessageType={}))[f.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",f[f.TextMessage=101]="TextMessage",f[f.PictureMessage=102]="PictureMessage",f[f.VoiceMessage=103]="VoiceMessage",f[f.VideoMessage=104]="VideoMessage",f[f.FileMessage=105]="FileMessage",f[f.AtTextMessage=106]="AtTextMessage",f[f.MergeMessage=107]="MergeMessage",f[f.CardMessage=108]="CardMessage",f[f.LocationMessage=109]="LocationMessage",f[f.CustomMessage=110]="CustomMessage",f[f.TypingMessage=113]="TypingMessage",f[f.QuoteMessage=114]="QuoteMessage",f[f.FaceMessage=115]="FaceMessage",f[f.FriendAdded=1201]="FriendAdded",f[f.OANotification=1400]="OANotification",f[f.GroupCreated=1501]="GroupCreated",f[f.MemberQuit=1504]="MemberQuit",f[f.GroupOwnerTransferred=1507]="GroupOwnerTransferred",f[f.MemberKicked=1508]="MemberKicked",f[f.MemberInvited=1509]="MemberInvited",f[f.MemberEnter=1510]="MemberEnter",f[f.GroupDismissed=1511]="GroupDismissed",f[f.GroupMemberMuted=1512]="GroupMemberMuted",f[f.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",f[f.GroupMuted=1514]="GroupMuted",f[f.GroupCancelMuted=1515]="GroupCancelMuted",f[f.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",f[f.GroupNameUpdated=1520]="GroupNameUpdated",f[f.BurnMessageChange=1701]="BurnMessageChange",f[f.RevokeMessage=2101]="RevokeMessage",e.SessionType=void 0,(S=e.SessionType||(e.SessionType={}))[S.Single=1]="Single",S[S.Group=3]="Group",S[S.WorkingGroup=3]="WorkingGroup",S[S.Notification=4]="Notification",e.GroupStatus=void 0,(M=e.GroupStatus||(e.GroupStatus={}))[M.Nomal=0]="Nomal",M[M.Baned=1]="Baned",M[M.Dismissed=2]="Dismissed",M[M.Muted=3]="Muted",e.GroupAtType=void 0,(E=e.GroupAtType||(e.GroupAtType={}))[E.AtNormal=0]="AtNormal",E[E.AtMe=1]="AtMe",E[E.AtAll=2]="AtAll",E[E.AtAllAtMe=3]="AtAllAtMe",E[E.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(A=e.GroupMemberFilter||(e.GroupMemberFilter={}))[A.All=0]="All",A[A.Owner=1]="Owner",A[A.Admin=2]="Admin",A[A.Nomal=3]="Nomal",A[A.AdminAndNomal=4]="AdminAndNomal",A[A.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(T=e.Relationship||(e.Relationship={}))[T.isBlack=0]="isBlack",T[T.isFriend=1]="isFriend",e.LoginStatus=void 0,(y=e.LoginStatus||(e.LoginStatus={}))[y.Logout=1]="Logout",y[y.Logging=2]="Logging",y[y.Logged=3]="Logged",e.OnlineState=void 0,(G=e.OnlineState||(e.OnlineState={}))[G.Online=1]="Online",G[G.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(R=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[R.Readed=0]="Readed",R[R.UnRead=1]="UnRead",e.MSG_TYPE=void 0,(b=e.MSG_TYPE||(e.MSG_TYPE={}))[b.TEXT=0]="TEXT",b[b.IMAGE=1]="IMAGE",b[b.FILE=2]="FILE",b[b.VIDEO=3]="VIDEO",b[b.LINK=4]="LINK",b[b.GIF=5]="GIF",e.SSE_RESPONSE_TYPE=void 0,(P=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[P.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",P[P.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",P[P.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",P[P.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(O=e.MessageSendStatus||(e.MessageSendStatus={}))[O.Sending=1]="Sending",O[O.Succeed=2]="Succeed",O[O.Failed=3]="Failed";var N,L=/*#__PURE__*/function(){function t(e){this.simSDK=void 0,this.simSDK=e}var n=t.prototype;return n.sendMessage=function(e,t){try{var o=this;return Promise.resolve(function(n,r){try{var i=Promise.resolve(o.simSDK.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,t,n,r,i){var s;void 0===n&&(n={});var a=o({},n,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(a,t)},n.createTextMessage=function(t,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,o,"text",t))}catch(e){return Promise.reject(e)}},n.createImageMessage=function(t,o){void 0===o&&(o={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,o,"snapshot",t))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(t){var o=t.groupId,n=t.lastId,r=t.size,i=void 0===r?20:r;try{return Promise.resolve(this.simSDK.sendRequest({data:{groupId:o,lastId:n,size:i},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t}();e.CbEvents=void 0,(N=e.CbEvents||(e.CbEvents={})).onReceiveMessage="onReceiveMessage",N.onReceiveMessages="onReceiveMessages",N.OnKickedOffline="OnKickedOffline",N.OnUserTokenInvalid="OnUserTokenInvalid",N.OnUserTokenExpired="OnUserTokenExpired";var k="undefined"!=typeof uni,F="undefined"!=typeof window,I=/*#__PURE__*/function(t){function o(o){var n;return void 0===o&&(o=!0),(n=t.call(this)||this).username=void 0,n.token=void 0,n.appKey=void 0,n.apiAddr=void 0,n.sseClient=void 0,n.debug=void 0,n.messageService=void 0,n.groupService=void 0,n.sendRequest=function(e){return n.log("%cSDK =>%c [sendRequest] url:"+e.url+" [method]: "+e.method+" args "+JSON.stringify(e.data),"font-size:14px; background:#7CAEFF; border-radius:4px; padding-inline:4px;",""),function(e){try{return Promise.resolve(k?new Promise(function(t,o){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 o(e)}})}):function(){if(F)return console.log("isBrowser ",F),console.log("options ",e),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.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:"Bearer "+n.token},data:e.data})},n.createRequestFunction=function(e,t){return function(o){return n.sendRequest({data:o,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,username:n.username,url:e})}},n.handleMessage=function(e){console.log("handleMessage response",e)},n.handleReconnectSuccess=function(){},n.login=function(t){try{return n.sseClient?Promise.resolve("login repeat"):(console.log("login params ",t),n.apiAddr=t.apiAddr,n.token=t.token,console.log("this.apiAddr ",n.apiAddr),Promise.resolve(n.sendRequest({data:t,url:e.RequestApi.Login,method:"POST"})).then(function(e){var o=e.code,r=e.data;if(0!=o)return console.log("code ",o),Promise.resolve("Login failed, Server error, error code is "+o);var i=n.apiAddr+"/chat/sse/conn?username="+t.username+"&token="+t.token+"&appKey="+t.appKey+"&random="+r;n.username=t.username,n.token=t.token,n.appKey=t.appKey,n.sseClient=new a({url:i,onMessage:n.handleMessage,onReconnectSuccess:n.handleReconnectSuccess,token:t.token});try{return n.sseClient.connect()}catch(e){return Promise.reject(e.message)}}))}catch(e){return Promise.reject(e)}},n.logout=n.createRequestFunctionWithoutParams(e.RequestApi.Logout,"DELETE"),n.internalUploadFile=function(e){try{try{return Promise.resolve({})}catch(e){return console.error("Upload failed:",e),Promise.resolve({error:e})}}catch(e){return Promise.reject(e)}},n.uploadFile=function(t){var o=t.file;try{return Promise.resolve(n.internalUploadFile(o)).then(function(t){var o,n=t.url,r=t.error;return{data:{url:void 0===n?"":n},msg:null!=(o=null==r?void 0:r.message)?o:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.getSelfUserInfo=void 0,n.setSelfInfo=void 0,n.getUsersInfoWithCache=void 0,n.subscribeUsersStatus=void 0,n.unsubscribeUsersStatus=void 0,n.getSubscribeUsersStatus=void 0,n.setAppBackgroundStatus=void 0,n.networkStatusChanged=void 0,n.setGlobalRecvMessageOpt=void 0,n.acceptFriendApplication=void 0,n.addBlack=void 0,n.addFriend=void 0,n.checkFriend=void 0,n.deleteFriend=void 0,n.getBlackList=void 0,n.getFriendApplicationListAsApplicant=void 0,n.getFriendApplicationListAsRecipient=void 0,n.getFriendList=void 0,n.getFriendListPage=void 0,n.getSpecifiedFriendsInfo=void 0,n.refuseFriendApplication=void 0,n.removeBlack=void 0,n.searchFriends=void 0,n.setFriendRemark=void 0,n.getAllConversationList=void 0,n.getConversationListSplit=void 0,n.getOneConversation=void 0,n.getMultipleConversation=void 0,n.getConversationIDBySessionType=void 0,n.getTotalUnreadMsgCount=void 0,n.markConversationMessageAsRead=void 0,n.setConversationDraft=void 0,n.pinConversation=void 0,n.setConversationRecvMessageOpt=void 0,n.setConversationPrivateChat=void 0,n.setConversationBurnDuration=void 0,n.resetConversationGroupAtType=void 0,n.hideConversation=void 0,n.hideAllConversation=void 0,n.clearConversationAndDeleteAllMsg=void 0,n.deleteConversationAndDeleteAllMsg=void 0,n.debug=o,Object.assign(n,{}),Object.assign(n,{}),Object.assign(n,{getAllConversationList:n.createRequestFunctionWithoutParams(e.RequestApi.GetAllConversationList,"GET")}),n.messageService=new L(n),n.groupService=new C(n),n}var i,s,c,u;return s=t,(i=o).prototype=Object.create(s.prototype),i.prototype.constructor=i,n(i,s),o.prototype.log=function(){var e;this.debug&&(e=console).info.apply(e,[].slice.call(arguments))},c=o,(u=[{key:"createGroup",get:function(){var e=this;return function(t){return e.groupService.createGroup(t)}}},{key:"getGroupInfo",get:function(){var e=this;return function(t){return e.groupService.getGroupInfo(t)}}},{key:"createTextMessage",get:function(){return this.messageService.createTextMessage.bind(this.messageService)}},{key:"getHistoryMessageList",get:function(){var e=this;return console.log("sdk getHistoryMessageList"),function(t){return e.messageService.getHistoryMessageList(t)}}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,r(n.key),n)}}(c.prototype,u),Object.defineProperty(c,"prototype",{writable:!1}),c}(/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.onReceiveMessage]=[],t[e.CbEvents.onReceiveMessages]=[],t)}var o=t.prototype;return o.emit=function(e,t){var o=this.events[e];return o&&o.forEach(function(e){return e(t)}),this},o.on=function(e,t){var o;return this.events[e]||(this.events[e]=[]),null==(o=this.events[e])||o.push(t),this},o.off=function(e,t){var o=this.events[e];if(o){var n=o.indexOf(t);n>-1&&(o.splice(n,1),0===o.length&&delete this.events[e])}return this},t}());e.GROUP_TYPE={ONE_ON_ONE:0,GROUP_CHAT:1,CUSTOMER_SERVICE:2},e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=I});
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],n):n((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,n){function t(){return t=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},t.apply(null,arguments)}function o(e,n){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},o(e,n)}function r(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;e.ServiceName=void 0,(i=e.ServiceName||(e.ServiceName={})).MESSAGE="message",i.CONVERSATION="conversation",i.GROUP="group",i.USER="user";var s,a,c,u=/*#__PURE__*/function(){function e(e){this.url=void 0,this.token=void 0,this.eventSource=null,this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectTimeout=5e3,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||5e3,this.maxReconnectAttempts=e.maxRetries||5,this.onMessageCallback=e.onMessage,this.onReconnectSuccessCallback=e.onReconnectSuccess,this.onConnectionClosedCallback=e.onConnectionClosed}var t=e.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 e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(t,o){try{e.eventSource=new n.EventSourcePolyfill(e.url,{heartbeatTimeout:36e5,withCredentials:!1,headers:{Authorization:"Bearer "+e.token}}),e._openHandler=function(n){console.log("SSE connection established"),e.connected=!0,e.reconnectAttempts>0&&e.onReconnectSuccessCallback&&e.onReconnectSuccessCallback(),e.reconnectAttempts=0,e.reconnectTimeout=5e3,t("SSE connect successful!")},e._errorHandler=function(n){console.error("SSE connection error:",n),e.connected=!1,401===n.status||n.statusText&&n.statusText.includes("Unauthorized")?(e.cleanup(),e.notifyConnectionClosed(!0)):e.handleReconnect(),e.connected||o(new Error("SSE connect error"))},e._messageHandler=function(n){try{console.log("SSE received message:",n.data);var t=JSON.parse(n.data);e.onMessageCallback&&e.onMessageCallback(t)}catch(e){console.error("Error parsing message:",e)}},e.eventSource.addEventListener("open",e._openHandler),e.eventSource.addEventListener("error",e._errorHandler),e.eventSource.addEventListener("message",e._messageHandler),e.handlers.forEach(function(n,t){var o=e._customHandlers.get(t);o&&e.eventSource&&e.eventSource.addEventListener(t,o)});var r=setTimeout(function(){e.connected||(o(new Error("Connection timeout")),e.handleReconnect())},1e4),i=e._openHandler;e._openHandler=function(e){clearTimeout(r),i(e)}}catch(n){console.error("Failed to create EventSource:",n),e.handleReconnect(),o(n)}})},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},e}();e.ErrorCode=void 0,(s=e.ErrorCode||(e.ErrorCode={}))[s.ConnectionEstablishmentFailed=1e4]="ConnectionEstablishmentFailed",s[s.ResourceLoadNotCompleteError=10004]="ResourceLoadNotCompleteError",s[s.UnknownError=10005]="UnknownError",s[s.LoginRepeatError=10102]="LoginRepeatError",e.RequestApi=void 0,(a=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",a.Logout="/chat/member/logout",a.CreateGroup="CreateGroup",a.GetGroupInfo="/chat/group/info",a.GetAllConversationList="/chat/group/list",a.CreateTextMessage="/chat/message/push",a.GetHistoryMessageList="/chat/message/pull",a.UploadFile="/chat/member/upload",e.CbEvents=void 0,(c=e.CbEvents||(e.CbEvents={})).OnConnected="OnConnected",c.OnDisconnected="OnDisconnected",c.OnReconnecting="OnReconnecting",c.OnReconnected="OnReconnected",c.OnReconnectFailed="OnReconnectFailed",c.OnNetworkChange="OnNetworkChange",c.OnReceiveMessage="OnReceiveMessage",c.OnReceiveMessages="OnReceiveMessages",c.OnMessageSent="OnMessageSent",c.OnMessageFailed="OnMessageFailed",c.OnMessageRevoked="OnMessageRevoked",c.OnMessageDeleted="OnMessageDeleted",c.OnMessageRead="OnMessageRead",c.OnTypingStatusUpdate="OnTypingStatusUpdate",c.OnUserStatusChange="OnUserStatusChange",c.OnKickedOffline="OnKickedOffline",c.OnUserTokenInvalid="OnUserTokenInvalid",c.OnUserTokenExpired="OnUserTokenExpired",c.OnForceOffline="OnForceOffline",c.OnUserInfoUpdated="OnUserInfoUpdated",c.OnGroupCreated="OnGroupCreated",c.OnGroupInfoUpdated="OnGroupInfoUpdated",c.OnGroupDissolved="OnGroupDissolved",c.OnJoinGroup="OnJoinGroup",c.OnLeaveGroup="OnLeaveGroup",c.OnGroupMemberJoined="OnGroupMemberJoined",c.OnGroupMemberLeft="OnGroupMemberLeft",c.OnGroupMemberKicked="OnGroupMemberKicked",c.OnGroupOwnerChanged="OnGroupOwnerChanged",c.OnGroupAdminAdded="OnGroupAdminAdded",c.OnGroupAdminRemoved="OnGroupAdminRemoved",c.OnGroupMemberMuted="OnGroupMemberMuted",c.OnGroupMemberUnmuted="OnGroupMemberUnmuted",c.OnGroupAllMemberMuted="OnGroupAllMemberMuted",c.OnGroupAllMemberUnmuted="OnGroupAllMemberUnmuted",c.OnConversationCreated="OnConversationCreated",c.OnConversationDeleted="OnConversationDeleted",c.OnConversationUpdated="OnConversationUpdated",c.OnUnreadCountChanged="OnUnreadCountChanged",c.OnConversationPinned="OnConversationPinned",c.OnConversationUnpinned="OnConversationUnpinned",c.OnConversationMuted="OnConversationMuted",c.OnConversationUnmuted="OnConversationUnmuted",c.OnPongConn="OnPongConn",c.OnPongReConn="OnPongReConn",c.OnPongIdle="OnPongIdle",c.OnError="OnError",c.OnWarning="OnWarning",c.OnLog="OnLog";var d,l,g,p,v,f,h,m,O,S,E,M,C,A,G,b,R,T,y,P,N,k,_=/*#__PURE__*/function(){function n(){var n;this.events=((n={})[e.CbEvents.OnReceiveMessage]=[],n[e.CbEvents.OnReceiveMessages]=[],n)}var t=n.prototype;return t.emit=function(e,n){var t=this.events[e];return t&&t.forEach(function(e){return e(n)}),this},t.on=function(e,n){var t;return this.events[e]||(this.events[e]=[]),null==(t=this.events[e])||t.push(n),this},t.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},n}();e.MessageReceiveOptType=void 0,(d=e.MessageReceiveOptType||(e.MessageReceiveOptType={}))[d.Nomal=0]="Nomal",d[d.NotReceive=1]="NotReceive",d[d.NotNotify=2]="NotNotify",e.AllowType=void 0,(l=e.AllowType||(e.AllowType={}))[l.Allowed=0]="Allowed",l[l.NotAllowed=1]="NotAllowed",e.GroupType=void 0,(g=e.GroupType||(e.GroupType={}))[g.Group=2]="Group",g[g.WorkingGroup=2]="WorkingGroup",e.GroupJoinSource=void 0,(p=e.GroupJoinSource||(e.GroupJoinSource={}))[p.Invitation=2]="Invitation",p[p.Search=3]="Search",p[p.QrCode=4]="QrCode",e.GroupMemberRole=void 0,(v=e.GroupMemberRole||(e.GroupMemberRole={}))[v.Nomal=20]="Nomal",v[v.Admin=60]="Admin",v[v.Owner=100]="Owner",e.GroupVerificationType=void 0,(f=e.GroupVerificationType||(e.GroupVerificationType={}))[f.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",f[f.AllNeed=1]="AllNeed",f[f.AllNot=2]="AllNot",e.Platform=void 0,(h=e.Platform||(e.Platform={}))[h.iOS=1]="iOS",h[h.Android=2]="Android",h[h.Windows=3]="Windows",h[h.MacOSX=4]="MacOSX",h[h.Web=5]="Web",h[h.Linux=7]="Linux",h[h.AndroidPad=8]="AndroidPad",h[h.iPad=9]="iPad",e.LogLevel=void 0,(m=e.LogLevel||(e.LogLevel={}))[m.Debug=5]="Debug",m[m.Info=4]="Info",m[m.Warn=3]="Warn",m[m.Error=2]="Error",m[m.Fatal=1]="Fatal",m[m.Panic=0]="Panic",e.ApplicationHandleResult=void 0,(O=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[O.Unprocessed=0]="Unprocessed",O[O.Agree=1]="Agree",O[O.Reject=-1]="Reject",e.MessageType=void 0,(S=e.MessageType||(e.MessageType={}))[S.MESSAGE_TYPE_TEXT=0]="MESSAGE_TYPE_TEXT",S[S.TextMessage=101]="TextMessage",S[S.PictureMessage=102]="PictureMessage",S[S.VoiceMessage=103]="VoiceMessage",S[S.VideoMessage=104]="VideoMessage",S[S.FileMessage=105]="FileMessage",S[S.AtTextMessage=106]="AtTextMessage",S[S.MergeMessage=107]="MergeMessage",S[S.CardMessage=108]="CardMessage",S[S.LocationMessage=109]="LocationMessage",S[S.CustomMessage=110]="CustomMessage",S[S.TypingMessage=113]="TypingMessage",S[S.QuoteMessage=114]="QuoteMessage",S[S.FaceMessage=115]="FaceMessage",S[S.FriendAdded=1201]="FriendAdded",S[S.OANotification=1400]="OANotification",S[S.GroupCreated=1501]="GroupCreated",S[S.MemberQuit=1504]="MemberQuit",S[S.GroupOwnerTransferred=1507]="GroupOwnerTransferred",S[S.MemberKicked=1508]="MemberKicked",S[S.MemberInvited=1509]="MemberInvited",S[S.MemberEnter=1510]="MemberEnter",S[S.GroupDismissed=1511]="GroupDismissed",S[S.GroupMemberMuted=1512]="GroupMemberMuted",S[S.GroupMemberCancelMuted=1513]="GroupMemberCancelMuted",S[S.GroupMuted=1514]="GroupMuted",S[S.GroupCancelMuted=1515]="GroupCancelMuted",S[S.GroupAnnouncementUpdated=1519]="GroupAnnouncementUpdated",S[S.GroupNameUpdated=1520]="GroupNameUpdated",S[S.BurnMessageChange=1701]="BurnMessageChange",S[S.RevokeMessage=2101]="RevokeMessage",e.SessionType=void 0,(E=e.SessionType||(e.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",e.GroupStatus=void 0,(M=e.GroupStatus||(e.GroupStatus={}))[M.Nomal=0]="Nomal",M[M.Baned=1]="Baned",M[M.Dismissed=2]="Dismissed",M[M.Muted=3]="Muted",e.GroupAtType=void 0,(C=e.GroupAtType||(e.GroupAtType={}))[C.AtNormal=0]="AtNormal",C[C.AtMe=1]="AtMe",C[C.AtAll=2]="AtAll",C[C.AtAllAtMe=3]="AtAllAtMe",C[C.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(A=e.GroupMemberFilter||(e.GroupMemberFilter={}))[A.All=0]="All",A[A.Owner=1]="Owner",A[A.Admin=2]="Admin",A[A.Nomal=3]="Nomal",A[A.AdminAndNomal=4]="AdminAndNomal",A[A.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(G=e.Relationship||(e.Relationship={}))[G.isBlack=0]="isBlack",G[G.isFriend=1]="isFriend",e.LoginStatus=void 0,(b=e.LoginStatus||(e.LoginStatus={}))[b.Logout=1]="Logout",b[b.Logging=2]="Logging",b[b.Logged=3]="Logged",e.OnlineState=void 0,(R=e.OnlineState||(e.OnlineState={}))[R.Online=1]="Online",R[R.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(T=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[T.Readed=0]="Readed",T[T.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(y=e.GROUP_TYPE||(e.GROUP_TYPE={}))[y.ONE_ON_ONE=0]="ONE_ON_ONE",y[y.GROUP_CHAT=1]="GROUP_CHAT",y[y.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",e.MSG_TYPE=void 0,(P=e.MSG_TYPE||(e.MSG_TYPE={}))[P.TEXT=0]="TEXT",P[P.IMAGE=1]="IMAGE",P[P.FILE=2]="FILE",P[P.VIDEO=3]="VIDEO",P[P.LINK=4]="LINK",P[P.GIF=5]="GIF",e.SSE_RESPONSE_TYPE=void 0,(N=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[N.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",N[N.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",N[N.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",N[N.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(k=e.MessageSendStatus||(e.MessageSendStatus={}))[k.Sending=1]="Sending",k[k.Succeed=2]="Succeed",k[k.Failed=3]="Failed";var w="undefined"!=typeof uni,L="undefined"!=typeof window,U=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var t=n.prototype;return t.login=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:n,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},n}(),I=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var o=n.prototype;return o.sendMessage=function(e,n){try{var t=this;return Promise.resolve(function(o,r){try{var i=Promise.resolve(t.sdk.sendRequest({data:e,url:n,method:"POST"}))}catch(e){return r(e)}return i&&i.then?i.then(void 0,r):i}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},o.createMessage=function(e,n,o,r,i){var s;void 0===o&&(o={});var a=t({},o,((s={msgType:e})[r]=i,s.status=0,s));return this.sendMessage(a,n)},o.createTextMessage=function(n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,t,"text",n))}catch(e){return Promise.reject(e)}},o.createImageMessage=function(n,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,t,"snapshot",n))}catch(e){return Promise.reject(e)}},o.getHistoryMessageList=function(n){var t=n.groupId,o=n.lastId,r=n.size,i=void 0===r?20:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:o,size:i},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},n}(),F=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}return n.prototype.getConversations=function(){try{return Promise.resolve(this.sdk.sendRequest({data:void 0,url:e.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},n}(),x=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.sdk=e}var t=n.prototype;return t.createGroup=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:n,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(n){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},n}(),H=/*#__PURE__*/function(){function n(e){this.sdk=void 0,this.services={},this.sdk=e}var t=n.prototype;return t.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},t.createService=function(n){switch(n){case e.ServiceName.USER:return new U(this.sdk);case e.ServiceName.MESSAGE:return new I(this.sdk);case e.ServiceName.CONVERSATION:return new F(this.sdk);case e.ServiceName.GROUP:return new x(this.sdk);default:throw new Error("Unknown service: "+n)}},t.reset=function(){this.services={}},n}();function j(e,n){try{var t=e()}catch(e){return n(e)}return t&&t.then?t.then(void 0,n):t}var D=[e.RequestApi.Logout,e.CbEvents.OnKickedOffline,e.CbEvents.OnUserTokenInvalid,e.CbEvents.OnUserTokenExpired],q=/*#__PURE__*/function(n){function t(t){var o;return void 0===t&&(t=!1),(o=n.call(this)||this).config={debug:!1},o.internalState={isConnected:!1,isLoggedIn:!1,reconnectAttempts:0,lastActivity:Date.now()},o.sseClient=void 0,o.serviceManager=void 0,o.sendRequest=function(e){return o.internalState.lastActivity=Date.now(),o.config.debug&&o.logRequest(e),function(e){try{return Promise.resolve(w?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(L)return console.log("isBrowser ",L),console.log("options ",e),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:o.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:o.config.token?"Bearer "+o.config.token:""},data:e.data})},o.createRequestFunction=function(e,n){return function(t){return o.sendRequest({data:t,url:e,method:n})}},o.createRequestFunctionWithoutParams=function(e,n){return function(){return o.sendRequest({data:void 0,method:n,url:e})}},o.handleMessage=function(n){switch(o.config.debug&&console.log("handleMessage response",n),n.ev){case e.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===n.dt.length?o.emit(e.CbEvents.OnReceiveMessage,n.dt[0]):o.emit(e.CbEvents.OnReceiveMessages,n.dt);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:o.internalState.isConnected=!0,o.emit(e.CbEvents.OnConnected);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:o.internalState.isConnected=!0,o.emit(e.CbEvents.OnReconnected);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:t=n.ev,Object.values(e.CbEvents).includes(t)?(o.emit(n.ev,n.dt),D.includes(n.ev)&&(o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.sseClient&&(o.sseClient.close(),o.sseClient=void 0))):o.config.debug&&console.warn("Unknown SSE event type:",n.ev)}var t},o.handleReconnectSuccess=function(){o.config.username&&(o.internalState.isConnected=!0,o.internalState.reconnectAttempts=0,o.config.debug&&console.log("SSE reconnection successful"),o.emit(e.CbEvents.OnReconnected))},o.handleConnectionClosed=function(){o.internalState.isConnected=!1,o.config.debug&&console.log("SSE connection closed"),o.emit(e.CbEvents.OnDisconnected)},o.login=function(e){try{return o.sseClient?Promise.resolve("login repeat"):(o.config.apiAddr=e.apiAddr,o.config.token=e.token,o.config.debug&&(console.log("login params",e),console.log("apiAddr",o.config.apiAddr)),Promise.resolve(o.user.login(e)).then(function(n){var t=n.code,r=n.data;if(0!=t)return Promise.resolve("Login failed, Server error, error code is "+t);var i=o.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+r;return o.config.username=e.username,o.config.token=e.token,o.config.appKey=e.appKey,o.sseClient=new u({url:i,onMessage:o.handleMessage,onReconnectSuccess:o.handleReconnectSuccess,onConnectionClosed:o.handleConnectionClosed,token:e.token}),j(function(){return Promise.resolve(o.sseClient.connect()).then(function(e){return o.internalState.isLoggedIn=!0,e})},function(e){return o.internalState.isLoggedIn=!1,Promise.reject(e.message)})}))}catch(e){return Promise.reject(e)}},o.logout=function(){try{return o.sseClient&&(o.sseClient.close(),o.sseClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.internalState.isLoggedIn=!1,o.internalState.isConnected=!1,o.config.username=void 0,o.config.token=void 0,e})}catch(e){return Promise.reject(e)}},o.internalUploadFile=function(n){try{return Promise.resolve(j(function(){var t=new FormData;return t.append("file",n),t.append("filename",n.name),Promise.resolve(fetch(""+o.config.apiAddr+e.RequestApi.UploadFile,{method:"POST",headers:{Authorization:o.config.token?"Bearer "+o.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 n;return{url:(null==(n=e.data)?void 0:n.url)||""}})})},function(e){return console.error("Upload failed:",e),{error:e}}))}catch(e){return Promise.reject(e)}},o.uploadFile=function(n){var t=n.file;try{return Promise.resolve(o.internalUploadFile(t)).then(function(n){var t,o=n.url,r=n.error;return{data:{url:void 0===o?"":o},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.createTextMessage=function(e){return o.message.createTextMessage(e)},o.createImageMessage=function(e){return o.message.createImageMessage(e)},o.getHistoryMessageList=function(e){return o.message.getHistoryMessageList(e)},o.getConversations=function(){return o.conversation.getConversations()},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.config.debug=t,o.serviceManager=new H(o),o}var i,s;s=n,(i=t).prototype=Object.create(s.prototype),i.prototype.constructor=i,o(i,s);var a,c,d=t.prototype;return d.configure=function(e){void 0!==e.debug&&(this.config.debug=e.debug),e.apiAddr&&(this.config.apiAddr=e.apiAddr),e.appKey&&(this.config.appKey=e.appKey)},d.setApiAddr=function(e){this.config.apiAddr=e},d.setAppKey=function(e){this.config.appKey=e},d.getService=function(e){return this.serviceManager.get(e)},d.isConnected=function(){return!!this.sseClient&&this.internalState.isConnected},d.isLoggedIn=function(){return this.internalState.isLoggedIn},d.logRequest=function(e){console.log("%c"+(new Date).toISOString().substring(11,19)+"%c SDK %c"+e.method+"%c "+e.url+"%c"+(e.data?"\n📦 Payload:":""),"color: #888; font-size: 11px;","background: #7CAEFF; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","background: #4CAF50; color: white; font-weight: bold; font-size: 12px; border-radius: 4px; padding: 2px 6px; margin-right: 6px;","color: #0066cc; font-weight: bold;","color: #888;"),e.data&&Object.keys(e.data).length>0&&console.log("%c%s","color: #555; background: #f5f5f5; padding: 4px; border-radius: 4px; font-family: monospace;",JSON.stringify(e.data,null,2))},d.onMessage=function(n){var t=this;return this.on(e.CbEvents.OnReceiveMessage,n),function(){return t.off(e.CbEvents.OnReceiveMessage,n)}},d.onMessages=function(n){var t=this;return this.on(e.CbEvents.OnReceiveMessages,n),function(){return t.off(e.CbEvents.OnReceiveMessages,n)}},d.onConnectionChange=function(n){var t=this,o=function(){return n(!0)},r=function(){return n(!1)};return this.on(e.CbEvents.OnConnected,o),this.on(e.CbEvents.OnDisconnected,r),function(){t.off(e.CbEvents.OnConnected,o),t.off(e.CbEvents.OnDisconnected,r)}},d.onKickedOffline=function(n){var t=this;return this.on(e.CbEvents.OnKickedOffline,n),function(){return t.off(e.CbEvents.OnKickedOffline,n)}},a=t,(c=[{key:"message",get:function(){return this.getService(e.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(e.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(e.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(e.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,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,r(o.key),o)}}(a.prototype,c),Object.defineProperty(a,"prototype",{writable:!1}),a}(_);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=q});
|
package/lib/types/entity.d.ts
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
import { RequestApi } from '../constant/api';
|
|
2
|
-
import { AllowType, ApplicationHandleResult, GroupJoinSource, GroupMemberRole, GroupStatus, GroupType, GroupVerificationType, MessageReceiveOptType, MessageType,
|
|
2
|
+
import { AllowType, ApplicationHandleResult, GROUP_TYPE, GroupJoinSource, GroupMemberRole, GroupStatus, GroupType, GroupVerificationType, MessageReceiveOptType, MessageType, MSG_TYPE, Relationship } from './enum';
|
|
3
3
|
import { HttpMethod } from '../utils/request';
|
|
4
|
+
import { MessageService } from '../api/message';
|
|
5
|
+
import { ConversationService } from '../api/conversation';
|
|
6
|
+
import { GroupService } from '../api/group';
|
|
7
|
+
import { UserService } from '../api/user';
|
|
8
|
+
export type ServiceTypes = {
|
|
9
|
+
user: UserService;
|
|
10
|
+
message: MessageService;
|
|
11
|
+
conversation: ConversationService;
|
|
12
|
+
group: GroupService;
|
|
13
|
+
};
|
|
14
|
+
export declare enum ServiceName {
|
|
15
|
+
MESSAGE = "message",
|
|
16
|
+
CONVERSATION = "conversation",
|
|
17
|
+
GROUP = "group",
|
|
18
|
+
USER = "user"
|
|
19
|
+
}
|
|
4
20
|
export interface Request {
|
|
5
21
|
url: RequestApi;
|
|
6
22
|
username?: string;
|
|
7
23
|
data: Record<string, any> | undefined;
|
|
8
24
|
method: HttpMethod;
|
|
9
25
|
}
|
|
10
|
-
export interface SseResponse {
|
|
11
|
-
type: SSE_RESPONSE_TYPE;
|
|
12
|
-
content: MessageReceiveOptType[];
|
|
13
|
-
}
|
|
14
26
|
export interface SseData {
|
|
15
27
|
ev: number;
|
|
16
28
|
dt: string;
|
|
@@ -30,13 +42,6 @@ export type Pagination = {
|
|
|
30
42
|
offset: number;
|
|
31
43
|
count: number;
|
|
32
44
|
};
|
|
33
|
-
export type MessageEntity = {
|
|
34
|
-
type: string;
|
|
35
|
-
offset: number;
|
|
36
|
-
length: number;
|
|
37
|
-
url?: string;
|
|
38
|
-
info?: string;
|
|
39
|
-
};
|
|
40
45
|
export type PicBaseInfo = {
|
|
41
46
|
uuid: string;
|
|
42
47
|
type: string;
|
|
@@ -210,7 +215,7 @@ export type MessageItem = {
|
|
|
210
215
|
userId: number;
|
|
211
216
|
send: number;
|
|
212
217
|
to: number;
|
|
213
|
-
msgType:
|
|
218
|
+
msgType: MSG_TYPE;
|
|
214
219
|
text?: string;
|
|
215
220
|
link?: string;
|
|
216
221
|
snapshot?: string;
|
|
@@ -227,7 +232,7 @@ export interface GroupInfoVO {
|
|
|
227
232
|
/**
|
|
228
233
|
* 聊天群类型: 0:一对一私聊 ,1:群聊,2:客服聊天
|
|
229
234
|
*/
|
|
230
|
-
groupType:
|
|
235
|
+
groupType: GROUP_TYPE;
|
|
231
236
|
createTime: number;
|
|
232
237
|
updateTime: number;
|
|
233
238
|
/**
|
|
@@ -296,207 +301,4 @@ export interface HistoryMessageResponse {
|
|
|
296
301
|
avatarMap: AvatarMap;
|
|
297
302
|
userId: number | null;
|
|
298
303
|
}
|
|
299
|
-
export type TextElem = {
|
|
300
|
-
content: string;
|
|
301
|
-
};
|
|
302
|
-
export type CardElem = {
|
|
303
|
-
userId: string;
|
|
304
|
-
nickname: string;
|
|
305
|
-
faceURL: string;
|
|
306
|
-
ex: string;
|
|
307
|
-
};
|
|
308
|
-
export type AtTextElem = {
|
|
309
|
-
text: string;
|
|
310
|
-
atUserList: string[];
|
|
311
|
-
atUsersInfo?: AtUsersInfoItem[];
|
|
312
|
-
quoteMessage?: MessageItem;
|
|
313
|
-
isAtSelf?: boolean;
|
|
314
|
-
};
|
|
315
|
-
export type NotificationElem = {
|
|
316
|
-
detail: string;
|
|
317
|
-
};
|
|
318
|
-
export type AdvancedTextElem = {
|
|
319
|
-
text: string;
|
|
320
|
-
messageEntityList: MessageEntity[];
|
|
321
|
-
};
|
|
322
|
-
export type TypingElem = {
|
|
323
|
-
msgTips: string;
|
|
324
|
-
};
|
|
325
|
-
export type CustomElem = {
|
|
326
|
-
data: string;
|
|
327
|
-
description: string;
|
|
328
|
-
extension: string;
|
|
329
|
-
};
|
|
330
|
-
export type FileElem = {
|
|
331
|
-
filePath: string;
|
|
332
|
-
uuid: string;
|
|
333
|
-
sourceUrl: string;
|
|
334
|
-
fileName: string;
|
|
335
|
-
fileSize: number;
|
|
336
|
-
};
|
|
337
|
-
export type FaceElem = {
|
|
338
|
-
index: number;
|
|
339
|
-
data: string;
|
|
340
|
-
};
|
|
341
|
-
export type LocationElem = {
|
|
342
|
-
description: string;
|
|
343
|
-
longitude: number;
|
|
344
|
-
latitude: number;
|
|
345
|
-
};
|
|
346
|
-
export type MergeElem = {
|
|
347
|
-
title: string;
|
|
348
|
-
abstractList: string[];
|
|
349
|
-
multiMessage: MessageItem[];
|
|
350
|
-
messageEntityList: MessageEntity[];
|
|
351
|
-
};
|
|
352
|
-
export type OfflinePush = {
|
|
353
|
-
title: string;
|
|
354
|
-
desc: string;
|
|
355
|
-
ex: string;
|
|
356
|
-
iOSPushSound: string;
|
|
357
|
-
iOSBadgeCount: boolean;
|
|
358
|
-
};
|
|
359
|
-
export type PictureElem = {
|
|
360
|
-
sourcePath: string;
|
|
361
|
-
sourcePicture: Picture;
|
|
362
|
-
bigPicture: Picture;
|
|
363
|
-
snapshotPicture: Picture;
|
|
364
|
-
};
|
|
365
|
-
export type AttachedInfoElem = {
|
|
366
|
-
groupHasReadInfo: GroupHasReadInfo;
|
|
367
|
-
isPrivateChat: boolean;
|
|
368
|
-
isEncryption: boolean;
|
|
369
|
-
inEncryptStatus: boolean;
|
|
370
|
-
burnDuration: number;
|
|
371
|
-
hasReadTime: number;
|
|
372
|
-
notSenderNotificationPush: boolean;
|
|
373
|
-
messageEntityList: MessageEntity[];
|
|
374
|
-
uploadProgress: UploadProgress;
|
|
375
|
-
};
|
|
376
|
-
export type UploadProgress = {
|
|
377
|
-
total: number;
|
|
378
|
-
save: number;
|
|
379
|
-
current: number;
|
|
380
|
-
};
|
|
381
|
-
export type GroupHasReadInfo = {
|
|
382
|
-
hasReadCount: number;
|
|
383
|
-
unreadCount: number;
|
|
384
|
-
hasReadUserIDList: string[];
|
|
385
|
-
groupMemberCount: number;
|
|
386
|
-
};
|
|
387
|
-
export type Picture = {
|
|
388
|
-
uuid: string;
|
|
389
|
-
type: string;
|
|
390
|
-
size: number;
|
|
391
|
-
width: number;
|
|
392
|
-
height: number;
|
|
393
|
-
url: string;
|
|
394
|
-
};
|
|
395
|
-
export type QuoteElem = {
|
|
396
|
-
text: string;
|
|
397
|
-
quoteMessage: MessageItem;
|
|
398
|
-
};
|
|
399
|
-
export type SoundElem = {
|
|
400
|
-
uuid: string;
|
|
401
|
-
soundPath: string;
|
|
402
|
-
sourceUrl: string;
|
|
403
|
-
dataSize: number;
|
|
404
|
-
duration: number;
|
|
405
|
-
};
|
|
406
|
-
export type VideoElem = {
|
|
407
|
-
videoPath: string;
|
|
408
|
-
videoUUID: string;
|
|
409
|
-
videoUrl: string;
|
|
410
|
-
videoType: string;
|
|
411
|
-
videoSize: number;
|
|
412
|
-
duration: number;
|
|
413
|
-
snapshotPath: string;
|
|
414
|
-
snapshotUUID: string;
|
|
415
|
-
snapshotSize: number;
|
|
416
|
-
snapshotUrl: string;
|
|
417
|
-
snapshotWidth: number;
|
|
418
|
-
snapshotHeight: number;
|
|
419
|
-
};
|
|
420
|
-
export type AdvancedRevokeContent = {
|
|
421
|
-
clientMsgID: string;
|
|
422
|
-
revokeTime: number;
|
|
423
|
-
revokerID: string;
|
|
424
|
-
revokerNickname: string;
|
|
425
|
-
revokerRole: number;
|
|
426
|
-
seq: number;
|
|
427
|
-
sessionType: SessionType;
|
|
428
|
-
sourceMessageSendID: string;
|
|
429
|
-
sourceMessageSendTime: number;
|
|
430
|
-
sourceMessageSenderNickname: string;
|
|
431
|
-
};
|
|
432
|
-
export type RevokedInfo = {
|
|
433
|
-
revokerID: string;
|
|
434
|
-
revokerRole: number;
|
|
435
|
-
clientMsgID: string;
|
|
436
|
-
revokerNickname: string;
|
|
437
|
-
revokeTime: number;
|
|
438
|
-
sourceMessageSendTime: number;
|
|
439
|
-
sourceMessageSendID: string;
|
|
440
|
-
sourceMessageSenderNickname: string;
|
|
441
|
-
sessionType: number;
|
|
442
|
-
seq: number;
|
|
443
|
-
ex: string;
|
|
444
|
-
};
|
|
445
|
-
export type ReceiptInfo = {
|
|
446
|
-
userId: string;
|
|
447
|
-
groupID: string;
|
|
448
|
-
msgIDList: string[];
|
|
449
|
-
readTime: number;
|
|
450
|
-
msgFrom: number;
|
|
451
|
-
contentType: MessageType;
|
|
452
|
-
sessionType: SessionType;
|
|
453
|
-
};
|
|
454
|
-
export type SearchMessageResult = {
|
|
455
|
-
totalCount: number;
|
|
456
|
-
searchResultItems?: SearchMessageResultItem[];
|
|
457
|
-
findResultItems?: SearchMessageResultItem[];
|
|
458
|
-
};
|
|
459
|
-
export type SearchMessageResultItem = {
|
|
460
|
-
conversationID: string;
|
|
461
|
-
messageCount: number;
|
|
462
|
-
conversationType: SessionType;
|
|
463
|
-
showName: string;
|
|
464
|
-
faceURL: string;
|
|
465
|
-
messageList: MessageItem[];
|
|
466
|
-
};
|
|
467
|
-
export type AdvancedGetMessageResult = {
|
|
468
|
-
isEnd: boolean;
|
|
469
|
-
lastMinSeq: number;
|
|
470
|
-
errCode: number;
|
|
471
|
-
errMsg: string;
|
|
472
|
-
messageList: MessageItem[];
|
|
473
|
-
};
|
|
474
|
-
export type RtcInvite = {
|
|
475
|
-
inviterUserID: string;
|
|
476
|
-
inviteeUserIDList: string[];
|
|
477
|
-
customData?: string;
|
|
478
|
-
groupID: string;
|
|
479
|
-
roomID: string;
|
|
480
|
-
timeout: number;
|
|
481
|
-
mediaType: string;
|
|
482
|
-
sessionType: number;
|
|
483
|
-
platformID: number;
|
|
484
|
-
initiateTime?: number;
|
|
485
|
-
busyLineUserIDList?: string[];
|
|
486
|
-
};
|
|
487
|
-
export type UserOnlineState = {
|
|
488
|
-
platformIDs?: Platform[];
|
|
489
|
-
status: OnlineState;
|
|
490
|
-
userId: string;
|
|
491
|
-
};
|
|
492
|
-
export type GroupMessageReceiptInfo = {
|
|
493
|
-
conversationID: string;
|
|
494
|
-
groupMessageReadInfo: GroupMessageReadInfo[];
|
|
495
|
-
};
|
|
496
|
-
export type GroupMessageReadInfo = {
|
|
497
|
-
clientMsgID: string;
|
|
498
|
-
hasReadCount: number;
|
|
499
|
-
unreadCount: number;
|
|
500
|
-
readMembers: GroupMemberItem[];
|
|
501
|
-
};
|
|
502
304
|
export {};
|
package/lib/types/enum.d.ts
CHANGED
|
@@ -126,11 +126,11 @@ export declare enum GroupMessageReaderFilter {
|
|
|
126
126
|
Readed = 0,
|
|
127
127
|
UnRead = 1
|
|
128
128
|
}
|
|
129
|
-
export declare
|
|
130
|
-
ONE_ON_ONE
|
|
131
|
-
GROUP_CHAT
|
|
132
|
-
CUSTOMER_SERVICE
|
|
133
|
-
}
|
|
129
|
+
export declare enum GROUP_TYPE {
|
|
130
|
+
ONE_ON_ONE = 0,
|
|
131
|
+
GROUP_CHAT = 1,
|
|
132
|
+
CUSTOMER_SERVICE = 2
|
|
133
|
+
}
|
|
134
134
|
export declare enum MSG_TYPE {
|
|
135
135
|
TEXT = 0,
|
|
136
136
|
IMAGE = 1,
|
package/lib/types/params.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AtUsersInfoItem, GroupItem, MessageItem,
|
|
1
|
+
import type { AtUsersInfoItem, GroupItem, MessageItem, PicBaseInfo, SelfUserInfo } from './entity';
|
|
2
2
|
import type { GroupJoinSource, GroupMemberFilter, GroupMemberRole, MessageReceiveOptType, MessageType } from './enum';
|
|
3
3
|
export type LoginParams = {
|
|
4
4
|
apiAddr: string;
|
|
@@ -200,13 +200,6 @@ export type FaceMessageParams = {
|
|
|
200
200
|
index: number;
|
|
201
201
|
data: string;
|
|
202
202
|
};
|
|
203
|
-
export type SendMsgParams = {
|
|
204
|
-
recvID: string;
|
|
205
|
-
groupID: string;
|
|
206
|
-
offlinePushInfo?: OfflinePush;
|
|
207
|
-
message: MessageItem;
|
|
208
|
-
isOnlineOnly?: boolean;
|
|
209
|
-
};
|
|
210
203
|
export type TypingUpdateParams = {
|
|
211
204
|
recvID: string;
|
|
212
205
|
msgTip: string;
|
package/lib/utils/SseClient.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ interface SseOptions {
|
|
|
6
6
|
maxRetries?: number;
|
|
7
7
|
onMessage?: (response: SseData) => void;
|
|
8
8
|
onReconnectSuccess?: () => void;
|
|
9
|
+
onConnectionClosed?: () => void;
|
|
9
10
|
}
|
|
10
11
|
declare class SseClient {
|
|
11
12
|
private url;
|
|
@@ -19,14 +20,16 @@ declare class SseClient {
|
|
|
19
20
|
private connected;
|
|
20
21
|
private onMessageCallback?;
|
|
21
22
|
private onReconnectSuccessCallback?;
|
|
23
|
+
private onConnectionClosedCallback?;
|
|
22
24
|
constructor(options: SseOptions);
|
|
23
25
|
private removeAllEventListeners;
|
|
26
|
+
private _openHandler;
|
|
27
|
+
private _errorHandler;
|
|
28
|
+
private _messageHandler;
|
|
29
|
+
private _customHandlers;
|
|
24
30
|
subscribe(type: string, handler: Function): void;
|
|
25
31
|
connect(): Promise<string>;
|
|
26
|
-
private
|
|
27
|
-
private handleMessage;
|
|
28
|
-
private onMessage;
|
|
29
|
-
private onError;
|
|
32
|
+
private notifyConnectionClosed;
|
|
30
33
|
private handleReconnect;
|
|
31
34
|
private cleanup;
|
|
32
35
|
unsubscribe(): void;
|