@hashtree/nostr 0.1.14 → 0.2.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.
- package/README.md +106 -176
- package/dist/eventCollection.d.ts +1 -1
- package/dist/eventCollection.d.ts.map +1 -1
- package/dist/eventCollection.js +2 -7
- package/dist/eventCollection.js.map +1 -1
- package/dist/eventKeys.d.ts +1 -0
- package/dist/eventKeys.d.ts.map +1 -1
- package/dist/eventKeys.js +7 -1
- package/dist/eventKeys.js.map +1 -1
- package/dist/events.d.ts +4 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +76 -70
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/resolver/nostr.d.ts.map +1 -1
- package/dist/resolver/nostr.js +37 -25
- package/dist/resolver/nostr.js.map +1 -1
- package/dist/snapshot.d.ts +5 -0
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +11 -3
- package/dist/snapshot.js.map +1 -1
- package/dist/treeEventSnapshotPermalinks.js +2 -2
- package/dist/treeEventSnapshotPermalinks.js.map +1 -1
- package/dist/treeEventSnapshots.d.ts.map +1 -1
- package/dist/treeEventSnapshots.js +11 -12
- package/dist/treeEventSnapshots.js.map +1 -1
- package/package.json +18 -14
- package/src/eventCollection.ts +189 -0
- package/src/eventKeys.ts +155 -0
- package/src/eventValidation.ts +71 -0
- package/src/events.ts +929 -0
- package/src/index.ts +122 -0
- package/src/replaceablePublish.ts +204 -0
- package/src/resolver/index.ts +14 -0
- package/src/resolver/nostr.ts +1212 -0
- package/src/snapshot.ts +214 -0
- package/src/treeEventSnapshotPermalinks.ts +150 -0
- package/src/treeEventSnapshots.ts +283 -0
- package/dist/webrtc/index.d.ts +0 -6
- package/dist/webrtc/index.d.ts.map +0 -1
- package/dist/webrtc/index.js +0 -7
- package/dist/webrtc/index.js.map +0 -1
- package/dist/webrtc/lruCache.d.ts +0 -20
- package/dist/webrtc/lruCache.d.ts.map +0 -1
- package/dist/webrtc/lruCache.js +0 -59
- package/dist/webrtc/lruCache.js.map +0 -1
- package/dist/webrtc/peer.d.ts +0 -133
- package/dist/webrtc/peer.d.ts.map +0 -1
- package/dist/webrtc/peer.js +0 -617
- package/dist/webrtc/peer.js.map +0 -1
- package/dist/webrtc/peerSelector.d.ts +0 -2
- package/dist/webrtc/peerSelector.d.ts.map +0 -1
- package/dist/webrtc/peerSelector.js +0 -2
- package/dist/webrtc/peerSelector.js.map +0 -1
- package/dist/webrtc/protocol.d.ts +0 -3
- package/dist/webrtc/protocol.d.ts.map +0 -1
- package/dist/webrtc/protocol.js +0 -2
- package/dist/webrtc/protocol.js.map +0 -1
- package/dist/webrtc/store.d.ts +0 -217
- package/dist/webrtc/store.d.ts.map +0 -1
- package/dist/webrtc/store.js +0 -1320
- package/dist/webrtc/store.js.map +0 -1
- package/dist/webrtc/types.d.ts +0 -101
- package/dist/webrtc/types.d.ts.map +0 -1
- package/dist/webrtc/types.js +0 -5
- package/dist/webrtc/types.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,206 +1,136 @@
|
|
|
1
1
|
# @hashtree/nostr
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
For app-builder guidance and common pitfalls, see [../../GETTING_STARTED.md](../../GETTING_STARTED.md).
|
|
6
|
-
|
|
7
|
-
## Install
|
|
3
|
+
Publish and follow mutable roots, store indexed Nostr events, and capture signed
|
|
4
|
+
root snapshots. Blob storage/transport is separate; Nostr carries the pointer.
|
|
8
5
|
|
|
9
6
|
```bash
|
|
10
|
-
npm install @hashtree/nostr
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Nostr Event Collections
|
|
14
|
-
|
|
15
|
-
Use `NostrEventStore` when your app wants a hashtree-native Nostr event collection instead of inventing its own query API.
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
import { MemoryStore } from '@hashtree/core';
|
|
19
|
-
import { NostrEventStore } from '@hashtree/nostr';
|
|
20
|
-
|
|
21
|
-
const store = new MemoryStore();
|
|
22
|
-
const events = new NostrEventStore(store);
|
|
23
|
-
|
|
24
|
-
const profileNotes = await events.query(rootCid, {
|
|
25
|
-
authors: pubkey,
|
|
26
|
-
kinds: [1],
|
|
27
|
-
}, { limit: 50 });
|
|
28
|
-
|
|
29
|
-
for await (const event of events.streamQuery(rootCid, {
|
|
30
|
-
authors: pubkey,
|
|
31
|
-
tags: { t: 'hashtree' },
|
|
32
|
-
})) {
|
|
33
|
-
console.log(event.id, event.content);
|
|
34
|
-
}
|
|
7
|
+
npm install @hashtree/core @hashtree/nostr nostr-tools
|
|
35
8
|
```
|
|
36
9
|
|
|
37
|
-
|
|
10
|
+
[Quickstart](https://github.com/mmalmi/hashtree/blob/master/ts/GETTING_STARTED.md) · [API reference](https://github.com/mmalmi/hashtree/blob/master/ts/API.md)
|
|
38
11
|
|
|
39
|
-
##
|
|
12
|
+
## Publish and follow a root
|
|
40
13
|
|
|
41
|
-
|
|
14
|
+
This integration function uses `nostr-tools`' `SimplePool`. Supply your relay
|
|
15
|
+
URLs, tree name, signer's hex pubkey, signing callback, an already-uploaded root,
|
|
16
|
+
and a UI update callback. The signer may be a wallet; NDK is optional.
|
|
42
17
|
|
|
43
18
|
```typescript
|
|
44
|
-
import {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
19
|
+
import { type CID } from '@hashtree/core';
|
|
20
|
+
import { createNostrRefResolver } from '@hashtree/nostr';
|
|
21
|
+
import { SimplePool, nip19, type Event, type EventTemplate } from 'nostr-tools';
|
|
22
|
+
|
|
23
|
+
export async function publishAndFollowRoot(
|
|
24
|
+
relays: string[],
|
|
25
|
+
treeName: string,
|
|
26
|
+
pubkey: string,
|
|
27
|
+
signEvent: (template: EventTemplate) => Promise<Event>,
|
|
28
|
+
root: CID,
|
|
29
|
+
onRoot: (root: CID | null) => void,
|
|
30
|
+
): Promise<() => void> {
|
|
31
|
+
const pool = new SimplePool({ enableReconnect: true });
|
|
32
|
+
const resolver = createNostrRefResolver({
|
|
33
|
+
nip19,
|
|
34
|
+
getPubkey: () => pubkey,
|
|
35
|
+
subscribe: (filter, onEvent) => {
|
|
36
|
+
const subscription = pool.subscribeMany(relays, { ...filter }, { onevent: onEvent });
|
|
37
|
+
return () => subscription.close();
|
|
38
|
+
},
|
|
39
|
+
publish: async (template) => {
|
|
40
|
+
const signed = await signEvent({
|
|
41
|
+
...template,
|
|
42
|
+
created_at: template.created_at ?? Math.floor(Date.now() / 1000),
|
|
43
|
+
});
|
|
44
|
+
await Promise.any(pool.publish(relays, signed)); // At least one relay accepted it.
|
|
45
|
+
return true;
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const key = `${nip19.npubEncode(pubkey)}/${treeName}`;
|
|
49
|
+
const unsubscribe = resolver.subscribe(key, onRoot);
|
|
50
|
+
const close = () => { unsubscribe(); resolver.stop?.(); pool.destroy(); };
|
|
51
|
+
try {
|
|
52
|
+
const result = await resolver.publish!(key, root, { visibility: 'public' });
|
|
53
|
+
if (!result.success) throw new Error('Root publication failed');
|
|
54
|
+
return close; // Call when the view/app no longer follows this tree.
|
|
55
|
+
} catch (error) {
|
|
56
|
+
close();
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
83
60
|
```
|
|
84
61
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
| `encryptedKey` | XOR'd key (link-visible trees) |
|
|
93
|
-
| `selfEncryptedKey` | NIP-44 encrypted (private/link-visible) |
|
|
62
|
+
For a read-only view, create the same resolver and call `subscribe()` with the
|
|
63
|
+
publisher's `npub/treeName`; omit the publish call. `getPubkey` may return `null`
|
|
64
|
+
and `publish` may be `async () => false` when your adapter cannot write. Keep
|
|
65
|
+
subscriptions open after EOSE and during quiet periods; absence of an event is
|
|
66
|
+
not a missing tree. Handle fetch failures in async UI callbacks yourself.
|
|
67
|
+
`resolve(key)` is a one-shot lookup that can wait indefinitely; use a subscription
|
|
68
|
+
with explicit cleanup for cancellable/live views.
|
|
94
69
|
|
|
95
|
-
**
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
70
|
+
Upload **all blocks first**, then publish the root. The resolver updates its local
|
|
71
|
+
cache optimistically; an `onRoot` callback is not proof of relay acceptance.
|
|
72
|
+
Catch rejected signing/publishing requests and check `result.success`.
|
|
73
|
+
Relay acceptance is also not evidence that the root's blobs are available.
|
|
99
74
|
|
|
100
|
-
|
|
75
|
+
## Names and visibility
|
|
101
76
|
|
|
102
|
-
|
|
103
|
-
|
|
77
|
+
The resolver key is `npub/treeName`; everything after the first slash belongs to
|
|
78
|
+
the tree name. To read a file, first resolve that exact root name and then call
|
|
79
|
+
`HashTree.resolvePath(root, 'path/to/file')` with the separate file path.
|
|
104
80
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
publish: (event) => { /* your relay client publish callback */ },
|
|
108
|
-
});
|
|
81
|
+
New roots use kind **30064**, tags `d` (tree name), `l=hashtree`, and `hash`.
|
|
82
|
+
Readers also accept legacy kind **30078**. Visibility controls key disclosure:
|
|
109
83
|
|
|
110
|
-
|
|
111
|
-
|
|
84
|
+
| Visibility | Key handling |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| `public` (default) | Publishes the content key in a `key` tag; anyone can decrypt retrieved blocks |
|
|
87
|
+
| `link-visible` | Publishes `encryptedKey` / `keyId`; keep the returned `result.linkKey` in the secret share URL |
|
|
88
|
+
| `private` | Requires `visibility.encrypt` / `decrypt` callbacks for NIP-44 self-encryption |
|
|
112
89
|
|
|
113
|
-
|
|
90
|
+
For link-visible readers, supply `visibility.getLinkKey`; supply NIP-44 callbacks
|
|
91
|
+
to let the owner recover keys too. Visibility options need an encrypted root
|
|
92
|
+
CID. Changing visibility cannot revoke keys or old roots already shared.
|
|
93
|
+
For direct signed replaceable-event publishing, `createReplaceablePublishQueue()`
|
|
94
|
+
coalesces bursts per coordinate; see its API before building your own queue.
|
|
114
95
|
|
|
115
|
-
|
|
96
|
+
## Store and query events
|
|
116
97
|
|
|
117
|
-
|
|
98
|
+
This standalone example creates a temporary signing identity for local demo data.
|
|
99
|
+
Apps should use their existing signer and validate incoming event signatures.
|
|
118
100
|
|
|
119
101
|
```typescript
|
|
120
|
-
import {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
kind: 30078,
|
|
135
|
-
created_at: createdAt,
|
|
136
|
-
tags: [['d', treeName], ['hash', rootHash]],
|
|
137
|
-
content: '',
|
|
138
|
-
});
|
|
139
|
-
return publishSignedEvent(signed);
|
|
140
|
-
},
|
|
141
|
-
});
|
|
102
|
+
import { MemoryStore } from '@hashtree/core';
|
|
103
|
+
import { NostrEventStore } from '@hashtree/nostr';
|
|
104
|
+
import { generateSecretKey, finalizeEvent } from 'nostr-tools';
|
|
105
|
+
|
|
106
|
+
const event = finalizeEvent({
|
|
107
|
+
kind: 1, created_at: 1, tags: [['t', 'hashtree']], content: 'Hello from Nostr',
|
|
108
|
+
}, generateSecretKey());
|
|
109
|
+
const events = new NostrEventStore(new MemoryStore());
|
|
110
|
+
const root = await events.add(null, event);
|
|
111
|
+
const found = await events.query(root, { authors: event.pubkey, kinds: [1] }, { limit: 50 });
|
|
112
|
+
console.log(found[0]?.content); // Hello from Nostr
|
|
113
|
+
for await (const note of events.streamQuery(root, { tags: { t: 'hashtree' } })) {
|
|
114
|
+
console.log(note.content); // Hello from Nostr
|
|
115
|
+
}
|
|
142
116
|
```
|
|
143
117
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
For live mutable app data, prefer resolving the current root from relays first. Snapshots are for permalinks, offline reuse, and signed historical captures, not for replacing a live source lookup.
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
import {
|
|
152
|
-
storeTreeEventSnapshot,
|
|
153
|
-
readTreeEventSnapshot,
|
|
154
|
-
fetchLatestTreeEventSnapshot,
|
|
155
|
-
watchLatestTreeEventSnapshot,
|
|
156
|
-
} from '@hashtree/nostr';
|
|
157
|
-
import { HashTree } from '@hashtree/core';
|
|
158
|
-
|
|
159
|
-
const hashTree = new HashTree({ store });
|
|
160
|
-
|
|
161
|
-
const snapshot = await storeTreeEventSnapshot(hashTree, nip19, signedRootEvent);
|
|
162
|
-
const sameSnapshot = snapshot
|
|
163
|
-
? await readTreeEventSnapshot(hashTree, nip19, snapshot.snapshotCid)
|
|
164
|
-
: null;
|
|
165
|
-
|
|
166
|
-
const latest = await fetchLatestTreeEventSnapshot(
|
|
167
|
-
{ snapshotTarget: hashTree, nip19, fetchEvents },
|
|
168
|
-
'npub1...owner',
|
|
169
|
-
'videos/demo',
|
|
170
|
-
);
|
|
171
|
-
|
|
172
|
-
const stop = watchLatestTreeEventSnapshot(
|
|
173
|
-
{ snapshotTarget: hashTree, nip19, fetchEvents, subscribeEvents },
|
|
174
|
-
'npub1...owner',
|
|
175
|
-
'videos/demo',
|
|
176
|
-
(nextSnapshot) => {
|
|
177
|
-
console.log(nextSnapshot.snapshotNhash, nextSnapshot.rootCid);
|
|
178
|
-
},
|
|
179
|
-
);
|
|
180
|
-
|
|
181
|
-
// later
|
|
182
|
-
stop();
|
|
183
|
-
```
|
|
118
|
+
Retain the root returned by `add()` / `build()`. `query()` and `streamQuery()`
|
|
119
|
+
select the available author/kind/tag/time index. Pass `{ strict: true }` to reject
|
|
120
|
+
missing/unreadable selected event blobs instead of skipping them.
|
|
184
121
|
|
|
185
|
-
|
|
122
|
+
## Signed snapshots
|
|
186
123
|
|
|
187
|
-
|
|
124
|
+
`storeTreeEventSnapshot(tree, nip19, signedRootEvent)` stores an immutable signed
|
|
125
|
+
root event and returns its `snapshotCid`, `snapshotNhash`, and `rootCid` (or `null`
|
|
126
|
+
for an unsuitable event). `readTreeEventSnapshot()` restores it;
|
|
127
|
+
`buildTreeEventSnapshotPermalink({ snapshotNhash, path, linkKey })` makes a route.
|
|
128
|
+
The snapshot does not copy the root's file blocks. Preserve/upload those too.
|
|
188
129
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
} from '@hashtree/nostr';
|
|
194
|
-
|
|
195
|
-
const href = buildTreeEventSnapshotPermalink({
|
|
196
|
-
snapshotNhash: snapshot.snapshotNhash,
|
|
197
|
-
path: ['index.html'],
|
|
198
|
-
linkKey: 'abcd...optional 64-hex link key',
|
|
199
|
-
});
|
|
200
|
-
// nhash1.../index.html?snapshot=1&k=...
|
|
201
|
-
|
|
202
|
-
const parsed = parseTreeEventSnapshotPermalink(`htree://${href}`);
|
|
203
|
-
```
|
|
130
|
+
Use snapshots for permalinks, history, or offline reuse. For live state, keep a
|
|
131
|
+
root subscription open. `watchLatestTreeEventSnapshot()` combines relay discovery
|
|
132
|
+
with snapshot storage and returns a cleanup function; the app owns cache policy.
|
|
133
|
+
Peer blob fetching uses [FIPS transport](https://github.com/mmalmi/hashtree/blob/master/ts/packages/hashtree-fips-transport/README.md).
|
|
204
134
|
|
|
205
135
|
## License
|
|
206
136
|
|
|
@@ -6,7 +6,7 @@ export declare const NOSTR_EVENT_ITEM_FORMAT = "nostr/event@1";
|
|
|
6
6
|
export declare const NOSTR_EVENT_PROJECTION_FORMAT = "hashtree/nostr-event-index@1";
|
|
7
7
|
export { COLLECTION_MANIFEST_METADATA_FILE };
|
|
8
8
|
export declare function createNostrEventCollectionDefinition(sourceId?: string): CollectionDefinition<StoredNostrEvent>;
|
|
9
|
-
export declare function nostrEventManifestToCollectionManifest(manifest: NostrEventManifest, sourceId?: string
|
|
9
|
+
export declare function nostrEventManifestToCollectionManifest(manifest: NostrEventManifest, sourceId?: string): CollectionManifest;
|
|
10
10
|
export declare function collectionManifestToNostrEventManifest(manifest: CollectionManifest): NostrEventManifest;
|
|
11
11
|
export declare function createNostrEventCollectionSource(store: Store, manifest: NostrEventManifest, sourceId?: string): Promise<CollectionSource>;
|
|
12
12
|
export declare function createNostrEventCollectionWriter(store: Store, manifest: NostrEventManifest, sourceId?: string): CollectionWriter<StoredNostrEvent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventCollection.d.ts","sourceRoot":"","sources":["../src/eventCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,gBAAgB,EAIhB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAwB5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,wCAAwC,iBAAiB,CAAC;AACvE,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,CAAC;AAO7C,wBAAgB,oCAAoC,CAClD,QAAQ,GAAE,MAAiD,GAC1D,oBAAoB,CAAC,gBAAgB,CAAC,CAsDxC;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,GAAE,MAAiD,
|
|
1
|
+
{"version":3,"file":"eventCollection.d.ts","sourceRoot":"","sources":["../src/eventCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,gBAAgB,EAIhB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAwB5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,wCAAwC,iBAAiB,CAAC;AACvE,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,CAAC;AAO7C,wBAAgB,oCAAoC,CAClD,QAAQ,GAAE,MAAiD,GAC1D,oBAAoB,CAAC,gBAAgB,CAAC,CAsDxC;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,GAAE,MAAiD,GAC1D,kBAAkB,CAwBpB;AAED,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAqBvG;AAED,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,GAAE,MAAiD,GAC1D,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,GAAE,MAAiD,GAC1D,gBAAgB,CAAC,gBAAgB,CAAC,CAMpC;AAED,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,GAAE,MAAiD,oEAK5D;AAED,eAAO,MAAM,gCAAgC,6CAAuC,CAAC"}
|
package/dist/eventCollection.js
CHANGED
|
@@ -60,7 +60,7 @@ export function createNostrEventCollectionDefinition(sourceId = DEFAULT_NOSTR_EV
|
|
|
60
60
|
],
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
export function nostrEventManifestToCollectionManifest(manifest, sourceId = DEFAULT_NOSTR_EVENT_COLLECTION_SOURCE_ID
|
|
63
|
+
export function nostrEventManifestToCollectionManifest(manifest, sourceId = DEFAULT_NOSTR_EVENT_COLLECTION_SOURCE_ID) {
|
|
64
64
|
const indexes = {
|
|
65
65
|
[MANIFEST_BY_AUTHOR_TIME]: { kind: 'key', root: serializeCid(manifest.byAuthorTime) },
|
|
66
66
|
[MANIFEST_BY_AUTHOR_KIND_TIME]: { kind: 'key', root: serializeCid(manifest.byAuthorKindTime) },
|
|
@@ -79,7 +79,6 @@ export function nostrEventManifestToCollectionManifest(manifest, sourceId = DEFA
|
|
|
79
79
|
sourceId,
|
|
80
80
|
schemaVersion: 1,
|
|
81
81
|
updatedAt: 0,
|
|
82
|
-
itemCount,
|
|
83
82
|
byIdRoot: serializeCid(manifest.byId),
|
|
84
83
|
indexes,
|
|
85
84
|
publishedSchema: NOSTR_EVENT_PUBLISHED_SCHEMA,
|
|
@@ -108,11 +107,7 @@ export function collectionManifestToNostrEventManifest(manifest) {
|
|
|
108
107
|
}
|
|
109
108
|
export async function createNostrEventCollectionSource(store, manifest, sourceId = DEFAULT_NOSTR_EVENT_COLLECTION_SOURCE_ID) {
|
|
110
109
|
const collectionManifest = nostrEventManifestToCollectionManifest(manifest, sourceId);
|
|
111
|
-
|
|
112
|
-
return new CollectionSource(store, {
|
|
113
|
-
...collectionManifest,
|
|
114
|
-
itemCount: await source.count(),
|
|
115
|
-
});
|
|
110
|
+
return new CollectionSource(store, collectionManifest);
|
|
116
111
|
}
|
|
117
112
|
export function createNostrEventCollectionWriter(store, manifest, sourceId = DEFAULT_NOSTR_EVENT_COLLECTION_SOURCE_ID) {
|
|
118
113
|
return new CollectionWriter(store, createNostrEventCollectionDefinition(sourceId), nostrEventManifestToCollectionManifest(manifest, sourceId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventCollection.js","sourceRoot":"","sources":["../src/eventCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gBAAgB,EAChB,gBAAgB,EAChB,sCAAsC,EACtC,cAAc,EACd,YAAY,GAKb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,8BAA8B,EAC9B,iBAAiB,EACjB,WAAW,EACX,4BAA4B,EAC5B,uBAAuB,EAEvB,qBAAqB,EACrB,4BAA4B,EAC5B,eAAe,EACf,gBAAgB,EAChB,kCAAkC,EAClC,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,cAAc,EACd,OAAO,EACP,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,CAAC,MAAM,wCAAwC,GAAG,cAAc,CAAC;AACvE,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,6BAA6B,GAAG,8BAA8B,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,CAAC;AAE7C,MAAM,4BAA4B,GAA8B;IAC9D,UAAU,EAAE,uBAAuB;IACnC,gBAAgB,EAAE,6BAA6B;CAChD,CAAC;AAEF,MAAM,UAAU,oCAAoC,CAClD,WAAmB,wCAAwC;IAE3D,OAAO;QACL,QAAQ;QACR,MAAM,EAAE;YACN,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;SACF;QACD,eAAe,EAAE,4BAA4B;QAC7C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE;QAC1B,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACxC;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;aAC5C;YACD;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACtC;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;aAC5C;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAClC;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;aAChC;YACD;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACf,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC3B,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5C,CAAC,CAAC,EAAE,CACP;aACF;YACD;gBACE,IAAI,EAAE,kCAAkC;gBACxC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CACf,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC;oBACxC,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC/E,CAAC,CAAC,EAAE,CACP;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,QAA4B,EAC5B,WAAmB,wCAAwC
|
|
1
|
+
{"version":3,"file":"eventCollection.js","sourceRoot":"","sources":["../src/eventCollection.ts"],"names":[],"mappings":"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"}
|
package/dist/eventKeys.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare function isReplaceableKind(kind: number): boolean;
|
|
|
14
14
|
export declare function isParameterizedReplaceableKind(kind: number): boolean;
|
|
15
15
|
export declare function getDTag(event: Pick<StoredNostrEvent, 'tags'>): string | null;
|
|
16
16
|
export declare function compareEvents(a: StoredNostrEvent, b: StoredNostrEvent): number;
|
|
17
|
+
export declare function compareReplaceableEvents(a: StoredNostrEvent, b: StoredNostrEvent): number;
|
|
17
18
|
export declare function authorTimeKey(event: StoredNostrEvent): string;
|
|
18
19
|
export declare function authorKindTimeKey(event: StoredNostrEvent): string;
|
|
19
20
|
export declare function kindTimeKey(event: StoredNostrEvent): string;
|
package/dist/eventKeys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventKeys.d.ts","sourceRoot":"","sources":["../src/eventKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AACxD,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAE9E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAQ5E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAM9E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAE7D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAczD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAWzD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAwB5F"}
|
|
1
|
+
{"version":3,"file":"eventKeys.d.ts","sourceRoot":"","sources":["../src/eventKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,uBAAuB,mBAAmB,CAAC;AACxD,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAClE,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,oBAAoB,gBAAgB,CAAC;AAClD,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAE9E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAQ5E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAM9E;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAMzF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAE7D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAEvD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAczD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAWzD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAwB5F"}
|
package/dist/eventKeys.js
CHANGED
|
@@ -34,6 +34,12 @@ export function compareEvents(a, b) {
|
|
|
34
34
|
}
|
|
35
35
|
return a.id.localeCompare(b.id);
|
|
36
36
|
}
|
|
37
|
+
export function compareReplaceableEvents(a, b) {
|
|
38
|
+
if (a.created_at !== b.created_at) {
|
|
39
|
+
return a.created_at - b.created_at;
|
|
40
|
+
}
|
|
41
|
+
return b.id.localeCompare(a.id);
|
|
42
|
+
}
|
|
37
43
|
export function authorTimeKey(event) {
|
|
38
44
|
return `${event.pubkey}:${reverseTimestamp(event.created_at)}:${event.id}`;
|
|
39
45
|
}
|
|
@@ -108,7 +114,7 @@ export function retainLatestReplaceableEvents(events) {
|
|
|
108
114
|
continue;
|
|
109
115
|
}
|
|
110
116
|
const existing = retained.get(slot);
|
|
111
|
-
if (!existing ||
|
|
117
|
+
if (!existing || compareReplaceableEvents(event, existing) > 0) {
|
|
112
118
|
retained.set(slot, event);
|
|
113
119
|
}
|
|
114
120
|
}
|
package/dist/eventKeys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventKeys.js","sourceRoot":"","sources":["../src/eventKeys.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AACxD,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAClE,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC;AACpD,MAAM,CAAC,MAAM,4BAA4B,GAAG,qBAAqB,CAAC;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAClD,MAAM,CAAC,MAAM,kCAAkC,GAAG,2BAA2B,CAAC;AAE9E,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAY;IACzD,OAAO,IAAI,IAAI,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAqC;IAC3D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAmB,EAAE,CAAmB;IACpE,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAuB;IACnD,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAuB;IACvD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAuB;IAC7C,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC;IAC9C,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,6DAA6D,GAAG,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,QAAgB;IACjE,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAuB;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAG,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,cAAc,IAAI,eAAe,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,QAAgB;IACzD,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,GAAG,cAAc,IAAI,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAY;IACzD,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAAc,EAAE,IAAY,EAAE,IAAY;IACpF,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAA0B;IACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,MAAM,WAAW,GAAuB,EAAE,CAAC;IAE3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,GAAG,eAAe,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,CAAC;aAAM,IAAI,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,iBAAiB,2BAA2B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACxG,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"file":"eventKeys.js","sourceRoot":"","sources":["../src/eventKeys.ts"],"names":[],"mappings":"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"}
|
package/dist/events.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export interface ListEventsOptions {
|
|
|
25
25
|
limit?: number;
|
|
26
26
|
since?: number;
|
|
27
27
|
until?: number;
|
|
28
|
+
/** Throw when a selected event blob is missing or unreadable instead of skipping it. */
|
|
29
|
+
strict?: boolean;
|
|
28
30
|
}
|
|
29
31
|
export type NostrEventQueryValue<T> = T | readonly T[];
|
|
30
32
|
export interface NostrEventQuery {
|
|
@@ -44,6 +46,8 @@ export declare class NostrEventStore {
|
|
|
44
46
|
add(root: CID | null, event: StoredNostrEvent): Promise<CID>;
|
|
45
47
|
build(root: CID | null, events: StoredNostrEvent[]): Promise<CID | null>;
|
|
46
48
|
getById(root: CID | null, eventId: string): Promise<StoredNostrEvent | null>;
|
|
49
|
+
/** Remove an event from every index without deleting blocks used by older roots. */
|
|
50
|
+
delete(root: CID | null, eventId: string): Promise<CID | null>;
|
|
47
51
|
listByAuthor(root: CID | null, pubkey: string, options?: ListEventsOptions): Promise<StoredNostrEvent[]>;
|
|
48
52
|
listByAuthorAndKind(root: CID | null, pubkey: string, kind: number, options?: ListEventsOptions): Promise<StoredNostrEvent[]>;
|
|
49
53
|
streamByAuthor(root: CID | null, pubkey: string, options?: ListEventsOptions): AsyncGenerator<StoredNostrEvent>;
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAEhB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAsB,KAAK,GAAG,EAAE,KAAK,KAAK,EAAiB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|