@pkcprotocol/pkc-js 0.0.102 → 0.0.104

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 (140) hide show
  1. package/README.md +35 -8
  2. package/dist/browser/clients/base-client-manager.d.ts +1 -0
  3. package/dist/browser/clients/base-client-manager.js +72 -11
  4. package/dist/browser/clients/base-client-manager.js.map +1 -1
  5. package/dist/browser/community/community-client-manager.d.ts +3 -0
  6. package/dist/browser/community/community-client-manager.js +87 -14
  7. package/dist/browser/community/community-client-manager.js.map +1 -1
  8. package/dist/browser/community/remote-community.js +3 -0
  9. package/dist/browser/community/remote-community.js.map +1 -1
  10. package/dist/browser/community/schema.d.ts +4 -0
  11. package/dist/browser/community/schema.js +7 -1
  12. package/dist/browser/community/schema.js.map +1 -1
  13. package/dist/browser/constants.d.ts +3 -0
  14. package/dist/browser/constants.js +35 -0
  15. package/dist/browser/constants.js.map +1 -1
  16. package/dist/browser/errors.d.ts +5 -1
  17. package/dist/browser/errors.js +7 -1
  18. package/dist/browser/errors.js.map +1 -1
  19. package/dist/browser/generated-version.d.ts +1 -1
  20. package/dist/browser/generated-version.js +1 -1
  21. package/dist/browser/index-with-compile-cache.d.ts +2 -0
  22. package/dist/browser/index.d.ts +2 -0
  23. package/dist/browser/pkc/pkc.d.ts +4 -0
  24. package/dist/browser/pkc/pkc.js +30 -1
  25. package/dist/browser/pkc/pkc.js.map +1 -1
  26. package/dist/browser/pkc-error.d.ts +1 -1
  27. package/dist/browser/publications/comment/comment-client-manager.js +11 -0
  28. package/dist/browser/publications/comment/comment-client-manager.js.map +1 -1
  29. package/dist/browser/publications/comment/comment.js +8 -6
  30. package/dist/browser/publications/comment/comment.js.map +1 -1
  31. package/dist/browser/publications/comment/crosspost-runtime.js +3 -2
  32. package/dist/browser/publications/comment/crosspost-runtime.js.map +1 -1
  33. package/dist/browser/rpc/src/index.js +6 -0
  34. package/dist/browser/rpc/src/index.js.map +1 -1
  35. package/dist/browser/rpc/src/lib/pkc-js/index.d.ts +1 -0
  36. package/dist/browser/rpc/src/schema.d.ts +6 -0
  37. package/dist/browser/runtime/node/community/challenges/exclude/exclude.d.ts +11 -1
  38. package/dist/browser/runtime/node/community/challenges/exclude/exclude.js +32 -21
  39. package/dist/browser/runtime/node/community/challenges/exclude/exclude.js.map +1 -1
  40. package/dist/browser/runtime/node/community/challenges/index.d.ts +10 -3
  41. package/dist/browser/runtime/node/community/challenges/index.js +82 -16
  42. package/dist/browser/runtime/node/community/challenges/index.js.map +1 -1
  43. package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/blacklist.js +7 -4
  44. package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/blacklist.js.map +1 -1
  45. package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/whitelist.js +13 -5
  46. package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/whitelist.js.map +1 -1
  47. package/dist/browser/runtime/node/community/local-community/author-identity.d.ts +37 -2
  48. package/dist/browser/runtime/node/community/local-community/author-identity.js +73 -13
  49. package/dist/browser/runtime/node/community/local-community/author-identity.js.map +1 -1
  50. package/dist/browser/runtime/node/community/local-community/challenges.d.ts +16 -2
  51. package/dist/browser/runtime/node/community/local-community/challenges.js +40 -9
  52. package/dist/browser/runtime/node/community/local-community/challenges.js.map +1 -1
  53. package/dist/browser/runtime/node/community/local-community/editing.js +7 -2
  54. package/dist/browser/runtime/node/community/local-community/editing.js.map +1 -1
  55. package/dist/browser/runtime/node/community/local-community/publication-store.d.ts +13 -2
  56. package/dist/browser/runtime/node/community/local-community/publication-store.js +29 -7
  57. package/dist/browser/runtime/node/community/local-community/publication-store.js.map +1 -1
  58. package/dist/browser/runtime/node/community/local-community/publication-validation.d.ts +13 -3
  59. package/dist/browser/runtime/node/community/local-community/publication-validation.js +63 -28
  60. package/dist/browser/runtime/node/community/local-community/publication-validation.js.map +1 -1
  61. package/dist/browser/runtime/node/community/local-community.d.ts +2 -2
  62. package/dist/browser/runtime/node/community/local-community.js +6 -4
  63. package/dist/browser/runtime/node/community/local-community.js.map +1 -1
  64. package/dist/browser/schema.d.ts +8 -0
  65. package/dist/browser/types.d.ts +1 -0
  66. package/dist/bundled/bundle-manifest.json +26 -26
  67. package/dist/bundled/chunks/{helia-for-pkc-ZbhRl9a-.js → helia-for-pkc-CQM2gwO-.js} +2 -2
  68. package/dist/bundled/chunks/{local-community-Cu95rtju.js → local-community-CaK2PibY.js} +1 -1
  69. package/dist/bundled/chunks/{local-community-L-1IkV1x.js → local-community-Cad8EnIh.js} +160 -61
  70. package/dist/bundled/chunks/{node-DaN6R9HB.js → node-C6LbmJAq.js} +19 -8
  71. package/dist/bundled/chunks/{rpc-local-community-aV790d8_.js → rpc-local-community-Dciiw7xH.js} +275 -103
  72. package/dist/bundled/chunks/{schema-gif6qroG.js → schema-CRAfzWYa.js} +8 -3
  73. package/dist/bundled/chunks/{util-BsJoElMm.js → util-BWhDfSw9.js} +1 -1
  74. package/dist/bundled/index.js +1 -1
  75. package/dist/bundled/rpc/src/index.js +9 -4
  76. package/dist/node/clients/base-client-manager.d.ts +1 -0
  77. package/dist/node/clients/base-client-manager.js +72 -11
  78. package/dist/node/clients/base-client-manager.js.map +1 -1
  79. package/dist/node/community/community-client-manager.d.ts +3 -0
  80. package/dist/node/community/community-client-manager.js +87 -14
  81. package/dist/node/community/community-client-manager.js.map +1 -1
  82. package/dist/node/community/remote-community.js +3 -0
  83. package/dist/node/community/remote-community.js.map +1 -1
  84. package/dist/node/community/schema.d.ts +4 -0
  85. package/dist/node/community/schema.js +7 -1
  86. package/dist/node/community/schema.js.map +1 -1
  87. package/dist/node/constants.d.ts +3 -0
  88. package/dist/node/constants.js +35 -0
  89. package/dist/node/constants.js.map +1 -1
  90. package/dist/node/errors.d.ts +5 -1
  91. package/dist/node/errors.js +7 -1
  92. package/dist/node/errors.js.map +1 -1
  93. package/dist/node/generated-version.d.ts +1 -1
  94. package/dist/node/generated-version.js +1 -1
  95. package/dist/node/index-with-compile-cache.d.ts +2 -0
  96. package/dist/node/index.d.ts +2 -0
  97. package/dist/node/pkc/pkc.d.ts +4 -0
  98. package/dist/node/pkc/pkc.js +30 -1
  99. package/dist/node/pkc/pkc.js.map +1 -1
  100. package/dist/node/pkc-error.d.ts +1 -1
  101. package/dist/node/publications/comment/comment-client-manager.js +11 -0
  102. package/dist/node/publications/comment/comment-client-manager.js.map +1 -1
  103. package/dist/node/publications/comment/comment.js +8 -6
  104. package/dist/node/publications/comment/comment.js.map +1 -1
  105. package/dist/node/publications/comment/crosspost-runtime.js +3 -2
  106. package/dist/node/publications/comment/crosspost-runtime.js.map +1 -1
  107. package/dist/node/rpc/src/index.js +6 -0
  108. package/dist/node/rpc/src/index.js.map +1 -1
  109. package/dist/node/rpc/src/lib/pkc-js/index.d.ts +1 -0
  110. package/dist/node/rpc/src/schema.d.ts +6 -0
  111. package/dist/node/runtime/node/community/challenges/exclude/exclude.d.ts +11 -1
  112. package/dist/node/runtime/node/community/challenges/exclude/exclude.js +32 -21
  113. package/dist/node/runtime/node/community/challenges/exclude/exclude.js.map +1 -1
  114. package/dist/node/runtime/node/community/challenges/index.d.ts +10 -3
  115. package/dist/node/runtime/node/community/challenges/index.js +82 -16
  116. package/dist/node/runtime/node/community/challenges/index.js.map +1 -1
  117. package/dist/node/runtime/node/community/challenges/pkc-js-challenges/blacklist.js +7 -4
  118. package/dist/node/runtime/node/community/challenges/pkc-js-challenges/blacklist.js.map +1 -1
  119. package/dist/node/runtime/node/community/challenges/pkc-js-challenges/whitelist.js +13 -5
  120. package/dist/node/runtime/node/community/challenges/pkc-js-challenges/whitelist.js.map +1 -1
  121. package/dist/node/runtime/node/community/local-community/author-identity.d.ts +37 -2
  122. package/dist/node/runtime/node/community/local-community/author-identity.js +73 -13
  123. package/dist/node/runtime/node/community/local-community/author-identity.js.map +1 -1
  124. package/dist/node/runtime/node/community/local-community/challenges.d.ts +16 -2
  125. package/dist/node/runtime/node/community/local-community/challenges.js +40 -9
  126. package/dist/node/runtime/node/community/local-community/challenges.js.map +1 -1
  127. package/dist/node/runtime/node/community/local-community/editing.js +7 -2
  128. package/dist/node/runtime/node/community/local-community/editing.js.map +1 -1
  129. package/dist/node/runtime/node/community/local-community/publication-store.d.ts +13 -2
  130. package/dist/node/runtime/node/community/local-community/publication-store.js +29 -7
  131. package/dist/node/runtime/node/community/local-community/publication-store.js.map +1 -1
  132. package/dist/node/runtime/node/community/local-community/publication-validation.d.ts +13 -3
  133. package/dist/node/runtime/node/community/local-community/publication-validation.js +63 -28
  134. package/dist/node/runtime/node/community/local-community/publication-validation.js.map +1 -1
  135. package/dist/node/runtime/node/community/local-community.d.ts +2 -2
  136. package/dist/node/runtime/node/community/local-community.js +6 -4
  137. package/dist/node/runtime/node/community/local-community.js.map +1 -1
  138. package/dist/node/schema.d.ts +8 -0
  139. package/dist/node/types.d.ts +1 -0
  140. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import type { AuthorIdentityMatcher, NameIdentityFailure } from "../local-community/author-identity.js";
1
2
  import type { ChallengeVerificationMessageType, DecryptedChallengeAnswer, DecryptedChallengeRequestMessageTypeWithCommunityAuthor } from "../../../../pubsub-messages/types.js";
2
3
  import type { Challenge, ChallengeFile, ChallengeFileFactoryInput, ChallengeResult, CommunityChallenge, CommunityChallengeSetting } from "../../../../community/types.js";
3
4
  import { LocalCommunity } from "../local-community.js";
@@ -24,10 +25,12 @@ type ChallengeVerificationPending = {
24
25
  deferredChallenges?: DeferredChallenge[];
25
26
  partialResults?: (Challenge | ChallengeResult | undefined)[];
26
27
  communityChallenges?: CommunityChallenge[];
28
+ identityNameFailureByIndex?: (NameIdentityFailure | undefined)[];
27
29
  };
28
30
  type ChallengeVerificationFailure = {
29
31
  challengeSuccess: false;
30
32
  challengeErrors: NonNullable<ChallengeVerificationMessageType["challengeErrors"]>;
33
+ identityNameFailureByIndex?: (NameIdentityFailure | undefined)[];
31
34
  } & Pick<ChallengeResultAggregate, "aggregatedReason">;
32
35
  export type PKCWithSettingsChallenges = {
33
36
  settings?: {
@@ -35,11 +38,12 @@ export type PKCWithSettingsChallenges = {
35
38
  };
36
39
  };
37
40
  declare const pkcJsChallenges: Record<string, ChallengeFileFactoryInput>;
38
- declare const getPendingChallengesOrChallengeVerification: ({ challengeRequestMessage, community }: {
41
+ declare const getPendingChallengesOrChallengeVerification: ({ challengeRequestMessage, community, authorIdentityMatcher }: {
39
42
  challengeRequestMessage: DecryptedChallengeRequestMessageTypeWithCommunityAuthor;
40
43
  community: LocalCommunity;
44
+ authorIdentityMatcher?: AuthorIdentityMatcher;
41
45
  }) => Promise<ChallengeVerificationSuccess | ChallengeVerificationPending | ChallengeVerificationFailure>;
42
- declare const getChallengeVerificationFromChallengeAnswers: ({ pendingChallenges, challengeAnswers, community, challengeRequestMessage, deferredChallenges, partialResults, communityChallenges }: {
46
+ declare const getChallengeVerificationFromChallengeAnswers: ({ pendingChallenges, challengeAnswers, community, challengeRequestMessage, deferredChallenges, partialResults, communityChallenges, authorIdentityMatcher }: {
43
47
  pendingChallenges: PendingChallenge[];
44
48
  challengeAnswers: DecryptedChallengeAnswer["challengeAnswers"];
45
49
  community: LocalCommunity;
@@ -47,14 +51,17 @@ declare const getChallengeVerificationFromChallengeAnswers: ({ pendingChallenges
47
51
  deferredChallenges?: DeferredChallenge[];
48
52
  partialResults?: (Challenge | ChallengeResult | undefined)[];
49
53
  communityChallenges?: CommunityChallenge[];
54
+ authorIdentityMatcher?: AuthorIdentityMatcher;
50
55
  }) => Promise<ChallengeVerificationSuccess | ChallengeVerificationFailure>;
51
56
  export type GetChallengeVerificationResult = Pick<ChallengeVerificationMessageType, "challengeErrors" | "challengeSuccess"> & {
52
57
  pendingApproval?: boolean;
58
+ postAnswerAuthorIdentityMatcher?: AuthorIdentityMatcher;
53
59
  } & ChallengeResultAggregate;
54
- declare const getChallengeVerification: ({ challengeRequestMessage, community, getChallengeAnswers }: {
60
+ declare const getChallengeVerification: ({ challengeRequestMessage, community, getChallengeAnswers, authorIdentityMatcher }: {
55
61
  challengeRequestMessage: DecryptedChallengeRequestMessageTypeWithCommunityAuthor;
56
62
  community: LocalCommunity;
57
63
  getChallengeAnswers: GetChallengeAnswers;
64
+ authorIdentityMatcher?: AuthorIdentityMatcher;
58
65
  }) => Promise<GetChallengeVerificationResult>;
59
66
  declare const loadChallengeFileFromCommunityChallengeSettings: ({ communityChallengeSettings, pkc }: {
60
67
  communityChallengeSettings: CommunityChallengeSetting;
@@ -1,4 +1,5 @@
1
1
  import { shouldExcludeChallengeCommentCids, shouldExcludePublication, shouldExcludeChallengeSuccess, addToRateLimiter } from "./exclude/index.js";
2
+ import { NO_OP_AUTHOR_IDENTITY_MATCHER, authorIdentityMatcherForRequest } from "../local-community/author-identity.js";
2
3
  // all challenges included with pkc-js, in PKC.challenges
3
4
  import textMath from "./pkc-js-challenges/text-math.js";
4
5
  import fail from "./pkc-js-challenges/fail.js";
@@ -98,14 +99,15 @@ const loadChallengeFile = async ({ communityChallengeSettings, challengeIndex, c
98
99
  return { challengeFile };
99
100
  };
100
101
  // invoke getChallenge() with shared error handling and result validation
101
- const callGetChallenge = async ({ challengeFile, communityChallengeSettings, challengeRequestMessage, challengeIndex, community }) => {
102
+ const callGetChallenge = async ({ challengeFile, communityChallengeSettings, challengeRequestMessage, challengeIndex, community, authorIdentityMatcher }) => {
102
103
  let challengeOrChallengeResult;
103
104
  try {
104
105
  challengeOrChallengeResult = await challengeFile.getChallenge({
105
106
  challengeSettings: communityChallengeSettings,
106
107
  challengeRequestMessage,
107
108
  challengeIndex,
108
- community
109
+ community,
110
+ authorIdentityMatcher
109
111
  });
110
112
  validateChallengeOrChallengeResult({ challengeOrChallengeResult, challengeIndex, community });
111
113
  }
@@ -210,7 +212,8 @@ const canFailedChallengeStillBeExcluded = (i, communityChallenges, decided, resu
210
212
  }
211
213
  return false;
212
214
  };
213
- const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMessage, community }) => {
215
+ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMessage, community, authorIdentityMatcher }) => {
216
+ const identityMatcher = authorIdentityMatcher ?? authorIdentityMatcherForRequest({ community, request: challengeRequestMessage });
214
217
  // if community has no challenges, no need to send a challenge
215
218
  if (!Array.isArray(community.settings?.challenges))
216
219
  return {
@@ -229,14 +232,33 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
229
232
  // in phases 2/3. Loading them upfront avoids re-importing during the dependency-ordered loop.
230
233
  const challengeFiles = await Promise.all(community.settings.challenges.map(async (s, i) => (await loadChallengeFile({ communityChallengeSettings: s, challengeIndex: i, community })).challengeFile));
231
234
  // Phase 1: request-only excludes (parallel). Indexes excluded here never reach getChallenge.
235
+ // An exclude that would have excused this author but for a domain identity the node could not verify
236
+ // records why, so a later rejection can name the real cause instead of the challenge's own text (#353).
237
+ //
238
+ // Recorded per challenge index, not once for the request. An exclude only ever excuses the challenge it
239
+ // is attached to, so a failure to verify the author's name explains a rejection only if every challenge
240
+ // that actually failed is one the name would have excused. Collapsing them into a single value would
241
+ // hand the resolver's error to an author who simply failed a different, unrelated challenge.
242
+ const identityNameFailureByIndex = new Array(challengeCount);
232
243
  await Promise.all(communityChallenges.map(async (communityChallenge, i) => {
233
- if (await shouldExcludePublication(communityChallenge, challengeRequestMessage, community)) {
244
+ const excludeResult = await shouldExcludePublication({
245
+ communityChallenge,
246
+ request: challengeRequestMessage,
247
+ community,
248
+ identityMatcher
249
+ });
250
+ if (excludeResult.shouldExclude) {
234
251
  decided[i] = true;
235
252
  return;
236
253
  }
237
254
  if (await shouldExcludeChallengeCommentCids(communityChallenge, challengeRequestMessage, community._pkc)) {
238
255
  decided[i] = true;
256
+ // Excluded by its comment-cid rule regardless, so this challenge is not required and its
257
+ // exclude's failure to verify a name explains nothing about a later rejection.
258
+ return;
239
259
  }
260
+ // Recorded only now that the challenge is known to still be required.
261
+ identityNameFailureByIndex[i] = excludeResult.nameFailure;
240
262
  }));
241
263
  // Phase 2 + 3: dependency-ordered resolution with incremental cycle-break.
242
264
  // `deferred[i] = true` means index i was decided but its result is not yet known — it will be
@@ -278,7 +300,8 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
278
300
  communityChallengeSettings: community.settings.challenges[i],
279
301
  challengeRequestMessage,
280
302
  challengeIndex: i,
281
- community
303
+ community,
304
+ authorIdentityMatcher: identityMatcher
282
305
  })).challengeOrChallengeResult;
283
306
  decided[i] = true;
284
307
  }
@@ -316,7 +339,8 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
316
339
  communityChallengeSettings: community.settings.challenges[firstUndecided],
317
340
  challengeRequestMessage,
318
341
  challengeIndex: firstUndecided,
319
- community
342
+ community,
343
+ authorIdentityMatcher: identityMatcher
320
344
  })).challengeOrChallengeResult;
321
345
  decided[firstUndecided] = true;
322
346
  }
@@ -376,18 +400,24 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
376
400
  return { challengeSuccess, pendingApprovalSuccess, ...successAgg };
377
401
  }
378
402
  if (challengeSuccess === false)
379
- return { challengeSuccess, challengeErrors, aggregatedReason: agg.aggregatedReason };
403
+ return { challengeSuccess, challengeErrors, aggregatedReason: agg.aggregatedReason, identityNameFailureByIndex };
380
404
  return {
381
405
  pendingChallenges,
382
406
  pendingApprovalSuccess,
383
407
  deferredChallenges: deferredChallenges.length > 0 ? deferredChallenges : undefined,
384
408
  partialResults: results,
385
- communityChallenges
409
+ communityChallenges,
410
+ identityNameFailureByIndex
386
411
  };
387
412
  };
388
- const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges, challengeAnswers, community, challengeRequestMessage, deferredChallenges, partialResults, communityChallenges }) => {
413
+ const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges, challengeAnswers, community, challengeRequestMessage, deferredChallenges, partialResults, communityChallenges, authorIdentityMatcher }) => {
389
414
  if (!Array.isArray(community.settings?.challenges))
390
415
  throw Error("community.settings?.challenges is not defined");
416
+ const identityMatcher = authorIdentityMatcher ??
417
+ (challengeRequestMessage
418
+ ? authorIdentityMatcherForRequest({ community, request: challengeRequestMessage })
419
+ : // No request to derive an author from, so nothing can refer to them.
420
+ NO_OP_AUTHOR_IDENTITY_MATCHER);
391
421
  const challengeCount = community.settings.challenges.length;
392
422
  // Run verify() for every pending challenge in parallel.
393
423
  const verifyChallengePromises = [];
@@ -467,7 +497,8 @@ const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges,
467
497
  communityChallengeSettings: community.settings.challenges[i],
468
498
  challengeRequestMessage,
469
499
  challengeIndex: i,
470
- community
500
+ community,
501
+ authorIdentityMatcher: identityMatcher
471
502
  })).challengeOrChallengeResult;
472
503
  decided[i] = true;
473
504
  }
@@ -507,7 +538,8 @@ const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges,
507
538
  communityChallengeSettings: community.settings.challenges[firstUndecided],
508
539
  challengeRequestMessage,
509
540
  challengeIndex: firstUndecided,
510
- community
541
+ community,
542
+ authorIdentityMatcher: identityMatcher
511
543
  })).challengeOrChallengeResult;
512
544
  decided[firstUndecided] = true;
513
545
  }
@@ -551,7 +583,7 @@ const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges,
551
583
  ...successAgg
552
584
  };
553
585
  };
554
- const getChallengeVerification = async ({ challengeRequestMessage, community, getChallengeAnswers }) => {
586
+ const getChallengeVerification = async ({ challengeRequestMessage, community, getChallengeAnswers, authorIdentityMatcher }) => {
555
587
  if (!challengeRequestMessage) {
556
588
  throw Error(`getChallengeVerification invalid challengeRequestMessage argument '${challengeRequestMessage}'`);
557
589
  }
@@ -563,12 +595,27 @@ const getChallengeVerification = async ({ challengeRequestMessage, community, ge
563
595
  }
564
596
  if (!Array.isArray(community.settings?.challenges))
565
597
  throw Error("community.settings?.challenges is not defined");
566
- const res = await getPendingChallengesOrChallengeVerification({ challengeRequestMessage, community });
598
+ const identityMatcher = authorIdentityMatcher ?? authorIdentityMatcherForRequest({ community, request: challengeRequestMessage });
599
+ const res = await getPendingChallengesOrChallengeVerification({
600
+ challengeRequestMessage,
601
+ community,
602
+ authorIdentityMatcher: identityMatcher
603
+ });
567
604
  let pendingApprovalSuccess = "pendingApprovalSuccess" in res ? res.pendingApprovalSuccess : false;
605
+ // Captured before the challenge answer round-trip below, which builds a fresh aggregate and would
606
+ // otherwise drop it. Applied at the end, and only to a failure. Issue #353.
607
+ const identityNameFailureByIndex = "identityNameFailureByIndex" in res ? res.identityNameFailureByIndex : undefined;
568
608
  let challengeVerification;
569
609
  // was able to verify without asking author for challenges
610
+ let postAnswerAuthorIdentityMatcher;
570
611
  if ("pendingChallenges" in res) {
571
612
  const challengeAnswers = await getChallengeAnswers(res.pendingChallenges.map((challenge) => omit(challenge, ["index", "verify"])));
613
+ // The round-trip is what makes the identity verdict stale, so the round-trip is what invalidates it.
614
+ // `identityMatcher` memoised its maxAge-0 resolve before the challenge went out, and the author had
615
+ // until the exchange ttl to answer: a TXT record repointed in that window must not still read as
616
+ // theirs. Everything downstream of this line uses the fresh one; everything before it keeps the
617
+ // single resolve that issue #354 exists to preserve, since no wall-clock time passed there.
618
+ postAnswerAuthorIdentityMatcher = authorIdentityMatcherForRequest({ community, request: challengeRequestMessage });
572
619
  const verificationFromPending = await getChallengeVerificationFromChallengeAnswers({
573
620
  pendingChallenges: res.pendingChallenges,
574
621
  challengeAnswers,
@@ -576,7 +623,8 @@ const getChallengeVerification = async ({ challengeRequestMessage, community, ge
576
623
  challengeRequestMessage,
577
624
  deferredChallenges: res.deferredChallenges,
578
625
  partialResults: res.partialResults,
579
- communityChallenges: res.communityChallenges
626
+ communityChallenges: res.communityChallenges,
627
+ authorIdentityMatcher: postAnswerAuthorIdentityMatcher
580
628
  });
581
629
  if ("pendingApprovalSuccess" in verificationFromPending) {
582
630
  pendingApprovalSuccess = pendingApprovalSuccess || verificationFromPending.pendingApprovalSuccess;
@@ -598,6 +646,20 @@ const getChallengeVerification = async ({ challengeRequestMessage, community, ge
598
646
  if ("aggregatedReason" in res && res.aggregatedReason)
599
647
  challengeVerification.aggregatedReason = res.aggregatedReason;
600
648
  }
649
+ // An unverifiable domain identity that was decisive outranks whatever the challenges the author then
650
+ // failed had to say: their text describes the symptom ("only the owner can post here"), this describes
651
+ // the cause. Decisive means every challenge that actually failed is one whose own exclude would have
652
+ // excused this author had the name verified. If even one failed challenge would have rejected them
653
+ // anyway, the name was not what stood in their way and they are owed the challenge's own reason instead.
654
+ // Issue #353.
655
+ const failedChallengeIndexes = Object.keys(challengeVerification.challengeErrors ?? {});
656
+ const decisiveNameFailure = failedChallengeIndexes.length > 0 && identityNameFailureByIndex
657
+ ? failedChallengeIndexes.every((index) => identityNameFailureByIndex[Number(index)])
658
+ ? identityNameFailureByIndex[Number(failedChallengeIndexes[0])]
659
+ : undefined
660
+ : undefined;
661
+ if (challengeVerification.challengeSuccess === false && decisiveNameFailure)
662
+ challengeVerification.aggregatedReason = decisiveNameFailure.reason;
601
663
  // store the publication result and author address in mem cache for rateLimit exclude challenge settings
602
664
  addToRateLimiter(community.settings?.challenges, challengeRequestMessage, challengeVerification.challengeSuccess);
603
665
  // scenarios:
@@ -605,10 +667,14 @@ const getChallengeVerification = async ({ challengeRequestMessage, community, ge
605
667
  // - any challenge fails -> fail request
606
668
  // - requester passes every challenge and at least one non-excluded challenge has pendingApproval -> send to pending approval
607
669
  const shouldSendToPendingApproval = Boolean(challengeRequestMessage.comment) && challengeVerification.challengeSuccess === true && pendingApprovalSuccess;
670
+ // Spread rather than always set: an exchange that issued no challenge has nothing to rebuild, and an
671
+ // explicit `postAnswerAuthorIdentityMatcher: undefined` would show up in an exact-shape assertion on the
672
+ // verification and read as a field this result carries when it does not.
673
+ const postAnswerMatcherField = postAnswerAuthorIdentityMatcher ? { postAnswerAuthorIdentityMatcher } : {};
608
674
  if (shouldSendToPendingApproval) {
609
- return { ...challengeVerification, pendingApproval: true };
675
+ return { ...challengeVerification, pendingApproval: true, ...postAnswerMatcherField };
610
676
  }
611
- return challengeVerification;
677
+ return { ...challengeVerification, ...postAnswerMatcherField };
612
678
  };
613
679
  // Options are private by default. The owner opts an option into the published community record by naming
614
680
  // it in settings.challenges[i].publicOptions. Only options the owner actually set are emitted, and the
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/browser/community/challenges/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/browser/community/challenges/index.ts"],"names":[],"mappings":"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"}
@@ -93,7 +93,7 @@ class UrlsAddressesSet {
93
93
  }
94
94
  }
95
95
  const urlsAddressesSet = new UrlsAddressesSet();
96
- const getChallenge = async ({ challengeSettings, challengeRequestMessage, community }) => {
96
+ const getChallenge = async ({ challengeSettings, challengeRequestMessage, community, authorIdentityMatcher }) => {
97
97
  // add a custom error message to display to the author
98
98
  const error = challengeSettings?.options?.error;
99
99
  const addresses = challengeSettings?.options?.addresses
@@ -104,9 +104,12 @@ const getChallenge = async ({ challengeSettings, challengeRequestMessage, commun
104
104
  const publication = derivePublicationFromChallengeRequest(challengeRequestMessage);
105
105
  // Match on the signer, not on the publisher-controlled author.address: a listed domain only counts when the
106
106
  // publication is signed by the key that domain resolves to (issue #267)
107
- const identityMatcher = createAuthorIdentityMatcher({ community, publication });
108
- const listed = (await identityMatcher.matchesAnyIdentity(addressesSet)) ||
109
- (await identityMatcher.matchesAnyIdentity(await urlsAddressesSet.getAddresses(getCommunityAddressFromRecord(publication), challengeSettings?.options?.urls)));
107
+ // Shared across the whole challenge request when core supplies it, so the author's domain is resolved once.
108
+ const identityMatcher = authorIdentityMatcher ?? createAuthorIdentityMatcher({ community, publication });
109
+ // A listed domain the node cannot resolve stays a non-match, so this challenge fails open: an unverifiable
110
+ // blacklist entry lets the publication through. Deliberately unchanged here, see issue #356.
111
+ const listed = (await identityMatcher.matchesAnyIdentity(addressesSet)).matched ||
112
+ (await identityMatcher.matchesAnyIdentity(await urlsAddressesSet.getAddresses(getCommunityAddressFromRecord(publication), challengeSettings?.options?.urls))).matched;
110
113
  if (listed) {
111
114
  return {
112
115
  success: false,
@@ -1 +1 @@
1
- {"version":3,"file":"blacklist.js","sourceRoot":"","sources":["../../../../../../../src/runtime/browser/community/challenges/pkc-js-challenges/blacklist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blacklist.js","sourceRoot":"","sources":["../../../../../../../src/runtime/browser/community/challenges/pkc-js-challenges/blacklist.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qCAAqC,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,sDAAsD,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AAEvF,MAAM,YAAY,GAAoD;IAClE;QACI,MAAM,EAAE,WAAW;QACnB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE,wCAAwC;KACxD;IACD;QACI,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,kFAAkF;QAC/F,WAAW,EAAE,iEAAiE;KACjF;IACD;QACI,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,qCAAqC;QAClD,WAAW,EAAE,qBAAqB;KACrC;CACJ,CAAC;AAEF,MAAM,IAAI,GAA2B,YAAY,CAAC;AAElD,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAElD,MAAM,gBAAgB;IAUlB;QATQ,gBAAW,GAOf,EAAE,CAAC;QAGH,gDAAgD;QAChD,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;IACnF,CAAC;IAED,oGAAoG;IACpG,kFAAkF;IAClF,KAAK,CAAC,YAAY,CAAC,gBAAyB,EAAE,UAAmB;QAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QACvD,6CAA6C;QAC7C,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI;YAAE,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;gBAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9G,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,gBAAwB,EAAE,UAAkB;QAC9D,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YACnD,OAAO,SAAS,CAAC,cAAc,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG;YACjC,UAAU;YACV,IAAI,EACA,UAAU;gBACN,EAAE,KAAK,CAAC,GAAG,CAAC;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;YAC9B,QAAQ,EAAE,EAAE;SACf,CAAC;QACF,qCAAqC;QACrC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACtH,GAAG,EAAE,GAAE,CAAC,CACX;YACD,qGAAqG;YACrG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC7D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC;IAC7D,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,GAAW,EAAE,kBAA4B;QACxE,IAAI,CAAC;YACD,MAAM,SAAS,GAAa,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAuB,CAAC,CAAC;YAC5F,KAAK,MAAM,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;gBAChD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACd,CAAC;IAEO,2BAA2B;QAC/B,MAAM,uBAAuB,GAAgC,EAAE,CAAC;QAChE,KAAK,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3E,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACtC,CAAC;gBACD,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;CACJ;AACD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAEhD,MAAM,YAAY,GAAG,KAAK,EAAE,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,qBAAqB,EACD,EAAiC,EAAE;IACvD,sDAAsD;IACtD,MAAM,KAAK,GAAG,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC;IAChD,MAAM,SAAS,GAAG,iBAAiB,EAAE,OAAO,EAAE,SAAS;QACnD,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,qCAAqC,CAAC,uBAAuB,CAAC,CAAC;IACnF,4GAA4G;IAC5G,wEAAwE;IACxE,4GAA4G;IAC5G,MAAM,eAAe,GAAG,qBAAqB,IAAI,2BAA2B,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;IACzG,2GAA2G;IAC3G,6FAA6F;IAC7F,MAAM,MAAM,GACR,CAAC,MAAM,eAAe,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;QAChE,CACI,MAAM,eAAe,CAAC,kBAAkB,CACpC,MAAM,gBAAgB,CAAC,YAAY,CAC/B,6BAA6B,CAAC,WAAiD,CAAC,EAChF,iBAAiB,EAAE,OAAO,EAAE,IAAI,CACnC,CACJ,CACJ,CAAC,OAAO,CAAC;IACd,IAAI,MAAM,EAAE,CAAC;QACT,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,IAAI,qBAAqB;SACxC,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,oBAAoB,CAAC,EAAE,iBAAiB,EAAoD;IACjG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,CAAC;AACpH,CAAC;AAED,eAAe,oBAAoB,CAAC"}
@@ -93,7 +93,7 @@ class UrlsAddressesSet {
93
93
  }
94
94
  }
95
95
  const urlsAddressesSet = new UrlsAddressesSet();
96
- const getChallenge = async ({ challengeSettings, challengeRequestMessage, community }) => {
96
+ const getChallenge = async ({ challengeSettings, challengeRequestMessage, community, authorIdentityMatcher }) => {
97
97
  // add a custom error message to display to the author
98
98
  const error = challengeSettings?.options?.error;
99
99
  const addresses = challengeSettings?.options?.addresses
@@ -104,10 +104,18 @@ const getChallenge = async ({ challengeSettings, challengeRequestMessage, commun
104
104
  const publication = derivePublicationFromChallengeRequest(challengeRequestMessage);
105
105
  // Match on the signer, not on the publisher-controlled author.address: a listed domain only counts when the
106
106
  // publication is signed by the key that domain resolves to (issue #267)
107
- const identityMatcher = createAuthorIdentityMatcher({ community, publication });
108
- const listed = (await identityMatcher.matchesAnyIdentity(addressesSet)) ||
109
- (await identityMatcher.matchesAnyIdentity(await urlsAddressesSet.getAddresses(getCommunityAddressFromRecord(publication), challengeSettings?.options?.urls)));
110
- if (!listed) {
107
+ // Shared across the whole challenge request when core supplies it, so the author's domain is resolved once.
108
+ const identityMatcher = authorIdentityMatcher ?? createAuthorIdentityMatcher({ community, publication });
109
+ const directMatch = await identityMatcher.matchesAnyIdentity(addressesSet);
110
+ const urlMatch = directMatch.matched
111
+ ? directMatch
112
+ : await identityMatcher.matchesAnyIdentity(await urlsAddressesSet.getAddresses(getCommunityAddressFromRecord(publication), challengeSettings?.options?.urls));
113
+ if (!urlMatch.matched) {
114
+ // A whitelisted domain the node could not resolve denies the author something the owner granted them.
115
+ // Say so, instead of letting them read "you're not whitelisted" and conclude they were removed (#353).
116
+ const nameFailure = directMatch.nameFailure ?? urlMatch.nameFailure;
117
+ if (nameFailure)
118
+ return { success: false, error: nameFailure.reason, reason: nameFailure.reason };
111
119
  return {
112
120
  success: false,
113
121
  error: error || `You're not whitelisted.`
@@ -1 +1 @@
1
- {"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../../../../../../../src/runtime/browser/community/challenges/pkc-js-challenges/whitelist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whitelist.js","sourceRoot":"","sources":["../../../../../../../src/runtime/browser/community/challenges/pkc-js-challenges/whitelist.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,48 @@
1
+ import { derivePublicationFromChallengeRequest } from "../../../../util.js";
1
2
  import { getAuthorNameFromWire } from "../../../../publications/publication-author.js";
3
+ import { messages } from "../../../../errors.js";
2
4
  import type { LocalCommunity } from "../local-community.js";
5
+ /** Why a domain identity that named this publication's author failed to verify. Never an impostor. */
6
+ export type NameIdentityFailure = {
7
+ /** The reason to publish to the author if this non-match is what gets their publication rejected. */
8
+ reason: messages;
9
+ /** The underlying resolver error, if any. Node-side only: the wire verification carries `reason` alone. */
10
+ error?: unknown;
11
+ };
12
+ export type IdentityMatchOutcome = {
13
+ matched: true;
14
+ nameFailure?: undefined;
15
+ } | {
16
+ matched: false;
17
+ nameFailure?: NameIdentityFailure;
18
+ };
3
19
  export type AuthorIdentityMatcher = {
4
20
  signerAddress: string;
5
21
  wireName: string | undefined;
6
22
  /** Does `identity` (a key-derived address or a domain) refer to this publication's author? */
7
- matchesIdentity: (identity: string) => Promise<boolean>;
23
+ matchesIdentity: (identity: string) => Promise<IdentityMatchOutcome>;
8
24
  /** Does any of `identities` refer to this publication's author? Resolves the wire name at most once. */
9
- matchesAnyIdentity: (identities: Iterable<string>) => Promise<boolean>;
25
+ matchesAnyIdentity: (identities: Iterable<string>) => Promise<IdentityMatchOutcome>;
10
26
  };
27
+ /**
28
+ * The message a publisher is owed when their author name could not be verified: one remedy per outcome, and
29
+ * one table for both places that classify a resolve, the identity matcher here and `checkAuthorIdentity`, so
30
+ * the two can never disagree about the same failure. `error: null` is the resolvers answering "no record";
31
+ * anything else is whatever the resolve threw. Issue #353.
32
+ */
33
+ export declare function authorNameResolveFailureReason({ error }: {
34
+ error: unknown;
35
+ }): messages;
36
+ /**
37
+ * The matcher for an author nothing can refer to: no signature to derive an identity from, so every configured
38
+ * identity string is a non-match, and a non-match with no `nameFailure` because no name was ever consulted.
39
+ * Answering "no match" beats throwing from deep inside validation or the challenge runner.
40
+ */
41
+ export declare const NO_OP_AUTHOR_IDENTITY_MATCHER: AuthorIdentityMatcher;
42
+ export declare function authorIdentityMatcherForRequest({ community, request }: {
43
+ community: Pick<LocalCommunity, "_clientsManager" | "_pkc">;
44
+ request: Parameters<typeof derivePublicationFromChallengeRequest>[0];
45
+ }): AuthorIdentityMatcher;
11
46
  export declare function createAuthorIdentityMatcher({ community, publication }: {
12
47
  community: Pick<LocalCommunity, "_clientsManager" | "_pkc">;
13
48
  publication: {