@pkcprotocol/pkc-js 0.0.64 → 0.0.67

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 (53) hide show
  1. package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +1 -0
  2. package/dist/browser/clients/rpc-client/pkc-rpc-client.js +14 -1
  3. package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  4. package/dist/browser/community/community-client-manager.js +11 -0
  5. package/dist/browser/community/community-client-manager.js.map +1 -1
  6. package/dist/browser/errors.d.ts +3 -0
  7. package/dist/browser/errors.js +3 -0
  8. package/dist/browser/errors.js.map +1 -1
  9. package/dist/browser/generated-version.d.ts +1 -1
  10. package/dist/browser/generated-version.js +1 -1
  11. package/dist/browser/helia/helia-for-pkc.js +224 -10
  12. package/dist/browser/helia/helia-for-pkc.js.map +1 -1
  13. package/dist/browser/helia/types.d.ts +2 -0
  14. package/dist/browser/helia/util.d.ts +25 -0
  15. package/dist/browser/helia/util.js +163 -0
  16. package/dist/browser/helia/util.js.map +1 -1
  17. package/dist/browser/pkc-error.d.ts +1 -1
  18. package/dist/browser/rpc/src/index.js +7 -1
  19. package/dist/browser/rpc/src/index.js.map +1 -1
  20. package/dist/browser/signer/signatures.js +26 -0
  21. package/dist/browser/signer/signatures.js.map +1 -1
  22. package/dist/bundled/bundle-manifest.json +31 -31
  23. package/dist/bundled/chunks/{helia-for-pkc-CYDRSysz.js → helia-for-pkc-CTxzGps-.js} +154 -4
  24. package/dist/bundled/chunks/{local-community-DyaGG6lj.js → local-community-DJX_xmB4.js} +1 -1
  25. package/dist/bundled/chunks/{local-community-DYvRQWsK.js → local-community-T3mSbjdf.js} +26 -26
  26. package/dist/bundled/chunks/{node-DadVit9c.js → node-zemQ3e2S.js} +14 -6
  27. package/dist/bundled/chunks/{rpc-local-community-1Uvl5iwp.js → rpc-local-community-ByjBdSQ5.js} +38 -17
  28. package/dist/bundled/chunks/{schema-Dtvt2tQ8.js → schema-B47aYWNu.js} +4 -1
  29. package/dist/bundled/chunks/{util-CjfTxkQ8.js → util-P3adfecj.js} +117 -2
  30. package/dist/bundled/index.js +1 -1
  31. package/dist/bundled/rpc/src/index.js +11 -6
  32. package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +1 -0
  33. package/dist/node/clients/rpc-client/pkc-rpc-client.js +14 -1
  34. package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  35. package/dist/node/community/community-client-manager.js +11 -0
  36. package/dist/node/community/community-client-manager.js.map +1 -1
  37. package/dist/node/errors.d.ts +3 -0
  38. package/dist/node/errors.js +3 -0
  39. package/dist/node/errors.js.map +1 -1
  40. package/dist/node/generated-version.d.ts +1 -1
  41. package/dist/node/generated-version.js +1 -1
  42. package/dist/node/helia/helia-for-pkc.js +224 -10
  43. package/dist/node/helia/helia-for-pkc.js.map +1 -1
  44. package/dist/node/helia/types.d.ts +2 -0
  45. package/dist/node/helia/util.d.ts +25 -0
  46. package/dist/node/helia/util.js +163 -0
  47. package/dist/node/helia/util.js.map +1 -1
  48. package/dist/node/pkc-error.d.ts +1 -1
  49. package/dist/node/rpc/src/index.js +7 -1
  50. package/dist/node/rpc/src/index.js.map +1 -1
  51. package/dist/node/signer/signatures.js +26 -0
  52. package/dist/node/signer/signatures.js.map +1 -1
  53. package/package.json +1 -1
@@ -2,6 +2,7 @@ import type { createHelia } from "helia";
2
2
  import type { KuboRpcClient } from "../types.js";
3
3
  import type { PubsubRoutingComponents } from "@helia/ipns/routing";
4
4
  import type { GossipSub } from "@libp2p/gossipsub";
5
+ import type { Fetch } from "@libp2p/fetch";
5
6
  export interface HeliaWithKuboRpcClientFunctions extends Pick<NonNullable<KuboRpcClient["_client"]>, "add" | "cat" | "pubsub" | "stop"> {
6
7
  add: KuboRpcClient["_client"]["add"];
7
8
  name: Pick<KuboRpcClient["_client"]["name"], "resolve">;
@@ -17,6 +18,7 @@ export interface HeliaWithLibp2pPubsub extends baseHelia {
17
18
  libp2p: baseHelia["libp2p"] & {
18
19
  services: baseHelia["libp2p"]["services"] & {
19
20
  pubsub: PubsubRoutingComponents["libp2p"]["services"]["pubsub"] & GossipSubWithMeshPeers;
21
+ fetch: Fetch;
20
22
  };
21
23
  };
22
24
  }
@@ -1,4 +1,5 @@
1
1
  import type { HeliaWithLibp2pPubsub } from "./types.js";
2
+ import type { PeerId } from "@libp2p/interface";
2
3
  import Logger from "../logger.js";
3
4
  export interface HeliaDebugContext {
4
5
  heliaPeerId: string;
@@ -26,3 +27,27 @@ export declare function connectToPubsubPeers({ helia, pubsubTopic, maxPeers, opt
26
27
  signal?: AbortSignal;
27
28
  };
28
29
  }): Promise<Awaited<ReturnType<typeof helia.libp2p.dial>>[]>;
30
+ export declare function selectBitswapSessionSeedPeers(args: {
31
+ connectedPeers: PeerId[];
32
+ pubsubSubscriberPeerIdStrings: string[];
33
+ recentIpnsRecordServerPeerIdStrings: string[];
34
+ maxSeeds: number;
35
+ }): PeerId[];
36
+ export interface DirectFetchResult {
37
+ recordBytes: Uint8Array;
38
+ peerId: string;
39
+ source: "subscriber" | "provider";
40
+ durationMs: number;
41
+ }
42
+ export declare function directFetchIpnsRecordFromProviders({ helia, pubsubTopic, routingKey, maxPeers, validate, options, log }: {
43
+ helia: HeliaWithLibp2pPubsub;
44
+ pubsubTopic: string;
45
+ routingKey: Uint8Array;
46
+ maxPeers: number;
47
+ validate: (routingKey: Uint8Array, bytes: Uint8Array) => Promise<void>;
48
+ log: Logger;
49
+ options?: {
50
+ signal?: AbortSignal;
51
+ timeoutMs?: number;
52
+ };
53
+ }): Promise<DirectFetchResult | undefined>;
@@ -2,6 +2,10 @@ import { PKCError } from "../pkc-error.js";
2
2
  import { pubsubTopicToDhtKeyCid } from "../util.js";
3
3
  const TOPIC_SUBSCRIBER_WAIT_TIMEOUT_MS = 10_000;
4
4
  const MESH_PEER_WAIT_TIMEOUT_MS = 3_000;
5
+ // Per-peer bound on a single libp2p/fetch request in directFetchIpnsRecordFromProviders. The
6
+ // @helia/ipns pubsub router uses 2.5s once a connection exists; we allow a little more because
7
+ // our provider-branch fetch can race a still-completing dial.
8
+ const DIRECT_FETCH_PER_PEER_TIMEOUT_MS = 5_000;
5
9
  export function getHeliaDebugContext(helia) {
6
10
  const connections = helia.libp2p.getConnections();
7
11
  return {
@@ -272,4 +276,163 @@ export async function connectToPubsubPeers({ helia, pubsubTopic, maxPeers, optio
272
276
  }
273
277
  return connectedPeersWithContent;
274
278
  }
279
+ // Pick which already-connected peers to seed a bitswap session with (issue #189). Seeded
280
+ // providers are consumed by @helia/utils' AbstractSession before it queries routing, so a good
281
+ // seed means the first WANT-BLOCK goes out immediately and routing is only a background top-up.
282
+ // Priority order mirrors "who most likely has the DAG we're about to walk":
283
+ // 1. peers that recently served us an IPNS record over the direct-fetch path (in the pkc
284
+ // topology the record server essentially always has the blocks the record points to)
285
+ // 2. gossipsub subscribers of topics we're subscribed to (community-serving peers)
286
+ // 3. any other connected peer
287
+ // The cap must stay below the session's maxProviders (default 5) so the background routing
288
+ // query keeps contributing discovery redundancy instead of being crowded out by seeds.
289
+ export function selectBitswapSessionSeedPeers(args) {
290
+ if (args.connectedPeers.length === 0 || args.maxSeeds <= 0)
291
+ return [];
292
+ const connectedByString = new Map(args.connectedPeers.map((peer) => [peer.toString(), peer]));
293
+ const seeds = [];
294
+ const seededStrings = new Set();
295
+ const pushIfConnected = (peerIdString) => {
296
+ const connectedPeer = connectedByString.get(peerIdString);
297
+ if (connectedPeer && !seededStrings.has(peerIdString)) {
298
+ seededStrings.add(peerIdString);
299
+ seeds.push(connectedPeer);
300
+ }
301
+ };
302
+ args.recentIpnsRecordServerPeerIdStrings.forEach(pushIfConnected);
303
+ args.pubsubSubscriberPeerIdStrings.forEach(pushIfConnected);
304
+ for (const peer of args.connectedPeers)
305
+ pushIfConnected(peer.toString());
306
+ return seeds.slice(0, args.maxSeeds);
307
+ }
308
+ // Fetch an IPNS record over the libp2p fetch protocol (`/libp2p/fetch/0.0.1`) directly and in
309
+ // parallel from BOTH (a) peers already subscribed to the topic on our gossipsub
310
+ // (getSubscribers) and (b) providers freshly discovered from the HTTP routers (findProviders).
311
+ // The first signature-valid record wins; the remaining fetches are aborted.
312
+ //
313
+ // This bypasses the gossipsub subscription handshake that @helia/ipns's PubSubRouting.get()
314
+ // waits on: get() only fetches from getSubscribers(topic) and throws NotFoundError when that
315
+ // list is empty, which is why the resolve path currently blocks on waitForTopicSubscriber (a
316
+ // 10s floor) before it can fetch. The publisher (kubo via go-libp2p-pubsub-router, or another
317
+ // helia via registerLookupFunction) answers a fetch request with the current record regardless
318
+ // of subscription state, so we can fetch the moment a provider connection opens.
319
+ //
320
+ // Returns undefined (not throw) when both branches exhaust without a valid record, so the
321
+ // caller can fall back to the legacy router.get() path. Throws only when the caller's signal
322
+ // aborts with no winner.
323
+ export async function directFetchIpnsRecordFromProviders({ helia, pubsubTopic, routingKey, maxPeers, validate, options, log }) {
324
+ if (options?.signal?.aborted)
325
+ throw new PKCError("ERR_IPNS_DIRECT_FETCH_ABORTED", { pubsubTopic, ...getHeliaDebugContext(helia) });
326
+ const start = Date.now();
327
+ const fetchService = helia.libp2p.services.fetch;
328
+ const pubsub = helia.libp2p.services.pubsub;
329
+ const contentCid = pubsubTopicToDhtKeyCid(pubsubTopic);
330
+ // Aborted on the first valid record so every losing fetch (and the findProviders iterator)
331
+ // stops promptly rather than running to its own per-peer timeout.
332
+ const resultController = new AbortController();
333
+ let winner;
334
+ const peerToError = {};
335
+ const recordErr = (peerId, e) => {
336
+ const err = e;
337
+ peerToError[peerId.toString()] = { errorName: err.name, errorMessage: err.message };
338
+ log.trace("Direct IPNS fetch failed from peer", peerId.toString(), "due to error", e);
339
+ };
340
+ // Fetch + validate from an already-connected peer. check-then-set of `winner` is safe on the
341
+ // single-threaded event loop because there is no await between the guard and the assignment.
342
+ const tryFetchFromPeer = async (peerId, source) => {
343
+ if (resultController.signal.aborted || winner)
344
+ return;
345
+ // The fetch service's own timeout is fixed at construction, so bound each call via signal.
346
+ const timeoutSignal = AbortSignal.timeout(options?.timeoutMs ?? DIRECT_FETCH_PER_PEER_TIMEOUT_MS);
347
+ const signal = options?.signal
348
+ ? AbortSignal.any([options.signal, resultController.signal, timeoutSignal])
349
+ : AbortSignal.any([resultController.signal, timeoutSignal]);
350
+ try {
351
+ const bytes = await fetchService.fetch(peerId, routingKey, { signal });
352
+ if (bytes == null) {
353
+ log.trace("Peer", peerId.toString(), "did not have IPNS record for topic", pubsubTopic);
354
+ return;
355
+ }
356
+ await validate(routingKey, bytes); // throws on bad signature / wrong routing key
357
+ if (!resultController.signal.aborted && !winner) {
358
+ winner = { recordBytes: bytes, peerId: peerId.toString(), source, durationMs: Date.now() - start };
359
+ resultController.abort();
360
+ }
361
+ }
362
+ catch (e) {
363
+ recordErr(peerId, e);
364
+ }
365
+ };
366
+ // Subscriber branch: fetch immediately from every peer gossipsub already reports as
367
+ // subscribed (they are connected, so no dial needed).
368
+ const subscriberTasks = pubsub.getSubscribers(pubsubTopic).map((peerId) => tryFetchFromPeer(peerId, "subscriber"));
369
+ // Provider branch: discover providers of the topic CID from the HTTP routers, dial each, then
370
+ // fetch the moment the dial completes. Stop enqueueing after maxPeers dialable providers or on
371
+ // a winner.
372
+ const providerBranch = (async () => {
373
+ const findProvidersAbort = new AbortController();
374
+ const findProvidersSignal = options?.signal
375
+ ? AbortSignal.any([options.signal, findProvidersAbort.signal, resultController.signal])
376
+ : AbortSignal.any([findProvidersAbort.signal, resultController.signal]);
377
+ const dialFetchTasks = [];
378
+ let attempted = 0;
379
+ try {
380
+ for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid, { ...options, signal: findProvidersSignal })) {
381
+ if (resultController.signal.aborted)
382
+ break;
383
+ // Providers whose announced addrs are all undialable must not consume one of the
384
+ // maxPeers attempt slots (issue #188): in a browser with a WSS-only connection
385
+ // gater, some routers consistently serve records with only tcp/quic addrs (or none)
386
+ // and answer fast, so their instantly-failing dials would otherwise burn every slot
387
+ // and force the caller back onto the ~10s legacy warmup path. We still dial them —
388
+ // the peerstore may know dialable addrs the record lacks — but only providers with
389
+ // at least one dialable announced addr count toward maxPeers. isDialable is a local
390
+ // check (gater + transport match), not a network round-trip.
391
+ const announcedAddrs = peer.multiaddrs ?? [];
392
+ const hasDialableAddr = announcedAddrs.length > 0 && (await helia.libp2p.isDialable(announcedAddrs));
393
+ dialFetchTasks.push((async () => {
394
+ try {
395
+ // Not all routers merge discovered multiaddrs into the peerstore, so dial-by-id
396
+ // could otherwise fail with "no addresses for peer" (mirrors connectToPubsubPeers).
397
+ if (peer.multiaddrs?.length)
398
+ await helia.libp2p.peerStore.merge(peer.id, { multiaddrs: peer.multiaddrs });
399
+ // Bind the dial to the winner signal too, so a losing dial is cancelled the
400
+ // moment another peer wins rather than running to its own timeout and delaying
401
+ // Promise.allSettled(dialFetchTasks) below.
402
+ const dialSignal = options?.signal
403
+ ? AbortSignal.any([options.signal, resultController.signal])
404
+ : resultController.signal;
405
+ await helia.libp2p.dial(peer.id, { signal: dialSignal }); // no-op if already connected
406
+ await tryFetchFromPeer(peer.id, "provider");
407
+ }
408
+ catch (e) {
409
+ recordErr(peer.id, e);
410
+ }
411
+ })());
412
+ if (hasDialableAddr && ++attempted >= maxPeers) {
413
+ findProvidersAbort.abort();
414
+ break;
415
+ }
416
+ }
417
+ }
418
+ catch (e) {
419
+ // findProviders may throw the abort we caused ourselves (winner found / maxPeers). Any
420
+ // genuine error is non-fatal here: the subscriber branch may still win, and on total
421
+ // exhaustion we return undefined so the caller falls back to router.get().
422
+ if (!findProvidersSignal.aborted)
423
+ log.trace("findProviders errored during direct IPNS fetch for topic", pubsubTopic, e);
424
+ }
425
+ await Promise.allSettled(dialFetchTasks);
426
+ })();
427
+ // Await both branches so no in-flight fetch/dial leaks past return.
428
+ await Promise.allSettled([...subscriberTasks, providerBranch]);
429
+ if (winner) {
430
+ log.trace("Direct IPNS fetch won from", winner.source, winner.peerId, "in", winner.durationMs, "ms for topic", pubsubTopic);
431
+ return winner;
432
+ }
433
+ // If the caller aborted us and nobody won, surface the abort rather than a silent miss.
434
+ if (options?.signal?.aborted)
435
+ throw new PKCError("ERR_IPNS_DIRECT_FETCH_ABORTED", { pubsubTopic, peerToError, ...getHeliaDebugContext(helia) });
436
+ return undefined;
437
+ }
275
438
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/helia/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/helia/util.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare class PKCError extends CustomError {
9
9
  toString(): string;
10
10
  toJSON(): {
11
11
  name: string;
12
- code: "ERR_COMMUNITY_SIGNER_NOT_DEFINED" | "ERR_COMMUNITY_CAN_EITHER_RUN_OR_UPDATE" | "ERR_PUBLICATION_MISSING_FIELD" | "ERR_COMMUNITY_MISSING_FIELD" | "ERR_COMMUNITY_OPTIONS_MISSING_ADDRESS" | "ERR_INVALID_COMMUNITY_ADDRESS_SCHEMA" | "ERR_CID_IS_INVALID" | "ERR_DATA_PATH_IS_NOT_DEFINED" | "ERR_COMMUNITY_OWNER_ATTEMPTED_EDIT_NEW_ADDRESS_THAT_ALREADY_EXISTS" | "ERR_COMMENT_MISSING_IPFS_AND_UPDATE" | "ERR_COMMENT_MISSING_CID" | "ERR_COMMENT_MISSING_IPFS" | "ERR_COMMENT_MISSING_UPDATE" | "ERR_COMMENT_IPFS_COMMUNITY_NAME_MISMATCH" | "ERR_NEED_TO_STOP_UPDATING_COMMUNITY_BEFORE_STARTING" | "ERR_HELIAS_STOPPING_OR_STOPPED" | "ERR_FAILED_TO_DIAL_ANY_PUBSUB_PEERS_FROM_DELEGATED_ROUTERS" | "ERR_FETCH_OVER_IPNS_OVER_PUBSUB_RETURNED_UNDEFINED" | "ERR_FAILED_TO_DIAL_ANY_PEERS_PROVIDING_CID" | "ERR_GET_COMMUNITY_TIMED_OUT" | "ERR_TIMEOUT_WAITING_FOR_PUBSUB_TOPIC_PEERS" | "ERR_PUBSUB_TOPIC_PEER_WAIT_ABORTED" | "ERR_TIMED_OUT_RM_MFS_FILE" | "ERR_ABORTED_RESOLVING_TEXT_RECORD" | "ERR_CALLED_COMMUNITY_STOP_WITHOUT_UPDATE" | "ERR_PKC_MISSING_NATIVE_FUNCTIONS" | "ERR_CAN_NOT_RUN_A_COMMUNITY_WITH_NO_IPFS_NODE" | "ERR_PKC_OPTION_NOT_ACCEPTED" | "ERR_FAILED_TO_GET_CONFIG_ON_KUBO_NODE" | "ERR_FAILED_TO_SET_CONFIG_ON_KUBO_NODE" | "ERR_FAILED_TO_SHUTDOWN_KUBO_NODE" | "ERR_CAN_NOT_CREATE_A_LOCAL_COMMUNITY" | "ERR_COMMUNITY_ADDRESS_IS_PROVIDED_AS_NULL_OR_UNDEFINED" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMENT_PUBLICATION_FROM_JSONIFIED_COMMENT" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMENT_EDIT_PUBLICATION_FROM_JSONIFIED_COMMENT_EDIT" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMENT_MODERATION_PUBLICATION_FROM_JSONIFIED_COMMENT_MODERATION" | "ERR_UNABLE_TO_DERIVE_PUBSUB_VOTE_PUBLICATION_FROM_JSONIFIED_VOTE" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMUNITY_EDIT_PUBLICATION_FROM_JSONIFIED_COMMUNITY_EDIT" | "ERR_PKC_SQLITE_LONG_TERM_STORAGE_KEYV_ERROR" | "ERR_PKC_IS_DESTROYED" | "ERR_FAILED_TO_FETCH_IPFS_VIA_GATEWAY" | "ERR_FAILED_TO_FETCH_IPFS_CID_VIA_IPFS_P2P" | "ERR_FAILED_TO_FETCH_IPNS_VIA_GATEWAY" | "ERR_IPNS_RECORD_NOT_FOUND" | "ERR_FAILED_TO_FETCH_COMMUNITY_FROM_GATEWAYS" | "ERR_FETCH_OVER_IPNS_OVER_PUBSUB_FAILED" | "ERR_LIBP2P_FETCH_IPNS_FROM_PEER_TIMEDOUT" | "ERR_FAILED_TO_FETCH_COMMENT_IPFS_FROM_GATEWAYS" | "ERR_FAILED_TO_FETCH_COMMENT_UPDATE_FROM_GATEWAYS" | "ERR_FAILED_TO_FETCH_PAGE_IPFS_FROM_GATEWAYS" | "ERR_FAILED_TO_FETCH_GENERIC_IPFS_FROM_GATEWAYS" | "ERR_FAILED_TO_RESOLVE_IPNS_VIA_IPFS_P2P" | "ERR_FAILED_TO_FETCH_COMMENT_UPDATE_FROM_ALL_POST_UPDATES_RANGES" | "ERR_COMMUNITY_HAS_NO_POST_UPDATES" | "ERR_FAILED_TO_FETCH_GENERIC" | "ERR_OVER_DOWNLOAD_LIMIT" | "ERR_CALCULATED_CID_DOES_NOT_MATCH" | "ERR_FAILED_TO_FETCH_THUMBNAIL_URL_OF_LINK" | "ERR_FAILED_TO_FETCH_THUMBNAIL_DIMENSION_OF_LINK" | "ERR_COMMUNITY_NAME_HAS_CAPITAL_LETTER" | "ERR_GATEWAY_TIMED_OUT_OR_ABORTED" | "ERR_FAILED_TO_PARSE_CID_FROM_GATEWAY_RESPONSE_ETAG" | "ERR_GATEWAY_MISSING_ETAG_HEADER" | "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_SAME_INVALID_COMMUNITY_RECORD" | "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_SAME_UPDATE_CID" | "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_WE_ALREADY_LOADED_THIS_RECORD" | "ERR_GATEWAY_PROVIDED_INCORRECT_X_IPFS_ROOTS" | "ERR_REMOTE_COMMUNITY_RECEIVED_ALREADY_PROCCESSED_RECORD" | "ERR_COMMENT_RECEIVED_ALREADY_PROCESSED_COMMENT_UPDATE" | "ERR_FETCH_CID_P2P_TIMEOUT" | "ERR_FETCH_CID_P2P_TIMEOUT_AFTER_RETRIES" | "ERR_RESOLVED_IPNS_P2P_TO_UNDEFINED" | "ERR_IPNS_RESOLUTION_P2P_TIMEOUT" | "ERR_IPNS_MAX_HOPS_EXCEEDED" | "ERR_RESOLVED_IPNS_TO_UNSUPPORTED_VALUE" | "ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID" | "ERR_FIND_PROVIDERS_TIMEOUT" | "ERR_NO_DEFAULT_IPFS_PROVIDER" | "ERR_NO_DEFAULT_PUBSUB_PROVIDER" | "ERR_NO_DEFAULT_KUBO_RPC_PUBSUB_PROVIDER" | "ERR_NO_DEFAULT_KUBO_RPC_IPFS_PROVIDER" | "ERR_CAN_NOT_HAVE_BOTH_KUBO_AND_LIBP2P_JS_CLIENTS_DEFINED" | "ERR_INVALID_PUBSUB_PROVIDER" | "ERR_ADDED_COMMENT_IPFS_TO_IPFS_BUT_GOT_DIFFERENT_CID" | "ERR_NO_PUBSUB_PROVIDERS_AVAILABLE_TO_PUBLISH_OVER_PUBSUB" | "ERR_INVALID_JSON" | "ERR_INVALID_COMMENT_IPFS_SCHEMA" | "ERR_REPLY_HAS_NOT_DEFINED_POST_CID" | "ERR_REPLY_POST_CID_IS_NOT_PARENT_OF_REPLY" | "ERR_POST_CANNOT_HAVE_QUOTED_CIDS" | "ERR_QUOTED_CID_DOES_NOT_EXIST" | "ERR_QUOTED_CID_NOT_UNDER_POST" | "ERR_QUOTED_CID_IS_PENDING_APPROVAL" | "ERR_INVALID_COMMUNITY_IPFS_SCHEMA" | "ERR_INVALID_COMMENT_UPDATE_SCHEMA" | "ERR_INVALID_PAGE_IPFS_SCHEMA" | "ERR_INVALID_MODQUEUE_PAGE_IPFS_SCHEMA" | "ERR_INVALID_CHALLENGE_DECRYPTED_SCHEMA" | "ERR_INVALID_CHALLENGE_VERIFICATION_DECRYPTED_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_REQUEST_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_ANSWER_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_VERIFICATION_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_LOCAL_COMMUNITY_UPDATE_SCHEMA" | "ERR_INVALID_RPC_COMMUNITY_UPDATING_STATE_SCHEMA" | "ERR_INVALID_RPC_COMMUNITY_STARTED_STATE_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_REQUEST_WITH_COMMUNITY_AUTHOR_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_REMOTE_COMMUNITY_SCHEMA" | "ERR_INVALID_RPC_PUBLICATION_PUBLISHING_STATE_SCHEMA" | "ERR_INVALID_RPC_PUBLICATION_STATE_SCHEMA" | "ERR_INVALID_CID_STRING_SCHEMA" | "ERR_LOCAL_COMMUNITY_PRODUCED_INVALID_SCHEMA" | "ERR_INVALID_RPC_COMMENT_UPDATE_SCHEMA" | "ERR_INVALID_RPC_COMMENT_SCHEMA" | "ERR_INVALID_RPC_COMMENT_UPDATING_STATE_SCHEMA" | "ERR_INVALID_RPC_COMMENT_STATE_SCHEMA" | "ERR_INVALID_CREATE_COMMUNITY_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMENT_EDIT_ARGS_SCHEMA" | "ERR_INVALID_CREATE_VOTE_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMENT_MODERATION_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMENT_ARGS_SCHEMA" | "ERR_INVALID_CREATE_REMOTE_COMMUNITY_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMUNITY_EDIT_ARGS_SCHEMA" | "ERR_GENERIC_RPC_INVALID_SCHEMA" | "ERR_INVALID_NEW_WS_SERVER_SETTINGS_SCHEMA" | "ERR_INVALID_CREATE_NEW_LOCAL_COMMUNITY_USER_OPTIONS" | "ERR_INVALID_COMMENT_EDIT_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_VOTE_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_COMMENT_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_COMMENT_MODERATION_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_COMMUNITY_EDIT_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_COMMUNITY_EDIT_OPTIONS_SCHEMA" | "ERR_INVALID_CHALLENGE_ANSWERS" | "ERR_INVALID_CREATE_PKC_WS_SERVER_OPTIONS_SCHEMA" | "ERR_INVALID_CREATE_PKC_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMUNITY_WITH_RPC_ARGS_SCHEMA" | "ERR_CAN_NOT_SET_EXCLUDE_PUBLICATION_TO_EMPTY_OBJECT" | "ERR_COMMUNITY_HAS_NO_INTERNAL_STATE" | "ERR_AUTHOR_ADDRESS_NOT_MATCHING_SIGNER" | "ERR_AUTHOR_ADDRESS_IS_NOT_A_DOMAIN_OR_B58" | "ERR_SIGNATURE_PUBLIC_KEY_IS_NOT_B58" | "ERR_PUBLICATION_FAILED_TO_DECRYPT_CHALLENGE" | "ERR_SIGNATURE_IS_INVALID" | "ERR_SIGNATURE_HAS_NO_PUBLIC_KEY" | "ERR_COMMENT_UPDATE_EDIT_SIGNATURE_IS_INVALID" | "ERR_THE_COMMUNITY_IPNS_RECORD_POINTS_TO_DIFFERENT_ADDRESS_THAN_WE_EXPECTED" | "ERR_COMMUNITY_NAME_RESOLVES_TO_DIFFERENT_PUBLIC_KEY" | "ERR_AUTHOR_NOT_MATCHING_SIGNATURE" | "ERR_AUTHOR_NAME_MUST_BE_A_DOMAIN" | "ERR_COMMUNITY_IPNS_NAME_DOES_NOT_MATCH_SIGNATURE_PUBLIC_KEY" | "ERR_COMMENT_SHOULD_BE_THE_LATEST_EDIT" | "ERR_COMMENT_UPDATE_IS_NOT_SIGNED_BY_COMMUNITY" | "ERR_AUTHOR_EDIT_IS_NOT_SIGNED_BY_AUTHOR" | "ERR_COMMENT_UPDATE_DIFFERENT_CID_THAN_COMMENT" | "ERR_PAGE_COMMENT_POST_HAS_POST_CID_DEFINED_WITH_DEPTH_0" | "ERR_CHALLENGE_MSG_SIGNER_IS_NOT_COMMUNITY" | "ERR_CHALLENGE_VERIFICATION_MSG_SIGNER_IS_NOT_COMMUNITY" | "ERR_CHALLENGE_REQUEST_ID_NOT_DERIVED_FROM_SIGNATURE" | "ERR_CHALLENGE_SIGNATURE_IS_INVALID" | "ERR_CHALLENGE_VERIFICATION_SIGNATURE_IS_INVALID" | "ERR_LOCAL_COMMUNITY_PRODUCED_INVALID_SIGNATURE" | "ERR_COMMUNITY_POSTS_INVALID" | "ERR_COMMENT_IPFS_SIGNATURE_IS_INVALID" | "ERR_COMMENT_UPDATE_SIGNATURE_IS_INVALID" | "ERR_COMMENT_IPFS_RECORD_INCLUDES_RESERVED_FIELD" | "ERR_COMMENT_IPFS_AUTHOR_INCLUDES_RESERVED_FIELD" | "ERR_COMMENT_UPDATE_RECORD_INCLUDES_RESERVED_FIELD" | "ERR_COMMUNITY_EDIT_HAS_RESERVED_FIELD" | "ERR_COMMUNITY_SIGNATURE_IS_INVALID" | "ERR_COMMUNITY_RECORD_INCLUDES_RESERVED_FIELD" | "ERR_FAILED_TO_RESOLVE_COMMUNITY_DOMAIN" | "ERR_FAILED_TO_RESOLVE_AUTHOR_DOMAIN" | "ERR_AUTHOR_DOMAIN_RESOLVES_TO_DIFFERENT_SIGNER" | "ERR_COMMUNITY_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_VOTE_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_EDIT_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_MODERATION_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_PUBSUB_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_UPDATE_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_REQUEST_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_ANSWER_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_VERIFICATION_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMUNITY_EDIT_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMUNITY_CHANGED_COMMENT_PUBSUB_PUBLICATION_PROPS" | "ERR_COMMUNITY_SENT_CHALLENGE_VERIFICATION_WITH_INVALID_COMMENT" | "ERR_COMMUNITY_SENT_CHALLENGE_VERIFICATION_WITH_INVALID_COMMENTUPDATE" | "ERR_COMMUNITY_SENT_CHALLENGE_VERIFICATION_WITH_INVALID_CID" | "ERR_PAGE_COMMENT_IS_INVALID" | "ERR_PAGE_COMMENT_IS_A_REPLY_BUT_HAS_NO_PARENT_COMMENT_INSTANCE" | "ERR_PAGE_COMMENT_DEPTH_VALUE_IS_NOT_RELATIVE_TO_ITS_PARENT" | "ERR_PAGE_COMMENT_PARENT_DOES_NOT_EXIST_IN_FLAT_PAGE" | "ERR_PAGE_COMMENT_POST_CID_IS_NOT_SAME_AS_POST_CID_OF_COMMENT_INSTANCE" | "ERR_REPLY_IN_FLAT_PAGE_HAS_NO_PARENT_CID" | "ERR_PAGE_COMMENT_NO_WAY_TO_DERIVE_POST_CID" | "ERR_POSTS_PAGE_IS_INVALID" | "ERR_REPLIES_PAGE_IS_INVALID" | "ERR_USER_ATTEMPTS_TO_VALIDATE_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_CID" | "ERR_USER_ATTEMPTS_TO_VALIDATE_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_DEPTH" | "ERR_USER_ATTEMPTS_TO_VALIDATE_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_POST_CID" | "ERR_USER_ATTEMPTS_TO_GET_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_CID" | "ERR_USER_ATTEMPTS_TO_GET_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_DEPTH" | "ERR_USER_ATTEMPTS_TO_GET_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_POST_CID" | "ERR_FAILED_TO_FIND_REPLY_COMMENT_UPDATE_WITHIN_PARENT_COMMENT_PAGE_CIDS" | "ERR_COMMUNITY_REGISTRY_LOOKUP_HAS_NO_ALIASES" | "ERR_INVALID_COMMENT_IPFS" | "ERR_COMMENT_MISSING_POST_CID" | "ERR_INVALID_COMMENT_UPDATE" | "ERR_COMMENT_IN_PAGE_BELONG_TO_DIFFERENT_COMMUNITY" | "ERR_PARENT_CID_OF_COMMENT_IN_PAGE_IS_NOT_CORRECT" | "ERR_PAGE_SIGNATURE_IS_INVALID" | "ERR_MOD_QUEUE_PAGE_IS_INVALID" | "ERR_CHALLENGE_ANSWER_WITH_NO_CHALLENGE_REQUEST" | "ERR_REUSED_PUBSUB_MSG_SIGNER" | "ERR_PUBSUB_MSG_TIMESTAMP_IS_OUTDATED" | "ERR_UNAUTHORIZED_COMMENT_EDIT" | "ERR_COMMUNITY_COMMENT_TIMESTAMP_IS_EARLIER_THAN_PARENT" | "ERR_USER_PUBLISHED_UNDER_PENDING_COMMENT" | "ERR_USER_PUBLISHED_UNDER_DISAPPROVED_COMMENT" | "ERR_MOD_ATTEMPTING_TO_APPROVE_OR_DISAPPROVE_COMMENT_THAT_IS_NOT_PENDING" | "ERR_PUBLICATION_PARENT_DOES_NOT_EXIST_IN_COMMUNITY" | "ERR_COMMUNITY_PUBLICATION_PARENT_CID_NOT_DEFINED" | "ERR_PUBLICATION_INVALID_COMMUNITY_ADDRESS" | "ERR_PUBLICATION_USES_DEPRECATED_SUBPLEBBIT_ADDRESS" | "ERR_PUBLICATION_USES_DEPRECATED_COMMUNITY_ADDRESS" | "ERR_PUBLICATION_INVALID_COMMUNITY_PUBLIC_KEY" | "ERR_PUBLICATION_INVALID_COMMUNITY_NAME" | "ERR_AUTHOR_IS_BANNED" | "ERR_PUBLICATION_HAS_NO_AUTHOR_ADDRESS" | "ERR_COMMUNITY_PUBLICATION_PARENT_HAS_BEEN_REMOVED" | "ERR_COMMUNITY_PUBLICATION_PARENT_HAS_BEEN_DELETED" | "ERR_COMMUNITY_PUBLICATION_POST_HAS_BEEN_DELETED" | "ERR_COMMUNITY_PUBLICATION_POST_HAS_BEEN_REMOVED" | "ERR_COMMUNITY_PUBLICATION_POST_IS_LOCKED" | "ERR_COMMUNITY_PUBLICATION_POST_IS_ARCHIVED" | "ERR_FORBIDDEN_AUTHOR_FIELD" | "ERR_FORBIDDEN_COMMENT_FIELD" | "ERR_FORBIDDEN_SIGNER_FIELD" | "ERR_DUPLICATE_COMMENT" | "ERR_DUPLICATE_COMMENT_MODERATION" | "ERR_DUPLICATE_COMMENT_EDIT" | "ERR_AUTHOR_ADDRESS_UNDEFINED" | "ERR_COMMUNITY_FAILED_TO_DECRYPT_PUBSUB_MSG" | "ERR_REQUEST_PUBLICATION_OVER_ALLOWED_SIZE" | "UNAUTHORIZED_AUTHOR_ATTEMPTED_TO_CHANGE_VOTE" | "COMMENT_LINK_LENGTH_IS_OVER_LIMIT" | "INCORRECT_VOTE_VALUE" | "ERR_COMMENT_HAS_INVALID_LINK_FIELD" | "ERR_POST_LINK_IS_NOT_OF_MEDIA" | "ERR_REPLY_HAS_INVALID_LINK_FIELD" | "ERR_REPLY_LINK_IS_NOT_OF_MEDIA" | "ERR_COMMENT_CONTENT_CONTAINS_MARKDOWN_IMAGE" | "ERR_COMMENT_CONTENT_CONTAINS_MARKDOWN_VIDEO" | "ERR_COMMENT_HAS_LINK_THAT_IS_IMAGE" | "ERR_COMMENT_HAS_LINK_THAT_IS_VIDEO" | "ERR_COMMENT_HAS_SPOILER_ENABLED" | "ERR_REPLY_HAS_LINK_THAT_IS_IMAGE" | "ERR_REPLY_HAS_LINK_THAT_IS_VIDEO" | "ERR_COMMENT_HAS_LINK_THAT_IS_AUDIO" | "ERR_REPLY_HAS_LINK_THAT_IS_AUDIO" | "ERR_REPLY_HAS_LINK" | "ERR_COMMENT_CONTENT_CONTAINS_MARKDOWN_AUDIO" | "ERR_REPLY_HAS_SPOILER_ENABLED" | "ERR_NESTED_REPLIES_NOT_ALLOWED" | "ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE" | "ERR_COMMENT_EDIT_HAS_NO_EDIT_FIELD" | "ERR_COMMENT_MODERATION_HAS_NO_MODERATION_FIELD" | "ERR_REQUEST_ENCRYPTED_IS_INVALID_JSON_AFTER_DECRYPTION" | "ERR_REQUEST_ENCRYPTED_HAS_INVALID_SCHEMA_AFTER_DECRYPTING" | "ERR_CHALLENGE_REQUEST_ENCRYPTED_HAS_NO_PUBLICATION_AFTER_DECRYPTING" | "ERR_CHALLENGE_REQUEST_ENCRYPTED_HAS_MULTIPLE_PUBLICATIONS_AFTER_DECRYPTING" | "ERR_CHALLENGE_ANSWER_IS_INVALID_JSON" | "ERR_CHALLENGE_ANSWER_IS_INVALID_SCHEMA" | "ERR_COMMENT_HAS_RESERVED_FIELD" | "ERR_VOTE_HAS_RESERVED_FIELD" | "ERR_COMMENT_EDIT_HAS_RESERVED_FIELD" | "ERR_PUBLICATION_AUTHOR_HAS_RESERVED_FIELD" | "ERR_COMMENT_EDIT_CAN_NOT_EDIT_COMMENT_IF_NOT_ORIGINAL_AUTHOR" | "ERR_COMMENT_MODERATION_NO_COMMENT_TO_EDIT" | "ERR_COMMENT_EDIT_NO_COMMENT_TO_EDIT" | "ERR_COMMENT_MODERATION_HAS_RESERVED_FIELD" | "ERR_COMMENT_MODERATION_ATTEMPTED_WITHOUT_BEING_MODERATOR" | "ERR_COMMUNITY_EDIT_ATTEMPTED_TO_MODIFY_OWNER_EXCLUSIVE_PROPS" | "ERR_COMMUNITY_EDIT_ATTEMPTED_TO_MODIFY_COMMUNITY_WITHOUT_BEING_OWNER_OR_ADMIN" | "ERR_COMMUNITY_EDIT_ATTEMPTED_TO_NON_PUBLIC_PROPS" | "ERR_PUBLICATION_TIMESTAMP_IS_NOT_IN_PROPER_RANGE" | "ERR_NOT_ALLOWED_TO_PUBLISH_UPVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_DOWNVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_POST_DOWNVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_POST_UPVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_REPLY_DOWNVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_REPLY_UPVOTES" | "ERR_THERE_IS_NO_PREVIOUS_VOTE_TO_CANCEL" | "ERR_POST_FLAIRS_NOT_ALLOWED" | "ERR_POST_FLAIRS_REQUIRED" | "ERR_POST_FLAIR_NOT_IN_ALLOWED_FLAIRS" | "ERR_AUTHOR_FLAIRS_NOT_ALLOWED" | "ERR_AUTHOR_FLAIRS_REQUIRED" | "ERR_AUTHOR_FLAIR_NOT_IN_ALLOWED_FLAIRS" | "ERR_COMMUNITY_COMMENT_MOD_CAN_NOT_LOCK_REPLY" | "ERR_COMMUNITY_COMMENT_MOD_CAN_NOT_ARCHIVE_REPLY" | "ERR_COMMUNITY_COMMENT_EDIT_UNAUTHORIZED_FIELD" | "ERR_PUBLISHING_EDIT_WITH_BOTH_MOD_AND_AUTHOR_FIELDS" | "ERR_FAILED_TO_RESOLVE_TEXT_RECORD" | "ERR_NO_CHAIN_PROVIDER_FOR_CHAIN_TICKER" | "ERR_NO_RESOLVER_FOR_NAME" | "ERR_DOMAIN_TXT_RECORD_NOT_FOUND" | "ERR_DOMAIN_COMMUNITY_ADDRESS_TXT_RECORD_POINT_TO_DIFFERENT_ADDRESS" | "ERR_RESOLVED_TEXT_RECORD_TO_NON_IPNS" | "ERR_COMMUNITY_DOMAIN_HAS_NO_TEXT_RECORD" | "ERR_LOCAL_COMMUNITY_HAS_NO_SIGNER_IN_INTERNAL_STATE" | "ERR_COMMUNITY_STATE_LOCKED" | "ERR_COMMUNITY_CREATION_LOCKED" | "ERR_COMMUNITY_ALREADY_STARTED" | "ERR_FAILED_TO_IMPORT_IPFS_KEY" | "ERR_LOCAL_COMMUNITY_PRODUCED_INVALID_RECORD" | "ERR_FAILED_TO_PARSE_LOCAL_RAW_IPNS_RECORD" | "ERR_FAILED_TO_LOAD_LOCAL_RAW_IPNS_RECORD" | "ERR_FAILED_TO_IMPORT_CHALLENGE_FILE_FACTORY" | "ERR_FAILED_TO_IMPORT_CHALLENGE_FILE" | "ERR_INVALID_RESULT_FROM_GET_CHALLENGE_FUNCTION" | "ERR_LOCAL_COMMUNITY_RECORD_TOO_LARGE" | "ERR_CAN_NOT_LOAD_DB_IF_LOCAL_COMMUNITY_ALREADY_STARTED_IN_ANOTHER_PROCESS" | "ERR_CAN_NOT_EDIT_A_LOCAL_COMMUNITY_THAT_IS_ALREADY_STARTED_IN_ANOTHER_PROCESS" | "CAN_NOT_LOAD_LOCAL_COMMUNITY_IF_DB_DOES_NOT_EXIST" | "ERR_COMMUNITY_START_FAILED_UNKNOWN_ERROR" | "ERR_COMMUNITY_ALREADY_STARTED_IN_SAME_PKC_INSTANCE" | "ERR_PAGE_GENERATED_IS_OVER_EXPECTED_SIZE" | "ERR_PUBSUB_FAILED_TO_SUBSCRIBE" | "ERR_PUBSUB_FAILED_TO_UNSUBSCRIBE" | "ERR_PUBSUB_FAILED_TO_PUBLISH" | "ERR_PUBSUB_DID_NOT_RECEIVE_RESPONSE_AFTER_PUBLISHING_CHALLENGE_REQUEST" | "ERR_ALL_PUBSUB_PROVIDERS_THROW_ERRORS" | "ERR_CHALLENGE_REQUEST_RECEIVED_NO_RESPONSE_FROM_ANY_PROVIDER" | "ERR_PUBLICATION_DID_NOT_RECEIVE_RESPONSE" | "ERR_RPC_AUTH_REQUIRED" | "ERR_FAILED_TO_OPEN_CONNECTION_TO_RPC" | "ERR_FAILED_TO_CREATE_WS_RPC_SERVER" | "ERR_RPC_CLIENT_ATTEMPTING_TO_START_A_REMOTE_COMMUNITY" | "ERR_RPC_CLIENT_TRYING_TO_STOP_COMMUNITY_THAT_IS_NOT_RUNNING" | "ERR_RPC_CLIENT_TRYING_TO_STOP_REMOTE_COMMUNITY" | "ERR_RPC_CLIENT_TRYING_TO_EDIT_REMOTE_COMMUNITY" | "ERR_RPC_CLIENT_TRYING_TO_DELETE_REMOTE_COMMUNITY" | "ERR_GENERIC_RPC_CLIENT_CALL_ERROR" | "ERR_RPC_CLIENT_CHALLENGE_NAME_NOT_AVAILABLE_ON_SERVER" | "ERR_ROLE_ADDRESS_NAME_COULD_NOT_BE_RESOLVED" | "ERR_COMMUNITY_NOT_LOCAL" | "ERR_COMMUNITY_NOT_FOUND" | "ERR_PRIVATE_KEY_EXPORT_NOT_ALLOWED" | "ERR_EXPORT_PATH_NOT_SUPPORTED_OVER_RPC" | "ERR_EXPORT_PATH_TARGETS_LIVE_DB" | "ERR_EXPORT_CANCELLED" | "ERR_EXPORT_BACKUP_FAILED" | "ERR_DOWNLOAD_EXPORT_ID_NOT_FOUND" | "ERR_CHALLENGE_RESULT_OVERRIDES_COMMENT_SIGNED_FIELD" | "ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMENT_UPDATE_FIELD" | "ERR_CHALLENGE_RESULT_OVERRIDES_NON_COMMUNITY_AUTHOR_KEY" | "ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMUNITY_AUTHOR_FIELD";
12
+ code: "ERR_COMMUNITY_SIGNER_NOT_DEFINED" | "ERR_COMMUNITY_CAN_EITHER_RUN_OR_UPDATE" | "ERR_PUBLICATION_MISSING_FIELD" | "ERR_COMMUNITY_MISSING_FIELD" | "ERR_COMMUNITY_OPTIONS_MISSING_ADDRESS" | "ERR_INVALID_COMMUNITY_ADDRESS_SCHEMA" | "ERR_CID_IS_INVALID" | "ERR_DATA_PATH_IS_NOT_DEFINED" | "ERR_COMMUNITY_OWNER_ATTEMPTED_EDIT_NEW_ADDRESS_THAT_ALREADY_EXISTS" | "ERR_COMMENT_MISSING_IPFS_AND_UPDATE" | "ERR_COMMENT_MISSING_CID" | "ERR_COMMENT_MISSING_IPFS" | "ERR_COMMENT_MISSING_UPDATE" | "ERR_COMMENT_IPFS_COMMUNITY_NAME_MISMATCH" | "ERR_NEED_TO_STOP_UPDATING_COMMUNITY_BEFORE_STARTING" | "ERR_HELIAS_STOPPING_OR_STOPPED" | "ERR_FAILED_TO_DIAL_ANY_PUBSUB_PEERS_FROM_DELEGATED_ROUTERS" | "ERR_FETCH_OVER_IPNS_OVER_PUBSUB_RETURNED_UNDEFINED" | "ERR_FAILED_TO_DIAL_ANY_PEERS_PROVIDING_CID" | "ERR_GET_COMMUNITY_TIMED_OUT" | "ERR_TIMEOUT_WAITING_FOR_PUBSUB_TOPIC_PEERS" | "ERR_PUBSUB_TOPIC_PEER_WAIT_ABORTED" | "ERR_IPNS_DIRECT_FETCH_ABORTED" | "ERR_TIMED_OUT_RM_MFS_FILE" | "ERR_ABORTED_RESOLVING_TEXT_RECORD" | "ERR_CALLED_COMMUNITY_STOP_WITHOUT_UPDATE" | "ERR_PKC_MISSING_NATIVE_FUNCTIONS" | "ERR_CAN_NOT_RUN_A_COMMUNITY_WITH_NO_IPFS_NODE" | "ERR_PKC_OPTION_NOT_ACCEPTED" | "ERR_FAILED_TO_GET_CONFIG_ON_KUBO_NODE" | "ERR_FAILED_TO_SET_CONFIG_ON_KUBO_NODE" | "ERR_FAILED_TO_SHUTDOWN_KUBO_NODE" | "ERR_CAN_NOT_CREATE_A_LOCAL_COMMUNITY" | "ERR_COMMUNITY_ADDRESS_IS_PROVIDED_AS_NULL_OR_UNDEFINED" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMENT_PUBLICATION_FROM_JSONIFIED_COMMENT" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMENT_EDIT_PUBLICATION_FROM_JSONIFIED_COMMENT_EDIT" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMENT_MODERATION_PUBLICATION_FROM_JSONIFIED_COMMENT_MODERATION" | "ERR_UNABLE_TO_DERIVE_PUBSUB_VOTE_PUBLICATION_FROM_JSONIFIED_VOTE" | "ERR_UNABLE_TO_DERIVE_PUBSUB_COMMUNITY_EDIT_PUBLICATION_FROM_JSONIFIED_COMMUNITY_EDIT" | "ERR_PKC_SQLITE_LONG_TERM_STORAGE_KEYV_ERROR" | "ERR_PKC_IS_DESTROYED" | "ERR_FAILED_TO_FETCH_IPFS_VIA_GATEWAY" | "ERR_FAILED_TO_FETCH_IPFS_CID_VIA_IPFS_P2P" | "ERR_FAILED_TO_FETCH_IPNS_VIA_GATEWAY" | "ERR_IPNS_RECORD_NOT_FOUND" | "ERR_FAILED_TO_FETCH_COMMUNITY_FROM_GATEWAYS" | "ERR_FETCH_OVER_IPNS_OVER_PUBSUB_FAILED" | "ERR_LIBP2P_FETCH_IPNS_FROM_PEER_TIMEDOUT" | "ERR_FAILED_TO_FETCH_COMMENT_IPFS_FROM_GATEWAYS" | "ERR_FAILED_TO_FETCH_COMMENT_UPDATE_FROM_GATEWAYS" | "ERR_FAILED_TO_FETCH_PAGE_IPFS_FROM_GATEWAYS" | "ERR_FAILED_TO_FETCH_GENERIC_IPFS_FROM_GATEWAYS" | "ERR_FAILED_TO_RESOLVE_IPNS_VIA_IPFS_P2P" | "ERR_FAILED_TO_FETCH_COMMENT_UPDATE_FROM_ALL_POST_UPDATES_RANGES" | "ERR_COMMUNITY_HAS_NO_POST_UPDATES" | "ERR_FAILED_TO_FETCH_GENERIC" | "ERR_OVER_DOWNLOAD_LIMIT" | "ERR_CALCULATED_CID_DOES_NOT_MATCH" | "ERR_FAILED_TO_FETCH_THUMBNAIL_URL_OF_LINK" | "ERR_FAILED_TO_FETCH_THUMBNAIL_DIMENSION_OF_LINK" | "ERR_COMMUNITY_NAME_HAS_CAPITAL_LETTER" | "ERR_GATEWAY_TIMED_OUT_OR_ABORTED" | "ERR_FAILED_TO_PARSE_CID_FROM_GATEWAY_RESPONSE_ETAG" | "ERR_GATEWAY_MISSING_ETAG_HEADER" | "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_SAME_INVALID_COMMUNITY_RECORD" | "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_SAME_UPDATE_CID" | "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_WE_ALREADY_LOADED_THIS_RECORD" | "ERR_GATEWAY_PROVIDED_INCORRECT_X_IPFS_ROOTS" | "ERR_REMOTE_COMMUNITY_RECEIVED_ALREADY_PROCCESSED_RECORD" | "ERR_COMMENT_RECEIVED_ALREADY_PROCESSED_COMMENT_UPDATE" | "ERR_FETCH_CID_P2P_TIMEOUT" | "ERR_INVALID_KUBO_STYLE_TIMEOUT" | "ERR_FETCH_CID_P2P_TIMEOUT_AFTER_RETRIES" | "ERR_RESOLVED_IPNS_P2P_TO_UNDEFINED" | "ERR_IPNS_RESOLUTION_P2P_TIMEOUT" | "ERR_IPNS_MAX_HOPS_EXCEEDED" | "ERR_RESOLVED_IPNS_TO_UNSUPPORTED_VALUE" | "ERR_GATEWAY_IPNS_RECORD_CHAIN_INVALID" | "ERR_FIND_PROVIDERS_TIMEOUT" | "ERR_NO_DEFAULT_IPFS_PROVIDER" | "ERR_NO_DEFAULT_PUBSUB_PROVIDER" | "ERR_NO_DEFAULT_KUBO_RPC_PUBSUB_PROVIDER" | "ERR_NO_DEFAULT_KUBO_RPC_IPFS_PROVIDER" | "ERR_CAN_NOT_HAVE_BOTH_KUBO_AND_LIBP2P_JS_CLIENTS_DEFINED" | "ERR_INVALID_PUBSUB_PROVIDER" | "ERR_ADDED_COMMENT_IPFS_TO_IPFS_BUT_GOT_DIFFERENT_CID" | "ERR_NO_PUBSUB_PROVIDERS_AVAILABLE_TO_PUBLISH_OVER_PUBSUB" | "ERR_INVALID_JSON" | "ERR_INVALID_COMMENT_IPFS_SCHEMA" | "ERR_REPLY_HAS_NOT_DEFINED_POST_CID" | "ERR_REPLY_POST_CID_IS_NOT_PARENT_OF_REPLY" | "ERR_POST_CANNOT_HAVE_QUOTED_CIDS" | "ERR_QUOTED_CID_DOES_NOT_EXIST" | "ERR_QUOTED_CID_NOT_UNDER_POST" | "ERR_QUOTED_CID_IS_PENDING_APPROVAL" | "ERR_INVALID_COMMUNITY_IPFS_SCHEMA" | "ERR_INVALID_COMMENT_UPDATE_SCHEMA" | "ERR_INVALID_PAGE_IPFS_SCHEMA" | "ERR_INVALID_MODQUEUE_PAGE_IPFS_SCHEMA" | "ERR_INVALID_CHALLENGE_DECRYPTED_SCHEMA" | "ERR_INVALID_CHALLENGE_VERIFICATION_DECRYPTED_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_REQUEST_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_ANSWER_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_VERIFICATION_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_LOCAL_COMMUNITY_UPDATE_SCHEMA" | "ERR_INVALID_RPC_COMMUNITY_UPDATING_STATE_SCHEMA" | "ERR_INVALID_RPC_COMMUNITY_STARTED_STATE_SCHEMA" | "ERR_INVALID_RPC_ENCODED_CHALLENGE_REQUEST_WITH_COMMUNITY_AUTHOR_PUBSUB_MSG_SCHEMA" | "ERR_INVALID_RPC_REMOTE_COMMUNITY_SCHEMA" | "ERR_INVALID_RPC_PUBLICATION_PUBLISHING_STATE_SCHEMA" | "ERR_INVALID_RPC_PUBLICATION_STATE_SCHEMA" | "ERR_INVALID_CID_STRING_SCHEMA" | "ERR_LOCAL_COMMUNITY_PRODUCED_INVALID_SCHEMA" | "ERR_INVALID_RPC_COMMENT_UPDATE_SCHEMA" | "ERR_INVALID_RPC_COMMENT_SCHEMA" | "ERR_INVALID_RPC_COMMENT_UPDATING_STATE_SCHEMA" | "ERR_INVALID_RPC_COMMENT_STATE_SCHEMA" | "ERR_INVALID_CREATE_COMMUNITY_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMENT_EDIT_ARGS_SCHEMA" | "ERR_INVALID_CREATE_VOTE_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMENT_MODERATION_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMENT_ARGS_SCHEMA" | "ERR_INVALID_CREATE_REMOTE_COMMUNITY_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMUNITY_EDIT_ARGS_SCHEMA" | "ERR_GENERIC_RPC_INVALID_SCHEMA" | "ERR_INVALID_NEW_WS_SERVER_SETTINGS_SCHEMA" | "ERR_INVALID_CREATE_NEW_LOCAL_COMMUNITY_USER_OPTIONS" | "ERR_INVALID_COMMENT_EDIT_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_VOTE_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_COMMENT_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_COMMENT_MODERATION_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_INVALID_COMMUNITY_EDIT_CHALLENGE_REQUEST_TO_ENCRYPT_SCHEMA" | "ERR_COMMUNITY_EDIT_OPTIONS_SCHEMA" | "ERR_INVALID_CHALLENGE_ANSWERS" | "ERR_INVALID_CREATE_PKC_WS_SERVER_OPTIONS_SCHEMA" | "ERR_INVALID_CREATE_PKC_ARGS_SCHEMA" | "ERR_INVALID_CREATE_COMMUNITY_WITH_RPC_ARGS_SCHEMA" | "ERR_CAN_NOT_SET_EXCLUDE_PUBLICATION_TO_EMPTY_OBJECT" | "ERR_COMMUNITY_HAS_NO_INTERNAL_STATE" | "ERR_AUTHOR_ADDRESS_NOT_MATCHING_SIGNER" | "ERR_AUTHOR_ADDRESS_IS_NOT_A_DOMAIN_OR_B58" | "ERR_SIGNATURE_PUBLIC_KEY_IS_NOT_B58" | "ERR_PUBLICATION_FAILED_TO_DECRYPT_CHALLENGE" | "ERR_SIGNATURE_IS_INVALID" | "ERR_SIGNATURE_HAS_NO_PUBLIC_KEY" | "ERR_COMMENT_UPDATE_EDIT_SIGNATURE_IS_INVALID" | "ERR_THE_COMMUNITY_IPNS_RECORD_POINTS_TO_DIFFERENT_ADDRESS_THAN_WE_EXPECTED" | "ERR_COMMUNITY_NAME_RESOLVES_TO_DIFFERENT_PUBLIC_KEY" | "ERR_AUTHOR_NOT_MATCHING_SIGNATURE" | "ERR_AUTHOR_NAME_MUST_BE_A_DOMAIN" | "ERR_COMMUNITY_IPNS_NAME_DOES_NOT_MATCH_SIGNATURE_PUBLIC_KEY" | "ERR_COMMENT_SHOULD_BE_THE_LATEST_EDIT" | "ERR_COMMENT_UPDATE_IS_NOT_SIGNED_BY_COMMUNITY" | "ERR_AUTHOR_EDIT_IS_NOT_SIGNED_BY_AUTHOR" | "ERR_COMMENT_UPDATE_DIFFERENT_CID_THAN_COMMENT" | "ERR_PAGE_COMMENT_POST_HAS_POST_CID_DEFINED_WITH_DEPTH_0" | "ERR_CHALLENGE_MSG_SIGNER_IS_NOT_COMMUNITY" | "ERR_CHALLENGE_VERIFICATION_MSG_SIGNER_IS_NOT_COMMUNITY" | "ERR_CHALLENGE_REQUEST_ID_NOT_DERIVED_FROM_SIGNATURE" | "ERR_CHALLENGE_SIGNATURE_IS_INVALID" | "ERR_CHALLENGE_VERIFICATION_SIGNATURE_IS_INVALID" | "ERR_LOCAL_COMMUNITY_PRODUCED_INVALID_SIGNATURE" | "ERR_COMMUNITY_POSTS_INVALID" | "ERR_COMMENT_IPFS_SIGNATURE_IS_INVALID" | "ERR_COMMENT_UPDATE_SIGNATURE_IS_INVALID" | "ERR_COMMENT_IPFS_RECORD_INCLUDES_RESERVED_FIELD" | "ERR_COMMENT_IPFS_AUTHOR_INCLUDES_RESERVED_FIELD" | "ERR_COMMENT_UPDATE_RECORD_INCLUDES_RESERVED_FIELD" | "ERR_COMMUNITY_EDIT_HAS_RESERVED_FIELD" | "ERR_COMMUNITY_SIGNATURE_IS_INVALID" | "ERR_COMMUNITY_RECORD_INCLUDES_RESERVED_FIELD" | "ERR_FAILED_TO_RESOLVE_COMMUNITY_DOMAIN" | "ERR_FAILED_TO_RESOLVE_AUTHOR_DOMAIN" | "ERR_AUTHOR_DOMAIN_RESOLVES_TO_DIFFERENT_SIGNER" | "ERR_COMMUNITY_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_VOTE_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_EDIT_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_MODERATION_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_PUBSUB_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMENT_UPDATE_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_REQUEST_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_ANSWER_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_CHALLENGE_VERIFICATION_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMUNITY_EDIT_RECORD_INCLUDES_FIELD_NOT_IN_SIGNED_PROPERTY_NAMES" | "ERR_COMMUNITY_CHANGED_COMMENT_PUBSUB_PUBLICATION_PROPS" | "ERR_COMMUNITY_SENT_CHALLENGE_VERIFICATION_WITH_INVALID_COMMENT" | "ERR_COMMUNITY_SENT_CHALLENGE_VERIFICATION_WITH_INVALID_COMMENTUPDATE" | "ERR_COMMUNITY_SENT_CHALLENGE_VERIFICATION_WITH_INVALID_CID" | "ERR_PAGE_COMMENT_IS_INVALID" | "ERR_PAGE_COMMENT_IS_A_REPLY_BUT_HAS_NO_PARENT_COMMENT_INSTANCE" | "ERR_PAGE_COMMENT_DEPTH_VALUE_IS_NOT_RELATIVE_TO_ITS_PARENT" | "ERR_PAGE_COMMENT_PARENT_DOES_NOT_EXIST_IN_FLAT_PAGE" | "ERR_PAGE_COMMENT_POST_CID_IS_NOT_SAME_AS_POST_CID_OF_COMMENT_INSTANCE" | "ERR_REPLY_IN_FLAT_PAGE_HAS_NO_PARENT_CID" | "ERR_PAGE_COMMENT_NO_WAY_TO_DERIVE_POST_CID" | "ERR_POSTS_PAGE_IS_INVALID" | "ERR_REPLIES_PAGE_IS_INVALID" | "ERR_USER_ATTEMPTS_TO_VALIDATE_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_CID" | "ERR_USER_ATTEMPTS_TO_VALIDATE_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_DEPTH" | "ERR_USER_ATTEMPTS_TO_VALIDATE_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_POST_CID" | "ERR_USER_ATTEMPTS_TO_GET_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_CID" | "ERR_USER_ATTEMPTS_TO_GET_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_DEPTH" | "ERR_USER_ATTEMPTS_TO_GET_REPLIES_PAGE_WITHOUT_PARENT_COMMENT_POST_CID" | "ERR_FAILED_TO_FIND_REPLY_COMMENT_UPDATE_WITHIN_PARENT_COMMENT_PAGE_CIDS" | "ERR_COMMUNITY_REGISTRY_LOOKUP_HAS_NO_ALIASES" | "ERR_INVALID_COMMENT_IPFS" | "ERR_COMMENT_MISSING_POST_CID" | "ERR_INVALID_COMMENT_UPDATE" | "ERR_COMMENT_IN_PAGE_BELONG_TO_DIFFERENT_COMMUNITY" | "ERR_PARENT_CID_OF_COMMENT_IN_PAGE_IS_NOT_CORRECT" | "ERR_PAGE_SIGNATURE_IS_INVALID" | "ERR_MOD_QUEUE_PAGE_IS_INVALID" | "ERR_CHALLENGE_ANSWER_WITH_NO_CHALLENGE_REQUEST" | "ERR_REUSED_PUBSUB_MSG_SIGNER" | "ERR_PUBSUB_MSG_TIMESTAMP_IS_OUTDATED" | "ERR_UNAUTHORIZED_COMMENT_EDIT" | "ERR_COMMUNITY_COMMENT_TIMESTAMP_IS_EARLIER_THAN_PARENT" | "ERR_USER_PUBLISHED_UNDER_PENDING_COMMENT" | "ERR_USER_PUBLISHED_UNDER_DISAPPROVED_COMMENT" | "ERR_MOD_ATTEMPTING_TO_APPROVE_OR_DISAPPROVE_COMMENT_THAT_IS_NOT_PENDING" | "ERR_PUBLICATION_PARENT_DOES_NOT_EXIST_IN_COMMUNITY" | "ERR_COMMUNITY_PUBLICATION_PARENT_CID_NOT_DEFINED" | "ERR_PUBLICATION_INVALID_COMMUNITY_ADDRESS" | "ERR_PUBLICATION_USES_DEPRECATED_SUBPLEBBIT_ADDRESS" | "ERR_PUBLICATION_USES_DEPRECATED_COMMUNITY_ADDRESS" | "ERR_PUBLICATION_INVALID_COMMUNITY_PUBLIC_KEY" | "ERR_PUBLICATION_INVALID_COMMUNITY_NAME" | "ERR_AUTHOR_IS_BANNED" | "ERR_PUBLICATION_HAS_NO_AUTHOR_ADDRESS" | "ERR_COMMUNITY_PUBLICATION_PARENT_HAS_BEEN_REMOVED" | "ERR_COMMUNITY_PUBLICATION_PARENT_HAS_BEEN_DELETED" | "ERR_COMMUNITY_PUBLICATION_POST_HAS_BEEN_DELETED" | "ERR_COMMUNITY_PUBLICATION_POST_HAS_BEEN_REMOVED" | "ERR_COMMUNITY_PUBLICATION_POST_IS_LOCKED" | "ERR_COMMUNITY_PUBLICATION_POST_IS_ARCHIVED" | "ERR_FORBIDDEN_AUTHOR_FIELD" | "ERR_FORBIDDEN_COMMENT_FIELD" | "ERR_FORBIDDEN_SIGNER_FIELD" | "ERR_DUPLICATE_COMMENT" | "ERR_DUPLICATE_COMMENT_MODERATION" | "ERR_DUPLICATE_COMMENT_EDIT" | "ERR_AUTHOR_ADDRESS_UNDEFINED" | "ERR_COMMUNITY_FAILED_TO_DECRYPT_PUBSUB_MSG" | "ERR_REQUEST_PUBLICATION_OVER_ALLOWED_SIZE" | "UNAUTHORIZED_AUTHOR_ATTEMPTED_TO_CHANGE_VOTE" | "COMMENT_LINK_LENGTH_IS_OVER_LIMIT" | "INCORRECT_VOTE_VALUE" | "ERR_COMMENT_HAS_INVALID_LINK_FIELD" | "ERR_POST_LINK_IS_NOT_OF_MEDIA" | "ERR_REPLY_HAS_INVALID_LINK_FIELD" | "ERR_REPLY_LINK_IS_NOT_OF_MEDIA" | "ERR_COMMENT_CONTENT_CONTAINS_MARKDOWN_IMAGE" | "ERR_COMMENT_CONTENT_CONTAINS_MARKDOWN_VIDEO" | "ERR_COMMENT_HAS_LINK_THAT_IS_IMAGE" | "ERR_COMMENT_HAS_LINK_THAT_IS_VIDEO" | "ERR_COMMENT_HAS_SPOILER_ENABLED" | "ERR_REPLY_HAS_LINK_THAT_IS_IMAGE" | "ERR_REPLY_HAS_LINK_THAT_IS_VIDEO" | "ERR_COMMENT_HAS_LINK_THAT_IS_AUDIO" | "ERR_REPLY_HAS_LINK_THAT_IS_AUDIO" | "ERR_REPLY_HAS_LINK" | "ERR_COMMENT_CONTENT_CONTAINS_MARKDOWN_AUDIO" | "ERR_REPLY_HAS_SPOILER_ENABLED" | "ERR_NESTED_REPLIES_NOT_ALLOWED" | "ERR_COMMENT_HAS_NO_CONTENT_LINK_TITLE" | "ERR_COMMENT_EDIT_HAS_NO_EDIT_FIELD" | "ERR_COMMENT_MODERATION_HAS_NO_MODERATION_FIELD" | "ERR_REQUEST_ENCRYPTED_IS_INVALID_JSON_AFTER_DECRYPTION" | "ERR_REQUEST_ENCRYPTED_HAS_INVALID_SCHEMA_AFTER_DECRYPTING" | "ERR_CHALLENGE_REQUEST_ENCRYPTED_HAS_NO_PUBLICATION_AFTER_DECRYPTING" | "ERR_CHALLENGE_REQUEST_ENCRYPTED_HAS_MULTIPLE_PUBLICATIONS_AFTER_DECRYPTING" | "ERR_CHALLENGE_ANSWER_IS_INVALID_JSON" | "ERR_CHALLENGE_ANSWER_IS_INVALID_SCHEMA" | "ERR_COMMENT_HAS_RESERVED_FIELD" | "ERR_VOTE_HAS_RESERVED_FIELD" | "ERR_COMMENT_EDIT_HAS_RESERVED_FIELD" | "ERR_PUBLICATION_AUTHOR_HAS_RESERVED_FIELD" | "ERR_COMMENT_EDIT_CAN_NOT_EDIT_COMMENT_IF_NOT_ORIGINAL_AUTHOR" | "ERR_COMMENT_MODERATION_NO_COMMENT_TO_EDIT" | "ERR_COMMENT_EDIT_NO_COMMENT_TO_EDIT" | "ERR_COMMENT_MODERATION_HAS_RESERVED_FIELD" | "ERR_COMMENT_MODERATION_ATTEMPTED_WITHOUT_BEING_MODERATOR" | "ERR_COMMUNITY_EDIT_ATTEMPTED_TO_MODIFY_OWNER_EXCLUSIVE_PROPS" | "ERR_COMMUNITY_EDIT_ATTEMPTED_TO_MODIFY_COMMUNITY_WITHOUT_BEING_OWNER_OR_ADMIN" | "ERR_COMMUNITY_EDIT_ATTEMPTED_TO_NON_PUBLIC_PROPS" | "ERR_PUBLICATION_TIMESTAMP_IS_NOT_IN_PROPER_RANGE" | "ERR_NOT_ALLOWED_TO_PUBLISH_UPVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_DOWNVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_POST_DOWNVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_POST_UPVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_REPLY_DOWNVOTES" | "ERR_NOT_ALLOWED_TO_PUBLISH_REPLY_UPVOTES" | "ERR_THERE_IS_NO_PREVIOUS_VOTE_TO_CANCEL" | "ERR_POST_FLAIRS_NOT_ALLOWED" | "ERR_POST_FLAIRS_REQUIRED" | "ERR_POST_FLAIR_NOT_IN_ALLOWED_FLAIRS" | "ERR_AUTHOR_FLAIRS_NOT_ALLOWED" | "ERR_AUTHOR_FLAIRS_REQUIRED" | "ERR_AUTHOR_FLAIR_NOT_IN_ALLOWED_FLAIRS" | "ERR_COMMUNITY_COMMENT_MOD_CAN_NOT_LOCK_REPLY" | "ERR_COMMUNITY_COMMENT_MOD_CAN_NOT_ARCHIVE_REPLY" | "ERR_COMMUNITY_COMMENT_EDIT_UNAUTHORIZED_FIELD" | "ERR_PUBLISHING_EDIT_WITH_BOTH_MOD_AND_AUTHOR_FIELDS" | "ERR_FAILED_TO_RESOLVE_TEXT_RECORD" | "ERR_NO_CHAIN_PROVIDER_FOR_CHAIN_TICKER" | "ERR_NO_RESOLVER_FOR_NAME" | "ERR_DOMAIN_TXT_RECORD_NOT_FOUND" | "ERR_DOMAIN_COMMUNITY_ADDRESS_TXT_RECORD_POINT_TO_DIFFERENT_ADDRESS" | "ERR_RESOLVED_TEXT_RECORD_TO_NON_IPNS" | "ERR_COMMUNITY_DOMAIN_HAS_NO_TEXT_RECORD" | "ERR_LOCAL_COMMUNITY_HAS_NO_SIGNER_IN_INTERNAL_STATE" | "ERR_COMMUNITY_STATE_LOCKED" | "ERR_COMMUNITY_CREATION_LOCKED" | "ERR_COMMUNITY_ALREADY_STARTED" | "ERR_FAILED_TO_IMPORT_IPFS_KEY" | "ERR_LOCAL_COMMUNITY_PRODUCED_INVALID_RECORD" | "ERR_FAILED_TO_PARSE_LOCAL_RAW_IPNS_RECORD" | "ERR_FAILED_TO_LOAD_LOCAL_RAW_IPNS_RECORD" | "ERR_FAILED_TO_IMPORT_CHALLENGE_FILE_FACTORY" | "ERR_FAILED_TO_IMPORT_CHALLENGE_FILE" | "ERR_INVALID_RESULT_FROM_GET_CHALLENGE_FUNCTION" | "ERR_LOCAL_COMMUNITY_RECORD_TOO_LARGE" | "ERR_CAN_NOT_LOAD_DB_IF_LOCAL_COMMUNITY_ALREADY_STARTED_IN_ANOTHER_PROCESS" | "ERR_CAN_NOT_EDIT_A_LOCAL_COMMUNITY_THAT_IS_ALREADY_STARTED_IN_ANOTHER_PROCESS" | "CAN_NOT_LOAD_LOCAL_COMMUNITY_IF_DB_DOES_NOT_EXIST" | "ERR_COMMUNITY_START_FAILED_UNKNOWN_ERROR" | "ERR_COMMUNITY_ALREADY_STARTED_IN_SAME_PKC_INSTANCE" | "ERR_PAGE_GENERATED_IS_OVER_EXPECTED_SIZE" | "ERR_PUBSUB_FAILED_TO_SUBSCRIBE" | "ERR_PUBSUB_FAILED_TO_UNSUBSCRIBE" | "ERR_PUBSUB_FAILED_TO_PUBLISH" | "ERR_PUBSUB_DID_NOT_RECEIVE_RESPONSE_AFTER_PUBLISHING_CHALLENGE_REQUEST" | "ERR_ALL_PUBSUB_PROVIDERS_THROW_ERRORS" | "ERR_CHALLENGE_REQUEST_RECEIVED_NO_RESPONSE_FROM_ANY_PROVIDER" | "ERR_PUBLICATION_DID_NOT_RECEIVE_RESPONSE" | "ERR_RPC_AUTH_REQUIRED" | "ERR_FAILED_TO_OPEN_CONNECTION_TO_RPC" | "ERR_FAILED_TO_CREATE_WS_RPC_SERVER" | "ERR_RPC_CLIENT_ATTEMPTING_TO_START_A_REMOTE_COMMUNITY" | "ERR_RPC_CLIENT_TRYING_TO_STOP_COMMUNITY_THAT_IS_NOT_RUNNING" | "ERR_RPC_CLIENT_TRYING_TO_STOP_REMOTE_COMMUNITY" | "ERR_RPC_CLIENT_TRYING_TO_EDIT_REMOTE_COMMUNITY" | "ERR_RPC_CLIENT_TRYING_TO_DELETE_REMOTE_COMMUNITY" | "ERR_GENERIC_RPC_CLIENT_CALL_ERROR" | "ERR_RPC_CALL_TIMED_OUT" | "ERR_RPC_CLIENT_CHALLENGE_NAME_NOT_AVAILABLE_ON_SERVER" | "ERR_ROLE_ADDRESS_NAME_COULD_NOT_BE_RESOLVED" | "ERR_COMMUNITY_NOT_LOCAL" | "ERR_COMMUNITY_NOT_FOUND" | "ERR_PRIVATE_KEY_EXPORT_NOT_ALLOWED" | "ERR_EXPORT_PATH_NOT_SUPPORTED_OVER_RPC" | "ERR_EXPORT_PATH_TARGETS_LIVE_DB" | "ERR_EXPORT_CANCELLED" | "ERR_EXPORT_BACKUP_FAILED" | "ERR_DOWNLOAD_EXPORT_ID_NOT_FOUND" | "ERR_CHALLENGE_RESULT_OVERRIDES_COMMENT_SIGNED_FIELD" | "ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMENT_UPDATE_FIELD" | "ERR_CHALLENGE_RESULT_OVERRIDES_NON_COMMUNITY_AUTHOR_KEY" | "ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMUNITY_AUTHOR_FIELD";
13
13
  message: messages;
14
14
  stack: string | undefined;
15
15
  details: Record<string, any>;
@@ -344,14 +344,20 @@ class PKCWsServer extends TypedEmitter {
344
344
  }
345
345
  // util function to log errors of registered methods
346
346
  rpcWebsocketsRegister(method, callback) {
347
+ let invocationCounter = 0; // correlates the two trace lines of one call under concurrent same-method calls
347
348
  const callbackWithErrorHandled = async (params, connectionId) => {
349
+ const invocationId = `${method}#${++invocationCounter}`;
348
350
  try {
351
+ // Trace receipt and response dispatch so a client hanging on a lost response (issue #195)
352
+ // can be attributed to either side: dispatched-but-never-matched vs never-dispatched
353
+ log.trace(`Received RPC call (${invocationId}) from connection (${connectionId})`);
349
354
  const res = await callback(params, connectionId);
355
+ log.trace(`Dispatching RPC response for call (${invocationId}) to connection (${connectionId})`);
350
356
  return res;
351
357
  }
352
358
  catch (e) {
353
359
  const typedError = e;
354
- log.error(`${callback.name} error`, { params, error: typedError });
360
+ log.error(`${callback.name} error (${invocationId})`, { params, error: typedError });
355
361
  // We need to stringify the error here because rpc-websocket will remove props from PKCError
356
362
  if (typedError instanceof PKCError) {
357
363
  const seen = new WeakSet();