@onyx-p/imlib-web 1.8.0 → 1.8.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
@@ -19539,7 +19539,11 @@ const NotiMessageTypes = {
19539
19539
  GROUP_ARRIVAL_RECEIPT: 0x60020024,
19540
19540
  GROUP_READ_RECEIPT: 0x60020025,
19541
19541
  PRIVATE_ARRIVAL_RECEIPT: 0x6001000C,
19542
- PRIVATE_READ_RECEIPT: 0x6001000D
19542
+ PRIVATE_READ_RECEIPT: 0x6001000D,
19543
+ PRIVATE_OPEN_BURNAFTERREADING: 0x60010002,
19544
+ PRIVATE_CLOSE_BURNAFTERREADING: 0x60010003,
19545
+ GROUP_OPEN_BURNAFTERREADING: 0x60020008,
19546
+ GROUP_CLOSE_BURNAFTERREADING: 0x60020009
19543
19547
  };
19544
19548
 
19545
19549
  function deepClone(obj) {
@@ -19591,6 +19595,14 @@ const ConversationKey2StorageKey = {
19591
19595
  smallAvatarUrl: {
19592
19596
  keyName: 'sa',
19593
19597
  defaultVal: null
19598
+ },
19599
+ burnAfterReadingFlag: {
19600
+ keyName: 'brf',
19601
+ defaultVal: false
19602
+ },
19603
+ burnAfterReadingTime: {
19604
+ keyName: 'brt',
19605
+ defaultVal: 0
19594
19606
  }
19595
19607
  };
19596
19608
  class ConversationStore {
@@ -19778,7 +19790,9 @@ const transBriefDialog2IReceivedConversation = dialog => {
19778
19790
  isTop: !!dialog.stickyFlag,
19779
19791
  dialogTitle: dialog.dialogTitle,
19780
19792
  smallAvatarUrl: dialog.smallAvatarUrl,
19781
- lastUnreadTime: '0'
19793
+ lastUnreadTime: '0',
19794
+ burnAfterReadingFlag: !!dialog.burnAfterReadingFlag,
19795
+ burnAfterReadingTime: dialog.burnAfterReadingTime && dialog.burnAfterReadingTime.toNumber()
19782
19796
  };
19783
19797
  return conversationObj;
19784
19798
  };
@@ -19910,7 +19924,9 @@ class ConversationManager {
19910
19924
  notificationStatus,
19911
19925
  notificationLevel,
19912
19926
  dialogTitle,
19913
- smallAvatarUrl
19927
+ smallAvatarUrl,
19928
+ burnAfterReadingFlag,
19929
+ burnAfterReadingTime
19914
19930
  } = conversation;
19915
19931
  this.localConversationSet.add(this.getConversationKey(conversation));
19916
19932
  this.addStatus({
@@ -19920,7 +19936,9 @@ class ConversationManager {
19920
19936
  notificationStatus,
19921
19937
  notificationLevel,
19922
19938
  dialogTitle,
19923
- smallAvatarUrl
19939
+ smallAvatarUrl,
19940
+ burnAfterReadingFlag,
19941
+ burnAfterReadingTime
19924
19942
  }, false);
19925
19943
  }
19926
19944
  addStatus(statusItem, shouldNotify = false) {
@@ -19931,7 +19949,9 @@ class ConversationManager {
19931
19949
  notificationLevel,
19932
19950
  isTop,
19933
19951
  dialogTitle,
19934
- smallAvatarUrl
19952
+ smallAvatarUrl,
19953
+ burnAfterReadingFlag,
19954
+ burnAfterReadingTime
19935
19955
  } = statusItem;
19936
19956
  const conOpt = {
19937
19957
  conversationType,
@@ -19970,12 +19990,26 @@ class ConversationManager {
19970
19990
  val: smallAvatarUrl
19971
19991
  };
19972
19992
  }
19993
+ if (isDef(burnAfterReadingFlag) && storageConversation.burnAfterReadingFlag !== burnAfterReadingFlag) {
19994
+ updatedItems.burnAfterReadingFlag = {
19995
+ time: updatedTime,
19996
+ val: burnAfterReadingFlag
19997
+ };
19998
+ }
19999
+ if (isDef(burnAfterReadingTime) && storageConversation.burnAfterReadingTime !== burnAfterReadingTime) {
20000
+ updatedItems.burnAfterReadingTime = {
20001
+ time: updatedTime,
20002
+ val: burnAfterReadingTime
20003
+ };
20004
+ }
19973
20005
  this.store.set(conOpt, {
19974
20006
  notificationStatus,
19975
20007
  isTop,
19976
20008
  notificationLevel,
19977
20009
  dialogTitle,
19978
- smallAvatarUrl
20010
+ smallAvatarUrl,
20011
+ burnAfterReadingFlag,
20012
+ burnAfterReadingTime
19979
20013
  });
19980
20014
  if (Object.keys(updatedItems).length && shouldNotify) {
19981
20015
  this.setUpdatedConversation({
@@ -20342,7 +20376,9 @@ const parseSingleDialogMessages = (dialogId, originalMessageList, aesKey) => {
20342
20376
  receivedTime: getServerTime$1().toString(),
20343
20377
  isStatusMessage: messageInstance.isStatusMessage,
20344
20378
  receivedStatus: dialogMessage.msgRead ? ReceivedStatus.READ : dialogMessage.msgArrival ? ReceivedStatus.RECEIVED : ReceivedStatus.IDLE,
20345
- disableNotification: localConversation?.notificationStatus === NotificationStatus.OPEN || dialogMessage.srcId.toString() == accountStore.uid
20379
+ disableNotification: localConversation?.notificationStatus === NotificationStatus.OPEN || dialogMessage.srcId.toString() == accountStore.uid,
20380
+ burnAfterReadingFlag: dialogMessage.burnAfterReadingFlag,
20381
+ burnAfterReadingTime: dialogMessage.burnAfterReadingTime && dialogMessage.burnAfterReadingTime.toNumber()
20346
20382
  };
20347
20383
  if (receivedMessage.isStatusMessage && Long.fromNumber(getServerTime$1()).subtract(receivedMessage.sentTime).greaterThan(STATUSMESSAGE_ALIVE_TIMEMS)) {
20348
20384
  return;
@@ -20364,9 +20400,6 @@ const decodeMessageContent = (dialogMessage, aesKey) => {
20364
20400
  if (dialogMessage.msgPostContent?.length) {
20365
20401
  msgPostContent = aes256Decrypt(dialogMessage.msgPostContent, aesKey);
20366
20402
  }
20367
- if (dialogMessage.mediaConstructor === 0x60010012 || dialogMessage.mediaConstructor === 0x60020021) {
20368
- mediaAttribute = transMsgIdNum64ToString(mediaAttribute);
20369
- }
20370
20403
  return parseMediaAttributeJson(dialogMessage.mediaConstructor, mediaAttribute, msgPostContent);
20371
20404
  } catch (error) {
20372
20405
  logger.error('decode message content fail -> uid:', dialogMessage.msgId.toString());
@@ -20386,8 +20419,8 @@ const parseMediaAttributeJson = (mediaConstructor, mediaAttribute, msgPostConten
20386
20419
  return mediaAttributeJson;
20387
20420
  };
20388
20421
  const convertInt64ToString = jsonString => {
20389
- const int64Regex = /:\s*(\d{15,})/g;
20390
- return jsonString.replace(int64Regex, (match, number) => `: "${number}"`);
20422
+ const int64Regex = /(?<!")\b(\d{15,})\b(?!")/g;
20423
+ return jsonString.replace(int64Regex, '"$1"');
20391
20424
  };
20392
20425
  const parseChatRecordMsgDetails$1 = (conversationOpt, msgDetails) => {
20393
20426
  let contentList = [];
@@ -20420,10 +20453,6 @@ const parseChatRecordMsgDetails$1 = (conversationOpt, msgDetails) => {
20420
20453
  });
20421
20454
  return contentList;
20422
20455
  };
20423
- const transMsgIdNum64ToString = jsonString => {
20424
- const reg = /("msgId")\s*:\s*(\d+)/g;
20425
- return jsonString.replace(reg, (r1, r2, r3) => `${r2}:"${r3}"`);
20426
- };
20427
20456
  var serverMessageParser = {
20428
20457
  parse,
20429
20458
  parseSingleDialogMessages,
@@ -20652,6 +20681,9 @@ class MessageLoader {
20652
20681
  recallMessageIndexes.push(messageList.length - 1);
20653
20682
  }
20654
20683
  }
20684
+ if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
20685
+ this.handleBurnAfterReadingMessage(m);
20686
+ }
20655
20687
  });
20656
20688
  let recallMessageUIds = [];
20657
20689
  let deletedMessageIndexes = [];
@@ -20699,6 +20731,22 @@ class MessageLoader {
20699
20731
  }
20700
20732
  });
20701
20733
  }
20734
+ handleBurnAfterReadingMessage(message) {
20735
+ const content = message.content;
20736
+ const conversationType = message.conversationType;
20737
+ const targetId = message.targetId;
20738
+ const {
20739
+ templateId,
20740
+ burnAfterReadingTime
20741
+ } = content;
20742
+ const burnAfterReadingFlag = templateId === 60010010 || templateId === 60010011;
20743
+ ConversationManager$1.get().addStatus({
20744
+ conversationType,
20745
+ targetId,
20746
+ burnAfterReadingFlag: burnAfterReadingFlag,
20747
+ burnAfterReadingTime: burnAfterReadingFlag ? burnAfterReadingTime : null
20748
+ }, true);
20749
+ }
20702
20750
  handleReceiptMessages(messages) {
20703
20751
  try {
20704
20752
  const normalMessages = [];
@@ -20787,12 +20835,16 @@ let InvitationMessage = registerMessageType$1(MessageTypes.GROUP_INVITATION, tru
20787
20835
  let RedEnvelopeMessage = registerMessageType$1(MessageTypes.REDPACKET, true, true, false);
20788
20836
  let TransferMessage = registerMessageType$1(MessageTypes.TRANSFER, true, true, false);
20789
20837
 
20790
- const RecallCommandMessage = registerMessageType$1(MessageTypes.RECALL, true, false, false);
20791
-
20792
20838
  const GroupArrivalReceiptMessage = registerMessageType$1(NotiMessageTypes.GROUP_ARRIVAL_RECEIPT, false, false, true);
20793
20839
  const GroupReadReceiptMessage = registerMessageType$1(NotiMessageTypes.GROUP_READ_RECEIPT, false, false, true);
20794
20840
  const PrivateArrivalReceiptMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_ARRIVAL_RECEIPT, false, false, true);
20795
20841
  const PrivateReadReceiptMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_READ_RECEIPT, false, false, true);
20842
+ const PrivateOpenBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, false, false, true);
20843
+ const PrivateCloseBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, false, false, true);
20844
+ const GroupOpenBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, false, false, true);
20845
+ const GroupCloseBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING, false, false, true);
20846
+
20847
+ const RecallCommandMessage = registerMessageType$1(MessageTypes.RECALL, true, false, false);
20796
20848
 
20797
20849
  const DEFAULT_SOCKET_URI = 'wss://imweb.mp.net:6443';
20798
20850
  class LibLoader {
@@ -20860,6 +20912,10 @@ class LibLoader {
20860
20912
  registerMessage(NotiMessageTypes.GROUP_READ_RECEIPT, GroupReadReceiptMessage);
20861
20913
  registerMessage(NotiMessageTypes.PRIVATE_ARRIVAL_RECEIPT, PrivateArrivalReceiptMessage);
20862
20914
  registerMessage(NotiMessageTypes.PRIVATE_READ_RECEIPT, PrivateReadReceiptMessage);
20915
+ registerMessage(NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, PrivateOpenBurnAfterReadingMessage);
20916
+ registerMessage(NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, PrivateCloseBurnAfterReadingMessage);
20917
+ registerMessage(NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, GroupOpenBurnAfterReadingMessage);
20918
+ registerMessage(NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING, GroupCloseBurnAfterReadingMessage);
20863
20919
  }
20864
20920
  async connect() {
20865
20921
  if (this.connectionStatus === ConnectionStatus.CONNECTED) {
@@ -27559,7 +27615,8 @@ const transSentAttrs2IReceivedMessage = (message, options, sentStatus = SentStat
27559
27615
  receivedTime: '0',
27560
27616
  isStatusMessage: message.isStatusMessage,
27561
27617
  receivedStatus: ReceivedStatus.IDLE,
27562
- disableNotification: true
27618
+ disableNotification: true,
27619
+ burnAfterReadingFlag: false
27563
27620
  });
27564
27621
 
27565
27622
  let UniqueLocalId = 0;
@@ -29820,4 +29877,4 @@ const _logSendError = (conversation, errorCode) => {
29820
29877
  }
29821
29878
  };
29822
29879
 
29823
- export { ChatRecordMessage, ConnectionStatus, ContactMessage, ConversationType, ErrorCode, ErrorDesc, Events, FileMessage, GIFMessage, VoiceMessage as HQVoiceMessage, ImageMessage, InvitationMessage, LocationMessage, LogLevel, MentionedType, MessageDirection, MessageTypes, NotificationLevel, NotificationStatus, RecallCommandMessage, ReceivedStatus, RedEnvelopeMessage, SentStatus, TextMessage, TransferMessage, VideoMessage, addEventListener, clearAllMessagesUnreadStatus, clearHistoryMessages, clearMessagesUnreadStatus, clearTextMessageDraft, connect, deleteMessages, disconnect, getAllConversationState, getAllUnreadMentionedCount, getBlockedConversationList, getConnectionStatus, getConversation, getConversationList, getConversationNotificationLevel, getConversationNotificationStatus, getConversationState, getHistoryMessages, getRemoteHistoryMessages, getServerTime, getTextMessageDraft, getTopConversationList, getTotalUnreadCount, getUnreadCount, getUnreadMentionedCount, init, logOut, mockLogin, onceEventListener, parseChatRecordMsgDetails, recallMessage, registerMessageType, removeConversation, removeEventListener, request, saveTextMessageDraft, sendFileMessage, sendGIFMessage, sendHQVoiceMessage, sendImageMessage, sendMessage, sendReadReceipts, sendSightMessage, sendTextMessage, setConversationNotificationStatus, setConversationToTop, setUserLogged };
29880
+ export { ChatRecordMessage, ConnectionStatus, ContactMessage, ConversationType, ErrorCode, ErrorDesc, Events, FileMessage, GIFMessage, GroupCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, VoiceMessage as HQVoiceMessage, ImageMessage, InvitationMessage, LocationMessage, LogLevel, MentionedType, MessageDirection, MessageTypes, NotificationLevel, NotificationStatus, PrivateCloseBurnAfterReadingMessage, PrivateOpenBurnAfterReadingMessage, RecallCommandMessage, ReceivedStatus, RedEnvelopeMessage, SentStatus, TextMessage, TransferMessage, VideoMessage, addEventListener, clearAllMessagesUnreadStatus, clearHistoryMessages, clearMessagesUnreadStatus, clearTextMessageDraft, connect, deleteMessages, disconnect, getAllConversationState, getAllUnreadMentionedCount, getBlockedConversationList, getConnectionStatus, getConversation, getConversationList, getConversationNotificationLevel, getConversationNotificationStatus, getConversationState, getHistoryMessages, getRemoteHistoryMessages, getServerTime, getTextMessageDraft, getTopConversationList, getTotalUnreadCount, getUnreadCount, getUnreadMentionedCount, init, logOut, mockLogin, onceEventListener, parseChatRecordMsgDetails, recallMessage, registerMessageType, removeConversation, removeEventListener, request, saveTextMessageDraft, sendFileMessage, sendGIFMessage, sendHQVoiceMessage, sendImageMessage, sendMessage, sendReadReceipts, sendSightMessage, sendTextMessage, setConversationNotificationStatus, setConversationToTop, setUserLogged };
package/index.umd.js CHANGED
@@ -19545,7 +19545,11 @@
19545
19545
  GROUP_ARRIVAL_RECEIPT: 0x60020024,
19546
19546
  GROUP_READ_RECEIPT: 0x60020025,
19547
19547
  PRIVATE_ARRIVAL_RECEIPT: 0x6001000C,
19548
- PRIVATE_READ_RECEIPT: 0x6001000D
19548
+ PRIVATE_READ_RECEIPT: 0x6001000D,
19549
+ PRIVATE_OPEN_BURNAFTERREADING: 0x60010002,
19550
+ PRIVATE_CLOSE_BURNAFTERREADING: 0x60010003,
19551
+ GROUP_OPEN_BURNAFTERREADING: 0x60020008,
19552
+ GROUP_CLOSE_BURNAFTERREADING: 0x60020009
19549
19553
  };
19550
19554
 
19551
19555
  function deepClone(obj) {
@@ -19597,6 +19601,14 @@
19597
19601
  smallAvatarUrl: {
19598
19602
  keyName: 'sa',
19599
19603
  defaultVal: null
19604
+ },
19605
+ burnAfterReadingFlag: {
19606
+ keyName: 'brf',
19607
+ defaultVal: false
19608
+ },
19609
+ burnAfterReadingTime: {
19610
+ keyName: 'brt',
19611
+ defaultVal: 0
19600
19612
  }
19601
19613
  };
19602
19614
  class ConversationStore {
@@ -19784,7 +19796,9 @@
19784
19796
  isTop: !!dialog.stickyFlag,
19785
19797
  dialogTitle: dialog.dialogTitle,
19786
19798
  smallAvatarUrl: dialog.smallAvatarUrl,
19787
- lastUnreadTime: '0'
19799
+ lastUnreadTime: '0',
19800
+ burnAfterReadingFlag: !!dialog.burnAfterReadingFlag,
19801
+ burnAfterReadingTime: dialog.burnAfterReadingTime && dialog.burnAfterReadingTime.toNumber()
19788
19802
  };
19789
19803
  return conversationObj;
19790
19804
  };
@@ -19916,7 +19930,9 @@
19916
19930
  notificationStatus,
19917
19931
  notificationLevel,
19918
19932
  dialogTitle,
19919
- smallAvatarUrl
19933
+ smallAvatarUrl,
19934
+ burnAfterReadingFlag,
19935
+ burnAfterReadingTime
19920
19936
  } = conversation;
19921
19937
  this.localConversationSet.add(this.getConversationKey(conversation));
19922
19938
  this.addStatus({
@@ -19926,7 +19942,9 @@
19926
19942
  notificationStatus,
19927
19943
  notificationLevel,
19928
19944
  dialogTitle,
19929
- smallAvatarUrl
19945
+ smallAvatarUrl,
19946
+ burnAfterReadingFlag,
19947
+ burnAfterReadingTime
19930
19948
  }, false);
19931
19949
  }
19932
19950
  addStatus(statusItem, shouldNotify = false) {
@@ -19937,7 +19955,9 @@
19937
19955
  notificationLevel,
19938
19956
  isTop,
19939
19957
  dialogTitle,
19940
- smallAvatarUrl
19958
+ smallAvatarUrl,
19959
+ burnAfterReadingFlag,
19960
+ burnAfterReadingTime
19941
19961
  } = statusItem;
19942
19962
  const conOpt = {
19943
19963
  conversationType,
@@ -19976,12 +19996,26 @@
19976
19996
  val: smallAvatarUrl
19977
19997
  };
19978
19998
  }
19999
+ if (isDef(burnAfterReadingFlag) && storageConversation.burnAfterReadingFlag !== burnAfterReadingFlag) {
20000
+ updatedItems.burnAfterReadingFlag = {
20001
+ time: updatedTime,
20002
+ val: burnAfterReadingFlag
20003
+ };
20004
+ }
20005
+ if (isDef(burnAfterReadingTime) && storageConversation.burnAfterReadingTime !== burnAfterReadingTime) {
20006
+ updatedItems.burnAfterReadingTime = {
20007
+ time: updatedTime,
20008
+ val: burnAfterReadingTime
20009
+ };
20010
+ }
19979
20011
  this.store.set(conOpt, {
19980
20012
  notificationStatus,
19981
20013
  isTop,
19982
20014
  notificationLevel,
19983
20015
  dialogTitle,
19984
- smallAvatarUrl
20016
+ smallAvatarUrl,
20017
+ burnAfterReadingFlag,
20018
+ burnAfterReadingTime
19985
20019
  });
19986
20020
  if (Object.keys(updatedItems).length && shouldNotify) {
19987
20021
  this.setUpdatedConversation({
@@ -20348,7 +20382,9 @@
20348
20382
  receivedTime: getServerTime$1().toString(),
20349
20383
  isStatusMessage: messageInstance.isStatusMessage,
20350
20384
  receivedStatus: dialogMessage.msgRead ? exports.ReceivedStatus.READ : dialogMessage.msgArrival ? exports.ReceivedStatus.RECEIVED : exports.ReceivedStatus.IDLE,
20351
- disableNotification: localConversation?.notificationStatus === exports.NotificationStatus.OPEN || dialogMessage.srcId.toString() == accountStore.uid
20385
+ disableNotification: localConversation?.notificationStatus === exports.NotificationStatus.OPEN || dialogMessage.srcId.toString() == accountStore.uid,
20386
+ burnAfterReadingFlag: dialogMessage.burnAfterReadingFlag,
20387
+ burnAfterReadingTime: dialogMessage.burnAfterReadingTime && dialogMessage.burnAfterReadingTime.toNumber()
20352
20388
  };
20353
20389
  if (receivedMessage.isStatusMessage && Long.fromNumber(getServerTime$1()).subtract(receivedMessage.sentTime).greaterThan(STATUSMESSAGE_ALIVE_TIMEMS)) {
20354
20390
  return;
@@ -20370,9 +20406,6 @@
20370
20406
  if (dialogMessage.msgPostContent?.length) {
20371
20407
  msgPostContent = aes256Decrypt(dialogMessage.msgPostContent, aesKey);
20372
20408
  }
20373
- if (dialogMessage.mediaConstructor === 0x60010012 || dialogMessage.mediaConstructor === 0x60020021) {
20374
- mediaAttribute = transMsgIdNum64ToString(mediaAttribute);
20375
- }
20376
20409
  return parseMediaAttributeJson(dialogMessage.mediaConstructor, mediaAttribute, msgPostContent);
20377
20410
  } catch (error) {
20378
20411
  logger.error('decode message content fail -> uid:', dialogMessage.msgId.toString());
@@ -20392,8 +20425,8 @@
20392
20425
  return mediaAttributeJson;
20393
20426
  };
20394
20427
  const convertInt64ToString = jsonString => {
20395
- const int64Regex = /:\s*(\d{15,})/g;
20396
- return jsonString.replace(int64Regex, (match, number) => `: "${number}"`);
20428
+ const int64Regex = /(?<!")\b(\d{15,})\b(?!")/g;
20429
+ return jsonString.replace(int64Regex, '"$1"');
20397
20430
  };
20398
20431
  const parseChatRecordMsgDetails$1 = (conversationOpt, msgDetails) => {
20399
20432
  let contentList = [];
@@ -20426,10 +20459,6 @@
20426
20459
  });
20427
20460
  return contentList;
20428
20461
  };
20429
- const transMsgIdNum64ToString = jsonString => {
20430
- const reg = /("msgId")\s*:\s*(\d+)/g;
20431
- return jsonString.replace(reg, (r1, r2, r3) => `${r2}:"${r3}"`);
20432
- };
20433
20462
  var serverMessageParser = {
20434
20463
  parse,
20435
20464
  parseSingleDialogMessages,
@@ -20658,6 +20687,9 @@
20658
20687
  recallMessageIndexes.push(messageList.length - 1);
20659
20688
  }
20660
20689
  }
20690
+ if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
20691
+ this.handleBurnAfterReadingMessage(m);
20692
+ }
20661
20693
  });
20662
20694
  let recallMessageUIds = [];
20663
20695
  let deletedMessageIndexes = [];
@@ -20705,6 +20737,22 @@
20705
20737
  }
20706
20738
  });
20707
20739
  }
20740
+ handleBurnAfterReadingMessage(message) {
20741
+ const content = message.content;
20742
+ const conversationType = message.conversationType;
20743
+ const targetId = message.targetId;
20744
+ const {
20745
+ templateId,
20746
+ burnAfterReadingTime
20747
+ } = content;
20748
+ const burnAfterReadingFlag = templateId === 60010010 || templateId === 60010011;
20749
+ ConversationManager$1.get().addStatus({
20750
+ conversationType,
20751
+ targetId,
20752
+ burnAfterReadingFlag: burnAfterReadingFlag,
20753
+ burnAfterReadingTime: burnAfterReadingFlag ? burnAfterReadingTime : null
20754
+ }, true);
20755
+ }
20708
20756
  handleReceiptMessages(messages) {
20709
20757
  try {
20710
20758
  const normalMessages = [];
@@ -20793,12 +20841,16 @@
20793
20841
  let RedEnvelopeMessage = registerMessageType$1(MessageTypes.REDPACKET, true, true, false);
20794
20842
  let TransferMessage = registerMessageType$1(MessageTypes.TRANSFER, true, true, false);
20795
20843
 
20796
- const RecallCommandMessage = registerMessageType$1(MessageTypes.RECALL, true, false, false);
20797
-
20798
20844
  const GroupArrivalReceiptMessage = registerMessageType$1(NotiMessageTypes.GROUP_ARRIVAL_RECEIPT, false, false, true);
20799
20845
  const GroupReadReceiptMessage = registerMessageType$1(NotiMessageTypes.GROUP_READ_RECEIPT, false, false, true);
20800
20846
  const PrivateArrivalReceiptMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_ARRIVAL_RECEIPT, false, false, true);
20801
20847
  const PrivateReadReceiptMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_READ_RECEIPT, false, false, true);
20848
+ const PrivateOpenBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, false, false, true);
20849
+ const PrivateCloseBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, false, false, true);
20850
+ const GroupOpenBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, false, false, true);
20851
+ const GroupCloseBurnAfterReadingMessage = registerMessageType$1(NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING, false, false, true);
20852
+
20853
+ const RecallCommandMessage = registerMessageType$1(MessageTypes.RECALL, true, false, false);
20802
20854
 
20803
20855
  const DEFAULT_SOCKET_URI = 'wss://imweb.mp.net:6443';
20804
20856
  class LibLoader {
@@ -20866,6 +20918,10 @@
20866
20918
  registerMessage(NotiMessageTypes.GROUP_READ_RECEIPT, GroupReadReceiptMessage);
20867
20919
  registerMessage(NotiMessageTypes.PRIVATE_ARRIVAL_RECEIPT, PrivateArrivalReceiptMessage);
20868
20920
  registerMessage(NotiMessageTypes.PRIVATE_READ_RECEIPT, PrivateReadReceiptMessage);
20921
+ registerMessage(NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, PrivateOpenBurnAfterReadingMessage);
20922
+ registerMessage(NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, PrivateCloseBurnAfterReadingMessage);
20923
+ registerMessage(NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, GroupOpenBurnAfterReadingMessage);
20924
+ registerMessage(NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING, GroupCloseBurnAfterReadingMessage);
20869
20925
  }
20870
20926
  async connect() {
20871
20927
  if (this.connectionStatus === exports.ConnectionStatus.CONNECTED) {
@@ -27565,7 +27621,8 @@
27565
27621
  receivedTime: '0',
27566
27622
  isStatusMessage: message.isStatusMessage,
27567
27623
  receivedStatus: exports.ReceivedStatus.IDLE,
27568
- disableNotification: true
27624
+ disableNotification: true,
27625
+ burnAfterReadingFlag: false
27569
27626
  });
27570
27627
 
27571
27628
  let UniqueLocalId = 0;
@@ -29831,11 +29888,15 @@
29831
29888
  exports.ErrorDesc = ErrorDesc;
29832
29889
  exports.FileMessage = FileMessage;
29833
29890
  exports.GIFMessage = GIFMessage;
29891
+ exports.GroupCloseBurnAfterReadingMessage = GroupCloseBurnAfterReadingMessage;
29892
+ exports.GroupOpenBurnAfterReadingMessage = GroupOpenBurnAfterReadingMessage;
29834
29893
  exports.HQVoiceMessage = VoiceMessage;
29835
29894
  exports.ImageMessage = ImageMessage;
29836
29895
  exports.InvitationMessage = InvitationMessage;
29837
29896
  exports.LocationMessage = LocationMessage;
29838
29897
  exports.MessageTypes = MessageTypes;
29898
+ exports.PrivateCloseBurnAfterReadingMessage = PrivateCloseBurnAfterReadingMessage;
29899
+ exports.PrivateOpenBurnAfterReadingMessage = PrivateOpenBurnAfterReadingMessage;
29839
29900
  exports.RecallCommandMessage = RecallCommandMessage;
29840
29901
  exports.RedEnvelopeMessage = RedEnvelopeMessage;
29841
29902
  exports.TextMessage = TextMessage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
6
  "types": "types/index.d.ts",
@@ -18,4 +18,8 @@ export declare const NotiMessageTypes: {
18
18
  GROUP_READ_RECEIPT: number;
19
19
  PRIVATE_ARRIVAL_RECEIPT: number;
20
20
  PRIVATE_READ_RECEIPT: number;
21
+ PRIVATE_OPEN_BURNAFTERREADING: number;
22
+ PRIVATE_CLOSE_BURNAFTERREADING: number;
23
+ GROUP_OPEN_BURNAFTERREADING: number;
24
+ GROUP_CLOSE_BURNAFTERREADING: number;
21
25
  };
package/types/index.d.ts CHANGED
@@ -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 } from './model/messages';
11
- export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IFileMessageBody, IHQVoiceMessageBody, IRecallCommandMessageBody, IVideoMessageBody, ILocationMessageBody, IChatRecordMessageBody, IContactMessageBody, IInvitationMessageBody, IRedEnvelopeMessageBody, ITransferMessageBody } from './model/messages';
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';
12
12
  export { MessageTypes } from './constants/messageTypes';
13
13
  export type { IBaseMessageBody, IReceivedMessage, IReceivedConversation };
14
14
  export * from './types';
@@ -55,4 +55,12 @@ export default interface IReceivedConversation {
55
55
  * 会话头像
56
56
  */
57
57
  smallAvatarUrl?: string | null;
58
+ /**
59
+ * 是否开启了阅后即焚
60
+ */
61
+ burnAfterReadingFlag: boolean;
62
+ /**
63
+ * 阅后即焚的时长
64
+ */
65
+ burnAfterReadingTime?: number | null;
58
66
  }
@@ -80,4 +80,12 @@ export default interface IReceivedMessage {
80
80
  * 消息发送状态
81
81
  */
82
82
  sentStatus: SentStatus;
83
+ /**
84
+ * 是否为阅后即焚消息
85
+ */
86
+ burnAfterReadingFlag: boolean;
87
+ /**
88
+ * 阅后即焚消息的时长
89
+ */
90
+ burnAfterReadingTime?: number;
83
91
  }
@@ -5,6 +5,8 @@ import HQVoiceMessage, { IHQVoiceMessageBody } from './voiceMessage';
5
5
  import FileMessage, { IFileMessageBody } from './fileMessage';
6
6
  import VideoMessage, { IVideoMessageBody } from './videoMessage';
7
7
  import { ILocationMessageBody, LocationMessage, IChatRecordMessageBody, ChatRecordMessage, IContactMessageBody, ContactMessage, IInvitationMessageBody, InvitationMessage, IRedEnvelopeMessageBody, RedEnvelopeMessage, ITransferMessageBody, TransferMessage } from './otherMediaMessages';
8
+ import { IBurnAfterReadingMessageBody } from './notificationMessages';
9
+ import { PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage } from './notificationMessages';
8
10
  import RecallCommandMessage, { IRecallCommandMessageBody } from './recallCommandMessage';
9
- export { TextMessage, ImageMessage, GIFMessage, HQVoiceMessage, FileMessage, RecallCommandMessage, VideoMessage, LocationMessage, ChatRecordMessage, ContactMessage, InvitationMessage, RedEnvelopeMessage, TransferMessage };
10
- export type { ITextMessageBody, IImageMessageBody, IGIFMessageBody, IHQVoiceMessageBody, IFileMessageBody, IRecallCommandMessageBody, IVideoMessageBody, ILocationMessageBody, IChatRecordMessageBody, IContactMessageBody, IInvitationMessageBody, IRedEnvelopeMessageBody, ITransferMessageBody };
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 };
@@ -4,8 +4,17 @@ export interface IReceiptMessageBody extends IBaseMessageBody {
4
4
  destId?: string;
5
5
  msgIdList: string[];
6
6
  }
7
+ export interface IBurnAfterReadingMessageBody extends IBaseMessageBody {
8
+ burnAfterReadingTime: number;
9
+ params?: string[];
10
+ templateId: number;
11
+ }
7
12
  declare const GroupArrivalReceiptMessage: new (content: IReceiptMessageBody) => import("../baseMessage").BaseMessage<IReceiptMessageBody>;
8
13
  declare const GroupReadReceiptMessage: new (content: IReceiptMessageBody) => import("../baseMessage").BaseMessage<IReceiptMessageBody>;
9
14
  declare const PrivateArrivalReceiptMessage: new (content: IReceiptMessageBody) => import("../baseMessage").BaseMessage<IReceiptMessageBody>;
10
15
  declare const PrivateReadReceiptMessage: new (content: IReceiptMessageBody) => import("../baseMessage").BaseMessage<IReceiptMessageBody>;
11
- export { GroupArrivalReceiptMessage, GroupReadReceiptMessage, PrivateArrivalReceiptMessage, PrivateReadReceiptMessage };
16
+ declare const PrivateOpenBurnAfterReadingMessage: new (content: IBurnAfterReadingMessageBody) => import("../baseMessage").BaseMessage<IBurnAfterReadingMessageBody>;
17
+ declare const PrivateCloseBurnAfterReadingMessage: new (content: IBurnAfterReadingMessageBody) => import("../baseMessage").BaseMessage<IBurnAfterReadingMessageBody>;
18
+ declare const GroupOpenBurnAfterReadingMessage: new (content: IBurnAfterReadingMessageBody) => import("../baseMessage").BaseMessage<IBurnAfterReadingMessageBody>;
19
+ declare const GroupCloseBurnAfterReadingMessage: new (content: IBurnAfterReadingMessageBody) => import("../baseMessage").BaseMessage<IBurnAfterReadingMessageBody>;
20
+ export { GroupArrivalReceiptMessage, GroupReadReceiptMessage, PrivateArrivalReceiptMessage, PrivateReadReceiptMessage, PrivateOpenBurnAfterReadingMessage, PrivateCloseBurnAfterReadingMessage, GroupOpenBurnAfterReadingMessage, GroupCloseBurnAfterReadingMessage };
package/types/types.d.ts CHANGED
@@ -94,7 +94,7 @@ export interface IConversationState extends IBaseConversationInfo {
94
94
  * 会话信息
95
95
  */
96
96
  export type IConversationOption = IBaseConversationInfo;
97
- export type IUpdatedConversationItemKeys = Extract<keyof IReceivedConversation, 'isTop' | 'notificationStatus' | 'notificationLevel' | 'unreadMessageCount' | 'hasMentioned' | 'unreadMentionedCount' | 'dialogTitle' | 'smallAvatarUrl' | 'latestMessage'>;
97
+ export type IUpdatedConversationItemKeys = Extract<keyof IReceivedConversation, 'isTop' | 'notificationStatus' | 'notificationLevel' | 'unreadMessageCount' | 'hasMentioned' | 'unreadMentionedCount' | 'dialogTitle' | 'smallAvatarUrl' | 'latestMessage' | 'burnAfterReadingFlag' | 'burnAfterReadingTime'>;
98
98
  export type IUpdatedConversationItem = Partial<Record<IUpdatedConversationItemKeys, {
99
99
  time: string;
100
100
  val: any;