@onyx-p/imlib-web 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "1.2.1",
4
- "main": "./dist/index.umd.js",
5
- "module": "./dist/index.esm.js",
6
- "types": "./dist/types/index.d.ts",
3
+ "version": "1.2.3",
4
+ "main": "index.umd.js",
5
+ "module": "index.esm.js",
6
+ "types": "types/index.d.ts",
7
7
  "files": [
8
- "dist/index.umd.js",
9
- "dist/index.esm.js",
10
- "dist/types/index.d.ts",
11
- "dist/types/types.d.ts",
12
- "dist/types/model",
8
+ "index.umd.js",
9
+ "index.esm.js",
10
+ "types/index.d.ts",
11
+ "types/types.d.ts",
12
+ "types/model",
13
13
  "README.md"
14
14
  ],
15
15
  "keywords": ["im"],
@@ -0,0 +1,224 @@
1
+ import { ConnectionStatus, ConversationType, NotificationLevel, NotificationStatus } from './model/statusTypes';
2
+ import { EventListeners, Events, GetHistoryMessageOption, GetHistoryMessageResult, IBaseConversationInfo, IConversationOption, IConversationState, IDeleteMessageOptions, IGetConversationListOptions, IImageMessageOption, IInitOption, IPromiseResult, IRecallMessageOptions, ISendBody, ISendMessageOptions, IUploadHooks, IUploadMessageOption, ProfileInfo } from './types';
3
+ import { BaseMessage, IBaseMessageBody } from './model/baseMessage';
4
+ import { ITextMessageBody } from './model/messages/textMessage';
5
+ import IReceivedMessage from './model/iReceivedMessage';
6
+ import IReceivedConversation from './model/iReceivedConversation';
7
+ import { CommonReqResult, PBCodec } from './net/connection/webSocketServer';
8
+ import { BaseResp } from './net/pbs/rpc.base';
9
+ export { TextMessage, ImageMessage, HQVoiceMessage, GIFMessage, FileMessage, CommandMessage } from './model/messages';
10
+ export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IFileMessageBody, IHQVoiceMessageBody, IRecallCommandMessageBody, ICommandMessageBody } from './model/messages';
11
+ export type { IBaseMessageBody, IReceivedMessage, IReceivedConversation };
12
+ export * from './types';
13
+ export * from './model/statusTypes';
14
+ /**
15
+ * 初始化
16
+ * @param initOption
17
+ */
18
+ export declare const init: (initOption: IInitOption) => void;
19
+ /**
20
+ * 建立 IM 连接
21
+ * @param token
22
+ */
23
+ export declare const connect: () => IPromiseResult<void>;
24
+ /**
25
+ * 断开当前用户的连接
26
+ * @description 调用后将不再接收消息,不可发送消息,不可获取历史消息,不可获取会话列表
27
+ */
28
+ export declare const disconnect: () => Promise<void>;
29
+ export declare const setUserLogged: (info: ProfileInfo) => void;
30
+ export declare const logOut: () => void;
31
+ /**
32
+ * 获取 IM 连接状态
33
+ */
34
+ export declare const getConnectionStatus: () => ConnectionStatus;
35
+ /**
36
+ * 发送 WebSocket 请求
37
+ * @param cmdId 命令ID,用于标识请求类型
38
+ * @param body 请求体数据
39
+ * @param codec 编解码器,用于序列化请求数据和反序列化响应数据
40
+ * @param timeout 超时时间(秒),默认30秒
41
+ * @typeParam R 请求体类型
42
+ * @typeParam P 响应体类型,必须继承自 BaseResp
43
+ * @returns 返回 Promise,包含响应结果
44
+ */
45
+ export declare const request: <R, P extends BaseResp>(cmdId: number, body: R, codec: PBCodec<R, P>, timeout?: number) => CommonReqResult<P>;
46
+ /**
47
+ * 当前服务器时间
48
+ * 校准时间,可能存在误差
49
+ */
50
+ export declare const getServerTime: () => number;
51
+ /**
52
+ * 绑定事件
53
+ */
54
+ export declare const addEventListener: <T extends Events>(eventType: T, listener: EventListeners[T], target?: any) => void;
55
+ export declare function onceEventListener<T extends Events>(eventType: T, listener: EventListeners[T], target?: any): void;
56
+ /**
57
+ * 移除事件
58
+ */
59
+ export declare const removeEventListener: <T extends Events>(eventType: T, listener: EventListeners[T], target?: any) => void;
60
+ /**
61
+ * 获取会话列表
62
+ * @param options
63
+ */
64
+ export declare const getConversationList: (options?: IGetConversationListOptions) => IPromiseResult<IReceivedConversation[]>;
65
+ /**
66
+ * 获取指定会话数据
67
+ * @description 通过该方法获取的会话可能并不存在于当前的会话列表中,此处只作为功能性封装语法糖
68
+ * @param options
69
+ */
70
+ export declare const getConversation: (options: IConversationOption) => IPromiseResult<IReceivedConversation | null | undefined>;
71
+ /**
72
+ * 移除指定的会话实例
73
+ */
74
+ export declare const removeConversation: (options: IConversationOption) => IPromiseResult<void>;
75
+ /**
76
+ * 获取会话文本草稿
77
+ * @params options 会话
78
+ */
79
+ export declare const getTextMessageDraft: (options: IConversationOption) => IPromiseResult<string>;
80
+ /**
81
+ * 设置会话文本草稿
82
+ * @params options 会话
83
+ * @params draft 草稿内容
84
+ */
85
+ export declare const saveTextMessageDraft: (options: IConversationOption, draft: string) => IPromiseResult<void>;
86
+ /**
87
+ * 删除会话文本草稿
88
+ * @params options 会话
89
+ */
90
+ export declare const clearTextMessageDraft: (options: IConversationOption) => IPromiseResult<void>;
91
+ /**
92
+ * 获取单个群会话 @ 消息未读数
93
+ */
94
+ export declare const getUnreadMentionedCount: (options: IConversationOption) => IPromiseResult<number>;
95
+ /**
96
+ * 获取所有群会话 @ 消息未读数
97
+ */
98
+ export declare const getAllUnreadMentionedCount: () => IPromiseResult<number>;
99
+ /**
100
+ * 获取本地全部会话的状态
101
+ * @description
102
+ * 返回的本地会话满足以下任一条件:
103
+ * 1. unreadCount > 0
104
+ * 2. unreadMentionedCount > 0
105
+ * 3. notificationLevel !== NotificationLevel.NOT_SET
106
+ * 4. notificationStatus !== NotificationStatus.CLOSE
107
+ * 5. isTop === true
108
+ */
109
+ export declare const getAllConversationState: () => IPromiseResult<IConversationState[]>;
110
+ /**
111
+ * 获取当前所有会话的消息未读数
112
+ * @description
113
+ * 1. 清除浏览器缓存会导致会话未读数不准确
114
+ * 2. 会话消息未读数存储在 WebStorage 中, 若浏览器不支持或禁用 WebStorage,未读消息数将不会保存,浏览器页面刷新未读消息数将不会存在
115
+ * 3. 其他端删除会话可能会导致会话未读数不准确
116
+ * @param includeMuted 是否包含免打扰会话
117
+ * @param conversationTypes 要获取未读数的会话类型,若为空,则默认获取单聊、群聊及系统消息未读数
118
+ */
119
+ export declare const getTotalUnreadCount: (includeMuted?: boolean, conversationTypes?: ConversationType[]) => IPromiseResult<number>;
120
+ /**
121
+ * 获取单个会话的未读数
122
+ *
123
+ */
124
+ export declare const getUnreadCount: (options: IConversationOption) => IPromiseResult<number>;
125
+ /**
126
+ * 清除会话未读数
127
+ */
128
+ export declare const clearMessagesUnreadStatus: (options: IConversationOption) => IPromiseResult<void>;
129
+ /**
130
+ * 清理全部未读数
131
+ * @returns
132
+ */
133
+ export declare const clearAllMessagesUnreadStatus: () => IPromiseResult<void>;
134
+ /**
135
+ * 获取会话免打扰等级
136
+ */
137
+ export declare const getConversationNotificationLevel: (options: IConversationOption) => IPromiseResult<NotificationLevel>;
138
+ /**
139
+ * 设置会话免打扰
140
+ * 是否免打扰
141
+ * * 1: 开启免打扰
142
+ * * 2: 关闭免打扰
143
+ */
144
+ export declare const setConversationNotificationStatus: (options: IConversationOption, notificationStatus: NotificationStatus) => IPromiseResult<void>;
145
+ /**
146
+ * 获取免打扰状态
147
+ * getConversationNotificationStatus
148
+ */
149
+ export declare const getConversationNotificationStatus: (options: IConversationOption) => IPromiseResult<NotificationStatus>;
150
+ /**
151
+ * 获取免打扰状态列表
152
+ * getBlockedConversationList
153
+ */
154
+ export declare const getBlockedConversationList: () => IPromiseResult<IBaseConversationInfo[]>;
155
+ /**
156
+ * 设置会话是否置顶
157
+ */
158
+ export declare const setConversationToTop: (options: IConversationOption, isTop?: boolean) => IPromiseResult<void>;
159
+ /**
160
+ * 获取置顶会话
161
+ */
162
+ export declare const getTopConversationList: () => IPromiseResult<IBaseConversationInfo[]>;
163
+ /**
164
+ * 注册自定义消息
165
+ * @param messageType 消息类型
166
+ * @param isPersited 是否存储
167
+ * @param isCounted 是否计数
168
+ * @param prototypes 消息属性名称
169
+ * @param isStatusMessage 是否是状态消息
170
+ */
171
+ export declare const registerMessageType: <T extends IBaseMessageBody>(messageType: string, isPersited: boolean, isCounted: boolean, prototypes?: string[], isStatusMessage?: boolean) => new (content: T) => BaseMessage<T>;
172
+ /**
173
+ * 发送消息
174
+ * @param options
175
+ */
176
+ export declare const sendMessage: (conversation: IConversationOption, message: BaseMessage, options?: ISendMessageOptions) => IPromiseResult<IReceivedMessage>;
177
+ /**
178
+ * 发送文本消息
179
+ */
180
+ export declare const sendTextMessage: (conversation: IConversationOption, messageBody: ITextMessageBody, options?: ISendMessageOptions) => IPromiseResult<IReceivedMessage>;
181
+ /**
182
+ * 发送图片消息
183
+ */
184
+ export declare const sendImageMessage: (conversation: IConversationOption, msgBody: ISendBody, hooks?: IUploadHooks, sendOptions?: IImageMessageOption) => IPromiseResult<IReceivedMessage>;
185
+ /**
186
+ * 发送GIF消息
187
+ */
188
+ export declare const sendGIFMessage: (conversation: IConversationOption, msgBody: ISendBody, hooks?: IUploadHooks, sendOptions?: IUploadMessageOption) => IPromiseResult<IReceivedMessage>;
189
+ /**
190
+ * 发送高清语音消息
191
+ */
192
+ export declare const sendHQVoiceMessage: (conversation: IConversationOption, msgBody: ISendBody, hooks?: IUploadHooks | undefined, sendOptions?: IUploadMessageOption | undefined) => IPromiseResult<IReceivedMessage>;
193
+ /**
194
+ * 发送文件消息
195
+ */
196
+ export declare const sendFileMessage: (conversation: IConversationOption, msgBody: ISendBody, hooks?: IUploadHooks, sendOptions?: IUploadMessageOption) => IPromiseResult<IReceivedMessage>;
197
+ /**
198
+ * 撤回消息
199
+ * @param options
200
+ */
201
+ export declare const recallMessage: (conversation: IConversationOption, options: IRecallMessageOptions) => IPromiseResult<IReceivedMessage>;
202
+ /**
203
+ * 获取历史消息
204
+ */
205
+ export declare const getHistoryMessages: (conversation: IConversationOption, options: GetHistoryMessageOption) => IPromiseResult<GetHistoryMessageResult>;
206
+ /**
207
+ * 获取远程历史消息
208
+ */
209
+ export declare const getRemoteHistoryMessages: (conversation: IConversationOption, options: GetHistoryMessageOption) => IPromiseResult<GetHistoryMessageResult>;
210
+ /**
211
+ * 按消息 id 删除消息
212
+ */
213
+ export declare const deleteMessages: (conversation: IConversationOption, messages: IDeleteMessageOptions[]) => IPromiseResult<void>;
214
+ /**
215
+ * 按时间戳删除消息
216
+ * @param conversation 会话
217
+ * @param timestamp 清除时间点, 该时间之前的消息将被清除
218
+ */
219
+ export declare const clearHistoryMessages: (conversation: IConversationOption, timestamp: number) => IPromiseResult<void>;
220
+ export declare const mockLogin: (config: {
221
+ langCode: string;
222
+ phone: string;
223
+ password: string;
224
+ }) => CommonReqResult<import("./net/pbs/rpc.login").AuthSignIn2Resp>;
@@ -0,0 +1,50 @@
1
+ import MentionedInfo from './mentionedInfo';
2
+ export interface IMentionedInfo {
3
+ /**
4
+ * 群组消息中的 @ 信息
5
+ */
6
+ mentionedInfo?: MentionedInfo;
7
+ }
8
+ export interface IExtraData {
9
+ /**
10
+ * 消息中的附加信息
11
+ */
12
+ extra?: string;
13
+ }
14
+ export interface IUserInfo {
15
+ user?: {
16
+ /**
17
+ * 用户 ID
18
+ */
19
+ userId?: string;
20
+ /**
21
+ * 用户名
22
+ */
23
+ name?: string;
24
+ /**
25
+ * user info 中附加信息
26
+ */
27
+ extra?: string;
28
+ /**
29
+ * 用户头像地址
30
+ */
31
+ portraitUri?: string;
32
+ };
33
+ }
34
+ /**
35
+ * 消息基本结构
36
+ */
37
+ export type IBaseMessageBody = IUserInfo & IExtraData & IMentionedInfo;
38
+ export type MessageCodingData = Record<string, any>;
39
+ export declare class BaseMessage<T extends IBaseMessageBody = any> {
40
+ readonly messageType: string;
41
+ content: T;
42
+ readonly isPersited: boolean;
43
+ readonly isCounted: boolean;
44
+ readonly isStatusMessage: boolean;
45
+ constructor(messageType: string, content: T, isPersited?: boolean, isCounted?: boolean, isStatusMessage?: boolean);
46
+ get objectId(): number;
47
+ static getObjectId(): number;
48
+ static decode(aDecoder: MessageCodingData): BaseMessage<any>;
49
+ encode(): MessageCodingData;
50
+ }
@@ -0,0 +1,54 @@
1
+ import { ConversationType, NotificationLevel, NotificationStatus } from './statusTypes';
2
+ import IReceivedMessage from './iReceivedMessage';
3
+ /**
4
+ * 从服务器拉取到的会话数据结构
5
+ */
6
+ export default interface IReceivedConversation {
7
+ /**
8
+ * 会话的业务标识
9
+ */
10
+ channelId?: string;
11
+ /**
12
+ * 会话类型
13
+ */
14
+ conversationType: ConversationType;
15
+ /**
16
+ * 会话 Id
17
+ * @description
18
+ * 1. 当 `conversationType` 为 `ConversationType.GROUP` 时,该值为群组 Id
19
+ * 1. 当 `conversationType` 为 `ConversationType.PRIVATE` 时,该值为对方用户 Id
20
+ */
21
+ targetId: string;
22
+ /**
23
+ * 当前会话的未读消息数
24
+ */
25
+ unreadMessageCount: number;
26
+ /**
27
+ * 会话中的最后一条消息
28
+ */
29
+ latestMessage?: IReceivedMessage;
30
+ /**
31
+ * 是否包含 @ 自己的消息,此数据仅在 `conversationType` 为 `ConversationType.GROUP` 时有效
32
+ */
33
+ hasMentioned?: boolean;
34
+ /**
35
+ * 会话免打扰状态
36
+ * @description
37
+ * 1. 已开启免打扰
38
+ * 2. 未开启免打扰
39
+ */
40
+ notificationStatus: NotificationStatus;
41
+ notificationLevel: NotificationLevel;
42
+ /**
43
+ * 会话是否已置顶
44
+ */
45
+ isTop: boolean;
46
+ /**
47
+ * 会话中消息的最后未读时间
48
+ */
49
+ lastUnreadTime: number;
50
+ /**
51
+ * @ 消息未读数
52
+ */
53
+ unreadMentionedCount?: number;
54
+ }
@@ -0,0 +1,87 @@
1
+ import { ConversationType, MessageDirection, SentStatus } from './statusTypes';
2
+ /**
3
+ * 消息数据
4
+ */
5
+ export default interface IReceivedMessage {
6
+ /**
7
+ * 会话的业务标识
8
+ */
9
+ channelId?: string;
10
+ /**
11
+ * 会话类型
12
+ */
13
+ conversationType: ConversationType;
14
+ /**
15
+ * 会话 targetId
16
+ */
17
+ targetId: string;
18
+ /**
19
+ * 消息发送者的用户 Id
20
+ */
21
+ senderUserId: string;
22
+ /**
23
+ * 消息内容
24
+ */
25
+ content: any;
26
+ /**
27
+ * 消息结构名称,即消息类型
28
+ * @example RC:TxtMsg
29
+ */
30
+ messageType: string;
31
+ /**
32
+ * 服务端存储的消息 Id
33
+ */
34
+ messageUId: string;
35
+ /**
36
+ * 消息方向是发出 or 收取
37
+ */
38
+ messageDirection: MessageDirection;
39
+ /**
40
+ * 是否为离线消息
41
+ */
42
+ isOffLineMessage: boolean;
43
+ /**
44
+ * 消息在服务器端的发送时间
45
+ */
46
+ sentTime: number;
47
+ /**
48
+ * 消息接收时间,该时间通过消息的 `sentTime` 值在本地进行计算得出,不推荐使用
49
+ * @description 当 isOffLineMessage 为 true 时,该值无效
50
+ */
51
+ receivedTime: number;
52
+ /**
53
+ * 是否存储
54
+ * @default true
55
+ */
56
+ isPersited: boolean;
57
+ /**
58
+ * 是否计数
59
+ * @default true
60
+ */
61
+ isCounted: boolean;
62
+ /**
63
+ * 是否为 @ 消息
64
+ */
65
+ isMentioned: boolean;
66
+ /**
67
+ * 消息是否静默
68
+ * @description 静默消息不会发送 Push 信息和本地通知提醒
69
+ */
70
+ disableNotification: boolean;
71
+ /**
72
+ * 是否是状态消息
73
+ */
74
+ isStatusMessage: boolean;
75
+ /**
76
+ * 消息接收状态
77
+ */
78
+ receivedStatus: number;
79
+ /**
80
+ * CPP 独有字段 消息本地 ID
81
+ */
82
+ messageId?: number;
83
+ /**
84
+ * 消息发送状态
85
+ */
86
+ sentStatus: SentStatus;
87
+ }
@@ -0,0 +1,9 @@
1
+ import { MentionedType } from './statusTypes';
2
+ /**
3
+ * 群组内的消息包含的 @ 数据
4
+ */
5
+ export default interface MentionedInfo {
6
+ type?: MentionedType | undefined;
7
+ userIdList?: string[] | undefined;
8
+ mentionedContent?: string | undefined;
9
+ }
@@ -0,0 +1,20 @@
1
+ import { BaseMessage, IExtraData, IUserInfo, MessageCodingData } from '../baseMessage';
2
+ /**
3
+ * 命令消息
4
+ */
5
+ export interface ICommandMessageBody extends IUserInfo, IExtraData {
6
+ /**
7
+ * 命令名称
8
+ */
9
+ name: string;
10
+ /**
11
+ * 命令的扩展数据,可以为任意字符串,如存放您定义的json数据。
12
+ */
13
+ data: string;
14
+ }
15
+ export default class CommandMessage extends BaseMessage<ICommandMessageBody> {
16
+ constructor(content: ICommandMessageBody);
17
+ static getObjectId(): number;
18
+ static decode(aDecoder: MessageCodingData): BaseMessage<ICommandMessageBody>;
19
+ encode(): MessageCodingData;
20
+ }
@@ -0,0 +1,34 @@
1
+ import { BaseMessage, IBaseMessageBody, MessageCodingData } from '../baseMessage';
2
+ declare class CustBaseMessage extends BaseMessage {
3
+ static decode(aDecoder: MessageCodingData): BaseMessage<IBaseMessageBody>;
4
+ encode(): MessageCodingData;
5
+ }
6
+ /**
7
+ * 自定义命令消息(不存储,不计数)
8
+ */
9
+ export declare class CustCommandMessage<T> extends CustBaseMessage {
10
+ constructor(messageType: string, content: T);
11
+ static getObjectId(): number;
12
+ }
13
+ /**
14
+ * 自定义存储消息(存储,不计数)
15
+ */
16
+ export declare class CustStorageMessage<T> extends CustBaseMessage {
17
+ constructor(messageType: string, content: T);
18
+ static getObjectId(): number;
19
+ }
20
+ /**
21
+ * 自定义普通消息(存储,且计数)
22
+ */
23
+ export declare class CustNormalMessage<T> extends CustBaseMessage {
24
+ constructor(messageType: string, content: T);
25
+ static getObjectId(): number;
26
+ }
27
+ /**
28
+ * 自定义状态消息
29
+ */
30
+ export declare class CustStatusMessage<T> extends CustBaseMessage {
31
+ constructor(messageType: string, content: T);
32
+ static getObjectId(): number;
33
+ }
34
+ export {};
@@ -0,0 +1,25 @@
1
+ import { BaseMessage, IExtraData, IMentionedInfo, IUserInfo, MessageCodingData } from '../baseMessage';
2
+ export interface IFileMessageBody extends IExtraData, IMentionedInfo, IUserInfo {
3
+ /**
4
+ * 文件名称
5
+ */
6
+ name: string;
7
+ /**
8
+ * 文件尺寸,单位: Byte
9
+ */
10
+ size: number;
11
+ /**
12
+ * 文件类型
13
+ */
14
+ type: string;
15
+ /**
16
+ * 远程文件资源地址
17
+ */
18
+ fileUrl: string;
19
+ }
20
+ export default class FileMessage extends BaseMessage<IFileMessageBody> {
21
+ constructor(content: IFileMessageBody);
22
+ static getObjectId(): number;
23
+ static decode(aDecoder: MessageCodingData): BaseMessage<IFileMessageBody>;
24
+ encode(): MessageCodingData;
25
+ }
@@ -0,0 +1,28 @@
1
+ import { IUserInfo, IExtraData, BaseMessage, MessageCodingData } from '../baseMessage';
2
+ /**
3
+ * GIF 消息
4
+ */
5
+ export interface IGIFMessageBody extends IExtraData, IUserInfo {
6
+ /**
7
+ * GIF 图片文件大小,单位为 KB
8
+ */
9
+ gifDataSize: number;
10
+ /**
11
+ * GIF 图片资源 url 地址
12
+ */
13
+ remoteUrl: string;
14
+ /**
15
+ * 图片宽度
16
+ */
17
+ width: number;
18
+ /**
19
+ * 图片高度
20
+ */
21
+ height: number;
22
+ }
23
+ export default class GIFMessage extends BaseMessage<IGIFMessageBody> {
24
+ constructor(content: IGIFMessageBody);
25
+ static getObjectId(): number;
26
+ static decode(aDecoder: MessageCodingData): BaseMessage<IGIFMessageBody>;
27
+ encode(): MessageCodingData;
28
+ }
@@ -0,0 +1,32 @@
1
+ import { IUserInfo, IExtraData, IMentionedInfo, BaseMessage, MessageCodingData } from '../baseMessage';
2
+ /**
3
+ * 图片消息
4
+ */
5
+ export interface IImageMessageBody extends IExtraData, IMentionedInfo, IUserInfo {
6
+ /**
7
+ * 图片的略缩图
8
+ * @description
9
+ * 1. 必须是 base64 字符串, 图片类型为 JPG
10
+ * 2. base64 字符串大小不可超过 80 KB
11
+ * 3. 字符串前无媒体类型前缀
12
+ */
13
+ content: string;
14
+ /**
15
+ * 原图远程地址
16
+ */
17
+ imageUri: string;
18
+ /**
19
+ * 图片的宽
20
+ */
21
+ width?: number;
22
+ /**
23
+ * 图片的高
24
+ */
25
+ height?: number;
26
+ }
27
+ export default class ImageMessage extends BaseMessage<IImageMessageBody> {
28
+ constructor(content: IImageMessageBody);
29
+ static getObjectId(): number;
30
+ static decode(aDecoder: MessageCodingData): BaseMessage<IImageMessageBody>;
31
+ encode(): MessageCodingData;
32
+ }
@@ -0,0 +1,10 @@
1
+ import TextMessage, { ITextMessageBody } from './textMessage';
2
+ import ImageMessage, { IImageMessageBody } from './imageMessage';
3
+ import GIFMessage, { IGIFMessageBody } from './gifMessage';
4
+ import HQVoiceMessage, { IHQVoiceMessageBody } from './voiceMessage';
5
+ import FileMessage, { IFileMessageBody } from './fileMessage';
6
+ import RecallCommandMessage, { IRecallCommandMessageBody } from './recallCommandMessage';
7
+ import CommandMessage, { ICommandMessageBody } from './commandMessage';
8
+ import { CustCommandMessage, CustNormalMessage, CustStorageMessage, CustStatusMessage } from './custMessage';
9
+ export { TextMessage, ImageMessage, GIFMessage, HQVoiceMessage, FileMessage, CustCommandMessage, CustNormalMessage, CustStorageMessage, CustStatusMessage, RecallCommandMessage, CommandMessage };
10
+ export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IHQVoiceMessageBody, IFileMessageBody, IRecallCommandMessageBody, ICommandMessageBody };
@@ -0,0 +1,18 @@
1
+ import { BaseMessage, IBaseMessageBody, MessageCodingData } from '../baseMessage';
2
+ import { ConversationType } from '../statusTypes';
3
+ /**
4
+ * 撤回通知消息(被撤回消息摘要)
5
+ */
6
+ export interface IRecallCommandMessageBody extends IBaseMessageBody {
7
+ sentTime: number;
8
+ messageUId: string;
9
+ conversationType: ConversationType;
10
+ targetId: string;
11
+ channelId?: string;
12
+ }
13
+ export default class RecallCommandMessage extends BaseMessage<IRecallCommandMessageBody> {
14
+ constructor(content: IRecallCommandMessageBody);
15
+ static getObjectId(): number;
16
+ static decode(aDecoder: MessageCodingData): BaseMessage<IRecallCommandMessageBody>;
17
+ encode(): MessageCodingData;
18
+ }
@@ -0,0 +1,16 @@
1
+ import { BaseMessage, IExtraData, IMentionedInfo, IUserInfo, MessageCodingData } from '../baseMessage';
2
+ /**
3
+ * 文本消息
4
+ */
5
+ export interface ITextMessageBody extends IUserInfo, IExtraData, IMentionedInfo {
6
+ /**
7
+ * 文本消息内容
8
+ */
9
+ content: string;
10
+ }
11
+ export default class TextMessage extends BaseMessage<ITextMessageBody> {
12
+ constructor(content: ITextMessageBody);
13
+ static getObjectId(): number;
14
+ static decode(aDecoder: MessageCodingData): BaseMessage<ITextMessageBody>;
15
+ encode(): MessageCodingData;
16
+ }
@@ -0,0 +1,21 @@
1
+ import { BaseMessage, IExtraData, IMentionedInfo, IUserInfo, MessageCodingData } from '../baseMessage';
2
+ export interface IHQVoiceMessageBody extends IExtraData, IMentionedInfo, IUserInfo {
3
+ /**
4
+ * 远程媒体资源地址
5
+ */
6
+ remoteUrl: string;
7
+ /**
8
+ * 语音消息的时长,最大值为 60 (单位:秒)
9
+ */
10
+ duration: number;
11
+ /**
12
+ * 编解码类型,默认为 aac 音频
13
+ */
14
+ type?: string;
15
+ }
16
+ export default class HQVoiceMessage extends BaseMessage<IHQVoiceMessageBody> {
17
+ constructor(content: IHQVoiceMessageBody);
18
+ static getObjectId(): number;
19
+ static decode(aDecoder: MessageCodingData): BaseMessage<IHQVoiceMessageBody>;
20
+ encode(): MessageCodingData;
21
+ }