applesauce-core 0.0.0-next-20241219164005 → 0.0.0-next-20250103191026
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.
|
@@ -29,7 +29,7 @@ export declare class EventStore {
|
|
|
29
29
|
/** Creates an observable that updates a single event */
|
|
30
30
|
event(id: string): Observable<NostrEvent | undefined>;
|
|
31
31
|
/** Creates an observable that subscribes to multiple events */
|
|
32
|
-
events(ids: string[]): Observable<
|
|
32
|
+
events(ids: string[]): Observable<Record<string, NostrEvent>>;
|
|
33
33
|
/** Creates an observable with the latest version of a replaceable event */
|
|
34
34
|
replaceable(kind: number, pubkey: string, d?: string): Observable<NostrEvent | undefined>;
|
|
35
35
|
/** Creates an observable with the latest versions of replaceable events */
|
|
@@ -37,7 +37,7 @@ export declare class EventStore {
|
|
|
37
37
|
kind: number;
|
|
38
38
|
pubkey: string;
|
|
39
39
|
identifier?: string;
|
|
40
|
-
}[]): Observable<
|
|
40
|
+
}[]): Observable<Record<string, NostrEvent>>;
|
|
41
41
|
/**
|
|
42
42
|
* Creates an observable that streams all events that match the filter
|
|
43
43
|
* @param filters
|
|
@@ -149,11 +149,11 @@ export class EventStore {
|
|
|
149
149
|
/** Creates an observable that subscribes to multiple events */
|
|
150
150
|
events(ids) {
|
|
151
151
|
return new Observable((observer) => {
|
|
152
|
-
|
|
152
|
+
let events = {};
|
|
153
153
|
for (const id of ids) {
|
|
154
154
|
const event = this.getEvent(id);
|
|
155
155
|
if (event) {
|
|
156
|
-
events
|
|
156
|
+
events = { ...events, [id]: event };
|
|
157
157
|
this.database.claimEvent(event, observer);
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -161,8 +161,8 @@ export class EventStore {
|
|
|
161
161
|
// subscribe to future events
|
|
162
162
|
const inserted = this.database.inserted.subscribe((event) => {
|
|
163
163
|
const id = event.id;
|
|
164
|
-
if (ids.includes(id) && !events
|
|
165
|
-
events
|
|
164
|
+
if (ids.includes(id) && !events[id]) {
|
|
165
|
+
events = { ...events, [id]: event };
|
|
166
166
|
observer.next(events);
|
|
167
167
|
// claim new event
|
|
168
168
|
this.database.claimEvent(event, observer);
|
|
@@ -177,10 +177,10 @@ export class EventStore {
|
|
|
177
177
|
const deleted = this.database.deleted.subscribe((event) => {
|
|
178
178
|
const id = event.id;
|
|
179
179
|
if (ids.includes(id)) {
|
|
180
|
-
const current = events
|
|
180
|
+
const current = events[id];
|
|
181
181
|
if (current) {
|
|
182
182
|
this.database.removeClaim(current, observer);
|
|
183
|
-
events
|
|
183
|
+
delete events[id];
|
|
184
184
|
observer.next(events);
|
|
185
185
|
}
|
|
186
186
|
}
|
|
@@ -189,7 +189,7 @@ export class EventStore {
|
|
|
189
189
|
inserted.unsubscribe();
|
|
190
190
|
deleted.unsubscribe();
|
|
191
191
|
updated.unsubscribe();
|
|
192
|
-
for (const [_uid, event] of events) {
|
|
192
|
+
for (const [_uid, event] of Object.entries(events)) {
|
|
193
193
|
this.database.removeClaim(event, observer);
|
|
194
194
|
}
|
|
195
195
|
};
|
|
@@ -243,10 +243,10 @@ export class EventStore {
|
|
|
243
243
|
replaceableSet(pointers) {
|
|
244
244
|
return new Observable((observer) => {
|
|
245
245
|
const coords = pointers.map((p) => getReplaceableUID(p.kind, p.pubkey, p.identifier));
|
|
246
|
-
|
|
246
|
+
let events = {};
|
|
247
247
|
const handleEvent = (event) => {
|
|
248
248
|
const uid = getEventUID(event);
|
|
249
|
-
const current = events
|
|
249
|
+
const current = events[uid];
|
|
250
250
|
if (current) {
|
|
251
251
|
if (event.created_at > current.created_at) {
|
|
252
252
|
this.database.removeClaim(current, observer);
|
|
@@ -254,7 +254,7 @@ export class EventStore {
|
|
|
254
254
|
else
|
|
255
255
|
return;
|
|
256
256
|
}
|
|
257
|
-
events
|
|
257
|
+
events = { ...events, [uid]: event };
|
|
258
258
|
this.database.claimEvent(event, observer);
|
|
259
259
|
};
|
|
260
260
|
// get latest version
|
|
@@ -280,8 +280,8 @@ export class EventStore {
|
|
|
280
280
|
// subscribe to deleted events
|
|
281
281
|
const deleted = this.database.deleted.subscribe((event) => {
|
|
282
282
|
const uid = getEventUID(event);
|
|
283
|
-
if (events
|
|
284
|
-
events
|
|
283
|
+
if (events[uid]) {
|
|
284
|
+
delete events[uid];
|
|
285
285
|
this.database.removeClaim(event, observer);
|
|
286
286
|
observer.next(events);
|
|
287
287
|
}
|
|
@@ -290,7 +290,7 @@ export class EventStore {
|
|
|
290
290
|
inserted.unsubscribe();
|
|
291
291
|
deleted.unsubscribe();
|
|
292
292
|
updated.unsubscribe();
|
|
293
|
-
for (const [_id, event] of events) {
|
|
293
|
+
for (const [_id, event] of Object.entries(events)) {
|
|
294
294
|
this.database.removeClaim(event, observer);
|
|
295
295
|
}
|
|
296
296
|
};
|
package/dist/queries/simple.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Query } from "../query-store/index.js";
|
|
|
3
3
|
/** Creates a Query that returns a single event or undefined */
|
|
4
4
|
export declare function SingleEventQuery(id: string): Query<NostrEvent | undefined>;
|
|
5
5
|
/** Creates a Query that returns a multiple events in a map */
|
|
6
|
-
export declare function MultipleEventsQuery(ids: string[]): Query<
|
|
6
|
+
export declare function MultipleEventsQuery(ids: string[]): Query<Record<string, NostrEvent>>;
|
|
7
7
|
/** Creates a Query returning the latest version of a replaceable event */
|
|
8
8
|
export declare function ReplaceableQuery(kind: number, pubkey: string, d?: string): Query<NostrEvent | undefined>;
|
|
9
9
|
/** Creates a Query that returns an array of sorted events matching the filters */
|
|
@@ -13,4 +13,4 @@ export declare function ReplaceableSetQuery(pointers: {
|
|
|
13
13
|
kind: number;
|
|
14
14
|
pubkey: string;
|
|
15
15
|
identifier?: string;
|
|
16
|
-
}[]): Query<
|
|
16
|
+
}[]): Query<Record<string, NostrEvent>>;
|
|
@@ -31,7 +31,7 @@ export declare class QueryStore {
|
|
|
31
31
|
/** Creates a SingleEventQuery */
|
|
32
32
|
event(id: string): Observable<import("nostr-tools").Event | undefined>;
|
|
33
33
|
/** Creates a MultipleEventsQuery */
|
|
34
|
-
events(ids: string[]): Observable<
|
|
34
|
+
events(ids: string[]): Observable<Record<string, import("nostr-tools").Event>>;
|
|
35
35
|
/** Creates a ReplaceableQuery */
|
|
36
36
|
replaceable(kind: number, pubkey: string, d?: string): Observable<import("nostr-tools").Event | undefined>;
|
|
37
37
|
/** Creates a ReplaceableSetQuery */
|
|
@@ -39,7 +39,7 @@ export declare class QueryStore {
|
|
|
39
39
|
kind: number;
|
|
40
40
|
pubkey: string;
|
|
41
41
|
identifier?: string;
|
|
42
|
-
}[]): Observable<
|
|
42
|
+
}[]): Observable<Record<string, import("nostr-tools").Event>>;
|
|
43
43
|
/** Creates a TimelineQuery */
|
|
44
44
|
timeline(filters: Filter | Filter[], keepOldVersions?: boolean): Observable<import("nostr-tools").Event[]>;
|
|
45
45
|
/** Creates a ProfileQuery */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "applesauce-core",
|
|
3
|
-
"version": "0.0.0-next-
|
|
3
|
+
"version": "0.0.0-next-20250103191026",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,38 +16,47 @@
|
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
18
18
|
"import": "./dist/index.js",
|
|
19
|
+
"require": "./dist/index.js",
|
|
19
20
|
"types": "./dist/index.d.ts"
|
|
20
21
|
},
|
|
21
22
|
"./helpers": {
|
|
22
23
|
"import": "./dist/helpers/index.js",
|
|
24
|
+
"require": "./dist/helpers/index.js",
|
|
23
25
|
"types": "./dist/helpers/index.d.ts"
|
|
24
26
|
},
|
|
25
27
|
"./helpers/*": {
|
|
26
28
|
"import": "./dist/helpers/*.js",
|
|
29
|
+
"require": "./dist/helpers/*.js",
|
|
27
30
|
"types": "./dist/helpers/*.d.ts"
|
|
28
31
|
},
|
|
29
32
|
"./queries": {
|
|
30
33
|
"import": "./dist/queries/index.js",
|
|
34
|
+
"require": "./dist/queries/index.js",
|
|
31
35
|
"types": "./dist/queries/index.d.ts"
|
|
32
36
|
},
|
|
33
37
|
"./queries/*": {
|
|
34
38
|
"import": "./dist/queries/*.js",
|
|
39
|
+
"require": "./dist/queries/*.js",
|
|
35
40
|
"types": "./dist/queries/*.d.ts"
|
|
36
41
|
},
|
|
37
42
|
"./observable": {
|
|
38
43
|
"import": "./dist/observable/index.js",
|
|
44
|
+
"require": "./dist/observable/index.js",
|
|
39
45
|
"types": "./dist/observable/index.d.ts"
|
|
40
46
|
},
|
|
41
47
|
"./promise": {
|
|
42
48
|
"import": "./dist/promise/index.js",
|
|
49
|
+
"require": "./dist/promise/index.js",
|
|
43
50
|
"types": "./dist/promise/index.d.ts"
|
|
44
51
|
},
|
|
45
52
|
"./query-store": {
|
|
46
53
|
"import": "./dist/query-store/index.js",
|
|
54
|
+
"require": "./dist/query-store/index.js",
|
|
47
55
|
"types": "./dist/query-store/index.d.ts"
|
|
48
56
|
},
|
|
49
57
|
"./event-store": {
|
|
50
58
|
"import": "./dist/event-store/index.js",
|
|
59
|
+
"require": "./dist/event-store/index.js",
|
|
51
60
|
"types": "./dist/event-store/index.d.ts"
|
|
52
61
|
}
|
|
53
62
|
},
|