@pkcprotocol/pkc-js 0.0.79 → 0.0.81

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 (119) hide show
  1. package/README.md +1 -1
  2. package/dist/browser/community/community-client-manager.d.ts +2 -0
  3. package/dist/browser/community/community-client-manager.js +164 -9
  4. package/dist/browser/community/community-client-manager.js.map +1 -1
  5. package/dist/browser/community/remote-community.d.ts +2 -1
  6. package/dist/browser/community/remote-community.js +30 -7
  7. package/dist/browser/community/remote-community.js.map +1 -1
  8. package/dist/browser/community/rpc-local-community.js.map +1 -1
  9. package/dist/browser/community/schema.d.ts +31 -4
  10. package/dist/browser/community/schema.js +16 -10
  11. package/dist/browser/community/schema.js.map +1 -1
  12. package/dist/browser/errors.d.ts +3 -0
  13. package/dist/browser/errors.js +3 -0
  14. package/dist/browser/errors.js.map +1 -1
  15. package/dist/browser/generated-version.d.ts +1 -1
  16. package/dist/browser/generated-version.js +1 -1
  17. package/dist/browser/pkc/pkc.d.ts +1 -2
  18. package/dist/browser/pkc/pkc.js +17 -24
  19. package/dist/browser/pkc/pkc.js.map +1 -1
  20. package/dist/browser/pkc-error.d.ts +1 -1
  21. package/dist/browser/rpc/src/index.js +1 -1
  22. package/dist/browser/rpc/src/index.js.map +1 -1
  23. package/dist/browser/runtime/browser/setup-kubo-http-routers.d.ts +1 -0
  24. package/dist/browser/runtime/browser/setup-kubo-http-routers.js +4 -0
  25. package/dist/browser/runtime/browser/setup-kubo-http-routers.js.map +1 -0
  26. package/dist/browser/runtime/node/community/local-community/publication-validation.js +7 -1
  27. package/dist/browser/runtime/node/community/local-community/publication-validation.js.map +1 -1
  28. package/dist/browser/runtime/node/community/local-community/reprovide-on-address-change.d.ts +3 -2
  29. package/dist/browser/runtime/node/community/local-community/reprovide-on-address-change.js +19 -10
  30. package/dist/browser/runtime/node/community/local-community/reprovide-on-address-change.js.map +1 -1
  31. package/dist/browser/runtime/node/setup-kubo-http-routers.d.ts +2 -0
  32. package/dist/browser/runtime/node/{setup-kubo-address-rewriter-and-http-router.js → setup-kubo-http-routers.js} +54 -112
  33. package/dist/browser/runtime/node/setup-kubo-http-routers.js.map +1 -0
  34. package/dist/browser/schema/schema-util.d.ts +15 -0
  35. package/dist/browser/signer/signatures.d.ts +1 -0
  36. package/dist/browser/signer/signatures.js +25 -2
  37. package/dist/browser/signer/signatures.js.map +1 -1
  38. package/dist/browser/test/test-util.d.ts +7 -0
  39. package/dist/browser/test/test-util.js +6 -0
  40. package/dist/browser/test/test-util.js.map +1 -1
  41. package/dist/browser/util.d.ts +3 -4
  42. package/dist/browser/util.js +7 -3
  43. package/dist/browser/util.js.map +1 -1
  44. package/dist/bundled/bundle-manifest.json +76 -93
  45. package/dist/bundled/chunks/{helia-for-pkc-7wubsFuU.js → helia-for-pkc-BcNF-orO.js} +33 -33
  46. package/dist/bundled/chunks/{local-community-Cs0aQLE3.js → local-community-B6-jaMsn.js} +1 -1
  47. package/dist/bundled/chunks/{local-community-BhRsFFg0.js → local-community-CyX1HwD0.js} +36 -29
  48. package/dist/bundled/chunks/{node-BKnzoR3G.js → node-BCXmIYLQ.js} +265 -2310
  49. package/dist/bundled/chunks/{rpc-local-community-DlgrBPH8.js → rpc-local-community-BOiy8BX1.js} +133 -567
  50. package/dist/bundled/chunks/{schema-C_dFmYMp.js → schema-DZyEx0YQ.js} +9 -5
  51. package/dist/bundled/chunks/{util-CsiYk_QO.js → util-BTPlI1yF.js} +1 -1
  52. package/dist/bundled/index.js +1 -1
  53. package/dist/bundled/rpc/src/index.js +4 -4
  54. package/dist/node/community/community-client-manager.d.ts +2 -0
  55. package/dist/node/community/community-client-manager.js +164 -9
  56. package/dist/node/community/community-client-manager.js.map +1 -1
  57. package/dist/node/community/remote-community.d.ts +2 -1
  58. package/dist/node/community/remote-community.js +30 -7
  59. package/dist/node/community/remote-community.js.map +1 -1
  60. package/dist/node/community/rpc-local-community.js.map +1 -1
  61. package/dist/node/community/schema.d.ts +31 -4
  62. package/dist/node/community/schema.js +16 -10
  63. package/dist/node/community/schema.js.map +1 -1
  64. package/dist/node/errors.d.ts +3 -0
  65. package/dist/node/errors.js +3 -0
  66. package/dist/node/errors.js.map +1 -1
  67. package/dist/node/generated-version.d.ts +1 -1
  68. package/dist/node/generated-version.js +1 -1
  69. package/dist/node/pkc/pkc.d.ts +1 -2
  70. package/dist/node/pkc/pkc.js +17 -24
  71. package/dist/node/pkc/pkc.js.map +1 -1
  72. package/dist/node/pkc-error.d.ts +1 -1
  73. package/dist/node/rpc/src/index.js +1 -1
  74. package/dist/node/rpc/src/index.js.map +1 -1
  75. package/dist/node/runtime/browser/setup-kubo-http-routers.d.ts +1 -0
  76. package/dist/node/runtime/browser/setup-kubo-http-routers.js +4 -0
  77. package/dist/node/runtime/browser/setup-kubo-http-routers.js.map +1 -0
  78. package/dist/node/runtime/node/community/local-community/publication-validation.js +7 -1
  79. package/dist/node/runtime/node/community/local-community/publication-validation.js.map +1 -1
  80. package/dist/node/runtime/node/community/local-community/reprovide-on-address-change.d.ts +3 -2
  81. package/dist/node/runtime/node/community/local-community/reprovide-on-address-change.js +19 -10
  82. package/dist/node/runtime/node/community/local-community/reprovide-on-address-change.js.map +1 -1
  83. package/dist/node/runtime/node/setup-kubo-http-routers.d.ts +2 -0
  84. package/dist/node/runtime/node/{setup-kubo-address-rewriter-and-http-router.js → setup-kubo-http-routers.js} +54 -112
  85. package/dist/node/runtime/node/setup-kubo-http-routers.js.map +1 -0
  86. package/dist/node/schema/schema-util.d.ts +15 -0
  87. package/dist/node/signer/signatures.d.ts +1 -0
  88. package/dist/node/signer/signatures.js +25 -2
  89. package/dist/node/signer/signatures.js.map +1 -1
  90. package/dist/node/test/test-util.d.ts +7 -0
  91. package/dist/node/test/test-util.js +6 -0
  92. package/dist/node/test/test-util.js.map +1 -1
  93. package/dist/node/util.d.ts +3 -4
  94. package/dist/node/util.js +7 -3
  95. package/dist/node/util.js.map +1 -1
  96. package/package.json +2 -2
  97. package/dist/browser/runtime/browser/setup-kubo-address-rewriter-and-http-router.d.ts +0 -1
  98. package/dist/browser/runtime/browser/setup-kubo-address-rewriter-and-http-router.js +0 -4
  99. package/dist/browser/runtime/browser/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  100. package/dist/browser/runtime/node/address-rewriter-db.d.ts +0 -33
  101. package/dist/browser/runtime/node/address-rewriter-db.js +0 -156
  102. package/dist/browser/runtime/node/address-rewriter-db.js.map +0 -1
  103. package/dist/browser/runtime/node/addresses-rewriter-proxy-server.d.ts +0 -47
  104. package/dist/browser/runtime/node/addresses-rewriter-proxy-server.js +0 -534
  105. package/dist/browser/runtime/node/addresses-rewriter-proxy-server.js.map +0 -1
  106. package/dist/browser/runtime/node/setup-kubo-address-rewriter-and-http-router.d.ts +0 -4
  107. package/dist/browser/runtime/node/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  108. package/dist/node/runtime/browser/setup-kubo-address-rewriter-and-http-router.d.ts +0 -1
  109. package/dist/node/runtime/browser/setup-kubo-address-rewriter-and-http-router.js +0 -4
  110. package/dist/node/runtime/browser/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  111. package/dist/node/runtime/node/address-rewriter-db.d.ts +0 -33
  112. package/dist/node/runtime/node/address-rewriter-db.js +0 -156
  113. package/dist/node/runtime/node/address-rewriter-db.js.map +0 -1
  114. package/dist/node/runtime/node/addresses-rewriter-proxy-server.d.ts +0 -47
  115. package/dist/node/runtime/node/addresses-rewriter-proxy-server.js +0 -534
  116. package/dist/node/runtime/node/addresses-rewriter-proxy-server.js.map +0 -1
  117. package/dist/node/runtime/node/setup-kubo-address-rewriter-and-http-router.d.ts +0 -4
  118. package/dist/node/runtime/node/setup-kubo-address-rewriter-and-http-router.js.map +0 -1
  119. package/dist/bundled/chunks/{src-BEjAH2gY.js → src-WLgFbUwZ.js} +1 -1
@@ -5315,6 +5315,8 @@ var messages;
5315
5315
  messages["ERR_COMMUNITY_EDIT_HAS_RESERVED_FIELD"] = "CommunityEdit record includes a reserved field";
5316
5316
  messages["ERR_COMMUNITY_SIGNATURE_IS_INVALID"] = "Community signature is invalid";
5317
5317
  messages["ERR_COMMUNITY_RECORD_INCLUDES_RESERVED_FIELD"] = "The CommunityIpfs record includes a reserved field";
5318
+ messages["ERR_COMMUNITY_RECORD_ANCHOR_CLAIM_DOES_NOT_MATCH_CHAIN_ANCHOR"] = "The CommunityIpfs record was resolved through a delegated IPNS chain but its signed anchor claim does not match the chain's anchor";
5319
+ messages["ERR_COMMUNITY_RECORD_ANCHOR_CLAIM_IS_NOT_ENDORSED"] = "The CommunityIpfs record claims an anchor that does not delegate to it: resolving the claimed anchor does not lead to the key that signed this record, so the claim is forged";
5318
5320
  messages["ERR_FAILED_TO_RESOLVE_COMMUNITY_DOMAIN"] = "Failed to resolve the community domain address to use for verification";
5319
5321
  messages["ERR_FAILED_TO_RESOLVE_AUTHOR_DOMAIN"] = "Failed to resolve the author domain address to use for verification";
5320
5322
  messages["ERR_AUTHOR_DOMAIN_RESOLVES_TO_DIFFERENT_SIGNER"] = "The author domain resolved to a public key that does not match the publication signer";
@@ -5371,6 +5373,7 @@ var messages;
5371
5373
  messages["ERR_PUBLICATION_USES_DEPRECATED_SUBPLEBBIT_ADDRESS"] = "Publication uses the deprecated `subplebbitAddress` field; update your client to use `communityPublicKey`";
5372
5374
  messages["ERR_PUBLICATION_USES_DEPRECATED_COMMUNITY_ADDRESS"] = "Publication uses the deprecated `communityAddress` field; update your client to use `communityPublicKey`";
5373
5375
  messages["ERR_PUBLICATION_INVALID_COMMUNITY_PUBLIC_KEY"] = "The communityPublicKey field of publication does not match the community's IPNS key";
5376
+ messages["ERR_PUBLICATION_SIGNED_TO_MINTER_INSTEAD_OF_ANCHOR"] = "The communityPublicKey field of publication is this delegated community's minter key; publications must be signed to the community's anchor identity";
5374
5377
  messages["ERR_PUBLICATION_INVALID_COMMUNITY_NAME"] = "The communityName field of publication does not match the community's address";
5375
5378
  messages["ERR_AUTHOR_IS_BANNED"] = "Author is banned";
5376
5379
  messages["ERR_PUBLICATION_HAS_NO_AUTHOR_ADDRESS"] = "Publication has no author.address";
@@ -6660,6 +6663,7 @@ const ChallengeFileFactorySchema = _function({
6660
6663
  input: [object({ challengeSettings: CommunityChallengeSettingSchema })],
6661
6664
  output: ChallengeFileSchema
6662
6665
  });
6666
+ const CommunityAnchorSchema = object({ publicKey: string().refine((arg) => isIpnsName(arg), messages.ERR_ANCHOR_PUBLIC_KEY_IS_INVALID) }).strict();
6663
6667
  const CommunityIpfsSchema = object({
6664
6668
  posts: PostsPagesIpfsSchema.optional(),
6665
6669
  modQueue: ModQueuePagesIpfsSchema.optional(),
@@ -6667,6 +6671,7 @@ const CommunityIpfsSchema = object({
6667
6671
  signature: JsonSignatureSchema,
6668
6672
  encryption: CommunityEncryptionSchema,
6669
6673
  name: string().min(1).optional(),
6674
+ anchor: CommunityAnchorSchema.optional(),
6670
6675
  createdAt: PKCTimestampSchema,
6671
6676
  updatedAt: PKCTimestampSchema,
6672
6677
  pubsubTopic: PubsubTopicSchema.optional(),
@@ -6725,7 +6730,6 @@ const CommunityEditOptionsSchema = CommunityIpfsSchema.pick({
6725
6730
  settings: CommunitySettingsSchema.optional(),
6726
6731
  roles: CommunityRolesToEditSchema.optional()
6727
6732
  }).partial().strict();
6728
- const CommunityAnchorSchema = object({ publicKey: string().refine((arg) => isIpnsName(arg), messages.ERR_ANCHOR_PUBLIC_KEY_IS_INVALID) }).strict();
6729
6733
  const CreateNewLocalCommunityUserOptionsSchema = CommunityEditOptionsSchema.omit({ address: true }).extend({
6730
6734
  signer: CreateSignerSchema.optional(),
6731
6735
  anchor: CommunityAnchorSchema.optional(),
@@ -15674,7 +15678,7 @@ const pubsubTopicToDhtKeyCid = (pubsubTopic) => {
15674
15678
  const digest = Digest.create(18, new Uint8Array(hashBytes));
15675
15679
  return CID.create(1, 85, digest);
15676
15680
  };
15677
- async function retryKuboBlockPutPinAndProvidePubsubTopic({ ipfsClient: kuboRpcClient, log, pubsubTopic, inputNumOfRetries, blockPutOptions, pinAddOptions, provideOptions }) {
15681
+ async function retryKuboBlockPutPinAndProvidePubsubTopic({ ipfsClient: kuboRpcClient, log, pubsubTopic, inputNumOfRetries, blockPutOptions, provideOptions }) {
15678
15682
  const numOfRetries = inputNumOfRetries ?? 3;
15679
15683
  const bytes = new TextEncoder().encode(`floodsub:${pubsubTopic}`);
15680
15684
  const expectedCid = pubsubTopicToDhtKeyCid(pubsubTopic);
@@ -15690,10 +15694,10 @@ async function retryKuboBlockPutPinAndProvidePubsubTopic({ ipfsClient: kuboRpcCl
15690
15694
  ...blockPutOptions,
15691
15695
  format: "raw",
15692
15696
  mhtype: "sha2-256",
15693
- version: 1
15697
+ version: 1,
15698
+ pin: true
15694
15699
  });
15695
15700
  if (!cid.equals(expectedCid)) throw new Error(`block.put CID mismatch for pubsub topic ${pubsubTopic}: expected ${String(expectedCid)} got ${String(cid)}`);
15696
- await kuboRpcClient.pin.add(cid, pinAddOptions);
15697
15701
  try {
15698
15702
  const provideEvents = kuboRpcClient.routing.provide(cid, provideOptions);
15699
15703
  for await (const event of provideEvents) log.trace(`Provide event for ${String(cid)}:`, event);
@@ -16059,7 +16063,7 @@ function extractNetworkErrorDetails(err, depth = 0) {
16059
16063
  }
16060
16064
  //#endregion
16061
16065
  //#region dist/node/generated-version.js
16062
- const version = "0.0.79";
16066
+ const version = "0.0.81";
16063
16067
  //#endregion
16064
16068
  //#region dist/node/version.js
16065
16069
  const protocolVersion = ProtocolVersionSchema.parse("1.0.0");
@@ -1,4 +1,4 @@
1
- import { et as pubsubTopicToDhtKeyCid, vr as PKCError } from "./schema-C_dFmYMp.js";
1
+ import { et as pubsubTopicToDhtKeyCid, vr as PKCError } from "./schema-DZyEx0YQ.js";
2
2
  import { ipnsSelector } from "ipns/selector";
3
3
  import { equals } from "uint8arrays/equals";
4
4
  //#region dist/node/helia/util.js
@@ -1,2 +1,2 @@
1
- import { a as getShortCid, i as getShortAddress, n as challenges, o as nativeFunctions, r as createAnchorIpnsRecord, s as setNativeFunctions, t as PKC } from "./chunks/node-BKnzoR3G.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-BCXmIYLQ.js";
2
2
  export { challenges, createAnchorIpnsRecord, PKC as default, getShortAddress, getShortCid, nativeFunctions, setNativeFunctions };
@@ -1,7 +1,7 @@
1
- import { $n as n, L as hideClassPrivateProps, br as logger_default, st as replaceXWithY, tr as t, vr as PKCError, xt as findStartedCommunity } from "../../chunks/schema-C_dFmYMp.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-BKnzoR3G.js";
3
- import { $t as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, Dn as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, En as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails, J as buildPageRuntimeFields, Qt as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, Y as buildPagesRuntimeFields, Zn as t$1, at as pLimit, hn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails, ir as stringify, it as pRetry, mn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, nn as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, on as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, sn as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, st as require_lib, yn as parseDecryptedChallengeAnswerWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-DlgrBPH8.js";
4
- import { t as LocalCommunity } from "../../chunks/local-community-BhRsFFg0.js";
1
+ import { $n as n, L as hideClassPrivateProps, br as logger_default, st as replaceXWithY, tr as t, vr as PKCError, xt as findStartedCommunity } from "../../chunks/schema-DZyEx0YQ.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-BCXmIYLQ.js";
3
+ import { K as buildPageRuntimeFields, Tn as parseVoteChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, Xt as parseCommentChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, Yn as t$1, Zt as parseCommentEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, _n as parseDecryptedChallengeAnswerWithPKCErrorIfItFails, an as parseCommunityEditOptionsSchemaWithPKCErrorIfItFails, at as require_lib, en as parseCommentModerationChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, fn as parseCreateNewLocalCommunityUserOptionsSchemaWithPKCErrorIfItFails, in as parseCommunityEditChallengeRequestToEncryptSchemaWithPKCErrorIfItFails, nr as stringify, nt as pRetry, pn as parseCreatePKCWsServerOptionsSchemaWithPKCErrorIfItFails, q as buildPagesRuntimeFields, rt as pLimit, wn as parseSetNewSettingsPKCWsServerSchemaWithPKCErrorIfItFails } from "../../chunks/rpc-local-community-BOiy8BX1.js";
4
+ import { t as LocalCommunity } from "../../chunks/local-community-CyX1HwD0.js";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import path from "path";
7
7
  import assert from "assert";
@@ -52,11 +52,13 @@ export declare class CommunityClientsManager extends PKCClientsManager {
52
52
  startUpdatingLoop(): Promise<void>;
53
53
  stopUpdatingLoop(): Promise<void>;
54
54
  private _resolveCommunityNameWithoutUpdatingState;
55
+ private _nonAnchorHopsOfLoadedChain;
55
56
  private _resolveNameInBackground;
56
57
  _resolvePageAuthorNamesInBackground(): void;
57
58
  fetchNewUpdateForCommunity(communityAddress: string): Promise<ResultOfFetchingCommunity>;
58
59
  private _fetchCommunityIpnsP2PAndVerify;
59
60
  private _fetchCommunityFromGateways;
60
61
  private _resolveIpnsChainViaGateway;
62
+ private _proveAnchorClaimIfUnwalked;
61
63
  private _findErrorInCommunityRecord;
62
64
  }
@@ -191,8 +191,15 @@ export class CommunityClientsManager extends PKCClientsManager {
191
191
  }
192
192
  else if (communityLoadingRes?.community &&
193
193
  (this._community.raw.communityIpfs?.updatedAt || 0) < communityLoadingRes.community.updatedAt) {
194
+ const publicKeyBeforeApply = this._community.publicKey;
194
195
  this._community.initCommunityIpfsPropsNoMerge(communityLoadingRes.community);
195
196
  this._community.updateCid = communityLoadingRes.cid;
197
+ // Re-anchor (#257): a record whose anchor claim moves the identity (e.g. loaded by
198
+ // addressing the minter, claim recovers the anchor) invalidates any nameResolved verdict
199
+ // computed against the previous identity — the triggers below re-classify against the
200
+ // claimed one.
201
+ if (publicKeyBeforeApply && this._community.publicKey !== publicKeyBeforeApply)
202
+ this._community.nameResolved = undefined;
196
203
  // If we just discovered a name, trigger background resolution now (don't wait for next loop)
197
204
  if (!isStringDomain(this._community.address) &&
198
205
  this._community.name &&
@@ -200,6 +207,15 @@ export class CommunityClientsManager extends PKCClientsManager {
200
207
  typeof this._community.nameResolved !== "boolean") {
201
208
  this._resolveNameInBackground(this._community.name);
202
209
  }
210
+ else if (isStringDomain(this._community.address) &&
211
+ this._community.publicKey &&
212
+ typeof this._community.nameResolved !== "boolean") {
213
+ // A domain-addressed community classifies its name right after the record lands: a
214
+ // pre-load domain-vs-publicKey mismatch is deferred inside _resolveNameInBackground,
215
+ // because only the loaded chain can tell a key migration from a delegated community
216
+ // whose TXT record points at its own minter (#257).
217
+ this._resolveNameInBackground(this._community.address);
218
+ }
203
219
  log(`Remote Community`, this._community.address, `received a new update. Will emit an update event with updatedAt`, this._community.updatedAt, "that's", timestamp() - this._community.updatedAt, "seconds old");
204
220
  this._community._changeStateEmitEventEmitStateChangeEvent({
205
221
  event: { name: "update", args: [this._community] },
@@ -251,6 +267,25 @@ export class CommunityClientsManager extends PKCClientsManager {
251
267
  this._suppressUpdatingStateForNameResolution--;
252
268
  }
253
269
  }
270
+ // The non-anchor hops (minter and any intermediates) of the community's own validated chain, or
271
+ // undefined while no record has been loaded and the chain is unknown: every key the loaded record
272
+ // is known to travel through (resolved hops + the record's signer) minus the identity itself. A
273
+ // non-delegated community with a loaded record answers []. Gated on the loaded record, not on
274
+ // ipnsHops alone: fetchNewUpdateForCommunity seeds a provisional single-hop ipnsHops for domain
275
+ // addresses before anything loads, and that provisional value says nothing about whether the
276
+ // community is delegated. The identity is subtracted rather than hops[0] because a re-anchored
277
+ // instance (loaded by addressing the minter directly, identity from the record's anchor claim)
278
+ // has ipnsHops = [minter] while its identity is the anchor.
279
+ _nonAnchorHopsOfLoadedChain() {
280
+ const loadedRecord = this._community.raw.communityIpfs;
281
+ if (!loadedRecord)
282
+ return undefined;
283
+ const chainKeys = new Set(this._community.ipnsHops ?? []);
284
+ chainKeys.add(getPKCAddressFromPublicKeySync(loadedRecord.signature.publicKey));
285
+ if (this._community.publicKey)
286
+ chainKeys.delete(this._community.publicKey);
287
+ return [...chainKeys];
288
+ }
254
289
  _resolveNameInBackground(name) {
255
290
  const log = Logger("pkc-js:community-client-manager:_resolveNameInBackground");
256
291
  const setNameResolvedAndEmitUpdate = (newNameResolved) => {
@@ -271,6 +306,18 @@ export class CommunityClientsManager extends PKCClientsManager {
271
306
  })
272
307
  .then((resolved) => {
273
308
  if (resolved && resolved !== this._community.publicKey) {
309
+ const nonAnchorHops = this._nonAnchorHopsOfLoadedChain();
310
+ if (nonAnchorHops?.includes(resolved)) {
311
+ // The name resolves to a non-anchor hop of this community's OWN validated chain
312
+ // (e.g. its minter): a misconfigured TXT record on a delegated community, not a
313
+ // key migration. A delegated community's domain must point at the anchor — the
314
+ // identity readers resolve — the same rule the publisher side enforces in
315
+ // _assertDomainResolvesCorrectly. Migrating here would silently demote the
316
+ // community identity to the rotating minter key and wipe its loaded record (#257).
317
+ log(`Community name ${name} resolves to ${resolved}, a non-anchor hop of the community's own chain, instead of its identity ${this._community.publicKey}. Marking nameResolved false`);
318
+ setNameResolvedAndEmitUpdate(false);
319
+ return;
320
+ }
274
321
  // Key change detected: name now points to a different key.
275
322
  // Most likely: cached publicKey is stale after community key migration.
276
323
  log("Key migration detected for", name, "old:", this._community.publicKey, "new:", resolved);
@@ -347,7 +394,12 @@ export class CommunityClientsManager extends PKCClientsManager {
347
394
  return this._withInflightCommunityFetch(communityAddress, async () => {
348
395
  let ipnsName;
349
396
  const isDomain = isStringDomain(communityAddress);
350
- if (this._community.publicKey && (isDomain || (!isDomain && this._community.name && this._community.nameResolved === true))) {
397
+ // A record with an anchor claim routes through the identity (the anchor chain) no matter
398
+ // how the instance was addressed (#257): the anchor is the rotation-safe pointer, so a
399
+ // reader must never stay pinned to the minter it happened to reach the record through.
400
+ const hasAnchorClaim = Boolean(this._community.anchor);
401
+ if (this._community.publicKey &&
402
+ (isDomain || hasAnchorClaim || (!isDomain && this._community.name && this._community.nameResolved === true))) {
351
403
  // Once a domain has been verified against a public key, keep fetching through the current public key
352
404
  // even if the immutable address on the instance is a raw IPNS key.
353
405
  ipnsName = this._community.publicKey;
@@ -421,15 +473,18 @@ export class CommunityClientsManager extends PKCClientsManager {
421
473
  // we found a new record that is verified.
422
474
  // Key the cache by the ANCHOR identity (domain or anchor IPNS name), not by the
423
475
  // record's signature key — for a delegated community the content is signed by the
424
- // terminal (minter) key, but the user-facing identity is the anchor. ipnsName here
425
- // is the anchor (ipnsHops[0]). For a non-delegated community the anchor equals the
426
- // signature-derived address, so this is unchanged.
427
- const anchorIdentityAddress = subRes.community.name || ipnsName;
476
+ // terminal (minter) key, but the user-facing identity is the anchor. The record's
477
+ // signed anchor claim is the authority (#257): ipnsName is only the name the fetch
478
+ // travelled through, which behind a minter-pointing TXT is the MINTER — caching that
479
+ // as publicKey would make every publication sign to the minter and be rejected. For a
480
+ // non-delegated community (no claim) ipnsName is the identity, unchanged.
481
+ const identityPublicKey = subRes.community.anchor?.publicKey ?? ipnsName;
482
+ const anchorIdentityAddress = subRes.community.name || identityPublicKey;
428
483
  this._pkc._memCaches.communityForPublishing.set(anchorIdentityAddress, {
429
484
  encryption: subRes.community.encryption,
430
485
  pubsubTopic: subRes.community.pubsubTopic,
431
486
  address: anchorIdentityAddress,
432
- publicKey: ipnsName,
487
+ publicKey: identityPublicKey,
433
488
  name: subRes.community.name
434
489
  });
435
490
  }
@@ -489,9 +544,20 @@ export class CommunityClientsManager extends PKCClientsManager {
489
544
  this._updateCidsAlreadyLoaded.add(latestCommunityCid);
490
545
  try {
491
546
  const communityIpfs = parseCommunityIpfsSchemaPassthroughWithPKCErrorIfItFails(parseJsonWithPKCErrorIfFails(rawCommunityJsonString));
547
+ // Prove the record's anchor claim when this resolution walked no chain that could contradict
548
+ // it (#261), and adopt the proven chain as this community's hops.
549
+ const provenIpnsHops = await this._proveAnchorClaimIfUnwalked({
550
+ communityJson: communityIpfs,
551
+ ipnsHops,
552
+ resolveChainOfClaimedAnchor: async (claimedAnchor) => (await this.resolveIpnsToCidP2P(claimedAnchor, {
553
+ timeoutMs: this._pkc._timeouts["community-ipns"],
554
+ abortSignal: this._community._getStopAbortSignal()
555
+ })).ipnsHops
556
+ });
557
+ this._community.ipnsHops = provenIpnsHops;
492
558
  const errInRecord = await this._findErrorInCommunityRecord({
493
559
  communityJson: communityIpfs,
494
- communityIpnsHops: ipnsHops,
560
+ communityIpnsHops: provenIpnsHops,
495
561
  cidOfCommunityIpns: latestCommunityCid
496
562
  });
497
563
  if (errInRecord)
@@ -586,6 +652,14 @@ export class CommunityClientsManager extends PKCClientsManager {
586
652
  gatewayUrl
587
653
  });
588
654
  }
655
+ // Prove the record's anchor claim when the tiering above walked no chain that could
656
+ // contradict it (#261). The walk goes through the SAME untrusted gateway that served
657
+ // the body: it cannot forge a hop's signature, so it cannot manufacture an endorsement.
658
+ ipnsHops = await this._proveAnchorClaimIfUnwalked({
659
+ communityJson: communityIpfs,
660
+ ipnsHops,
661
+ resolveChainOfClaimedAnchor: async (claimedAnchor) => (await this._resolveIpnsChainViaGateway(gatewayUrl, claimedAnchor, abortController.signal)).ipnsHops
662
+ });
589
663
  // Keep the resolved hops attached to THIS gateway's result; the winner (and its
590
664
  // matching hops) is chosen later in _findRecentCommunity. Mutating
591
665
  // this._community.ipnsHops here would let a slower/losing gateway overwrite it.
@@ -727,8 +801,46 @@ export class CommunityClientsManager extends PKCClientsManager {
727
801
  .map((gatewayUrl) => gatewayFetches[gatewayUrl].error)
728
802
  .some((err) => err.details?.status === 304 ||
729
803
  err.code === "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_WE_ALREADY_LOADED_THIS_RECORD");
730
- if (hasGatewayConfirmingCurrentRecord)
731
- return undefined; // any gateway confirmed we already have the latest consumed record
804
+ if (hasGatewayConfirmingCurrentRecord) {
805
+ // Any gateway confirmed we already have the latest consumed record. The conditional
806
+ // request (If-None-Match -> 304) aborts before the delegated chain walk, so a
807
+ // re-anchored community (#257: identity adopted from the record's anchor claim after
808
+ // reaching it through the minter) would keep the stale single-hop ipnsHops forever —
809
+ // the other transports re-resolve the chain on every poll. Upgrade the chain once:
810
+ // walk it via a confirming gateway and adopt it only if its terminal lands on the very
811
+ // CID we already consumed, so a lying gateway cannot bind us to a different record.
812
+ if (this._community.anchor && this._community.ipnsHops?.[0] !== ipnsName) {
813
+ const confirmingGatewayUrl = Object.keys(gatewayFetches).find((gatewayUrl) => gatewayFetches[gatewayUrl].error?.details?.status === 304 ||
814
+ gatewayFetches[gatewayUrl].error?.code ===
815
+ "ERR_GATEWAY_ABORTING_LOADING_COMMUNITY_BECAUSE_WE_ALREADY_LOADED_THIS_RECORD");
816
+ if (confirmingGatewayUrl) {
817
+ // cleanUp() above already cleared every per-gateway timeout, and the raw IPNS
818
+ // record fetches inside the walk carry no deadline of their own, so stopSignal
819
+ // alone would let a stalled gateway hold this await (and therefore the whole
820
+ // update-loop iteration) far past the community-ipns budget every other fetch
821
+ // in this function respects. Give the walk that same budget. The listener is
822
+ // removed in the finally rather than composed with AbortSignal.any because
823
+ // stopSignal lives as long as the community and this runs on every poll.
824
+ const chainWalkAbortController = new AbortController();
825
+ const chainWalkTimeoutId = setTimeout(() => chainWalkAbortController.abort("Aborting delegated chain upgrade because it timed out after " + timeoutMs + "ms"), timeoutMs);
826
+ const onStopAbortChainWalk = () => chainWalkAbortController.abort(stopSignal?.reason);
827
+ stopSignal?.addEventListener("abort", onStopAbortChainWalk, { once: true });
828
+ try {
829
+ const chain = await this._resolveIpnsChainViaGateway(confirmingGatewayUrl, ipnsName, chainWalkAbortController.signal);
830
+ if (this._community.updateCid && chain.terminalCidV0 === this._community.updateCid)
831
+ this._community.ipnsHops = chain.ipnsHops;
832
+ }
833
+ catch (chainWalkError) {
834
+ log.trace(`Failed to upgrade the delegated chain of ${ipnsName} after a confirmed consumed record, will retry next poll`, chainWalkError);
835
+ }
836
+ finally {
837
+ clearTimeout(chainWalkTimeoutId);
838
+ stopSignal?.removeEventListener("abort", onStopAbortChainWalk);
839
+ }
840
+ }
841
+ }
842
+ return undefined;
843
+ }
732
844
  const combinedError = new FailedToFetchCommunityFromGatewaysError({
733
845
  ipnsName,
734
846
  gatewayToError,
@@ -803,6 +915,49 @@ export class CommunityClientsManager extends PKCClientsManager {
803
915
  });
804
916
  }
805
917
  }
918
+ // A record's anchor claim is only proven by the resolution that fetched it when a delegation hop
919
+ // was actually walked — the chain rule in verifyCommunity then binds the claim to the chain's
920
+ // anchor. A SINGLE-HOP load walks nothing: a reader addressing the minter directly (behind a TXT
921
+ // record pointing at the minter, or by raw key) receives the claim with nothing contradicting it,
922
+ // and the claim is not decoration — it becomes community.publicKey, the ipns-over-pubsub topic,
923
+ // the key of the publish cache and the subject of the nameResolved verdict. Trusting it there
924
+ // would let any minter serve its own content under a well-known community's identity (#261).
925
+ //
926
+ // So prove it: resolve the CLAIMED anchor and require its own chain to end at the key that signed
927
+ // this record. The binding proven is the delegation An -> Mn, not the CID, so an honest claim
928
+ // cannot fail because the minter published a newer record between the two resolutions. On success
929
+ // the proven chain replaces the single-hop one, which is also the chain every later poll produces
930
+ // (a claim re-anchors subsequent fetches through the anchor), so the instance never reports a
931
+ // transient half-chain. See docs/protocol/delegated-ipns.md.
932
+ async _proveAnchorClaimIfUnwalked({ communityJson, ipnsHops, resolveChainOfClaimedAnchor }) {
933
+ const log = Logger("pkc-js:community-client-manager:_proveAnchorClaimIfUnwalked");
934
+ // A walked chain already settles the claim: verifyCommunity accepts it only if it names the
935
+ // chain's anchor. Re-proving a claim that contradicts a walked chain would let a record swap
936
+ // the identity the reader asked for, so this path deliberately does nothing there.
937
+ if (ipnsHops.length > 1)
938
+ return ipnsHops;
939
+ const claimedAnchor = communityJson.anchor?.publicKey;
940
+ if (!claimedAnchor)
941
+ return ipnsHops; // not a delegated record
942
+ const loadedName = ipnsHops[0];
943
+ if (this._areEquivalentCommunityAddresses(claimedAnchor, loadedName))
944
+ return ipnsHops; // claims the name it was loaded from
945
+ const provenHops = await resolveChainOfClaimedAnchor(claimedAnchor);
946
+ const anchorDelegatesTo = provenHops[provenHops.length - 1];
947
+ if (!this._areEquivalentCommunityAddresses(anchorDelegatesTo, loadedName))
948
+ throw new PKCError("ERR_COMMUNITY_RECORD_ANCHOR_CLAIM_IS_NOT_ENDORSED", {
949
+ claimedAnchor,
950
+ // The key that signed the record and whose IPNS record we loaded it from, i.e. the key
951
+ // the claimed anchor would have to delegate to for the claim to hold.
952
+ recordIpnsName: loadedName,
953
+ anchorDelegatesTo,
954
+ claimedAnchorHops: provenHops,
955
+ communityAddress: this._getCommunityAddressFromInstance(),
956
+ recordSignerAddress: getPKCAddressFromPublicKeySync(communityJson.signature.publicKey)
957
+ });
958
+ log.trace(`Anchor claim of ${loadedName} proven: ${claimedAnchor} delegates to it. Adopting the chain`, provenHops);
959
+ return provenHops;
960
+ }
806
961
  async _findErrorInCommunityRecord({ communityJson, communityIpnsHops, cidOfCommunityIpns }) {
807
962
  const anchorIpnsName = communityIpnsHops[0];
808
963
  const terminalIpnsName = communityIpnsHops[communityIpnsHops.length - 1];
@@ -1 +1 @@
1
- {"version":3,"file":"community-client-manager.js","sourceRoot":"","sources":["../../../src/community/community-client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"community-client-manager.js","sourceRoot":"","sources":["../../../src/community/community-client-manager.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { PKC } from "../pkc/pkc.js";
2
2
  import { TypedEmitter } from "tiny-typed-emitter";
3
3
  import { PKCError } from "../pkc-error.js";
4
- import type { CreateRemoteCommunityOptions, CommunityIpfsType, RpcRemoteCommunityType, CommunityJson, CommunityUpdatingState, CommunityState, CommunityStartedState, CommunitySettings, RpcLocalCommunityLocalProps, CommunityEditOptions, CommunityEventArgs, CommunityEvents, CommunityExportRecord, ExportCommunityUserOptions, ExportCommunityModLogsOptions } from "./types.js";
4
+ import type { CreateRemoteCommunityOptions, CommunityIpfsType, RpcRemoteCommunityType, CommunityJson, CommunityUpdatingState, CommunityState, CommunityStartedState, CommunitySettings, RpcLocalCommunityLocalProps, CommunityEditOptions, CommunityEventArgs, CommunityEvents, CommunityExportRecord, ExportCommunityUserOptions, ExportCommunityModLogsOptions, CommunityAnchor } from "./types.js";
5
5
  import type { CommentModerationTableRow } from "../publications/comment-moderation/types.js";
6
6
  import { ModQueuePages, PostsPages } from "../pages/pages.js";
7
7
  import { SignerWithPublicKeyAddress } from "../signer/index.js";
@@ -42,6 +42,7 @@ export declare class RemoteCommunity extends TypedEmitter<CommunityEvents> imple
42
42
  updateCid?: string;
43
43
  ipnsName?: string;
44
44
  ipnsHops?: string[];
45
+ anchor?: CommunityAnchor;
45
46
  ipnsPubsubTopic?: string;
46
47
  ipnsPubsubTopicRoutingCid?: string;
47
48
  pubsubTopicRoutingCid?: string;