@pkcprotocol/pkc-js 0.0.71 → 0.0.72

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 (26) hide show
  1. package/README.md +23 -0
  2. package/dist/browser/clients/base-client-manager.d.ts +1 -1
  3. package/dist/browser/generated-version.d.ts +1 -1
  4. package/dist/browser/generated-version.js +1 -1
  5. package/dist/browser/helia/libp2pjsClient.d.ts +14 -0
  6. package/dist/browser/helia/libp2pjsClient.js +16 -0
  7. package/dist/browser/helia/libp2pjsClient.js.map +1 -1
  8. package/dist/browser/index.d.ts +2 -0
  9. package/dist/bundled/bundle-manifest.json +31 -31
  10. package/dist/bundled/chunks/{helia-for-pkc-1MPTFE4q.js → helia-for-pkc-BcZhGLB0.js} +18 -2
  11. package/dist/bundled/chunks/{local-community-Cx4YtD1b.js → local-community-Cd5HOxwM.js} +1 -1
  12. package/dist/bundled/chunks/{local-community-C6C5HbTj.js → local-community-DWf7A4hj.js} +2 -2
  13. package/dist/bundled/chunks/{node-CZvWHsjY.js → node-sP-twQPW.js} +5 -5
  14. package/dist/bundled/chunks/{rpc-local-community-BNjtTCYn.js → rpc-local-community-ZxNkZCBr.js} +1 -1
  15. package/dist/bundled/chunks/{schema-DmKOov5l.js → schema-B3duXSG7.js} +1 -1
  16. package/dist/bundled/chunks/{util-tvFNztkO.js → util-DOWWxZIE.js} +1 -1
  17. package/dist/bundled/index.js +1 -1
  18. package/dist/bundled/rpc/src/index.js +4 -4
  19. package/dist/node/clients/base-client-manager.d.ts +1 -1
  20. package/dist/node/generated-version.d.ts +1 -1
  21. package/dist/node/generated-version.js +1 -1
  22. package/dist/node/helia/libp2pjsClient.d.ts +14 -0
  23. package/dist/node/helia/libp2pjsClient.js +16 -0
  24. package/dist/node/helia/libp2pjsClient.js.map +1 -1
  25. package/dist/node/index.d.ts +2 -0
  26. package/package.json +1 -1
package/README.md CHANGED
@@ -583,6 +583,29 @@ process.on('uncaughtException', (err) => console.error(err))
583
583
 
584
584
  Attaching an `'error'` listener directly on a `community`, `comment`, or other publication object stops the bubble-up: in that case the error stays on the child and is not re-emitted on the pkc instance.
585
585
 
586
+ ### `pkc.clients.libp2pJsClients[key].heliaNode`
587
+
588
+ > When the instance runs an in-process libp2p/Helia node (`libp2pJsClientsOptions`), `heliaNode` returns the running [Helia](https://github.com/ipfs/helia) node so libraries that share the node (e.g. [@bitsocial/pubsub-voting](https://github.com/bitsocialnet/pubsub-voting), [bitsocial-seeder](https://github.com/bitsocialnet/bitsocial-seeder)) can drive it directly. This accessor is the public, semver-covered surface for reaching the node — a breaking change to what it returns is a breaking pkc-js release. Do not reach through the private `_helia` field.
589
+
590
+ The returned node is guaranteed to carry, in addition to Helia's own surface:
591
+
592
+ | Surface | Description |
593
+ | -------- | -------- |
594
+ | `libp2p.services.pubsub` | The [gossipsub](https://github.com/ChainSafe/js-libp2p-gossipsub) service registered at node construction |
595
+ | `libp2p.services.fetch` | The [`@libp2p/fetch`](https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-fetch) service registered at node construction |
596
+ | `blockstore` | The node's block storage (bitswap-backed retrieval) |
597
+ | `libp2p.contentRouting` | The delegated-routing aggregation over `httpRoutersOptions` |
598
+
599
+ The accessor's return type is exported from the root entry as `HeliaWithLibp2pPubsub`, and the client's type as `Libp2pJsClient`.
600
+
601
+ #### Example
602
+
603
+ ```js
604
+ const pkc = await PKC({ libp2pJsClientsOptions: [{ key: 'main' }], httpRoutersOptions: ['https://peers.pleb.bot'] })
605
+ const helia = pkc.clients.libp2pJsClients['main'].heliaNode
606
+ helia.libp2p.services.pubsub.subscribe('my-topic')
607
+ ```
608
+
586
609
  ### `pkc.getMultisub(multisubAddress)` *(not yet implemented)*
587
610
 
588
611
  > Get a multisub by its `Address`. A multisub is a list of communities curated by the creator of the multisub. E.g. `'pkc.bso/#/m/john.bso'` would display a feed of the multisub communities curated by `'john.bso'` (multisub `Address` `'john.bso'`).
@@ -38,7 +38,7 @@ export declare class BaseClientsManager {
38
38
  pubsubProviderSubscriptions: Record<string, string[]>;
39
39
  constructor(pkc: PKC);
40
40
  toJSON(): undefined;
41
- getDefaultPubsubKuboRpcClientOrHelia(): import("../types.js").PubsubClient | import("../helia/libp2pjsClient.js").Libp2pJsClient;
41
+ getDefaultPubsubKuboRpcClientOrHelia(): import("../types.js").PubsubClient | import("../index.js").Libp2pJsClient;
42
42
  getDefaultKuboRpcClientOrHelia(): PKC["clients"]["kuboRpcClients"][string] | PKC["clients"]["libp2pJsClients"][string];
43
43
  getDefaultKuboRpcClient(): import("../types.js").KuboRpcClient;
44
44
  getDefaultKuboPubsubClient(): import("../types.js").PubsubClient;
@@ -1 +1 @@
1
- export declare const version = "0.0.71";
1
+ export declare const version = "0.0.72";
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by config/generate-version.js — do not edit
2
- export const version = "0.0.71";
2
+ export const version = "0.0.72";
3
3
  //# sourceMappingURL=generated-version.js.map
@@ -22,6 +22,20 @@ export declare class Libp2pJsClient {
22
22
  _mergedHeliaOptions: Parameters<typeof createHelia>[0];
23
23
  key: Libp2pJsClientInit["key"];
24
24
  countOfUsesOfInstance: number;
25
+ /**
26
+ * The running Helia node backing this libp2p-js client — the public, semver-covered way for
27
+ * consumers that share the node (e.g. @bitsocial/pubsub-voting, bitsocial-seeder) to reach it,
28
+ * instead of the private `_helia` field (issue #221).
29
+ *
30
+ * The returned node is guaranteed to carry, in addition to Helia's own surface:
31
+ * - `libp2p.services.pubsub` — the gossipsub service registered at node construction
32
+ * - `libp2p.services.fetch` — the `@libp2p/fetch` service registered at node construction
33
+ * - `blockstore` — the node's block storage (bitswap-backed retrieval)
34
+ * - `libp2p.contentRouting` — the delegated-routing aggregation over `httpRoutersOptions`
35
+ *
36
+ * A breaking change to what this accessor returns is a breaking pkc-js release.
37
+ */
38
+ get heliaNode(): HeliaWithLibp2pPubsub;
25
39
  constructor(libp2pJsClientOptions: Libp2pJsClientInit);
26
40
  }
27
41
  export {};
@@ -1,5 +1,21 @@
1
1
  import { hideClassPrivateProps } from "../util.js";
2
2
  export class Libp2pJsClient {
3
+ /**
4
+ * The running Helia node backing this libp2p-js client — the public, semver-covered way for
5
+ * consumers that share the node (e.g. @bitsocial/pubsub-voting, bitsocial-seeder) to reach it,
6
+ * instead of the private `_helia` field (issue #221).
7
+ *
8
+ * The returned node is guaranteed to carry, in addition to Helia's own surface:
9
+ * - `libp2p.services.pubsub` — the gossipsub service registered at node construction
10
+ * - `libp2p.services.fetch` — the `@libp2p/fetch` service registered at node construction
11
+ * - `blockstore` — the node's block storage (bitswap-backed retrieval)
12
+ * - `libp2p.contentRouting` — the delegated-routing aggregation over `httpRoutersOptions`
13
+ *
14
+ * A breaking change to what this accessor returns is a breaking pkc-js release.
15
+ */
16
+ get heliaNode() {
17
+ return this._helia;
18
+ }
3
19
  constructor(libp2pJsClientOptions) {
4
20
  this._helia = libp2pJsClientOptions.helia;
5
21
  this._heliaUnixfs = libp2pJsClientOptions.heliaUnixfs;
@@ -1 +1 @@
1
- {"version":3,"file":"libp2pjsClient.js","sourceRoot":"","sources":["../../../src/helia/libp2pjsClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,OAAO,cAAc;IAUvB,YAAY,qBAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,+BAA+B,GAAG,qBAAqB,CAAC,+BAA+B,CAAC;QAC7F,IAAI,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC;QACpE,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,qBAAqB,CAAC;QAEzE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ"}
1
+ {"version":3,"file":"libp2pjsClient.js","sourceRoot":"","sources":["../../../src/helia/libp2pjsClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,OAAO,cAAc;IAUvB;;;;;;;;;;;;OAYG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,YAAY,qBAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,+BAA+B,GAAG,qBAAqB,CAAC,+BAA+B,CAAC;QAC7F,IAAI,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC;QACpE,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,qBAAqB,CAAC;QAEzE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ"}
@@ -256,3 +256,5 @@ export declare const challenges: Record<string, import("zod/v4/core").$InferInne
256
256
  }, import("zod/v4/core").$strict>>>;
257
257
  export type { NameResolverInterface } from "./schema.js";
258
258
  export type { NameResolver } from "./types.js";
259
+ export type { Libp2pJsClient } from "./helia/libp2pjsClient.js";
260
+ export type { HeliaWithLibp2pPubsub } from "./helia/types.js";
@@ -14,7 +14,7 @@
14
14
  "node:module"
15
15
  ],
16
16
  "dynamicImports": [
17
- "chunks/node-CZvWHsjY.js"
17
+ "chunks/node-sP-twQPW.js"
18
18
  ],
19
19
  "inputs": [
20
20
  "dist/node/runtime/node/compile-cache.js",
@@ -24,7 +24,7 @@
24
24
  "index.js": {
25
25
  "isEntry": true,
26
26
  "imports": [
27
- "chunks/node-CZvWHsjY.js"
27
+ "chunks/node-sP-twQPW.js"
28
28
  ],
29
29
  "dynamicImports": [],
30
30
  "inputs": []
@@ -32,10 +32,10 @@
32
32
  "rpc/src/index.js": {
33
33
  "isEntry": true,
34
34
  "imports": [
35
- "chunks/rpc-local-community-BNjtTCYn.js",
36
- "chunks/node-CZvWHsjY.js",
37
- "chunks/schema-DmKOov5l.js",
38
- "chunks/local-community-C6C5HbTj.js",
35
+ "chunks/rpc-local-community-ZxNkZCBr.js",
36
+ "chunks/node-sP-twQPW.js",
37
+ "chunks/schema-B3duXSG7.js",
38
+ "chunks/local-community-DWf7A4hj.js",
39
39
  "node:url",
40
40
  "path",
41
41
  "assert",
@@ -64,11 +64,11 @@
64
64
  "\u0000rolldown/runtime.js"
65
65
  ]
66
66
  },
67
- "chunks/helia-for-pkc-1MPTFE4q.js": {
67
+ "chunks/helia-for-pkc-BcZhGLB0.js": {
68
68
  "isEntry": false,
69
69
  "imports": [
70
- "chunks/schema-DmKOov5l.js",
71
- "chunks/util-tvFNztkO.js",
70
+ "chunks/schema-B3duXSG7.js",
71
+ "chunks/util-DOWWxZIE.js",
72
72
  "multiformats/cid",
73
73
  "@libp2p/peer-id",
74
74
  "events",
@@ -94,12 +94,20 @@
94
94
  "dist/node/helia/helia-for-pkc.js"
95
95
  ]
96
96
  },
97
- "chunks/local-community-C6C5HbTj.js": {
97
+ "chunks/local-community-Cd5HOxwM.js": {
98
+ "isEntry": false,
99
+ "imports": [
100
+ "chunks/local-community-DWf7A4hj.js"
101
+ ],
102
+ "dynamicImports": [],
103
+ "inputs": []
104
+ },
105
+ "chunks/local-community-DWf7A4hj.js": {
98
106
  "isEntry": false,
99
107
  "imports": [
100
108
  "chunks/chunk-2rV9d50f.js",
101
- "chunks/rpc-local-community-BNjtTCYn.js",
102
- "chunks/schema-DmKOov5l.js",
109
+ "chunks/rpc-local-community-ZxNkZCBr.js",
110
+ "chunks/schema-B3duXSG7.js",
103
111
  "node:crypto",
104
112
  "node:url",
105
113
  "node:path",
@@ -152,21 +160,13 @@
152
160
  "dist/node/runtime/node/community/local-community.js"
153
161
  ]
154
162
  },
155
- "chunks/local-community-Cx4YtD1b.js": {
156
- "isEntry": false,
157
- "imports": [
158
- "chunks/local-community-C6C5HbTj.js"
159
- ],
160
- "dynamicImports": [],
161
- "inputs": []
162
- },
163
- "chunks/node-CZvWHsjY.js": {
163
+ "chunks/node-sP-twQPW.js": {
164
164
  "isEntry": false,
165
165
  "imports": [
166
166
  "chunks/chunk-2rV9d50f.js",
167
- "chunks/rpc-local-community-BNjtTCYn.js",
168
- "chunks/schema-DmKOov5l.js",
169
- "chunks/util-tvFNztkO.js",
167
+ "chunks/rpc-local-community-ZxNkZCBr.js",
168
+ "chunks/schema-B3duXSG7.js",
169
+ "chunks/util-DOWWxZIE.js",
170
170
  "path",
171
171
  "assert",
172
172
  "fs",
@@ -177,8 +177,8 @@
177
177
  "rpc-websockets"
178
178
  ],
179
179
  "dynamicImports": [
180
- "chunks/helia-for-pkc-1MPTFE4q.js",
181
- "chunks/local-community-C6C5HbTj.js"
180
+ "chunks/helia-for-pkc-BcZhGLB0.js",
181
+ "chunks/local-community-DWf7A4hj.js"
182
182
  ],
183
183
  "inputs": [
184
184
  "node_modules/zod/v4/locales/en.js",
@@ -231,11 +231,11 @@
231
231
  "dist/node/index.js"
232
232
  ]
233
233
  },
234
- "chunks/rpc-local-community-BNjtTCYn.js": {
234
+ "chunks/rpc-local-community-ZxNkZCBr.js": {
235
235
  "isEntry": false,
236
236
  "imports": [
237
237
  "chunks/chunk-2rV9d50f.js",
238
- "chunks/schema-DmKOov5l.js",
238
+ "chunks/schema-B3duXSG7.js",
239
239
  "chunks/src-CYIMjhjK.js",
240
240
  "node:http",
241
241
  "node:crypto",
@@ -791,7 +791,7 @@
791
791
  "dist/node/community/rpc-local-community.js"
792
792
  ]
793
793
  },
794
- "chunks/schema-DmKOov5l.js": {
794
+ "chunks/schema-B3duXSG7.js": {
795
795
  "isEntry": false,
796
796
  "imports": [
797
797
  "chunks/chunk-2rV9d50f.js",
@@ -1228,10 +1228,10 @@
1228
1228
  "node_modules/ipfs-unixfs-importer/dist/src/index.js"
1229
1229
  ]
1230
1230
  },
1231
- "chunks/util-tvFNztkO.js": {
1231
+ "chunks/util-DOWWxZIE.js": {
1232
1232
  "isEntry": false,
1233
1233
  "imports": [
1234
- "chunks/schema-DmKOov5l.js",
1234
+ "chunks/schema-B3duXSG7.js",
1235
1235
  "ipns/selector",
1236
1236
  "uint8arrays/equals"
1237
1237
  ],
@@ -1,5 +1,5 @@
1
- import { L as hideClassPrivateProps, R as ipnsNameToIpnsOverPubsubTopic, _r as PKCError, yr as logger_default } from "./schema-DmKOov5l.js";
2
- import { a as fetchBlockWithStalledSessionFailover, i as directFetchIpnsRecordFromProviders, n as cacheIpnsRecordInPubsubLocalStore, o as getHeliaDebugContext, r as connectToPubsubPeers, s as selectBitswapSessionSeedPeers } from "./util-tvFNztkO.js";
1
+ import { L as hideClassPrivateProps, R as ipnsNameToIpnsOverPubsubTopic, _r as PKCError, yr as logger_default } from "./schema-B3duXSG7.js";
2
+ import { a as fetchBlockWithStalledSessionFailover, i as directFetchIpnsRecordFromProviders, n as cacheIpnsRecordInPubsubLocalStore, o as getHeliaDebugContext, r as connectToPubsubPeers, s as selectBitswapSessionSeedPeers } from "./util-DOWWxZIE.js";
3
3
  import { CID } from "multiformats/cid";
4
4
  import { peerIdFromString } from "@libp2p/peer-id";
5
5
  import { EventEmitter as EventEmitter$1 } from "events";
@@ -21,6 +21,22 @@ const extraLibp2pTransports = [];
21
21
  //#endregion
22
22
  //#region dist/node/helia/libp2pjsClient.js
23
23
  var Libp2pJsClient = class {
24
+ /**
25
+ * The running Helia node backing this libp2p-js client — the public, semver-covered way for
26
+ * consumers that share the node (e.g. @bitsocial/pubsub-voting, bitsocial-seeder) to reach it,
27
+ * instead of the private `_helia` field (issue #221).
28
+ *
29
+ * The returned node is guaranteed to carry, in addition to Helia's own surface:
30
+ * - `libp2p.services.pubsub` — the gossipsub service registered at node construction
31
+ * - `libp2p.services.fetch` — the `@libp2p/fetch` service registered at node construction
32
+ * - `blockstore` — the node's block storage (bitswap-backed retrieval)
33
+ * - `libp2p.contentRouting` — the delegated-routing aggregation over `httpRoutersOptions`
34
+ *
35
+ * A breaking change to what this accessor returns is a breaking pkc-js release.
36
+ */
37
+ get heliaNode() {
38
+ return this._helia;
39
+ }
24
40
  constructor(libp2pJsClientOptions) {
25
41
  this._helia = libp2pJsClientOptions.helia;
26
42
  this._heliaUnixfs = libp2pJsClientOptions.heliaUnixfs;
@@ -1,2 +1,2 @@
1
- import { n as createNewLocalCommunityDb, r as updateInstancePropsWithStartedCommunityOrDb, t as LocalCommunity } from "./local-community-C6C5HbTj.js";
1
+ import { n as createNewLocalCommunityDb, r as updateInstancePropsWithStartedCommunityOrDb, t as LocalCommunity } from "./local-community-DWf7A4hj.js";
2
2
  export { LocalCommunity, createNewLocalCommunityDb, updateInstancePropsWithStartedCommunityOrDb };
@@ -1,6 +1,6 @@
1
1
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
2
- import { $ as pubsubTopicToDhtKey, $n as t$7, At as trackStartedCommunity, Bt as CommunityEditPublicationPubsubReservedFields, C as contentContainsMarkdownAudio, Ct as findUpdatingCommunity, En as CommentUpdateSchema, F as getIpnsRecordInLocalKuboNode, Fn as CommentEditPubsubMessagePublicationSchema, Ft as untrackUpdatingCommunity, G as isLinkOfAudio, Gt as CommentModerationPubsubMessagePublicationSchema, In as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema, It as require_sha256, J as isLinkOfVideo, Jt as CommentModerationsTableRowSchema, K as isLinkOfImage, Kt as CommentModerationReservedFields, L as hideClassPrivateProps, Ln as CommentEditReservedFields, M as genToArray, Mr as ZodError, Mt as trackUpdatingCommunity, N as getEquivalentCommunityAddresses, Nt as untrackStartedCommunity, O as derivePublicationFromChallengeRequest, On as CommentUpdateTableRowSchema, P as getErrorCodeFromMessage, Q as isStringDomain, Qn as n$3, R as ipnsNameToIpnsOverPubsubTopic, Rt as pTimeout, S as calculateStringSizeSameAsIpfsAddCidV0, T as contentContainsMarkdownVideos, Un as AuthorReservedFields, W as isLinkOfAnimatedImage, Xn as n$4, Y as isLinkValid, Zn as t$8, _r as PKCError, _t as timestamp, a as ChallengeRequestMessageSchema, ar as t$4, at as removeNullUndefinedValues, b as areEquivalentCommunityAddresses, bt as findCommunityInRegistry, cr as t$5, d as DecryptedChallengeRequestSchema, dr as require_retry, dt as retryKuboIpfsAddAndProvide, er as t$6, fn as VotePubsubMessagePublicationSchema, hn as VoteTablesRowSchema, ht as statMfsPathSafely, ir as r$1, k as doesDomainAddressHaveCapitalLetter, kn as CommentsTableRowSchema, kt as syncCommunityRegistryEntry, lr as t$3, lt as retryKuboBlockPutPinAndProvidePubsubTopic, mt as sleepUntilTimeoutOrAbort, nn as CommunityIpfsSchema, nr as e$1, nt as removeBlocksFromKuboNode, pn as VotePubsubReservedFields, q as isLinkOfMedia, r as ChallengeMessageSchema, rn as CommunitySignedPropertyNames, rt as removeMfsFilesSafely, s as ChallengeVerificationMessageSchema, t as ChallengeAnswerMessageSchema, tr as e, u as DecryptedChallengeRequestPublicationSchema, vn as CommentIpfsSchema, vr as messages, w as contentContainsMarkdownImages, x as calculateIpfsCidV0, xt as findStartedCommunity, y as version_default, yn as CommentPubsubMessageReservedFields, yr as logger_default, yt as writeKuboFilesWithTimeout, zn as CommentEditsTableRowSchema } from "./schema-DmKOov5l.js";
3
- import { $n as t$10, A as deriveDbPosts, At as verifyCommunityEdit, Bt as getCommunityPublicKeyFromWire, C as BackupAbortError, Dt as verifyCommentPubsubMessage, E as calculateInlineRepliesBudget, Et as verifyCommentModeration, F as importSignerIntoKuboNode, Ft as getAuthorNameFromWire, G as REPLY_REPLIES_SORT_TYPES, Gt as getIpfsKeyFromPrivateKey, Ht as decode, Jn as r$2, Jt as getPublicKeyFromPrivateKey, K as TIMEFRAMES_TO_SECONDS, Kn as t$9, Kt as getPKCAddressFromPublicKey, M as getDefaultCommunityDbConfig, Mt as buildRuntimeAuthor, Nt as cleanWireAuthor, O as deleteOldCommunityInWindows, Ot as verifyCommentUpdate, P as getThumbnailPropsOfLink, R as moveCommunityDbToDeletedDirectory, S as encryptEd25519AesGcmPublicKeyBuffer, St as verifyChallengeRequest, T as calculateExpectedSignatureSize, Tt as verifyCommentIpfs, U as POSTS_SORT_TYPES, Ut as encode, W as POST_REPLIES_SORT_TYPES, Xn as n$6, Yn as t$11, Yt as createSchemaRowParser, Z as iterateOverPageCidsToFindAllCids, Zn as n$5, _ as SignerWithPublicKeyAddress, _t as signCommunity, a as pkcJsChallenges, b as decryptEd25519AesGcmPublicKeyBuffer, bt as verifyChallengeAnswer, cn as parseCommunityIpfsSchemaPassthroughWithPKCErrorIfItFails, d as MAX_FILE_SIZE_BYTES_FOR_COMMUNITY_IPFS, dt as signChallengeVerification, er as stringify, f as KeyvBetterSqlite3, ft as signComment, gt as signCommentUpdateForChallengeVerification, ht as signCommentUpdate, i as getCommunityChallengeFromCommunityChallengeSettings, it as pLimit, j as deriveDbReplies, jt as verifyVote, k as deriveCommentIpfsFromCommentTableRow, kt as verifyCommunity, l as normalizeSelfAddrsForProvider, lt as signChallengeMessage, nr as require_lodash_merge, o as TrackedInstanceRegistry, on as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, pt as signCommentEdit, qn as t$12, qt as getPKCAddressFromPublicKeySync, r as getChallengeVerification, s as LRUCache, st as cleanUpBeforePublishing, t as RpcLocalCommunity, tr as STORAGE_KEYS, vn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, w as backupCommunityDb, wt as verifyCommentEdit, xn as parseJsonWithPKCErrorIfFails, z as resolveDbPostsCidRefs, zt as getCommunityNameFromWire } from "./rpc-local-community-BNjtTCYn.js";
2
+ import { $ as pubsubTopicToDhtKey, $n as t$7, At as trackStartedCommunity, Bt as CommunityEditPublicationPubsubReservedFields, C as contentContainsMarkdownAudio, Ct as findUpdatingCommunity, En as CommentUpdateSchema, F as getIpnsRecordInLocalKuboNode, Fn as CommentEditPubsubMessagePublicationSchema, Ft as untrackUpdatingCommunity, G as isLinkOfAudio, Gt as CommentModerationPubsubMessagePublicationSchema, In as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema, It as require_sha256, J as isLinkOfVideo, Jt as CommentModerationsTableRowSchema, K as isLinkOfImage, Kt as CommentModerationReservedFields, L as hideClassPrivateProps, Ln as CommentEditReservedFields, M as genToArray, Mr as ZodError, Mt as trackUpdatingCommunity, N as getEquivalentCommunityAddresses, Nt as untrackStartedCommunity, O as derivePublicationFromChallengeRequest, On as CommentUpdateTableRowSchema, P as getErrorCodeFromMessage, Q as isStringDomain, Qn as n$3, R as ipnsNameToIpnsOverPubsubTopic, Rt as pTimeout, S as calculateStringSizeSameAsIpfsAddCidV0, T as contentContainsMarkdownVideos, Un as AuthorReservedFields, W as isLinkOfAnimatedImage, Xn as n$4, Y as isLinkValid, Zn as t$8, _r as PKCError, _t as timestamp, a as ChallengeRequestMessageSchema, ar as t$4, at as removeNullUndefinedValues, b as areEquivalentCommunityAddresses, bt as findCommunityInRegistry, cr as t$5, d as DecryptedChallengeRequestSchema, dr as require_retry, dt as retryKuboIpfsAddAndProvide, er as t$6, fn as VotePubsubMessagePublicationSchema, hn as VoteTablesRowSchema, ht as statMfsPathSafely, ir as r$1, k as doesDomainAddressHaveCapitalLetter, kn as CommentsTableRowSchema, kt as syncCommunityRegistryEntry, lr as t$3, lt as retryKuboBlockPutPinAndProvidePubsubTopic, mt as sleepUntilTimeoutOrAbort, nn as CommunityIpfsSchema, nr as e$1, nt as removeBlocksFromKuboNode, pn as VotePubsubReservedFields, q as isLinkOfMedia, r as ChallengeMessageSchema, rn as CommunitySignedPropertyNames, rt as removeMfsFilesSafely, s as ChallengeVerificationMessageSchema, t as ChallengeAnswerMessageSchema, tr as e, u as DecryptedChallengeRequestPublicationSchema, vn as CommentIpfsSchema, vr as messages, w as contentContainsMarkdownImages, x as calculateIpfsCidV0, xt as findStartedCommunity, y as version_default, yn as CommentPubsubMessageReservedFields, yr as logger_default, yt as writeKuboFilesWithTimeout, zn as CommentEditsTableRowSchema } from "./schema-B3duXSG7.js";
3
+ import { $n as t$10, A as deriveDbPosts, At as verifyCommunityEdit, Bt as getCommunityPublicKeyFromWire, C as BackupAbortError, Dt as verifyCommentPubsubMessage, E as calculateInlineRepliesBudget, Et as verifyCommentModeration, F as importSignerIntoKuboNode, Ft as getAuthorNameFromWire, G as REPLY_REPLIES_SORT_TYPES, Gt as getIpfsKeyFromPrivateKey, Ht as decode, Jn as r$2, Jt as getPublicKeyFromPrivateKey, K as TIMEFRAMES_TO_SECONDS, Kn as t$9, Kt as getPKCAddressFromPublicKey, M as getDefaultCommunityDbConfig, Mt as buildRuntimeAuthor, Nt as cleanWireAuthor, O as deleteOldCommunityInWindows, Ot as verifyCommentUpdate, P as getThumbnailPropsOfLink, R as moveCommunityDbToDeletedDirectory, S as encryptEd25519AesGcmPublicKeyBuffer, St as verifyChallengeRequest, T as calculateExpectedSignatureSize, Tt as verifyCommentIpfs, U as POSTS_SORT_TYPES, Ut as encode, W as POST_REPLIES_SORT_TYPES, Xn as n$6, Yn as t$11, Yt as createSchemaRowParser, Z as iterateOverPageCidsToFindAllCids, Zn as n$5, _ as SignerWithPublicKeyAddress, _t as signCommunity, a as pkcJsChallenges, b as decryptEd25519AesGcmPublicKeyBuffer, bt as verifyChallengeAnswer, cn as parseCommunityIpfsSchemaPassthroughWithPKCErrorIfItFails, d as MAX_FILE_SIZE_BYTES_FOR_COMMUNITY_IPFS, dt as signChallengeVerification, er as stringify, f as KeyvBetterSqlite3, ft as signComment, gt as signCommentUpdateForChallengeVerification, ht as signCommentUpdate, i as getCommunityChallengeFromCommunityChallengeSettings, it as pLimit, j as deriveDbReplies, jt as verifyVote, k as deriveCommentIpfsFromCommentTableRow, kt as verifyCommunity, l as normalizeSelfAddrsForProvider, lt as signChallengeMessage, nr as require_lodash_merge, o as TrackedInstanceRegistry, on as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, pt as signCommentEdit, qn as t$12, qt as getPKCAddressFromPublicKeySync, r as getChallengeVerification, s as LRUCache, st as cleanUpBeforePublishing, t as RpcLocalCommunity, tr as STORAGE_KEYS, vn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, w as backupCommunityDb, wt as verifyCommentEdit, xn as parseJsonWithPKCErrorIfFails, z as resolveDbPostsCidRefs, zt as getCommunityNameFromWire } from "./rpc-local-community-ZxNkZCBr.js";
4
4
  import { randomFillSync, randomUUID } from "node:crypto";
5
5
  import { fileURLToPath, pathToFileURL } from "node:url";
6
6
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
2
- import { B as isIpfsCid, Cn as CommentUpdateForChallengeVerificationSchema, Ct as findUpdatingCommunity, D as deepMergeRuntimeFields, Dt as refreshTrackedCommentAliases, E as createAbortError, En as CommentUpdateSchema, Et as listUpdatingCommunities, Fr as stringifyPrimitive, H as isIpns, It as require_sha256, L as hideClassPrivateProps, Lt as TimeoutError, Nr as joinValues, Pr as parsedType, Pt as untrackUpdatingComment, Q as isStringDomain, Qn as n$1, R as ipnsNameToIpnsOverPubsubTopic, Rt as pTimeout, Sr as setErrorMap, St as findUpdatingComment, Tt as listUpdatingComments, Xn as n$2, _r as PKCError, _t as timestamp, a as ChallengeRequestMessageSchema, b as areEquivalentCommunityAddresses, br as require_supports_color, cn as PubsubTopicSchema, ct as resolveWhenPredicateIsTrue, dr as require_retry, er as t$1, fr as FailedToFetchCommentIpfsFromGatewaysError, ft as shortifyAddress, ir as r, jt as trackUpdatingComment, k as doesDomainAddressHaveCapitalLetter, mt as sleepUntilTimeoutOrAbort, nn as CommunityIpfsSchema, nr as e$1, ot as removeUndefinedValuesRecursively, pt as shortifyCid, r as ChallengeMessageSchema, s as ChallengeVerificationMessageSchema, st as replaceXWithY, t as ChallengeAnswerMessageSchema, tr as e, ut as retryKuboIpfsAdd, vn as CommentIpfsSchema, vr as messages, vt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, wt as listStartedCommunities, xt as findStartedCommunity, y as version_default, yr as logger_default, z as isAbortError } from "./schema-DmKOov5l.js";
3
- import { $ as RepliesPages, $n as t$5, $t as parseCommentEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, An as RpcCidParamSchema, At as verifyCommunityEdit, B as setNativeFunctions$1, Bn as RpcFetchCidResultSchema, Bt as getCommunityPublicKeyFromWire, Cn as parseRpcCommentEventWithPKCErrorIfItFails, Ct as verifyChallengeVerification, D as createKuboRpcClient, Dn as parseVotePubsubMessagePublicationSchemaWithPKCErrorIfItFails, Dt as verifyCommentPubsubMessage, Et as verifyCommentModeration, Fn as RpcExportCommunityModLogsParamSchema, Gn as RpcUnsubscribeParamSchema, H as CommentClientsManager, Hn as RpcResolveAuthorNameResultSchema, Ht as decode, I as listCommunitiesSync, In as RpcExportCommunityModLogsResultSchema, It as normalizeCreatePublicationAuthor, Kn as t$4, L as monitorCommunitiesDirectory, Ln as RpcExportCommunityParamSchema, Lt as buildRuntimeCommunityFields, Mn as RpcCommunityIdentifierParamSchema, Mt as buildRuntimeAuthor, N as getDefaultDataPath, Nn as RpcCommunityPageParamSchema, Nt as cleanWireAuthor, On as RpcAuthorNameParamSchema, Ot as verifyCommentUpdate, Pn as RpcEditCommunityParamSchema, Pt as getAuthorNameFromRuntime, Q as parseRawPages, Qn as t$2, Rn as RpcExportCommunityResultSchema, Rt as getCommunityAddressFromRecord, Sn as parsePKCUserOptionsSchemaWithPKCErrorIfItFails, Tn as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Tt as verifyCommentIpfs, Un as RpcSubscriptionIdResultSchema, V as tryToDeleteCommunitiesThatFailedToBeDeletedBefore, Vn as RpcPublishChallengeAnswersParamSchema, Vt as normalizeCommunityInputFromCommunity, Wn as RpcSuccessResultSchema, Wt as getBufferedPKCAddressFromPublicKey, X as findCommentInPageInstanceRecursively, Xn as n$3, Xt as parseCidStringSchemaWithPKCErrorIfItFails, Y as extractCommunityRuntimeFieldsFromParsedPages, Yn as t$3, _n as parseCreateVoteOptionsSchemaWithPKCErrorIfItFails, a as pkcJsChallenges, at as PKCTypedEmitter, bn as parseDecryptedChallengeWithPKCErrorIfItFails, c as AddressesRewriterProxyServer, ct as signChallengeAnswer, dn as parseCreateCommentOptionsSchemaWithPKCErrorIfItFails, en as parseCommentIpfsSchemaWithPKCErrorIfItFails, et as PublicationClientsManager, f as KeyvBetterSqlite3, fn as parseCreateCommunityEditPublicationOptionsSchemaWithPKCErrorIfItFails, ft as signComment, g as decodeRpcChallengeVerificationPubsubMsg, gn as parseCreateRpcCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, h as decodeRpcChallengeRequestPubsubMsg, hn as parseCreateRemoteCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, in as parseCommunityAddressWithPKCErrorIfItFails, ir as require_undici, jn as RpcCommentRepliesPageParamSchema, jt as verifyVote, kn as RpcCancelExportParamSchema, ln as parseCreateCommentEditOptionsSchemaWithPKCErrorIfItFails, m as decodeRpcChallengePubsubMsg, mt as signCommentModeration, n as RpcRemoteCommunity, nn as parseCommentModerationPubsubMessagePublicationSchemaWithPKCErrorIfItFails, nt as InflightFetchManager, o as TrackedInstanceRegistry, ot as require_lib$1, p as decodeRpcChallengeAnswerPubsubMsg, pt as signCommentEdit, rn as parseCommentPubsubMessagePublicationWithPKCErrorIfItFails, rr as nativeFunctions$2, s as LRUCache, sn as parseCommunityEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, st as cleanUpBeforePublishing, t as RpcLocalCommunity, tt as PKCClientsManager, u as RemoteCommunity, un as parseCreateCommentModerationOptionsSchemaWithPKCErrorIfItFails, ut as signChallengeRequest, v as createSigner, vn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, vt as signCommunityEdit, wn as parseRpcCommentUpdateEventWithPKCErrorIfItFails, wt as verifyCommentEdit, x as encryptEd25519AesGcm, xn as parseJsonWithPKCErrorIfFails, xt as verifyChallengeMessage, y as decryptEd25519AesGcm, yn as parseDecryptedChallengeVerification, yt as signVote, zn as RpcFetchCidParamSchema, zt as getCommunityNameFromWire } from "./rpc-local-community-BNjtTCYn.js";
4
- import { o as getHeliaDebugContext } from "./util-tvFNztkO.js";
2
+ import { B as isIpfsCid, Cn as CommentUpdateForChallengeVerificationSchema, Ct as findUpdatingCommunity, D as deepMergeRuntimeFields, Dt as refreshTrackedCommentAliases, E as createAbortError, En as CommentUpdateSchema, Et as listUpdatingCommunities, Fr as stringifyPrimitive, H as isIpns, It as require_sha256, L as hideClassPrivateProps, Lt as TimeoutError, Nr as joinValues, Pr as parsedType, Pt as untrackUpdatingComment, Q as isStringDomain, Qn as n$1, R as ipnsNameToIpnsOverPubsubTopic, Rt as pTimeout, Sr as setErrorMap, St as findUpdatingComment, Tt as listUpdatingComments, Xn as n$2, _r as PKCError, _t as timestamp, a as ChallengeRequestMessageSchema, b as areEquivalentCommunityAddresses, br as require_supports_color, cn as PubsubTopicSchema, ct as resolveWhenPredicateIsTrue, dr as require_retry, er as t$1, fr as FailedToFetchCommentIpfsFromGatewaysError, ft as shortifyAddress, ir as r, jt as trackUpdatingComment, k as doesDomainAddressHaveCapitalLetter, mt as sleepUntilTimeoutOrAbort, nn as CommunityIpfsSchema, nr as e$1, ot as removeUndefinedValuesRecursively, pt as shortifyCid, r as ChallengeMessageSchema, s as ChallengeVerificationMessageSchema, st as replaceXWithY, t as ChallengeAnswerMessageSchema, tr as e, ut as retryKuboIpfsAdd, vn as CommentIpfsSchema, vr as messages, vt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, wt as listStartedCommunities, xt as findStartedCommunity, y as version_default, yr as logger_default, z as isAbortError } from "./schema-B3duXSG7.js";
3
+ import { $ as RepliesPages, $n as t$5, $t as parseCommentEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, An as RpcCidParamSchema, At as verifyCommunityEdit, B as setNativeFunctions$1, Bn as RpcFetchCidResultSchema, Bt as getCommunityPublicKeyFromWire, Cn as parseRpcCommentEventWithPKCErrorIfItFails, Ct as verifyChallengeVerification, D as createKuboRpcClient, Dn as parseVotePubsubMessagePublicationSchemaWithPKCErrorIfItFails, Dt as verifyCommentPubsubMessage, Et as verifyCommentModeration, Fn as RpcExportCommunityModLogsParamSchema, Gn as RpcUnsubscribeParamSchema, H as CommentClientsManager, Hn as RpcResolveAuthorNameResultSchema, Ht as decode, I as listCommunitiesSync, In as RpcExportCommunityModLogsResultSchema, It as normalizeCreatePublicationAuthor, Kn as t$4, L as monitorCommunitiesDirectory, Ln as RpcExportCommunityParamSchema, Lt as buildRuntimeCommunityFields, Mn as RpcCommunityIdentifierParamSchema, Mt as buildRuntimeAuthor, N as getDefaultDataPath, Nn as RpcCommunityPageParamSchema, Nt as cleanWireAuthor, On as RpcAuthorNameParamSchema, Ot as verifyCommentUpdate, Pn as RpcEditCommunityParamSchema, Pt as getAuthorNameFromRuntime, Q as parseRawPages, Qn as t$2, Rn as RpcExportCommunityResultSchema, Rt as getCommunityAddressFromRecord, Sn as parsePKCUserOptionsSchemaWithPKCErrorIfItFails, Tn as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Tt as verifyCommentIpfs, Un as RpcSubscriptionIdResultSchema, V as tryToDeleteCommunitiesThatFailedToBeDeletedBefore, Vn as RpcPublishChallengeAnswersParamSchema, Vt as normalizeCommunityInputFromCommunity, Wn as RpcSuccessResultSchema, Wt as getBufferedPKCAddressFromPublicKey, X as findCommentInPageInstanceRecursively, Xn as n$3, Xt as parseCidStringSchemaWithPKCErrorIfItFails, Y as extractCommunityRuntimeFieldsFromParsedPages, Yn as t$3, _n as parseCreateVoteOptionsSchemaWithPKCErrorIfItFails, a as pkcJsChallenges, at as PKCTypedEmitter, bn as parseDecryptedChallengeWithPKCErrorIfItFails, c as AddressesRewriterProxyServer, ct as signChallengeAnswer, dn as parseCreateCommentOptionsSchemaWithPKCErrorIfItFails, en as parseCommentIpfsSchemaWithPKCErrorIfItFails, et as PublicationClientsManager, f as KeyvBetterSqlite3, fn as parseCreateCommunityEditPublicationOptionsSchemaWithPKCErrorIfItFails, ft as signComment, g as decodeRpcChallengeVerificationPubsubMsg, gn as parseCreateRpcCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, h as decodeRpcChallengeRequestPubsubMsg, hn as parseCreateRemoteCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, in as parseCommunityAddressWithPKCErrorIfItFails, ir as require_undici, jn as RpcCommentRepliesPageParamSchema, jt as verifyVote, kn as RpcCancelExportParamSchema, ln as parseCreateCommentEditOptionsSchemaWithPKCErrorIfItFails, m as decodeRpcChallengePubsubMsg, mt as signCommentModeration, n as RpcRemoteCommunity, nn as parseCommentModerationPubsubMessagePublicationSchemaWithPKCErrorIfItFails, nt as InflightFetchManager, o as TrackedInstanceRegistry, ot as require_lib$1, p as decodeRpcChallengeAnswerPubsubMsg, pt as signCommentEdit, rn as parseCommentPubsubMessagePublicationWithPKCErrorIfItFails, rr as nativeFunctions$2, s as LRUCache, sn as parseCommunityEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, st as cleanUpBeforePublishing, t as RpcLocalCommunity, tt as PKCClientsManager, u as RemoteCommunity, un as parseCreateCommentModerationOptionsSchemaWithPKCErrorIfItFails, ut as signChallengeRequest, v as createSigner, vn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, vt as signCommunityEdit, wn as parseRpcCommentUpdateEventWithPKCErrorIfItFails, wt as verifyCommentEdit, x as encryptEd25519AesGcm, xn as parseJsonWithPKCErrorIfFails, xt as verifyChallengeMessage, y as decryptEd25519AesGcm, yn as parseDecryptedChallengeVerification, yt as signVote, zn as RpcFetchCidParamSchema, zt as getCommunityNameFromWire } from "./rpc-local-community-ZxNkZCBr.js";
4
+ import { o as getHeliaDebugContext } from "./util-DOWWxZIE.js";
5
5
  import path from "path";
6
6
  import assert from "assert";
7
7
  import fs from "fs";
@@ -8875,7 +8875,7 @@ var PKC$1 = class extends PKCTypedEmitter {
8875
8875
  this.clients.libp2pJsClients = {};
8876
8876
  if (!this.libp2pJsClientsOptions) return;
8877
8877
  if (!this.httpRoutersOptions) throw Error("httpRoutersOptions is required for libp2pJsClient");
8878
- const { createLibp2pJsClientOrUseExistingOne } = await import("./helia-for-pkc-1MPTFE4q.js");
8878
+ const { createLibp2pJsClientOrUseExistingOne } = await import("./helia-for-pkc-BcZhGLB0.js");
8879
8879
  for (const clientOptions of this.libp2pJsClientsOptions) {
8880
8880
  const heliaNode = await createLibp2pJsClientOrUseExistingOne({
8881
8881
  ...clientOptions,
@@ -9123,7 +9123,7 @@ var PKC$1 = class extends PKCTypedEmitter {
9123
9123
  const log = logger_default("pkc-js:pkc:createLocalCommunity");
9124
9124
  log.trace("Received community options to create a local community instance:", options);
9125
9125
  if (!this._canCreateNewLocalCommunity()) throw new PKCError("ERR_CAN_NOT_CREATE_A_LOCAL_COMMUNITY", { pkcOptions: this._userPKCOptions });
9126
- const { LocalCommunity, createNewLocalCommunityDb, updateInstancePropsWithStartedCommunityOrDb } = await import("./local-community-Cx4YtD1b.js");
9126
+ const { LocalCommunity, createNewLocalCommunityDb, updateInstancePropsWithStartedCommunityOrDb } = await import("./local-community-Cd5HOxwM.js");
9127
9127
  const isLocalCommunity = (await listCommunitiesSync(this)).includes(options.address);
9128
9128
  const community = new LocalCommunity(this);
9129
9129
  if (isLocalCommunity) {
@@ -1,5 +1,5 @@
1
1
  import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
2
- import { $ as pubsubTopicToDhtKey, $t as CommunityEditOptionsSchema, A as extractNetworkErrorDetails, An as CreateCommentOptionsWithRefinementSchema, Ar as record, At as trackStartedCommunity, B as isIpfsCid, Bn as CreateCommentEditOptionsWithRefinementSchema, Cr as _enum, Ct as findUpdatingCommunity, D as deepMergeRuntimeFields, Dn as CommentUpdateSignedPropertyNames, Dr as literal, E as createAbortError, En as CommentUpdateSchema, Er as custom, Et as listUpdatingCommunities, Ft as untrackUpdatingCommunity, Gn as CidPathSchema, Gt as CommentModerationPubsubMessagePublicationSchema, H as isIpns, Hn as AuthorCommentIpfsReservedFields, Ht as CommunityEditPubsubMessagePublicationSchema, I as getPostUpdateTimestampRange, In as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema, It as require_sha256$1, Jn as CommunityAuthorChallengeReservedFieldNames, Jt as CommentModerationsTableRowSchema, Kn as CidStringSchema, L as hideClassPrivateProps, Mn as ModQueuePageIpfsSchema, Mt as trackUpdatingCommunity, Nn as PageIpfsSchema, Nt as untrackStartedCommunity, O as derivePublicationFromChallengeRequest, Or as number, Ot as refreshTrackedCommunityAliases, Pn as CommentEditChallengeRequestToEncryptSchema, Q as isStringDomain, Qn as n$9, Qt as CommunityChallengeSettingSchema, R as ipnsNameToIpnsOverPubsubTopic, Rn as CommentEditSignedPropertyNames, Rt as pTimeout, Sn as CommentUpdateChallengeReservedFieldNames, St as findUpdatingComment, Tn as CommentUpdateReservedFields, Tr as boolean, U as isIpnsPath, Ut as CreateCommunityEditPublicationOptionsWithRefinementSchema, V as isIpfsPath, Vn as AuthorAddressSchema, Vt as CommunityEditPublicationSignedPropertyNames, Wn as ChallengeAnswersSchema, Wt as CommentModerationChallengeRequestToEncryptSchema, X as isRequestPubsubPublicationOfPost, Xn as n$10, Xt as ChallengeFileFactorySchema, Yn as CreateSignerSchema, Yt as CreateCommentModerationOptionsWithRefinementSchema, Z as isRequestPubsubPublicationOfReply, Zt as ChallengeFileSchema, _ as PKCUserOptionBaseSchema, _n as CommentIpfsReservedFields, _r as PKCError, _t as timestamp, an as CreateRemoteCommunityFunctionArgumentSchema, ar as t$12, b as areEquivalentCommunityAddresses, bn as CommentPubsubMessageWithFlexibleAuthorRefinementSchema, br as require_supports_color, c as ChallengeVerificationMessageSignedPropertyNames, cr as t$10, ct as resolveWhenPredicateIsTrue, dn as VoteChallengeRequestToEncryptSchema, dr as require_retry$1, en as CommunityExportRecordsSchema, er as t$13, f as DecryptedChallengeSchema, fn as VotePubsubMessagePublicationSchema, fr as FailedToFetchCommentIpfsFromGatewaysError, ft as shortifyAddress, g as PKCParsedOptionsSchema, gn as CommentChallengeRequestToEncryptSchema, gr as FailedToFetchPageIpfsFromGatewaysError, gt as throwIfAbortSignalAborted, h as NameResolverSerializedSchema, hr as FailedToFetchGenericIpfsFromGatewaysError, i as ChallengeMessageSignedPropertyNames, in as CreateNewLocalCommunityUserOptionsSchema, ir as r$8, it as removeNullUndefinedEmptyObjectsValuesRecursively, j as fetchAndValidateIpnsRecordFromGateway, jn as GetPageParamSchema, jr as string, k as doesDomainAddressHaveCapitalLetter, kr as object, l as DecryptedChallengeAnswerSchema, ln as RpcRemoteCommunityUpdateEventResultSchema, lr as t$9, m as NameResolveCacheOptionsSchema, mn as VoteSignedPropertyNames, mr as FailedToFetchCommunityFromGatewaysError, mt as sleepUntilTimeoutOrAbort, n as ChallengeAnswerMessageSignedPropertyNames, nn as CommunityIpfsSchema, nr as e$5, o as ChallengeRequestMessageSignedPropertyNames, on as CreateRpcCommunityFunctionArgumentSchema, or as n$8, p as DecryptedChallengeVerificationSchema, pr as FailedToFetchCommentUpdateFromGatewaysError, pt as shortifyCid, qn as CommunityAddressSchema, qt as CommentModerationSignedPropertyNames, rn as CommunitySignedPropertyNames, rr as t$11, sn as ExportCommunityModLogsOptionsSchema, sr as r$7, tn as CommunityIpfsReservedFields, tr as e$6, tt as raceAgainstAbort, un as CreateVoteUserOptionsWithRefinementSchema, ur as e$4, v as PKCUserOptionsSchema, vn as CommentIpfsSchema, vr as messages, vt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, wn as CommentUpdateForChallengeVerificationSignedPropertyNames, wr as array, wt as listStartedCommunities, x as calculateIpfsCidV0, xn as CommentSignedPropertyNames, xr as require_ms$1, xt as findStartedCommunity, yr as logger_default, z as isAbortError, zt as CommunityEditPublicationChallengeRequestToEncryptSchema } from "./schema-DmKOov5l.js";
2
+ import { $ as pubsubTopicToDhtKey, $t as CommunityEditOptionsSchema, A as extractNetworkErrorDetails, An as CreateCommentOptionsWithRefinementSchema, Ar as record, At as trackStartedCommunity, B as isIpfsCid, Bn as CreateCommentEditOptionsWithRefinementSchema, Cr as _enum, Ct as findUpdatingCommunity, D as deepMergeRuntimeFields, Dn as CommentUpdateSignedPropertyNames, Dr as literal, E as createAbortError, En as CommentUpdateSchema, Er as custom, Et as listUpdatingCommunities, Ft as untrackUpdatingCommunity, Gn as CidPathSchema, Gt as CommentModerationPubsubMessagePublicationSchema, H as isIpns, Hn as AuthorCommentIpfsReservedFields, Ht as CommunityEditPubsubMessagePublicationSchema, I as getPostUpdateTimestampRange, In as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema, It as require_sha256$1, Jn as CommunityAuthorChallengeReservedFieldNames, Jt as CommentModerationsTableRowSchema, Kn as CidStringSchema, L as hideClassPrivateProps, Mn as ModQueuePageIpfsSchema, Mt as trackUpdatingCommunity, Nn as PageIpfsSchema, Nt as untrackStartedCommunity, O as derivePublicationFromChallengeRequest, Or as number, Ot as refreshTrackedCommunityAliases, Pn as CommentEditChallengeRequestToEncryptSchema, Q as isStringDomain, Qn as n$9, Qt as CommunityChallengeSettingSchema, R as ipnsNameToIpnsOverPubsubTopic, Rn as CommentEditSignedPropertyNames, Rt as pTimeout, Sn as CommentUpdateChallengeReservedFieldNames, St as findUpdatingComment, Tn as CommentUpdateReservedFields, Tr as boolean, U as isIpnsPath, Ut as CreateCommunityEditPublicationOptionsWithRefinementSchema, V as isIpfsPath, Vn as AuthorAddressSchema, Vt as CommunityEditPublicationSignedPropertyNames, Wn as ChallengeAnswersSchema, Wt as CommentModerationChallengeRequestToEncryptSchema, X as isRequestPubsubPublicationOfPost, Xn as n$10, Xt as ChallengeFileFactorySchema, Yn as CreateSignerSchema, Yt as CreateCommentModerationOptionsWithRefinementSchema, Z as isRequestPubsubPublicationOfReply, Zt as ChallengeFileSchema, _ as PKCUserOptionBaseSchema, _n as CommentIpfsReservedFields, _r as PKCError, _t as timestamp, an as CreateRemoteCommunityFunctionArgumentSchema, ar as t$12, b as areEquivalentCommunityAddresses, bn as CommentPubsubMessageWithFlexibleAuthorRefinementSchema, br as require_supports_color, c as ChallengeVerificationMessageSignedPropertyNames, cr as t$10, ct as resolveWhenPredicateIsTrue, dn as VoteChallengeRequestToEncryptSchema, dr as require_retry$1, en as CommunityExportRecordsSchema, er as t$13, f as DecryptedChallengeSchema, fn as VotePubsubMessagePublicationSchema, fr as FailedToFetchCommentIpfsFromGatewaysError, ft as shortifyAddress, g as PKCParsedOptionsSchema, gn as CommentChallengeRequestToEncryptSchema, gr as FailedToFetchPageIpfsFromGatewaysError, gt as throwIfAbortSignalAborted, h as NameResolverSerializedSchema, hr as FailedToFetchGenericIpfsFromGatewaysError, i as ChallengeMessageSignedPropertyNames, in as CreateNewLocalCommunityUserOptionsSchema, ir as r$8, it as removeNullUndefinedEmptyObjectsValuesRecursively, j as fetchAndValidateIpnsRecordFromGateway, jn as GetPageParamSchema, jr as string, k as doesDomainAddressHaveCapitalLetter, kr as object, l as DecryptedChallengeAnswerSchema, ln as RpcRemoteCommunityUpdateEventResultSchema, lr as t$9, m as NameResolveCacheOptionsSchema, mn as VoteSignedPropertyNames, mr as FailedToFetchCommunityFromGatewaysError, mt as sleepUntilTimeoutOrAbort, n as ChallengeAnswerMessageSignedPropertyNames, nn as CommunityIpfsSchema, nr as e$5, o as ChallengeRequestMessageSignedPropertyNames, on as CreateRpcCommunityFunctionArgumentSchema, or as n$8, p as DecryptedChallengeVerificationSchema, pr as FailedToFetchCommentUpdateFromGatewaysError, pt as shortifyCid, qn as CommunityAddressSchema, qt as CommentModerationSignedPropertyNames, rn as CommunitySignedPropertyNames, rr as t$11, sn as ExportCommunityModLogsOptionsSchema, sr as r$7, tn as CommunityIpfsReservedFields, tr as e$6, tt as raceAgainstAbort, un as CreateVoteUserOptionsWithRefinementSchema, ur as e$4, v as PKCUserOptionsSchema, vn as CommentIpfsSchema, vr as messages, vt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, wn as CommentUpdateForChallengeVerificationSignedPropertyNames, wr as array, wt as listStartedCommunities, x as calculateIpfsCidV0, xn as CommentSignedPropertyNames, xr as require_ms$1, xt as findStartedCommunity, yr as logger_default, z as isAbortError, zt as CommunityEditPublicationChallengeRequestToEncryptSchema } from "./schema-B3duXSG7.js";
3
3
  import { t as all } from "./src-CYIMjhjK.js";
4
4
  import http from "node:http";
5
5
  import { createHash } from "node:crypto";
@@ -16032,7 +16032,7 @@ function extractNetworkErrorDetails(err, depth = 0) {
16032
16032
  }
16033
16033
  //#endregion
16034
16034
  //#region dist/node/generated-version.js
16035
- const version = "0.0.71";
16035
+ const version = "0.0.72";
16036
16036
  //#endregion
16037
16037
  //#region dist/node/version.js
16038
16038
  const protocolVersion = ProtocolVersionSchema.parse("1.0.0");
@@ -1,4 +1,4 @@
1
- import { _r as PKCError, et as pubsubTopicToDhtKeyCid } from "./schema-DmKOov5l.js";
1
+ import { _r as PKCError, et as pubsubTopicToDhtKeyCid } from "./schema-B3duXSG7.js";
2
2
  import { ipnsSelector } from "ipns/selector";
3
3
  import { equals } from "uint8arrays/equals";
4
4
  //#region dist/node/helia/util.js
@@ -1,2 +1,2 @@
1
- import { a as nativeFunctions, i as getShortCid, n as challenges, o as setNativeFunctions, r as getShortAddress, t as PKC } from "./chunks/node-CZvWHsjY.js";
1
+ import { a as nativeFunctions, i as getShortCid, n as challenges, o as setNativeFunctions, r as getShortAddress, t as PKC } from "./chunks/node-sP-twQPW.js";
2
2
  export { challenges, PKC as default, getShortAddress, getShortCid, nativeFunctions, setNativeFunctions };
@@ -1,7 +1,7 @@
1
- import { L as hideClassPrivateProps, Qn as n, _r as PKCError, er as t, st as replaceXWithY, xt as findStartedCommunity, yr as logger_default } from "../../chunks/schema-DmKOov5l.js";
2
- import { _ as parseRpcUnsubscribeParam, c as parseRpcCancelExportParam, d as parseRpcCommunityIdentifierParam, f as parseRpcCommunityPageParam, g as parseRpcPublishChallengeAnswersParam, h as parseRpcExportCommunityParam, l as parseRpcCidParam, m as parseRpcExportCommunityModLogsParam, p as parseRpcEditCommunityParam, s as parseRpcAuthorNameParam, t as PKC, u as parseRpcCommentRepliesPageParam } from "../../chunks/node-CZvWHsjY.js";
3
- import { En as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, J as buildPagesRuntimeFields, Qt as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, Tn as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Zt as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, an as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, er as stringify, it as pLimit, mn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails, on as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, ot as require_lib, pn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, q as buildPageRuntimeFields, qn as t$1, rt as pRetry, tn as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, vn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-BNjtTCYn.js";
4
- import { t as LocalCommunity } from "../../chunks/local-community-C6C5HbTj.js";
1
+ import { L as hideClassPrivateProps, Qn as n, _r as PKCError, er as t, st as replaceXWithY, xt as findStartedCommunity, yr as logger_default } from "../../chunks/schema-B3duXSG7.js";
2
+ import { _ as parseRpcUnsubscribeParam, c as parseRpcCancelExportParam, d as parseRpcCommunityIdentifierParam, f as parseRpcCommunityPageParam, g as parseRpcPublishChallengeAnswersParam, h as parseRpcExportCommunityParam, l as parseRpcCidParam, m as parseRpcExportCommunityModLogsParam, p as parseRpcEditCommunityParam, s as parseRpcAuthorNameParam, t as PKC, u as parseRpcCommentRepliesPageParam } from "../../chunks/node-sP-twQPW.js";
3
+ import { En as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, J as buildPagesRuntimeFields, Qt as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, Tn as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Zt as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, an as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, er as stringify, it as pLimit, mn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails, on as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, ot as require_lib, pn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, q as buildPageRuntimeFields, qn as t$1, rt as pRetry, tn as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, vn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-ZxNkZCBr.js";
4
+ import { t as LocalCommunity } from "../../chunks/local-community-DWf7A4hj.js";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import path from "path";
7
7
  import assert from "assert";
@@ -38,7 +38,7 @@ export declare class BaseClientsManager {
38
38
  pubsubProviderSubscriptions: Record<string, string[]>;
39
39
  constructor(pkc: PKC);
40
40
  toJSON(): undefined;
41
- getDefaultPubsubKuboRpcClientOrHelia(): import("../types.js").PubsubClient | import("../helia/libp2pjsClient.js").Libp2pJsClient;
41
+ getDefaultPubsubKuboRpcClientOrHelia(): import("../types.js").PubsubClient | import("../index.js").Libp2pJsClient;
42
42
  getDefaultKuboRpcClientOrHelia(): PKC["clients"]["kuboRpcClients"][string] | PKC["clients"]["libp2pJsClients"][string];
43
43
  getDefaultKuboRpcClient(): import("../types.js").KuboRpcClient;
44
44
  getDefaultKuboPubsubClient(): import("../types.js").PubsubClient;
@@ -1 +1 @@
1
- export declare const version = "0.0.71";
1
+ export declare const version = "0.0.72";
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by config/generate-version.js — do not edit
2
- export const version = "0.0.71";
2
+ export const version = "0.0.72";
3
3
  //# sourceMappingURL=generated-version.js.map
@@ -22,6 +22,20 @@ export declare class Libp2pJsClient {
22
22
  _mergedHeliaOptions: Parameters<typeof createHelia>[0];
23
23
  key: Libp2pJsClientInit["key"];
24
24
  countOfUsesOfInstance: number;
25
+ /**
26
+ * The running Helia node backing this libp2p-js client — the public, semver-covered way for
27
+ * consumers that share the node (e.g. @bitsocial/pubsub-voting, bitsocial-seeder) to reach it,
28
+ * instead of the private `_helia` field (issue #221).
29
+ *
30
+ * The returned node is guaranteed to carry, in addition to Helia's own surface:
31
+ * - `libp2p.services.pubsub` — the gossipsub service registered at node construction
32
+ * - `libp2p.services.fetch` — the `@libp2p/fetch` service registered at node construction
33
+ * - `blockstore` — the node's block storage (bitswap-backed retrieval)
34
+ * - `libp2p.contentRouting` — the delegated-routing aggregation over `httpRoutersOptions`
35
+ *
36
+ * A breaking change to what this accessor returns is a breaking pkc-js release.
37
+ */
38
+ get heliaNode(): HeliaWithLibp2pPubsub;
25
39
  constructor(libp2pJsClientOptions: Libp2pJsClientInit);
26
40
  }
27
41
  export {};
@@ -1,5 +1,21 @@
1
1
  import { hideClassPrivateProps } from "../util.js";
2
2
  export class Libp2pJsClient {
3
+ /**
4
+ * The running Helia node backing this libp2p-js client — the public, semver-covered way for
5
+ * consumers that share the node (e.g. @bitsocial/pubsub-voting, bitsocial-seeder) to reach it,
6
+ * instead of the private `_helia` field (issue #221).
7
+ *
8
+ * The returned node is guaranteed to carry, in addition to Helia's own surface:
9
+ * - `libp2p.services.pubsub` — the gossipsub service registered at node construction
10
+ * - `libp2p.services.fetch` — the `@libp2p/fetch` service registered at node construction
11
+ * - `blockstore` — the node's block storage (bitswap-backed retrieval)
12
+ * - `libp2p.contentRouting` — the delegated-routing aggregation over `httpRoutersOptions`
13
+ *
14
+ * A breaking change to what this accessor returns is a breaking pkc-js release.
15
+ */
16
+ get heliaNode() {
17
+ return this._helia;
18
+ }
3
19
  constructor(libp2pJsClientOptions) {
4
20
  this._helia = libp2pJsClientOptions.helia;
5
21
  this._heliaUnixfs = libp2pJsClientOptions.heliaUnixfs;
@@ -1 +1 @@
1
- {"version":3,"file":"libp2pjsClient.js","sourceRoot":"","sources":["../../../src/helia/libp2pjsClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,OAAO,cAAc;IAUvB,YAAY,qBAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,+BAA+B,GAAG,qBAAqB,CAAC,+BAA+B,CAAC;QAC7F,IAAI,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC;QACpE,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,qBAAqB,CAAC;QAEzE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ"}
1
+ {"version":3,"file":"libp2pjsClient.js","sourceRoot":"","sources":["../../../src/helia/libp2pjsClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,OAAO,cAAc;IAUvB;;;;;;;;;;;;OAYG;IACH,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,YAAY,qBAAyC;QACjD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,qBAAqB,CAAC,WAAW,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,CAAC;QAC9D,IAAI,CAAC,+BAA+B,GAAG,qBAAqB,CAAC,+BAA+B,CAAC;QAC7F,IAAI,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC;QACpE,IAAI,CAAC,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,qBAAqB,CAAC;QAEzE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACJ"}
@@ -256,3 +256,5 @@ export declare const challenges: Record<string, import("zod/v4/core").$InferInne
256
256
  }, import("zod/v4/core").$strict>>>;
257
257
  export type { NameResolverInterface } from "./schema.js";
258
258
  export type { NameResolver } from "./types.js";
259
+ export type { Libp2pJsClient } from "./helia/libp2pjsClient.js";
260
+ export type { HeliaWithLibp2pPubsub } from "./helia/types.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkcprotocol/pkc-js",
3
- "version": "0.0.71",
3
+ "version": "0.0.72",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "prebuild": "node config/generate-version.js",