@pkcprotocol/pkc-js 0.0.91 → 0.0.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +5 -0
  2. package/dist/browser/clients/rpc-client/pkc-rpc-client.d.ts +15 -0
  3. package/dist/browser/clients/rpc-client/pkc-rpc-client.js +70 -0
  4. package/dist/browser/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  5. package/dist/browser/community/rpc-local-community.js +43 -15
  6. package/dist/browser/community/rpc-local-community.js.map +1 -1
  7. package/dist/browser/community/rpc-remote-community.js +30 -10
  8. package/dist/browser/community/rpc-remote-community.js.map +1 -1
  9. package/dist/browser/errors.d.ts +1 -0
  10. package/dist/browser/errors.js +1 -0
  11. package/dist/browser/errors.js.map +1 -1
  12. package/dist/browser/generated-version.d.ts +1 -1
  13. package/dist/browser/generated-version.js +1 -1
  14. package/dist/browser/pkc-error.d.ts +1 -1
  15. package/dist/browser/publications/comment/comment.js +30 -11
  16. package/dist/browser/publications/comment/comment.js.map +1 -1
  17. package/dist/browser/publications/publication.js +46 -17
  18. package/dist/browser/publications/publication.js.map +1 -1
  19. package/dist/browser/rpc/src/schema.js +3 -1
  20. package/dist/browser/rpc/src/schema.js.map +1 -1
  21. package/dist/browser/runtime/node/community/local-community/cleanup.d.ts +4 -1
  22. package/dist/browser/runtime/node/community/local-community/cleanup.js +52 -2
  23. package/dist/browser/runtime/node/community/local-community/cleanup.js.map +1 -1
  24. package/dist/browser/runtime/node/community/local-community/lifecycle.js +6 -2
  25. package/dist/browser/runtime/node/community/local-community/lifecycle.js.map +1 -1
  26. package/dist/browser/util.js +1 -1
  27. package/dist/browser/util.js.map +1 -1
  28. package/dist/bundled/bundle-manifest.json +25 -25
  29. package/dist/bundled/chunks/{helia-for-pkc-CCX9nuWP.js → helia-for-pkc-C8tOPlIj.js} +2 -2
  30. package/dist/bundled/chunks/{local-community-BoQ5y9sw.js → local-community-DYEWq5rq.js} +1 -1
  31. package/dist/bundled/chunks/{local-community-CdWuUlnE.js → local-community-DgbMuVAA.js} +26 -8
  32. package/dist/bundled/chunks/{node-vg8Qni_Y.js → node-BrLiC0qX.js} +82 -20
  33. package/dist/bundled/chunks/{rpc-local-community-CRze9-V-.js → rpc-local-community-DOSee621.js} +38 -15
  34. package/dist/bundled/chunks/{schema-DKVemfhB.js → schema-HH2zeH-j.js} +2 -1
  35. package/dist/bundled/chunks/{util-CkQl93ac.js → util-DSIDv1Cb.js} +1 -1
  36. package/dist/bundled/index.js +1 -1
  37. package/dist/bundled/rpc/src/index.js +4 -4
  38. package/dist/node/clients/rpc-client/pkc-rpc-client.d.ts +15 -0
  39. package/dist/node/clients/rpc-client/pkc-rpc-client.js +70 -0
  40. package/dist/node/clients/rpc-client/pkc-rpc-client.js.map +1 -1
  41. package/dist/node/community/rpc-local-community.js +43 -15
  42. package/dist/node/community/rpc-local-community.js.map +1 -1
  43. package/dist/node/community/rpc-remote-community.js +30 -10
  44. package/dist/node/community/rpc-remote-community.js.map +1 -1
  45. package/dist/node/errors.d.ts +1 -0
  46. package/dist/node/errors.js +1 -0
  47. package/dist/node/errors.js.map +1 -1
  48. package/dist/node/generated-version.d.ts +1 -1
  49. package/dist/node/generated-version.js +1 -1
  50. package/dist/node/pkc-error.d.ts +1 -1
  51. package/dist/node/publications/comment/comment.js +30 -11
  52. package/dist/node/publications/comment/comment.js.map +1 -1
  53. package/dist/node/publications/publication.js +46 -17
  54. package/dist/node/publications/publication.js.map +1 -1
  55. package/dist/node/rpc/src/schema.js +3 -1
  56. package/dist/node/rpc/src/schema.js.map +1 -1
  57. package/dist/node/runtime/node/community/local-community/cleanup.d.ts +4 -1
  58. package/dist/node/runtime/node/community/local-community/cleanup.js +52 -2
  59. package/dist/node/runtime/node/community/local-community/cleanup.js.map +1 -1
  60. package/dist/node/runtime/node/community/local-community/lifecycle.js +6 -2
  61. package/dist/node/runtime/node/community/local-community/lifecycle.js.map +1 -1
  62. package/dist/node/util.js +1 -1
  63. package/dist/node/util.js.map +1 -1
  64. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { i as __toESM, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
2
- import { $n as n$2, B as isIpfsCid, Bt as pTimeout, Ct as findStartedCommunity, D as deepMergeRuntimeFields, Dt as listUpdatingComments, E as createAbortError, En as CommentUpdateForChallengeVerificationSchema, Et as listStartedCommunities, H as isIpns, Ir as joinValues, It as untrackUpdatingComment, L as hideClassPrivateProps, Lr as parsedType, Nt as trackUpdatingComment, Ot as listUpdatingCommunities, Q as isStringDomain, R as ipnsNameToIpnsOverPubsubTopic, Rr as stringifyPrimitive, Rt as require_sha256, Sr as logger_default, Tr as setErrorMap, Tt as findUpdatingCommunity, a as ChallengeRequestMessageSchema, an as CommunityIpfsSchema, ar as e$1, b as areEquivalentCommunityAddresses, br as PKCError, bt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, ct as removeUndefinedValuesRecursively, dn as PubsubTopicSchema, en as CommunityAnchorSchema, ft as retryKuboIpfsAdd, gt as sleepUntilTimeoutOrAbort, hr as FailedToFetchCommentIpfsFromGatewaysError, ht as shortifyCid, ir as e, k as doesDomainAddressHaveCapitalLetter, kn as CommentUpdateSchema, kt as refreshTrackedCommentAliases, lt as replaceXWithY, mr as require_retry, mt as shortifyAddress, nt as rejectWhenAbortSignalFires, r as ChallengeMessageSchema, rr as t$1, rt as rejectWhenCommunityStopsOrAborts, s as ChallengeVerificationMessageSchema, sr as r, t as ChallengeAnswerMessageSchema, tr as n$1, ut as resolveWhenPredicateIsTrue, vt as throwIfAbortSignalAborted, wt as findUpdatingComment, xn as CommentIpfsSchema, xr as messages, y as version_default, yt as timestamp, z as isAbortError, zt as TimeoutError } from "./schema-DKVemfhB.js";
3
- import { $ as RepliesPages, $n as RpcUnsubscribeParamSchema, An as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, At as verifyCommentIpfs, B as setNativeFunctions$1, Bn as RpcEditCommunityParamSchema, Cn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, Ct as signCommunityEdit, D as createKuboRpcClient, Dn as parsePKCUserOptionsSchemaWithPKCErrorIfItFails, En as parseJsonWithPKCErrorIfFails, Et as verifyChallengeMessage, Fn as RpcCancelExportParamSchema, Ft as verifyCommunityEdit, Gn as RpcFetchCidParamSchema, Gt as getCommunityPublicKeyFromWire, H as CommentClientsManager, Hn as RpcExportCommunityModLogsResultSchema, Ht as buildRuntimeCommunityFields, I as listCommunitiesSync, In as RpcCidParamSchema, It as verifyVote, Jn as RpcPublishChallengeAnswersParamSchema, Kn as RpcFetchCidResultSchema, Kt as normalizeCommunityInputFromCommunity, L as monitorCommunitiesDirectory, Ln as RpcCommentRepliesPageParamSchema, Lt as buildRuntimeAuthor, Mn as parseVotePubsubMessagePublicationSchemaWithPKCErrorIfItFails, Mt as verifyCommentPubsubMessage, N as getDefaultDataPath, Nn as RpcAnchorPublishPreparationResultSchema, Nt as verifyCommentUpdate, On as parseRpcCommentEventWithPKCErrorIfItFails, Ot as verifyChallengeVerification, Pn as RpcAuthorNameParamSchema, Q as parseRawPages, Qn as RpcSuccessResultSchema, Qt as getPKCAddressFromPublicKeySync, Rn as RpcCommunityIdentifierParamSchema, Rt as cleanWireAuthor, Sn as parseCreateVoteOptionsSchemaWithPKCErrorIfItFails, Tn as parseDecryptedChallengeWithPKCErrorIfItFails, Un as RpcExportCommunityParamSchema, Ut as getCommunityAddressFromRecord, V as tryToDeleteCommunitiesThatFailedToBeDeletedBefore, Vn as RpcExportCommunityModLogsParamSchema, Vt as normalizeCreatePublicationAuthor, Wn as RpcExportCommunityResultSchema, Wt as getCommunityNameFromWire, X as findCommentInPageInstanceRecursively, Xn as RpcResolveAuthorNameResultSchema, Y as extractCommunityRuntimeFieldsFromParsedPages, Yn as RpcPublishedAnchorRecordResultSchema, Yt as getBufferedPKCAddressFromPublicKey, Zn as RpcSubscriptionIdResultSchema, _ as createSigner, _n as parseCreateCommunityEditPublicationOptionsSchemaWithPKCErrorIfItFails, _t as signComment, an as parseCommentIpfsSchemaWithPKCErrorIfItFails, ar as t$3, at as PublicationClientsManager, bn as parseCreateRemoteCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, c as LRUCache, cn as parseCommentPubsubMessagePublicationWithPKCErrorIfItFails, cr as t$2, d as KeyvBetterSqlite3, dt as require_lib$1, et as applyNameResolvedCacheToCrosspost, f as decodeRpcChallengeAnswerPubsubMsg, fn as parseCommunityEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, ft as cleanUpBeforePublishing, gn as parseCreateCommentOptionsSchemaWithPKCErrorIfItFails, h as decodeRpcChallengeVerificationPubsubMsg, hn as parseCreateCommentModerationOptionsSchemaWithPKCErrorIfItFails, ht as signChallengeRequest, in as parseCommentEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, it as stripNameResolvedFromCrosspost, jt as verifyCommentModeration, kn as parseRpcCommentUpdateEventWithPKCErrorIfItFails, kt as verifyCommentEdit, l as RemoteCommunity, ln as parseCommunityAddressWithPKCErrorIfItFails, lr as t$5, m as decodeRpcChallengeRequestPubsubMsg, mn as parseCreateCommentEditOptionsSchemaWithPKCErrorIfItFails, mr as require_undici, n as RpcRemoteCommunity, nr as t$4, nt as collectCrosspostAuthorsToResolve, o as pkcJsChallenges, or as n$3, ot as PKCClientsManager, p as decodeRpcChallengePubsubMsg, pr as nativeFunctions$2, pt as signChallengeAnswer, qn as RpcPublishAnchorRecordParamSchema, qt as decode, s as TrackedInstanceRegistry, sn as parseCommentModerationPubsubMessagePublicationSchemaWithPKCErrorIfItFails, st as InflightFetchManager, t as RpcLocalCommunity, tn as parseCidStringSchemaWithPKCErrorIfItFails, tt as cloneCrosspostForRuntime, ut as PKCTypedEmitter, v as createAnchorIpnsRecord$1, vt as signCommentEdit, wn as parseDecryptedChallengeVerification, wt as signVote, x as encryptEd25519AesGcm, xn as parseCreateRpcCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, y as decryptEd25519AesGcm, yt as signCommentModeration, zn as RpcCommunityPageParamSchema, zt as getAuthorNameFromRuntime } from "./rpc-local-community-CRze9-V-.js";
4
- import { o as getHeliaDebugContext } from "./util-CkQl93ac.js";
2
+ import { $n as n$2, B as isIpfsCid, Bt as pTimeout, Ct as findStartedCommunity, D as deepMergeRuntimeFields, Dt as listUpdatingComments, E as createAbortError, En as CommentUpdateForChallengeVerificationSchema, Et as listStartedCommunities, H as isIpns, Ir as joinValues, It as untrackUpdatingComment, L as hideClassPrivateProps, Lr as parsedType, Nt as trackUpdatingComment, Ot as listUpdatingCommunities, Q as isStringDomain, R as ipnsNameToIpnsOverPubsubTopic, Rr as stringifyPrimitive, Rt as require_sha256, Sr as logger_default, Tr as setErrorMap, Tt as findUpdatingCommunity, a as ChallengeRequestMessageSchema, an as CommunityIpfsSchema, ar as e$1, b as areEquivalentCommunityAddresses, br as PKCError, bt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, ct as removeUndefinedValuesRecursively, dn as PubsubTopicSchema, en as CommunityAnchorSchema, ft as retryKuboIpfsAdd, gt as sleepUntilTimeoutOrAbort, hr as FailedToFetchCommentIpfsFromGatewaysError, ht as shortifyCid, ir as e, k as doesDomainAddressHaveCapitalLetter, kn as CommentUpdateSchema, kt as refreshTrackedCommentAliases, lt as replaceXWithY, mr as require_retry, mt as shortifyAddress, nt as rejectWhenAbortSignalFires, r as ChallengeMessageSchema, rr as t$1, rt as rejectWhenCommunityStopsOrAborts, s as ChallengeVerificationMessageSchema, sr as r, t as ChallengeAnswerMessageSchema, tr as n$1, ut as resolveWhenPredicateIsTrue, vt as throwIfAbortSignalAborted, wt as findUpdatingComment, xn as CommentIpfsSchema, xr as messages, y as version_default, yt as timestamp, z as isAbortError, zt as TimeoutError } from "./schema-HH2zeH-j.js";
3
+ import { $ as RepliesPages, $n as RpcUnsubscribeParamSchema, An as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, At as verifyCommentIpfs, B as setNativeFunctions$1, Bn as RpcEditCommunityParamSchema, Cn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, Ct as signCommunityEdit, D as createKuboRpcClient, Dn as parsePKCUserOptionsSchemaWithPKCErrorIfItFails, En as parseJsonWithPKCErrorIfFails, Et as verifyChallengeMessage, Fn as RpcCancelExportParamSchema, Ft as verifyCommunityEdit, Gn as RpcFetchCidParamSchema, Gt as getCommunityPublicKeyFromWire, H as CommentClientsManager, Hn as RpcExportCommunityModLogsResultSchema, Ht as buildRuntimeCommunityFields, I as listCommunitiesSync, In as RpcCidParamSchema, It as verifyVote, Jn as RpcPublishChallengeAnswersParamSchema, Kn as RpcFetchCidResultSchema, Kt as normalizeCommunityInputFromCommunity, L as monitorCommunitiesDirectory, Ln as RpcCommentRepliesPageParamSchema, Lt as buildRuntimeAuthor, Mn as parseVotePubsubMessagePublicationSchemaWithPKCErrorIfItFails, Mt as verifyCommentPubsubMessage, N as getDefaultDataPath, Nn as RpcAnchorPublishPreparationResultSchema, Nt as verifyCommentUpdate, On as parseRpcCommentEventWithPKCErrorIfItFails, Ot as verifyChallengeVerification, Pn as RpcAuthorNameParamSchema, Q as parseRawPages, Qn as RpcSuccessResultSchema, Qt as getPKCAddressFromPublicKeySync, Rn as RpcCommunityIdentifierParamSchema, Rt as cleanWireAuthor, Sn as parseCreateVoteOptionsSchemaWithPKCErrorIfItFails, Tn as parseDecryptedChallengeWithPKCErrorIfItFails, Un as RpcExportCommunityParamSchema, Ut as getCommunityAddressFromRecord, V as tryToDeleteCommunitiesThatFailedToBeDeletedBefore, Vn as RpcExportCommunityModLogsParamSchema, Vt as normalizeCreatePublicationAuthor, Wn as RpcExportCommunityResultSchema, Wt as getCommunityNameFromWire, X as findCommentInPageInstanceRecursively, Xn as RpcResolveAuthorNameResultSchema, Y as extractCommunityRuntimeFieldsFromParsedPages, Yn as RpcPublishedAnchorRecordResultSchema, Yt as getBufferedPKCAddressFromPublicKey, Zn as RpcSubscriptionIdResultSchema, _ as createSigner, _n as parseCreateCommunityEditPublicationOptionsSchemaWithPKCErrorIfItFails, _t as signComment, an as parseCommentIpfsSchemaWithPKCErrorIfItFails, ar as t$3, at as PublicationClientsManager, bn as parseCreateRemoteCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, c as LRUCache, cn as parseCommentPubsubMessagePublicationWithPKCErrorIfItFails, cr as t$2, d as KeyvBetterSqlite3, dt as require_lib$1, et as applyNameResolvedCacheToCrosspost, f as decodeRpcChallengeAnswerPubsubMsg, fn as parseCommunityEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, ft as cleanUpBeforePublishing, gn as parseCreateCommentOptionsSchemaWithPKCErrorIfItFails, h as decodeRpcChallengeVerificationPubsubMsg, hn as parseCreateCommentModerationOptionsSchemaWithPKCErrorIfItFails, ht as signChallengeRequest, in as parseCommentEditPubsubMessagePublicationSchemaWithPKCErrorIfItFails, it as stripNameResolvedFromCrosspost, jt as verifyCommentModeration, kn as parseRpcCommentUpdateEventWithPKCErrorIfItFails, kt as verifyCommentEdit, l as RemoteCommunity, ln as parseCommunityAddressWithPKCErrorIfItFails, lr as t$5, m as decodeRpcChallengeRequestPubsubMsg, mn as parseCreateCommentEditOptionsSchemaWithPKCErrorIfItFails, mr as require_undici, n as RpcRemoteCommunity, nr as t$4, nt as collectCrosspostAuthorsToResolve, o as pkcJsChallenges, or as n$3, ot as PKCClientsManager, p as decodeRpcChallengePubsubMsg, pr as nativeFunctions$2, pt as signChallengeAnswer, qn as RpcPublishAnchorRecordParamSchema, qt as decode, s as TrackedInstanceRegistry, sn as parseCommentModerationPubsubMessagePublicationSchemaWithPKCErrorIfItFails, st as InflightFetchManager, t as RpcLocalCommunity, tn as parseCidStringSchemaWithPKCErrorIfItFails, tt as cloneCrosspostForRuntime, ut as PKCTypedEmitter, v as createAnchorIpnsRecord$1, vt as signCommentEdit, wn as parseDecryptedChallengeVerification, wt as signVote, x as encryptEd25519AesGcm, xn as parseCreateRpcCommunityFunctionArgumentSchemaWithPKCErrorIfItFails, y as decryptEd25519AesGcm, yt as signCommentModeration, zn as RpcCommunityPageParamSchema, zt as getAuthorNameFromRuntime } from "./rpc-local-community-DOSee621.js";
4
+ import { o as getHeliaDebugContext } from "./util-DSIDv1Cb.js";
5
5
  import path from "path";
6
6
  import assert from "assert";
7
7
  import fs from "fs";
@@ -276,12 +276,13 @@ var Publication = class extends import_lib.TypedEmitter {
276
276
  }
277
277
  });
278
278
  if (this._rpcPublishSubscriptionId) {
279
+ const subscriptionId = this._rpcPublishSubscriptionId;
280
+ this._rpcPublishSubscriptionId = void 0;
279
281
  try {
280
- await this._pkc._pkcRpcClient.unsubscribe(this._rpcPublishSubscriptionId);
282
+ await this._pkc._pkcRpcClient.unsubscribe(subscriptionId);
281
283
  } catch (e) {
282
284
  log.error("Failed to unsubscribe from publication publish", e);
283
285
  }
284
- this._rpcPublishSubscriptionId = void 0;
285
286
  }
286
287
  }
287
288
  async _handleIncomingChallengePubsubMessage(msg) {
@@ -486,10 +487,13 @@ var Publication = class extends import_lib.TypedEmitter {
486
487
  async publishChallengeAnswers({ challengeAnswers }) {
487
488
  const log = logger_default("pkc-js:publication:publishChallengeAnswers");
488
489
  const toEncryptAnswers = parseDecryptedChallengeAnswerWithPKCErrorIfItFails({ challengeAnswers });
489
- if (this._pkc._pkcRpcClient && typeof this._rpcPublishSubscriptionId === "number") return this._pkc._pkcRpcClient.publishChallengeAnswers({
490
- subscriptionId: this._rpcPublishSubscriptionId,
491
- challengeAnswers: toEncryptAnswers.challengeAnswers
492
- });
490
+ if (this._pkc._pkcRpcClient) {
491
+ if (typeof this._rpcPublishSubscriptionId !== "number") throw new PKCError("ERR_RPC_CLIENT_NO_ACTIVE_PUBLISH_SUBSCRIPTION", { publishingState: this.publishingState });
492
+ return this._pkc._pkcRpcClient.publishChallengeAnswers({
493
+ subscriptionId: this._rpcPublishSubscriptionId,
494
+ challengeAnswers: toEncryptAnswers.challengeAnswers
495
+ });
496
+ }
493
497
  const challengeExchangesWithChallenge = Object.values(this._challengeExchanges).filter((exchange) => exchange.challenge);
494
498
  if (challengeExchangesWithChallenge.length === 0) throw Error("No challenge exchanges with challenge");
495
499
  if (challengeExchangesWithChallenge.length > 1) throw Error("We should only have one challenge exchange with challenge");
@@ -704,14 +708,15 @@ var Publication = class extends import_lib.TypedEmitter {
704
708
  this._unregisterFromPkcOncePublishWorkSettles();
705
709
  this._setStateWithEmission("stopped");
706
710
  if (this._rpcPublishSubscriptionId) {
711
+ const subscriptionId = this._rpcPublishSubscriptionId;
712
+ this._rpcPublishSubscriptionId = void 0;
707
713
  try {
708
- await this._pkc._pkcRpcClient.unsubscribe(this._rpcPublishSubscriptionId);
714
+ await this._pkc._pkcRpcClient.unsubscribe(subscriptionId);
709
715
  } catch (e) {
710
716
  log.error("Failed to unsubscribe from publication publish", e);
711
717
  }
712
- this._rpcPublishSubscriptionId = void 0;
713
718
  this._setRpcClientState("stopped");
714
- } else if (typeof this._community?.pubsubTopic === "string") {
719
+ } else if (!this._pkc._pkcRpcClient && typeof this._community?.pubsubTopic === "string") {
715
720
  await this._clientsManager.pubsubUnsubscribe(this._community.pubsubTopic, this._handleChallengeExchange);
716
721
  Object.values(this._challengeExchanges).forEach((exchange) => this._updatePubsubState("stopped", exchange.providerUrl));
717
722
  }
@@ -787,8 +792,17 @@ var Publication = class extends import_lib.TypedEmitter {
787
792
  communityEdit: rpcClient.publishCommunityEdit
788
793
  }[this.getType()].bind(rpcClient)(this.toJSONPubsubRequestToEncrypt());
789
794
  this._rpcPublishSubscriptionId = subscriptionId;
790
- this._pkc._pkcRpcClient.getSubscription(this._rpcPublishSubscriptionId).on("challengerequest", this._handleIncomingChallengeRequestFromRpc.bind(this)).on("challenge", this._handleIncomingChallengeFromRpc.bind(this)).on("challengeanswer", this._handleIncomingChallengeAnswerFromRpc.bind(this)).on("challengeverification", this._handleIncomingChallengeVerificationFromRpc.bind(this)).on("publishingstatechange", this._handleIncomingPublishingStateFromRpc.bind(this)).on("statechange", this._handleIncomingStateFromRpc.bind(this)).on("error", this._handleIncomingErrorFromRpc.bind(this));
791
- this._pkc._pkcRpcClient.emitAllPendingMessages(this._rpcPublishSubscriptionId);
795
+ rpcClient.attachSubscriptionHandlersDeferred({
796
+ subscriptionId,
797
+ isStale: () => this._rpcPublishSubscriptionId !== subscriptionId,
798
+ attach: (subscription) => subscription.on("challengerequest", this._handleIncomingChallengeRequestFromRpc.bind(this)).on("challenge", this._handleIncomingChallengeFromRpc.bind(this)).on("challengeanswer", this._handleIncomingChallengeAnswerFromRpc.bind(this)).on("challengeverification", this._handleIncomingChallengeVerificationFromRpc.bind(this)).on("publishingstatechange", this._handleIncomingPublishingStateFromRpc.bind(this)).on("statechange", this._handleIncomingStateFromRpc.bind(this)).on("error", this._handleIncomingErrorFromRpc.bind(this)),
799
+ replayErrorContainment: {
800
+ entityName: "publication",
801
+ log: logger_default("pkc-js:publication:publish:_publishWithRpc"),
802
+ emitError: (error) => this.emit("error", error),
803
+ stop: () => this.stop()
804
+ }
805
+ });
792
806
  }
793
807
  _changePublicationStateEmitEventEmitStateChangeEvent(opts) {
794
808
  const shouldEmitStateChange = opts.newState && opts.newState !== this.state;
@@ -1764,8 +1778,18 @@ var Comment = class extends Publication {
1764
1778
  throw e;
1765
1779
  }
1766
1780
  this._setStateWithEmission("updating");
1767
- this._pkc._pkcRpcClient.getSubscription(this._updateRpcSubscriptionId).on("update", this._handleUpdateEventFromRpc.bind(this)).on("comment", this._handleCommentEventFromRpc.bind(this)).on("runtimeupdate", this._handleRuntimeUpdateEventFromRpc.bind(this)).on("updatingstatechange", this._handleUpdatingStateChangeFromRpc.bind(this)).on("statechange", this._handleStateChangeFromRpc.bind(this)).on("error", this._handleErrorEventFromRpc.bind(this));
1768
- this._pkc._pkcRpcClient.emitAllPendingMessages(this._updateRpcSubscriptionId);
1781
+ const subscriptionId = this._updateRpcSubscriptionId;
1782
+ this._pkc._pkcRpcClient.attachSubscriptionHandlersDeferred({
1783
+ subscriptionId,
1784
+ isStale: () => this._updateRpcSubscriptionId !== subscriptionId,
1785
+ attach: (subscription) => subscription.on("update", this._handleUpdateEventFromRpc.bind(this)).on("comment", this._handleCommentEventFromRpc.bind(this)).on("runtimeupdate", this._handleRuntimeUpdateEventFromRpc.bind(this)).on("updatingstatechange", this._handleUpdatingStateChangeFromRpc.bind(this)).on("statechange", this._handleStateChangeFromRpc.bind(this)).on("error", this._handleErrorEventFromRpc.bind(this)),
1786
+ replayErrorContainment: {
1787
+ entityName: "comment",
1788
+ log,
1789
+ emitError: (error) => this.emit("error", error),
1790
+ stop: () => this.stop()
1791
+ }
1792
+ });
1769
1793
  }
1770
1794
  _useUpdatePropsFromUpdatingStartedCommunityIfPossible() {
1771
1795
  if (!this.cid) throw Error("Need to have comment.cid defined");
@@ -1912,12 +1936,13 @@ var Comment = class extends Publication {
1912
1936
  if (!this.cid) return;
1913
1937
  this._commentIpfsloadingOperation?.stop();
1914
1938
  if (this._updateRpcSubscriptionId) {
1939
+ const subscriptionId = this._updateRpcSubscriptionId;
1940
+ this._updateRpcSubscriptionId = void 0;
1915
1941
  try {
1916
- await this._pkc._pkcRpcClient.unsubscribe(this._updateRpcSubscriptionId);
1942
+ await this._pkc._pkcRpcClient.unsubscribe(subscriptionId);
1917
1943
  } catch (e) {
1918
1944
  log.error("Failed to unsubscribe from commentUpdate", e);
1919
1945
  }
1920
- this._updateRpcSubscriptionId = void 0;
1921
1946
  this._setRpcClientState("stopped");
1922
1947
  untrackUpdatingComment(this._pkc, this);
1923
1948
  }
@@ -2196,6 +2221,7 @@ const parseRpcExportCommunityModLogsResult = (result) => RpcExportCommunityModLo
2196
2221
  //#endregion
2197
2222
  //#region dist/node/clients/rpc-client/pkc-rpc-client.js
2198
2223
  const log = logger_default("pkc-js:PKCRpcClient");
2224
+ const scheduleMacrotask = setTimeout.bind(globalThis);
2199
2225
  var PKCRpcClient = class extends import_lib.TypedEmitter {
2200
2226
  constructor(rpcServerUrl) {
2201
2227
  super();
@@ -2400,7 +2426,43 @@ var PKCRpcClient = class extends import_lib.TypedEmitter {
2400
2426
  _assignAdditionalProps(target, rest) {
2401
2427
  if (rest && Object.keys(rest).length > 0) Object.assign(target, rest);
2402
2428
  }
2429
+ subscriptionActive(subscriptionId) {
2430
+ return Boolean(this._subscriptionEvents[subscriptionId]);
2431
+ }
2432
+ attachSubscriptionHandlersDeferred(opts) {
2433
+ scheduleMacrotask(() => {
2434
+ const ownsSubscription = () => !opts.isStale() && this.subscriptionActive(opts.subscriptionId);
2435
+ if (!ownsSubscription()) return;
2436
+ try {
2437
+ opts.attach(this.getSubscription(opts.subscriptionId));
2438
+ this._emitPendingMessagesWhile(opts.subscriptionId, ownsSubscription);
2439
+ } catch (e) {
2440
+ this._containReplayError(e, opts.replayErrorContainment);
2441
+ }
2442
+ }, 0);
2443
+ }
2444
+ _containReplayError(e, containment) {
2445
+ const { entityName, log: siteLog, emitError, stop } = containment;
2446
+ siteLog.error(`Error thrown while replaying buffered subscribe-time notifications, stopping the ${entityName}`, e);
2447
+ try {
2448
+ emitError(e instanceof Error ? e : new Error(String(e)));
2449
+ } catch (emitFailure) {
2450
+ siteLog.error("No listener received the replay error", emitFailure);
2451
+ }
2452
+ stop().catch((stopError) => siteLog.error(`Failed to stop the ${entityName} after a replay error`, stopError));
2453
+ }
2454
+ _emitPendingMessagesWhile(subscriptionId, shouldDeliver) {
2455
+ const pendingMessages = this._pendingSubscriptionMsgs[subscriptionId];
2456
+ if (!pendingMessages) return;
2457
+ while (pendingMessages.length > 0) {
2458
+ if (!shouldDeliver()) return;
2459
+ const message = pendingMessages.shift();
2460
+ this._subscriptionEvents[subscriptionId].emit(message?.params?.event, message);
2461
+ }
2462
+ delete this._pendingSubscriptionMsgs[subscriptionId];
2463
+ }
2403
2464
  emitAllPendingMessages(subscriptionId) {
2465
+ if (!this._pendingSubscriptionMsgs[subscriptionId]) return;
2404
2466
  this._pendingSubscriptionMsgs[subscriptionId].forEach((message) => this._subscriptionEvents[subscriptionId].emit(message?.params?.event, message));
2405
2467
  delete this._pendingSubscriptionMsgs[subscriptionId];
2406
2468
  }
@@ -6948,7 +7010,7 @@ var PKC$1 = class extends PKCTypedEmitter {
6948
7010
  this.clients.libp2pJsClients = {};
6949
7011
  if (!this.libp2pJsClientsOptions) return;
6950
7012
  if (!this.httpRoutersOptions) throw Error("httpRoutersOptions is required for libp2pJsClient");
6951
- const { createLibp2pJsClientOrUseExistingOne } = await import("./helia-for-pkc-CCX9nuWP.js");
7013
+ const { createLibp2pJsClientOrUseExistingOne } = await import("./helia-for-pkc-C8tOPlIj.js");
6952
7014
  for (const clientOptions of this.libp2pJsClientsOptions) {
6953
7015
  const heliaNode = await createLibp2pJsClientOrUseExistingOne({
6954
7016
  ...clientOptions,
@@ -7227,7 +7289,7 @@ var PKC$1 = class extends PKCTypedEmitter {
7227
7289
  const log = logger_default("pkc-js:pkc:createLocalCommunity");
7228
7290
  log.trace("Received community options to create a local community instance:", options);
7229
7291
  if (!this._canCreateNewLocalCommunity()) throw new PKCError("ERR_CAN_NOT_CREATE_A_LOCAL_COMMUNITY", { pkcOptions: this._userPKCOptions });
7230
- const { LocalCommunity, createNewLocalCommunityDb, updateInstancePropsWithStartedCommunityOrDb } = await import("./local-community-BoQ5y9sw.js");
7292
+ const { LocalCommunity, createNewLocalCommunityDb, updateInstancePropsWithStartedCommunityOrDb } = await import("./local-community-DYEWq5rq.js");
7231
7293
  const isLocalCommunity = (await listCommunitiesSync(this)).includes(options.address);
7232
7294
  const community = new LocalCommunity(this);
7233
7295
  if (isLocalCommunity) {
@@ -1,5 +1,5 @@
1
1
  import { i as __toESM, n as __exportAll, r as __require, t as __commonJSMin } from "./chunk-2rV9d50f.js";
2
- import { $ as pubsubTopicToDhtKey, $n as n$10, $t as ChallengeFileSchema, A as extractNetworkErrorDetails, An as CommentUpdateSignedPropertyNames, Ar as literal, At as refreshTrackedCommunityAliases, B as isIpfsCid, Bt as pTimeout, Cn as CommentPubsubMessageWithFlexibleAuthorRefinementSchema, Cr as require_supports_color, Ct as findStartedCommunity, D as deepMergeRuntimeFields, Dn as CommentUpdateForChallengeVerificationSignedPropertyNames, Dr as array, E as createAbortError, Er as _enum, Et as listStartedCommunities, Fn as ModQueuePageIpfsSchema, Ft as untrackStartedCommunity, Gn as AuthorCommentIpfsReservedFields, Gt as CreateCommunityEditPublicationOptionsWithRefinementSchema, H as isIpns, I as getPostUpdateTimestampRange, In as PageIpfsSchema, It as untrackUpdatingComment, Jn as CidPathSchema, Kt as CommentModerationChallengeRequestToEncryptSchema, L as hideClassPrivateProps, Ln as CommentEditChallengeRequestToEncryptSchema, Lt as untrackUpdatingCommunity, Mr as object, Mt as trackStartedCommunity, Nn as CreateCommentOptionsWithRefinementSchema, Nr as record, O as derivePublicationFromChallengeRequest, On as CommentUpdateReservedFields, Or as boolean, Ot as listUpdatingCommunities, Pn as GetPageParamSchema, Pr as string, Pt as trackUpdatingCommunity, Q as isStringDomain, Qn as CreateSignerSchema, Qt as ChallengeFileFactorySchema, R as ipnsNameToIpnsOverPubsubTopic, Rt as require_sha256$1, Sr as logger_default, Tn as CommentUpdateChallengeReservedFieldNames, Tt as findUpdatingCommunity, U as isIpnsPath, Un as CreateCommentEditOptionsWithRefinementSchema, Ut as CommunityEditPublicationSignedPropertyNames, V as isIpfsPath, Vn as CommentEditSignedPropertyNames, Vt as CommunityEditPublicationChallengeRequestToEncryptSchema, Wn as AuthorAddressSchema, Wt as CommunityEditPubsubMessagePublicationSchema, X as isRequestPubsubPublicationOfPost, Xn as CommunityAddressSchema, Xt as CommentModerationsTableRowSchema, Yn as CidStringSchema, Yt as CommentModerationSignedPropertyNames, Z as isRequestPubsubPublicationOfReply, Zn as CommunityAuthorChallengeReservedFieldNames, Zt as CreateCommentModerationOptionsWithRefinementSchema, _ as PKCUserOptionBaseSchema, _n as VoteSignedPropertyNames, _r as FailedToFetchCommunityFromGatewaysError, an as CommunityIpfsSchema, ar as e$5, b as areEquivalentCommunityAddresses, bn as CommentIpfsReservedFields, br as PKCError, bt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, c as ChallengeVerificationMessageSignedPropertyNames, cn as CreateRemoteCommunityFunctionArgumentSchema, cr as t$12, dr as t$10, f as DecryptedChallengeSchema, fn as RpcRemoteCommunityUpdateEventResultSchema, fr as t$9, g as PKCParsedOptionsSchema, gr as FailedToFetchCommentUpdateFromGatewaysError, gt as sleepUntilTimeoutOrAbort, h as NameResolverSerializedSchema, hn as VotePubsubMessagePublicationSchema, hr as FailedToFetchCommentIpfsFromGatewaysError, ht as shortifyCid, i as ChallengeMessageSignedPropertyNames, in as CommunityIpfsReservedFields, ir as e$6, j as fetchAndValidateIpnsRecordFromGateway, jr as number, k as doesDomainAddressHaveCapitalLetter, kn as CommentUpdateSchema, kr as custom, l as DecryptedChallengeAnswerSchema, ln as CreateRpcCommunityFunctionArgumentSchema, lr as n$8, m as NameResolveCacheOptionsSchema, mn as VoteChallengeRequestToEncryptSchema, mr as require_retry$1, mt as shortifyAddress, n as ChallengeAnswerMessageSignedPropertyNames, nn as CommunityEditOptionsSchema, o as ChallengeRequestMessageSignedPropertyNames, on as CommunitySignedPropertyNames, or as t$11, ot as removeNullUndefinedEmptyObjectsValuesRecursively, p as DecryptedChallengeVerificationSchema, pn as CreateVoteUserOptionsWithRefinementSchema, pr as e$4, qn as ChallengeAnswersSchema, qt as CommentModerationPubsubMessagePublicationSchema, rn as CommunityExportRecordsSchema, rr as t$13, sn as CreateNewLocalCommunityUserOptionsSchema, sr as r$8, tn as CommunityChallengeSettingSchema, tr as n$9, tt as raceAgainstAbort, un as ExportCommunityModLogsOptionsSchema, ur as r$7, ut as resolveWhenPredicateIsTrue, v as PKCUserOptionsSchema, vr as FailedToFetchGenericIpfsFromGatewaysError, vt as throwIfAbortSignalAborted, wn as CommentSignedPropertyNames, wr as require_ms$1, wt as findUpdatingComment, x as calculateIpfsCidV0, xn as CommentIpfsSchema, xr as messages, yn as CommentChallengeRequestToEncryptSchema, yr as FailedToFetchPageIpfsFromGatewaysError, yt as timestamp, z as isAbortError, zn as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema } from "./schema-DKVemfhB.js";
2
+ import { $ as pubsubTopicToDhtKey, $n as n$10, $t as ChallengeFileSchema, A as extractNetworkErrorDetails, An as CommentUpdateSignedPropertyNames, Ar as literal, At as refreshTrackedCommunityAliases, B as isIpfsCid, Bt as pTimeout, Cn as CommentPubsubMessageWithFlexibleAuthorRefinementSchema, Cr as require_supports_color, Ct as findStartedCommunity, D as deepMergeRuntimeFields, Dn as CommentUpdateForChallengeVerificationSignedPropertyNames, Dr as array, E as createAbortError, Er as _enum, Et as listStartedCommunities, Fn as ModQueuePageIpfsSchema, Ft as untrackStartedCommunity, Gn as AuthorCommentIpfsReservedFields, Gt as CreateCommunityEditPublicationOptionsWithRefinementSchema, H as isIpns, I as getPostUpdateTimestampRange, In as PageIpfsSchema, It as untrackUpdatingComment, Jn as CidPathSchema, Kt as CommentModerationChallengeRequestToEncryptSchema, L as hideClassPrivateProps, Ln as CommentEditChallengeRequestToEncryptSchema, Lt as untrackUpdatingCommunity, Mr as object, Mt as trackStartedCommunity, Nn as CreateCommentOptionsWithRefinementSchema, Nr as record, O as derivePublicationFromChallengeRequest, On as CommentUpdateReservedFields, Or as boolean, Ot as listUpdatingCommunities, Pn as GetPageParamSchema, Pr as string, Pt as trackUpdatingCommunity, Q as isStringDomain, Qn as CreateSignerSchema, Qt as ChallengeFileFactorySchema, R as ipnsNameToIpnsOverPubsubTopic, Rt as require_sha256$1, Sr as logger_default, Tn as CommentUpdateChallengeReservedFieldNames, Tt as findUpdatingCommunity, U as isIpnsPath, Un as CreateCommentEditOptionsWithRefinementSchema, Ut as CommunityEditPublicationSignedPropertyNames, V as isIpfsPath, Vn as CommentEditSignedPropertyNames, Vt as CommunityEditPublicationChallengeRequestToEncryptSchema, Wn as AuthorAddressSchema, Wt as CommunityEditPubsubMessagePublicationSchema, X as isRequestPubsubPublicationOfPost, Xn as CommunityAddressSchema, Xt as CommentModerationsTableRowSchema, Yn as CidStringSchema, Yt as CommentModerationSignedPropertyNames, Z as isRequestPubsubPublicationOfReply, Zn as CommunityAuthorChallengeReservedFieldNames, Zt as CreateCommentModerationOptionsWithRefinementSchema, _ as PKCUserOptionBaseSchema, _n as VoteSignedPropertyNames, _r as FailedToFetchCommunityFromGatewaysError, an as CommunityIpfsSchema, ar as e$5, b as areEquivalentCommunityAddresses, bn as CommentIpfsReservedFields, br as PKCError, bt as waitForUpdateInCommunityInstanceWithErrorAndTimeout, c as ChallengeVerificationMessageSignedPropertyNames, cn as CreateRemoteCommunityFunctionArgumentSchema, cr as t$12, dr as t$10, f as DecryptedChallengeSchema, fn as RpcRemoteCommunityUpdateEventResultSchema, fr as t$9, g as PKCParsedOptionsSchema, gr as FailedToFetchCommentUpdateFromGatewaysError, gt as sleepUntilTimeoutOrAbort, h as NameResolverSerializedSchema, hn as VotePubsubMessagePublicationSchema, hr as FailedToFetchCommentIpfsFromGatewaysError, ht as shortifyCid, i as ChallengeMessageSignedPropertyNames, in as CommunityIpfsReservedFields, ir as e$6, j as fetchAndValidateIpnsRecordFromGateway, jr as number, k as doesDomainAddressHaveCapitalLetter, kn as CommentUpdateSchema, kr as custom, l as DecryptedChallengeAnswerSchema, ln as CreateRpcCommunityFunctionArgumentSchema, lr as n$8, m as NameResolveCacheOptionsSchema, mn as VoteChallengeRequestToEncryptSchema, mr as require_retry$1, mt as shortifyAddress, n as ChallengeAnswerMessageSignedPropertyNames, nn as CommunityEditOptionsSchema, o as ChallengeRequestMessageSignedPropertyNames, on as CommunitySignedPropertyNames, or as t$11, ot as removeNullUndefinedEmptyObjectsValuesRecursively, p as DecryptedChallengeVerificationSchema, pn as CreateVoteUserOptionsWithRefinementSchema, pr as e$4, qn as ChallengeAnswersSchema, qt as CommentModerationPubsubMessagePublicationSchema, rn as CommunityExportRecordsSchema, rr as t$13, sn as CreateNewLocalCommunityUserOptionsSchema, sr as r$8, tn as CommunityChallengeSettingSchema, tr as n$9, tt as raceAgainstAbort, un as ExportCommunityModLogsOptionsSchema, ur as r$7, ut as resolveWhenPredicateIsTrue, v as PKCUserOptionsSchema, vr as FailedToFetchGenericIpfsFromGatewaysError, vt as throwIfAbortSignalAborted, wn as CommentSignedPropertyNames, wr as require_ms$1, wt as findUpdatingComment, x as calculateIpfsCidV0, xn as CommentIpfsSchema, xr as messages, yn as CommentChallengeRequestToEncryptSchema, yr as FailedToFetchPageIpfsFromGatewaysError, yt as timestamp, z as isAbortError, zn as CommentEditPubsubMessagePublicationWithFlexibleAuthorSchema } from "./schema-HH2zeH-j.js";
3
3
  import { t as all } from "./src-CYIMjhjK.js";
4
4
  import { createHash } from "node:crypto";
5
5
  import { pathToFileURL } from "node:url";
@@ -92191,7 +92191,7 @@ const RpcExportCommunityModLogsResultSchema = object({ moderations: array(Commen
92191
92191
  //#endregion
92192
92192
  //#region dist/node/rpc/src/schema.js
92193
92193
  const WsServerClassOptions = object({
92194
- port: number().int().positive().optional(),
92194
+ port: number().int().nonnegative().optional(),
92195
92195
  server: custom().optional()
92196
92196
  });
92197
92197
  const CreatePKCWsServerOptionsSchema = object({
@@ -129652,11 +129652,12 @@ var RpcRemoteCommunity = class extends RemoteCommunity {
129652
129652
  async _initRpcUpdateSubscription() {
129653
129653
  const log = logger_default("pkc-js:rpc-remote-community:_initRpcUpdateSubscription");
129654
129654
  this._setState("updating");
129655
+ let subscriptionId;
129655
129656
  try {
129656
- const { subscriptionId } = await this._pkc._pkcRpcClient.communityUpdateSubscribe({
129657
+ ({subscriptionId} = await this._pkc._pkcRpcClient.communityUpdateSubscribe({
129657
129658
  name: this.name,
129658
129659
  publicKey: this.publicKey
129659
- });
129660
+ }));
129660
129661
  this._updateRpcSubscriptionId = subscriptionId;
129661
129662
  } catch (e) {
129662
129663
  log.error("Failed to receive communityUpdate from RPC due to error", e);
@@ -129664,8 +129665,17 @@ var RpcRemoteCommunity = class extends RemoteCommunity {
129664
129665
  this._setUpdatingStateWithEventEmissionIfNewState("failed");
129665
129666
  throw e;
129666
129667
  }
129667
- this._pkc._pkcRpcClient.getSubscription(this._updateRpcSubscriptionId).on("update", this._processUpdateEventFromRpcUpdate.bind(this)).on("updatingstatechange", this._handleUpdatingStateChangeFromRpcUpdate.bind(this)).on("error", this._handleRpcErrorEvent.bind(this));
129668
- this._pkc._pkcRpcClient.emitAllPendingMessages(this._updateRpcSubscriptionId);
129668
+ this._pkc._pkcRpcClient.attachSubscriptionHandlersDeferred({
129669
+ subscriptionId,
129670
+ isStale: () => this._updateRpcSubscriptionId !== subscriptionId,
129671
+ attach: (subscription) => subscription.on("update", this._processUpdateEventFromRpcUpdate.bind(this)).on("updatingstatechange", this._handleUpdatingStateChangeFromRpcUpdate.bind(this)).on("error", this._handleRpcErrorEvent.bind(this)),
129672
+ replayErrorContainment: {
129673
+ entityName: "community",
129674
+ log,
129675
+ emitError: (error) => this.emit("error", error),
129676
+ stop: () => this.stop()
129677
+ }
129678
+ });
129669
129679
  }
129670
129680
  async _createAndSubscribeToNewUpdatingCommunity(updatingCommunity) {
129671
129681
  const log = logger_default("pkc-js:rpc-remote-community:_createNewUpdatingCommunity");
@@ -129730,12 +129740,13 @@ var RpcRemoteCommunity = class extends RemoteCommunity {
129730
129740
  if (this._updatingRpcCommunityInstanceWithListeners) await this._cleanupMirroringUpdatingCommunity();
129731
129741
  else {
129732
129742
  if (this._updateRpcSubscriptionId) {
129743
+ const subscriptionId = this._updateRpcSubscriptionId;
129744
+ this._updateRpcSubscriptionId = void 0;
129733
129745
  try {
129734
- await this._pkc._pkcRpcClient.unsubscribe(this._updateRpcSubscriptionId);
129746
+ await this._pkc._pkcRpcClient.unsubscribe(subscriptionId);
129735
129747
  } catch (e) {
129736
129748
  log.error("Failed to unsubscribe from communityUpdate", e);
129737
129749
  }
129738
- this._updateRpcSubscriptionId = void 0;
129739
129750
  log.trace(`Stopped the update of remote community (${this.address}) via RPC`);
129740
129751
  }
129741
129752
  untrackUpdatingCommunity(this._pkc, this);
@@ -129926,19 +129937,29 @@ var RpcLocalCommunity = class extends RpcRemoteCommunity {
129926
129937
  }
129927
129938
  trackStartedCommunity(this._pkc, this);
129928
129939
  this.started = true;
129929
- this._pkc._pkcRpcClient.getSubscription(this._startRpcSubscriptionId).on("update", this._handleRpcUpdateEventFromStart.bind(this)).on("startedstatechange", this._handleRpcStartedStateChangeEvent.bind(this)).on("challengerequest", this._handleRpcChallengeRequestEvent.bind(this)).on("challenge", this._handleRpcChallengeEvent.bind(this)).on("challengeanswer", this._handleRpcChallengeAnswerEvent.bind(this)).on("challengeverification", this._handleRpcChallengeVerificationEvent.bind(this)).on("error", this._handleRpcErrorEvent.bind(this));
129930
- this._pkc._pkcRpcClient.emitAllPendingMessages(this._startRpcSubscriptionId);
129940
+ const subscriptionId = this._startRpcSubscriptionId;
129941
+ this._pkc._pkcRpcClient.attachSubscriptionHandlersDeferred({
129942
+ subscriptionId,
129943
+ isStale: () => this._startRpcSubscriptionId !== subscriptionId,
129944
+ attach: (subscription) => subscription.on("update", this._handleRpcUpdateEventFromStart.bind(this)).on("startedstatechange", this._handleRpcStartedStateChangeEvent.bind(this)).on("challengerequest", this._handleRpcChallengeRequestEvent.bind(this)).on("challenge", this._handleRpcChallengeEvent.bind(this)).on("challengeanswer", this._handleRpcChallengeAnswerEvent.bind(this)).on("challengeverification", this._handleRpcChallengeVerificationEvent.bind(this)).on("error", this._handleRpcErrorEvent.bind(this)),
129945
+ replayErrorContainment: {
129946
+ entityName: "community",
129947
+ log,
129948
+ emitError: (error) => this.emit("error", error),
129949
+ stop: () => this.stopWithoutRpcCall()
129950
+ }
129951
+ });
129931
129952
  }
129932
- async _cleanUpRpcConnection(log) {
129933
- if (this._startRpcSubscriptionId) try {
129934
- await this._pkc._pkcRpcClient.unsubscribe(this._startRpcSubscriptionId);
129953
+ async _cleanUpRpcConnection(log, subscriptionId = this._startRpcSubscriptionId) {
129954
+ this._startRpcSubscriptionId = void 0;
129955
+ if (subscriptionId) try {
129956
+ await this._pkc._pkcRpcClient.unsubscribe(subscriptionId);
129935
129957
  } catch (e) {
129936
129958
  log.error("Failed to unsubscribe from communityStart", e);
129937
129959
  }
129938
129960
  this._setStartedStateWithEmission("stopped");
129939
129961
  this._setRpcClientStateWithEmission("stopped");
129940
129962
  this.started = false;
129941
- this._startRpcSubscriptionId = void 0;
129942
129963
  log(`Stopped the running of local community (${this.address}) via RPC`);
129943
129964
  this._setState("stopped");
129944
129965
  }
@@ -129972,6 +129993,8 @@ var RpcLocalCommunity = class extends RpcRemoteCommunity {
129972
129993
  if (this.state === "updating") return super.stop();
129973
129994
  else if (this.state === "started") {
129974
129995
  const log = logger_default("pkc-js:rpc-local-community:stop");
129996
+ const subscriptionId = this._startRpcSubscriptionId;
129997
+ this._startRpcSubscriptionId = void 0;
129975
129998
  try {
129976
129999
  await this._pkc._pkcRpcClient.stopCommunity({
129977
130000
  name: this.name,
@@ -129980,7 +130003,7 @@ var RpcLocalCommunity = class extends RpcRemoteCommunity {
129980
130003
  } catch (e) {
129981
130004
  log.error("RPC client received an error when asking rpc server to stop community", e);
129982
130005
  }
129983
- await this._cleanUpRpcConnection(log);
130006
+ await this._cleanUpRpcConnection(log, subscriptionId);
129984
130007
  untrackStartedCommunity(this._pkc, this);
129985
130008
  }
129986
130009
  }
@@ -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";
@@ -16205,7 +16206,7 @@ function extractNetworkErrorDetails(err, depth = 0) {
16205
16206
  }
16206
16207
  //#endregion
16207
16208
  //#region dist/node/generated-version.js
16208
- const version = "0.0.91";
16209
+ const version = "0.0.93";
16209
16210
  //#endregion
16210
16211
  //#region dist/node/version.js
16211
16212
  const protocolVersion = ProtocolVersionSchema.parse("1.0.0");
@@ -1,4 +1,4 @@
1
- import { br as PKCError, et as pubsubTopicToDhtKeyCid } from "./schema-DKVemfhB.js";
1
+ import { br as PKCError, et as pubsubTopicToDhtKeyCid } from "./schema-HH2zeH-j.js";
2
2
  import { ipnsSelector } from "ipns/selector";
3
3
  import { ipnsValidator } from "ipns/validator";
4
4
  import { unmarshalIPNSRecord } from "ipns";
@@ -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-vg8Qni_Y.js";
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-BrLiC0qX.js";
2
2
  export { challenges, createAnchorIpnsRecord, PKC as default, getShortAddress, getShortCid, nativeFunctions, setNativeFunctions };
@@ -1,7 +1,7 @@
1
- import { Ct as findStartedCommunity, L as hideClassPrivateProps, Sr as logger_default, br as PKCError, lt as replaceXWithY, rr as t, tr as n } from "../../chunks/schema-DKVemfhB.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-vg8Qni_Y.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-CRze9-V-.js";
4
- import { t as LocalCommunity } from "../../chunks/local-community-CdWuUlnE.js";
1
+ import { Ct as findStartedCommunity, L as hideClassPrivateProps, Sr as logger_default, br as PKCError, lt as replaceXWithY, rr as t, tr as n } from "../../chunks/schema-HH2zeH-j.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-BrLiC0qX.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-DOSee621.js";
4
+ import { t as LocalCommunity } from "../../chunks/local-community-DgbMuVAA.js";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import path from "path";
7
7
  import assert from "assert";
@@ -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";
@@ -34,6 +35,20 @@ export default class PKCRpcClient extends TypedEmitter<PKCRpcClientEvents> {
34
35
  private _deserializeRpcError;
35
36
  private _setErrorName;
36
37
  private _assignAdditionalProps;
38
+ subscriptionActive(subscriptionId: number): boolean;
39
+ attachSubscriptionHandlersDeferred(opts: {
40
+ subscriptionId: number;
41
+ isStale: () => boolean;
42
+ attach: (subscription: EventEmitter) => void;
43
+ replayErrorContainment: {
44
+ entityName: string;
45
+ log: ReturnType<typeof Logger>;
46
+ emitError: (error: Error) => void;
47
+ stop: () => Promise<void>;
48
+ };
49
+ }): void;
50
+ private _containReplayError;
51
+ private _emitPendingMessagesWhile;
37
52
  emitAllPendingMessages(subscriptionId: number): void;
38
53
  getComment(args: CidRpcParam): Promise<CommentIpfsType>;
39
54
  getCommentPage(page: CommentPageRpcParam): Promise<RpcCommentPageResult>;
@@ -10,6 +10,13 @@ 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
+ // Captured at module load so the deferred attach-and-replay (attachSubscriptionHandlersDeferred)
14
+ // keeps working when a downstream app enables fake timers: vitest/jest replace the GLOBAL
15
+ // setTimeout after modules are imported, so this bound reference stays the real timer and
16
+ // subscriptions never become silently inert under un-advanced fake timers. The deferral still
17
+ // runs on a macrotask, so environments that throttle timers (e.g. hidden browser tabs) may delay
18
+ // the attach and the buffered replay accordingly.
19
+ const scheduleMacrotask = setTimeout.bind(globalThis);
13
20
  export default class PKCRpcClient extends TypedEmitter {
14
21
  constructor(rpcServerUrl) {
15
22
  super();
@@ -264,7 +271,70 @@ export default class PKCRpcClient extends TypedEmitter {
264
271
  if (rest && Object.keys(rest).length > 0)
265
272
  Object.assign(target, rest);
266
273
  }
274
+ subscriptionActive(subscriptionId) {
275
+ return Boolean(this._subscriptionEvents[subscriptionId]);
276
+ }
277
+ // Attach a subscription's notification handlers and replay its buffered notifications in a
278
+ // macrotask, so events the server emitted at subscribe time (before the JSON-RPC subscribe
279
+ // response) still reach a listener attached synchronously after the subscribing call resolves
280
+ // (#299/#314). A microtask is not enough: it is enqueued before the promise-resolution jobs
281
+ // that unwind the awaits, so it would still run before the caller's continuation. Attaching
282
+ // the handlers inside the same deferred task keeps delivery ordered: notifications arriving in
283
+ // the window find no listeners, so they are buffered and the replay drains everything in
284
+ // arrival order. Opt-in per call site because some subscribers (e.g. the exports subscription
285
+ // in rpc-local-community.ts) deliberately rely on the synchronous replay ordering.
286
+ attachSubscriptionHandlersDeferred(opts) {
287
+ scheduleMacrotask(() => {
288
+ const ownsSubscription = () => !opts.isStale() && this.subscriptionActive(opts.subscriptionId);
289
+ // The subscription may have been unsubscribed or the connection destroyed in the meantime
290
+ if (!ownsSubscription())
291
+ return;
292
+ try {
293
+ opts.attach(this.getSubscription(opts.subscriptionId));
294
+ this._emitPendingMessagesWhile(opts.subscriptionId, ownsSubscription);
295
+ }
296
+ catch (e) {
297
+ this._containReplayError(e, opts.replayErrorContainment);
298
+ }
299
+ }, 0);
300
+ }
301
+ _containReplayError(e, containment) {
302
+ const { entityName, log: siteLog, emitError, stop } = containment;
303
+ siteLog.error(`Error thrown while replaying buffered subscribe-time notifications, stopping the ${entityName}`, e);
304
+ // Surface the contained throw before stopping: without the emit the only signal is a
305
+ // debug-namespace log and a silent stop. The emit itself can throw (with no listeners
306
+ // anywhere the pkc bubbling re-throws), so it stays contained too.
307
+ try {
308
+ emitError(e instanceof Error ? e : new Error(String(e)));
309
+ }
310
+ catch (emitFailure) {
311
+ siteLog.error("No listener received the replay error", emitFailure);
312
+ }
313
+ stop().catch((stopError) => siteLog.error(`Failed to stop the ${entityName} after a replay error`, stopError));
314
+ }
315
+ // Replay the buffered notifications one message at a time, re-checking ownership between
316
+ // messages: a replayed handler may call stop(), whose synchronous prefix clears the caller's
317
+ // subscription id (directly, or through the mirror cleanup chain), and the remaining buffered
318
+ // notifications must then be dropped instead of delivered into a stopping instance. The
319
+ // messages delivered before the stop are consumed; the leftovers stay buffered for
320
+ // unsubscribe() to discard.
321
+ _emitPendingMessagesWhile(subscriptionId, shouldDeliver) {
322
+ const pendingMessages = this._pendingSubscriptionMsgs[subscriptionId];
323
+ if (!pendingMessages)
324
+ return;
325
+ while (pendingMessages.length > 0) {
326
+ if (!shouldDeliver())
327
+ return;
328
+ const message = pendingMessages.shift();
329
+ this._subscriptionEvents[subscriptionId].emit(message?.params?.event, message);
330
+ }
331
+ delete this._pendingSubscriptionMsgs[subscriptionId];
332
+ }
267
333
  emitAllPendingMessages(subscriptionId) {
334
+ // The replay may be deferred to a later task (#299), so the subscription can be
335
+ // unsubscribed or the connection destroyed before it runs
336
+ if (!this._pendingSubscriptionMsgs[subscriptionId])
337
+ return;
268
338
  this._pendingSubscriptionMsgs[subscriptionId].forEach((message) => this._subscriptionEvents[subscriptionId].emit(message?.params?.event, message));
269
339
  delete this._pendingSubscriptionMsgs[subscriptionId];
270
340
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pkc-rpc-client.js","sourceRoot":"","sources":["../../../../src/clients/rpc-client/pkc-rpc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pkc-rpc-client.js","sourceRoot":"","sources":["../../../../src/clients/rpc-client/pkc-rpc-client.ts"],"names":[],"mappings":"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"}