@onyx-p/imlib-web 2.4.5 → 2.4.6

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.
Files changed (3) hide show
  1. package/index.esm.js +130 -110
  2. package/index.umd.js +130 -110
  3. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -19491,24 +19491,28 @@ class DialogSecretKey {
19491
19491
  if (!dialogIdList.length) {
19492
19492
  return new Map();
19493
19493
  }
19494
- const {
19495
- code,
19496
- data
19497
- } = await getDialogKey(dialogIdList.map(e => Long.fromString(e)));
19498
- if (code === ErrorCode.SUCCESS) {
19499
- const content = new Map();
19500
- for (const k in data.entry) {
19501
- const v = data.entry[k];
19502
- if (v.aesKey?.length && v.aesIV?.length) {
19503
- const keyItem = {
19504
- key: v.aesKey,
19505
- iv: v.aesIV
19506
- };
19507
- content.set(k, keyItem);
19508
- this.aesKeyRecord.set(k, keyItem);
19494
+ try {
19495
+ const {
19496
+ code,
19497
+ data
19498
+ } = await getDialogKey(dialogIdList.map(e => Long.fromString(e)));
19499
+ if (code === ErrorCode.SUCCESS) {
19500
+ const content = new Map();
19501
+ for (const k in data.entry) {
19502
+ const v = data.entry[k];
19503
+ if (v.aesKey?.length && v.aesIV?.length) {
19504
+ const keyItem = {
19505
+ key: v.aesKey,
19506
+ iv: v.aesIV
19507
+ };
19508
+ content.set(k, keyItem);
19509
+ this.aesKeyRecord.set(k, keyItem);
19510
+ }
19509
19511
  }
19512
+ return content;
19510
19513
  }
19511
- return content;
19514
+ } catch (error) {
19515
+ logger.error('getDialogAesKeyListFromRemote error', error);
19512
19516
  }
19513
19517
  return new Map();
19514
19518
  }
@@ -20435,15 +20439,22 @@ function parse(orginalMsgs, callback) {
20435
20439
  }
20436
20440
  const remainDialogIds = new Set([...msgs.keys()]);
20437
20441
  DialogSecretKey$1.getDialogAesKeyListInBatches([...msgs.keys()], (remote, aesKeys) => {
20438
- if (aesKeys.size) {
20439
- const dialogIds = [...aesKeys.keys()];
20440
- for (const k of dialogIds) {
20441
- remainDialogIds.delete(k);
20442
+ try {
20443
+ if (aesKeys.size) {
20444
+ const dialogIds = [...aesKeys.keys()];
20445
+ for (const k of dialogIds) {
20446
+ remainDialogIds.delete(k);
20447
+ }
20448
+ callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
20449
+ }
20450
+ if (remainDialogIds.size && remote) {
20451
+ callback(true, new Map());
20452
+ }
20453
+ } catch (error) {
20454
+ logger.error('parseDialogsMessages error', error);
20455
+ if (remainDialogIds.size && remote) {
20456
+ callback(true, new Map());
20442
20457
  }
20443
- callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
20444
- }
20445
- if (remainDialogIds.size && remote) {
20446
- callback(true, new Map());
20447
20458
  }
20448
20459
  });
20449
20460
  }
@@ -20506,7 +20517,11 @@ const parseSingleDialogMessages = (dialogId, originalMessageList, aesKey) => {
20506
20517
  if (receivedMessage.isStatusMessage && Long.fromNumber(getServerTime$1()).subtract(receivedMessage.sentTime).greaterThan(STATUSMESSAGE_ALIVE_TIMEMS)) {
20507
20518
  return;
20508
20519
  }
20509
- contentList.push(receivedMessage);
20520
+ if (notEmptyString(receivedMessage.messageUId)) {
20521
+ contentList.push(receivedMessage);
20522
+ } else {
20523
+ logger.error('message is invalid', item);
20524
+ }
20510
20525
  }
20511
20526
  });
20512
20527
  return contentList;
@@ -21428,100 +21443,108 @@ class MessageLoader {
21428
21443
  });
21429
21444
  await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
21430
21445
  serverMessageParser.parse(msg, (done, outputMsgs) => {
21431
- const messages = [];
21432
- let recallMessageUIds = [];
21433
- const recallMessageIndexes = [];
21434
- const isOffLineMessage = !this.pullOfflineFinished;
21435
- outputMsgs.forEach((l, dialogId) => {
21436
- let messageList = [];
21437
- l.forEach(m => {
21438
- if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
21439
- if (m.content.messageUId) {
21440
- RecallMessageStore.remove(m.content.messageUId);
21441
- recallMessageUIds.push(m.content.messageUId);
21442
- } else {
21443
- logger.error('recall messageUId is undefined', m);
21444
- }
21445
- } else if (m.messageUId) {
21446
- m.isOffLineMessage = isOffLineMessage;
21447
- if (!m.messageId || m.messageId > getCurrentMessageId()) {
21448
- m.messageId = generateNewMessageId();
21449
- }
21450
- ConversationManager$1.get().setConversationCacheByMessage(m);
21451
- messageList.push(m);
21452
- if (m.messageType === MessageTypes.RECALL) {
21453
- recallMessageIndexes.push(messageList.length - 1);
21446
+ try {
21447
+ this.processMessages(outputMsgs, !this.pullOfflineFinished);
21448
+ } catch (error) {
21449
+ logger.error('processMessages error', error);
21450
+ }
21451
+ if (done) {
21452
+ try {
21453
+ let seqNo_long;
21454
+ if (seqno) {
21455
+ if (Long.isLong(seqno)) {
21456
+ seqNo_long = seqno;
21457
+ } else if (typeof seqno === 'string') {
21458
+ seqNo_long = Long.fromString(seqno);
21459
+ } else if (typeof seqno === 'number') {
21460
+ seqNo_long = Long.fromNumber(seqno);
21454
21461
  }
21462
+ }
21463
+ if (seqNo_long && Long.isLong(seqNo_long) && seqNo_long.ge(this.serverMsgSeqno)) {
21464
+ this.serverMsgSeqno = seqNo_long;
21465
+ }
21466
+ const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
21467
+ logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
21468
+ this.letterbox?.setInboxOffset(offset);
21469
+ this.pullingMsg = false;
21470
+ if (isFinished && !this.pullOfflineFinished) {
21471
+ this.pullOfflineFinished = true;
21472
+ this.watcher.pullFinished && this.watcher.pullFinished();
21473
+ }
21474
+ if (!isFinished) {
21475
+ this.pullMsg();
21476
+ }
21477
+ } catch (error) {
21478
+ logger.error('setPullMsgDone error', error);
21479
+ this.pullingMsg = false;
21480
+ }
21481
+ }
21482
+ });
21483
+ }
21484
+ processMessages(outputMsgs, isOffLineMessage) {
21485
+ const messages = [];
21486
+ let recallMessageUIds = [];
21487
+ outputMsgs.forEach((l, dialogId) => {
21488
+ let messageList = [];
21489
+ const recallMessageIndexes = [];
21490
+ l.forEach(m => {
21491
+ if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
21492
+ if (m.content.messageUId) {
21493
+ RecallMessageStore.remove(m.content.messageUId);
21494
+ recallMessageUIds.push(m.content.messageUId);
21455
21495
  } else {
21456
- logger.error('messageUId is undefined', m);
21496
+ logger.error('recallMessage’s messageUId is undefined', m);
21497
+ }
21498
+ } else if (m.messageUId) {
21499
+ m.isOffLineMessage = isOffLineMessage;
21500
+ if (!m.messageId || m.messageId > getCurrentMessageId()) {
21501
+ m.messageId = generateNewMessageId();
21502
+ }
21503
+ ConversationManager$1.get().setConversationCacheByMessage(m);
21504
+ messageList.push(m);
21505
+ if (m.messageType === MessageTypes.RECALL) {
21506
+ recallMessageIndexes.push(messageList.length - 1);
21457
21507
  }
21458
21508
  if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
21459
21509
  this.handleBurnAfterReadingMessage(m);
21460
21510
  }
21461
- });
21462
- let deletedMessageIndexes = [];
21463
- for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
21464
- const index = recallMessageIndexes[i];
21465
- const recallMessage = messageList[index];
21466
- const recallContent = recallMessage.content;
21467
- const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
21468
- if (messageIndex !== -1) {
21469
- deletedMessageIndexes.push(messageIndex);
21470
- } else {
21471
- recallMessageUIds.push(recallContent.messageUId);
21472
- deletedMessageIndexes.push(index);
21473
- }
21474
- }
21475
- if (deletedMessageIndexes.length) {
21476
- let messageList_tmp = [];
21477
- messageList.forEach((m, index) => {
21478
- if (!deletedMessageIndexes.includes(index)) {
21479
- messageList_tmp.push(m);
21480
- }
21481
- });
21482
- messageList = messageList_tmp;
21483
- }
21484
- messages.push(...messageList);
21485
- if (this.isExistPersistedMessage(messageList)) {
21486
- splitFullDialog(dialogId);
21511
+ } else {
21512
+ logger.error('message‘s messageUId is undefined', m);
21487
21513
  }
21488
21514
  });
21489
- let normalMessages = this.handleReceiptMessages(messages);
21490
- if (normalMessages.length) {
21491
- this.handleBatchMessages(normalMessages);
21492
- MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
21493
- }
21494
- if (recallMessageUIds.length) {
21495
- MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
21496
- this.watcher.onRecall?.(recallMessageUIds);
21515
+ let deletedMessageIndexes = [];
21516
+ for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
21517
+ const index = recallMessageIndexes[i];
21518
+ const recallMessage = messageList[index];
21519
+ const recallContent = recallMessage.content;
21520
+ const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
21521
+ if (messageIndex !== -1) {
21522
+ deletedMessageIndexes.push(messageIndex);
21523
+ } else {
21524
+ recallMessageUIds.push(recallContent.messageUId);
21525
+ deletedMessageIndexes.push(index);
21526
+ }
21497
21527
  }
21498
- if (done) {
21499
- let seqNo_long;
21500
- if (seqno) {
21501
- if (Long.isLong(seqno)) {
21502
- seqNo_long = seqno;
21503
- } else if (typeof seqno === 'string') {
21504
- seqNo_long = Long.fromString(seqno);
21505
- } else if (typeof seqno === 'number') {
21506
- seqNo_long = Long.fromNumber(seqno);
21528
+ if (deletedMessageIndexes.length) {
21529
+ let messageList_tmp = [];
21530
+ messageList.forEach((m, index) => {
21531
+ if (!deletedMessageIndexes.includes(index)) {
21532
+ messageList_tmp.push(m);
21507
21533
  }
21508
- }
21509
- if (seqNo_long && Long.isLong(seqNo_long) && seqNo_long.ge(this.serverMsgSeqno)) {
21510
- this.serverMsgSeqno = seqNo_long;
21511
- }
21512
- const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
21513
- logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
21514
- this.letterbox?.setInboxOffset(offset);
21515
- this.pullingMsg = false;
21516
- if (isFinished && !this.pullOfflineFinished) {
21517
- this.pullOfflineFinished = true;
21518
- this.watcher.pullFinished && this.watcher.pullFinished();
21519
- }
21520
- if (!isFinished) {
21521
- this.pullMsg();
21522
- }
21534
+ });
21535
+ messageList = messageList_tmp;
21523
21536
  }
21537
+ messages.push(...messageList);
21524
21538
  });
21539
+ let normalMessages = this.handleReceiptMessages(messages);
21540
+ if (normalMessages.length) {
21541
+ this.handleBatchMessages(normalMessages);
21542
+ MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
21543
+ }
21544
+ if (recallMessageUIds.length) {
21545
+ MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
21546
+ this.watcher.onRecall?.(recallMessageUIds);
21547
+ }
21525
21548
  }
21526
21549
  handleBurnAfterReadingMessage(message) {
21527
21550
  const content = message.content;
@@ -21605,9 +21628,6 @@ class MessageLoader {
21605
21628
  this.watcher.batchMessage?.(filteredMessages);
21606
21629
  }
21607
21630
  }
21608
- isExistPersistedMessage(messageList) {
21609
- return messageList.some(m => m.isPersited);
21610
- }
21611
21631
  }
21612
21632
 
21613
21633
  class BaseMessage {
package/index.umd.js CHANGED
@@ -19497,24 +19497,28 @@
19497
19497
  if (!dialogIdList.length) {
19498
19498
  return new Map();
19499
19499
  }
19500
- const {
19501
- code,
19502
- data
19503
- } = await getDialogKey(dialogIdList.map(e => Long.fromString(e)));
19504
- if (code === exports.ErrorCode.SUCCESS) {
19505
- const content = new Map();
19506
- for (const k in data.entry) {
19507
- const v = data.entry[k];
19508
- if (v.aesKey?.length && v.aesIV?.length) {
19509
- const keyItem = {
19510
- key: v.aesKey,
19511
- iv: v.aesIV
19512
- };
19513
- content.set(k, keyItem);
19514
- this.aesKeyRecord.set(k, keyItem);
19500
+ try {
19501
+ const {
19502
+ code,
19503
+ data
19504
+ } = await getDialogKey(dialogIdList.map(e => Long.fromString(e)));
19505
+ if (code === exports.ErrorCode.SUCCESS) {
19506
+ const content = new Map();
19507
+ for (const k in data.entry) {
19508
+ const v = data.entry[k];
19509
+ if (v.aesKey?.length && v.aesIV?.length) {
19510
+ const keyItem = {
19511
+ key: v.aesKey,
19512
+ iv: v.aesIV
19513
+ };
19514
+ content.set(k, keyItem);
19515
+ this.aesKeyRecord.set(k, keyItem);
19516
+ }
19515
19517
  }
19518
+ return content;
19516
19519
  }
19517
- return content;
19520
+ } catch (error) {
19521
+ logger.error('getDialogAesKeyListFromRemote error', error);
19518
19522
  }
19519
19523
  return new Map();
19520
19524
  }
@@ -20441,15 +20445,22 @@
20441
20445
  }
20442
20446
  const remainDialogIds = new Set([...msgs.keys()]);
20443
20447
  DialogSecretKey$1.getDialogAesKeyListInBatches([...msgs.keys()], (remote, aesKeys) => {
20444
- if (aesKeys.size) {
20445
- const dialogIds = [...aesKeys.keys()];
20446
- for (const k of dialogIds) {
20447
- remainDialogIds.delete(k);
20448
+ try {
20449
+ if (aesKeys.size) {
20450
+ const dialogIds = [...aesKeys.keys()];
20451
+ for (const k of dialogIds) {
20452
+ remainDialogIds.delete(k);
20453
+ }
20454
+ callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
20455
+ }
20456
+ if (remainDialogIds.size && remote) {
20457
+ callback(true, new Map());
20458
+ }
20459
+ } catch (error) {
20460
+ logger.error('parseDialogsMessages error', error);
20461
+ if (remainDialogIds.size && remote) {
20462
+ callback(true, new Map());
20448
20463
  }
20449
- callback(!remainDialogIds.size, parseDialogsMessages(dialogIds, msgs, aesKeys));
20450
- }
20451
- if (remainDialogIds.size && remote) {
20452
- callback(true, new Map());
20453
20464
  }
20454
20465
  });
20455
20466
  }
@@ -20512,7 +20523,11 @@
20512
20523
  if (receivedMessage.isStatusMessage && Long.fromNumber(getServerTime$1()).subtract(receivedMessage.sentTime).greaterThan(STATUSMESSAGE_ALIVE_TIMEMS)) {
20513
20524
  return;
20514
20525
  }
20515
- contentList.push(receivedMessage);
20526
+ if (notEmptyString(receivedMessage.messageUId)) {
20527
+ contentList.push(receivedMessage);
20528
+ } else {
20529
+ logger.error('message is invalid', item);
20530
+ }
20516
20531
  }
20517
20532
  });
20518
20533
  return contentList;
@@ -21434,100 +21449,108 @@
21434
21449
  });
21435
21450
  await ConversationManager$1.get().loadConvsationsIfNotExist(cons);
21436
21451
  serverMessageParser.parse(msg, (done, outputMsgs) => {
21437
- const messages = [];
21438
- let recallMessageUIds = [];
21439
- const recallMessageIndexes = [];
21440
- const isOffLineMessage = !this.pullOfflineFinished;
21441
- outputMsgs.forEach((l, dialogId) => {
21442
- let messageList = [];
21443
- l.forEach(m => {
21444
- if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
21445
- if (m.content.messageUId) {
21446
- RecallMessageStore.remove(m.content.messageUId);
21447
- recallMessageUIds.push(m.content.messageUId);
21448
- } else {
21449
- logger.error('recall messageUId is undefined', m);
21450
- }
21451
- } else if (m.messageUId) {
21452
- m.isOffLineMessage = isOffLineMessage;
21453
- if (!m.messageId || m.messageId > getCurrentMessageId()) {
21454
- m.messageId = generateNewMessageId();
21455
- }
21456
- ConversationManager$1.get().setConversationCacheByMessage(m);
21457
- messageList.push(m);
21458
- if (m.messageType === MessageTypes.RECALL) {
21459
- recallMessageIndexes.push(messageList.length - 1);
21452
+ try {
21453
+ this.processMessages(outputMsgs, !this.pullOfflineFinished);
21454
+ } catch (error) {
21455
+ logger.error('processMessages error', error);
21456
+ }
21457
+ if (done) {
21458
+ try {
21459
+ let seqNo_long;
21460
+ if (seqno) {
21461
+ if (Long.isLong(seqno)) {
21462
+ seqNo_long = seqno;
21463
+ } else if (typeof seqno === 'string') {
21464
+ seqNo_long = Long.fromString(seqno);
21465
+ } else if (typeof seqno === 'number') {
21466
+ seqNo_long = Long.fromNumber(seqno);
21460
21467
  }
21468
+ }
21469
+ if (seqNo_long && Long.isLong(seqNo_long) && seqNo_long.ge(this.serverMsgSeqno)) {
21470
+ this.serverMsgSeqno = seqNo_long;
21471
+ }
21472
+ const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
21473
+ logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
21474
+ this.letterbox?.setInboxOffset(offset);
21475
+ this.pullingMsg = false;
21476
+ if (isFinished && !this.pullOfflineFinished) {
21477
+ this.pullOfflineFinished = true;
21478
+ this.watcher.pullFinished && this.watcher.pullFinished();
21479
+ }
21480
+ if (!isFinished) {
21481
+ this.pullMsg();
21482
+ }
21483
+ } catch (error) {
21484
+ logger.error('setPullMsgDone error', error);
21485
+ this.pullingMsg = false;
21486
+ }
21487
+ }
21488
+ });
21489
+ }
21490
+ processMessages(outputMsgs, isOffLineMessage) {
21491
+ const messages = [];
21492
+ let recallMessageUIds = [];
21493
+ outputMsgs.forEach((l, dialogId) => {
21494
+ let messageList = [];
21495
+ const recallMessageIndexes = [];
21496
+ l.forEach(m => {
21497
+ if (m.messageType === MessageTypes.RECALL && RecallMessageStore.has(m.content.messageUId)) {
21498
+ if (m.content.messageUId) {
21499
+ RecallMessageStore.remove(m.content.messageUId);
21500
+ recallMessageUIds.push(m.content.messageUId);
21461
21501
  } else {
21462
- logger.error('messageUId is undefined', m);
21502
+ logger.error('recallMessage’s messageUId is undefined', m);
21503
+ }
21504
+ } else if (m.messageUId) {
21505
+ m.isOffLineMessage = isOffLineMessage;
21506
+ if (!m.messageId || m.messageId > getCurrentMessageId()) {
21507
+ m.messageId = generateNewMessageId();
21508
+ }
21509
+ ConversationManager$1.get().setConversationCacheByMessage(m);
21510
+ messageList.push(m);
21511
+ if (m.messageType === MessageTypes.RECALL) {
21512
+ recallMessageIndexes.push(messageList.length - 1);
21463
21513
  }
21464
21514
  if ([NotiMessageTypes.PRIVATE_OPEN_BURNAFTERREADING, NotiMessageTypes.GROUP_OPEN_BURNAFTERREADING, NotiMessageTypes.PRIVATE_CLOSE_BURNAFTERREADING, NotiMessageTypes.GROUP_CLOSE_BURNAFTERREADING].includes(m.messageType)) {
21465
21515
  this.handleBurnAfterReadingMessage(m);
21466
21516
  }
21467
- });
21468
- let deletedMessageIndexes = [];
21469
- for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
21470
- const index = recallMessageIndexes[i];
21471
- const recallMessage = messageList[index];
21472
- const recallContent = recallMessage.content;
21473
- const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
21474
- if (messageIndex !== -1) {
21475
- deletedMessageIndexes.push(messageIndex);
21476
- } else {
21477
- recallMessageUIds.push(recallContent.messageUId);
21478
- deletedMessageIndexes.push(index);
21479
- }
21480
- }
21481
- if (deletedMessageIndexes.length) {
21482
- let messageList_tmp = [];
21483
- messageList.forEach((m, index) => {
21484
- if (!deletedMessageIndexes.includes(index)) {
21485
- messageList_tmp.push(m);
21486
- }
21487
- });
21488
- messageList = messageList_tmp;
21489
- }
21490
- messages.push(...messageList);
21491
- if (this.isExistPersistedMessage(messageList)) {
21492
- splitFullDialog(dialogId);
21517
+ } else {
21518
+ logger.error('message‘s messageUId is undefined', m);
21493
21519
  }
21494
21520
  });
21495
- let normalMessages = this.handleReceiptMessages(messages);
21496
- if (normalMessages.length) {
21497
- this.handleBatchMessages(normalMessages);
21498
- MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
21499
- }
21500
- if (recallMessageUIds.length) {
21501
- MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
21502
- this.watcher.onRecall?.(recallMessageUIds);
21521
+ let deletedMessageIndexes = [];
21522
+ for (let i = recallMessageIndexes.length - 1; i >= 0; i--) {
21523
+ const index = recallMessageIndexes[i];
21524
+ const recallMessage = messageList[index];
21525
+ const recallContent = recallMessage.content;
21526
+ const messageIndex = messageList.findIndex(m => m.messageUId === recallContent.messageUId);
21527
+ if (messageIndex !== -1) {
21528
+ deletedMessageIndexes.push(messageIndex);
21529
+ } else {
21530
+ recallMessageUIds.push(recallContent.messageUId);
21531
+ deletedMessageIndexes.push(index);
21532
+ }
21503
21533
  }
21504
- if (done) {
21505
- let seqNo_long;
21506
- if (seqno) {
21507
- if (Long.isLong(seqno)) {
21508
- seqNo_long = seqno;
21509
- } else if (typeof seqno === 'string') {
21510
- seqNo_long = Long.fromString(seqno);
21511
- } else if (typeof seqno === 'number') {
21512
- seqNo_long = Long.fromNumber(seqno);
21534
+ if (deletedMessageIndexes.length) {
21535
+ let messageList_tmp = [];
21536
+ messageList.forEach((m, index) => {
21537
+ if (!deletedMessageIndexes.includes(index)) {
21538
+ messageList_tmp.push(m);
21513
21539
  }
21514
- }
21515
- if (seqNo_long && Long.isLong(seqNo_long) && seqNo_long.ge(this.serverMsgSeqno)) {
21516
- this.serverMsgSeqno = seqNo_long;
21517
- }
21518
- const isFinished = this.serverMsgSeqno.lessThanOrEqual(offset);
21519
- logger.info(`pullMsg success -> syncTime: ${offset}, finished: ${isFinished}`);
21520
- this.letterbox?.setInboxOffset(offset);
21521
- this.pullingMsg = false;
21522
- if (isFinished && !this.pullOfflineFinished) {
21523
- this.pullOfflineFinished = true;
21524
- this.watcher.pullFinished && this.watcher.pullFinished();
21525
- }
21526
- if (!isFinished) {
21527
- this.pullMsg();
21528
- }
21540
+ });
21541
+ messageList = messageList_tmp;
21529
21542
  }
21543
+ messages.push(...messageList);
21530
21544
  });
21545
+ let normalMessages = this.handleReceiptMessages(messages);
21546
+ if (normalMessages.length) {
21547
+ this.handleBatchMessages(normalMessages);
21548
+ MessageReceiptManager$1.get()?.sendArrivalReceipts(normalMessages);
21549
+ }
21550
+ if (recallMessageUIds.length) {
21551
+ MessageCache$1.get()?.convertToRecallMessages(recallMessageUIds);
21552
+ this.watcher.onRecall?.(recallMessageUIds);
21553
+ }
21531
21554
  }
21532
21555
  handleBurnAfterReadingMessage(message) {
21533
21556
  const content = message.content;
@@ -21611,9 +21634,6 @@
21611
21634
  this.watcher.batchMessage?.(filteredMessages);
21612
21635
  }
21613
21636
  }
21614
- isExistPersistedMessage(messageList) {
21615
- return messageList.some(m => m.isPersited);
21616
- }
21617
21637
  }
21618
21638
 
21619
21639
  class BaseMessage {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "2.4.5",
3
+ "version": "2.4.6",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
6
  "types": "types/index.d.ts",