signet-protocol 1.10.1 → 1.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.
Files changed (51) hide show
  1. package/README.md +15 -10
  2. package/dist/bot-ownership.d.ts +61 -0
  3. package/dist/bot-ownership.d.ts.map +1 -0
  4. package/dist/bot-ownership.js +88 -0
  5. package/dist/bot-ownership.js.map +1 -0
  6. package/dist/crypto.d.ts +2 -0
  7. package/dist/crypto.d.ts.map +1 -1
  8. package/dist/crypto.js +4 -0
  9. package/dist/crypto.js.map +1 -1
  10. package/dist/experimental.d.ts +19 -0
  11. package/dist/experimental.d.ts.map +1 -0
  12. package/dist/experimental.js +16 -0
  13. package/dist/experimental.js.map +1 -0
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/url-auth.d.ts.map +1 -1
  17. package/dist/url-auth.js +2 -1
  18. package/dist/url-auth.js.map +1 -1
  19. package/dist/utils.d.ts +46 -0
  20. package/dist/utils.d.ts.map +1 -1
  21. package/dist/utils.js +127 -0
  22. package/dist/utils.js.map +1 -1
  23. package/dist/vault-checkpoint.d.ts +50 -0
  24. package/dist/vault-checkpoint.d.ts.map +1 -0
  25. package/dist/vault-checkpoint.js +84 -0
  26. package/dist/vault-checkpoint.js.map +1 -0
  27. package/dist/vault-keys.d.ts +19 -0
  28. package/dist/vault-keys.d.ts.map +1 -0
  29. package/dist/vault-keys.js +57 -0
  30. package/dist/vault-keys.js.map +1 -0
  31. package/dist/vault-recovery.d.ts +99 -0
  32. package/dist/vault-recovery.d.ts.map +1 -0
  33. package/dist/vault-recovery.js +305 -0
  34. package/dist/vault-recovery.js.map +1 -0
  35. package/dist/vault-relay.d.ts +29 -0
  36. package/dist/vault-relay.d.ts.map +1 -0
  37. package/dist/vault-relay.js +131 -0
  38. package/dist/vault-relay.js.map +1 -0
  39. package/llms-full.txt +3744 -0
  40. package/llms.txt +134 -0
  41. package/package.json +15 -6
  42. package/src/bot-ownership.ts +77 -0
  43. package/src/crypto.ts +5 -0
  44. package/src/experimental.ts +25 -0
  45. package/src/index.ts +3 -0
  46. package/src/url-auth.ts +2 -1
  47. package/src/utils.ts +122 -0
  48. package/src/vault-checkpoint.ts +98 -0
  49. package/src/vault-keys.ts +59 -0
  50. package/src/vault-recovery.ts +284 -0
  51. package/src/vault-relay.ts +112 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-recovery.js","sourceRoot":"","sources":["../src/vault-recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { RelayClient, type NostrFilter } from './relay.js';
2
+ import type { NostrEvent } from './types.js';
3
+ import type { VaultReader } from './vault-recovery.js';
4
+ /** Matching events one relay may contribute to one query. More fails that relay. */
5
+ export declare const MAX_VAULT_EVENTS_PER_RELAY = 128;
6
+ /** A relay query that did not complete on every relay. `failedRelays` names the
7
+ * relays that errored, timed out or exceeded the cap. */
8
+ export declare class VaultRelayError extends Error {
9
+ readonly failedRelays: string[];
10
+ constructor(message: string, failedRelays: string[]);
11
+ }
12
+ /** EOSE is required: a timed-out empty query is not evidence of absence.
13
+ * Events are filtered against `filter` (and `accept`, when given) and
14
+ * de-duplicated before the per-relay cap applies, so unrelated events cannot
15
+ * crowd out the requested ones. */
16
+ export declare function fetchVaultEvents(relay: Pick<RelayClient, 'subscribe' | 'closeSubscription'>, filter: NostrFilter, timeoutMs?: number, accept?: (event: NostrEvent) => boolean): Promise<NostrEvent[]>;
17
+ /** Relay-backed reader. At most eight valid relay URLs are queried.
18
+ *
19
+ * A checkpoint query, empty or not, completes only when EVERY queried relay
20
+ * answered with EOSE: one relay's "nothing" is not evidence of absence, and one
21
+ * relay's heads may omit a device head another relay holds. Otherwise it throws
22
+ * a `VaultRelayError` naming the failed relays, and recovery reports
23
+ * `unavailable` with `failedRelays`. A permanently dead configured relay keeps
24
+ * reads unavailable until it is removed from the set. A chunk fetch by exact
25
+ * ID succeeds as soon as any relay returns it (its hash is pinned); "not found"
26
+ * again needs every relay. Checkpoint queries drop events without a
27
+ * checkpoint-shaped d-tag before the per-relay cap. */
28
+ export declare function createVaultRelayReader(relays: readonly string[], open: VaultReader['open']): VaultReader;
29
+ //# sourceMappingURL=vault-relay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-relay.d.ts","sourceRoot":"","sources":["../src/vault-relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,MAAM,CAAA;AA2B7C;yDACyD;AACzD,qBAAa,eAAgB,SAAQ,KAAK;IACX,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;gBAAhD,OAAO,EAAE,MAAM,EAAW,YAAY,EAAE,MAAM,EAAE;CAI7D;AAED;;;mCAGmC;AACnC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,CAAC,EAC1F,MAAM,EAAE,WAAW,EAAE,SAAS,SAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAsBxG;AAED;;;;;;;;;;uDAUuD;AACvD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CA6BxG"}
@@ -0,0 +1,131 @@
1
+ import { RelayClient } from './relay.js';
2
+ import { VAULT_EVENT_KIND, vaultCheckpointShapedTag } from './vault-checkpoint.js';
3
+ /** Matching events one relay may contribute to one query. More fails that relay. */
4
+ export const MAX_VAULT_EVENTS_PER_RELAY = 128;
5
+ const MAX_VAULT_RELAYS = 8;
6
+ /** Must agree with the RelayClient constructor: a URL accepted here but rejected
7
+ * there would be skipped silently. Plain ws:// is loopback-only (localhost and
8
+ * 127.0.0.1; RelayClient does not accept [::1]). */
9
+ function validRelay(raw) {
10
+ try {
11
+ const url = new URL(raw);
12
+ return !url.username && !url.password && !url.hash && (url.protocol === 'wss:'
13
+ || (url.protocol === 'ws:' && ['localhost', '127.0.0.1'].includes(url.hostname)));
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ }
19
+ /** Client-side re-check of the relay filter. Relays are untrusted, so an event
20
+ * outside the requested author/kind/id/d-tag is dropped before it counts
21
+ * towards any limit. */
22
+ function matchesFilter(filter, event) {
23
+ if (!event || typeof event.id !== 'string' || typeof event.pubkey !== 'string' || !Array.isArray(event.tags))
24
+ return false;
25
+ if (filter.ids && !filter.ids.includes(event.id))
26
+ return false;
27
+ if (filter.authors && !filter.authors.includes(event.pubkey))
28
+ return false;
29
+ if (filter.kinds && !filter.kinds.includes(event.kind))
30
+ return false;
31
+ const dTags = filter['#d'];
32
+ if (dTags && !event.tags.some(t => Array.isArray(t) && t[0] === 'd' && dTags.includes(t[1])))
33
+ return false;
34
+ return true;
35
+ }
36
+ /** A relay query that did not complete on every relay. `failedRelays` names the
37
+ * relays that errored, timed out or exceeded the cap. */
38
+ export class VaultRelayError extends Error {
39
+ failedRelays;
40
+ constructor(message, failedRelays) {
41
+ super(message);
42
+ this.failedRelays = failedRelays;
43
+ this.name = 'VaultRelayError';
44
+ }
45
+ }
46
+ /** EOSE is required: a timed-out empty query is not evidence of absence.
47
+ * Events are filtered against `filter` (and `accept`, when given) and
48
+ * de-duplicated before the per-relay cap applies, so unrelated events cannot
49
+ * crowd out the requested ones. */
50
+ export function fetchVaultEvents(relay, filter, timeoutMs = 10000, accept) {
51
+ return new Promise((resolve, reject) => {
52
+ const events = new Map();
53
+ let subId;
54
+ let finished = false;
55
+ const finish = (error) => {
56
+ if (finished)
57
+ return;
58
+ finished = true;
59
+ clearTimeout(timer);
60
+ if (subId)
61
+ relay.closeSubscription(subId);
62
+ if (error)
63
+ reject(error);
64
+ else
65
+ resolve([...events.values()]);
66
+ };
67
+ const timer = setTimeout(() => finish(new Error('Vault query did not complete')), timeoutMs);
68
+ try {
69
+ subId = relay.subscribe([filter], event => {
70
+ if (finished || !matchesFilter(filter, event) || (accept && !accept(event)) || events.has(event.id))
71
+ return;
72
+ if (events.size >= MAX_VAULT_EVENTS_PER_RELAY)
73
+ finish(new Error('Vault query exceeds event limit'));
74
+ else
75
+ events.set(event.id, event);
76
+ }, () => finish());
77
+ if (finished)
78
+ relay.closeSubscription(subId);
79
+ }
80
+ catch {
81
+ finish(new Error('Vault query failed'));
82
+ }
83
+ });
84
+ }
85
+ /** Relay-backed reader. At most eight valid relay URLs are queried.
86
+ *
87
+ * A checkpoint query, empty or not, completes only when EVERY queried relay
88
+ * answered with EOSE: one relay's "nothing" is not evidence of absence, and one
89
+ * relay's heads may omit a device head another relay holds. Otherwise it throws
90
+ * a `VaultRelayError` naming the failed relays, and recovery reports
91
+ * `unavailable` with `failedRelays`. A permanently dead configured relay keeps
92
+ * reads unavailable until it is removed from the set. A chunk fetch by exact
93
+ * ID succeeds as soon as any relay returns it (its hash is pinned); "not found"
94
+ * again needs every relay. Checkpoint queries drop events without a
95
+ * checkpoint-shaped d-tag before the per-relay cap. */
96
+ export function createVaultRelayReader(relays, open) {
97
+ const urls = [...new Set(relays.filter(validRelay))].slice(0, MAX_VAULT_RELAYS);
98
+ const query = async (filter, accept, enough) => {
99
+ if (!urls.length)
100
+ throw new VaultRelayError('No valid vault relays', []);
101
+ const events = new Map();
102
+ const failed = [];
103
+ await Promise.all(urls.map(async (url) => {
104
+ let relay;
105
+ try {
106
+ relay = new RelayClient(url);
107
+ await relay.connect();
108
+ const found = await fetchVaultEvents(relay, filter, undefined, accept);
109
+ for (const e of found)
110
+ events.set(e.id, e);
111
+ }
112
+ catch {
113
+ failed.push(url);
114
+ }
115
+ finally {
116
+ relay?.disconnect();
117
+ }
118
+ }));
119
+ const result = [...events.values()];
120
+ if (failed.length && !(enough && enough(result))) {
121
+ throw new VaultRelayError(`Vault relays did not all answer: ${failed.length} of ${urls.length} failed`, failed.sort());
122
+ }
123
+ return result;
124
+ };
125
+ return {
126
+ checkpoints: (author, dTag) => query({ kinds: [VAULT_EVENT_KIND], authors: [author], ...(dTag ? { '#d': [dTag] } : {}), limit: MAX_VAULT_EVENTS_PER_RELAY }, event => vaultCheckpointShapedTag(event) !== null),
127
+ chunk: async (id) => (await query({ ids: [id], limit: 1 }, undefined, found => found.some(e => e.id === id))).find(e => e.id === id) ?? null,
128
+ open,
129
+ };
130
+ }
131
+ //# sourceMappingURL=vault-relay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault-relay.js","sourceRoot":"","sources":["../src/vault-relay.ts"],"names":[],"mappings":"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"}