@welshman/app 0.11.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/src/plugins/wraps.d.ts +11 -2
- package/dist/app/src/plugins/wraps.d.ts.map +1 -1
- package/dist/app/src/plugins/wraps.js +38 -5
- package/dist/app/src/plugins/wraps.js.map +1 -1
- package/dist/feeds/src/controller.d.ts.map +1 -1
- package/dist/feeds/src/controller.js +83 -35
- package/dist/feeds/src/controller.js.map +1 -1
- package/dist/feeds/src/request.d.ts +14 -0
- package/dist/feeds/src/request.d.ts.map +1 -1
- package/dist/feeds/src/request.js +16 -2
- package/dist/feeds/src/request.js.map +1 -1
- package/dist/net/src/adapter.d.ts.map +1 -1
- package/dist/net/src/adapter.js +9 -0
- package/dist/net/src/adapter.js.map +1 -1
- package/dist/net/src/count.d.ts +30 -0
- package/dist/net/src/count.d.ts.map +1 -0
- package/dist/net/src/count.js +97 -0
- package/dist/net/src/count.js.map +1 -0
- package/dist/net/src/index.d.ts +1 -0
- package/dist/net/src/index.d.ts.map +1 -1
- package/dist/net/src/index.js +1 -0
- package/dist/net/src/index.js.map +1 -1
- package/dist/net/src/message.d.ts +12 -0
- package/dist/net/src/message.d.ts.map +1 -1
- package/dist/net/src/message.js +5 -0
- package/dist/net/src/message.js.map +1 -1
- package/dist/net/src/policy.d.ts +5 -2
- package/dist/net/src/policy.d.ts.map +1 -1
- package/dist/net/src/policy.js +76 -30
- package/dist/net/src/policy.js.map +1 -1
- package/dist/net/src/socket.d.ts +1 -0
- package/dist/net/src/socket.d.ts.map +1 -1
- package/dist/net/src/socket.js +5 -2
- package/dist/net/src/socket.js.map +1 -1
- package/dist/net/src/util.d.ts +7 -1
- package/dist/net/src/util.d.ts.map +1 -1
- package/dist/net/src/util.js +12 -3
- package/dist/net/src/util.js.map +1 -1
- package/dist/signer/src/signers/nip46.d.ts +2 -0
- package/dist/signer/src/signers/nip46.d.ts.map +1 -1
- package/dist/signer/src/signers/nip46.js +14 -3
- package/dist/signer/src/signers/nip46.js.map +1 -1
- package/package.json +15 -15
|
@@ -7,18 +7,27 @@ export type SendWrappedOptions = Omit<ThunkOptions, "event" | "relays" | "recipi
|
|
|
7
7
|
event: EventTemplate;
|
|
8
8
|
recipients: string[];
|
|
9
9
|
};
|
|
10
|
+
export declare const MAX_UNWRAP_ATTEMPTS = 3;
|
|
11
|
+
export declare const UNWRAP_TIMEOUT = 30000;
|
|
12
|
+
export declare const UNWRAP_RETRY_DELAY = 5000;
|
|
10
13
|
/**
|
|
11
|
-
* Per-app wrap (NIP-59) state: the unwrap queue plus
|
|
14
|
+
* Per-app wrap (NIP-59) state: the unwrap queue plus attempt/dedup
|
|
12
15
|
* tracking. Scoped to `app.user`, so an app only ever unwraps its own user's
|
|
13
16
|
* messages into its own repository — which is what keeps DM history from being
|
|
14
17
|
* merged across identities. The repository subscription that feeds it lives in
|
|
15
18
|
* `appPolicyWraps`.
|
|
19
|
+
*
|
|
20
|
+
* A wrap whose unwrap throws or times out goes back on the queue after a backoff until it has
|
|
21
|
+
* been tried `MAX_UNWRAP_ATTEMPTS` times, since a signer that is busy or disconnected fails
|
|
22
|
+
* the same way a wrap this user cannot read does.
|
|
16
23
|
*/
|
|
17
24
|
export declare class Wraps {
|
|
18
25
|
readonly app: IApp;
|
|
19
|
-
|
|
26
|
+
unwrapAttempts: Map<string, number>;
|
|
27
|
+
retryTimers: Set<NodeJS.Timeout>;
|
|
20
28
|
queue: TaskQueue<TrustedEvent>;
|
|
21
29
|
constructor(app: IApp);
|
|
30
|
+
retry: (wrap: TrustedEvent, delay: number) => void;
|
|
22
31
|
enqueue: (wrap: TrustedEvent) => void;
|
|
23
32
|
publish: ({ event, recipients, ...options }: SendWrappedOptions) => Promise<MergedThunk>;
|
|
24
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wraps.d.ts","sourceRoot":"","sources":["../../../../src/plugins/wraps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAY,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAC,YAAY,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAC,WAAW,EAAS,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAG5C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,YAAY,EACZ,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAClD,GAAG;IACF,KAAK,EAAE,aAAa,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"wraps.d.ts","sourceRoot":"","sources":["../../../../src/plugins/wraps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAY,MAAM,eAAe,CAAA;AAElD,OAAO,KAAK,EAAC,YAAY,EAAe,aAAa,EAAC,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAC,WAAW,EAAS,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAG5C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,YAAY,EACZ,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAClD,GAAG;IACF,KAAK,EAAE,aAAa,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAGpC,eAAO,MAAM,cAAc,QAAS,CAAA;AAGpC,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,qBAAa,KAAK;IAKJ,QAAQ,CAAC,GAAG,EAAE,IAAI;IAJ9B,cAAc,sBAA4B;IAC1C,WAAW,sBAA2C;IACtD,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;gBAET,GAAG,EAAE,IAAI;IA+C9B,KAAK,GAAI,MAAM,YAAY,EAAE,OAAO,MAAM,UAOzC;IAED,OAAO,GAAI,MAAM,YAAY,UAM5B;IAID,OAAO,GAAU,mCAAiC,kBAAkB,0BAenE;CACF"}
|
|
@@ -4,16 +4,26 @@ import { Nip59 } from "@welshman/signer";
|
|
|
4
4
|
import { MergedThunk, Thunks } from "./thunk.js";
|
|
5
5
|
import { User } from "../user.js";
|
|
6
6
|
import { MessagingRelayLists } from "./messagingRelayLists.js";
|
|
7
|
+
export const MAX_UNWRAP_ATTEMPTS = 3;
|
|
8
|
+
// A remote signer that never answers would otherwise hold up every wrap behind this one
|
|
9
|
+
export const UNWRAP_TIMEOUT = 30_000;
|
|
10
|
+
// Doubled for each attempt, so a busy or disconnected signer has time to come back
|
|
11
|
+
export const UNWRAP_RETRY_DELAY = 5_000;
|
|
7
12
|
/**
|
|
8
|
-
* Per-app wrap (NIP-59) state: the unwrap queue plus
|
|
13
|
+
* Per-app wrap (NIP-59) state: the unwrap queue plus attempt/dedup
|
|
9
14
|
* tracking. Scoped to `app.user`, so an app only ever unwraps its own user's
|
|
10
15
|
* messages into its own repository — which is what keeps DM history from being
|
|
11
16
|
* merged across identities. The repository subscription that feeds it lives in
|
|
12
17
|
* `appPolicyWraps`.
|
|
18
|
+
*
|
|
19
|
+
* A wrap whose unwrap throws or times out goes back on the queue after a backoff until it has
|
|
20
|
+
* been tried `MAX_UNWRAP_ATTEMPTS` times, since a signer that is busy or disconnected fails
|
|
21
|
+
* the same way a wrap this user cannot read does.
|
|
13
22
|
*/
|
|
14
23
|
export class Wraps {
|
|
15
24
|
app;
|
|
16
|
-
|
|
25
|
+
unwrapAttempts = new Map();
|
|
26
|
+
retryTimers = new Set();
|
|
17
27
|
queue;
|
|
18
28
|
constructor(app) {
|
|
19
29
|
this.app = app;
|
|
@@ -25,9 +35,13 @@ export class Wraps {
|
|
|
25
35
|
return;
|
|
26
36
|
if (!tagValues(hexTags("p"), wrap.tags).includes(app.user.pubkey))
|
|
27
37
|
return;
|
|
38
|
+
let timer;
|
|
28
39
|
try {
|
|
29
40
|
const nip59 = Nip59.fromSigner(app.user.signer);
|
|
30
|
-
const
|
|
41
|
+
const timeout = new Promise((_, reject) => {
|
|
42
|
+
timer = setTimeout(() => reject(new Error("Timed out unwrapping")), UNWRAP_TIMEOUT);
|
|
43
|
+
});
|
|
44
|
+
const rumor = await Promise.race([nip59.unwrap(wrap), timeout]);
|
|
31
45
|
this.app.wrapManager.add({
|
|
32
46
|
wrap: wrap,
|
|
33
47
|
rumor,
|
|
@@ -35,16 +49,35 @@ export class Wraps {
|
|
|
35
49
|
});
|
|
36
50
|
}
|
|
37
51
|
catch (e) {
|
|
38
|
-
this.
|
|
52
|
+
const attempts = (this.unwrapAttempts.get(wrap.id) ?? 0) + 1;
|
|
53
|
+
this.unwrapAttempts.set(wrap.id, attempts);
|
|
54
|
+
if (attempts < MAX_UNWRAP_ATTEMPTS) {
|
|
55
|
+
this.retry(wrap, UNWRAP_RETRY_DELAY * 2 ** (attempts - 1));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
finally {
|
|
59
|
+
clearTimeout(timer);
|
|
39
60
|
}
|
|
40
61
|
},
|
|
41
62
|
});
|
|
42
63
|
app.onCleanup(() => {
|
|
43
64
|
this.queue.clear();
|
|
65
|
+
for (const timer of this.retryTimers) {
|
|
66
|
+
clearTimeout(timer);
|
|
67
|
+
}
|
|
68
|
+
this.retryTimers.clear();
|
|
44
69
|
});
|
|
45
70
|
}
|
|
71
|
+
retry = (wrap, delay) => {
|
|
72
|
+
const timer = setTimeout(() => {
|
|
73
|
+
this.retryTimers.delete(timer);
|
|
74
|
+
this.queue.push(wrap);
|
|
75
|
+
}, delay);
|
|
76
|
+
this.retryTimers.add(timer);
|
|
77
|
+
};
|
|
46
78
|
enqueue = (wrap) => {
|
|
47
|
-
|
|
79
|
+
// A wrap that failed is either waiting on a retry or has been given up on
|
|
80
|
+
if (this.unwrapAttempts.has(wrap.id))
|
|
48
81
|
return;
|
|
49
82
|
if (this.app.wrapManager.getRumor(wrap.id))
|
|
50
83
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wraps.js","sourceRoot":"","sources":["../../../../src/plugins/wraps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,GAAG,EAAC,MAAM,eAAe,CAAA;AAClD,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAEvD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,YAAY,CAAA;AAE9C,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAA;AAW5D
|
|
1
|
+
{"version":3,"file":"wraps.js","sourceRoot":"","sources":["../../../../src/plugins/wraps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../feeds/src/controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuC,YAAY,EAAS,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,IAAI,EAAY,WAAW,EAAC,MAAM,WAAW,CAAA;AACrD,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,eAAe,CAAA;AAG/D,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG;IACxD,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,qBAAa,cAAc;IAGb,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IAFnD,QAAQ,EAAE,YAAY,CAAA;gBAED,OAAO,EAAE,qBAAqB;IAInD,eAAe,2CAIb;IAEF,SAAS,wBAiEc,MAAM,oBA/C3B;IAEF,IAAI,GAAU,OAAO,MAAM,mBAAoC;IAE/D,WAAW,kCAkBT;IAEF,MAAM,4BAIL;IAEK,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,mBAiBzB,MAAM;IASvB,iBAAiB,CACrB,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,WAAW,EAC9B,EAAC,OAAO,EAAE,WAAW,EAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../feeds/src/controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAuC,YAAY,EAAS,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,IAAI,EAAY,WAAW,EAAC,MAAM,WAAW,CAAA;AACrD,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,eAAe,CAAA;AAG/D,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG;IACxD,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,qBAAa,cAAc;IAGb,QAAQ,CAAC,OAAO,EAAE,qBAAqB;IAFnD,QAAQ,EAAE,YAAY,CAAA;gBAED,OAAO,EAAE,qBAAqB;IAInD,eAAe,2CAIb;IAEF,SAAS,wBAiEc,MAAM,oBA/C3B;IAEF,IAAI,GAAU,OAAO,MAAM,mBAAoC;IAE/D,WAAW,kCAkBT;IAEF,MAAM,4BAIL;IAEK,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,mBAiBzB,MAAM;IASvB,iBAAiB,CACrB,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,WAAW,EAC9B,EAAC,OAAO,EAAE,WAAW,EAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,aAAa,CAAC,mBAuHzD,MAAM;IAmB7B,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,IAsBlB,OAAO,MAAM;IAwB7B,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,IAmBpB,OAAO,MAAM;IAwB7B,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,IAmBb,OAAO,MAAM;IAiBvB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE;IAsB5C,mBAAmB,CACvB,EAAC,MAAM,EAAE,OAAO,EAAC,EAAE,WAAW,EAC9B,EAAC,OAAO,EAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC;IA4BnD,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE;IAyBpC,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE;IA2BtC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;CAuBhC"}
|
|
@@ -2,7 +2,7 @@ import { inc, removeUndefined, call, defer, memoize, omitVals, max, min, now, }
|
|
|
2
2
|
import { EPOCH, trimFilters, guessFilterDelta } from "@welshman/util";
|
|
3
3
|
import { FeedType } from "./core.js";
|
|
4
4
|
import { FeedCompiler } from "./compiler.js";
|
|
5
|
-
import { requestPage } from "./request.js";
|
|
5
|
+
import { countPage, requestPage } from "./request.js";
|
|
6
6
|
export class FeedController {
|
|
7
7
|
options;
|
|
8
8
|
compiler;
|
|
@@ -85,14 +85,41 @@ export class FeedController {
|
|
|
85
85
|
const initialDelta = guessFilterDelta(filters);
|
|
86
86
|
let promise;
|
|
87
87
|
let delta = initialDelta;
|
|
88
|
+
let widen = 1;
|
|
89
|
+
let pages = 0;
|
|
88
90
|
let since = this.options.useWindowing ? maxUntil - delta : 0;
|
|
89
91
|
let until = maxUntil;
|
|
90
92
|
let exhausted = false;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
// Size the window to about a page of events by asking the relays how many are in it.
|
|
94
|
+
// Counts are lower bounds, so the window errs wide, and relays that cannot count get
|
|
95
|
+
// `widen` instead.
|
|
96
|
+
const scaleWindow = async (limit) => {
|
|
97
|
+
for (let attempt = 0; attempt < 3 && since > minSince; attempt++) {
|
|
98
|
+
const total = await countPage(omitVals([undefined], {
|
|
99
|
+
relays,
|
|
100
|
+
router: this.options.router,
|
|
101
|
+
signal: this.options.signal,
|
|
102
|
+
context: this.options.context,
|
|
103
|
+
filters: trimFilters(filters.map((filter) => ({ since, until, ...filter }))),
|
|
104
|
+
}));
|
|
105
|
+
if (total === undefined) {
|
|
106
|
+
delta = delta * widen;
|
|
107
|
+
since = Math.max(minSince, until - delta);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (total >= limit && total <= limit * 4) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
delta = Math.max(1, Math.round((delta * limit * 2) / Math.max(total, 1)));
|
|
114
|
+
since = Math.max(minSince, until - delta);
|
|
94
115
|
}
|
|
95
|
-
|
|
116
|
+
};
|
|
117
|
+
const loadPage = async (limit) => {
|
|
118
|
+
// The first page keeps the guessed window so no events wait on a count
|
|
119
|
+
if (this.options.useWindowing && pages > 0) {
|
|
120
|
+
await scaleWindow(limit);
|
|
121
|
+
}
|
|
122
|
+
pages += 1;
|
|
96
123
|
const requestFilters = filters
|
|
97
124
|
// Remove filters that don't fit our window
|
|
98
125
|
.filter((filter) => {
|
|
@@ -103,42 +130,63 @@ export class FeedController {
|
|
|
103
130
|
// Modify the filters to define our window
|
|
104
131
|
.map((filter) => ({ since, until, limit, ...filter }));
|
|
105
132
|
if (requestFilters.length === 0) {
|
|
106
|
-
|
|
133
|
+
exhausted = true;
|
|
134
|
+
onExhausted?.();
|
|
107
135
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
if (
|
|
136
|
+
else {
|
|
137
|
+
let count = 0;
|
|
138
|
+
await requestPage(omitVals([undefined], {
|
|
139
|
+
relays,
|
|
140
|
+
router: this.options.router,
|
|
141
|
+
autoClose: true,
|
|
142
|
+
filters: trimFilters(requestFilters),
|
|
143
|
+
signal: this.options.signal,
|
|
144
|
+
tracker: this.options.tracker,
|
|
145
|
+
context: this.options.context,
|
|
146
|
+
onEvent: (event) => {
|
|
147
|
+
count += 1;
|
|
148
|
+
until = Math.min(until, event.created_at - 1);
|
|
149
|
+
onEvent?.(event);
|
|
150
|
+
},
|
|
151
|
+
}));
|
|
152
|
+
if (this.options.useWindowing) {
|
|
153
|
+
// A full page may have been cut off by the limit, so only a short one reaching back
|
|
154
|
+
// to the start proves there's nothing left
|
|
155
|
+
if (since === minSince && count < limit) {
|
|
156
|
+
exhausted = true;
|
|
157
|
+
onExhausted?.();
|
|
158
|
+
}
|
|
159
|
+
// Relays can't be relied upon to return events in descending order, so a window that
|
|
160
|
+
// came back short is widened before the next one is asked for
|
|
161
|
+
if (count < limit) {
|
|
162
|
+
widen = Math.round(100 * (2 - inc(count) / inc(limit)));
|
|
163
|
+
until = since;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
widen = 1;
|
|
167
|
+
}
|
|
168
|
+
since = Math.max(minSince, until - delta);
|
|
169
|
+
}
|
|
170
|
+
else if (count === 0) {
|
|
125
171
|
exhausted = true;
|
|
126
172
|
onExhausted?.();
|
|
127
173
|
}
|
|
128
|
-
// Relays can't be relied upon to return events in descending order, do exponential
|
|
129
|
-
// windowing to ensure we get the most recent stuff on first load, but eventually find it all
|
|
130
|
-
if (count < limit) {
|
|
131
|
-
delta = delta * Math.round(100 * (2 - inc(count) / inc(limit)));
|
|
132
|
-
until = since;
|
|
133
|
-
}
|
|
134
|
-
since = Math.max(minSince, until - delta);
|
|
135
174
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
175
|
+
};
|
|
176
|
+
return async (limit) => {
|
|
177
|
+
if (promise || exhausted) {
|
|
178
|
+
return promise;
|
|
179
|
+
}
|
|
180
|
+
const current = defer();
|
|
181
|
+
promise = current;
|
|
182
|
+
// Settle even if the page fails, or every later load would wait on this one forever
|
|
183
|
+
try {
|
|
184
|
+
await loadPage(limit);
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
promise = undefined;
|
|
188
|
+
current.resolve();
|
|
139
189
|
}
|
|
140
|
-
promise.resolve();
|
|
141
|
-
promise = undefined;
|
|
142
190
|
};
|
|
143
191
|
}
|
|
144
192
|
_getDifferenceLoader(feeds) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../feeds/src/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../feeds/src/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,20 @@ export type RequestPageOptions = {
|
|
|
13
13
|
autoClose?: boolean;
|
|
14
14
|
};
|
|
15
15
|
export declare const requestPage: ({ filters, router, onEvent, relays, tracker, signal, context, autoClose, }: RequestPageOptions) => Promise<TrustedEvent[] | undefined>;
|
|
16
|
+
export type CountPageOptions = {
|
|
17
|
+
filters: Filter[];
|
|
18
|
+
router: FeedRouter;
|
|
19
|
+
relays?: string[];
|
|
20
|
+
context?: AdapterContext;
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Counts the events matching some filters on the relays a page would be requested from,
|
|
25
|
+
* without requesting the page.
|
|
26
|
+
* @param options - CountPageOptions
|
|
27
|
+
* @returns a lower bound on the count, or undefined if no relay supports NIP-45
|
|
28
|
+
*/
|
|
29
|
+
export declare const countPage: ({ filters, router, relays, context, signal, }: CountPageOptions) => Promise<number | undefined>;
|
|
16
30
|
export type RequestDVMOptions = {
|
|
17
31
|
kind: number;
|
|
18
32
|
router: FeedRouter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../feeds/src/request.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EAIN,YAAY,EAMb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAc,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,UAAU,EAAsB,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAkB,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../feeds/src/request.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,MAAM,EAIN,YAAY,EAMb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAc,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAC,UAAU,EAAsB,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAkB,OAAO,EAAE,cAAc,EAA0B,MAAM,eAAe,CAAA;AAE/F,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,4EAS/B,kBAAkB,wCA0DpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAU,+CAM7B,gBAAgB,gCAWlB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,uEAQ9B,iBAAiB,6EAuCnB,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { partition, now, nthEq, race } from "@welshman/lib";
|
|
1
|
+
import { partition, now, nthEq, race, max, removeUndefined } from "@welshman/lib";
|
|
2
2
|
import { makeEvent, hexTags, relayTags, tagValues, RELAYS, indexers, relays, searchRelays, addMinimalFallbacks, } from "@welshman/util";
|
|
3
3
|
import { Nip01Signer } from "@welshman/signer";
|
|
4
4
|
import { getFilterSelections } from "./router.js";
|
|
5
|
-
import { LOCAL_RELAY_URL, Tracker, request, publish } from "@welshman/net";
|
|
5
|
+
import { LOCAL_RELAY_URL, Tracker, count, request, publish } from "@welshman/net";
|
|
6
6
|
export const requestPage = async ({ filters, router, onEvent, relays = [], tracker = new Tracker(), signal, context, autoClose, }) => {
|
|
7
7
|
if (relays.length > 0) {
|
|
8
8
|
return request({ tracker, signal, context, onEvent, relays, filters, autoClose });
|
|
@@ -50,6 +50,20 @@ export const requestPage = async ({ filters, router, onEvent, relays = [], track
|
|
|
50
50
|
autoClose,
|
|
51
51
|
});
|
|
52
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Counts the events matching some filters on the relays a page would be requested from,
|
|
55
|
+
* without requesting the page.
|
|
56
|
+
* @param options - CountPageOptions
|
|
57
|
+
* @returns a lower bound on the count, or undefined if no relay supports NIP-45
|
|
58
|
+
*/
|
|
59
|
+
export const countPage = async ({ filters, router, relays = [], context, signal, }) => {
|
|
60
|
+
if (relays.length > 0) {
|
|
61
|
+
return count({ filters, relays, context, signal });
|
|
62
|
+
}
|
|
63
|
+
const selections = await getFilterSelections(filters, router);
|
|
64
|
+
const counts = removeUndefined(await Promise.all(selections.map(selection => count({ ...selection, context, signal }))));
|
|
65
|
+
return counts.length > 0 ? max(counts) : undefined;
|
|
66
|
+
};
|
|
53
67
|
export const requestDVM = async ({ kind, router, onResult, tags = [], relays: relayUrls = [], signer = Nip01Signer.ephemeral(), context, }) => {
|
|
54
68
|
if (relayUrls.length === 0) {
|
|
55
69
|
const indexScenario = await router.resolve([indexers()]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../feeds/src/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../feeds/src/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../net/src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAA2B,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAkB,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EACL,YAAY,EAEZ,aAAa,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../net/src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAA2B,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAkB,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EACL,YAAY,EAEZ,aAAa,EAMd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAC,MAAM,EAAc,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAE5C,oBAAY,YAAY;IACtB,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACrE,CAAA;AAED,8BAAsB,eAAgB,SAAQ,YAAY;IACxD,cAAc,EAAE,YAAY,EAAE,CAAK;IAEnC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAE3C,OAAO;CAIR;AAED,qBAAa,aAAc,SAAQ,eAAe;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAUnC,IAAI,OAAO,aAEV;IAED,IAAI,IAAI,aAEP;IAED,IAAI,CAAC,OAAO,EAAE,aAAa;CAG5B;AAED,qBAAa,YAAa,SAAQ,eAAe;;IAGnC,QAAQ,CAAC,UAAU,EAAE,UAAU;IAF3C,IAAI,wBAA8B;gBAEb,UAAU,EAAE,UAAU;IAgB3C,IAAI,OAAO,YAEV;IAED,IAAI,IAAI,aAEP;IAED,IAAI,CAAC,OAAO,EAAE,aAAa;CAiD5B;AAED,qBAAa,WAAY,SAAQ,eAAe;IAE5C,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;gBADtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI;IAKjD,IAAI,OAAO,YAEV;IAED,IAAI,IAAI,aAEP;IAED,OAAO,GAAI,SAAS,YAAY,UAE/B;CACF;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEhD,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAS,cAAmB,mDA0BnE,CAAA"}
|
package/dist/net/src/adapter.js
CHANGED
|
@@ -62,6 +62,8 @@ export class LocalAdapter extends AbstractAdapter {
|
|
|
62
62
|
return this.#handleEVENT(message);
|
|
63
63
|
case ClientMessageType.Close:
|
|
64
64
|
return this.#handleCLOSE(message);
|
|
65
|
+
case ClientMessageType.Count:
|
|
66
|
+
return this.#handleCOUNT(message);
|
|
65
67
|
case ClientMessageType.Req:
|
|
66
68
|
return this.#handleREQ(message);
|
|
67
69
|
}
|
|
@@ -77,6 +79,13 @@ export class LocalAdapter extends AbstractAdapter {
|
|
|
77
79
|
#handleCLOSE([_, subId]) {
|
|
78
80
|
this.subs.delete(subId);
|
|
79
81
|
}
|
|
82
|
+
#handleCOUNT([_, subId, ...filters]) {
|
|
83
|
+
// Callers generally expect async relays
|
|
84
|
+
sleep(1).then(() => {
|
|
85
|
+
const count = this.repository.query(filters).length;
|
|
86
|
+
this.#receive([RelayMessageType.Count, subId, { count }]);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
80
89
|
#handleREQ([_, subId, ...filters]) {
|
|
81
90
|
this.subs.set(subId, filters);
|
|
82
91
|
// Callers generally expect async relays
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../net/src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAC,UAAU,EAAE,YAAY,EAAS,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAC,eAAe,EAAa,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAEL,gBAAgB,EAEhB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../net/src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Filter } from "@welshman/util";
|
|
2
|
+
import { AdapterContext } from "./adapter.js";
|
|
3
|
+
export declare const COUNT_TIMEOUT = 3000;
|
|
4
|
+
export declare const supportsCount: (relay: string) => boolean | undefined;
|
|
5
|
+
export type CountOneOptions = {
|
|
6
|
+
relay: string;
|
|
7
|
+
filters: Filter[];
|
|
8
|
+
context?: AdapterContext;
|
|
9
|
+
signal?: AbortSignal;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Asks one relay how many events match the given filters (NIP-45).
|
|
13
|
+
* @param options - CountOneOptions
|
|
14
|
+
* @returns the relay's count, or undefined if it does not support COUNT
|
|
15
|
+
*/
|
|
16
|
+
export declare const countOne: (options: CountOneOptions) => import("@welshman/lib").Deferred<number | undefined, number | undefined>;
|
|
17
|
+
export type CountOptions = {
|
|
18
|
+
relays: string[];
|
|
19
|
+
filters: Filter[];
|
|
20
|
+
context?: AdapterContext;
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Asks several relays how many events match the given filters (NIP-45). Relays hold
|
|
25
|
+
* overlapping subsets of the network, so the highest answer is a lower bound.
|
|
26
|
+
* @param options - CountOptions
|
|
27
|
+
* @returns the highest count given, or undefined if no relay supports COUNT
|
|
28
|
+
*/
|
|
29
|
+
export declare const count: (options: CountOptions) => Promise<number | undefined>;
|
|
30
|
+
//# sourceMappingURL=count.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../../net/src/count.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AASrC,OAAO,EAAa,cAAc,EAAe,MAAM,cAAc,CAAA;AAIrE,eAAO,MAAM,aAAa,OAAO,CAAA;AAgBjC,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,wBAA8B,CAAA;AAEzE,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS,eAAe,6EA+EhD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAU,SAAS,YAAY,gCAMhD,CAAA"}
|