@onyx-p/imlib-web 2.6.1 → 2.6.2

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/index.esm.js CHANGED
@@ -22273,6 +22273,28 @@ class MessageCache {
22273
22273
  return null;
22274
22274
  }
22275
22275
  }
22276
+ decryptMessage(message) {
22277
+ const decryptedMessage = {
22278
+ ...message
22279
+ };
22280
+ if (typeof decryptedMessage.content === 'string' && decryptedMessage.content) {
22281
+ try {
22282
+ decryptedMessage.content = this.decryptContent(decryptedMessage.content);
22283
+ } catch (error) {
22284
+ logger.error('解密消息内容失败', error);
22285
+ decryptedMessage.content = null;
22286
+ }
22287
+ }
22288
+ if (decryptedMessage.quotedReply && typeof decryptedMessage.quotedReply.content === 'string' && decryptedMessage.quotedReply.content) {
22289
+ try {
22290
+ decryptedMessage.quotedReply.content = this.decryptContent(decryptedMessage.quotedReply.content);
22291
+ } catch (error) {
22292
+ logger.error('解密引用消息内容失败', error);
22293
+ decryptedMessage.quotedReply.content = null;
22294
+ }
22295
+ }
22296
+ return decryptedMessage;
22297
+ }
22276
22298
  async addMessages(messages, toConversation, isEnd = undefined) {
22277
22299
  const dialogId = getFullDialogId(toConversation);
22278
22300
  if (isDef(isEnd)) {
@@ -22339,25 +22361,7 @@ class MessageCache {
22339
22361
  const cursor = event.target.result;
22340
22362
  if (cursor) {
22341
22363
  if (processedCount < count) {
22342
- const message = {
22343
- ...cursor.value
22344
- };
22345
- if (typeof message.content === 'string' && message.content) {
22346
- try {
22347
- message.content = this.decryptContent(message.content);
22348
- } catch (error) {
22349
- logger.error('Failed to decrypt message content', error);
22350
- message.content = null;
22351
- }
22352
- }
22353
- if (message.quotedReply && typeof message.quotedReply.content === 'string' && message.quotedReply.content) {
22354
- try {
22355
- message.quotedReply.content = this.decryptContent(message.quotedReply.content);
22356
- } catch (error) {
22357
- logger.error('Failed to decrypt reference message content', error);
22358
- message.quotedReply.content = null;
22359
- }
22360
- }
22364
+ const message = this.decryptMessage(cursor.value);
22361
22365
  messages.push(message);
22362
22366
  processedCount++;
22363
22367
  cursor.continue();
@@ -22566,17 +22570,7 @@ class MessageCache {
22566
22570
  cursorRequest.onsuccess = event => {
22567
22571
  const cursor = event.target.result;
22568
22572
  if (cursor) {
22569
- const message = {
22570
- ...cursor.value
22571
- };
22572
- if (typeof message.content === 'string' && message.content) {
22573
- try {
22574
- message.content = this.decryptContent(message.content);
22575
- } catch (error) {
22576
- logger.error('Failed to decrypt message content', error);
22577
- message.content = null;
22578
- }
22579
- }
22573
+ const message = this.decryptMessage(cursor.value);
22580
22574
  resolve(message);
22581
22575
  } else {
22582
22576
  resolve(null);
@@ -22602,17 +22596,7 @@ class MessageCache {
22602
22596
  request.onsuccess = () => {
22603
22597
  const message = request.result;
22604
22598
  if (message) {
22605
- const decryptedMessage = {
22606
- ...message
22607
- };
22608
- if (typeof decryptedMessage.content === 'string' && decryptedMessage.content) {
22609
- try {
22610
- decryptedMessage.content = this.decryptContent(decryptedMessage.content);
22611
- } catch (error) {
22612
- logger.error('解密消息内容失败', error);
22613
- decryptedMessage.content = null;
22614
- }
22615
- }
22599
+ const decryptedMessage = this.decryptMessage(message);
22616
22600
  resolve(decryptedMessage);
22617
22601
  } else {
22618
22602
  resolve(null);
@@ -22719,6 +22703,30 @@ class MessageCache {
22719
22703
  };
22720
22704
  });
22721
22705
  }
22706
+ async getMessageByUId(messageUId) {
22707
+ if (!this.db) {
22708
+ return null;
22709
+ }
22710
+ return new Promise((resolve, reject) => {
22711
+ const transaction = this.db.transaction(this.STORE_NAME, 'readonly');
22712
+ const store = transaction.objectStore(this.STORE_NAME);
22713
+ const index = store.index('messageUId');
22714
+ const request = index.get(messageUId);
22715
+ request.onsuccess = () => {
22716
+ const message = request.result;
22717
+ if (message) {
22718
+ const decryptedMessage = this.decryptMessage(message);
22719
+ resolve(decryptedMessage);
22720
+ } else {
22721
+ resolve(null);
22722
+ }
22723
+ };
22724
+ request.onerror = event => {
22725
+ logger.error('查询消息失败', event);
22726
+ resolve(null);
22727
+ };
22728
+ });
22729
+ }
22722
22730
  }
22723
22731
  let cache = null;
22724
22732
  var MessageCache$1 = {
@@ -31027,6 +31035,12 @@ class IMClient extends EventEmitter {
31027
31035
  }
31028
31036
  return removedMsgUids;
31029
31037
  }
31038
+ async getMessageById(messageId) {
31039
+ return MessageCache$1.get()?.getMessageById(messageId);
31040
+ }
31041
+ async getMessageByUId(messageUId) {
31042
+ return MessageCache$1.get()?.getMessageByUId(messageUId);
31043
+ }
31030
31044
  }
31031
31045
 
31032
31046
  /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
@@ -32301,5 +32315,19 @@ const clearBurnAfterReadingExpiredMessages = async conversation => {
32301
32315
  const sendQuoteReplyMessage = async (message, quoteReply, options) => {
32302
32316
  return await imClient.sendQuoteReplyMessage(message, quoteReply, options);
32303
32317
  };
32318
+ const getMessageById = async messageId => {
32319
+ const message = await imClient.getMessageById(messageId);
32320
+ return {
32321
+ code: ErrorCode.SUCCESS,
32322
+ data: message
32323
+ };
32324
+ };
32325
+ const getMessageByUId = async messageUId => {
32326
+ const message = await imClient.getMessageByUId(messageUId);
32327
+ return {
32328
+ code: ErrorCode.SUCCESS,
32329
+ data: message
32330
+ };
32331
+ };
32304
32332
 
32305
- export { ChatRecordMessage, ConnectionStatus, ContactMessage, ConversationType, ErrorCode, ErrorDesc, Events, FileMessage, GIFMessage, GroupCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, VoiceMessage as HQVoiceMessage, ImageMessage, InvitationMessage, LocationMessage, LogLevel, MentionedType, MessageDirection, MessageTypes, NotiMessageTypes, NotificationLevel, NotificationStatus, PrivateCloseBurnAfterReadingMessage, PrivateOpenBurnAfterReadingMessage, RecallCommandMessage, ReceivedStatus, RedEnvelopeMessage, SentStatus, TextMessage, TransferMessage, VideoMessage, addEventListener, clearAllMessagesUnreadStatus, clearBurnAfterReadingExpiredMessages, clearHistoryMessages, clearMessagesUnreadStatus, clearTextMessageDraft, connect, deleteMessages, disconnect, getAllConversationState, getAllUnreadMentionedCount, getBlockedConversationList, getConnectionStatus, getConversation, getConversationList, getConversationNotificationLevel, getConversationNotificationStatus, getConversationState, getRemoteHistoryMessages, getServerTime, getTextMessageDraft, getTopConversationList, getTotalUnreadCount, getUnreadCount, getUnreadMentionedCount, init, logOut, mockLogin, onceEventListener, parseChatRecordMsgDetails, recallMessage, registerMessageType, removeConversation, removeEventListener, request, saveTextMessageDraft, sendFileMessage, sendGIFMessage, sendHQVoiceMessage, sendImageMessage, sendMessage, sendQuoteReplyMessage, sendReadReceipts, sendSightMessage, sendTextMessage, setConversationNotificationStatus, setConversationToTop, setUserLogged };
32333
+ export { ChatRecordMessage, ConnectionStatus, ContactMessage, ConversationType, ErrorCode, ErrorDesc, Events, FileMessage, GIFMessage, GroupCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, VoiceMessage as HQVoiceMessage, ImageMessage, InvitationMessage, LocationMessage, LogLevel, MentionedType, MessageDirection, MessageTypes, NotiMessageTypes, NotificationLevel, NotificationStatus, PrivateCloseBurnAfterReadingMessage, PrivateOpenBurnAfterReadingMessage, RecallCommandMessage, ReceivedStatus, RedEnvelopeMessage, SentStatus, TextMessage, TransferMessage, VideoMessage, addEventListener, clearAllMessagesUnreadStatus, clearBurnAfterReadingExpiredMessages, clearHistoryMessages, clearMessagesUnreadStatus, clearTextMessageDraft, connect, deleteMessages, disconnect, getAllConversationState, getAllUnreadMentionedCount, getBlockedConversationList, getConnectionStatus, getConversation, getConversationList, getConversationNotificationLevel, getConversationNotificationStatus, getConversationState, getMessageById, getMessageByUId, getRemoteHistoryMessages, getServerTime, getTextMessageDraft, getTopConversationList, getTotalUnreadCount, getUnreadCount, getUnreadMentionedCount, init, logOut, mockLogin, onceEventListener, parseChatRecordMsgDetails, recallMessage, registerMessageType, removeConversation, removeEventListener, request, saveTextMessageDraft, sendFileMessage, sendGIFMessage, sendHQVoiceMessage, sendImageMessage, sendMessage, sendQuoteReplyMessage, sendReadReceipts, sendSightMessage, sendTextMessage, setConversationNotificationStatus, setConversationToTop, setUserLogged };
package/index.umd.js CHANGED
@@ -22279,6 +22279,28 @@
22279
22279
  return null;
22280
22280
  }
22281
22281
  }
22282
+ decryptMessage(message) {
22283
+ const decryptedMessage = {
22284
+ ...message
22285
+ };
22286
+ if (typeof decryptedMessage.content === 'string' && decryptedMessage.content) {
22287
+ try {
22288
+ decryptedMessage.content = this.decryptContent(decryptedMessage.content);
22289
+ } catch (error) {
22290
+ logger.error('解密消息内容失败', error);
22291
+ decryptedMessage.content = null;
22292
+ }
22293
+ }
22294
+ if (decryptedMessage.quotedReply && typeof decryptedMessage.quotedReply.content === 'string' && decryptedMessage.quotedReply.content) {
22295
+ try {
22296
+ decryptedMessage.quotedReply.content = this.decryptContent(decryptedMessage.quotedReply.content);
22297
+ } catch (error) {
22298
+ logger.error('解密引用消息内容失败', error);
22299
+ decryptedMessage.quotedReply.content = null;
22300
+ }
22301
+ }
22302
+ return decryptedMessage;
22303
+ }
22282
22304
  async addMessages(messages, toConversation, isEnd = undefined) {
22283
22305
  const dialogId = getFullDialogId(toConversation);
22284
22306
  if (isDef(isEnd)) {
@@ -22345,25 +22367,7 @@
22345
22367
  const cursor = event.target.result;
22346
22368
  if (cursor) {
22347
22369
  if (processedCount < count) {
22348
- const message = {
22349
- ...cursor.value
22350
- };
22351
- if (typeof message.content === 'string' && message.content) {
22352
- try {
22353
- message.content = this.decryptContent(message.content);
22354
- } catch (error) {
22355
- logger.error('Failed to decrypt message content', error);
22356
- message.content = null;
22357
- }
22358
- }
22359
- if (message.quotedReply && typeof message.quotedReply.content === 'string' && message.quotedReply.content) {
22360
- try {
22361
- message.quotedReply.content = this.decryptContent(message.quotedReply.content);
22362
- } catch (error) {
22363
- logger.error('Failed to decrypt reference message content', error);
22364
- message.quotedReply.content = null;
22365
- }
22366
- }
22370
+ const message = this.decryptMessage(cursor.value);
22367
22371
  messages.push(message);
22368
22372
  processedCount++;
22369
22373
  cursor.continue();
@@ -22572,17 +22576,7 @@
22572
22576
  cursorRequest.onsuccess = event => {
22573
22577
  const cursor = event.target.result;
22574
22578
  if (cursor) {
22575
- const message = {
22576
- ...cursor.value
22577
- };
22578
- if (typeof message.content === 'string' && message.content) {
22579
- try {
22580
- message.content = this.decryptContent(message.content);
22581
- } catch (error) {
22582
- logger.error('Failed to decrypt message content', error);
22583
- message.content = null;
22584
- }
22585
- }
22579
+ const message = this.decryptMessage(cursor.value);
22586
22580
  resolve(message);
22587
22581
  } else {
22588
22582
  resolve(null);
@@ -22608,17 +22602,7 @@
22608
22602
  request.onsuccess = () => {
22609
22603
  const message = request.result;
22610
22604
  if (message) {
22611
- const decryptedMessage = {
22612
- ...message
22613
- };
22614
- if (typeof decryptedMessage.content === 'string' && decryptedMessage.content) {
22615
- try {
22616
- decryptedMessage.content = this.decryptContent(decryptedMessage.content);
22617
- } catch (error) {
22618
- logger.error('解密消息内容失败', error);
22619
- decryptedMessage.content = null;
22620
- }
22621
- }
22605
+ const decryptedMessage = this.decryptMessage(message);
22622
22606
  resolve(decryptedMessage);
22623
22607
  } else {
22624
22608
  resolve(null);
@@ -22725,6 +22709,30 @@
22725
22709
  };
22726
22710
  });
22727
22711
  }
22712
+ async getMessageByUId(messageUId) {
22713
+ if (!this.db) {
22714
+ return null;
22715
+ }
22716
+ return new Promise((resolve, reject) => {
22717
+ const transaction = this.db.transaction(this.STORE_NAME, 'readonly');
22718
+ const store = transaction.objectStore(this.STORE_NAME);
22719
+ const index = store.index('messageUId');
22720
+ const request = index.get(messageUId);
22721
+ request.onsuccess = () => {
22722
+ const message = request.result;
22723
+ if (message) {
22724
+ const decryptedMessage = this.decryptMessage(message);
22725
+ resolve(decryptedMessage);
22726
+ } else {
22727
+ resolve(null);
22728
+ }
22729
+ };
22730
+ request.onerror = event => {
22731
+ logger.error('查询消息失败', event);
22732
+ resolve(null);
22733
+ };
22734
+ });
22735
+ }
22728
22736
  }
22729
22737
  let cache = null;
22730
22738
  var MessageCache$1 = {
@@ -31033,6 +31041,12 @@
31033
31041
  }
31034
31042
  return removedMsgUids;
31035
31043
  }
31044
+ async getMessageById(messageId) {
31045
+ return MessageCache$1.get()?.getMessageById(messageId);
31046
+ }
31047
+ async getMessageByUId(messageUId) {
31048
+ return MessageCache$1.get()?.getMessageByUId(messageUId);
31049
+ }
31036
31050
  }
31037
31051
 
31038
31052
  /*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/
@@ -32307,6 +32321,20 @@
32307
32321
  const sendQuoteReplyMessage = async (message, quoteReply, options) => {
32308
32322
  return await imClient.sendQuoteReplyMessage(message, quoteReply, options);
32309
32323
  };
32324
+ const getMessageById = async messageId => {
32325
+ const message = await imClient.getMessageById(messageId);
32326
+ return {
32327
+ code: exports.ErrorCode.SUCCESS,
32328
+ data: message
32329
+ };
32330
+ };
32331
+ const getMessageByUId = async messageUId => {
32332
+ const message = await imClient.getMessageByUId(messageUId);
32333
+ return {
32334
+ code: exports.ErrorCode.SUCCESS,
32335
+ data: message
32336
+ };
32337
+ };
32310
32338
 
32311
32339
  exports.ChatRecordMessage = ChatRecordMessage;
32312
32340
  exports.ContactMessage = ContactMessage;
@@ -32346,6 +32374,8 @@
32346
32374
  exports.getConversationNotificationLevel = getConversationNotificationLevel;
32347
32375
  exports.getConversationNotificationStatus = getConversationNotificationStatus;
32348
32376
  exports.getConversationState = getConversationState;
32377
+ exports.getMessageById = getMessageById;
32378
+ exports.getMessageByUId = getMessageByUId;
32349
32379
  exports.getRemoteHistoryMessages = getRemoteHistoryMessages;
32350
32380
  exports.getServerTime = getServerTime;
32351
32381
  exports.getTextMessageDraft = getTextMessageDraft;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "2.6.1",
3
+ "version": "2.6.2",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
6
  "types": "types/index.d.ts",
package/types/index.d.ts CHANGED
@@ -241,4 +241,21 @@ export declare const mockLogin: (config: {
241
241
  * @returns 被清除的消息ID列表
242
242
  */
243
243
  export declare const clearBurnAfterReadingExpiredMessages: (conversation: IConversationOption) => IPromiseResult<string[]>;
244
+ /**
245
+ * 发送引用回复消息
246
+ * @param message 消息
247
+ * @param quoteReply 引用回复消息
248
+ * @param options 发送选项
249
+ * @returns 发送结果
250
+ */
244
251
  export declare const sendQuoteReplyMessage: (message: BaseMessage, quoteReply: IReceivedMessage, options?: ISendMessageOptions) => IPromiseResult<IReceivedMessage>;
252
+ /**
253
+ * 获取消息
254
+ * @param messageId 消息ID
255
+ * @returns 消息
256
+ */
257
+ export declare const getMessageById: (messageId: number) => IPromiseResult<IReceivedMessage | null | undefined>;
258
+ /**
259
+ * 获取消息
260
+ */
261
+ export declare const getMessageByUId: (messageUId: string) => IPromiseResult<IReceivedMessage | null | undefined>;