@welshman/util 0.0.2 → 0.0.4
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/build/Address.cjs +3 -3
- package/build/Address.cjs.map +1 -1
- package/build/Address.mjs +4 -4
- package/build/Address.mjs.map +1 -1
- package/build/Filters.cjs +36 -4
- package/build/Filters.cjs.map +1 -1
- package/build/Filters.d.ts +3 -2
- package/build/Filters.mjs +33 -2
- package/build/Filters.mjs.map +1 -1
- package/build/Kinds.cjs +78 -75
- package/build/Kinds.cjs.map +1 -1
- package/build/Kinds.d.ts +76 -73
- package/build/Kinds.mjs +77 -73
- package/build/Kinds.mjs.map +1 -1
- package/build/Relay.cjs +14 -117
- package/build/Relay.cjs.map +1 -1
- package/build/Relay.d.ts +6 -16
- package/build/Relay.mjs +15 -118
- package/build/Relay.mjs.map +1 -1
- package/build/Relays.cjs +3 -1
- package/build/Relays.cjs.map +1 -1
- package/build/Relays.d.ts +2 -0
- package/build/Relays.mjs +2 -0
- package/build/Relays.mjs.map +1 -1
- package/build/Repository.cjs +198 -0
- package/build/Repository.cjs.map +1 -0
- package/build/Repository.d.ts +34 -0
- package/build/Repository.mjs +194 -0
- package/build/Repository.mjs.map +1 -0
- package/build/Router.cjs +16 -15
- package/build/Router.cjs.map +1 -1
- package/build/Router.d.ts +56 -10
- package/build/Router.mjs +16 -15
- package/build/Router.mjs.map +1 -1
- package/build/Tags.cjs +14 -14
- package/build/Tags.cjs.map +1 -1
- package/build/Tags.d.ts +1 -6
- package/build/Tags.mjs +16 -16
- package/build/Tags.mjs.map +1 -1
- package/build/index.cjs +1 -0
- package/build/index.cjs.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.mjs +1 -0
- package/package.json +2 -3
package/build/Relays.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relays.mjs","sourceRoot":"","sources":["../Relays.ts"],"names":[],"mappings":"OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,eAAe;AAEzD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;;IACjD,OAAA,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,+CAA+C;QAC/C,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC5B,2DAA2D;QAC3D,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,0CAAE,MAAM,MAAK,CAAC;QACjC,6DAA6D;QAC7D,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAClB,uCAAuC;QACvC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,+BAA+B;QAC/B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACzC,mCAAmC;QACnC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9B,CAAA;CAAA,CAAA;AAMH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAC,aAAa,GAAG,KAAK,KAA2B,EAAE,EAAE,EAAE;;IACpG,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,0CAAG,CAAC,CAAC,KAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;IAElF,+BAA+B;IAC/B,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,CAAC,CAAA;IAEtE,qDAAqD;IACrD,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAEtC,+DAA+D;IAC/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtB,GAAG,IAAI,GAAG,CAAA;KACX;IAED,OAAO,MAAM,GAAG,GAAG,CAAA;AACrB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Relays.mjs","sourceRoot":"","sources":["../Relays.ts"],"names":[],"mappings":"OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,eAAe;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAA;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;;IACjD,OAAA,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,+CAA+C;QAC/C,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC5B,2DAA2D;QAC3D,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,0CAAE,MAAM,MAAK,CAAC;QACjC,6DAA6D;QAC7D,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAClB,uCAAuC;QACvC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,+BAA+B;QAC/B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;QACzC,mCAAmC;QACnC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9B,CAAA;CAAA,CAAA;AAMH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAC,aAAa,GAAG,KAAK,KAA2B,EAAE,EAAE,EAAE;;IACpG,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,0CAAG,CAAC,CAAC,KAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;IAElF,+BAA+B;IAC/B,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAC,CAAC,CAAA;IAEtE,qDAAqD;IACrD,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAEtC,+DAA+D;IAC/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtB,GAAG,IAAI,GAAG,CAAA;KACX;IAED,OAAO,MAAM,GAAG,GAAG,CAAA;AACrB,CAAC,CAAA"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Repository = exports.DAY = void 0;
|
|
4
|
+
const throttle_debounce_1 = require("throttle-debounce");
|
|
5
|
+
const lib_1 = require("@welshman/lib");
|
|
6
|
+
const Kinds_1 = require("./Kinds.cjs");
|
|
7
|
+
const Filters_1 = require("./Filters.cjs");
|
|
8
|
+
const Address_1 = require("./Address.cjs");
|
|
9
|
+
const Events_1 = require("./Events.cjs");
|
|
10
|
+
exports.DAY = 86400;
|
|
11
|
+
const getDay = (ts) => Math.floor(ts / exports.DAY);
|
|
12
|
+
class Repository extends lib_1.Emitter {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super();
|
|
15
|
+
this.options = options;
|
|
16
|
+
this.eventsById = new Map();
|
|
17
|
+
this.eventsByAddress = new Map();
|
|
18
|
+
this.eventsByTag = new Map();
|
|
19
|
+
this.eventsByDay = new Map();
|
|
20
|
+
this.eventsByAuthor = new Map();
|
|
21
|
+
this.deletes = new Map();
|
|
22
|
+
this.subs = [];
|
|
23
|
+
if (options.throttle) {
|
|
24
|
+
this.notify = (0, throttle_debounce_1.throttle)(options.throttle, this.notify.bind(this));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// Methods for implementing store interface
|
|
28
|
+
get() {
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
subscribe(f, invalidate) {
|
|
32
|
+
this.subs.push(f);
|
|
33
|
+
return () => {
|
|
34
|
+
this.subs = this.subs.filter(sub => sub !== f);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
derived(f) {
|
|
38
|
+
return new lib_1.Derived(this, f);
|
|
39
|
+
}
|
|
40
|
+
throttle(t) {
|
|
41
|
+
return new lib_1.Derived(this, lib_1.identity, t);
|
|
42
|
+
}
|
|
43
|
+
filter(getFilters) {
|
|
44
|
+
const store = (0, lib_1.writable)([]);
|
|
45
|
+
const onNotify = (event) => {
|
|
46
|
+
const filters = getFilters();
|
|
47
|
+
if (!event || (0, Filters_1.matchFilters)(filters, event)) {
|
|
48
|
+
store.set(Array.from(this.query(filters)));
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const subscribe = store.subscribe.bind(store);
|
|
52
|
+
store.subscribe = (f) => {
|
|
53
|
+
if (store.subs.length === 0) {
|
|
54
|
+
this.on('notify', onNotify);
|
|
55
|
+
onNotify();
|
|
56
|
+
}
|
|
57
|
+
const unsubscribe = subscribe(f);
|
|
58
|
+
return () => {
|
|
59
|
+
unsubscribe();
|
|
60
|
+
if (store.subs.length === 0) {
|
|
61
|
+
this.off('notify', onNotify);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
return store;
|
|
66
|
+
}
|
|
67
|
+
notify(event) {
|
|
68
|
+
for (const sub of this.subs) {
|
|
69
|
+
sub(this);
|
|
70
|
+
}
|
|
71
|
+
this.emit('notify', event);
|
|
72
|
+
}
|
|
73
|
+
// Load/dump
|
|
74
|
+
dump() {
|
|
75
|
+
return Array.from(this.eventsById.values());
|
|
76
|
+
}
|
|
77
|
+
async load(events, chunkSize = 1000) {
|
|
78
|
+
for (const eventsChunk of (0, lib_1.chunk)(chunkSize, events)) {
|
|
79
|
+
for (const event of eventsChunk) {
|
|
80
|
+
this._addEvent(event);
|
|
81
|
+
}
|
|
82
|
+
if (eventsChunk.length === chunkSize) {
|
|
83
|
+
await (0, lib_1.sleep)(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
this.notify();
|
|
87
|
+
}
|
|
88
|
+
// API
|
|
89
|
+
getEvent(idOrAddress) {
|
|
90
|
+
return idOrAddress.includes(':')
|
|
91
|
+
? this.eventsByAddress.get(idOrAddress)
|
|
92
|
+
: this.eventsById.get(idOrAddress);
|
|
93
|
+
}
|
|
94
|
+
watchEvent(idOrAddress) {
|
|
95
|
+
return this.filter((0, lib_1.always)((0, Filters_1.getIdFilters)([idOrAddress]))).derived(lib_1.first);
|
|
96
|
+
}
|
|
97
|
+
*query(filters) {
|
|
98
|
+
for (let filter of filters) {
|
|
99
|
+
let events = this.eventsById.values();
|
|
100
|
+
if (filter.ids) {
|
|
101
|
+
events = filter.ids.map(id => this.eventsById.get(id)).filter(lib_1.identity);
|
|
102
|
+
filter = (0, lib_1.omit)(['ids'], filter);
|
|
103
|
+
}
|
|
104
|
+
else if (filter.authors) {
|
|
105
|
+
events = (0, lib_1.uniq)(filter.authors.flatMap(pubkey => this.eventsByAuthor.get(pubkey) || []));
|
|
106
|
+
filter = (0, lib_1.omit)(['authors'], filter);
|
|
107
|
+
}
|
|
108
|
+
else if (filter.since || filter.until) {
|
|
109
|
+
const sinceDay = getDay(filter.since || 0);
|
|
110
|
+
const untilDay = getDay(filter.since || (0, lib_1.now)());
|
|
111
|
+
filter = (0, lib_1.omit)(['since', 'until'], filter);
|
|
112
|
+
events = (0, lib_1.uniq)(Array.from((0, lib_1.range)(sinceDay, untilDay))
|
|
113
|
+
.flatMap((day) => this.eventsByDay.get(day) || []));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
for (const [k, values] of Object.entries(filter)) {
|
|
117
|
+
if (!k.startsWith('#') || k.length !== 2) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
filter = (0, lib_1.omit)([k], filter);
|
|
121
|
+
events = (0, lib_1.uniq)(values.flatMap(v => this.eventsByTag.get(`${k[1]}:${v}`) || []));
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
for (const event of events) {
|
|
126
|
+
if (!this.isDeleted(event) && (0, Filters_1.matchFilter)(filter, event)) {
|
|
127
|
+
yield event;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
publish(event) {
|
|
133
|
+
const duplicateById = this.eventsById.get(event.id);
|
|
134
|
+
if (duplicateById) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
const hasAddress = (0, Events_1.isReplaceable)(event);
|
|
138
|
+
const address = (0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event));
|
|
139
|
+
const duplicateByAddress = hasAddress ? this.eventsByAddress.get(address) : undefined;
|
|
140
|
+
if (duplicateByAddress && duplicateByAddress.created_at >= event.created_at) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
this._addEvent(event, duplicateByAddress);
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
isDeleted(event) {
|
|
147
|
+
const idDeletedAt = this.deletes.get(event.id) || 0;
|
|
148
|
+
if (idDeletedAt > event.created_at) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
if ((0, Events_1.isReplaceable)(event)) {
|
|
152
|
+
const address = (0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event));
|
|
153
|
+
const addressDeletedAt = this.deletes.get(address) || 0;
|
|
154
|
+
if (addressDeletedAt > event.created_at) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
// Implementation
|
|
161
|
+
_addEvent(event, duplicate) {
|
|
162
|
+
this.eventsById.set(event.id, event);
|
|
163
|
+
if ((0, Events_1.isReplaceable)(event)) {
|
|
164
|
+
this.eventsByAddress.set((0, Address_1.encodeAddress)((0, Address_1.addressFromEvent)(event)), event);
|
|
165
|
+
}
|
|
166
|
+
this._updateIndex(this.eventsByDay, getDay(event.created_at), event, duplicate);
|
|
167
|
+
this._updateIndex(this.eventsByAuthor, event.pubkey, event, duplicate);
|
|
168
|
+
for (const tag of event.tags) {
|
|
169
|
+
if (tag[0].length === 1) {
|
|
170
|
+
this._updateIndex(this.eventsByTag, tag.slice(0, 2).join(':'), event, duplicate);
|
|
171
|
+
if (event.kind === Kinds_1.Kind.Delete) {
|
|
172
|
+
const id = tag[1];
|
|
173
|
+
const ts = Math.max(event.created_at, this.deletes.get(tag[1]) || 0);
|
|
174
|
+
this.deletes.set(id, ts);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (!this.isDeleted(event)) {
|
|
179
|
+
// Deletes are tricky, re-evaluate all subscriptions if that's what we're dealing with
|
|
180
|
+
if (event.kind === Kinds_1.Kind.Delete) {
|
|
181
|
+
this.notify();
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this.notify(event);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
_updateIndex(m, k, e, duplicate) {
|
|
189
|
+
let a = m.get(k) || [];
|
|
190
|
+
if (duplicate) {
|
|
191
|
+
a = a.filter((x) => x !== duplicate);
|
|
192
|
+
}
|
|
193
|
+
a.push(e);
|
|
194
|
+
m.set(k, a);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
exports.Repository = Repository;
|
|
198
|
+
//# sourceMappingURL=Repository.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Repository.cjs","sourceRoot":"","sources":["../Repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { IReadable, Subscriber, Invalidator } from '@welshman/lib';
|
|
2
|
+
import { Derived, Emitter } from '@welshman/lib';
|
|
3
|
+
import type { Filter } from './Filters';
|
|
4
|
+
import type { Rumor } from './Events';
|
|
5
|
+
export declare const DAY = 86400;
|
|
6
|
+
export type RepositoryOptions = {
|
|
7
|
+
throttle?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare class Repository<E extends Rumor> extends Emitter implements IReadable<Repository<E>> {
|
|
10
|
+
private options;
|
|
11
|
+
eventsById: Map<string, E>;
|
|
12
|
+
eventsByAddress: Map<string, E>;
|
|
13
|
+
eventsByTag: Map<string, E[]>;
|
|
14
|
+
eventsByDay: Map<number, E[]>;
|
|
15
|
+
eventsByAuthor: Map<string, E[]>;
|
|
16
|
+
deletes: Map<string, number>;
|
|
17
|
+
subs: Subscriber<typeof this>[];
|
|
18
|
+
constructor(options: RepositoryOptions);
|
|
19
|
+
get(): this;
|
|
20
|
+
subscribe(f: Subscriber<Repository<E>>, invalidate?: Invalidator<Repository<E>>): () => void;
|
|
21
|
+
derived<U>(f: (v: Repository<E>) => U): Derived<U>;
|
|
22
|
+
throttle(t: number): Derived<Repository<E>>;
|
|
23
|
+
filter(getFilters: () => Filter[]): import("@welshman/lib").Writable<E[]>;
|
|
24
|
+
notify(event?: E): void;
|
|
25
|
+
dump(): E[];
|
|
26
|
+
load(events: E[], chunkSize?: number): Promise<void>;
|
|
27
|
+
getEvent(idOrAddress: string): E | undefined;
|
|
28
|
+
watchEvent(idOrAddress: string): Derived<E>;
|
|
29
|
+
query(filters: Filter[]): Generator<E, void, unknown>;
|
|
30
|
+
publish(event: E): boolean;
|
|
31
|
+
isDeleted(event: E): boolean;
|
|
32
|
+
_addEvent(event: E, duplicate?: E): void;
|
|
33
|
+
_updateIndex<K>(m: Map<K, E[]>, k: K, e: E, duplicate?: E): void;
|
|
34
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { throttle } from 'throttle-debounce';
|
|
2
|
+
import { Derived, Emitter, writable, first, always, chunk, sleep, uniq, omit, now, range, identity } from '@welshman/lib';
|
|
3
|
+
import { Kind } from "./Kinds.mjs";
|
|
4
|
+
import { matchFilter, getIdFilters, matchFilters } from "./Filters.mjs";
|
|
5
|
+
import { encodeAddress, addressFromEvent } from "./Address.mjs";
|
|
6
|
+
import { isReplaceable } from "./Events.mjs";
|
|
7
|
+
export const DAY = 86400;
|
|
8
|
+
const getDay = (ts) => Math.floor(ts / DAY);
|
|
9
|
+
export class Repository extends Emitter {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super();
|
|
12
|
+
this.options = options;
|
|
13
|
+
this.eventsById = new Map();
|
|
14
|
+
this.eventsByAddress = new Map();
|
|
15
|
+
this.eventsByTag = new Map();
|
|
16
|
+
this.eventsByDay = new Map();
|
|
17
|
+
this.eventsByAuthor = new Map();
|
|
18
|
+
this.deletes = new Map();
|
|
19
|
+
this.subs = [];
|
|
20
|
+
if (options.throttle) {
|
|
21
|
+
this.notify = throttle(options.throttle, this.notify.bind(this));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Methods for implementing store interface
|
|
25
|
+
get() {
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
subscribe(f, invalidate) {
|
|
29
|
+
this.subs.push(f);
|
|
30
|
+
return () => {
|
|
31
|
+
this.subs = this.subs.filter(sub => sub !== f);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
derived(f) {
|
|
35
|
+
return new Derived(this, f);
|
|
36
|
+
}
|
|
37
|
+
throttle(t) {
|
|
38
|
+
return new Derived(this, identity, t);
|
|
39
|
+
}
|
|
40
|
+
filter(getFilters) {
|
|
41
|
+
const store = writable([]);
|
|
42
|
+
const onNotify = (event) => {
|
|
43
|
+
const filters = getFilters();
|
|
44
|
+
if (!event || matchFilters(filters, event)) {
|
|
45
|
+
store.set(Array.from(this.query(filters)));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const subscribe = store.subscribe.bind(store);
|
|
49
|
+
store.subscribe = (f) => {
|
|
50
|
+
if (store.subs.length === 0) {
|
|
51
|
+
this.on('notify', onNotify);
|
|
52
|
+
onNotify();
|
|
53
|
+
}
|
|
54
|
+
const unsubscribe = subscribe(f);
|
|
55
|
+
return () => {
|
|
56
|
+
unsubscribe();
|
|
57
|
+
if (store.subs.length === 0) {
|
|
58
|
+
this.off('notify', onNotify);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
return store;
|
|
63
|
+
}
|
|
64
|
+
notify(event) {
|
|
65
|
+
for (const sub of this.subs) {
|
|
66
|
+
sub(this);
|
|
67
|
+
}
|
|
68
|
+
this.emit('notify', event);
|
|
69
|
+
}
|
|
70
|
+
// Load/dump
|
|
71
|
+
dump() {
|
|
72
|
+
return Array.from(this.eventsById.values());
|
|
73
|
+
}
|
|
74
|
+
async load(events, chunkSize = 1000) {
|
|
75
|
+
for (const eventsChunk of chunk(chunkSize, events)) {
|
|
76
|
+
for (const event of eventsChunk) {
|
|
77
|
+
this._addEvent(event);
|
|
78
|
+
}
|
|
79
|
+
if (eventsChunk.length === chunkSize) {
|
|
80
|
+
await sleep(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
this.notify();
|
|
84
|
+
}
|
|
85
|
+
// API
|
|
86
|
+
getEvent(idOrAddress) {
|
|
87
|
+
return idOrAddress.includes(':')
|
|
88
|
+
? this.eventsByAddress.get(idOrAddress)
|
|
89
|
+
: this.eventsById.get(idOrAddress);
|
|
90
|
+
}
|
|
91
|
+
watchEvent(idOrAddress) {
|
|
92
|
+
return this.filter(always(getIdFilters([idOrAddress]))).derived(first);
|
|
93
|
+
}
|
|
94
|
+
*query(filters) {
|
|
95
|
+
for (let filter of filters) {
|
|
96
|
+
let events = this.eventsById.values();
|
|
97
|
+
if (filter.ids) {
|
|
98
|
+
events = filter.ids.map(id => this.eventsById.get(id)).filter(identity);
|
|
99
|
+
filter = omit(['ids'], filter);
|
|
100
|
+
}
|
|
101
|
+
else if (filter.authors) {
|
|
102
|
+
events = uniq(filter.authors.flatMap(pubkey => this.eventsByAuthor.get(pubkey) || []));
|
|
103
|
+
filter = omit(['authors'], filter);
|
|
104
|
+
}
|
|
105
|
+
else if (filter.since || filter.until) {
|
|
106
|
+
const sinceDay = getDay(filter.since || 0);
|
|
107
|
+
const untilDay = getDay(filter.since || now());
|
|
108
|
+
filter = omit(['since', 'until'], filter);
|
|
109
|
+
events = uniq(Array.from(range(sinceDay, untilDay))
|
|
110
|
+
.flatMap((day) => this.eventsByDay.get(day) || []));
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
for (const [k, values] of Object.entries(filter)) {
|
|
114
|
+
if (!k.startsWith('#') || k.length !== 2) {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
filter = omit([k], filter);
|
|
118
|
+
events = uniq(values.flatMap(v => this.eventsByTag.get(`${k[1]}:${v}`) || []));
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
for (const event of events) {
|
|
123
|
+
if (!this.isDeleted(event) && matchFilter(filter, event)) {
|
|
124
|
+
yield event;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
publish(event) {
|
|
130
|
+
const duplicateById = this.eventsById.get(event.id);
|
|
131
|
+
if (duplicateById) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
const hasAddress = isReplaceable(event);
|
|
135
|
+
const address = encodeAddress(addressFromEvent(event));
|
|
136
|
+
const duplicateByAddress = hasAddress ? this.eventsByAddress.get(address) : undefined;
|
|
137
|
+
if (duplicateByAddress && duplicateByAddress.created_at >= event.created_at) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
this._addEvent(event, duplicateByAddress);
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
isDeleted(event) {
|
|
144
|
+
const idDeletedAt = this.deletes.get(event.id) || 0;
|
|
145
|
+
if (idDeletedAt > event.created_at) {
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
if (isReplaceable(event)) {
|
|
149
|
+
const address = encodeAddress(addressFromEvent(event));
|
|
150
|
+
const addressDeletedAt = this.deletes.get(address) || 0;
|
|
151
|
+
if (addressDeletedAt > event.created_at) {
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
// Implementation
|
|
158
|
+
_addEvent(event, duplicate) {
|
|
159
|
+
this.eventsById.set(event.id, event);
|
|
160
|
+
if (isReplaceable(event)) {
|
|
161
|
+
this.eventsByAddress.set(encodeAddress(addressFromEvent(event)), event);
|
|
162
|
+
}
|
|
163
|
+
this._updateIndex(this.eventsByDay, getDay(event.created_at), event, duplicate);
|
|
164
|
+
this._updateIndex(this.eventsByAuthor, event.pubkey, event, duplicate);
|
|
165
|
+
for (const tag of event.tags) {
|
|
166
|
+
if (tag[0].length === 1) {
|
|
167
|
+
this._updateIndex(this.eventsByTag, tag.slice(0, 2).join(':'), event, duplicate);
|
|
168
|
+
if (event.kind === Kind.Delete) {
|
|
169
|
+
const id = tag[1];
|
|
170
|
+
const ts = Math.max(event.created_at, this.deletes.get(tag[1]) || 0);
|
|
171
|
+
this.deletes.set(id, ts);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (!this.isDeleted(event)) {
|
|
176
|
+
// Deletes are tricky, re-evaluate all subscriptions if that's what we're dealing with
|
|
177
|
+
if (event.kind === Kind.Delete) {
|
|
178
|
+
this.notify();
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
this.notify(event);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
_updateIndex(m, k, e, duplicate) {
|
|
186
|
+
let a = m.get(k) || [];
|
|
187
|
+
if (duplicate) {
|
|
188
|
+
a = a.filter((x) => x !== duplicate);
|
|
189
|
+
}
|
|
190
|
+
a.push(e);
|
|
191
|
+
m.set(k, a);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=Repository.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Repository.mjs","sourceRoot":"","sources":["../Repository.ts"],"names":[],"mappings":"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"}
|
package/build/Router.cjs
CHANGED
|
@@ -15,13 +15,13 @@ class Router {
|
|
|
15
15
|
constructor(options) {
|
|
16
16
|
this.options = options;
|
|
17
17
|
// Utilities derived from options
|
|
18
|
-
this.getPubkeySelection = (pubkey, mode) => this.selection(pubkey, this.options.getPubkeyRelays(pubkey, mode));
|
|
18
|
+
this.getPubkeySelection = (pubkey, mode) => { var _a, _b; return this.selection(pubkey, ((_b = (_a = this.options).getPubkeyRelays) === null || _b === void 0 ? void 0 : _b.call(_a, pubkey, mode)) || []); };
|
|
19
19
|
this.getPubkeySelections = (pubkeys, mode) => pubkeys.map(pubkey => this.getPubkeySelection(pubkey, mode));
|
|
20
|
-
this.getUserSelections = (mode) => this.getPubkeySelections([this.options.getUserPubkey()].filter(lib_1.identity), mode);
|
|
20
|
+
this.getUserSelections = (mode) => { var _a, _b; return this.getPubkeySelections([(_b = (_a = this.options).getUserPubkey) === null || _b === void 0 ? void 0 : _b.call(_a)].filter(lib_1.identity), mode); };
|
|
21
21
|
this.getContextSelections = (tags) => {
|
|
22
22
|
return [
|
|
23
|
-
...tags.communities().mapTo(t => this.selection(t.value(), this.options.getCommunityRelays(t.value()))).valueOf(),
|
|
24
|
-
...tags.groups().mapTo(t => this.selection(t.value(), this.options.getGroupRelays(t.value()))).valueOf(),
|
|
23
|
+
...tags.communities().mapTo(t => { var _a, _b; return this.selection(t.value(), ((_b = (_a = this.options).getCommunityRelays) === null || _b === void 0 ? void 0 : _b.call(_a, t.value())) || []); }).valueOf(),
|
|
24
|
+
...tags.groups().mapTo(t => { var _a, _b; return this.selection(t.value(), ((_b = (_a = this.options).getGroupRelays) === null || _b === void 0 ? void 0 : _b.call(_a, t.value())) || []); }).valueOf(),
|
|
25
25
|
];
|
|
26
26
|
};
|
|
27
27
|
// Utilities for creating ValueRelays
|
|
@@ -31,10 +31,10 @@ class Router {
|
|
|
31
31
|
// Utilities for processing hints
|
|
32
32
|
this.relaySelectionsFromMap = (valuesByRelay) => (0, lib_1.sortBy)(({ values }) => -values.length, Array.from(valuesByRelay)
|
|
33
33
|
.map(([relay, values]) => ({ relay, values: (0, lib_1.uniq)(values) })));
|
|
34
|
-
this.scoreRelaySelection = ({ values, relay }) => values.length * this.options.getRelayQuality(relay);
|
|
34
|
+
this.scoreRelaySelection = ({ values, relay }) => { var _a, _b; return values.length * (((_b = (_a = this.options).getRelayQuality) === null || _b === void 0 ? void 0 : _b.call(_a, relay)) || 1); };
|
|
35
35
|
this.sortRelaySelections = (relaySelections) => {
|
|
36
36
|
const scores = new Map();
|
|
37
|
-
const getScore = (relayValues) => scores.get(relayValues.relay) || 0;
|
|
37
|
+
const getScore = (relayValues) => -(scores.get(relayValues.relay) || 0);
|
|
38
38
|
for (const relayValues of relaySelections) {
|
|
39
39
|
scores.set(relayValues.relay, this.scoreRelaySelection(relayValues));
|
|
40
40
|
}
|
|
@@ -66,16 +66,17 @@ class Router {
|
|
|
66
66
|
...this.getContextSelections(util_1.Tags.fromEvent(event).context()),
|
|
67
67
|
]));
|
|
68
68
|
this.EventAncestors = (event, type) => {
|
|
69
|
+
var _a, _b;
|
|
69
70
|
const tags = util_1.Tags.fromEvent(event);
|
|
70
71
|
const ancestors = tags.ancestors()[type];
|
|
71
72
|
const pubkeys = tags.whereKey("p").values().valueOf();
|
|
72
73
|
const communities = tags.communities().values().valueOf();
|
|
73
74
|
const groups = tags.groups().values().valueOf();
|
|
74
75
|
const relays = (0, lib_1.uniq)([
|
|
75
|
-
...this.options.getPubkeyRelays(event.pubkey, RelayMode.Read),
|
|
76
|
-
...pubkeys.flatMap((k) => this.options.getPubkeyRelays(k, RelayMode.Write)),
|
|
77
|
-
...communities.flatMap((a) => this.options.getCommunityRelays(a)),
|
|
78
|
-
...groups.flatMap((a) => this.options.getGroupRelays(a)),
|
|
76
|
+
...((_b = (_a = this.options).getPubkeyRelays) === null || _b === void 0 ? void 0 : _b.call(_a, event.pubkey, RelayMode.Read)) || [],
|
|
77
|
+
...pubkeys.flatMap((k) => { var _a, _b; return ((_b = (_a = this.options).getPubkeyRelays) === null || _b === void 0 ? void 0 : _b.call(_a, k, RelayMode.Write)) || []; }),
|
|
78
|
+
...communities.flatMap((a) => { var _a, _b; return ((_b = (_a = this.options).getCommunityRelays) === null || _b === void 0 ? void 0 : _b.call(_a, a)) || []; }),
|
|
79
|
+
...groups.flatMap((a) => { var _a, _b; return ((_b = (_a = this.options).getGroupRelays) === null || _b === void 0 ? void 0 : _b.call(_a, a)) || []; }),
|
|
79
80
|
...ancestors.relays().valueOf(),
|
|
80
81
|
]);
|
|
81
82
|
return this.product(ancestors.values().valueOf(), relays);
|
|
@@ -114,8 +115,8 @@ class Router {
|
|
|
114
115
|
throw new Error(`Unknown context ${address}`);
|
|
115
116
|
};
|
|
116
117
|
this.WithinMultipleContexts = (addresses) => this.merge(addresses.map(this.WithinContext));
|
|
117
|
-
this.Search = (term, relays = []) => this.product([term], (0, lib_1.uniq)(this.options.getSearchRelays
|
|
118
|
-
this.Indexers = (relays = []) => this.fromRelays((0, lib_1.uniq)(this.options.getIndexerRelays
|
|
118
|
+
this.Search = (term, relays = []) => { var _a, _b; return this.product([term], (0, lib_1.uniq)(relays.concat(((_b = (_a = this.options).getSearchRelays) === null || _b === void 0 ? void 0 : _b.call(_a)) || []))); };
|
|
119
|
+
this.Indexers = (relays = []) => { var _a, _b; return this.fromRelays((0, lib_1.uniq)(relays.concat(((_b = (_a = this.options).getIndexerRelays) === null || _b === void 0 ? void 0 : _b.call(_a)) || []))); };
|
|
119
120
|
// Fallback policies
|
|
120
121
|
this.addNoFallbacks = (count, redundancy) => count;
|
|
121
122
|
this.addMinimalFallbacks = (count, redundancy) => Math.max(count, 1);
|
|
@@ -145,9 +146,9 @@ class RouterScenario {
|
|
|
145
146
|
this.redundancy = (redundancy) => this.clone({ redundancy });
|
|
146
147
|
this.policy = (policy) => this.clone({ policy });
|
|
147
148
|
this.limit = (limit) => this.clone({ limit });
|
|
148
|
-
this.getRedundancy = () => this.options.redundancy || this.router.options.getRedundancy();
|
|
149
|
+
this.getRedundancy = () => { var _a, _b; return this.options.redundancy || ((_b = (_a = this.router.options).getRedundancy) === null || _b === void 0 ? void 0 : _b.call(_a)) || 3; };
|
|
149
150
|
this.getPolicy = () => this.options.policy || this.router.addMaximalFallbacks;
|
|
150
|
-
this.getLimit = () => this.options.limit || this.router.options.getLimit();
|
|
151
|
+
this.getLimit = () => { var _a, _b; return this.options.limit || ((_b = (_a = this.router.options).getLimit) === null || _b === void 0 ? void 0 : _b.call(_a)) || 10; };
|
|
151
152
|
this.getSelections = () => {
|
|
152
153
|
const allValues = new Set();
|
|
153
154
|
const valuesByRelay = new Map();
|
|
@@ -180,7 +181,7 @@ class RouterScenario {
|
|
|
180
181
|
result.set(relay, Array.from(values));
|
|
181
182
|
}
|
|
182
183
|
}
|
|
183
|
-
const fallbacks = (0, lib_1.shuffle)(this.router.options.
|
|
184
|
+
const fallbacks = (0, lib_1.shuffle)(this.router.options.getFallbackRelays());
|
|
184
185
|
const fallbackPolicy = this.getPolicy();
|
|
185
186
|
for (const { value } of this.selections) {
|
|
186
187
|
const timesSeen = seen.get(value) || 0;
|
package/build/Router.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.cjs","sourceRoot":"","sources":["../Router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Router.cjs","sourceRoot":"","sources":["../Router.ts"],"names":[],"mappings":"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"}
|