@bsv/sdk 2.1.1 → 2.1.3

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 (79) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/auth/Peer.js +21 -18
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  5. package/dist/cjs/src/auth/clients/AuthFetch.js +4 -1
  6. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  7. package/dist/cjs/src/identity/ContactsManager.js +44 -6
  8. package/dist/cjs/src/identity/ContactsManager.js.map +1 -1
  9. package/dist/cjs/src/identity/IdentityClient.js +106 -37
  10. package/dist/cjs/src/identity/IdentityClient.js.map +1 -1
  11. package/dist/cjs/src/overlay-tools/LookupResolver.js +180 -82
  12. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  13. package/dist/cjs/src/primitives/Hash.js +173 -50
  14. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  15. package/dist/cjs/src/primitives/SymmetricKey.js +123 -1
  16. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  17. package/dist/cjs/src/transaction/MerklePath.js +1 -1
  18. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  19. package/dist/esm/src/auth/Peer.js +28 -18
  20. package/dist/esm/src/auth/Peer.js.map +1 -1
  21. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  22. package/dist/esm/src/auth/clients/AuthFetch.js +4 -1
  23. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  24. package/dist/esm/src/identity/ContactsManager.js +44 -6
  25. package/dist/esm/src/identity/ContactsManager.js.map +1 -1
  26. package/dist/esm/src/identity/IdentityClient.js +106 -37
  27. package/dist/esm/src/identity/IdentityClient.js.map +1 -1
  28. package/dist/esm/src/overlay-tools/LookupResolver.js +180 -82
  29. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  30. package/dist/esm/src/primitives/Hash.js +177 -50
  31. package/dist/esm/src/primitives/Hash.js.map +1 -1
  32. package/dist/esm/src/primitives/SymmetricKey.js +123 -1
  33. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  34. package/dist/esm/src/transaction/MerklePath.js +1 -1
  35. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  36. package/dist/types/src/auth/Peer.d.ts +3 -3
  37. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  38. package/dist/types/src/auth/SessionManager.d.ts +21 -0
  39. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  40. package/dist/types/src/auth/clients/AuthFetch.d.ts +2 -2
  41. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  42. package/dist/types/src/identity/ContactsManager.d.ts +13 -2
  43. package/dist/types/src/identity/ContactsManager.d.ts.map +1 -1
  44. package/dist/types/src/identity/IdentityClient.d.ts +50 -24
  45. package/dist/types/src/identity/IdentityClient.d.ts.map +1 -1
  46. package/dist/types/src/overlay-tools/LookupResolver.d.ts +15 -1
  47. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  48. package/dist/types/src/primitives/Hash.d.ts +21 -16
  49. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  50. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  51. package/dist/types/src/wallet/Wallet.interfaces.d.ts +16 -1
  52. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  53. package/dist/types/src/wallet/WalletClient.d.ts +1 -1
  54. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  55. package/dist/types/src/wallet/substrates/window.CWI.d.ts +1 -1
  56. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  57. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  58. package/dist/umd/bundle.js +4 -4
  59. package/package.json +1 -1
  60. package/src/auth/Peer.ts +30 -20
  61. package/src/auth/SessionManager.ts +22 -0
  62. package/src/auth/__tests/Peer.test.ts +47 -1
  63. package/src/auth/clients/AuthFetch.ts +6 -3
  64. package/src/identity/ContactsManager.ts +47 -6
  65. package/src/identity/IdentityClient.ts +137 -53
  66. package/src/identity/__tests/IdentityClient.additional.test.ts +150 -1
  67. package/src/identity/__tests/IdentityClient.test.ts +4 -4
  68. package/src/overlay-tools/LookupResolver.ts +191 -77
  69. package/src/overlay-tools/__tests/LookupResolver.additional.test.ts +90 -0
  70. package/src/primitives/Hash.ts +232 -96
  71. package/src/primitives/SymmetricKey.ts +145 -1
  72. package/src/primitives/__tests/Hash.additional.test.ts +65 -0
  73. package/src/primitives/__tests/Hash.test.ts +6 -1
  74. package/src/script/__tests/Spend.test.ts +45 -4
  75. package/src/transaction/MerklePath.ts +1 -1
  76. package/src/transaction/__tests/Transaction.test.ts +17 -0
  77. package/src/wallet/Wallet.interfaces.ts +16 -1
  78. package/src/wallet/WalletClient.ts +1 -1
  79. package/src/wallet/substrates/window.CWI.ts +1 -1
@@ -12,6 +12,32 @@ const index_js_4 = require("../script/index.js");
12
12
  const index_js_5 = require("../primitives/index.js");
13
13
  const index_js_6 = require("../overlay-tools/index.js");
14
14
  const ContactsManager_js_1 = require("./ContactsManager.js");
15
+ /**
16
+ * Maximum number of identity certificates to parse synchronously before yielding to the
17
+ * event loop. Keeps the main thread responsive when an overlay query returns many results
18
+ * (e.g. a bulk enrichment of N identityKeys).
19
+ */
20
+ const PARSE_BATCH_SIZE = 32;
21
+ /**
22
+ * Yield control to the event loop so queued microtasks / timers can run. Uses
23
+ * `scheduler.yield()` when available (Chromium) or a 0ms macrotask fallback.
24
+ */
25
+ async function yieldToEventLoop() {
26
+ const sched = globalThis.scheduler;
27
+ if (sched != null && typeof sched.yield === 'function') {
28
+ return await sched.yield();
29
+ }
30
+ return await new Promise((resolve) => setTimeout(resolve, 0));
31
+ }
32
+ /** Normalize either legacy boolean / new options object into a canonical { useContacts, parallel }. */
33
+ function normalizeOpts(raw) {
34
+ if (raw === undefined)
35
+ return { useContacts: false, parallel: false };
36
+ if (typeof raw === 'boolean')
37
+ return { useContacts: raw, parallel: false };
38
+ const useContacts = raw.overrideWithContacts ?? raw.useContacts ?? false;
39
+ return { useContacts, parallel: raw.parallel === true };
40
+ }
15
41
  /**
16
42
  * IdentityClient lets you discover who others are, and let the world know who you are.
17
43
  */
@@ -84,77 +110,84 @@ class IdentityClient {
84
110
  throw new Error('Public reveal failed: failed to create action!');
85
111
  }
86
112
  /**
87
- * Resolves displayable identity certificates, issued to a given identity key by a trusted certifier.
113
+ * Resolves displayable identity certificates issued to a given identity key.
88
114
  *
89
- * By default, contacts are consulted first and the overlay is only queried on a contacts miss.
90
- * Pass `{ parallel: true }` to fire both in parallel (the legacy behavior, useful when callers
91
- * specifically want a fresh overlay answer even when a contact exists).
115
+ * **Default behavior (changed): contacts are NOT consulted.** Most clients have no
116
+ * contacts saved locally, so the previous "contacts-first" default paid setup cost for no
117
+ * gain. Pass `{ useContacts: true }` to opt in — appropriate when you know the user has
118
+ * saved contacts and prefers a local hit over a fresh overlay answer.
119
+ *
120
+ * When `useContacts: true`:
121
+ * - Default short-circuits: if a contact matches, the overlay is skipped entirely.
122
+ * - `{ parallel: true }` fires contacts and overlay in parallel; contact wins on hit.
92
123
  *
93
124
  * @param args - Arguments for requesting the discovery based on the identity key.
94
- * @param overrideWithContacts - Whether to consult personal contacts. Default true. When `false`,
95
- * contacts are skipped entirely and the overlay is queried directly. Boolean kept for legacy
96
- * call sites; new code should prefer the options-object form.
97
- * @returns The promise resolves to displayable identities.
125
+ * @param opts - Boolean (legacy) or options object. Boolean `true` `{ useContacts: true }`.
98
126
  */
99
- async resolveByIdentityKey(args, overrideWithContacts = true) {
100
- const opts = typeof overrideWithContacts === 'boolean'
101
- ? { overrideWithContacts }
102
- : { overrideWithContacts: true, ...overrideWithContacts };
103
- const useContacts = opts.overrideWithContacts !== false;
104
- const parallel = opts.parallel === true;
105
- if (useContacts && !parallel) {
127
+ async resolveByIdentityKey(args, opts = false) {
128
+ const { useContacts, parallel } = normalizeOpts(opts);
129
+ // Fast path: skip contacts entirely. Default — straight overlay query,
130
+ // no listOutputs / decrypt / cache churn.
131
+ if (!useContacts) {
132
+ const certificatesResult = await this.wallet.discoverByIdentityKey(args, this.originator);
133
+ const certs = certificatesResult?.certificates ?? [];
134
+ return await IdentityClient.parseIdentities(certs);
135
+ }
136
+ if (!parallel) {
106
137
  const contacts = await this.contactsManager.getContacts(args.identityKey);
107
138
  if (contacts.length > 0)
108
139
  return contacts;
109
140
  const certificatesResult = await this.wallet.discoverByIdentityKey(args, this.originator);
110
141
  const certs = certificatesResult?.certificates ?? [];
111
- return certs.map((cert) => IdentityClient.parseIdentity(cert));
142
+ return await IdentityClient.parseIdentities(certs);
112
143
  }
113
144
  const [contacts, certificatesResult] = await Promise.all([
114
- useContacts
115
- ? this.contactsManager.getContacts(args.identityKey)
116
- : Promise.resolve([]),
145
+ this.contactsManager.getContacts(args.identityKey),
117
146
  this.wallet.discoverByIdentityKey(args, this.originator)
118
147
  ]);
119
148
  if (contacts.length > 0)
120
149
  return contacts;
121
150
  const certs = certificatesResult?.certificates ?? [];
122
- return certs.map((cert) => IdentityClient.parseIdentity(cert));
151
+ return await IdentityClient.parseIdentities(certs);
123
152
  }
124
153
  /**
125
- * Resolves displayable identity certificates by specific identity attributes, issued by a trusted entity.
154
+ * Resolves displayable identity certificates by specific identity attributes.
126
155
  *
127
- * By default, contacts are consulted first: if any contact matches, the overlay call is skipped
128
- * entirely. Set `parallel: true` to keep the legacy parallel behavior.
156
+ * **Default behavior (changed): contacts are NOT consulted.** See
157
+ * {@link resolveByIdentityKey} for the reasoning. Pass `{ useContacts: true }` to opt in.
129
158
  *
130
159
  * @param args - Attributes and optional parameters used to discover certificates.
131
- * @param overrideWithContacts - Whether to consult personal contacts. Default true. Boolean kept
132
- * for legacy call sites; new code should prefer the options-object form.
133
- * @returns The promise resolves to displayable identities.
160
+ * @param opts - Boolean (legacy) or options object. Boolean `true` `{ useContacts: true }`.
134
161
  */
135
- async resolveByAttributes(args, overrideWithContacts = true) {
136
- const opts = typeof overrideWithContacts === 'boolean'
137
- ? { overrideWithContacts }
138
- : { overrideWithContacts: true, ...overrideWithContacts };
139
- const useContacts = opts.overrideWithContacts !== false;
140
- const parallel = opts.parallel === true;
141
- if (useContacts && !parallel) {
162
+ async resolveByAttributes(args, opts = false) {
163
+ const { useContacts, parallel } = normalizeOpts(opts);
164
+ // Fast path: skip contacts entirely.
165
+ if (!useContacts) {
166
+ const certificatesResult = await this.wallet.discoverByAttributes(args, this.originator);
167
+ const certs = certificatesResult?.certificates ?? [];
168
+ return await IdentityClient.parseIdentities(certs);
169
+ }
170
+ if (!parallel) {
142
171
  const contacts = await this.contactsManager.getContacts();
143
172
  const matches = this.matchContactsByAttributes(contacts, args);
144
173
  if (matches.length > 0)
145
174
  return matches;
146
175
  const certificatesResult = await this.wallet.discoverByAttributes(args, this.originator);
147
176
  const certs = certificatesResult?.certificates ?? [];
177
+ if (contacts.length === 0)
178
+ return await IdentityClient.parseIdentities(certs);
148
179
  const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
149
- return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
180
+ return await IdentityClient.parseIdentitiesWithOverrides(certs, contactByKey);
150
181
  }
151
182
  const [contacts, certificatesResult] = await Promise.all([
152
- useContacts ? this.contactsManager.getContacts() : Promise.resolve([]),
183
+ this.contactsManager.getContacts(),
153
184
  this.wallet.discoverByAttributes(args, this.originator)
154
185
  ]);
155
- const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
156
186
  const certs = certificatesResult?.certificates ?? [];
157
- return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
187
+ if (contacts.length === 0)
188
+ return await IdentityClient.parseIdentities(certs);
189
+ const contactByKey = new Map(contacts.map((contact) => [contact.identityKey, contact]));
190
+ return await IdentityClient.parseIdentitiesWithOverrides(certs, contactByKey);
158
191
  }
159
192
  /**
160
193
  * Best-effort match of contacts against a `DiscoverByAttributesArgs.attributes` shape.
@@ -274,6 +307,42 @@ class IdentityClient {
274
307
  async removeContact(identityKey) {
275
308
  return await this.contactsManager.removeContact(identityKey);
276
309
  }
310
+ /**
311
+ * Parse an array of certificates into DisplayableIdentity records, yielding to the
312
+ * event loop every {@link PARSE_BATCH_SIZE} entries so large result sets don't hog
313
+ * the main thread. Equivalent to `certs.map(parseIdentity)` for small inputs.
314
+ */
315
+ static async parseIdentities(certs) {
316
+ const n = certs.length;
317
+ if (n <= PARSE_BATCH_SIZE) {
318
+ return certs.map((c) => IdentityClient.parseIdentity(c));
319
+ }
320
+ const out = new Array(n);
321
+ for (let i = 0; i < n; i++) {
322
+ out[i] = IdentityClient.parseIdentity(certs[i]);
323
+ if ((i + 1) % PARSE_BATCH_SIZE === 0)
324
+ await yieldToEventLoop();
325
+ }
326
+ return out;
327
+ }
328
+ /**
329
+ * Same as {@link parseIdentities} but consults a contact override map keyed by subject
330
+ * identity key. Used by `resolveByAttributes` when contacts are loaded.
331
+ */
332
+ static async parseIdentitiesWithOverrides(certs, contactByKey) {
333
+ const n = certs.length;
334
+ if (n <= PARSE_BATCH_SIZE) {
335
+ return certs.map((cert) => contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert));
336
+ }
337
+ const out = new Array(n);
338
+ for (let i = 0; i < n; i++) {
339
+ const cert = certs[i];
340
+ out[i] = contactByKey.get(cert.subject) ?? IdentityClient.parseIdentity(cert);
341
+ if ((i + 1) % PARSE_BATCH_SIZE === 0)
342
+ await yieldToEventLoop();
343
+ }
344
+ return out;
345
+ }
277
346
  /**
278
347
  * Parse out identity and certifier attributes to display from an IdentityCertificate
279
348
  * @param identityToParse - The Identity Certificate to parse
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdentityClient.js","sourceRoot":"","sources":["../../../../src/identity/IdentityClient.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.HTTPSOverlayLookupFacilitator = exports.DEFAULT_TESTNET_SLAP_TRACKERS = exports.DEFAULT_SLAP_TRACKERS = void 0;
40
40
  const index_js_1 = require("../transaction/index.js");
41
+ const Beef_js_1 = require("../transaction/Beef.js");
41
42
  const OverlayAdminTokenTemplate_js_1 = __importDefault(require("./OverlayAdminTokenTemplate.js"));
42
43
  const Utils = __importStar(require("../primitives/utils.js"));
43
44
  const HostReputationTracker_js_1 = require("./HostReputationTracker.js");
@@ -64,6 +65,75 @@ exports.DEFAULT_TESTNET_SLAP_TRACKERS = [
64
65
  'https://testnet-users.bapp.dev'
65
66
  ];
66
67
  const MAX_TRACKER_WAIT_TIME = 5000;
68
+ function createDeadline(timeoutMs, controller) {
69
+ let expired = false;
70
+ let timer = null;
71
+ const promise = new Promise((_, reject) => {
72
+ timer = setTimeout(() => {
73
+ expired = true;
74
+ try {
75
+ controller?.abort();
76
+ }
77
+ catch { /* noop */ }
78
+ reject(new Error('Request timed out'));
79
+ }, timeoutMs);
80
+ });
81
+ return {
82
+ promise,
83
+ cancel: () => {
84
+ if (timer !== null)
85
+ clearTimeout(timer);
86
+ },
87
+ didTimeOut: () => expired
88
+ };
89
+ }
90
+ function normalizeLookupError(err, timedOut) {
91
+ if (timedOut)
92
+ return new Error('Request timed out');
93
+ if (err?.name === 'AbortError')
94
+ return new Error('Request timed out');
95
+ if (err instanceof Error)
96
+ return err;
97
+ return new Error(stringifyErrorValue(err));
98
+ }
99
+ /**
100
+ * Coerce a non-Error thrown value to a human-readable string without falling
101
+ * back to the default `'[object Object]'` for plain objects.
102
+ */
103
+ function stringifyErrorValue(value) {
104
+ if (value === null)
105
+ return 'null';
106
+ if (value === undefined)
107
+ return 'undefined';
108
+ if (typeof value === 'string')
109
+ return value;
110
+ if (typeof value === 'number')
111
+ return value.toString();
112
+ if (typeof value === 'boolean')
113
+ return value ? 'true' : 'false';
114
+ if (typeof value === 'bigint')
115
+ return value.toString();
116
+ const message = value.message;
117
+ if (typeof message === 'string' && message.length > 0)
118
+ return message;
119
+ try {
120
+ return JSON.stringify(value) ?? 'Unknown error';
121
+ }
122
+ catch {
123
+ return 'Unknown error';
124
+ }
125
+ }
126
+ /**
127
+ * Returns true when the given Content-Type header value represents
128
+ * `application/octet-stream`, ignoring case and any media-type parameters
129
+ * (e.g. `; charset=utf-8`).
130
+ */
131
+ function isOctetStream(contentType) {
132
+ if (typeof contentType !== 'string')
133
+ return false;
134
+ const baseType = contentType.split(';', 1)[0].trim().toLowerCase();
135
+ return baseType === 'application/octet-stream';
136
+ }
67
137
  class HTTPSOverlayLookupFacilitator {
68
138
  constructor(httpClient = defaultFetch, allowHTTP = false) {
69
139
  if (typeof httpClient !== 'function') {
@@ -78,68 +148,80 @@ class HTTPSOverlayLookupFacilitator {
78
148
  throw new Error('HTTPS facilitator can only use URLs that start with "https:"');
79
149
  }
80
150
  const controller = typeof AbortController === 'undefined' ? undefined : new AbortController();
81
- const timer = setTimeout(() => {
82
- try {
83
- controller?.abort();
84
- }
85
- catch { /* noop */ }
86
- }, timeout);
151
+ const deadline = createDeadline(timeout, controller);
152
+ // Hard wall-clock deadline: in some environments (e.g. browser/Electron CORS
153
+ // failures) the underlying fetch can stall without ever settling, and the
154
+ // AbortController signal alone is insufficient to make the returned promise
155
+ // resolve or reject. Race the fetch against a setTimeout-backed reject so
156
+ // the consumer-facing promise always settles within `timeout` ms.
157
+ const fetchPromise = this.performLookupRequest(url, question, controller?.signal);
158
+ // Swallow background rejection if the deadline wins first.
159
+ fetchPromise.catch(() => { });
87
160
  try {
88
- const fco = {
89
- method: 'POST',
90
- headers: {
91
- 'Content-Type': 'application/json',
92
- 'X-Aggregation': 'yes'
93
- },
94
- body: JSON.stringify({ service: question.service, query: question.query }),
95
- signal: controller?.signal
96
- };
97
- const response = await this.fetchClient(`${url}/lookup`, fco);
98
- if (!response.ok)
99
- throw new Error(`Failed to facilitate lookup (HTTP ${response.status})`);
100
- if (response.headers.get('content-type') === 'application/octet-stream') {
101
- const payload = await response.arrayBuffer();
102
- const r = new Utils.Reader([...new Uint8Array(payload)]);
103
- const nOutpoints = r.readVarIntNum();
104
- const outpoints = [];
105
- for (let i = 0; i < nOutpoints; i++) {
106
- const txid = Utils.toHex(r.read(32));
107
- const outputIndex = r.readVarIntNum();
108
- const contextLength = r.readVarIntNum();
109
- let context;
110
- if (contextLength > 0) {
111
- context = r.read(contextLength);
112
- }
113
- outpoints.push({
114
- txid,
115
- outputIndex,
116
- context
117
- });
118
- }
119
- const beef = r.read();
120
- return {
121
- type: 'output-list',
122
- outputs: outpoints.map(x => ({
123
- outputIndex: x.outputIndex,
124
- context: x.context,
125
- beef: index_js_1.Transaction.fromBEEF(beef, x.txid).toBEEF()
126
- }))
127
- };
128
- }
129
- else {
130
- return await response.json();
131
- }
161
+ return await Promise.race([fetchPromise, deadline.promise]);
132
162
  }
133
163
  catch (e) {
134
- // Normalize timeouts to a consistent error message
135
- if (e?.name === 'AbortError')
136
- throw new Error('Request timed out');
137
- throw e;
164
+ throw normalizeLookupError(e, deadline.didTimeOut());
138
165
  }
139
166
  finally {
140
- clearTimeout(timer);
167
+ deadline.cancel();
141
168
  }
142
169
  }
170
+ async performLookupRequest(url, question, signal) {
171
+ const fco = {
172
+ method: 'POST',
173
+ headers: {
174
+ 'Content-Type': 'application/json',
175
+ 'X-Aggregation': 'yes'
176
+ },
177
+ body: JSON.stringify({ service: question.service, query: question.query }),
178
+ signal
179
+ };
180
+ const response = await this.fetchClient(`${url}/lookup`, fco);
181
+ if (!response.ok)
182
+ throw new Error(`Failed to facilitate lookup (HTTP ${response.status})`);
183
+ if (isOctetStream(response.headers.get('content-type'))) {
184
+ return await this.parseOctetStreamLookup(response);
185
+ }
186
+ return await response.json();
187
+ }
188
+ /** Parse the aggregated octet-stream lookup response into an output-list LookupAnswer. */
189
+ async parseOctetStreamLookup(response) {
190
+ const payload = await response.arrayBuffer();
191
+ const r = new Utils.Reader([...new Uint8Array(payload)]);
192
+ const nOutpoints = r.readVarIntNum();
193
+ const outpoints = [];
194
+ for (let i = 0; i < nOutpoints; i++) {
195
+ const txid = Utils.toHex(r.read(32));
196
+ const outputIndex = r.readVarIntNum();
197
+ const contextLength = r.readVarIntNum();
198
+ const context = contextLength > 0 ? r.read(contextLength) : undefined;
199
+ outpoints.push({ txid, outputIndex, context });
200
+ }
201
+ const beef = r.read();
202
+ const beefObj = Beef_js_1.Beef.fromBinary(beef);
203
+ const outputs = await this.extractAtomicOutputs(outpoints, beefObj);
204
+ return { type: 'output-list', outputs };
205
+ }
206
+ /** Memoize per-txid atomic BEEF extraction, yielding to the event loop between outputs. */
207
+ async extractAtomicOutputs(outpoints, beefObj) {
208
+ const beefByTxid = new Map();
209
+ const outputs = new Array(outpoints.length);
210
+ for (let idx = 0; idx < outpoints.length; idx++) {
211
+ const x = outpoints[idx];
212
+ let beefBytes = beefByTxid.get(x.txid);
213
+ if (beefBytes === undefined) {
214
+ beefBytes = beefObj.toBinaryAtomic(x.txid);
215
+ beefByTxid.set(x.txid, beefBytes);
216
+ }
217
+ outputs[idx] = { outputIndex: x.outputIndex, context: x.context, beef: beefBytes, txid: x.txid };
218
+ // Yield to event loop so UI animations and other JS don't starve.
219
+ if (idx > 0 && idx < outpoints.length - 1) {
220
+ await new Promise((resolve) => setTimeout(resolve, 0));
221
+ }
222
+ }
223
+ return outputs;
224
+ }
143
225
  }
144
226
  exports.HTTPSOverlayLookupFacilitator = HTTPSOverlayLookupFacilitator;
145
227
  /**
@@ -180,13 +262,20 @@ class LookupResolver {
180
262
  * answered (or with an empty result if no host has answered by `softTimeoutMs`).
181
263
  */
182
264
  async query(question, timeout, options) {
183
- let last = null;
184
265
  // Existing fast-but-narrow contract: return at the first cumulative emission
185
266
  // (the post-grace aggregate, or the final emission when every host settles
186
267
  // before the grace window). Callers wanting progressive enrichment use query$().
187
- for await (const partial of this.query$(question, timeout, options)) {
188
- last = partial;
189
- break;
268
+ // Take only the first emission, then explicitly close the iterator so the
269
+ // generator's `finally` block runs and clears any outstanding timers.
270
+ const iter = this.query$(question, timeout, options)[Symbol.asyncIterator]();
271
+ let last = null;
272
+ try {
273
+ const { value, done } = await iter.next();
274
+ if (done !== true && value != null)
275
+ last = value;
276
+ }
277
+ finally {
278
+ await iter.return?.(undefined);
190
279
  }
191
280
  return {
192
281
  type: 'output-list',
@@ -271,33 +360,17 @@ class LookupResolver {
271
360
  let graceTimer = null;
272
361
  let graceFired = false;
273
362
  let emittedOnce = false;
274
- const beefKey = (beef) => {
275
- if (typeof beef !== 'object' || beef == null)
276
- return '';
277
- return beef.join(',');
278
- };
279
363
  const mergeAnswer = (answer) => {
280
364
  let added = false;
365
+ const now = Date.now();
281
366
  for (const output of answer.outputs) {
282
- const keyForBeef = beefKey(output.beef);
283
- let memo = this.txMemo.get(keyForBeef);
284
- const now = Date.now();
285
- if (typeof memo !== 'object' || memo === null || memo.expiresAt <= now) {
286
- try {
287
- const txId = index_js_1.Transaction.fromBEEF(output.beef).id('hex');
288
- memo = { txId, expiresAt: now + this.txMemoTtlMs };
289
- if (this.txMemo.size > 4096)
290
- this.evictOldest(this.txMemo);
291
- this.txMemo.set(keyForBeef, memo);
292
- }
293
- catch {
294
- continue;
295
- }
296
- }
297
- const uniqKey = `${memo.txId}.${output.outputIndex}`;
367
+ const txId = this.resolveTxIdForOutput(output, now);
368
+ if (txId === null)
369
+ continue;
370
+ const uniqKey = `${txId}.${output.outputIndex}`;
298
371
  if (!outputsMap.has(uniqKey)) {
299
372
  outputsMap.set(uniqKey, output);
300
- txIds.push(memo.txId);
373
+ txIds.push(txId);
301
374
  added = true;
302
375
  }
303
376
  }
@@ -483,7 +556,32 @@ class LookupResolver {
483
556
  }
484
557
  });
485
558
  }
486
- /** Evict an arbitrary “oldest” entry from a Map (iteration order). */
559
+ /**
560
+ * Resolve a txid for an aggregated lookup output. Uses the threaded-through `output.txid`
561
+ * fast path when present; otherwise memoizes Transaction.fromBEEF(beef).id('hex') keyed by
562
+ * the BEEF byte sequence. Returns null when the BEEF is unparseable.
563
+ */
564
+ resolveTxIdForOutput(output, now) {
565
+ if (typeof output.txid === 'string' && output.txid.length > 0) {
566
+ return output.txid;
567
+ }
568
+ const keyForBeef = Array.isArray(output.beef) ? output.beef.join(',') : '';
569
+ const memo = this.txMemo.get(keyForBeef);
570
+ if (typeof memo === 'object' && memo !== null && memo.expiresAt > now) {
571
+ return memo.txId;
572
+ }
573
+ try {
574
+ const txId = index_js_1.Transaction.fromBEEF(output.beef).id('hex');
575
+ if (this.txMemo.size > 4096)
576
+ this.evictOldest(this.txMemo);
577
+ this.txMemo.set(keyForBeef, { txId, expiresAt: now + this.txMemoTtlMs });
578
+ return txId;
579
+ }
580
+ catch {
581
+ return null;
582
+ }
583
+ }
584
+ /** Evict an arbitrary "oldest" entry from a Map (iteration order). */
487
585
  evictOldest(m) {
488
586
  const firstKey = m.keys().next().value;
489
587
  if (firstKey !== undefined)