sim-sdk-web 1.0.17 → 1.0.18

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.
@@ -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,22 @@
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
- export declare function setupConversation(simSDK: SIMSDK): {
5
- getAllConversationList: () => Promise<ServerResponse<PageParam<ConversationItem>>>;
6
- };
7
- export interface ConversationApi {
8
- getAllConversationList: (operationID?: string) => Promise<ServerResponse<ConversationItem[]>>;
9
- getConversationListSplit: (params: SplitConversationParams, operationID?: string) => Promise<ServerResponse<ConversationItem[]>>;
10
- getOneConversation: (params: GetOneConversationParams, operationID?: string) => Promise<ServerResponse<ConversationItem>>;
11
- getMultipleConversation: (params: string, operationID?: string) => Promise<ServerResponse<ConversationItem[]>>;
12
- getConversationIDBySessionType: (params: GetOneConversationParams, operationID?: string) => Promise<ServerResponse<ConversationItem>>;
13
- getTotalUnreadMsgCount: (operationID?: string) => Promise<ServerResponse<number>>;
14
- markConversationMessageAsRead: (params: string, operationID?: string) => Promise<ServerResponse<unknown>>;
15
- setConversationDraft: (params: SetConversationDraftParams, operationID?: string) => Promise<ServerResponse<unknown>>;
16
- pinConversation: (params: PinConversationParams, operationID?: string) => Promise<ServerResponse<unknown>>;
17
- setConversationRecvMessageOpt: (params: SetConversationRecvOptParams, operationID?: string) => Promise<ServerResponse<unknown>>;
18
- setConversationPrivateChat: (params: SetConversationPrivateParams, operationID?: string) => Promise<ServerResponse<unknown>>;
19
- setConversationBurnDuration: (params: SetBurnDurationParams, operationID?: string) => Promise<ServerResponse<unknown>>;
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(params: PageParam<ConversationItem>): Promise<ServerResponse<{
19
+ list: ConversationItem[];
20
+ count: number;
21
+ }>>;
25
22
  }
@@ -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 simSDK;
5
- constructor(simSDK: SIMSDK);
6
- createGroup(group: GroupItem): Promise<ServerResponse>;
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
  }
@@ -1,85 +1,117 @@
1
- import { GroupItem, HistoryMessageParam, ServerResponse, Request } from '../types/entity';
1
+ import { GroupItem, HistoryMessageParam, ServerResponse, Request, PageParam, ConversationItem } 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
- declare class SIMSDK extends Emitter implements UserApi, FriendApi, ConversationApi {
10
- private username?;
11
- private token?;
12
- private appKey?;
13
- private apiAddr?;
6
+ import { UserService } from './user';
7
+ import { GroupService } from './group';
8
+ import { MessageService } from './message';
9
+ import { ConversationService } from './conversation';
10
+ /**
11
+ * SIMSDK主类 - 实时通信SDK的入口点
12
+ */
13
+ declare class SIMSDK extends Emitter {
14
+ private config;
14
15
  private sseClient?;
15
- private readonly debug;
16
- private messageService;
17
- private groupService;
16
+ private readonly serviceManager;
17
+ /**
18
+ * 创建SIMSDK实例
19
+ * @param debug 是否启用调试模式
20
+ */
18
21
  constructor(debug?: boolean);
22
+ /**
23
+ * 获取指定服务实例
24
+ * @param name 服务名称
25
+ * @returns 服务实例
26
+ */
27
+ private getService;
28
+ /**
29
+ * 消息服务访问器
30
+ */
31
+ get message(): MessageService;
32
+ /**
33
+ * 会话服务访问器
34
+ */
35
+ get conversation(): ConversationService;
36
+ /**
37
+ * 群组服务访问器
38
+ */
39
+ get group(): GroupService;
40
+ /**
41
+ * 用户服务访问器
42
+ */
43
+ get user(): UserService;
44
+ /**
45
+ * 获取用户名
46
+ */
47
+ get username(): string | undefined;
48
+ /**
49
+ * 发送请求到服务器
50
+ * @param requestObj 请求对象
51
+ * @returns 请求响应Promise
52
+ */
19
53
  sendRequest: <T>(requestObj: Request) => Promise<ServerResponse<T>>;
20
- createRequestFunction: <T extends Record<string, any> | undefined, R = unknown>(reqFuncName: RequestApi, method: HttpMethod) => (params: T) => Promise<ServerResponse<R>>;
21
- createRequestFunctionWithoutParams: <T = unknown>(reqFuncName: RequestApi, method: HttpMethod) => () => Promise<ServerResponse<T>>;
54
+ /**
55
+ * 记录请求日志
56
+ * @param requestObj 请求对象
57
+ */
58
+ private logRequest;
59
+ /**
60
+ * 创建带参数的请求函数
61
+ * @param reqFuncName 请求API名称
62
+ * @param method HTTP方法
63
+ * @returns 请求函数
64
+ */
65
+ createRequestFunction: <ReqType extends Record<string, any> | undefined, ResType = unknown>(reqFuncName: RequestApi, method: HttpMethod) => (params: ReqType) => Promise<ServerResponse<ResType>>;
66
+ /**
67
+ * 创建无参数的请求函数
68
+ * @param reqFuncName 请求API名称
69
+ * @param method HTTP方法
70
+ * @returns 请求函数
71
+ */
72
+ createRequestFunctionWithoutParams: <ResType = unknown>(reqFuncName: RequestApi, method: HttpMethod) => () => Promise<ServerResponse<ResType>>;
73
+ /**
74
+ * 处理SSE消息
75
+ * @param response SSE响应数据
76
+ */
22
77
  private handleMessage;
78
+ /**
79
+ * 处理重连成功事件
80
+ */
23
81
  private handleReconnectSuccess;
24
- log(...args: any[]): void;
25
82
  /**
26
- * Login to the server using the provided login parameters.
27
- *
28
- * @param params - The login parameters, including api address, username, token, and app key.
29
- * @returns A promise that resolves to a success message or rejects with an error message.
83
+ * 登录到服务器
84
+ * @param params 登录参数
85
+ * @returns 登录结果Promise
30
86
  */
31
87
  login: (params: LoginParams) => Promise<string>;
88
+ /**
89
+ * 登出
90
+ * @returns 登出结果Promise
91
+ */
32
92
  logout: () => Promise<ServerResponse<unknown>>;
93
+ /**
94
+ * 内部上传文件方法
95
+ * @param file 要上传的文件
96
+ * @returns 上传结果
97
+ */
33
98
  private internalUploadFile;
99
+ /**
100
+ * 上传文件
101
+ * @param params 上传参数
102
+ * @returns 上传结果Promise
103
+ */
34
104
  uploadFile: ({ file }: UploadFileParams) => Promise<ServerResponse<{
35
105
  url: string;
36
106
  }>>;
37
- getSelfUserInfo: UserApi['getSelfUserInfo'];
38
- setSelfInfo: UserApi['setSelfInfo'];
39
- getUsersInfoWithCache: UserApi['getUsersInfoWithCache'];
40
- subscribeUsersStatus: UserApi['subscribeUsersStatus'];
41
- unsubscribeUsersStatus: UserApi['unsubscribeUsersStatus'];
42
- getSubscribeUsersStatus: UserApi['getSubscribeUsersStatus'];
43
- setAppBackgroundStatus: UserApi['setAppBackgroundStatus'];
44
- networkStatusChanged: UserApi['networkStatusChanged'];
45
- setGlobalRecvMessageOpt: UserApi['setGlobalRecvMessageOpt'];
46
- acceptFriendApplication: FriendApi['acceptFriendApplication'];
47
- addBlack: FriendApi['addBlack'];
48
- addFriend: FriendApi['addFriend'];
49
- checkFriend: FriendApi['checkFriend'];
50
- deleteFriend: FriendApi['deleteFriend'];
51
- getBlackList: FriendApi['getBlackList'];
52
- getFriendApplicationListAsApplicant: FriendApi['getFriendApplicationListAsApplicant'];
53
- getFriendApplicationListAsRecipient: FriendApi['getFriendApplicationListAsRecipient'];
54
- getFriendList: FriendApi['getFriendList'];
55
- getFriendListPage: FriendApi['getFriendListPage'];
56
- getSpecifiedFriendsInfo: FriendApi['getSpecifiedFriendsInfo'];
57
- refuseFriendApplication: FriendApi['refuseFriendApplication'];
58
- removeBlack: FriendApi['removeBlack'];
59
- searchFriends: FriendApi['searchFriends'];
60
- setFriendRemark: FriendApi['setFriendRemark'];
61
- get createGroup(): (group: GroupItem) => Promise<ServerResponse<unknown>>;
62
- get getGroupInfo(): (groupId: string) => Promise<ServerResponse<import("../types/entity").GroupInfoVO>>;
63
- get createTextMessage(): (text: string, params?: Partial<Omit<import("../types/entity").MessageItem, "text">>) => Promise<ServerResponse>;
64
- get getHistoryMessageList(): (params: HistoryMessageParam) => Promise<ServerResponse<import("../types/entity").HistoryMessageResponse>>;
107
+ createTextMessage: (text: string) => Promise<ServerResponse<import("../types/entity").MessageItem>>;
108
+ getHistoryMessageList: (params: HistoryMessageParam) => Promise<ServerResponse<import("../types/entity").HistoryMessageResponse>>;
109
+ getConversations: (params: PageParam<ConversationItem>) => Promise<ServerResponse<{
110
+ list: ConversationItem[];
111
+ count: number;
112
+ }>>;
113
+ createGroup: (group: GroupItem) => Promise<ServerResponse<import("../types/entity").GroupInfoVO>>;
114
+ getGroupInfo: (groupId: string) => Promise<ServerResponse<import("../types/entity").GroupInfoVO>>;
65
115
  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
116
  }
84
117
  export default SIMSDK;
85
- export type MixinApiService = SIMSDK & UserApi & FriendApi & ConversationApi;
@@ -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 simSDK;
5
- constructor(simSDK: SIMSDK);
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
- createTextMessage(text: string, params?: Partial<Omit<MessageItem, 'text'>>): Promise<ServerResponse>;
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 type { GetUserInfoWithCacheParams } from '../types/params';
2
- import SIMSDK from '.';
3
- import type { MessageReceiveOptType } from '../types/enum';
4
- import type { FullUserItemWithCache, SelfUserInfo, UserOnlineState, ServerResponse } from '../types/entity';
5
- export declare function setupUser(simSDK: SIMSDK): {};
6
- export interface UserApi {
7
- getSelfUserInfo: (operationID?: string) => Promise<ServerResponse<SelfUserInfo>>;
8
- setSelfInfo: (params: Partial<SelfUserInfo>, operationID?: string) => Promise<ServerResponse<unknown>>;
9
- getUsersInfoWithCache: (params: GetUserInfoWithCacheParams, operationID?: string) => Promise<ServerResponse<FullUserItemWithCache[]>>;
10
- subscribeUsersStatus: (params: string[], operationID?: string) => Promise<ServerResponse<UserOnlineState>>;
11
- unsubscribeUsersStatus: (params: string[], operationID?: string) => Promise<ServerResponse<unknown>>;
12
- getSubscribeUsersStatus: (operationID?: string) => Promise<ServerResponse<UserOnlineState[]>>;
13
- setAppBackgroundStatus: (params: boolean, operationID?: string) => Promise<ServerResponse<unknown>>;
14
- networkStatusChanged: (operationID?: string) => Promise<ServerResponse<unknown>>;
15
- setGlobalRecvMessageOpt: (params: MessageReceiveOptType, operationID?: string) => Promise<ServerResponse<unknown>>;
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
  }
@@ -6,7 +6,7 @@ export declare enum ErrorCode {
6
6
  }
7
7
  export declare enum RequestApi {
8
8
  Login = "/chat/member/login",
9
- Logout = "Logout",
9
+ Logout = "/chat/member/logout",
10
10
  CreateGroup = "CreateGroup",
11
11
  GetGroupInfo = "/chat/group/info",
12
12
  GetAllConversationList = "/chat/group/list",
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 t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},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 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+""}var o;!function(e){e.MESSAGE="message",e.CONVERSATION="conversation",e.GROUP="group",e.USER="user"}(o||(o={}));var s,i,c,a=/*#__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 r;null==(r=e.eventSource)||r.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,r){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 r;null==(r=t.eventSource)||r.addEventListener(n,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)}})},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"}(s||(s={})),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"}(i||(i={})),function(e){e.onReceiveMessage="onReceiveMessage",e.onReceiveMessages="onReceiveMessages",e.OnKickedOffline="OnKickedOffline",e.OnUserTokenInvalid="OnUserTokenInvalid",e.OnUserTokenExpired="OnUserTokenExpired"}(c||(c={}));var u,d,l,g,h,f,m,p,v,E,M,S,A,N,O,y,T,P,k,G,b,R,C=/*#__PURE__*/function(){function e(){var e;this.events=((e={})[c.onReceiveMessage]=[],e[c.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 r=n.indexOf(t);r>-1&&(n.splice(r,1),0===n.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"}(h||(h={})),function(e){e[e.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",e[e.AllNeed=1]="AllNeed",e[e.AllNot=2]="AllNot"}(f||(f={})),function(e){e[e.iOS=1]="iOS",e[e.Android=2]="Android",e[e.Windows=3]="Windows",e[e.MacOSX=4]="MacOSX",e[e.Web=5]="Web",e[e.Linux=7]="Linux",e[e.AndroidPad=8]="AndroidPad",e[e.iPad=9]="iPad"}(m||(m={})),function(e){e[e.Debug=5]="Debug",e[e.Info=4]="Info",e[e.Warn=3]="Warn",e[e.Error=2]="Error",e[e.Fatal=1]="Fatal",e[e.Panic=0]="Panic"}(p||(p={})),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"}(E||(E={})),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"}(S||(S={})),function(e){e[e.AtNormal=0]="AtNormal",e[e.AtMe=1]="AtMe",e[e.AtAll=2]="AtAll",e[e.AtAllAtMe=3]="AtAllAtMe",e[e.AtGroupNotice=4]="AtGroupNotice"}(A||(A={})),function(e){e[e.All=0]="All",e[e.Owner=1]="Owner",e[e.Admin=2]="Admin",e[e.Nomal=3]="Nomal",e[e.AdminAndNomal=4]="AdminAndNomal",e[e.AdminAndOwner=5]="AdminAndOwner"}(N||(N={})),function(e){e[e.isBlack=0]="isBlack",e[e.isFriend=1]="isFriend"}(O||(O={})),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"}(P||(P={})),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"}(k||(k={})),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"}(G||(G={})),function(e){e[e.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",e[e.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",e[e.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",e[e.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH"}(b||(b={})),function(e){e[e.Sending=1]="Sending",e[e.Succeed=2]="Succeed",e[e.Failed=3]="Failed"}(R||(R={}));var w={NORMAL:0,EDITED:1,DELETED:2},L="undefined"!=typeof uni,I="undefined"!=typeof window,_=/*#__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:i.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},t.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:i.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),x=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}var n=e.prototype;return n.sendMessage=function(e,t){try{var n=this;return Promise.resolve(function(r,o){try{var s=Promise.resolve(n.sdk.sendRequest({data:e,url:t,method:"POST"}))}catch(e){return o(e)}return s&&s.then?s.then(void 0,o):s}(0,function(e){throw console.error("Failed to send message",e),e}))}catch(e){return Promise.reject(e)}},n.createMessage=function(e,n,r,o,s){var i;void 0===r&&(r={});var c=t({},r,((i={msgType:e})[o]=s,i.status=0,i));return this.sendMessage(c,n)},n.createTextMessage=function(e,t){void 0===t&&(t={});try{return Promise.resolve(this.createMessage(G.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(G.IMAGE,i.CreateTextMessage,t,"snapshot",e))}catch(e){return Promise.reject(e)}},n.getHistoryMessageList=function(e){var t=e.groupId,n=e.lastId,r=e.size,o=void 0===r?20:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:n,size:o},url:i.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(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:i.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),j=/*#__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:i.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},t.getGroupInfo=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:e},url:i.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 o.USER:return new _(this.sdk);case o.MESSAGE:return new x(this.sdk);case o.CONVERSATION:return new U(this.sdk);case o.GROUP:return new j(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}(),V=/*#__PURE__*/function(e){function t(t){var n;return void 0===t&&(t=!1),(n=e.call(this)||this).config={debug:!1},n.sseClient=void 0,n.serviceManager=void 0,n.sendRequest=function(e){return n.config.debug&&n.logRequest(e),function(e){try{return Promise.resolve(L?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.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(r){return n.sendRequest({data:r,url:e,method:t})}},n.createRequestFunctionWithoutParams=function(e,t){return function(){return n.sendRequest({data:void 0,method:t,url:e})}},n.handleMessage=function(e){switch(n.config.debug&&console.log("handleMessage response",e),e.ev){case b.EVENT_MESSAGE_PUSH:1===e.dt.length?n.emit(c.onReceiveMessage,e.dt[0]):n.emit(c.onReceiveMessages,e.dt);break;case b.EVENT_PONG_CONN:case b.EVENT_PONG_RE_CONN:case b.EVENT_PONG_IDLE:break;default:n.config.debug&&console.warn("Unknown SSE event type:",e.ev)}},n.handleReconnectSuccess=function(){n.config.username&&n.config.debug&&console.log("SSE reconnection successful")},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 r=t.code,o=t.data;if(0!=r)return Promise.resolve("Login failed, Server error, error code is "+r);var s=n.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+o;n.config.username=e.username,n.config.token=e.token,n.config.appKey=e.appKey,n.sseClient=new a({url:s,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=function(){try{return n.sseClient&&(n.sseClient.close(),n.sseClient=void 0),Promise.resolve(n.user.logout()).then(function(e){return n.config.username=void 0,n.config.token=void 0,e})}catch(e){return Promise.reject(e)}},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,r=e.error;return{data:{url:void 0===n?"":n},msg:null!=(t=null==r?void 0:r.message)?t:"",code:r?s.UnknownError:0}})}catch(e){return Promise.reject(e)}},n.createTextMessage=function(e){return n.message.createTextMessage(e)},n.getHistoryMessageList=function(e){return n.message.getHistoryMessageList(e)},n.getConversations=function(e){return n.conversation.getConversations(e)},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 i,u;u=e,(i=t).prototype=Object.create(u.prototype),i.prototype.constructor=i,n(i,u);var d,l,g=t.prototype;return g.getService=function(e){return this.serviceManager.get(e)},g.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=t,(l=[{key:"message",get:function(){return this.getService(o.MESSAGE)}},{key:"conversation",get:function(){return this.getService(o.CONVERSATION)}},{key:"group",get:function(){return this.getService(o.GROUP)}},{key:"user",get:function(){return this.getService(o.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)}}(d.prototype,l),Object.defineProperty(d,"prototype",{writable:!1}),d}(C);export{d as AllowType,v as ApplicationHandleResult,c as CbEvents,s as ErrorCode,k as GROUP_TYPE,A as GroupAtType,g as GroupJoinSource,N as GroupMemberFilter,h as GroupMemberRole,P as GroupMessageReaderFilter,S as GroupStatus,l as GroupType,f as GroupVerificationType,p as LogLevel,y as LoginStatus,G as MSG_TYPE,u as MessageReceiveOptType,R as MessageSendStatus,w as MessageStatus,E as MessageType,T as OnlineState,m as Platform,O as Relationship,i as RequestApi,V as SIMSDK,b as SSE_RESPONSE_TYPE,o 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 r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},r.apply(null,arguments)}function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}function n(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=typeof r)return r;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,c,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 r=e.prototype;return r.removeAllEventListeners=function(){var e=this;this.eventSource&&(this.eventSource.removeEventListener("open",this.onOpen),this.handlers.forEach(function(t,r){var o;null==(o=e.eventSource)||o.removeEventListener(r,t)}),this.eventSource.removeEventListener("error",this.onError))},r.subscribe=function(e,t){this.handlers.set(e,t),this.connect()},r.connect=function(){var e=this;return this.connected&&this.eventSource?Promise.reject(new Error("SSE is already connected!")):new Promise(function(r,o){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),r("SSE connect successful!")}),e.eventSource.addEventListener("message",function(t){e.handleMessage(t.data)}),e.handlers.forEach(function(t,r){var o;null==(o=e.eventSource)||o.addEventListener(r,e.onMessage(t))}),e.eventSource.addEventListener("error",function(t){e.onError(t),e.connected||o("SSE connect error.")})}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},r.onOpen=function(e){console.log("SSE connection established"),this.connected=!0,this.reconnectAttempts>0&&this.onReconnectSuccessCallback&&this.onReconnectSuccessCallback(),this.reconnectAttempts=0,this.reconnectTimeout=5e3},r.handleMessage=function(e){try{console.log("SSE handleMessage ",e);var t=JSON.parse(e);this.onMessageCallback&&this.onMessageCallback(t)}catch(e){console.error("数据解析错误:",e)}},r.onMessage=function(e){return function(t){try{var r=JSON.parse(t.data);console.log("Received SSE message:",r),"function"==typeof e&&e(r)}catch(e){console.error("Failed to parse SSE message:",e)}}},r.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()},r.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)}},r.cleanup=function(){this.eventSource&&(this.removeAllEventListeners(),this.eventSource.close(),this.eventSource=null),this.connected=!1},r.unsubscribe=function(){this.cleanup(),this.handlers.clear(),null!==this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)},r.destroySse=function(){this.unsubscribe(),this.reconnectAttempts=this.maxReconnectAttempts},r.close=function(){this.destroySse(),console.log("SSE 连接已关闭")},r.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",exports.CbEvents=void 0,(c=exports.CbEvents||(exports.CbEvents={})).onReceiveMessage="onReceiveMessage",c.onReceiveMessages="onReceiveMessages",c.OnKickedOffline="OnKickedOffline",c.OnUserTokenInvalid="OnUserTokenInvalid",c.OnUserTokenExpired="OnUserTokenExpired";var u,d,p,l,g,v,h,m,f,S,E,M,x,T,A,G,N,P,R,y,O,b,k=/*#__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 r=this.events[e];return r&&r.forEach(function(e){return e(t)}),this},t.on=function(e,t){var r;return this.events[e]||(this.events[e]=[]),null==(r=this.events[e])||r.push(t),this},t.off=function(e,t){var r=this.events[e];if(r){var o=r.indexOf(t);o>-1&&(r.splice(o,1),0===r.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,(p=exports.GroupType||(exports.GroupType={}))[p.Group=2]="Group",p[p.WorkingGroup=2]="WorkingGroup",exports.GroupJoinSource=void 0,(l=exports.GroupJoinSource||(exports.GroupJoinSource={}))[l.Invitation=2]="Invitation",l[l.Search=3]="Search",l[l.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,(m=exports.LogLevel||(exports.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",exports.ApplicationHandleResult=void 0,(f=exports.ApplicationHandleResult||(exports.ApplicationHandleResult={}))[f.Unprocessed=0]="Unprocessed",f[f.Agree=1]="Agree",f[f.Reject=-1]="Reject",exports.MessageType=void 0,(S=exports.MessageType||(exports.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",exports.SessionType=void 0,(E=exports.SessionType||(exports.SessionType={}))[E.Single=1]="Single",E[E.Group=3]="Group",E[E.WorkingGroup=3]="WorkingGroup",E[E.Notification=4]="Notification",exports.GroupStatus=void 0,(M=exports.GroupStatus||(exports.GroupStatus={}))[M.Nomal=0]="Nomal",M[M.Baned=1]="Baned",M[M.Dismissed=2]="Dismissed",M[M.Muted=3]="Muted",exports.GroupAtType=void 0,(x=exports.GroupAtType||(exports.GroupAtType={}))[x.AtNormal=0]="AtNormal",x[x.AtMe=1]="AtMe",x[x.AtAll=2]="AtAll",x[x.AtAllAtMe=3]="AtAllAtMe",x[x.AtGroupNotice=4]="AtGroupNotice",exports.GroupMemberFilter=void 0,(T=exports.GroupMemberFilter||(exports.GroupMemberFilter={}))[T.All=0]="All",T[T.Owner=1]="Owner",T[T.Admin=2]="Admin",T[T.Nomal=3]="Nomal",T[T.AdminAndNomal=4]="AdminAndNomal",T[T.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,(G=exports.LoginStatus||(exports.LoginStatus={}))[G.Logout=1]="Logout",G[G.Logging=2]="Logging",G[G.Logged=3]="Logged",exports.OnlineState=void 0,(N=exports.OnlineState||(exports.OnlineState={}))[N.Online=1]="Online",N[N.Offline=0]="Offline",exports.GroupMessageReaderFilter=void 0,(P=exports.GroupMessageReaderFilter||(exports.GroupMessageReaderFilter={}))[P.Readed=0]="Readed",P[P.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,(y=exports.MSG_TYPE||(exports.MSG_TYPE={}))[y.TEXT=0]="TEXT",y[y.IMAGE=1]="IMAGE",y[y.FILE=2]="FILE",y[y.VIDEO=3]="VIDEO",y[y.LINK=4]="LINK",y[y.GIF=5]="GIF",exports.SSE_RESPONSE_TYPE=void 0,(O=exports.SSE_RESPONSE_TYPE||(exports.SSE_RESPONSE_TYPE={}))[O.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",O[O.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",O[O.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",O[O.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",exports.MessageSendStatus=void 0,(b=exports.MessageSendStatus||(exports.MessageSendStatus={}))[b.Sending=1]="Sending",b[b.Succeed=2]="Succeed",b[b.Failed=3]="Failed";var C="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 r=this;return Promise.resolve(function(o,n){try{var s=Promise.resolve(r.sdk.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)}},t.createMessage=function(e,t,o,n,s){var i;void 0===o&&(o={});var c=r({},o,((i={msgType:e})[n]=s,i.status=0,i));return this.sendMessage(c,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,r=e.lastId,o=e.size,n=void 0===o?20:o;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t,lastId:r,size:n},url:exports.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},e}(),I=/*#__PURE__*/function(){function e(e){this.sdk=void 0,this.sdk=e}return e.prototype.getConversations=function(e){try{return Promise.resolve(this.sdk.sendRequest({data:e,url:exports.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},e}(),U=/*#__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 I(this.sdk);case exports.ServiceName.GROUP:return new U(this.sdk);default:throw new Error("Unknown service: "+e)}},t.reset=function(){this.services={}},e}(),j=/*#__PURE__*/function(e){function t(t){var r;return void 0===t&&(t=!1),(r=e.call(this)||this).config={debug:!1},r.sseClient=void 0,r.serviceManager=void 0,r.sendRequest=function(e){return r.config.debug&&r.logRequest(e),function(e){try{return Promise.resolve(C?new Promise(function(t,r){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 r(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:r.config.apiAddr+e.url,method:e.method,headers:{"Content-Type":"application/json",Authorization:r.config.token?"Bearer "+r.config.token:""},data:e.data})},r.createRequestFunction=function(e,t){return function(o){return r.sendRequest({data:o,url:e,method:t})}},r.createRequestFunctionWithoutParams=function(e,t){return function(){return r.sendRequest({data:void 0,method:t,url:e})}},r.handleMessage=function(e){switch(r.config.debug&&console.log("handleMessage response",e),e.ev){case exports.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===e.dt.length?r.emit(exports.CbEvents.onReceiveMessage,e.dt[0]):r.emit(exports.CbEvents.onReceiveMessages,e.dt);break;case exports.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:case exports.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:case exports.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:r.config.debug&&console.warn("Unknown SSE event type:",e.ev)}},r.handleReconnectSuccess=function(){r.config.username&&r.config.debug&&console.log("SSE reconnection successful")},r.login=function(e){try{return r.sseClient?Promise.resolve("login repeat"):(r.config.apiAddr=e.apiAddr,r.config.token=e.token,r.config.debug&&(console.log("login params",e),console.log("apiAddr",r.config.apiAddr)),Promise.resolve(r.user.login(e)).then(function(t){var o=t.code,n=t.data;if(0!=o)return Promise.resolve("Login failed, Server error, error code is "+o);var s=r.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+n;r.config.username=e.username,r.config.token=e.token,r.config.appKey=e.appKey,r.sseClient=new a({url:s,onMessage:r.handleMessage,onReconnectSuccess:r.handleReconnectSuccess,token:e.token});try{return r.sseClient.connect()}catch(e){return Promise.reject(e.message)}}))}catch(e){return Promise.reject(e)}},r.logout=function(){try{return r.sseClient&&(r.sseClient.close(),r.sseClient=void 0),Promise.resolve(r.user.logout()).then(function(e){return r.config.username=void 0,r.config.token=void 0,e})}catch(e){return Promise.reject(e)}},r.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)}},r.uploadFile=function(e){var t=e.file;try{return Promise.resolve(r.internalUploadFile(t)).then(function(e){var t,r=e.url,o=e.error;return{data:{url:void 0===r?"":r},msg:null!=(t=null==o?void 0:o.message)?t:"",code:o?exports.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},r.createTextMessage=function(e){return r.message.createTextMessage(e)},r.getHistoryMessageList=function(e){return r.message.getHistoryMessageList(e)},r.getConversations=function(e){return r.conversation.getConversations(e)},r.createGroup=function(e){return r.group.createGroup(e)},r.getGroupInfo=function(e){return r.group.getGroupInfo(e)},r.config.debug=t,r.serviceManager=new F(r),r}var r,s;s=e,(r=t).prototype=Object.create(s.prototype),r.prototype.constructor=r,o(r,s);var i,c,u=t.prototype;return u.getService=function(e){return this.serviceManager.get(e)},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))},i=t,(c=[{key:"message",get:function(){return this.getService(exports.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(exports.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(exports.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(exports.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,n(o.key),o)}}(i.prototype,c),Object.defineProperty(i,"prototype",{writable:!1}),i}(k);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,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("event-source-polyfill")):"function"==typeof define&&define.amd?define(["exports","event-source-polyfill"],t):t((e||self).simSdkWeb={},e.eventSourcePolyfill)}(this,function(e,t){function n(){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+""}var s;e.ServiceName=void 0,(s=e.ServiceName||(e.ServiceName={})).MESSAGE="message",s.CONVERSATION="conversation",s.GROUP="group",s.USER="user";var i,c,a,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.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=e.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 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.eventSource.addEventListener("open",function(t){e.onOpen(t),n("SSE connect successful!")}),e.eventSource.addEventListener("message",function(t){e.handleMessage(t.data)}),e.handlers.forEach(function(t,n){var o;null==(o=e.eventSource)||o.addEventListener(n,e.onMessage(t))}),e.eventSource.addEventListener("error",function(t){e.onError(t),e.connected||o("SSE connect error.")})}catch(t){console.error("Failed to create EventSource:",t),e.handleReconnect(),o(t)}})},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},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,(c=e.RequestApi||(e.RequestApi={})).Login="/chat/member/login",c.Logout="/chat/member/logout",c.CreateGroup="CreateGroup",c.GetGroupInfo="/chat/group/info",c.GetAllConversationList="/chat/group/list",c.CreateTextMessage="/chat/message/push",c.GetHistoryMessageList="/chat/message/pull",e.CbEvents=void 0,(a=e.CbEvents||(e.CbEvents={})).onReceiveMessage="onReceiveMessage",a.onReceiveMessages="onReceiveMessages",a.OnKickedOffline="OnKickedOffline",a.OnUserTokenInvalid="OnUserTokenInvalid",a.OnUserTokenExpired="OnUserTokenExpired";var d,l,g,p,v,h,f,m,S,E,M,T,A,y,P,G,N,R,O,b,k,C,_=/*#__PURE__*/function(){function t(){var t;this.events=((t={})[e.CbEvents.onReceiveMessage]=[],t[e.CbEvents.onReceiveMessages]=[],t)}var n=t.prototype;return n.emit=function(e,t){var n=this.events[e];return n&&n.forEach(function(e){return e(t)}),this},n.on=function(e,t){var n;return this.events[e]||(this.events[e]=[]),null==(n=this.events[e])||n.push(t),this},n.off=function(e,t){var n=this.events[e];if(n){var o=n.indexOf(t);o>-1&&(n.splice(o,1),0===n.length&&delete this.events[e])}return this},t}();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,(h=e.GroupVerificationType||(e.GroupVerificationType={}))[h.ApplyNeedInviteNot=0]="ApplyNeedInviteNot",h[h.AllNeed=1]="AllNeed",h[h.AllNot=2]="AllNot",e.Platform=void 0,(f=e.Platform||(e.Platform={}))[f.iOS=1]="iOS",f[f.Android=2]="Android",f[f.Windows=3]="Windows",f[f.MacOSX=4]="MacOSX",f[f.Web=5]="Web",f[f.Linux=7]="Linux",f[f.AndroidPad=8]="AndroidPad",f[f.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,(S=e.ApplicationHandleResult||(e.ApplicationHandleResult={}))[S.Unprocessed=0]="Unprocessed",S[S.Agree=1]="Agree",S[S.Reject=-1]="Reject",e.MessageType=void 0,(E=e.MessageType||(e.MessageType={}))[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",e.SessionType=void 0,(M=e.SessionType||(e.SessionType={}))[M.Single=1]="Single",M[M.Group=3]="Group",M[M.WorkingGroup=3]="WorkingGroup",M[M.Notification=4]="Notification",e.GroupStatus=void 0,(T=e.GroupStatus||(e.GroupStatus={}))[T.Nomal=0]="Nomal",T[T.Baned=1]="Baned",T[T.Dismissed=2]="Dismissed",T[T.Muted=3]="Muted",e.GroupAtType=void 0,(A=e.GroupAtType||(e.GroupAtType={}))[A.AtNormal=0]="AtNormal",A[A.AtMe=1]="AtMe",A[A.AtAll=2]="AtAll",A[A.AtAllAtMe=3]="AtAllAtMe",A[A.AtGroupNotice=4]="AtGroupNotice",e.GroupMemberFilter=void 0,(y=e.GroupMemberFilter||(e.GroupMemberFilter={}))[y.All=0]="All",y[y.Owner=1]="Owner",y[y.Admin=2]="Admin",y[y.Nomal=3]="Nomal",y[y.AdminAndNomal=4]="AdminAndNomal",y[y.AdminAndOwner=5]="AdminAndOwner",e.Relationship=void 0,(P=e.Relationship||(e.Relationship={}))[P.isBlack=0]="isBlack",P[P.isFriend=1]="isFriend",e.LoginStatus=void 0,(G=e.LoginStatus||(e.LoginStatus={}))[G.Logout=1]="Logout",G[G.Logging=2]="Logging",G[G.Logged=3]="Logged",e.OnlineState=void 0,(N=e.OnlineState||(e.OnlineState={}))[N.Online=1]="Online",N[N.Offline=0]="Offline",e.GroupMessageReaderFilter=void 0,(R=e.GroupMessageReaderFilter||(e.GroupMessageReaderFilter={}))[R.Readed=0]="Readed",R[R.UnRead=1]="UnRead",e.GROUP_TYPE=void 0,(O=e.GROUP_TYPE||(e.GROUP_TYPE={}))[O.ONE_ON_ONE=0]="ONE_ON_ONE",O[O.GROUP_CHAT=1]="GROUP_CHAT",O[O.CUSTOMER_SERVICE=2]="CUSTOMER_SERVICE",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,(k=e.SSE_RESPONSE_TYPE||(e.SSE_RESPONSE_TYPE={}))[k.EVENT_PONG_CONN=0]="EVENT_PONG_CONN",k[k.EVENT_PONG_RE_CONN=1]="EVENT_PONG_RE_CONN",k[k.EVENT_PONG_IDLE=2]="EVENT_PONG_IDLE",k[k.EVENT_MESSAGE_PUSH=3]="EVENT_MESSAGE_PUSH",e.MessageSendStatus=void 0,(C=e.MessageSendStatus||(e.MessageSendStatus={}))[C.Sending=1]="Sending",C[C.Succeed=2]="Succeed",C[C.Failed=3]="Failed";var w="undefined"!=typeof uni,L="undefined"!=typeof window,I=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.login=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.Login,method:"POST"}))}catch(e){return Promise.reject(e)}},n.logout=function(){try{return Promise.resolve(this.sdk.sendRequest({data:{},url:e.RequestApi.Logout,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),x=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var o=t.prototype;return o.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)}},o.createMessage=function(e,t,o,r,s){var i;void 0===o&&(o={});var c=n({},o,((i={msgType:e})[r]=s,i.status=0,i));return this.sendMessage(c,t)},o.createTextMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.TEXT,e.RequestApi.CreateTextMessage,n,"text",t))}catch(e){return Promise.reject(e)}},o.createImageMessage=function(t,n){void 0===n&&(n={});try{return Promise.resolve(this.createMessage(e.MSG_TYPE.IMAGE,e.RequestApi.CreateTextMessage,n,"snapshot",t))}catch(e){return Promise.reject(e)}},o.getHistoryMessageList=function(t){var n=t.groupId,o=t.lastId,r=t.size,s=void 0===r?20:r;try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:n,lastId:o,size:s},url:e.RequestApi.GetHistoryMessageList,method:"POST"}))}catch(e){return Promise.reject(e)}},t}(),U=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}return t.prototype.getConversations=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.GetAllConversationList,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),F=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.sdk=e}var n=t.prototype;return n.createGroup=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:t,url:e.RequestApi.CreateGroup,method:"POST"}))}catch(e){return Promise.reject(e)}},n.getGroupInfo=function(t){try{return Promise.resolve(this.sdk.sendRequest({data:{groupId:t},url:e.RequestApi.GetGroupInfo,method:"GET"}))}catch(e){return Promise.reject(e)}},t}(),j=/*#__PURE__*/function(){function t(e){this.sdk=void 0,this.services={},this.sdk=e}var n=t.prototype;return n.get=function(e){return this.services[e]||(this.services[e]=this.createService(e)),this.services[e]},n.createService=function(t){switch(t){case e.ServiceName.USER:return new I(this.sdk);case e.ServiceName.MESSAGE:return new x(this.sdk);case e.ServiceName.CONVERSATION:return new U(this.sdk);case e.ServiceName.GROUP:return new F(this.sdk);default:throw new Error("Unknown service: "+t)}},n.reset=function(){this.services={}},t}(),q=/*#__PURE__*/function(t){function n(n){var o;return void 0===n&&(n=!1),(o=t.call(this)||this).config={debug:!1},o.sseClient=void 0,o.serviceManager=void 0,o.sendRequest=function(e){return o.config.debug&&o.logRequest(e),function(e){try{return Promise.resolve(w?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(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,t){return function(n){return o.sendRequest({data:n,url:e,method:t})}},o.createRequestFunctionWithoutParams=function(e,t){return function(){return o.sendRequest({data:void 0,method:t,url:e})}},o.handleMessage=function(t){switch(o.config.debug&&console.log("handleMessage response",t),t.ev){case e.SSE_RESPONSE_TYPE.EVENT_MESSAGE_PUSH:1===t.dt.length?o.emit(e.CbEvents.onReceiveMessage,t.dt[0]):o.emit(e.CbEvents.onReceiveMessages,t.dt);break;case e.SSE_RESPONSE_TYPE.EVENT_PONG_CONN:case e.SSE_RESPONSE_TYPE.EVENT_PONG_RE_CONN:case e.SSE_RESPONSE_TYPE.EVENT_PONG_IDLE:break;default:o.config.debug&&console.warn("Unknown SSE event type:",t.ev)}},o.handleReconnectSuccess=function(){o.config.username&&o.config.debug&&console.log("SSE reconnection successful")},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(t){var n=t.code,r=t.data;if(0!=n)return Promise.resolve("Login failed, Server error, error code is "+n);var s=o.config.apiAddr+"/chat/sse/conn?username="+e.username+"&token="+e.token+"&appKey="+e.appKey+"&random="+r;o.config.username=e.username,o.config.token=e.token,o.config.appKey=e.appKey,o.sseClient=new u({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=function(){try{return o.sseClient&&(o.sseClient.close(),o.sseClient=void 0),Promise.resolve(o.user.logout()).then(function(e){return o.config.username=void 0,o.config.token=void 0,e})}catch(e){return Promise.reject(e)}},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(t){var n=t.file;try{return Promise.resolve(o.internalUploadFile(n)).then(function(t){var n,o=t.url,r=t.error;return{data:{url:void 0===o?"":o},msg:null!=(n=null==r?void 0:r.message)?n:"",code:r?e.ErrorCode.UnknownError:0}})}catch(e){return Promise.reject(e)}},o.createTextMessage=function(e){return o.message.createTextMessage(e)},o.getHistoryMessageList=function(e){return o.message.getHistoryMessageList(e)},o.getConversations=function(e){return o.conversation.getConversations(e)},o.createGroup=function(e){return o.group.createGroup(e)},o.getGroupInfo=function(e){return o.group.getGroupInfo(e)},o.config.debug=n,o.serviceManager=new j(o),o}var s,i;i=t,(s=n).prototype=Object.create(i.prototype),s.prototype.constructor=s,o(s,i);var c,a,d=n.prototype;return d.getService=function(e){return this.serviceManager.get(e)},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))},c=n,(a=[{key:"message",get:function(){return this.getService(e.ServiceName.MESSAGE)}},{key:"conversation",get:function(){return this.getService(e.ServiceName.CONVERSATION)}},{key:"group",get:function(){return this.getService(e.ServiceName.GROUP)}},{key:"user",get:function(){return this.getService(e.ServiceName.USER)}},{key:"username",get:function(){return this.config.username}},{key:"uuid",get:function(){return(36*Math.random()).toString(36).slice(2)+(new Date).getTime().toString()}}])&&function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,r(o.key),o)}}(c.prototype,a),Object.defineProperty(c,"prototype",{writable:!1}),c}(_);e.MessageStatus={NORMAL:0,EDITED:1,DELETED:2},e.SIMSDK=q});
@@ -1,16 +1,28 @@
1
1
  import { RequestApi } from '../constant/api';
2
- import { AllowType, ApplicationHandleResult, GroupJoinSource, GroupMemberRole, GroupStatus, GroupType, GroupVerificationType, MessageReceiveOptType, MessageType, OnlineState, Platform, Relationship, SessionType, SSE_RESPONSE_TYPE } from './enum';
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: number;
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: number;
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 {};
@@ -126,11 +126,11 @@ export declare enum GroupMessageReaderFilter {
126
126
  Readed = 0,
127
127
  UnRead = 1
128
128
  }
129
- export declare const GROUP_TYPE: {
130
- ONE_ON_ONE: number;
131
- GROUP_CHAT: number;
132
- CUSTOMER_SERVICE: number;
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,
@@ -1,4 +1,4 @@
1
- import type { AtUsersInfoItem, GroupItem, MessageItem, OfflinePush, PicBaseInfo, SelfUserInfo } from './entity';
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sim-sdk-web",
3
- "version": "v1.0.17",
3
+ "version": "v1.0.18",
4
4
  "description": "Sim SDK for Web",
5
5
  "source": "src/index.ts",
6
6
  "main": "lib/index.js",