@hashtree/nostr 0.1.3 → 0.1.5

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 (46) hide show
  1. package/README.md +51 -0
  2. package/dist/events.d.ts +66 -0
  3. package/dist/events.d.ts.map +1 -0
  4. package/dist/events.js +426 -0
  5. package/dist/events.js.map +1 -0
  6. package/dist/index.d.ts +4 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/resolver/nostr.d.ts +2 -0
  11. package/dist/resolver/nostr.d.ts.map +1 -1
  12. package/dist/resolver/nostr.js +122 -31
  13. package/dist/resolver/nostr.js.map +1 -1
  14. package/dist/snapshot.d.ts +30 -0
  15. package/dist/snapshot.d.ts.map +1 -0
  16. package/dist/snapshot.js +157 -0
  17. package/dist/snapshot.js.map +1 -0
  18. package/dist/treeEventSnapshots.d.ts +30 -0
  19. package/dist/treeEventSnapshots.d.ts.map +1 -0
  20. package/dist/treeEventSnapshots.js +186 -0
  21. package/dist/treeEventSnapshots.js.map +1 -0
  22. package/dist/webrtc/index.d.ts +3 -2
  23. package/dist/webrtc/index.d.ts.map +1 -1
  24. package/dist/webrtc/index.js +3 -2
  25. package/dist/webrtc/index.js.map +1 -1
  26. package/dist/webrtc/peer.d.ts +12 -1
  27. package/dist/webrtc/peer.d.ts.map +1 -1
  28. package/dist/webrtc/peer.js +39 -5
  29. package/dist/webrtc/peer.js.map +1 -1
  30. package/dist/webrtc/peerSelector.d.ts +31 -0
  31. package/dist/webrtc/peerSelector.d.ts.map +1 -0
  32. package/dist/webrtc/peerSelector.js +348 -0
  33. package/dist/webrtc/peerSelector.js.map +1 -0
  34. package/dist/webrtc/protocol.d.ts +15 -4
  35. package/dist/webrtc/protocol.d.ts.map +1 -1
  36. package/dist/webrtc/protocol.js +31 -17
  37. package/dist/webrtc/protocol.js.map +1 -1
  38. package/dist/webrtc/store.d.ts +31 -4
  39. package/dist/webrtc/store.d.ts.map +1 -1
  40. package/dist/webrtc/store.js +362 -99
  41. package/dist/webrtc/store.js.map +1 -1
  42. package/dist/webrtc/types.d.ts +66 -4
  43. package/dist/webrtc/types.d.ts.map +1 -1
  44. package/dist/webrtc/types.js +71 -9
  45. package/dist/webrtc/types.js.map +1 -1
  46. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"nostr.d.ts","sourceRoot":"","sources":["../../src/resolver/nostr.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,WAAW,EAAqF,MAAM,gBAAgB,CAAC;AAErI,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACrD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAYD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sGAAsG;IACtG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAgGD,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjF,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACrF,kGAAkG;IAClG,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,uDAAuD;IACvD,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,qDAAqD;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AAEH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,CAs1BlF"}
1
+ {"version":3,"file":"nostr.d.ts","sourceRoot":"","sources":["../../src/resolver/nostr.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IACrD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAmBD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sGAAsG;IACtG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA0ID,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3G;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjF,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IACrF,kGAAkG;IAClG,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,uDAAuD;IACvD,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC/B,qDAAqD;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AAEH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW,CAg7BlF"}
@@ -6,6 +6,38 @@ function hasLabel(event, label) {
6
6
  function hasAnyLabel(event) {
7
7
  return event.tags.some(tag => tag[0] === 'l');
8
8
  }
9
+ function uniqueLabels(labels) {
10
+ const seen = new Set();
11
+ const result = [];
12
+ for (const label of labels) {
13
+ if (!label || seen.has(label))
14
+ continue;
15
+ seen.add(label);
16
+ result.push(label);
17
+ }
18
+ return result;
19
+ }
20
+ function compareReplaceableEventOrder(candidateCreatedAt, candidateEventId, currentCreatedAt, currentEventId) {
21
+ if (candidateCreatedAt !== currentCreatedAt) {
22
+ return candidateCreatedAt - currentCreatedAt;
23
+ }
24
+ const candidateId = candidateEventId ?? '';
25
+ const currentId = currentEventId ?? '';
26
+ if (candidateId === currentId) {
27
+ return 0;
28
+ }
29
+ if (!candidateId)
30
+ return -1;
31
+ if (!currentId)
32
+ return 1;
33
+ return candidateId.localeCompare(currentId);
34
+ }
35
+ function parseLabels(event) {
36
+ return uniqueLabels(event.tags
37
+ .filter(tag => tag[0] === 'l')
38
+ .map(tag => tag[1])
39
+ .filter((label) => typeof label === 'string' && label.length > 0));
40
+ }
9
41
  function parseLegacyContent(event) {
10
42
  const content = event.content?.trim();
11
43
  if (!content)
@@ -53,6 +85,7 @@ function parseHashAndVisibility(event) {
53
85
  const keyId = keyIdTag ?? legacyContent?.keyId;
54
86
  const selfEncryptedKey = selfEncryptedKeyTag ?? legacyContent?.selfEncryptedKey;
55
87
  const selfEncryptedLinkKey = selfEncryptedLinkKeyTag ?? legacyContent?.selfEncryptedLinkKey;
88
+ const labels = parseLabels(event);
56
89
  let visibility;
57
90
  if (encryptedKey) {
58
91
  // encryptedKey means link-visible (shareable via link)
@@ -66,7 +99,7 @@ function parseHashAndVisibility(event) {
66
99
  else {
67
100
  visibility = legacyContent?.visibility ?? 'public';
68
101
  }
69
- return { hash, visibility, key, encryptedKey, keyId, selfEncryptedKey, selfEncryptedLinkKey };
102
+ return { hash, visibility, labels, key, encryptedKey, keyId, selfEncryptedKey, selfEncryptedLinkKey };
70
103
  }
71
104
  /**
72
105
  * Legacy parse function for backwards compatibility
@@ -89,6 +122,22 @@ export function createNostrRefResolver(config) {
89
122
  // Persistent local cache for list entries (survives subscription lifecycle)
90
123
  // Key is npub, value is map of tree name -> entry
91
124
  const localListCache = new Map();
125
+ function nextReplaceableCreatedAt(key, npubStr, treeName, minimum) {
126
+ let latestKnown = 0;
127
+ const activeSub = subscriptions.get(key);
128
+ if (activeSub?.latestCreatedAt) {
129
+ latestKnown = Math.max(latestKnown, activeSub.latestCreatedAt);
130
+ }
131
+ const cachedEntry = localListCache.get(npubStr)?.get(treeName);
132
+ if (cachedEntry?.created_at) {
133
+ latestKnown = Math.max(latestKnown, cachedEntry.created_at);
134
+ }
135
+ const activeListEntry = listSubscriptions.get(npubStr)?.entriesByDTag.get(treeName);
136
+ if (activeListEntry?.created_at) {
137
+ latestKnown = Math.max(latestKnown, activeListEntry.created_at);
138
+ }
139
+ return latestKnown >= minimum ? latestKnown + 1 : minimum;
140
+ }
92
141
  /**
93
142
  * Parse a pointer key into pubkey and tree name
94
143
  * Key format: "npub1.../treename" or "npub1.../path/to/treename"
@@ -124,6 +173,7 @@ export function createNostrRefResolver(config) {
124
173
  return new Promise((resolve) => {
125
174
  let latestData = null;
126
175
  let latestCreatedAt = 0;
176
+ let latestEventId = null;
127
177
  let resolveTimeout = null;
128
178
  const doResolve = () => {
129
179
  unsubscribe();
@@ -147,8 +197,9 @@ export function createNostrRefResolver(config) {
147
197
  const hashAndKey = parseHashAndKey(event);
148
198
  if (!hashAndKey)
149
199
  return;
150
- if ((event.created_at || 0) > latestCreatedAt) {
200
+ if (compareReplaceableEventOrder(event.created_at || 0, event.id ?? null, latestCreatedAt, latestEventId) > 0) {
151
201
  latestCreatedAt = event.created_at || 0;
202
+ latestEventId = event.id ?? null;
152
203
  latestData = hashAndKey;
153
204
  }
154
205
  // Debounce: wait 100ms after last event to allow newer events to arrive
@@ -184,7 +235,10 @@ export function createNostrRefResolver(config) {
184
235
  });
185
236
  if (sub.currentHash) {
186
237
  const keyBytes = sub.currentKey ? fromHex(sub.currentKey) : undefined;
187
- callback(cid(fromHex(sub.currentHash), keyBytes), sub.currentVisibility ?? undefined);
238
+ callback(cid(fromHex(sub.currentHash), keyBytes), sub.currentVisibility ?? undefined, {
239
+ updatedAt: sub.latestCreatedAt,
240
+ eventId: sub.latestEventId ?? undefined,
241
+ });
188
242
  }
189
243
  }
190
244
  else {
@@ -194,9 +248,13 @@ export function createNostrRefResolver(config) {
194
248
  return;
195
249
  const keyBytes = subEntry.currentKey ? fromHex(subEntry.currentKey) : undefined;
196
250
  const visibilityInfo = subEntry.currentVisibility ?? undefined;
251
+ const metadata = {
252
+ updatedAt: subEntry.latestCreatedAt,
253
+ eventId: subEntry.latestEventId ?? undefined,
254
+ };
197
255
  for (const cb of subEntry.callbacks) {
198
256
  try {
199
- cb(cid(fromHex(subEntry.currentHash), keyBytes), visibilityInfo);
257
+ cb(cid(fromHex(subEntry.currentHash), keyBytes), visibilityInfo, metadata);
200
258
  }
201
259
  catch (e) {
202
260
  console.error('Resolver callback error:', e);
@@ -230,11 +288,25 @@ export function createNostrRefResolver(config) {
230
288
  const eventCreatedAt = event.created_at || 0;
231
289
  const newHash = visibilityData.hash;
232
290
  const newKey = visibilityData.key;
233
- // Only update if this event is newer (or same timestamp with different hash)
234
- if (eventCreatedAt >= subEntry.latestCreatedAt && newHash && newHash !== subEntry.currentHash) {
291
+ const eventOrder = compareReplaceableEventOrder(eventCreatedAt, event.id ?? null, subEntry.latestCreatedAt, subEntry.latestEventId);
292
+ // Only update if this event is newer, or if it matches the same source event but
293
+ // provides data we haven't stored yet.
294
+ const currentVisibilityJson = JSON.stringify(subEntry.currentVisibility ?? null);
295
+ const nextVisibilityJson = JSON.stringify({
296
+ visibility: visibilityData.visibility,
297
+ encryptedKey: visibilityData.encryptedKey,
298
+ keyId: visibilityData.keyId,
299
+ selfEncryptedKey: visibilityData.selfEncryptedKey,
300
+ selfEncryptedLinkKey: visibilityData.selfEncryptedLinkKey,
301
+ });
302
+ const hasChangedData = newHash !== subEntry.currentHash ||
303
+ (newKey ?? null) !== subEntry.currentKey ||
304
+ nextVisibilityJson !== currentVisibilityJson;
305
+ if (eventOrder > 0 || (eventOrder === 0 && hasChangedData)) {
235
306
  subEntry.currentHash = newHash;
236
307
  subEntry.currentKey = newKey || null;
237
308
  subEntry.latestCreatedAt = eventCreatedAt;
309
+ subEntry.latestEventId = event.id ?? null;
238
310
  // Build visibility info for callback
239
311
  const visibilityInfo = {
240
312
  visibility: visibilityData.visibility,
@@ -260,6 +332,7 @@ export function createNostrRefResolver(config) {
260
332
  selfEncryptedKey: visibilityData.selfEncryptedKey,
261
333
  selfEncryptedLinkKey: visibilityData.selfEncryptedLinkKey,
262
334
  created_at: eventCreatedAt,
335
+ eventId: event.id,
263
336
  });
264
337
  notifyCallbacks(subEntry);
265
338
  }
@@ -280,12 +353,16 @@ export function createNostrRefResolver(config) {
280
353
  selfEncryptedLinkKey: cachedEntry.selfEncryptedLinkKey,
281
354
  } : null,
282
355
  latestCreatedAt: cachedEntry?.created_at ?? 0,
356
+ latestEventId: cachedEntry?.eventId ?? null,
283
357
  };
284
358
  subscriptions.set(key, sub);
285
359
  // Fire callback immediately with cached value if available
286
360
  if (cachedEntry?.hash) {
287
361
  const keyBytes = cachedEntry.key ? fromHex(cachedEntry.key) : undefined;
288
- callback(cid(fromHex(cachedEntry.hash), keyBytes), sub.currentVisibility ?? undefined);
362
+ callback(cid(fromHex(cachedEntry.hash), keyBytes), sub.currentVisibility ?? undefined, {
363
+ updatedAt: sub.latestCreatedAt,
364
+ eventId: sub.latestEventId ?? undefined,
365
+ });
289
366
  }
290
367
  }
291
368
  // Return unsubscribe function
@@ -324,6 +401,7 @@ export function createNostrRefResolver(config) {
324
401
  const chkKeyHex = chkKey ? toHex(chkKey) : undefined;
325
402
  const now = Math.floor(Date.now() / 1000);
326
403
  const npubStr = key.split('/')[0];
404
+ const publishCreatedAt = nextReplaceableCreatedAt(key, npubStr, treeName, now);
327
405
  // Build visibility info for caches and tags
328
406
  const visibilityInfo = { visibility: visibilityType };
329
407
  let resultLinkKey;
@@ -345,6 +423,7 @@ export function createNostrRefResolver(config) {
345
423
  tags.push(['l', label]);
346
424
  }
347
425
  }
426
+ const allLabels = uniqueLabels(tags.filter(tag => tag[0] === 'l').map(tag => tag[1]));
348
427
  // Handle visibility-specific encryption and tags
349
428
  if (chkKey) {
350
429
  switch (visibilityType) {
@@ -417,19 +496,22 @@ export function createNostrRefResolver(config) {
417
496
  npubCache.set(treeName, {
418
497
  hash: hashHex,
419
498
  visibility: visibilityType,
499
+ labels: allLabels,
420
500
  key: visibilityType === 'public' ? chkKeyHex : undefined,
421
501
  encryptedKey: visibilityInfo.encryptedKey,
422
502
  keyId: visibilityInfo.keyId,
423
503
  selfEncryptedKey: visibilityInfo.selfEncryptedKey,
424
504
  selfEncryptedLinkKey: visibilityInfo.selfEncryptedLinkKey,
425
- created_at: now,
505
+ created_at: publishCreatedAt,
506
+ eventId: undefined,
426
507
  });
427
508
  // Update active subscription state
428
509
  const sub = subscriptions.get(key);
429
510
  if (sub) {
430
511
  sub.currentHash = hashHex;
431
512
  sub.currentKey = visibilityType === 'public' ? chkKeyHex || null : null;
432
- sub.latestCreatedAt = now;
513
+ sub.latestCreatedAt = publishCreatedAt;
514
+ sub.latestEventId = null;
433
515
  sub.currentVisibility = visibilityInfo;
434
516
  // Notify callbacks with CID
435
517
  for (const cb of sub.callbacks) {
@@ -455,12 +537,14 @@ export function createNostrRefResolver(config) {
455
537
  listSub.entriesByDTag.set(treeName, {
456
538
  hash: hashHex,
457
539
  visibility: visibilityType,
540
+ labels: allLabels,
458
541
  key: visibilityType === 'public' ? chkKeyHex : undefined,
459
542
  encryptedKey: visibilityInfo.encryptedKey,
460
543
  keyId: visibilityInfo.keyId,
461
544
  selfEncryptedKey: visibilityInfo.selfEncryptedKey,
462
545
  selfEncryptedLinkKey: visibilityInfo.selfEncryptedLinkKey,
463
- created_at: now,
546
+ created_at: publishCreatedAt,
547
+ eventId: undefined,
464
548
  });
465
549
  // Emit updated state immediately to ALL callbacks
466
550
  const result = [];
@@ -470,6 +554,7 @@ export function createNostrRefResolver(config) {
470
554
  result.push({
471
555
  key: `${npubStr}/${dTag}`,
472
556
  cid: cid(fromHex(entry.hash), entry.key ? fromHex(entry.key) : undefined),
557
+ labels: entry.labels,
473
558
  visibility: entry.visibility,
474
559
  encryptedKey: entry.encryptedKey,
475
560
  keyId: entry.keyId,
@@ -494,6 +579,7 @@ export function createNostrRefResolver(config) {
494
579
  kind: 30078,
495
580
  content: '',
496
581
  tags,
582
+ created_at: publishCreatedAt,
497
583
  });
498
584
  if (!success) {
499
585
  return { success: false, linkKey: resultLinkKey };
@@ -545,6 +631,7 @@ export function createNostrRefResolver(config) {
545
631
  result.push({
546
632
  key: `${npubStr}/${dTag}`,
547
633
  cid: cid(fromHex(entry.hash), entry.key ? fromHex(entry.key) : undefined),
634
+ labels: entry.labels,
548
635
  visibility: entry.visibility,
549
636
  encryptedKey: entry.encryptedKey,
550
637
  keyId: entry.keyId,
@@ -583,6 +670,7 @@ export function createNostrRefResolver(config) {
583
670
  result.push({
584
671
  key: `${npubStr}/${dTag}`,
585
672
  cid: cid(fromHex(entry.hash), entry.key ? fromHex(entry.key) : undefined),
673
+ labels: entry.labels,
586
674
  visibility: entry.visibility,
587
675
  encryptedKey: entry.encryptedKey,
588
676
  keyId: entry.keyId,
@@ -617,39 +705,31 @@ export function createNostrRefResolver(config) {
617
705
  const hasHash = !!parsed?.hash;
618
706
  const existing = entriesByDTag.get(dTag);
619
707
  const eventTime = event.created_at || 0;
620
- // Timestamp-based update logic:
621
- // 1. Accept if no existing entry
622
- // 2. Accept if event is strictly newer
623
- // 3. Accept if same timestamp and this is a delete (no hash) overwriting a create (has hash)
624
- // 4. Reject if same timestamp and this would "undelete" (create overwriting delete)
625
- // 5. Reject if existing is deleted and new event is within 30s (prevent stale event undelete)
626
708
  if (existing) {
627
709
  const existingIsDeleted = !existing.hash;
628
710
  const timeDiff = eventTime - existing.created_at;
711
+ const eventOrder = compareReplaceableEventOrder(eventTime, event.id ?? null, existing.created_at, existing.eventId);
629
712
  // Block stale events from "undeleting" within 30 seconds
630
713
  if (existingIsDeleted && hasHash && timeDiff < 30) {
631
714
  return;
632
715
  }
633
- // Block same-timestamp undelete (create can't overwrite delete at same time)
634
- if (existingIsDeleted && hasHash && timeDiff === 0) {
716
+ if (eventOrder < 0)
635
717
  return;
636
- }
637
- // Only update if newer, or if same time and delete wins over create
638
- const shouldUpdate = eventTime > existing.created_at ||
639
- (eventTime === existing.created_at && !hasHash && existing.hash);
640
- if (!shouldUpdate)
718
+ if (eventOrder === 0 && existing.hash === (parsed?.hash ?? ''))
641
719
  return;
642
720
  }
643
721
  // Update the entry
644
722
  const entryData = {
645
723
  hash: parsed?.hash ?? '',
646
724
  visibility: parsed?.visibility ?? 'public',
725
+ labels: parsed?.labels,
647
726
  key: parsed?.key,
648
727
  encryptedKey: parsed?.encryptedKey,
649
728
  keyId: parsed?.keyId,
650
729
  selfEncryptedKey: parsed?.selfEncryptedKey,
651
730
  selfEncryptedLinkKey: parsed?.selfEncryptedLinkKey,
652
731
  created_at: eventTime,
732
+ eventId: event.id,
653
733
  };
654
734
  entriesByDTag.set(dTag, entryData);
655
735
  // Also update localListCache so subscribe() can find this data
@@ -701,6 +781,7 @@ export function createNostrRefResolver(config) {
701
781
  return false;
702
782
  const now = Math.floor(Date.now() / 1000);
703
783
  const npubStr = key.split('/')[0];
784
+ const deleteCreatedAt = nextReplaceableCreatedAt(key, npubStr, treeName, now + 1);
704
785
  // Update local list cache with empty hash (marks as deleted)
705
786
  let npubCache = localListCache.get(npubStr);
706
787
  if (!npubCache) {
@@ -711,14 +792,16 @@ export function createNostrRefResolver(config) {
711
792
  hash: '', // Empty hash marks as deleted
712
793
  visibility: 'public',
713
794
  key: undefined,
714
- created_at: now,
795
+ created_at: deleteCreatedAt,
796
+ eventId: undefined,
715
797
  });
716
798
  // Update active subscription state
717
799
  const sub = subscriptions.get(key);
718
800
  if (sub) {
719
801
  sub.currentHash = null;
720
802
  sub.currentKey = null;
721
- sub.latestCreatedAt = now;
803
+ sub.latestCreatedAt = deleteCreatedAt;
804
+ sub.latestEventId = null;
722
805
  sub.currentVisibility = null;
723
806
  // Notify callbacks with null CID
724
807
  for (const cb of sub.callbacks) {
@@ -737,7 +820,8 @@ export function createNostrRefResolver(config) {
737
820
  hash: '', // Empty hash marks as deleted
738
821
  visibility: 'public',
739
822
  key: undefined,
740
- created_at: now,
823
+ created_at: deleteCreatedAt,
824
+ eventId: undefined,
741
825
  });
742
826
  // Emit - filter out empty hashes (deleted trees)
743
827
  const result = [];
@@ -747,6 +831,7 @@ export function createNostrRefResolver(config) {
747
831
  result.push({
748
832
  key: `${npubStr}/${dTag}`,
749
833
  cid: cid(fromHex(entry.hash), entry.key ? fromHex(entry.key) : undefined),
834
+ labels: entry.labels,
750
835
  visibility: entry.visibility,
751
836
  encryptedKey: entry.encryptedKey,
752
837
  keyId: entry.keyId,
@@ -775,7 +860,7 @@ export function createNostrRefResolver(config) {
775
860
  ['l', 'hashtree'],
776
861
  // No hash tag = deleted
777
862
  ],
778
- created_at: now + 1,
863
+ created_at: deleteCreatedAt,
779
864
  }).catch(e => console.error('Failed to publish delete to nostr:', e));
780
865
  return true;
781
866
  },
@@ -790,6 +875,7 @@ export function createNostrRefResolver(config) {
790
875
  const [npubStr, treeName] = parts;
791
876
  const now = Math.floor(Date.now() / 1000);
792
877
  const hasHash = !!toHex(entry.cid.hash);
878
+ const injectedCreatedAt = nextReplaceableCreatedAt(entry.key, npubStr, treeName, now);
793
879
  // Update the local list cache
794
880
  let npubCache = localListCache.get(npubStr);
795
881
  if (!npubCache) {
@@ -803,16 +889,18 @@ export function createNostrRefResolver(config) {
803
889
  if (existingWasDeletedCache && hasHash && timeDiffCache < 30) {
804
890
  return;
805
891
  }
806
- if (!existing || now >= existing.created_at) {
892
+ if (!existing || compareReplaceableEventOrder(injectedCreatedAt, null, existing.created_at, existing.eventId) >= 0) {
807
893
  npubCache.set(treeName, {
808
894
  hash: toHex(entry.cid.hash),
809
895
  visibility: entry.visibility ?? 'public',
896
+ labels: entry.labels,
810
897
  key: entry.cid.key ? toHex(entry.cid.key) : undefined,
811
898
  encryptedKey: entry.encryptedKey,
812
899
  keyId: entry.keyId,
813
900
  selfEncryptedKey: entry.selfEncryptedKey,
814
901
  selfEncryptedLinkKey: entry.selfEncryptedLinkKey,
815
- created_at: now,
902
+ created_at: injectedCreatedAt,
903
+ eventId: undefined,
816
904
  });
817
905
  }
818
906
  // If there's an active list subscription for this npub, update it too
@@ -825,16 +913,18 @@ export function createNostrRefResolver(config) {
825
913
  if (existingWasDeleted && hasHash && timeDiff < 30) {
826
914
  return;
827
915
  }
828
- if (!existingSub || now >= existingSub.created_at) {
916
+ if (!existingSub || compareReplaceableEventOrder(injectedCreatedAt, null, existingSub.created_at, existingSub.eventId) >= 0) {
829
917
  listSub.entriesByDTag.set(treeName, {
830
918
  hash: toHex(entry.cid.hash),
831
919
  visibility: entry.visibility ?? 'public',
920
+ labels: entry.labels,
832
921
  key: entry.cid.key ? toHex(entry.cid.key) : undefined,
833
922
  encryptedKey: entry.encryptedKey,
834
923
  keyId: entry.keyId,
835
924
  selfEncryptedKey: entry.selfEncryptedKey,
836
925
  selfEncryptedLinkKey: entry.selfEncryptedLinkKey,
837
- created_at: now,
926
+ created_at: injectedCreatedAt,
927
+ eventId: undefined,
838
928
  });
839
929
  // Emit updated state to ALL callbacks
840
930
  const result = [];
@@ -844,6 +934,7 @@ export function createNostrRefResolver(config) {
844
934
  result.push({
845
935
  key: `${npubStr}/${dTag}`,
846
936
  cid: cid(fromHex(e.hash), e.key ? fromHex(e.key) : undefined),
937
+ labels: e.labels,
847
938
  visibility: e.visibility,
848
939
  encryptedKey: e.encryptedKey,
849
940
  keyId: e.keyId,
@@ -1 +1 @@
1
- {"version":3,"file":"nostr.js","sourceRoot":"","sources":["../../src/resolver/nostr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nostr.js","sourceRoot":"","sources":["../../src/resolver/nostr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type CID, type Store, type TreeVisibility } from '@hashtree/core';
2
+ import type { StoredNostrEvent } from './events.js';
3
+ export interface ParsedHashtreeRootEvent {
4
+ event: StoredNostrEvent;
5
+ treeName: string;
6
+ rootCid: CID;
7
+ visibility: TreeVisibility;
8
+ labels: string[];
9
+ encryptedKey?: string;
10
+ keyId?: string;
11
+ selfEncryptedKey?: string;
12
+ selfEncryptedLinkKey?: string;
13
+ }
14
+ export interface SnapshotTreeLike {
15
+ putFile(data: Uint8Array, options?: {
16
+ unencrypted?: boolean;
17
+ }): Promise<{
18
+ cid: CID;
19
+ size: number;
20
+ }>;
21
+ readFileRange(id: CID, start: number, end?: number): Promise<Uint8Array | null>;
22
+ }
23
+ export type SnapshotTarget = Store | SnapshotTreeLike;
24
+ export declare function normalizeSignedNostrEvent(event: StoredNostrEvent): StoredNostrEvent;
25
+ export declare function encodeSignedNostrEventJson(event: StoredNostrEvent): Uint8Array;
26
+ export declare function decodeSignedNostrEventJson(data: Uint8Array): StoredNostrEvent;
27
+ export declare function storeSignedNostrEventSnapshot(target: SnapshotTarget, event: StoredNostrEvent): Promise<CID>;
28
+ export declare function readSignedNostrEventSnapshot(target: SnapshotTarget, snapshotCid: CID, maxBytes?: number): Promise<StoredNostrEvent>;
29
+ export declare function parseHashtreeRootEvent(event: StoredNostrEvent): ParsedHashtreeRootEvent | null;
30
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,GAAG,EAAE,KAAK,KAAK,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQpD,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CACL,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAClC,OAAO,CAAC;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CACjF;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,gBAAgB,CAAC;AAsCtD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CA+BnF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAW9E;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAW7E;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAGjH;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,GAAG,EAChB,QAAQ,SAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAUD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,uBAAuB,GAAG,IAAI,CAgD9F"}