@onyx-p/imlib-web 1.2.4 → 1.2.7

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.
@@ -1,5 +1,5 @@
1
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';
2
+ import { EventListeners, Events, GetHistoryMessageOption, GetHistoryMessageResult, IAsyncRes, IBaseConversationInfo, IConversationOption, IConversationState, IDeleteMessageOptions, IGetConversationListOptions, IImageMessageOption, IInitOption, IPromiseResult, IRecallMessageOptions, ISendBody, ISenderEnrichedMessage, ISendMessageOptions, IUploadHooks, IUploadMessageOption, ProfileInfo, IInsertOptions } from './types';
3
3
  import { BaseMessage, IBaseMessageBody } from './model/baseMessage';
4
4
  import { ITextMessageBody } from './model/messages/textMessage';
5
5
  import IReceivedMessage from './model/iReceivedMessage';
@@ -7,8 +7,8 @@ import IReceivedConversation from './model/iReceivedConversation';
7
7
  import { CommonReqResult, PBCodec } from './net/connection/webSocketServer';
8
8
  import { BaseResp } from './net/pbs/rpc.base';
9
9
  import { IChatRecordMsgDetail } from './model/messages/otherMediaMessages';
10
- export { TextMessage, ImageMessage, HQVoiceMessage, GIFMessage, FileMessage, VideoMessage, RecallCommandMessage, LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage, PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage } from './model/messages';
11
- export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IFileMessageBody, IHQVoiceMessageBody, IRecallCommandMessageBody, IVideoMessageBody, ILocationMessageBody, IChatRecordMessageBody, IContactMessageBody, IInvitationMessageBody, IRedEnvelopeMessageBody, ITransferMessageBody, IBurnAfterReadingMessageBody } from './model/messages';
10
+ export { TextMessage, ImageMessage, HQVoiceMessage, GIFMessage, FileMessage, VideoMessage, RecallCommandMessage, LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage, LinkMessage, PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage } from './model/messages';
11
+ export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IFileMessageBody, IHQVoiceMessageBody, IRecallCommandMessageBody, IVideoMessageBody, ILocationMessageBody, IChatRecordMessageBody, IContactMessageBody, IInvitationMessageBody, IRedEnvelopeMessageBody, ITransferMessageBody, IBurnAfterReadingMessageBody, ILinkMessageBody } from './model/messages';
12
12
  export { MessageTypes, NotiMessageTypes } from './constants/messageTypes';
13
13
  export type { IBaseMessageBody, IReceivedMessage, IReceivedConversation };
14
14
  export * from './types';
@@ -175,6 +175,7 @@ export declare const getTopConversationList: () => IPromiseResult<IBaseConversat
175
175
  * @param isStatusMessage 是否是状态消息
176
176
  */
177
177
  export declare const registerMessageType: <T extends IBaseMessageBody>(messageType: number, isPersited: boolean, isCounted: boolean, isStatusMessage?: boolean) => new (content: T) => BaseMessage<T>;
178
+ export declare const insertMessage: (conversation: IConversationOption, content: IReceivedMessage, options?: IInsertOptions) => Promise<IAsyncRes<IReceivedMessage>>;
178
179
  /**
179
180
  * 发送消息
180
181
  * @param options
@@ -223,7 +224,19 @@ export declare const deleteMessages: (conversation: IConversationOption, message
223
224
  * @param timestamp 清除时间点, 该时间之前的消息将被清除
224
225
  */
225
226
  export declare const clearHistoryMessages: (conversation: IConversationOption) => IPromiseResult<void>;
227
+ /**
228
+ * 解析聊天记录消息详情
229
+ * @param conversation 会话
230
+ * @param detailItems 消息详情
231
+ * @returns 消息列表
232
+ */
226
233
  export declare const parseChatRecordMsgDetails: (conversation: IConversationOption, detailItems: IChatRecordMsgDetail[]) => IReceivedMessage[];
234
+ /**
235
+ * 将消息编码为聊天记录消息详情
236
+ * @param message 消息
237
+ * @returns 消息详情
238
+ */
239
+ export declare const encodeReceivedMessage2ChatRecordMsgDetail: (message: ISenderEnrichedMessage) => IChatRecordMsgDetail | null;
227
240
  /**
228
241
  * 发送已读回执
229
242
  * @param messages 消息列表
@@ -235,9 +248,36 @@ export declare const mockLogin: (config: {
235
248
  phone: string;
236
249
  password: string;
237
250
  }) => CommonReqResult<import("./net/pbs/rpc.login").AuthSignIn2Resp>;
251
+ export declare const mockGetLoginCode: (config: {
252
+ langCode: string;
253
+ phone: string;
254
+ }) => CommonReqResult<import("./net/pbs/rpc.login").WebGetLoginCodeResp>;
255
+ export declare const mockVerifyLoginCode: (config: {
256
+ country: string;
257
+ phone: string;
258
+ code: string;
259
+ }) => CommonReqResult<import("./net/pbs/rpc.login").ClickOKToWebResp>;
238
260
  /**
239
261
  * 清除指定会话中阅后即焚过期的消息
240
262
  * @param conversation 会话信息
241
263
  * @returns 被清除的消息ID列表
242
264
  */
243
265
  export declare const clearBurnAfterReadingExpiredMessages: (conversation: IConversationOption) => IPromiseResult<string[]>;
266
+ /**
267
+ * 发送引用回复消息
268
+ * @param message 消息
269
+ * @param quoteReply 引用回复消息
270
+ * @param options 发送选项
271
+ * @returns 发送结果
272
+ */
273
+ export declare const sendQuoteReplyMessage: (message: BaseMessage, quoteReply: IReceivedMessage, options?: ISendMessageOptions) => IPromiseResult<IReceivedMessage>;
274
+ /**
275
+ * 获取消息
276
+ * @param messageId 消息ID
277
+ * @returns 消息
278
+ */
279
+ export declare const getMessageById: (messageId: number) => IPromiseResult<IReceivedMessage | null | undefined>;
280
+ /**
281
+ * 获取消息
282
+ */
283
+ export declare const getMessageByUId: (messageUId: string) => IPromiseResult<IReceivedMessage | null | undefined>;
@@ -0,0 +1,7 @@
1
+ import IReceivedMessage from "./iReceivedMessage";
2
+ export default interface IQuotedReplyMessage extends IReceivedMessage {
3
+ /**
4
+ * 消息发送者的用户名
5
+ */
6
+ senderUserName?: string | null;
7
+ }
@@ -1,4 +1,5 @@
1
1
  import { ConversationType, MessageDirection, ReceivedStatus, SentStatus } from './statusTypes';
2
+ import IQuotedReplyMessage from './iQuotedReplyMessage';
2
3
  /**
3
4
  * 消息数据
4
5
  */
@@ -75,7 +76,7 @@ export default interface IReceivedMessage {
75
76
  /**
76
77
  * CPP 独有字段 消息本地 ID
77
78
  */
78
- messageId?: string;
79
+ messageId: number;
79
80
  /**
80
81
  * 消息发送状态
81
82
  */
@@ -88,4 +89,8 @@ export default interface IReceivedMessage {
88
89
  * 阅后即焚消息的时长
89
90
  */
90
91
  burnAfterReadingTime?: number;
92
+ /**
93
+ * 引用消息
94
+ */
95
+ quotedReply?: IQuotedReplyMessage;
91
96
  }
@@ -1,9 +1,9 @@
1
- import { MentionedType } from './statusTypes';
2
1
  /**
3
2
  * 群组内的消息包含的 @ 数据
4
3
  */
5
4
  export default interface MentionedInfo {
6
- type?: MentionedType | undefined;
7
- userIdList?: string[] | undefined;
8
- mentionedContent?: string | undefined;
5
+ userList?: {
6
+ uin: string;
7
+ nickname: string;
8
+ }[] | undefined;
9
9
  }
@@ -4,9 +4,9 @@ import GIFMessage, { IGIFMessageBody } from './gifMessage';
4
4
  import HQVoiceMessage, { IHQVoiceMessageBody } from './voiceMessage';
5
5
  import FileMessage, { IFileMessageBody } from './fileMessage';
6
6
  import VideoMessage, { IVideoMessageBody } from './videoMessage';
7
- import { ILocationMessageBody, LocationMessage, IChatRecordMessageBody, ChatRecordMessage, IContactMessageBody, ContactMessage, IInvitationMessageBody, InvitationMessage, IRedEnvelopeMessageBody, RedEnvelopeMessage, ITransferMessageBody, TransferMessage } from './otherMediaMessages';
7
+ import { ILocationMessageBody, LocationMessage, IChatRecordMessageBody, ChatRecordMessage, IContactMessageBody, ContactMessage, IInvitationMessageBody, InvitationMessage, IRedEnvelopeMessageBody, RedEnvelopeMessage, ITransferMessageBody, TransferMessage, ILinkMessageBody, LinkMessage } from './otherMediaMessages';
8
8
  import { IBurnAfterReadingMessageBody } from './notificationMessages';
9
9
  import { PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage } from './notificationMessages';
10
10
  import RecallCommandMessage, { IRecallCommandMessageBody } from './recallCommandMessage';
11
- export { TextMessage, ImageMessage, GIFMessage, HQVoiceMessage, FileMessage, RecallCommandMessage, VideoMessage, LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage, PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage };
12
- export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IHQVoiceMessageBody, IFileMessageBody, IRecallCommandMessageBody, IVideoMessageBody, ILocationMessageBody, IChatRecordMessageBody, IContactMessageBody, IInvitationMessageBody, IRedEnvelopeMessageBody, ITransferMessageBody, IBurnAfterReadingMessageBody };
11
+ export { TextMessage, ImageMessage, GIFMessage, HQVoiceMessage, FileMessage, RecallCommandMessage, VideoMessage, LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage, PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage, LinkMessage };
12
+ export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IHQVoiceMessageBody, IFileMessageBody, IRecallCommandMessageBody, IVideoMessageBody, ILocationMessageBody, IChatRecordMessageBody, IContactMessageBody, IInvitationMessageBody, IRedEnvelopeMessageBody, ITransferMessageBody, IBurnAfterReadingMessageBody, ILinkMessageBody };
@@ -90,10 +90,16 @@ export interface ITransferMessageBody {
90
90
  networkLogo: string;
91
91
  refId: string;
92
92
  }
93
+ export interface ILinkMessageBody {
94
+ url: string;
95
+ title?: string;
96
+ content?: string;
97
+ }
93
98
  declare let LocationMessage: new (content: ILocationMessageBody) => import("../baseMessage").BaseMessage<ILocationMessageBody>;
94
99
  declare let ChatRecordMessage: new (content: IChatRecordMessageBody) => import("../baseMessage").BaseMessage<IChatRecordMessageBody>;
95
100
  declare let ContactMessage: new (content: IContactMessageBody) => import("../baseMessage").BaseMessage<IContactMessageBody>;
96
101
  declare let InvitationMessage: new (content: IInvitationMessageBody) => import("../baseMessage").BaseMessage<IInvitationMessageBody>;
97
102
  declare let RedEnvelopeMessage: new (content: IRedEnvelopeMessageBody) => import("../baseMessage").BaseMessage<IRedEnvelopeMessageBody>;
98
103
  declare let TransferMessage: new (content: ITransferMessageBody) => import("../baseMessage").BaseMessage<ITransferMessageBody>;
99
- export { LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage };
104
+ declare let LinkMessage: new (content: ILinkMessageBody) => import("../baseMessage").BaseMessage<ILinkMessageBody>;
105
+ export { LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage, LinkMessage };
@@ -137,7 +137,7 @@ export interface ISendMessageOptions {
137
137
  /**
138
138
  * 消息发送之前的回调
139
139
  */
140
- onSendBefore?: (message: IReceivedMessage) => void;
140
+ onSendBefore?: (message: IReceivedMessage, uploadOptions?: IUploadMessageParams) => void;
141
141
  /**
142
142
  * 重发消息时用到,重发消息的 messageId。
143
143
  * 当要重发消息时所有参数需与原始消息参数一致,messageId 必须存在。
@@ -166,11 +166,19 @@ export interface IUploadHooks {
166
166
  /**
167
167
  * 文件上传完成回调,可通过修改返回值以修改待发布的消息内容,如实现自定义消息
168
168
  */
169
- onComplete?: (fileInfo: IUploadCompletedResult) => void | BaseMessage;
169
+ onComplete?: (result: IUploadCompletedResult) => void | BaseMessage;
170
170
  }
171
+ export interface IUploadMessageParams {
172
+ items: {
173
+ url: string;
174
+ file: Blob;
175
+ }[];
176
+ encryptKey: string;
177
+ }
178
+ export type IUploadPrepareResult = IUploadMessageParams;
171
179
  export type IUploadCompletedResult = {
172
180
  urls: string[];
173
- encryptedKey?: string;
181
+ encryptedKey: string;
174
182
  };
175
183
  export type IUploadCallback = {
176
184
  onProgress?: (progress: number) => void;
@@ -178,13 +186,15 @@ export type IUploadCallback = {
178
186
  onError?: (reason: string) => void;
179
187
  };
180
188
  export interface IUploader {
181
- upload(files: Blob[], callback: IUploadCallback): void;
189
+ upload(params: IUploadMessageParams, callback: IUploadCallback): void;
182
190
  cancel(): void;
191
+ prepare(files: Blob[]): Promise<IUploadPrepareResult>;
183
192
  }
184
193
  /**
185
194
  * 文件消息配置
186
195
  */
187
196
  export interface IUploadMessageOption extends ISendMessageOptions {
197
+ full?: boolean;
188
198
  }
189
199
  /**
190
200
  * 图片消息配置
@@ -192,6 +202,12 @@ export interface IUploadMessageOption extends ISendMessageOptions {
192
202
  export interface IImageMessageOption extends IUploadMessageOption {
193
203
  thumbnailConfig?: IThumbnailConfig;
194
204
  }
205
+ export interface IInsertOptions {
206
+ /**
207
+ * 插入消息是否计入未读数: true 计数 false 不计数, 默认不计数
208
+ */
209
+ isUnread?: boolean;
210
+ }
195
211
  /**
196
212
  * 缩略图配置
197
213
  */
@@ -295,3 +311,7 @@ export interface IAsyncRes<T = any> {
295
311
  * 通过 `Promise.resolve` 来处理预期内的异常,进而通过 Uncatch Promise Error 暴露预期外的异常
296
312
  */
297
313
  export type IPromiseResult<T> = Promise<IAsyncRes<T>>;
314
+ export interface ISenderEnrichedMessage extends IReceivedMessage {
315
+ senderNickname: string;
316
+ senderAvatar?: string | null | undefined;
317
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "1.2.4",
3
+ "version": "1.2.7",
4
4
  "main": "./dist/index.umd.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/types/index.d.ts",