@pkcprotocol/pkc-js 0.0.88 → 0.0.90

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 (58) hide show
  1. package/README.md +1 -1
  2. package/dist/browser/clients/base-client-manager.js +9 -1
  3. package/dist/browser/clients/base-client-manager.js.map +1 -1
  4. package/dist/browser/generated-version.d.ts +1 -1
  5. package/dist/browser/generated-version.js +1 -1
  6. package/dist/browser/helia/helia-for-pkc.d.ts +2 -0
  7. package/dist/browser/helia/helia-for-pkc.js +231 -67
  8. package/dist/browser/helia/helia-for-pkc.js.map +1 -1
  9. package/dist/browser/helia/libp2pjsClient.d.ts +1 -1
  10. package/dist/browser/helia/lru-blockstore.d.ts +9 -8
  11. package/dist/browser/helia/lru-blockstore.js.map +1 -1
  12. package/dist/browser/helia/types.d.ts +10 -10
  13. package/dist/browser/helia/util.d.ts +6 -0
  14. package/dist/browser/helia/util.js +39 -0
  15. package/dist/browser/helia/util.js.map +1 -1
  16. package/dist/browser/rpc/src/schema.d.ts +148 -22
  17. package/dist/browser/runtime/node/community/local-community/cleanup.js +31 -1
  18. package/dist/browser/runtime/node/community/local-community/cleanup.js.map +1 -1
  19. package/dist/browser/schema.d.ts +8 -6
  20. package/dist/browser/schema.js +8 -1
  21. package/dist/browser/schema.js.map +1 -1
  22. package/dist/browser/test/test-util.js +3 -1
  23. package/dist/browser/test/test-util.js.map +1 -1
  24. package/dist/bundled/bundle-manifest.json +163 -142
  25. package/dist/bundled/chunks/{helia-for-pkc-CgG0H5g2.js → helia-for-pkc-CnQ8VxGw.js} +92 -41
  26. package/dist/bundled/chunks/{local-community-6_MVz1cc.js → local-community-CfRLoFS9.js} +32 -3
  27. package/dist/bundled/chunks/{local-community-rFE0QOdJ.js → local-community-Ctkg7wpX.js} +1 -1
  28. package/dist/bundled/chunks/{node-BjSTVzbx.js → node-cD0dEbJR.js} +5 -5
  29. package/dist/bundled/chunks/{rpc-local-community-Bu6Wp-tO.js → rpc-local-community-OsSRSfpT.js} +433 -7
  30. package/dist/bundled/chunks/{schema-By3Sh-uW.js → schema-YCcI2X94.js} +3 -3
  31. package/dist/bundled/chunks/{src-WLgFbUwZ.js → src-629pKfxo.js} +2731 -415
  32. package/dist/bundled/chunks/{src-B2CwDTfy.js → src-Dz9wtvrK.js} +18 -18
  33. package/dist/bundled/chunks/{util-BxLdjyTF.js → util-DDB5WFK9.js} +19 -2
  34. package/dist/bundled/index.js +1 -1
  35. package/dist/bundled/rpc/src/index.js +4 -4
  36. package/dist/node/clients/base-client-manager.js +9 -1
  37. package/dist/node/clients/base-client-manager.js.map +1 -1
  38. package/dist/node/generated-version.d.ts +1 -1
  39. package/dist/node/generated-version.js +1 -1
  40. package/dist/node/helia/helia-for-pkc.d.ts +2 -0
  41. package/dist/node/helia/helia-for-pkc.js +231 -67
  42. package/dist/node/helia/helia-for-pkc.js.map +1 -1
  43. package/dist/node/helia/libp2pjsClient.d.ts +1 -1
  44. package/dist/node/helia/lru-blockstore.d.ts +9 -8
  45. package/dist/node/helia/lru-blockstore.js.map +1 -1
  46. package/dist/node/helia/types.d.ts +10 -10
  47. package/dist/node/helia/util.d.ts +6 -0
  48. package/dist/node/helia/util.js +39 -0
  49. package/dist/node/helia/util.js.map +1 -1
  50. package/dist/node/rpc/src/schema.d.ts +148 -22
  51. package/dist/node/runtime/node/community/local-community/cleanup.js +31 -1
  52. package/dist/node/runtime/node/community/local-community/cleanup.js.map +1 -1
  53. package/dist/node/schema.d.ts +8 -6
  54. package/dist/node/schema.js +8 -1
  55. package/dist/node/schema.js.map +1 -1
  56. package/dist/node/test/test-util.js +3 -1
  57. package/dist/node/test/test-util.js.map +1 -1
  58. package/package.json +17 -16
@@ -1,4 +1,6 @@
1
- import { createHelia, libp2pDefaults } from "helia";
1
+ import { createHeliaLight } from "helia";
2
+ import { libp2pDefaults, withLibp2p } from "@helia/libp2p";
3
+ import { withBitswap } from "@helia/bitswap";
2
4
  import { ipns } from "@helia/ipns";
3
5
  import { unmarshalIPNSRecord, multihashToIPNSRoutingKey } from "ipns";
4
6
  import { ipnsValidator } from "ipns/validator";
@@ -6,20 +8,20 @@ import { gossipsub } from "@libp2p/gossipsub";
6
8
  import { identify } from "@libp2p/identify";
7
9
  import extraLibp2pTransports from "../runtime/browser/libp2p-extra-transports.js";
8
10
  import { CID } from "multiformats/cid";
11
+ import { sha512 } from "multiformats/hashes/sha2";
9
12
  import { peerIdFromString } from "@libp2p/peer-id";
10
- import { bitswap } from "@helia/block-brokers";
11
13
  import { createBlockstoreForLibp2pJsClient } from "../runtime/browser/blockstore.js";
12
14
  import { LruBlockstore } from "./lru-blockstore.js";
13
15
  import { delegatedRoutingV1HttpApiClientContentRouting } from "@helia/delegated-routing-v1-http-api-client";
14
16
  import { NotFoundError } from "@libp2p/interface";
15
17
  import { unixfs } from "@helia/unixfs";
16
18
  import { fetch as libp2pFetch } from "@libp2p/fetch";
17
- import { pubsub as createIpnsPubusubRouter } from "@helia/ipns/routing";
19
+ import { pubSubIPNSRouting as createIpnsPubusubRouter } from "@helia/ipns";
18
20
  import Logger from "../logger.js";
19
21
  import { EventEmitter } from "events";
20
22
  import { PKCError } from "../pkc-error.js";
21
23
  import { Libp2pJsClient } from "./libp2pjsClient.js";
22
- import { BITSWAP_SESSION_STALLED_GET_FAILOVER_MS, cacheIpnsRecordInPubsubLocalStore, connectToPubsubPeers, directFetchIpnsRecordFromProviders, fetchBlockWithStalledSessionFailover, getHeliaDebugContext, selectBitswapSessionSeedPeers } from "./util.js";
24
+ import { BITSWAP_SESSION_STALLED_GET_FAILOVER_MS, cacheIpnsRecordInPubsubLocalStore, readFreshCachedIpnsRecordFromPubsubLocalStore, connectToPubsubPeers, directFetchIpnsRecordFromProviders, fetchBlockWithStalledSessionFailover, getHeliaDebugContext, selectBitswapSessionSeedPeers } from "./util.js";
23
25
  import { createDefaultDialTransportGater } from "./dial-transport-filter.js";
24
26
  import { ipnsNameToIpnsOverPubsubTopic } from "../util.js";
25
27
  const log = Logger("pkc-js:libp2p-js");
@@ -84,6 +86,16 @@ function getDelegatedRoutingFields(routers) {
84
86
  }
85
87
  return routersObj;
86
88
  }
89
+ // @helia/ipns routers identify themselves through a literal toString() tag ("LocalStoreRouting()",
90
+ // "HeliaRouting()", "PubSubRouting()"). Use that, never `constructor.name`: the classes are
91
+ // module-private and bundlers mangle their names, which turned the old class-name filter into a
92
+ // silent no-op in production builds.
93
+ export function ipnsRouterTag(router) {
94
+ return String(router);
95
+ }
96
+ export function isLocalStoreIpnsRouter(router) {
97
+ return ipnsRouterTag(router) === "LocalStoreRouting()";
98
+ }
87
99
  export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
88
100
  if (!pkcOptions.httpRoutersOptions?.length)
89
101
  throw Error("You need to have pkc.httpRouterOptions to set up helia");
@@ -98,11 +110,16 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
98
110
  client.countOfUsesOfInstance++;
99
111
  return client;
100
112
  }
113
+ // Both are set from inside the factory so that the catch handler after it can tear down
114
+ // whatever got started when the wiring throws part-way through: until the client lands in
115
+ // libp2pJsClients nothing else holds a reference to the node, and a started-but-orphaned
116
+ // libp2p keeps gossipsub heartbeats, bitswap and open sockets alive past pkc.destroy().
117
+ let startedHelia;
118
+ let closeBlockstore = async () => { };
101
119
  creatingLibp2pJsClients[pkcOptions.key] = (async () => {
102
120
  // A caller supplying their own heliaOptions.blockstore owns block storage entirely, so skip
103
121
  // ours rather than opening a directory or IndexedDB database nothing will read.
104
122
  let lruBlockstore;
105
- let closeBlockstore = async () => { };
106
123
  if (!pkcOptions.heliaOptions?.blockstore) {
107
124
  const { blockstore: childBlockstore, persistent, defaultMaxBytes, close } = await createBlockstoreForLibp2pJsClient({
108
125
  dataPath: pkcOptions.dataPath,
@@ -165,17 +182,45 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
165
182
  // instance ever removes one, so an unbounded store grows for the life of the process.
166
183
  // See pkc-js#240 for the measurement behind the cap.
167
184
  blockstore: lruBlockstore,
168
- blockBrokers: [bitswap()],
169
- start: false,
170
185
  ...pkcOptions.heliaOptions
171
186
  };
172
- const helia = await createHelia(mergedHeliaInit);
173
- // Helia's default content routers are [Libp2pRouter, HTTPGatewayRouter]. We use our own
174
- // gateway-fan-out logic in base-client-manager, so the HTTP gateway router here is
175
- // redundant and adds latency. Filter by class name (not index) so a future helia release
176
- // that re-orders the array can't silently leave the gateway in or drop libp2p routing.
177
- //@ts-expect-error helia.routing.routers is internal
178
- helia.routing.routers = helia.routing.routers.filter((r) => r.constructor.name !== "HTTPGatewayRouter");
187
+ // helia 7's createHelia() composes withHTTP() in: a public trustless-gateway block broker
188
+ // plus public delegated HTTP routers and recursive gateways. We use our own gateway
189
+ // fan-out logic in base-client-manager and only the routers the user configured, so
190
+ // compose the node without any HTTP components (heliaOptions.http is excluded from the
191
+ // schema for that reason): bitswap is the only block broker and libp2p the only content
192
+ // router. withLibp2p applies libp2pDefaults with shallow per-key replace semantics (same
193
+ // as helia 6's createHelia): every key we set above wins outright (in particular our
194
+ // narrow `services` map fully replaces the default one), while keys we leave out
195
+ // (connectionEncrypters, streamMuxers, ...) come from helia's defaults.
196
+ //
197
+ // A caller-supplied heliaOptions.blockBrokers REPLACES bitswap, as it did under helia 6
198
+ // (`init.blockBrokers ?? [bitswap()]`): withBitswap() is additive, so applying it on top of
199
+ // the caller's list would hand a gateway-only/opt-out config bitswap sessions and dials anyway.
200
+ //
201
+ // createHeliaLight registers only sha2-256/identity and dag-pb/raw, where createHelia adds
202
+ // sha2-512 and the dag-cbor/dag-json/json codecs. pkc records are unixfs (dag-pb/raw) so
203
+ // the codecs are not needed, but nothing stops a community from publishing a sha2-512 CID
204
+ // (e.g. `ipfs add --hash sha2-512`) and helia looks the hasher up before the first block
205
+ // fetch, so keep sha2-512 to match what fetched under helia 6.
206
+ const { libp2p: mergedLibp2pInit, bitswap: bitswapInit, blockBrokers: callerBlockBrokers, ...heliaLightInit } = mergedHeliaInit;
207
+ const heliaWithLibp2p = withLibp2p(createHeliaLight({
208
+ ...heliaLightInit,
209
+ blockBrokers: callerBlockBrokers,
210
+ hashers: [sha512, ...(heliaLightInit.hashers ?? [])]
211
+ }), mergedLibp2pInit ?? {});
212
+ // The composition is typed as helia's default service map (dht, relay, upnp, ...) while our
213
+ // `services` above replaces it; HeliaWithLibp2pPubsub is the narrow map we actually run.
214
+ const helia = (callerBlockBrokers === undefined ? withBitswap(heliaWithLibp2p, bitswapInit) : heliaWithLibp2p);
215
+ // helia 7 creates libp2p lazily inside start() — the `helia.libp2p` getter throws
216
+ // NotStartedError until then — so start the node before wiring anything that reads it.
217
+ // Nothing can race the wiring below: no topic is subscribed and no dial is made until
218
+ // this factory returns the client.
219
+ // Assigned before start(): helia 7's start() has no rollback, so if a later mixin throws
220
+ // (e.g. bitswap's network.start() after withLibp2p already started libp2p) the node is
221
+ // half-started and must still be stopped by the catch below.
222
+ startedHelia = helia;
223
+ await helia.start();
179
224
  log("Initialized libp2pjs helia with key", pkcOptions.key, "peer id", helia.libp2p.peerId.toString());
180
225
  const pubsubEventHandler = new EventEmitter();
181
226
  helia.libp2p.services.pubsub.addEventListener("message", (evt) => {
@@ -185,10 +230,6 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
185
230
  pubsubEventHandler.emit(evt.detail.topic, msgFormatted);
186
231
  });
187
232
  const heliaFs = unixfs(helia);
188
- const asHeliaCatCid = (ipfsPathOrCid) => {
189
- CID.parse(ipfsPathOrCid.split("/")[0]); // validate the root CID; throws on malformed input
190
- return ipfsPathOrCid;
191
- };
192
233
  // Issue #189: without a session, every block fetched over bitswap fires its own
193
234
  // network.findAndConnect — a findProviders query against ALL configured HTTP routers per
194
235
  // block, plus stray dials to whatever providers it discovers mid-fetch. cat() therefore
@@ -272,20 +313,68 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
272
313
  signal.addEventListener("abort", onAbort, { once: true });
273
314
  });
274
315
  const ipnsPubsubRouter = createIpnsPubusubRouter(helia);
275
- // The router's localStore is where gossipsub-delivered records get cached (handleRecord).
276
- // It's declared private but is a plain class field at runtime; the direct-fetch path below
277
- // writes to it to keep the cached-record invariant (issue #210).
278
- const ipnsPubsubLocalStore = ipnsPubsubRouter.localStore;
279
316
  const ipnsNameResolver = ipns(helia, {
280
317
  routers: [ipnsPubsubRouter]
281
318
  });
282
- // @helia/ipns constructs routers as [LocalStoreRouting, HeliaRouting, ...userRouters].
283
- // We drop LocalStoreRouting because pkc-js never publishes IPNS via @helia/ipns (kubo
284
- // does that), so the local cache is always empty and just adds a wasted lookup. Keep
285
- // HeliaRouting (HTTP delegated routing via helia.routing.routers) and our PubSubRouting.
286
- // Filter by class name so a future @helia/ipns release that re-orders the array can't
287
- // silently drop our pubsub router.
288
- ipnsNameResolver.routers = ipnsNameResolver.routers.filter((r) => r?.constructor?.name !== "LocalStoreRouting");
319
+ // @helia/ipns constructs routers as [LocalStoreIPNSRouting, HeliaIPNSRouting, ...userRouters]
320
+ // and hands that SAME array to its resolver/publisher/republisher, so it must be mutated in
321
+ // place: reassigning `.routers` only changes what pkc's own loops below iterate, while
322
+ // ipnsNameResolver.resolve() keeps querying (and writing the local cache through) the
323
+ // original list. We drop LocalStoreIPNSRouting because its get() serves whatever the
324
+ // datastore holds with no ttl/EOL judgment of its own: the datastore is no longer empty
325
+ // (gossiped pushes and the issue #210 direct-fetch write land there), and cache reads must
326
+ // instead go through name.resolve's ttl-honoring cache gate (issue #301) so the network
327
+ // fallback loop below stays a NETWORK loop rather than short-circuiting on possibly-stale
328
+ // cache. Keep HeliaIPNSRouting (HTTP delegated routing via helia.routing) and our pubsub
329
+ // router. Match by the router's toString() tag ("LocalStoreRouting()") rather than by
330
+ // `constructor.name`: the class is module-private and bundlers mangle its name (in 5chan's
331
+ // production build it becomes `dMe`), so a class-name match is a silent no-op there. The
332
+ // tag is a string literal and survives minification. Matching by identity (rather than
333
+ // by index) also means a future @helia/ipns release that re-orders the array can't make
334
+ // us drop the wrong router.
335
+ for (let i = ipnsNameResolver.routers.length - 1; i >= 0; i--) {
336
+ if (isLocalStoreIpnsRouter(ipnsNameResolver.routers[i]))
337
+ ipnsNameResolver.routers.splice(i, 1);
338
+ }
339
+ // The IPNS facade marks itself started (and runs its hourly republisher) from helia's
340
+ // 'start' event, which helia 7 dispatches exactly once at the end of start(), i.e. before the
341
+ // facade existed (its constructor walks helia's components, whose `libp2p` getter throws
342
+ // until start(), so it cannot be built earlier). helia 6 fell back to
343
+ // `libp2p.status === 'started'` and so ran the republisher; that fallback is gone in 7.
344
+ // Nothing in pkc depends on the facade being "started" (resolve() has no started check and
345
+ // pkc walks `routers` directly), so this only keeps helia-6 lifecycle parity for the
346
+ // republisher. start() is on the class but not on the exported IPNS interface.
347
+ ipnsNameResolver.start?.();
348
+ // The router is Startable but neither helia.start() (blockstore/datastore/routing/brokers
349
+ // only) nor the IPNS facade (republisher only) starts user-supplied routers. Its start()
350
+ // registers the libp2p/fetch topology that fills `fetchPeers`, which gates the
351
+ // subscription-change fast path: fetch the record over /libp2p/fetch from a server that
352
+ // joins the topic after our get() already ran (ipfs/helia#906) and republish it to the
353
+ // topic. NOTE: this path is newly enabled here, not restored. Under helia 6 nothing ever
354
+ // called start() on this router either, so `fetchPeers` stayed empty and the fast path
355
+ // never fired. It is largely redundant with the direct fetch below (issue #210) but bounded
356
+ // (one fetch per subscription-change event, into the router's own queue); its republish
357
+ // goes through raw libp2p pubsub, not pkc's mesh-gated wrapper, so a `could not publish
358
+ // record` error line is possible when no mesh peer exists. stop() is mirrored in stop() below.
359
+ await ipnsPubsubRouter.start?.();
360
+ // The router's localStore is where gossipsub-delivered records get cached (handleRecord).
361
+ // It's declared private but is a plain class field at runtime; the direct-fetch path below
362
+ // writes to it to keep the cached-record invariant (issue #210), and the cache gate in
363
+ // name.resolve reads it to serve repeat resolves locally (issue #301).
364
+ const ipnsPubsubLocalStore = ipnsPubsubRouter.localStore;
365
+ // The router's message listener drops any gossiped record whose topic is not in this
366
+ // private Set, and upstream only populates it inside router.get() — which the direct-fetch
367
+ // fast path below never calls (and which, since @helia/ipns 10, skips the add when the
368
+ // topic is already libp2p-subscribed). name.resolve adds every IPNS topic it subscribes
369
+ // here as well, so pushed records actually reach handleRecord and the localStore
370
+ // (issue #301). Same structural-access pattern as localStore above.
371
+ const ipnsPubsubRouterSubscriptions = ipnsPubsubRouter.subscriptions;
372
+ // Per-topic time of the last NETWORK fetch that validated a record for that name. Feeds
373
+ // the cache gate's freshness check (issue #301): a refetch that returns bytes identical to
374
+ // the cache never refreshes the localStore's write time, so without this an idle name
375
+ // would re-fetch on every resolve once its record's ttl first expired. Bounded by the set
376
+ // of IPNS names this helia instance resolves (communities the app follows).
377
+ const ipnsRecordNetworkValidatedAtMs = new Map();
289
378
  // Side-channel awaitable warmup: gossipsub's pubsub.subscribe(topic) is sync and returns
290
379
  // void, so we can't make it awaitable without breaking @helia/ipns and other internal
291
380
  // callers that expect the sync contract. Instead, we expose `warmupForTopic(topic)` and
@@ -332,6 +421,34 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
332
421
  log.trace("Resolving ipns name", currentName, "with options", options);
333
422
  const ipnsPubsubTopic = ipnsNameToIpnsOverPubsubTopic(ipnsNameAsPeerId.toString());
334
423
  const routingKey = multihashToIPNSRoutingKey(ipnsNameAsPeerId.toMultihash());
424
+ // Cache gate (issue #301): once a name's topic is subscribed, gossiped
425
+ // records keep the localStore fresh (handleRecord, enabled by the
426
+ // subscriptions add below), so a repeat resolve is a local read while the
427
+ // cached record is inside its ttl window — not a fresh multi-peer fetch
428
+ // race per call. This is what turns the update loop's 1s cadence from
429
+ // ~150 fetch streams/s at 64 communities into pushes plus one
430
+ // revalidation per name per ttl. Gated on the topic being subscribed
431
+ // because freshness relies on the push channel this resolver set up on a
432
+ // previous call; nocache: true bypasses the cache entirely (explicit
433
+ // refresh, kubo semantics). A cache read failure must never fail the
434
+ // resolve, so any error falls through to the network path.
435
+ if (options?.nocache !== true && helia.libp2p.services.pubsub.getTopics().includes(ipnsPubsubTopic)) {
436
+ try {
437
+ const cachedRecord = await readFreshCachedIpnsRecordFromPubsubLocalStore({
438
+ localStore: ipnsPubsubLocalStore,
439
+ routingKey,
440
+ lastNetworkValidatedAtMs: ipnsRecordNetworkValidatedAtMs.get(ipnsPubsubTopic)
441
+ });
442
+ if (cachedRecord) {
443
+ log.trace("Serving IPNS record for", currentName, "from the routing-layer cache");
444
+ yield cachedRecord.value;
445
+ return;
446
+ }
447
+ }
448
+ catch (cacheErr) {
449
+ log.trace("Reading the cached IPNS record for", ipnsPubsubTopic, "failed, falling through to the network", cacheErr);
450
+ }
451
+ }
335
452
  let directFetchOutcome = { attempted: false };
336
453
  {
337
454
  // Subscribe so pushed record updates keep arriving (the legacy router.get() did
@@ -339,6 +456,13 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
339
456
  // future pushes; we do NOT await it — the direct fetch does not need the mesh.
340
457
  if (!helia.libp2p.services.pubsub.getTopics().includes(ipnsPubsubTopic))
341
458
  helia.libp2p.services.pubsub.subscribe(ipnsPubsubTopic);
459
+ // Also register the topic with the pubsub router (issue #301): without
460
+ // this, its message listener drops every gossiped record for the topic
461
+ // and the subscription above only ever feeds the mesh, not the cache.
462
+ // Idempotent, and also heals topics first subscribed via the fallback
463
+ // router.get() (which since @helia/ipns 10 skips this add when the
464
+ // topic is already libp2p-subscribed).
465
+ ipnsPubsubRouterSubscriptions.add(ipnsPubsubTopic);
342
466
  void warmupForTopic(ipnsPubsubTopic, options).catch((e) => log.trace("Fire-and-forget warmup failed for", ipnsPubsubTopic, e));
343
467
  const directStart = Date.now();
344
468
  try {
@@ -362,6 +486,12 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
362
486
  // Record already validated inside the helper — unmarshal directly,
363
487
  // do NOT re-run ipnsValidator.
364
488
  const record = unmarshalIPNSRecord(direct.recordBytes);
489
+ // Stamp the network validation time for the cache gate even when
490
+ // the fetched bytes turn out identical to the cache (issue #301):
491
+ // identical bytes never refresh the localStore's write time, so
492
+ // this stamp is what lets an idle name serve from cache for
493
+ // another ttl window after a revalidation.
494
+ ipnsRecordNetworkValidatedAtMs.set(ipnsPubsubTopic, Date.now());
365
495
  // Direct fetch bypasses the pubsub router's handleRecord, which is
366
496
  // where gossipsub-delivered records get cached at the routing layer.
367
497
  // Persist the record there ourselves (newer-only, issue #210) so
@@ -427,32 +557,28 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
427
557
  // See docs/protocol/delegated-ipns.md.
428
558
  //
429
559
  // Why call routers directly instead of ipnsNameResolver.resolve():
430
- // - @helia/ipns 9.2.x has no public single-hop / non-recursive resolve API.
431
- // resolve() always recurses until it reaches an /ipfs/ value, and its single-hop
432
- // primitive (#findIpnsRecord) is private so the router layer is the only public
433
- // way to fetch exactly one record.
434
- // - resolve()'s ResolveProgressEvents type declares ipns:resolve:success (carrying
435
- // the per-hop IPNSRecord), but those events are never emitted in 9.2.x — only
436
- // routing-level events fire, none carrying a record value or next-hop name. So an
437
- // onProgress listener cannot reconstruct the hop chain either. Empirically pinned
438
- // in test/node/community/helia-ipns-resolve-equivalence.unit.test.ts.
439
- // Upstream main has since reworked resolve() into an async generator that yields each
440
- // hop's IPNSRecord (ipfs/helia#1041) — that would replace this manual walk and even let
441
- // us warm each pubsub topic between yields but it's unreleased; npm latest 9.2.1 still
442
- // collapses the chain to the terminal CID. So the per-hop walk stays for now.
443
- // TODO: after the @helia/ipns upgrade, re-check this — once the generator resolve() is
444
- // released, replace this router.get + ipnsValidator loop with
445
- // `for await (const { record } of ipnsNameResolver.resolve(...))`.
446
- // This does NOT bypass an active cache/TTL: all cache-read + TTL logic lives in the
447
- // resolver's #findIpnsRecord and is gated on `nocache !== true`, but pkc always
448
- // resolves IPNS with nocache:true (see resolveIpnsToCidP2P in base-client-manager),
449
- // so that path is inert — the old resolve()-based code skipped it too. IPNS here is
450
- // pubsub-only (HTTP routers have getIPNS disabled in getDelegatedRoutingFields), and
451
- // the pubsub router's get() never serves from cache; it always queries peers. Record
452
- // caching + ipnsSelector happen inside the pubsub router's handleRecord for
453
- // gossipsub-delivered records and router.get() fetches; the direct-fetch fast path
454
- // above bypasses handleRecord, so it writes the record to the router's localStore
455
- // itself (cacheIpnsRecordInPubsubLocalStore, issue #210).
560
+ // @helia/ipns 10 reworked resolve() into an async generator that yields one
561
+ // IPNSResolveResult per hop (ipfs/helia#1041), so a single-hop read is now
562
+ // technically reachable by taking the first yield. The per-hop walk stays anyway:
563
+ // - the direct-fetch fast path above (libp2p/fetch from subscribers + freshly
564
+ // discovered providers, with the issue #210 cache write) has no equivalent
565
+ // inside resolve();
566
+ // - per-hop pubsub warmup has to happen BEFORE that hop's record is requested, and
567
+ // resolve() requests the next hop's record internally as soon as it yields;
568
+ // - per-router error aggregation below is what the tests and callers report on.
569
+ // Equivalence of the resolved value with resolve() is pinned in
570
+ // test/node/community/helia-ipns-resolve-equivalence.unit.test.ts.
571
+ // This does NOT bypass an active cache/TTL: the cache gate at the top of this
572
+ // generator (issue #301) is the cache read for this resolver, honoring
573
+ // `nocache !== true` and the record's ttl the way @helia/ipns' #findIpnsRecord
574
+ // would. IPNS here is pubsub-only (HTTP routers have getIPNS disabled in
575
+ // getDelegatedRoutingFields), and the pubsub router's get() never serves from
576
+ // cache; it always queries peers. Record caching + ipnsSelector happen inside the
577
+ // pubsub router's handleRecord for gossipsub-delivered records (reachable because
578
+ // the fast path registers each topic in the router's subscriptions Set) and
579
+ // router.get() fetches; the direct-fetch fast path above bypasses handleRecord, so
580
+ // it writes the record to the router's localStore itself
581
+ // (cacheIpnsRecordInPubsubLocalStore, issue #210).
456
582
  let recordBytes;
457
583
  const routerErrors = [];
458
584
  for (const router of ipnsNameResolver.routers) {
@@ -486,6 +612,8 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
486
612
  // Validate the record's signature against its routing key before trusting its value.
487
613
  await ipnsValidator(routingKey, recordBytes);
488
614
  const record = unmarshalIPNSRecord(recordBytes);
615
+ // Same freshness stamp as the direct-fetch hit above (issue #301).
616
+ ipnsRecordNetworkValidatedAtMs.set(ipnsPubsubTopic, Date.now());
489
617
  yield record.value;
490
618
  }
491
619
  return generator();
@@ -497,7 +625,13 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
497
625
  // see MAX_BITSWAP_SESSION_SEED_PEERS above for the why. UnixFSComponents only
498
626
  // needs a blockstore, and blocks fetched through the session land in the same
499
627
  // underlying blockstore helia uses, so nothing else changes.
500
- const rootCid = CID.parse(ipfsPath.split("/")[0]);
628
+ // ipfsPath is either a bare cid or a `<root-cid>/sub/path`; derive both parts here, once,
629
+ // so root and sub-path can never disagree. unixfs cat takes the root CID plus the sub-path
630
+ // via the `path` option. (The multiformats 13/14 split that used to force string-only cat
631
+ // input is gone: helia 7 and our tree share a single multiformats copy.)
632
+ const [rootCidString, ...ipfsSubPathSegments] = ipfsPath.split("/");
633
+ const rootCid = CID.parse(rootCidString);
634
+ const ipfsSubPath = ipfsSubPathSegments.length > 0 ? ipfsSubPathSegments.join("/") : undefined;
501
635
  const timeoutMs = parseKuboStyleTimeoutMs(options?.timeout); // throws on unparseable timeout at call time
502
636
  // Our own option, not kubo-rpc-client's — strip it so it never reaches unixfs cat.
503
637
  const { bitswapSessionSeedScopeIpnsPubsubTopic, ...unixfsCatOptions } = options ?? {};
@@ -520,7 +654,8 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
520
654
  try {
521
655
  for (let attempt = 0;; attempt++) {
522
656
  const session = helia.blockstore.createSession(rootCid, {
523
- providers: getBitswapSessionSeedPeers(bitswapSessionSeedScopeIpnsPubsubTopic)
657
+ // helia 7 sessions take providers as libp2p-key CIDs (or multiaddrs), not PeerIds
658
+ providers: getBitswapSessionSeedPeers(bitswapSessionSeedScopeIpnsPubsubTopic).map((peerId) => peerId.toCID())
524
659
  });
525
660
  // Issue #218: the session broker waits on a single elected HAVE peer per
526
661
  // block with no stall timeout, so one slow seeder holding the only HAVE
@@ -542,12 +677,9 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
542
677
  });
543
678
  let yieldedAnyBytes = false;
544
679
  try {
545
- // ipfsPath is either a bare cid or a `<root-cid>/sub/path`. Hand the whole
546
- // thing to cat as one string and never split out a `path` option — see
547
- // asHeliaCatCid above for why the `path` option would re-trip the
548
- // exporter's CID identity check.
549
- const catIterable = unixfs({ blockstore: session }).cat(asHeliaCatCid(ipfsPath), {
680
+ const catIterable = unixfs({ blockstore: session }).cat(rootCid, {
550
681
  ...unixfsCatOptions,
682
+ path: ipfsSubPath,
551
683
  signal: controller.signal
552
684
  });
553
685
  for await (const chunk of catIterable) {
@@ -664,8 +796,8 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
664
796
  // createLibp2pJsClientOrUseExistingOne() can't grab a mid-stopping client.
665
797
  delete libp2pJsClients[pkcOptions.key];
666
798
  // Tear down the IPNS pubsub router's internal subscription state.
667
- // PubSubRouting (from @helia/ipns/routing) implements Startable and tracks its
668
- // own subscriptions list — without stop() those subscriptions leak past helia.
799
+ // PubSubIPNSRouting (@helia/ipns) implements Startable and tracks its own
800
+ // subscriptions list and fetch topology — without stop() those leak past helia.
669
801
  for (const router of ipnsNameResolver.routers) {
670
802
  const lifecycle = router;
671
803
  if (typeof lifecycle.stop === "function") {
@@ -673,7 +805,7 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
673
805
  await lifecycle.stop();
674
806
  }
675
807
  catch (e) {
676
- log.error("Error stopping IPNS router", router?.constructor?.name, e);
808
+ log.error("Error stopping IPNS router", ipnsRouterTag(router), e);
677
809
  }
678
810
  }
679
811
  }
@@ -735,11 +867,43 @@ export async function createLibp2pJsClientOrUseExistingOne(pkcOptions) {
735
867
  key: pkcOptions.key
736
868
  };
737
869
  const client = new Libp2pJsClient(fullInstanceWithOptions);
738
- await helia.start();
739
870
  log("Helia/libp2p-js started with key", pkcOptions.key, "and peer id", helia.libp2p.peerId.toString());
740
871
  libp2pJsClients[pkcOptions.key] = client;
741
872
  return client;
742
- })();
873
+ })().catch(async (creationError) => {
874
+ // The client never reached libp2pJsClients, so stop() can't be called on it: release
875
+ // whatever this factory started before rethrowing (mirrors the final-release path in stop()).
876
+ if (startedHelia) {
877
+ // The `libp2p` getter throws NotStartedError if start() failed before the libp2p mixin
878
+ // ran, in which case there is nothing to abort.
879
+ let connections = [];
880
+ try {
881
+ connections = startedHelia.libp2p.getConnections();
882
+ }
883
+ catch { }
884
+ for (const connection of connections) {
885
+ try {
886
+ connection.abort(new Error("pkc-js libp2p instance failed to initialize"));
887
+ }
888
+ catch (e) {
889
+ log.error("Error aborting libp2p connection during failed initialization", e);
890
+ }
891
+ }
892
+ try {
893
+ await startedHelia.stop();
894
+ }
895
+ catch (e) {
896
+ log.error("Error stopping helia after failed initialization", e);
897
+ }
898
+ }
899
+ try {
900
+ await closeBlockstore();
901
+ }
902
+ catch (e) {
903
+ log.error("Error closing blockstore after failed initialization", e);
904
+ }
905
+ throw creationError;
906
+ });
743
907
  const createdClientPromise = creatingLibp2pJsClients[pkcOptions.key];
744
908
  if (!createdClientPromise)
745
909
  throw new Error("Missing creation promise after initialization");
@@ -1 +1 @@
1
- {"version":3,"file":"helia-for-pkc.js","sourceRoot":"","sources":["../../../src/helia/helia-for-pkc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helia-for-pkc.js","sourceRoot":"","sources":["../../../src/helia/helia-for-pkc.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export declare class Libp2pJsClient {
19
19
  _heliaIpnsRouter: ReturnType<typeof ipns>;
20
20
  heliaWithKuboRpcClientFunctions: HeliaWithKuboRpcClientFunctions;
21
21
  _libp2pJsClientsOptions: NonNullable<ParsedPKCOptions["libp2pJsClientsOptions"]>[number];
22
- _mergedHeliaOptions: Parameters<typeof createHelia>[0];
22
+ _mergedHeliaOptions: Omit<NonNullable<Parameters<typeof createHelia>[0]>, "http"> | undefined;
23
23
  key: Libp2pJsClientInit["key"];
24
24
  countOfUsesOfInstance: number;
25
25
  /**
@@ -1,12 +1,12 @@
1
- import type { AbortOptions, AwaitIterable } from "interface-store";
1
+ import type { AbortOptions } from "@libp2p/interface";
2
+ type AwaitIterable<T> = Iterable<T> | AsyncIterable<T>;
2
3
  /**
3
- * The dependency tree contains more than one copy of multiformats (helia 6's internals are still on
4
- * 13 while our tree is on 14), and blockstore-core ships its own nested interface-blockstore. A CID
5
- * handed to us by helia is therefore not the same class as a CID we construct, and the packages'
6
- * `Blockstore`/`Pair` types are not mutually assignable.
7
- *
8
- * This wrapper sidesteps all of it by typing structurally: the only thing it ever needs from a CID
9
- * is the multihash bytes, and every backend we use (blockstore-core, blockstore-fs, blockstore-idb)
4
+ * The dependency tree has historically carried more than one copy of multiformats (helia 6's
5
+ * internals were on 13 while our tree was on 14) and of interface-blockstore, making a CID handed
6
+ * to us by helia a different class from a CID we construct, and the packages' `Blockstore`/`Pair`
7
+ * types not mutually assignable. helia 7 unified the copies, but the wrapper keeps typing
8
+ * structurally so a future skew can't break it: the only thing it ever needs from a CID is the
9
+ * multihash bytes, and every backend we use (blockstore-core, blockstore-fs, blockstore-idb)
10
10
  * addresses blocks by exactly those bytes and ignores the codec.
11
11
  */
12
12
  export interface BlockstoreCid {
@@ -90,3 +90,4 @@ export declare class LruBlockstore {
90
90
  bytes: number;
91
91
  }>;
92
92
  }
93
+ export {};