nostr-idb 2.1.0 → 2.1.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # nostr-idb
2
2
 
3
+ ## 2.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 890f64a: don't rebroadcast duplicate events
8
+
3
9
  ## 2.1.0
4
10
 
5
11
  ### Minor Changes
@@ -45,7 +45,9 @@ export class WriteQueue {
45
45
  this.queuedIds.delete(event.id);
46
46
  }
47
47
  await addEvents(this.db, events);
48
- log(`Wrote ${events.length} to database ${this.eventQueue.length} events left`);
48
+ log(`Wrote ${events.length} to database`);
49
+ if (this.eventQueue.length > 0)
50
+ log(`${this.eventQueue.length} left`);
49
51
  }
50
52
  if (this.lastUsedQueue.size > 0) {
51
53
  await updateUsed(this.db, this.lastUsedQueue);
@@ -58,13 +58,17 @@ export class RelayCore {
58
58
  if (!kinds.isEphemeralKind(event.kind)) {
59
59
  this.writeQueue.addEvent(event);
60
60
  this.indexCache.addEventToIndexes(event);
61
- this.eventMap.set(getEventUID(event), event);
62
61
  }
62
+ const uid = getEventUID(event);
63
63
  let subs = 0;
64
- for (const [id, sub] of this.subscriptions) {
65
- if (sub.onevent && matchFilters(sub.filters, event)) {
66
- sub.onevent(event);
67
- subs++;
64
+ if (!this.eventMap.has(uid)) {
65
+ if (!kinds.isEphemeralKind(event.kind))
66
+ this.eventMap.set(uid, event);
67
+ for (const [id, sub] of this.subscriptions) {
68
+ if (sub.onevent && matchFilters(sub.filters, event)) {
69
+ sub.onevent(event);
70
+ subs++;
71
+ }
68
72
  }
69
73
  }
70
74
  return `Sent to ${subs} subscriptions`;
@@ -6985,7 +6985,9 @@ class WriteQueue {
6985
6985
  this.queuedIds.delete(event.id);
6986
6986
  }
6987
6987
  await addEvents(this.db, events);
6988
- log$4(`Wrote ${events.length} to database ${this.eventQueue.length} events left`);
6988
+ log$4(`Wrote ${events.length} to database`);
6989
+ if (this.eventQueue.length > 0)
6990
+ log$4(`${this.eventQueue.length} left`);
6989
6991
  }
6990
6992
  if (this.lastUsedQueue.size > 0) {
6991
6993
  await updateUsed(this.db, this.lastUsedQueue);
@@ -7417,13 +7419,17 @@ class RelayCore {
7417
7419
  if (!kinds_exports.isEphemeralKind(event.kind)) {
7418
7420
  this.writeQueue.addEvent(event);
7419
7421
  this.indexCache.addEventToIndexes(event);
7420
- this.eventMap.set(getEventUID(event), event);
7421
7422
  }
7423
+ const uid = getEventUID(event);
7422
7424
  let subs = 0;
7423
- for (const [id, sub] of this.subscriptions) {
7424
- if (sub.onevent && matchFilters(sub.filters, event)) {
7425
- sub.onevent(event);
7426
- subs++;
7425
+ if (!this.eventMap.has(uid)) {
7426
+ if (!kinds_exports.isEphemeralKind(event.kind))
7427
+ this.eventMap.set(uid, event);
7428
+ for (const [id, sub] of this.subscriptions) {
7429
+ if (sub.onevent && matchFilters(sub.filters, event)) {
7430
+ sub.onevent(event);
7431
+ subs++;
7432
+ }
7427
7433
  }
7428
7434
  }
7429
7435
  return `Sent to ${subs} subscriptions`;
@@ -6985,7 +6985,9 @@ class WriteQueue {
6985
6985
  this.queuedIds.delete(event.id);
6986
6986
  }
6987
6987
  await addEvents(this.db, events);
6988
- log$4(`Wrote ${events.length} to database ${this.eventQueue.length} events left`);
6988
+ log$4(`Wrote ${events.length} to database`);
6989
+ if (this.eventQueue.length > 0)
6990
+ log$4(`${this.eventQueue.length} left`);
6989
6991
  }
6990
6992
  if (this.lastUsedQueue.size > 0) {
6991
6993
  await updateUsed(this.db, this.lastUsedQueue);
@@ -7417,13 +7419,17 @@ class RelayCore {
7417
7419
  if (!kinds_exports.isEphemeralKind(event.kind)) {
7418
7420
  this.writeQueue.addEvent(event);
7419
7421
  this.indexCache.addEventToIndexes(event);
7420
- this.eventMap.set(getEventUID(event), event);
7421
7422
  }
7423
+ const uid = getEventUID(event);
7422
7424
  let subs = 0;
7423
- for (const [id, sub] of this.subscriptions) {
7424
- if (sub.onevent && matchFilters(sub.filters, event)) {
7425
- sub.onevent(event);
7426
- subs++;
7425
+ if (!this.eventMap.has(uid)) {
7426
+ if (!kinds_exports.isEphemeralKind(event.kind))
7427
+ this.eventMap.set(uid, event);
7428
+ for (const [id, sub] of this.subscriptions) {
7429
+ if (sub.onevent && matchFilters(sub.filters, event)) {
7430
+ sub.onevent(event);
7431
+ subs++;
7432
+ }
7427
7433
  }
7428
7434
  }
7429
7435
  return `Sent to ${subs} subscriptions`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nostr-idb",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "A collection of helper methods for storing nostr events in IndexedDB",
5
5
  "author": "hzrd149",
6
6
  "license": "MIT",