@onyx-p/imlib-web 2.6.7 → 2.6.8

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 +28 -23
  2. package/index.umd.js +28 -23
  3. package/package.json +9 -4
package/index.esm.js CHANGED
@@ -22476,32 +22476,37 @@ class MessageCache {
22476
22476
  if (!messages || messages.length === 0 || !this.db) {
22477
22477
  return;
22478
22478
  }
22479
- return new Promise((resolve, reject) => {
22480
- const transaction = this.db.transaction(this.STORE_NAME, 'readwrite');
22481
- const store = transaction.objectStore(this.STORE_NAME);
22482
- messages.forEach(message => {
22483
- const messageToStore = {
22484
- ...deepClone(message),
22485
- dialogId
22486
- };
22487
- if (messageToStore.content) {
22488
- const encryptedContent = this.encryptContent(messageToStore.content);
22489
- messageToStore.content = encryptedContent;
22490
- }
22491
- if (messageToStore.quotedReply && messageToStore.quotedReply.content) {
22492
- const encryptedReferenceContent = this.encryptContent(messageToStore.quotedReply.content);
22493
- messageToStore.quotedReply.content = encryptedReferenceContent;
22479
+ const store = this.db.transaction(this.STORE_NAME, 'readwrite').objectStore(this.STORE_NAME);
22480
+ const insertPromises = messages.map(message => {
22481
+ return new Promise(resolve => {
22482
+ try {
22483
+ const messageToStore = {
22484
+ ...deepClone(message),
22485
+ dialogId
22486
+ };
22487
+ if (messageToStore.content) {
22488
+ messageToStore.content = this.encryptContent(messageToStore.content);
22489
+ }
22490
+ if (messageToStore.quotedReply?.content) {
22491
+ messageToStore.quotedReply.content = this.encryptContent(messageToStore.quotedReply.content);
22492
+ }
22493
+ const request = store.put(messageToStore);
22494
+ request.onsuccess = () => resolve();
22495
+ request.onerror = () => {
22496
+ if (request.error) {
22497
+ logger$1.error('Failed to insert message:', messageToStore, request.error);
22498
+ } else {
22499
+ logger$1.warn('Failed to insert message:', messageToStore);
22500
+ }
22501
+ resolve();
22502
+ };
22503
+ } catch (err) {
22504
+ logger$1.error('Error during message preparation or encryption:', message, err);
22505
+ resolve();
22494
22506
  }
22495
- store.put(messageToStore);
22496
22507
  });
22497
- transaction.oncomplete = () => {
22498
- resolve();
22499
- };
22500
- transaction.onerror = event => {
22501
- logger$1.error('Failed to add messages', messages, event);
22502
- resolve();
22503
- };
22504
22508
  });
22509
+ await Promise.allSettled(insertPromises);
22505
22510
  }
22506
22511
  async getPreviousMessages(conversation, timestamp = "0", count = 20) {
22507
22512
  const dialogId = getFullDialogId(conversation);
package/index.umd.js CHANGED
@@ -22482,32 +22482,37 @@
22482
22482
  if (!messages || messages.length === 0 || !this.db) {
22483
22483
  return;
22484
22484
  }
22485
- return new Promise((resolve, reject) => {
22486
- const transaction = this.db.transaction(this.STORE_NAME, 'readwrite');
22487
- const store = transaction.objectStore(this.STORE_NAME);
22488
- messages.forEach(message => {
22489
- const messageToStore = {
22490
- ...deepClone(message),
22491
- dialogId
22492
- };
22493
- if (messageToStore.content) {
22494
- const encryptedContent = this.encryptContent(messageToStore.content);
22495
- messageToStore.content = encryptedContent;
22496
- }
22497
- if (messageToStore.quotedReply && messageToStore.quotedReply.content) {
22498
- const encryptedReferenceContent = this.encryptContent(messageToStore.quotedReply.content);
22499
- messageToStore.quotedReply.content = encryptedReferenceContent;
22485
+ const store = this.db.transaction(this.STORE_NAME, 'readwrite').objectStore(this.STORE_NAME);
22486
+ const insertPromises = messages.map(message => {
22487
+ return new Promise(resolve => {
22488
+ try {
22489
+ const messageToStore = {
22490
+ ...deepClone(message),
22491
+ dialogId
22492
+ };
22493
+ if (messageToStore.content) {
22494
+ messageToStore.content = this.encryptContent(messageToStore.content);
22495
+ }
22496
+ if (messageToStore.quotedReply?.content) {
22497
+ messageToStore.quotedReply.content = this.encryptContent(messageToStore.quotedReply.content);
22498
+ }
22499
+ const request = store.put(messageToStore);
22500
+ request.onsuccess = () => resolve();
22501
+ request.onerror = () => {
22502
+ if (request.error) {
22503
+ logger$1.error('Failed to insert message:', messageToStore, request.error);
22504
+ } else {
22505
+ logger$1.warn('Failed to insert message:', messageToStore);
22506
+ }
22507
+ resolve();
22508
+ };
22509
+ } catch (err) {
22510
+ logger$1.error('Error during message preparation or encryption:', message, err);
22511
+ resolve();
22500
22512
  }
22501
- store.put(messageToStore);
22502
22513
  });
22503
- transaction.oncomplete = () => {
22504
- resolve();
22505
- };
22506
- transaction.onerror = event => {
22507
- logger$1.error('Failed to add messages', messages, event);
22508
- resolve();
22509
- };
22510
22514
  });
22515
+ await Promise.allSettled(insertPromises);
22511
22516
  }
22512
22517
  async getPreviousMessages(conversation, timestamp = "0", count = 20) {
22513
22518
  const dialogId = getFullDialogId(conversation);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onyx-p/imlib-web",
3
- "version": "2.6.7",
3
+ "version": "2.6.8",
4
4
  "main": "index.umd.js",
5
5
  "module": "index.esm.js",
6
6
  "types": "types/index.d.ts",
@@ -13,7 +13,12 @@
13
13
  "types/constants",
14
14
  "README.md"
15
15
  ],
16
- "keywords": ["im"],
16
+ "keywords": [
17
+ "im"
18
+ ],
17
19
  "author": "zimu",
18
- "license": "MIT"
19
- }
20
+ "license": "MIT",
21
+ "dependencies": {
22
+ "@onyx-p/imlib-web": "^2.6.7"
23
+ }
24
+ }