@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.
- package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +1 -0
- package/dist/browser/clients/rpc-client/pkc-rpc-client.js +14 -1
- package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
- package/dist/browser/community/community-client-manager.js +11 -0
- package/dist/browser/community/community-client-manager.js.map +1 -1
- package/dist/browser/errors.d.ts +3 -0
- package/dist/browser/errors.js +3 -0
- package/dist/browser/errors.js.map +1 -1
- package/dist/browser/generated-version.d.ts +1 -1
- package/dist/browser/generated-version.js +1 -1
- package/dist/browser/helia/helia-for-pkc.js +224 -10
- package/dist/browser/helia/helia-for-pkc.js.map +1 -1
- package/dist/browser/helia/types.d.ts +2 -0
- package/dist/browser/helia/util.d.ts +25 -0
- package/dist/browser/helia/util.js +163 -0
- package/dist/browser/helia/util.js.map +1 -1
- package/dist/browser/pkc-error.d.ts +1 -1
- package/dist/browser/rpc/src/index.js +7 -1
- package/dist/browser/rpc/src/index.js.map +1 -1
- package/dist/browser/signer/signatures.js +26 -0
- package/dist/browser/signer/signatures.js.map +1 -1
- package/dist/bundled/bundle-manifest.json +31 -31
- package/dist/bundled/chunks/{helia-for-pkc-CYDRSysz.js → helia-for-pkc-CTxzGps-.js} +154 -4
- package/dist/bundled/chunks/{local-community-DyaGG6lj.js → local-community-DJX_xmB4.js} +1 -1
- package/dist/bundled/chunks/{local-community-DYvRQWsK.js → local-community-T3mSbjdf.js} +26 -26
- package/dist/bundled/chunks/{node-DadVit9c.js → node-zemQ3e2S.js} +14 -6
- package/dist/bundled/chunks/{rpc-local-community-1Uvl5iwp.js → rpc-local-community-ByjBdSQ5.js} +38 -17
- package/dist/bundled/chunks/{schema-Dtvt2tQ8.js → schema-B47aYWNu.js} +4 -1
- package/dist/bundled/chunks/{util-CjfTxkQ8.js → util-P3adfecj.js} +117 -2
- package/dist/bundled/index.js +1 -1
- package/dist/bundled/rpc/src/index.js +11 -6
- package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +1 -0
- package/dist/node/clients/rpc-client/pkc-rpc-client.js +14 -1
- package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
- package/dist/node/community/community-client-manager.js +11 -0
- package/dist/node/community/community-client-manager.js.map +1 -1
- package/dist/node/errors.d.ts +3 -0
- package/dist/node/errors.js +3 -0
- package/dist/node/errors.js.map +1 -1
- package/dist/node/generated-version.d.ts +1 -1
- package/dist/node/generated-version.js +1 -1
- package/dist/node/helia/helia-for-pkc.js +224 -10
- package/dist/node/helia/helia-for-pkc.js.map +1 -1
- package/dist/node/helia/types.d.ts +2 -0
- package/dist/node/helia/util.d.ts +25 -0
- package/dist/node/helia/util.js +163 -0
- package/dist/node/helia/util.js.map +1 -1
- package/dist/node/pkc-error.d.ts +1 -1
- package/dist/node/rpc/src/index.js +7 -1
- package/dist/node/rpc/src/index.js.map +1 -1
- package/dist/node/signer/signatures.js +26 -0
- package/dist/node/signer/signatures.js.map +1 -1
- 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>;
|
package/dist/node/helia/util.js
CHANGED
|
@@ -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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"}
|
package/dist/node/pkc-error.d.ts
CHANGED
|
@@ -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();
|