@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 +77 -20
- package/index.umd.js +80 -19
- package/package.json +1 -1
- package/types/constants/messageTypes.d.ts +4 -0
- package/types/index.d.ts +2 -2
- package/types/model/iReceivedConversation.d.ts +8 -0
- package/types/model/iReceivedMessage.d.ts +8 -0
- package/types/model/messages/index.d.ts +4 -2
- package/types/model/messages/notificationMessages.d.ts +10 -1
- package/types/types.d.ts +1 -1
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 =
|
20390
|
-
return jsonString.replace(int64Regex,
|
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 =
|
20396
|
-
return jsonString.replace(int64Regex,
|
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
@@ -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';
|
@@ -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
|
-
|
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;
|