@pkcprotocol/pkc-js 0.0.92 → 0.0.94
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/README.md +5 -0
- package/dist/browser/clients/base-client-manager.d.ts +1 -0
- package/dist/browser/clients/base-client-manager.js +7 -1
- package/dist/browser/clients/base-client-manager.js.map +1 -1
- package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +16 -0
- package/dist/browser/clients/rpc-client/pkc-rpc-client.js +97 -1
- package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
- package/dist/browser/community/community-client-manager.d.ts +16 -0
- package/dist/browser/community/community-client-manager.js +307 -31
- package/dist/browser/community/community-client-manager.js.map +1 -1
- package/dist/browser/community/remote-community.js +7 -0
- package/dist/browser/community/remote-community.js.map +1 -1
- package/dist/browser/community/rpc-local-community.js +43 -15
- package/dist/browser/community/rpc-local-community.js.map +1 -1
- package/dist/browser/community/rpc-remote-community.js +30 -10
- package/dist/browser/community/rpc-remote-community.js.map +1 -1
- package/dist/browser/errors.d.ts +1 -0
- package/dist/browser/errors.js +1 -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 +56 -1
- package/dist/browser/helia/helia-for-pkc.js.map +1 -1
- package/dist/browser/helia/types.d.ts +16 -0
- package/dist/browser/helia/util.d.ts +1 -0
- package/dist/browser/helia/util.js +21 -1
- package/dist/browser/helia/util.js.map +1 -1
- package/dist/browser/pkc-error.d.ts +1 -1
- package/dist/browser/publications/comment/comment.js +30 -11
- package/dist/browser/publications/comment/comment.js.map +1 -1
- package/dist/browser/publications/publication.js +46 -17
- package/dist/browser/publications/publication.js.map +1 -1
- package/dist/browser/rpc/src/index.d.ts +2 -0
- package/dist/browser/rpc/src/index.js +52 -19
- package/dist/browser/rpc/src/index.js.map +1 -1
- package/dist/browser/rpc/src/schema.js +3 -1
- package/dist/browser/rpc/src/schema.js.map +1 -1
- package/dist/browser/test/test-util.d.ts +353 -5
- package/dist/browser/test/test-util.js +88 -5
- package/dist/browser/test/test-util.js.map +1 -1
- package/dist/browser/util.d.ts +7 -0
- package/dist/browser/util.js +22 -12
- package/dist/browser/util.js.map +1 -1
- package/dist/bundled/bundle-manifest.json +25 -25
- package/dist/bundled/chunks/{helia-for-pkc-COFAbh3C.js → helia-for-pkc-Bj-Zb4JN.js} +70 -33
- package/dist/bundled/chunks/{local-community-CyA7I22X.js → local-community-BrMLMEmt.js} +1 -1
- package/dist/bundled/chunks/{local-community-DLeQ8V3i.js → local-community-Ce7303vY.js} +30 -30
- package/dist/bundled/chunks/{node-i4Twbtvv.js → node-C37nDOa8.js} +98 -21
- package/dist/bundled/chunks/{rpc-local-community-CZSOMq_6.js → rpc-local-community-Dr_-Lb8I.js} +188 -32
- package/dist/bundled/chunks/{schema-Bbq796q3.js → schema-5-rYJ-bC.js} +30 -12
- package/dist/bundled/chunks/{util-DdrJVp4E.js → util-_-fNQNIV.js} +11 -3
- package/dist/bundled/index.js +1 -1
- package/dist/bundled/rpc/src/index.js +43 -22
- package/dist/node/clients/base-client-manager.d.ts +1 -0
- package/dist/node/clients/base-client-manager.js +7 -1
- package/dist/node/clients/base-client-manager.js.map +1 -1
- package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +16 -0
- package/dist/node/clients/rpc-client/pkc-rpc-client.js +97 -1
- package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
- package/dist/node/community/community-client-manager.d.ts +16 -0
- package/dist/node/community/community-client-manager.js +307 -31
- package/dist/node/community/community-client-manager.js.map +1 -1
- package/dist/node/community/remote-community.js +7 -0
- package/dist/node/community/remote-community.js.map +1 -1
- package/dist/node/community/rpc-local-community.js +43 -15
- package/dist/node/community/rpc-local-community.js.map +1 -1
- package/dist/node/community/rpc-remote-community.js +30 -10
- package/dist/node/community/rpc-remote-community.js.map +1 -1
- package/dist/node/errors.d.ts +1 -0
- package/dist/node/errors.js +1 -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 +56 -1
- package/dist/node/helia/helia-for-pkc.js.map +1 -1
- package/dist/node/helia/types.d.ts +16 -0
- package/dist/node/helia/util.d.ts +1 -0
- package/dist/node/helia/util.js +21 -1
- package/dist/node/helia/util.js.map +1 -1
- package/dist/node/pkc-error.d.ts +1 -1
- package/dist/node/publications/comment/comment.js +30 -11
- package/dist/node/publications/comment/comment.js.map +1 -1
- package/dist/node/publications/publication.js +46 -17
- package/dist/node/publications/publication.js.map +1 -1
- package/dist/node/rpc/src/index.d.ts +2 -0
- package/dist/node/rpc/src/index.js +52 -19
- package/dist/node/rpc/src/index.js.map +1 -1
- package/dist/node/rpc/src/schema.js +3 -1
- package/dist/node/rpc/src/schema.js.map +1 -1
- package/dist/node/test/test-util.d.ts +353 -5
- package/dist/node/test/test-util.js +88 -5
- package/dist/node/test/test-util.js.map +1 -1
- package/dist/node/util.d.ts +7 -0
- package/dist/node/util.js +22 -12
- package/dist/node/util.js.map +1 -1
- package/package.json +1 -1
|
@@ -5536,6 +5536,7 @@ var messages;
|
|
|
5536
5536
|
messages["ERR_RPC_CLIENT_TRYING_TO_EDIT_REMOTE_COMMUNITY"] = "RPC client is attempting to edit remote community";
|
|
5537
5537
|
messages["ERR_RPC_CLIENT_TRYING_TO_DELETE_REMOTE_COMMUNITY"] = "RPC client is attempting to delete remote community";
|
|
5538
5538
|
messages["ERR_RPC_CLIENT_TRYING_TO_USE_ANCHOR_METHOD_ON_NON_LOCAL_COMMUNITY"] = "RPC client is attempting to prepare or publish an anchor record for a community this node does not host locally";
|
|
5539
|
+
messages["ERR_RPC_CLIENT_NO_ACTIVE_PUBLISH_SUBSCRIPTION"] = "Cannot publish challenge answers over PKC RPC: there is no active publish subscription. The challenge exchange has concluded, the publication was stopped, or publish() was never called";
|
|
5539
5540
|
messages["ERR_GENERIC_RPC_CLIENT_CALL_ERROR"] = "RPC client received an unknown error when executing call over websocket";
|
|
5540
5541
|
messages["ERR_RPC_CALL_TIMED_OUT"] = "RPC client call timed out without receiving a response from the RPC server";
|
|
5541
5542
|
messages["ERR_RPC_CLIENT_CHALLENGE_NAME_NOT_AVAILABLE_ON_SERVER"] = "The challenge name is not available on the RPC server. Available challenges are listed in details.availableChallenges";
|
|
@@ -15375,17 +15376,28 @@ function throwIfAbortSignalAborted(signal) {
|
|
|
15375
15376
|
if (typeof signal.reason === "string" && signal.reason.length > 0) throw createAbortError(signal.reason);
|
|
15376
15377
|
throw createAbortError();
|
|
15377
15378
|
}
|
|
15379
|
+
function interruptibleSleep({ ms, signal }) {
|
|
15380
|
+
let wake = () => void 0;
|
|
15381
|
+
return {
|
|
15382
|
+
promise: new Promise((resolve) => {
|
|
15383
|
+
if (signal?.aborted) return resolve();
|
|
15384
|
+
const settle = () => {
|
|
15385
|
+
clearTimeout(timer);
|
|
15386
|
+
signal?.removeEventListener("abort", settle);
|
|
15387
|
+
resolve();
|
|
15388
|
+
};
|
|
15389
|
+
const timer = setTimeout(settle, ms);
|
|
15390
|
+
signal?.addEventListener("abort", settle, { once: true });
|
|
15391
|
+
wake = settle;
|
|
15392
|
+
}),
|
|
15393
|
+
wake
|
|
15394
|
+
};
|
|
15395
|
+
}
|
|
15378
15396
|
function sleepUntilTimeoutOrAbort(ms, signal) {
|
|
15379
|
-
return
|
|
15380
|
-
|
|
15381
|
-
|
|
15382
|
-
|
|
15383
|
-
signal?.removeEventListener("abort", onAbortOrTimeout);
|
|
15384
|
-
resolve();
|
|
15385
|
-
};
|
|
15386
|
-
const timer = setTimeout(onAbortOrTimeout, ms);
|
|
15387
|
-
signal?.addEventListener("abort", onAbortOrTimeout, { once: true });
|
|
15388
|
-
});
|
|
15397
|
+
return interruptibleSleep({
|
|
15398
|
+
ms,
|
|
15399
|
+
signal
|
|
15400
|
+
}).promise;
|
|
15389
15401
|
}
|
|
15390
15402
|
async function raceAgainstAbort(promise, signal) {
|
|
15391
15403
|
if (!signal) return promise;
|
|
@@ -15802,6 +15814,12 @@ async function waitForUpdateInCommunityInstanceWithErrorAndTimeout(opts) {
|
|
|
15802
15814
|
function calculateIpfsCidV0(content) {
|
|
15803
15815
|
return of(content);
|
|
15804
15816
|
}
|
|
15817
|
+
/**
|
|
15818
|
+
* converts a binary record key to a pubsub topic key
|
|
15819
|
+
*/
|
|
15820
|
+
function binaryKeyToPubsubTopic(key) {
|
|
15821
|
+
return `/record/${toString(key, "base64url")}`;
|
|
15822
|
+
}
|
|
15805
15823
|
function ipnsNameToIpnsOverPubsubTopic(ipnsName) {
|
|
15806
15824
|
const ipnsNamespaceBytes = new TextEncoder().encode("/ipns/");
|
|
15807
15825
|
const ipnsNameBytes = peerIdFromString(ipnsName).toMultihash().bytes;
|
|
@@ -16205,7 +16223,7 @@ function extractNetworkErrorDetails(err, depth = 0) {
|
|
|
16205
16223
|
}
|
|
16206
16224
|
//#endregion
|
|
16207
16225
|
//#region dist/node/generated-version.js
|
|
16208
|
-
const version = "0.0.
|
|
16226
|
+
const version = "0.0.94";
|
|
16209
16227
|
//#endregion
|
|
16210
16228
|
//#region dist/node/version.js
|
|
16211
16229
|
const protocolVersion = ProtocolVersionSchema.parse("1.0.0");
|
|
@@ -16359,4 +16377,4 @@ const DecryptedChallengeVerificationSchema = object({
|
|
|
16359
16377
|
}).strict();
|
|
16360
16378
|
const ChallengeVerificationMessageSignedPropertyNames = t$3(n$3(ChallengeVerificationMessageSchema.shape, ["signature"]));
|
|
16361
16379
|
//#endregion
|
|
16362
|
-
export {
|
|
16380
|
+
export { isRequestPubsubPublicationOfReply as $, CommunityAuthorChallengeReservedFieldNames as $n, CreateCommentModerationOptionsWithRefinementSchema as $t, doesDomainAddressHaveCapitalLetter as A, CommentUpdateReservedFields as An, boolean as Ar, listUpdatingCommunities as At, ipnsNameToIpnsOverPubsubTopic as B, CommentEditPubsubMessagePublicationSchema as Bn, stringifyPrimitive as Br, require_sha256 as Bt, calculateStringSizeSameAsIpfsAddCidV0 as C, CommentIpfsSchema as Cn, messages as Cr, writeKuboFilesWithTimeout as Ct, createAbortError as D, CommentUpdateChallengeReservedFieldNames as Dn, setErrorMap as Dr, findUpdatingCommunity as Dt, contentContainsMarkdownVideos as E, CommentSignedPropertyNames as En, require_ms as Er, findUpdatingComment as Et, getErrorCodeFromMessage as F, CreateCommentOptionsWithRefinementSchema as Fn, record as Fr, trackUpdatingComment as Ft, isIpnsPath as G, CreateCommentEditOptionsWithRefinementSchema as Gn, CommunityEditPublicationSignedPropertyNames as Gt, isIpfsCid as H, CommentEditReservedFields as Hn, pTimeout as Ht, getIpnsRecordInLocalKuboNode as I, GetPageParamSchema as In, string as Ir, trackUpdatingCommunity as It, isLinkOfImage as J, AuthorReservedFields as Jn, CommentModerationChallengeRequestToEncryptSchema as Jt, isLinkOfAnimatedImage as K, AuthorAddressSchema as Kn, CommunityEditPubsubMessagePublicationSchema as Kt, getPostUpdateTimestampRange as L, ModQueuePageIpfsSchema as Ln, ZodError as Lr, untrackStartedCommunity as Lt, fetchAndValidateIpnsRecordFromGateway as M, CommentUpdateSignedPropertyNames as Mn, literal as Mr, refreshTrackedCommunityAliases as Mt, genToArray as N, CommentUpdateTableRowSchema as Nn, number as Nr, syncCommunityRegistryEntry as Nt, deepMergeRuntimeFields as O, CommentUpdateForChallengeVerificationSchema as On, _enum as Or, listStartedCommunities as Ot, getEquivalentCommunityAddresses as P, CommentsTableRowSchema as Pn, object as Pr, trackStartedCommunity as Pt, isRequestPubsubPublicationOfPost as Q, CommunityAddressSchema as Qn, CommentModerationsTableRowSchema as Qt, hideClassPrivateProps as R, PageIpfsSchema as Rn, joinValues as Rr, untrackUpdatingComment as Rt, calculateIpfsCidV0 as S, CommentIpfsReservedFields as Sn, PKCError as Sr, waitForUpdateInCommunityInstanceWithErrorAndTimeout as St, contentContainsMarkdownImages as T, CommentPubsubMessageWithFlexibleAuthorRefinementSchema as Tn, require_supports_color as Tr, findStartedCommunity as Tt, isIpfsPath as U, CommentEditSignedPropertyNames as Un, CommunityEditPublicationChallengeRequestToEncryptSchema as Ut, isAbortError as V, CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema as Vn, TimeoutError as Vt, isIpns as W, CommentEditsTableRowSchema as Wn, CommunityEditPublicationPubsubReservedFields as Wt, isLinkOfVideo as X, CidPathSchema as Xn, CommentModerationReservedFields as Xt, isLinkOfMedia as Y, ChallengeAnswersSchema as Yn, CommentModerationPubsubMessagePublicationSchema as Yt, isLinkValid as Z, CidStringSchema as Zn, CommentModerationSignedPropertyNames as Zt, PKCUserOptionBaseSchema as _, VotePubsubMessagePublicationSchema as _n, FailedToFetchCommentIpfsFromGatewaysError as _r, shortifyCid as _t, ChallengeRequestMessageSchema as a, CommunityExportRecordsSchema as an, t$3 as ar, rejectWhenCommunityStopsOrAborts as at, areEquivalentCommunityAddresses as b, VoteTablesRowSchema as bn, FailedToFetchGenericIpfsFromGatewaysError as br, throwIfAbortSignalAborted as bt, ChallengeVerificationMessageSignedPropertyNames as c, CommunitySignedPropertyNames as cn, t$4 as cr, removeNullUndefinedEmptyObjectsValuesRecursively as ct, DecryptedChallengeRequestSchema as d, CreateRpcCommunityFunctionArgumentSchema as dn, n$7 as dr, replaceXWithY as dt, ChallengeFileFactorySchema as en, CreateSignerSchema as er, isStringDomain as et, DecryptedChallengeSchema as f, ExportCommunityModLogsOptionsSchema as fn, r$4 as fr, resolveWhenPredicateIsTrue as ft, PKCParsedOptionsSchema as g, VoteChallengeRequestToEncryptSchema as gn, require_retry as gr, shortifyAddress as gt, NameResolverSerializedSchema as h, CreateVoteUserOptionsWithRefinementSchema as hn, e$4 as hr, retryKuboIpfsAddAndProvide as ht, ChallengeMessageSignedPropertyNames as i, CommunityEditOptionsSchema as in, t$2 as ir, rejectWhenAbortSignalFires as it, extractNetworkErrorDetails as j, CommentUpdateSchema as jn, custom as jr, refreshTrackedCommentAliases as jt, derivePublicationFromChallengeRequest as k, CommentUpdateForChallengeVerificationSignedPropertyNames as kn, array as kr, listUpdatingComments as kt, DecryptedChallengeAnswerSchema as l, CreateNewLocalCommunityUserOptionsSchema as ln, r$2 as lr, removeNullUndefinedValues as lt, NameResolveCacheOptionsSchema as m, RpcRemoteCommunityUpdateEventResultSchema as mn, t$8 as mr, retryKuboIpfsAdd as mt, ChallengeAnswerMessageSignedPropertyNames as n, CommunityAnchorSchema as nn, t$1 as nr, pubsubTopicToDhtKeyCid as nt, ChallengeRequestMessageSignedPropertyNames as o, CommunityIpfsReservedFields as on, e as or, removeBlocksFromKuboNode as ot, DecryptedChallengeVerificationSchema as p, PubsubTopicSchema as pn, t$7 as pr, retryKuboBlockPutPinAndProvidePubsubTopic as pt, isLinkOfAudio as q, AuthorCommentIpfsReservedFields as qn, CreateCommunityEditPublicationOptionsWithRefinementSchema as qt, ChallengeMessageSchema as r, CommunityChallengeSettingSchema as rn, n$3 as rr, raceAgainstAbort as rt, ChallengeVerificationMessageSchema as s, CommunityIpfsSchema as sn, e$2 as sr, removeMfsFilesSafely as st, ChallengeAnswerMessageSchema as t, ChallengeFileSchema as tn, n as tr, pubsubTopicToDhtKey as tt, DecryptedChallengeRequestPublicationSchema as u, CreateRemoteCommunityFunctionArgumentSchema as un, t$5 as ur, removeUndefinedValuesRecursively as ut, PKCUserOptionsSchema as v, VotePubsubReservedFields as vn, FailedToFetchCommentUpdateFromGatewaysError as vr, sleepUntilTimeoutOrAbort as vt, contentContainsMarkdownAudio as w, CommentPubsubMessageReservedFields as wn, logger_default as wr, findCommunityInRegistry as wt, binaryKeyToPubsubTopic as x, CommentChallengeRequestToEncryptSchema as xn, FailedToFetchPageIpfsFromGatewaysError as xr, timestamp as xt, version_default as y, VoteSignedPropertyNames as yn, FailedToFetchCommunityFromGatewaysError as yr, statMfsPathSafely as yt, interruptibleSleep as z, CommentEditChallengeRequestToEncryptSchema as zn, parsedType as zr, untrackUpdatingCommunity as zt };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Sr as PKCError, nt as pubsubTopicToDhtKeyCid } from "./schema-5-rYJ-bC.js";
|
|
2
2
|
import { ipnsSelector } from "ipns/selector";
|
|
3
3
|
import { ipnsValidator } from "ipns/validator";
|
|
4
4
|
import { unmarshalIPNSRecord } from "ipns";
|
|
@@ -476,6 +476,14 @@ async function cacheIpnsRecordInPubsubLocalStore({ localStore, routingKey, marsh
|
|
|
476
476
|
await localStore.put(routingKey, marshalledRecord);
|
|
477
477
|
}
|
|
478
478
|
const DEFAULT_CACHED_IPNS_RECORD_TTL_MS = 6e4;
|
|
479
|
+
function ipnsCacheTtlJitterFactor(routingKey) {
|
|
480
|
+
let hash = 2166136261;
|
|
481
|
+
for (let i = 0; i < routingKey.length; i++) {
|
|
482
|
+
hash ^= routingKey[i];
|
|
483
|
+
hash = Math.imul(hash, 16777619) >>> 0;
|
|
484
|
+
}
|
|
485
|
+
return .75 + hash / 4294967296 * .25;
|
|
486
|
+
}
|
|
479
487
|
async function readFreshCachedIpnsRecordFromPubsubLocalStore({ localStore, routingKey, lastNetworkValidatedAtMs }) {
|
|
480
488
|
if (!await localStore.has(routingKey)) return void 0;
|
|
481
489
|
const { record: recordBytes, created } = await localStore.get(routingKey);
|
|
@@ -485,9 +493,9 @@ async function readFreshCachedIpnsRecordFromPubsubLocalStore({ localStore, routi
|
|
|
485
493
|
return;
|
|
486
494
|
}
|
|
487
495
|
const record = unmarshalIPNSRecord(recordBytes);
|
|
488
|
-
const
|
|
496
|
+
const effectiveTtlMs = (record.ttl !== void 0 ? Number(record.ttl / 1000000n) : DEFAULT_CACHED_IPNS_RECORD_TTL_MS) * ipnsCacheTtlJitterFactor(routingKey);
|
|
489
497
|
const lastConfirmedCurrentAtMs = Math.max(created.getTime(), lastNetworkValidatedAtMs ?? 0);
|
|
490
|
-
if (Date.now() - lastConfirmedCurrentAtMs >=
|
|
498
|
+
if (Date.now() - lastConfirmedCurrentAtMs >= effectiveTtlMs) return void 0;
|
|
491
499
|
return record;
|
|
492
500
|
}
|
|
493
501
|
//#endregion
|
package/dist/bundled/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as getShortCid, i as getShortAddress, n as challenges, o as nativeFunctions, r as createAnchorIpnsRecord, s as setNativeFunctions, t as PKC } from "./chunks/node-
|
|
1
|
+
import { a as getShortCid, i as getShortAddress, n as challenges, o as nativeFunctions, r as createAnchorIpnsRecord, s as setNativeFunctions, t as PKC } from "./chunks/node-C37nDOa8.js";
|
|
2
2
|
export { challenges, createAnchorIpnsRecord, PKC as default, getShortAddress, getShortCid, nativeFunctions, setNativeFunctions };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _ as parseRpcPublishAnchorRecordParam, c as parseRpcAuthorNameParam, d as parseRpcCommentRepliesPageParam, f as parseRpcCommunityIdentifierParam, g as parseRpcExportCommunityParam, h as parseRpcExportCommunityModLogsParam, l as parseRpcCancelExportParam, m as parseRpcEditCommunityParam, p as parseRpcCommunityPageParam, t as PKC, u as parseRpcCidParam, v as parseRpcPublishChallengeAnswersParam, y as parseRpcUnsubscribeParam } from "../../chunks/node-
|
|
3
|
-
import { An as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Cn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, J as buildPagesRuntimeFields, ct as pRetry, dn as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, dt as require_lib, jn as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, lt as pLimit, nn as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, on as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, q as buildPageRuntimeFields, rn as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, rr as t$1, rt as extractCrosspostRuntimeFields, un as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, ur as stringify, vn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, yn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-
|
|
4
|
-
import { t as LocalCommunity } from "../../chunks/local-community-
|
|
1
|
+
import { Ht as pTimeout, R as hideClassPrivateProps, Sr as PKCError, Tt as findStartedCommunity, ar as t, dt as replaceXWithY, rr as n, wr as logger_default } from "../../chunks/schema-5-rYJ-bC.js";
|
|
2
|
+
import { _ as parseRpcPublishAnchorRecordParam, c as parseRpcAuthorNameParam, d as parseRpcCommentRepliesPageParam, f as parseRpcCommunityIdentifierParam, g as parseRpcExportCommunityParam, h as parseRpcExportCommunityModLogsParam, l as parseRpcCancelExportParam, m as parseRpcEditCommunityParam, p as parseRpcCommunityPageParam, t as PKC, u as parseRpcCidParam, v as parseRpcPublishChallengeAnswersParam, y as parseRpcUnsubscribeParam } from "../../chunks/node-C37nDOa8.js";
|
|
3
|
+
import { An as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, Cn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, J as buildPagesRuntimeFields, ct as pRetry, dn as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, dt as require_lib, jn as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, lt as pLimit, nn as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, on as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, q as buildPageRuntimeFields, rn as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, rr as t$1, rt as extractCrosspostRuntimeFields, un as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, ur as stringify, vn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, yn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-Dr_-Lb8I.js";
|
|
4
|
+
import { t as LocalCommunity } from "../../chunks/local-community-Ce7303vY.js";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import assert from "assert";
|
|
@@ -103,6 +103,7 @@ function sanitizeRpcNotificationResult(event, result) {
|
|
|
103
103
|
//#endregion
|
|
104
104
|
//#region dist/node/rpc/src/index.js
|
|
105
105
|
const log = logger_default("pkc-js-rpc:pkc-ws-server");
|
|
106
|
+
const DESTROY_CLIENTS_CLOSE_TIMEOUT_MS = 5e3;
|
|
106
107
|
const AUTO_START_TRANSIENT_RETRIES = 8;
|
|
107
108
|
const _isTransientKuboError = (error) => {
|
|
108
109
|
const markers = [
|
|
@@ -138,6 +139,7 @@ var PKCWsServer = class extends import_lib.TypedEmitter {
|
|
|
138
139
|
this._autoStartOnBoot = false;
|
|
139
140
|
this._exportCommunityInstances = /* @__PURE__ */ new Map();
|
|
140
141
|
this._ownsHttpServer = false;
|
|
142
|
+
this._pendingDisconnectionCleanups = /* @__PURE__ */ new Set();
|
|
141
143
|
const log = logger_default("pkc-js:PKCWsServer");
|
|
142
144
|
this.authKey = authKey;
|
|
143
145
|
this._autoStartOnBoot = startStartedCommunitiesOnStartup ?? true;
|
|
@@ -185,24 +187,14 @@ var PKCWsServer = class extends import_lib.TypedEmitter {
|
|
|
185
187
|
this._onSettingsChange[ws._id] = {};
|
|
186
188
|
log("Established connection with new RPC client", ws._id);
|
|
187
189
|
});
|
|
188
|
-
this.rpcWebsockets.on("disconnection",
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
for (const subscriptionId in subscriptionCleanups) {
|
|
199
|
-
await subscriptionCleanups[subscriptionId]();
|
|
200
|
-
delete subscriptionCleanups[subscriptionId];
|
|
201
|
-
}
|
|
202
|
-
delete this.subscriptionCleanups[ws._id];
|
|
203
|
-
delete this.connections[ws._id];
|
|
204
|
-
delete this._onSettingsChange[ws._id];
|
|
205
|
-
log("Disconnected from RPC client", ws._id);
|
|
190
|
+
this.rpcWebsockets.on("disconnection", (ws) => {
|
|
191
|
+
const cleanup = this._cleanUpDisconnectedClient(ws._id);
|
|
192
|
+
this._pendingDisconnectionCleanups.add(cleanup);
|
|
193
|
+
const untrack = () => this._pendingDisconnectionCleanups.delete(cleanup);
|
|
194
|
+
cleanup.then(untrack, (e) => {
|
|
195
|
+
log.error("Failed to clean up after RPC client disconnected", ws._id, e);
|
|
196
|
+
untrack();
|
|
197
|
+
});
|
|
206
198
|
});
|
|
207
199
|
this.rpcWebsocketsRegister("getComment", this.getComment.bind(this));
|
|
208
200
|
this.rpcWebsocketsRegister("getCommunityPage", this.getCommunityPage.bind(this));
|
|
@@ -1520,9 +1512,38 @@ var PKCWsServer = class extends import_lib.TypedEmitter {
|
|
|
1520
1512
|
delete connectionCleanups[subscriptionId];
|
|
1521
1513
|
return { success: true };
|
|
1522
1514
|
}
|
|
1515
|
+
async _cleanUpDisconnectedClient(connectionId) {
|
|
1516
|
+
log("RPC client disconnected", connectionId, "number of rpc clients connected", this.rpcWebsockets.wss.clients.size);
|
|
1517
|
+
const subscriptionCleanups = this.subscriptionCleanups[connectionId];
|
|
1518
|
+
if (!subscriptionCleanups) {
|
|
1519
|
+
delete this.subscriptionCleanups[connectionId];
|
|
1520
|
+
delete this.connections[connectionId];
|
|
1521
|
+
delete this._onSettingsChange[connectionId];
|
|
1522
|
+
log("Disconnected from RPC client (no subscriptions to clean)", connectionId);
|
|
1523
|
+
return;
|
|
1524
|
+
}
|
|
1525
|
+
for (const subscriptionId in subscriptionCleanups) {
|
|
1526
|
+
await subscriptionCleanups[subscriptionId]();
|
|
1527
|
+
delete subscriptionCleanups[subscriptionId];
|
|
1528
|
+
}
|
|
1529
|
+
delete this.subscriptionCleanups[connectionId];
|
|
1530
|
+
delete this.connections[connectionId];
|
|
1531
|
+
delete this._onSettingsChange[connectionId];
|
|
1532
|
+
log("Disconnected from RPC client", connectionId);
|
|
1533
|
+
}
|
|
1523
1534
|
async destroy() {
|
|
1524
1535
|
for (const connectionId of t(this.subscriptionCleanups)) for (const subscriptionId of t(this.subscriptionCleanups[connectionId])) await this.unsubscribe([{ subscriptionId: Number(subscriptionId) }], connectionId);
|
|
1536
|
+
const wssClosed = new Promise((resolve) => this.ws.once("close", () => resolve()));
|
|
1525
1537
|
this.ws.close();
|
|
1538
|
+
for (const client of this.ws.clients) client.close(1e3, "PKCWsServer is shutting down");
|
|
1539
|
+
try {
|
|
1540
|
+
await pTimeout(wssClosed, { milliseconds: DESTROY_CLIENTS_CLOSE_TIMEOUT_MS });
|
|
1541
|
+
} catch {
|
|
1542
|
+
log.error("Some RPC clients did not complete the close handshake within", DESTROY_CLIENTS_CLOSE_TIMEOUT_MS, "ms of destroy(), terminating them");
|
|
1543
|
+
for (const client of this.ws.clients) client.terminate();
|
|
1544
|
+
await wssClosed;
|
|
1545
|
+
}
|
|
1546
|
+
await Promise.allSettled(this._pendingDisconnectionCleanups);
|
|
1526
1547
|
if (this._ownsHttpServer && this._httpServer) await new Promise((r) => this._httpServer.close(() => r()));
|
|
1527
1548
|
await (await this._getPKCInstance()).destroy();
|
|
1528
1549
|
for (const communityAddress of t(this._startedCommunities)) delete this._startedCommunities[communityAddress];
|
|
@@ -469,7 +469,13 @@ export class BaseClientsManager {
|
|
|
469
469
|
// chain of IPNS names traversed: ipnsHops[0] is the anchor (the name we were asked to
|
|
470
470
|
// resolve) and ipnsHops.at(-1) is the terminal name (the name whose record points
|
|
471
471
|
// directly at the /ipfs/ CID, i.e. the key that signs the content).
|
|
472
|
-
async resolveIpnsToCidP2P(ipnsName,
|
|
472
|
+
async resolveIpnsToCidP2P(ipnsName,
|
|
473
|
+
// `nocache: true` forces a network revalidation even on the libp2p-js resolver (whose
|
|
474
|
+
// default below is to let its gossip-fed routing-layer cache serve, issue #301). The
|
|
475
|
+
// community update loop sets it on safety-net ticks, which exist precisely for pushed
|
|
476
|
+
// records the cache never received. It is spread AFTER the per-client default, so the
|
|
477
|
+
// caller's value wins.
|
|
478
|
+
loadOpts) {
|
|
473
479
|
const log = Logger("pkc-js:clients-manager:resolveIpnsToCidP2P");
|
|
474
480
|
throwIfAbortSignalAborted(loadOpts.abortSignal);
|
|
475
481
|
// recursive: false so the resolver returns the IMMEDIATE value of each record (so we can
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-client-manager.js","sourceRoot":"","sources":["../../../src/clients/base-client-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-client-manager.js","sourceRoot":"","sources":["../../../src/clients/base-client-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Logger from "../../logger.js";
|
|
1
2
|
import EventEmitter from "events";
|
|
2
3
|
import type { CreateNewLocalCommunityUserOptions } from "../../community/types.js";
|
|
3
4
|
import type { CommentChallengeRequestToEncryptType } from "../../publications/comment/types.js";
|
|
@@ -28,12 +29,27 @@ export default class PKCRpcClient extends TypedEmitter<PKCRpcClientEvents> {
|
|
|
28
29
|
setState(newState: PKCRpcClient["state"]): void;
|
|
29
30
|
_init(): Promise<void>;
|
|
30
31
|
destroy(): Promise<void>;
|
|
32
|
+
private _waitForSocketClose;
|
|
31
33
|
toJSON(): undefined;
|
|
32
34
|
getSubscription(subscriptionId: number): EventEmitter<[never]>;
|
|
33
35
|
unsubscribe(subscriptionId: number): Promise<void>;
|
|
34
36
|
private _deserializeRpcError;
|
|
35
37
|
private _setErrorName;
|
|
36
38
|
private _assignAdditionalProps;
|
|
39
|
+
subscriptionActive(subscriptionId: number): boolean;
|
|
40
|
+
attachSubscriptionHandlersDeferred(opts: {
|
|
41
|
+
subscriptionId: number;
|
|
42
|
+
isStale: () => boolean;
|
|
43
|
+
attach: (subscription: EventEmitter) => void;
|
|
44
|
+
replayErrorContainment: {
|
|
45
|
+
entityName: string;
|
|
46
|
+
log: ReturnType<typeof Logger>;
|
|
47
|
+
emitError: (error: Error) => void;
|
|
48
|
+
stop: () => Promise<void>;
|
|
49
|
+
};
|
|
50
|
+
}): void;
|
|
51
|
+
private _containReplayError;
|
|
52
|
+
private _emitPendingMessagesWhile;
|
|
37
53
|
emitAllPendingMessages(subscriptionId: number): void;
|
|
38
54
|
getComment(args: CidRpcParam): Promise<CommentIpfsType>;
|
|
39
55
|
getCommentPage(page: CommentPageRpcParam): Promise<RpcCommentPageResult>;
|
|
@@ -10,6 +10,15 @@ import { TypedEmitter } from "tiny-typed-emitter";
|
|
|
10
10
|
import { messages } from "../../errors.js";
|
|
11
11
|
import { parseRpcCommunityIdentifierParam, parseRpcAuthorNameParam, parseRpcCidParam, parseRpcFetchCidParam, parseRpcEditCommunityParam, parseRpcCommentRepliesPageParam, parseRpcCommunityPageParam, parseRpcResolveAuthorNameResult, parseRpcFetchCidResult, parseRpcSuccessResult, parseRpcSubscriptionIdResult, parseRpcExportCommunityParam, parseRpcCancelExportParam, parseRpcExportCommunityResult, parseRpcExportCommunityModLogsParam, parseRpcExportCommunityModLogsResult, parseRpcPublishAnchorRecordParam, parseRpcAnchorPublishPreparationResult, parseRpcPublishedAnchorRecordResult } from "./rpc-schema-util.js";
|
|
12
12
|
const log = Logger("pkc-js:PKCRpcClient");
|
|
13
|
+
const WEBSOCKET_READY_STATE_CLOSED = 3;
|
|
14
|
+
const DESTROY_SOCKET_CLOSE_TIMEOUT_MS = 5_000;
|
|
15
|
+
// Captured at module load so the deferred attach-and-replay (attachSubscriptionHandlersDeferred)
|
|
16
|
+
// keeps working when a downstream app enables fake timers: vitest/jest replace the GLOBAL
|
|
17
|
+
// setTimeout after modules are imported, so this bound reference stays the real timer and
|
|
18
|
+
// subscriptions never become silently inert under un-advanced fake timers. The deferral still
|
|
19
|
+
// runs on a macrotask, so environments that throttle timers (e.g. hidden browser tabs) may delay
|
|
20
|
+
// the attach and the buffered replay accordingly.
|
|
21
|
+
const scheduleMacrotask = setTimeout.bind(globalThis);
|
|
13
22
|
export default class PKCRpcClient extends TypedEmitter {
|
|
14
23
|
constructor(rpcServerUrl) {
|
|
15
24
|
super();
|
|
@@ -103,7 +112,10 @@ export default class PKCRpcClient extends TypedEmitter {
|
|
|
103
112
|
this.emit("error", error);
|
|
104
113
|
});
|
|
105
114
|
this._webSocketClient.on("close", () => {
|
|
106
|
-
|
|
115
|
+
// destroy() already awaited this close and logged it; a log here would land after
|
|
116
|
+
// destroy() resolved (#325)
|
|
117
|
+
if (!this._destroyRequested)
|
|
118
|
+
log.error("connection with web socket has been closed", this._websocketServerUrl);
|
|
107
119
|
this._openConnectionPromise = undefined;
|
|
108
120
|
this.setState("stopped");
|
|
109
121
|
});
|
|
@@ -191,7 +203,12 @@ export default class PKCRpcClient extends TypedEmitter {
|
|
|
191
203
|
try {
|
|
192
204
|
if (this._webSocketClient instanceof WebSocketClient) {
|
|
193
205
|
this._webSocketClient.setAutoReconnect(false);
|
|
206
|
+
// Wait for the socket to actually close so nothing (in particular no log line) runs on our
|
|
207
|
+
// behalf after destroy() has resolved (#325)
|
|
208
|
+
const socketClosed = this._waitForSocketClose();
|
|
194
209
|
this._webSocketClient.close();
|
|
210
|
+
await socketClosed;
|
|
211
|
+
log("Closed websocket connection to", this._websocketServerUrl);
|
|
195
212
|
}
|
|
196
213
|
}
|
|
197
214
|
catch (e) {
|
|
@@ -200,6 +217,22 @@ export default class PKCRpcClient extends TypedEmitter {
|
|
|
200
217
|
this._openConnectionPromise = undefined;
|
|
201
218
|
this.setState("stopped");
|
|
202
219
|
}
|
|
220
|
+
// Resolves once the raw socket under rpc-websockets has fully closed, right away if there is none.
|
|
221
|
+
// Bounded so a peer that never completes the close handshake cannot hang destroy(); rpc-websockets
|
|
222
|
+
// exposes the raw socket as `.socket` (ws in Node, the native WebSocket in browsers), both of which
|
|
223
|
+
// support addEventListener.
|
|
224
|
+
async _waitForSocketClose() {
|
|
225
|
+
const socket = this._webSocketClient.socket;
|
|
226
|
+
if (!socket || socket.readyState === WEBSOCKET_READY_STATE_CLOSED)
|
|
227
|
+
return;
|
|
228
|
+
const closed = new Promise((resolve) => socket.addEventListener("close", () => resolve(), { once: true }));
|
|
229
|
+
try {
|
|
230
|
+
await pTimeout(closed, { milliseconds: DESTROY_SOCKET_CLOSE_TIMEOUT_MS });
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
log.error("Websocket did not close within", DESTROY_SOCKET_CLOSE_TIMEOUT_MS, "ms of destroy()", this._websocketServerUrl);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
203
236
|
toJSON() {
|
|
204
237
|
return undefined;
|
|
205
238
|
}
|
|
@@ -264,7 +297,70 @@ export default class PKCRpcClient extends TypedEmitter {
|
|
|
264
297
|
if (rest && Object.keys(rest).length > 0)
|
|
265
298
|
Object.assign(target, rest);
|
|
266
299
|
}
|
|
300
|
+
subscriptionActive(subscriptionId) {
|
|
301
|
+
return Boolean(this._subscriptionEvents[subscriptionId]);
|
|
302
|
+
}
|
|
303
|
+
// Attach a subscription's notification handlers and replay its buffered notifications in a
|
|
304
|
+
// macrotask, so events the server emitted at subscribe time (before the JSON-RPC subscribe
|
|
305
|
+
// response) still reach a listener attached synchronously after the subscribing call resolves
|
|
306
|
+
// (#299/#314). A microtask is not enough: it is enqueued before the promise-resolution jobs
|
|
307
|
+
// that unwind the awaits, so it would still run before the caller's continuation. Attaching
|
|
308
|
+
// the handlers inside the same deferred task keeps delivery ordered: notifications arriving in
|
|
309
|
+
// the window find no listeners, so they are buffered and the replay drains everything in
|
|
310
|
+
// arrival order. Opt-in per call site because some subscribers (e.g. the exports subscription
|
|
311
|
+
// in rpc-local-community.ts) deliberately rely on the synchronous replay ordering.
|
|
312
|
+
attachSubscriptionHandlersDeferred(opts) {
|
|
313
|
+
scheduleMacrotask(() => {
|
|
314
|
+
const ownsSubscription = () => !opts.isStale() && this.subscriptionActive(opts.subscriptionId);
|
|
315
|
+
// The subscription may have been unsubscribed or the connection destroyed in the meantime
|
|
316
|
+
if (!ownsSubscription())
|
|
317
|
+
return;
|
|
318
|
+
try {
|
|
319
|
+
opts.attach(this.getSubscription(opts.subscriptionId));
|
|
320
|
+
this._emitPendingMessagesWhile(opts.subscriptionId, ownsSubscription);
|
|
321
|
+
}
|
|
322
|
+
catch (e) {
|
|
323
|
+
this._containReplayError(e, opts.replayErrorContainment);
|
|
324
|
+
}
|
|
325
|
+
}, 0);
|
|
326
|
+
}
|
|
327
|
+
_containReplayError(e, containment) {
|
|
328
|
+
const { entityName, log: siteLog, emitError, stop } = containment;
|
|
329
|
+
siteLog.error(`Error thrown while replaying buffered subscribe-time notifications, stopping the ${entityName}`, e);
|
|
330
|
+
// Surface the contained throw before stopping: without the emit the only signal is a
|
|
331
|
+
// debug-namespace log and a silent stop. The emit itself can throw (with no listeners
|
|
332
|
+
// anywhere the pkc bubbling re-throws), so it stays contained too.
|
|
333
|
+
try {
|
|
334
|
+
emitError(e instanceof Error ? e : new Error(String(e)));
|
|
335
|
+
}
|
|
336
|
+
catch (emitFailure) {
|
|
337
|
+
siteLog.error("No listener received the replay error", emitFailure);
|
|
338
|
+
}
|
|
339
|
+
stop().catch((stopError) => siteLog.error(`Failed to stop the ${entityName} after a replay error`, stopError));
|
|
340
|
+
}
|
|
341
|
+
// Replay the buffered notifications one message at a time, re-checking ownership between
|
|
342
|
+
// messages: a replayed handler may call stop(), whose synchronous prefix clears the caller's
|
|
343
|
+
// subscription id (directly, or through the mirror cleanup chain), and the remaining buffered
|
|
344
|
+
// notifications must then be dropped instead of delivered into a stopping instance. The
|
|
345
|
+
// messages delivered before the stop are consumed; the leftovers stay buffered for
|
|
346
|
+
// unsubscribe() to discard.
|
|
347
|
+
_emitPendingMessagesWhile(subscriptionId, shouldDeliver) {
|
|
348
|
+
const pendingMessages = this._pendingSubscriptionMsgs[subscriptionId];
|
|
349
|
+
if (!pendingMessages)
|
|
350
|
+
return;
|
|
351
|
+
while (pendingMessages.length > 0) {
|
|
352
|
+
if (!shouldDeliver())
|
|
353
|
+
return;
|
|
354
|
+
const message = pendingMessages.shift();
|
|
355
|
+
this._subscriptionEvents[subscriptionId].emit(message?.params?.event, message);
|
|
356
|
+
}
|
|
357
|
+
delete this._pendingSubscriptionMsgs[subscriptionId];
|
|
358
|
+
}
|
|
267
359
|
emitAllPendingMessages(subscriptionId) {
|
|
360
|
+
// The replay may be deferred to a later task (#299), so the subscription can be
|
|
361
|
+
// unsubscribed or the connection destroyed before it runs
|
|
362
|
+
if (!this._pendingSubscriptionMsgs[subscriptionId])
|
|
363
|
+
return;
|
|
268
364
|
this._pendingSubscriptionMsgs[subscriptionId].forEach((message) => this._subscriptionEvents[subscriptionId].emit(message?.params?.event, message));
|
|
269
365
|
delete this._pendingSubscriptionMsgs[subscriptionId];
|
|
270
366
|
}
|