@pkcprotocol/pkc-js 0.0.103 → 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.
- package/dist/browser/clients/base-client-manager.d.ts +1 -0
- package/dist/browser/clients/base-client-manager.js +72 -11
- package/dist/browser/clients/base-client-manager.js.map +1 -1
- package/dist/browser/community/community-client-manager.d.ts +3 -0
- package/dist/browser/community/community-client-manager.js +87 -14
- package/dist/browser/community/community-client-manager.js.map +1 -1
- package/dist/browser/community/remote-community.js +3 -0
- package/dist/browser/community/remote-community.js.map +1 -1
- package/dist/browser/community/schema.d.ts +4 -0
- package/dist/browser/community/schema.js +7 -1
- package/dist/browser/community/schema.js.map +1 -1
- package/dist/browser/constants.d.ts +3 -0
- package/dist/browser/constants.js +35 -0
- package/dist/browser/constants.js.map +1 -1
- package/dist/browser/errors.d.ts +5 -1
- package/dist/browser/errors.js +7 -1
- package/dist/browser/errors.js.map +1 -1
- package/dist/browser/generated-version.d.ts +1 -1
- package/dist/browser/generated-version.js +1 -1
- package/dist/browser/index-with-compile-cache.d.ts +2 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/pkc/pkc.d.ts +4 -0
- package/dist/browser/pkc/pkc.js +30 -1
- package/dist/browser/pkc/pkc.js.map +1 -1
- package/dist/browser/pkc-error.d.ts +1 -1
- package/dist/browser/publications/comment/comment-client-manager.js +11 -0
- package/dist/browser/publications/comment/comment-client-manager.js.map +1 -1
- package/dist/browser/publications/comment/comment.js +8 -6
- package/dist/browser/publications/comment/comment.js.map +1 -1
- package/dist/browser/publications/comment/crosspost-runtime.js +3 -2
- package/dist/browser/publications/comment/crosspost-runtime.js.map +1 -1
- package/dist/browser/rpc/src/index.js +6 -0
- package/dist/browser/rpc/src/index.js.map +1 -1
- package/dist/browser/rpc/src/lib/pkc-js/index.d.ts +1 -0
- package/dist/browser/rpc/src/schema.d.ts +6 -0
- package/dist/browser/runtime/node/community/challenges/exclude/exclude.d.ts +11 -1
- package/dist/browser/runtime/node/community/challenges/exclude/exclude.js +32 -21
- package/dist/browser/runtime/node/community/challenges/exclude/exclude.js.map +1 -1
- package/dist/browser/runtime/node/community/challenges/index.d.ts +10 -3
- package/dist/browser/runtime/node/community/challenges/index.js +82 -16
- package/dist/browser/runtime/node/community/challenges/index.js.map +1 -1
- package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/blacklist.js +7 -4
- package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/blacklist.js.map +1 -1
- package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/whitelist.js +13 -5
- package/dist/browser/runtime/node/community/challenges/pkc-js-challenges/whitelist.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/author-identity.d.ts +37 -2
- package/dist/browser/runtime/node/community/local-community/author-identity.js +73 -13
- package/dist/browser/runtime/node/community/local-community/author-identity.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/challenges.d.ts +16 -2
- package/dist/browser/runtime/node/community/local-community/challenges.js +40 -9
- package/dist/browser/runtime/node/community/local-community/challenges.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/editing.js +7 -2
- package/dist/browser/runtime/node/community/local-community/editing.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/publication-store.d.ts +13 -2
- package/dist/browser/runtime/node/community/local-community/publication-store.js +29 -7
- package/dist/browser/runtime/node/community/local-community/publication-store.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/publication-validation.d.ts +13 -3
- package/dist/browser/runtime/node/community/local-community/publication-validation.js +60 -27
- package/dist/browser/runtime/node/community/local-community/publication-validation.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community.d.ts +2 -2
- package/dist/browser/runtime/node/community/local-community.js +6 -4
- package/dist/browser/runtime/node/community/local-community.js.map +1 -1
- package/dist/browser/schema.d.ts +8 -0
- package/dist/browser/types.d.ts +1 -0
- package/dist/bundled/bundle-manifest.json +32 -32
- package/dist/bundled/chunks/{helia-for-pkc-BqRIFXGX.js → helia-for-pkc-CQM2gwO-.js} +2 -2
- package/dist/bundled/chunks/{local-community-mF7g4deD.js → local-community-CaK2PibY.js} +1 -1
- package/dist/bundled/chunks/{local-community-D0dqj6lQ.js → local-community-Cad8EnIh.js} +159 -60
- package/dist/bundled/chunks/{node--l7gxhms.js → node-C6LbmJAq.js} +19 -8
- package/dist/bundled/chunks/{rpc-local-community-C3o1AzHp.js → rpc-local-community-Dciiw7xH.js} +275 -103
- package/dist/bundled/chunks/{schema-MeRr3oiN.js → schema-CRAfzWYa.js} +8 -3
- package/dist/bundled/chunks/{util-CjRKlVEE.js → util-BWhDfSw9.js} +1 -1
- package/dist/bundled/index.js +1 -1
- package/dist/bundled/rpc/src/index.js +9 -4
- package/dist/node/clients/base-client-manager.d.ts +1 -0
- package/dist/node/clients/base-client-manager.js +72 -11
- package/dist/node/clients/base-client-manager.js.map +1 -1
- package/dist/node/community/community-client-manager.d.ts +3 -0
- package/dist/node/community/community-client-manager.js +87 -14
- package/dist/node/community/community-client-manager.js.map +1 -1
- package/dist/node/community/remote-community.js +3 -0
- package/dist/node/community/remote-community.js.map +1 -1
- package/dist/node/community/schema.d.ts +4 -0
- package/dist/node/community/schema.js +7 -1
- package/dist/node/community/schema.js.map +1 -1
- package/dist/node/constants.d.ts +3 -0
- package/dist/node/constants.js +35 -0
- package/dist/node/constants.js.map +1 -1
- package/dist/node/errors.d.ts +5 -1
- package/dist/node/errors.js +7 -1
- package/dist/node/errors.js.map +1 -1
- package/dist/node/generated-version.d.ts +1 -1
- package/dist/node/generated-version.js +1 -1
- package/dist/node/index-with-compile-cache.d.ts +2 -0
- package/dist/node/index.d.ts +2 -0
- package/dist/node/pkc/pkc.d.ts +4 -0
- package/dist/node/pkc/pkc.js +30 -1
- package/dist/node/pkc/pkc.js.map +1 -1
- package/dist/node/pkc-error.d.ts +1 -1
- package/dist/node/publications/comment/comment-client-manager.js +11 -0
- package/dist/node/publications/comment/comment-client-manager.js.map +1 -1
- package/dist/node/publications/comment/comment.js +8 -6
- package/dist/node/publications/comment/comment.js.map +1 -1
- package/dist/node/publications/comment/crosspost-runtime.js +3 -2
- package/dist/node/publications/comment/crosspost-runtime.js.map +1 -1
- package/dist/node/rpc/src/index.js +6 -0
- package/dist/node/rpc/src/index.js.map +1 -1
- package/dist/node/rpc/src/lib/pkc-js/index.d.ts +1 -0
- package/dist/node/rpc/src/schema.d.ts +6 -0
- package/dist/node/runtime/node/community/challenges/exclude/exclude.d.ts +11 -1
- package/dist/node/runtime/node/community/challenges/exclude/exclude.js +32 -21
- package/dist/node/runtime/node/community/challenges/exclude/exclude.js.map +1 -1
- package/dist/node/runtime/node/community/challenges/index.d.ts +10 -3
- package/dist/node/runtime/node/community/challenges/index.js +82 -16
- package/dist/node/runtime/node/community/challenges/index.js.map +1 -1
- package/dist/node/runtime/node/community/challenges/pkc-js-challenges/blacklist.js +7 -4
- package/dist/node/runtime/node/community/challenges/pkc-js-challenges/blacklist.js.map +1 -1
- package/dist/node/runtime/node/community/challenges/pkc-js-challenges/whitelist.js +13 -5
- package/dist/node/runtime/node/community/challenges/pkc-js-challenges/whitelist.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/author-identity.d.ts +37 -2
- package/dist/node/runtime/node/community/local-community/author-identity.js +73 -13
- package/dist/node/runtime/node/community/local-community/author-identity.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/challenges.d.ts +16 -2
- package/dist/node/runtime/node/community/local-community/challenges.js +40 -9
- package/dist/node/runtime/node/community/local-community/challenges.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/editing.js +7 -2
- package/dist/node/runtime/node/community/local-community/editing.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/publication-store.d.ts +13 -2
- package/dist/node/runtime/node/community/local-community/publication-store.js +29 -7
- package/dist/node/runtime/node/community/local-community/publication-store.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/publication-validation.d.ts +13 -3
- package/dist/node/runtime/node/community/local-community/publication-validation.js +60 -27
- package/dist/node/runtime/node/community/local-community/publication-validation.js.map +1 -1
- package/dist/node/runtime/node/community/local-community.d.ts +2 -2
- package/dist/node/runtime/node/community/local-community.js +6 -4
- package/dist/node/runtime/node/community/local-community.js.map +1 -1
- package/dist/node/schema.d.ts +8 -0
- package/dist/node/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,17 +1,67 @@
|
|
|
1
1
|
import Logger from "../../../../logger.js";
|
|
2
|
-
import { isStringDomain } from "../../../../util.js";
|
|
2
|
+
import { derivePublicationFromChallengeRequest, isStringDomain } from "../../../../util.js";
|
|
3
3
|
import { getPKCAddressFromPublicKeySync } from "../../../../signer/util.js";
|
|
4
4
|
import { getAuthorNameFromWire } from "../../../../publications/publication-author.js";
|
|
5
|
+
import { PKCError } from "../../../../pkc-error.js";
|
|
6
|
+
import { messages } from "../../../../errors.js";
|
|
7
|
+
const NO_MATCH = { matched: false };
|
|
8
|
+
const MATCH = { matched: true };
|
|
9
|
+
/**
|
|
10
|
+
* The message a publisher is owed when their author name could not be verified: one remedy per outcome, and
|
|
11
|
+
* one table for both places that classify a resolve, the identity matcher here and `checkAuthorIdentity`, so
|
|
12
|
+
* the two can never disagree about the same failure. `error: null` is the resolvers answering "no record";
|
|
13
|
+
* anything else is whatever the resolve threw. Issue #353.
|
|
14
|
+
*/
|
|
15
|
+
export function authorNameResolveFailureReason({ error }) {
|
|
16
|
+
// The resolvers answered and there is no record. Definitive, and the publisher's to fix.
|
|
17
|
+
if (error === null)
|
|
18
|
+
return messages.ERR_AUTHOR_NAME_HAS_NO_RECORD;
|
|
19
|
+
const code = error instanceof PKCError ? error.code : undefined;
|
|
20
|
+
if (code === "ERR_NO_RESOLVER_FOR_NAME")
|
|
21
|
+
return messages.ERR_COMMUNITY_HAS_NO_RESOLVER_FOR_AUTHOR_NAME_TLD;
|
|
22
|
+
if (code === "ERR_RESOLVED_TEXT_RECORD_TO_NON_IPNS")
|
|
23
|
+
return messages.ERR_AUTHOR_NAME_RECORD_IS_NOT_A_VALID_KEY;
|
|
24
|
+
// ERR_ALL_NAME_RESOLVERS_FAILED, an abort/timeout, or anything unexpected: we never got an answer.
|
|
25
|
+
return messages.ERR_COMMUNITY_FAILED_TO_RESOLVE_AUTHOR_NAME;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The matcher for an author nothing can refer to: no signature to derive an identity from, so every configured
|
|
29
|
+
* identity string is a non-match, and a non-match with no `nameFailure` because no name was ever consulted.
|
|
30
|
+
* Answering "no match" beats throwing from deep inside validation or the challenge runner.
|
|
31
|
+
*/
|
|
32
|
+
export const NO_OP_AUTHOR_IDENTITY_MATCHER = {
|
|
33
|
+
signerAddress: "",
|
|
34
|
+
wireName: undefined,
|
|
35
|
+
matchesIdentity: async () => NO_MATCH,
|
|
36
|
+
matchesAnyIdentity: async () => NO_MATCH
|
|
37
|
+
};
|
|
38
|
+
// The matcher for a challenge request's publication. Production builds one per request in
|
|
39
|
+
// handleChallengeRequest and threads it through, so the author's domain is resolved at most once (issue
|
|
40
|
+
// #354); this is the fallback for a standalone caller that has a request but not that matcher.
|
|
41
|
+
//
|
|
42
|
+
// A real exchange has verified the publication's signature long before anything asks about identity, so the
|
|
43
|
+
// signer is always derivable. A caller passing a publication mock without one gets a matcher that never
|
|
44
|
+
// matches: nothing can refer to an author we cannot identify, and answering "no match" beats throwing from
|
|
45
|
+
// deep inside validation or the challenge runner.
|
|
46
|
+
export function authorIdentityMatcherForRequest({ community, request }) {
|
|
47
|
+
const publication = derivePublicationFromChallengeRequest(request);
|
|
48
|
+
if (typeof publication?.signature?.publicKey !== "string")
|
|
49
|
+
return NO_OP_AUTHOR_IDENTITY_MATCHER;
|
|
50
|
+
return createAuthorIdentityMatcher({
|
|
51
|
+
community,
|
|
52
|
+
publication: publication
|
|
53
|
+
});
|
|
54
|
+
}
|
|
5
55
|
export function createAuthorIdentityMatcher({ community, publication }) {
|
|
6
56
|
const log = Logger("pkc-js:local-community:author-identity");
|
|
7
57
|
const signerAddress = getPKCAddressFromPublicKeySync(publication.signature.publicKey);
|
|
8
58
|
const wireName = getAuthorNameFromWire(publication.author);
|
|
9
|
-
let
|
|
59
|
+
let nameOutcomePromise;
|
|
10
60
|
const nameResolvesToSigner = () => {
|
|
11
61
|
if (!wireName || !isStringDomain(wireName))
|
|
12
|
-
return Promise.resolve(
|
|
13
|
-
if (!
|
|
14
|
-
|
|
62
|
+
return Promise.resolve(NO_MATCH);
|
|
63
|
+
if (!nameOutcomePromise)
|
|
64
|
+
nameOutcomePromise = (async () => {
|
|
15
65
|
try {
|
|
16
66
|
const { resolvedAuthorName } = await community._clientsManager.resolveAuthorNameIfNeeded({
|
|
17
67
|
authorName: wireName,
|
|
@@ -19,31 +69,41 @@ export function createAuthorIdentityMatcher({ community, publication }) {
|
|
|
19
69
|
// Identity grants authority (role, owner exclude, whitelist), so it must reflect current state: bypass cache.
|
|
20
70
|
cache: { maxAge: 0 }
|
|
21
71
|
});
|
|
22
|
-
|
|
72
|
+
if (resolvedAuthorName === signerAddress)
|
|
73
|
+
return MATCH;
|
|
74
|
+
if (resolvedAuthorName === null) {
|
|
75
|
+
log("Author name has no record while matching identity", wireName);
|
|
76
|
+
return { matched: false, nameFailure: { reason: authorNameResolveFailureReason({ error: null }) } };
|
|
77
|
+
}
|
|
78
|
+
// Resolved to somebody else: an impostor claiming a listed domain. No explanation is owed.
|
|
79
|
+
return NO_MATCH;
|
|
23
80
|
}
|
|
24
81
|
catch (e) {
|
|
25
|
-
log("Failed to resolve author name while matching identity,
|
|
26
|
-
return false;
|
|
82
|
+
log("Failed to resolve author name while matching identity", wireName, e instanceof PKCError ? e.code : undefined, e);
|
|
83
|
+
return { matched: false, nameFailure: { reason: authorNameResolveFailureReason({ error: e }), error: e } };
|
|
27
84
|
}
|
|
28
85
|
})();
|
|
29
|
-
return
|
|
86
|
+
return nameOutcomePromise;
|
|
30
87
|
};
|
|
31
88
|
const matchesIdentity = async (identity) => {
|
|
32
89
|
if (!isStringDomain(identity))
|
|
33
|
-
return identity === signerAddress;
|
|
90
|
+
return identity === signerAddress ? MATCH : NO_MATCH;
|
|
34
91
|
if (identity !== wireName)
|
|
35
|
-
return
|
|
92
|
+
return NO_MATCH;
|
|
36
93
|
return nameResolvesToSigner();
|
|
37
94
|
};
|
|
38
95
|
const matchesAnyIdentity = async (identities) => {
|
|
39
96
|
let nameListed = false;
|
|
97
|
+
// Key comparison first and in full: it is free, while a domain identity costs a fresh network resolve
|
|
98
|
+
// with maxAge 0. A moderator listed under both their public key and their domain must never pay for the
|
|
99
|
+
// domain lookup, and must stay authorized while the resolver is down. See issue #354.
|
|
40
100
|
for (const identity of identities) {
|
|
41
101
|
if (identity === signerAddress)
|
|
42
|
-
return
|
|
102
|
+
return MATCH;
|
|
43
103
|
if (wireName && identity === wireName)
|
|
44
104
|
nameListed = true;
|
|
45
105
|
}
|
|
46
|
-
return nameListed ? nameResolvesToSigner() :
|
|
106
|
+
return nameListed ? nameResolvesToSigner() : NO_MATCH;
|
|
47
107
|
};
|
|
48
108
|
return { signerAddress, wireName, matchesIdentity, matchesAnyIdentity };
|
|
49
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"author-identity.js","sourceRoot":"","sources":["../../../../../../src/runtime/node/community/local-community/author-identity.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"author-identity.js","sourceRoot":"","sources":["../../../../../../src/runtime/node/community/local-community/author-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,27 @@ import type { Challenge } from "../../../../community/types.js";
|
|
|
3
3
|
import type { ChallengeAnswerMessageType, ChallengeRequestMessageType, ChallengeVerificationMessageType, DecryptedChallengeRequest, DecryptedChallengeRequestMessageType, DecryptedChallengeRequestMessageTypeWithCommunityAuthor, DecryptedChallengeVerification, DecryptedChallengeVerificationMessageType, PublicationFromDecryptedChallengeRequest, PublicationWithCommunityAuthorFromDecryptedChallengeRequest } from "../../../../pubsub-messages/types.js";
|
|
4
4
|
import type { IpfsHttpClientPubsubMessage } from "../../../../types.js";
|
|
5
5
|
import type { LocalCommunity } from "../local-community.js";
|
|
6
|
+
import type { AuthorIdentityMatcher } from "./author-identity.js";
|
|
6
7
|
export declare function cleanUpChallengeAnswerPromise(community: LocalCommunity, challengeRequestIdString: string): void;
|
|
7
8
|
export declare function decryptOrRespondWithFailure(community: LocalCommunity, request: ChallengeRequestMessageType | ChallengeAnswerMessageType): Promise<string>;
|
|
8
9
|
export declare function publishChallenges(community: LocalCommunity, challenges: Omit<Challenge, "verify">[], request: DecryptedChallengeRequestMessageTypeWithCommunityAuthor): Promise<void>;
|
|
9
10
|
export declare function publishFailedChallengeVerification(community: LocalCommunity, result: Pick<ChallengeVerificationMessageType, "challengeErrors" | "reason">, challengeRequestId: ChallengeRequestMessageType["challengeRequestId"]): Promise<void>;
|
|
10
11
|
export declare function publishIdempotentDuplicateVerification(community: LocalCommunity, request: DecryptedChallengeRequestMessageType, challengeRequestId: ChallengeRequestMessageType["challengeRequestId"], duplicateReason: string): Promise<void>;
|
|
11
|
-
export declare function storePublicationAndEncryptForChallengeVerification(community
|
|
12
|
-
|
|
12
|
+
export declare function storePublicationAndEncryptForChallengeVerification({ community, request, pendingApproval, challengeAggregate, authorIdentityMatcher }: {
|
|
13
|
+
community: LocalCommunity;
|
|
14
|
+
request: DecryptedChallengeRequestMessageType;
|
|
15
|
+
pendingApproval?: boolean;
|
|
16
|
+
challengeAggregate?: ChallengeResultAggregate;
|
|
17
|
+
authorIdentityMatcher?: AuthorIdentityMatcher;
|
|
18
|
+
}): Promise<(DecryptedChallengeVerification & Required<Pick<DecryptedChallengeVerificationMessageType, "encrypted">>) | undefined>;
|
|
19
|
+
export declare function publishChallengeVerification({ community, challengeResult, request, pendingApproval, challengeAggregate, authorIdentityMatcher }: {
|
|
20
|
+
community: LocalCommunity;
|
|
21
|
+
challengeResult: Pick<ChallengeVerificationMessageType, "challengeErrors" | "challengeSuccess" | "reason">;
|
|
22
|
+
request: DecryptedChallengeRequestMessageType;
|
|
23
|
+
pendingApproval?: boolean;
|
|
24
|
+
challengeAggregate?: ChallengeResultAggregate;
|
|
25
|
+
authorIdentityMatcher?: AuthorIdentityMatcher;
|
|
26
|
+
}): Promise<void>;
|
|
13
27
|
export declare function parseChallengeRequestPublicationOrRespondWithFailure(community: LocalCommunity, request: ChallengeRequestMessageType, decryptedRawString: string): Promise<DecryptedChallengeRequest>;
|
|
14
28
|
export declare function buildRuntimeChallengeRequestPublication({ publication, authorCommunity }: {
|
|
15
29
|
publication: PublicationFromDecryptedChallengeRequest;
|
|
@@ -20,6 +20,7 @@ import { DUPLICATE_PUBLICATION_ERRORS } from "./defaults.js";
|
|
|
20
20
|
import { challengeExchangePubsubTopic } from "./comment-updates.js";
|
|
21
21
|
import { storePublication } from "./publication-store.js";
|
|
22
22
|
import { checkPublicationValidity, respondWithErrorIfSignatureOfPublicationIsInvalid } from "./publication-validation.js";
|
|
23
|
+
import { createAuthorIdentityMatcher } from "./author-identity.js";
|
|
23
24
|
export function cleanUpChallengeAnswerPromise(community, challengeRequestIdString) {
|
|
24
25
|
community._challengeAnswerPromises.delete(challengeRequestIdString);
|
|
25
26
|
community._challengeAnswerResolveReject.delete(challengeRequestIdString);
|
|
@@ -162,8 +163,14 @@ export async function publishIdempotentDuplicateVerification(community, request,
|
|
|
162
163
|
delete community._challengeExchangesFromLocalPublishers[challengeRequestId.toString()];
|
|
163
164
|
cleanUpChallengeAnswerPromise(community, challengeRequestId.toString());
|
|
164
165
|
}
|
|
165
|
-
export async function storePublicationAndEncryptForChallengeVerification(community, request, pendingApproval, challengeAggregate) {
|
|
166
|
-
const commentAfterAddingToIpfs = await storePublication(
|
|
166
|
+
export async function storePublicationAndEncryptForChallengeVerification({ community, request, pendingApproval, challengeAggregate, authorIdentityMatcher }) {
|
|
167
|
+
const commentAfterAddingToIpfs = await storePublication({
|
|
168
|
+
community,
|
|
169
|
+
request,
|
|
170
|
+
pendingApproval,
|
|
171
|
+
challengeAggregate,
|
|
172
|
+
authorIdentityMatcher
|
|
173
|
+
});
|
|
167
174
|
if (!commentAfterAddingToIpfs)
|
|
168
175
|
return undefined;
|
|
169
176
|
const authorSignerAddress = await getPKCAddressFromPublicKey(commentAfterAddingToIpfs.comment.signature.publicKey);
|
|
@@ -194,7 +201,7 @@ export async function storePublicationAndEncryptForChallengeVerification(communi
|
|
|
194
201
|
const encrypted = await encryptEd25519AesGcmPublicKeyBuffer(deterministicStringify(toEncrypt), community.signer.privateKey, request.signature.publicKey);
|
|
195
202
|
return { ...toEncrypt, encrypted };
|
|
196
203
|
}
|
|
197
|
-
export async function publishChallengeVerification(community, challengeResult, request, pendingApproval, challengeAggregate) {
|
|
204
|
+
export async function publishChallengeVerification({ community, challengeResult, request, pendingApproval, challengeAggregate, authorIdentityMatcher }) {
|
|
198
205
|
const log = Logger("pkc-js:local-community:_publishChallengeVerification");
|
|
199
206
|
if (!challengeResult.challengeSuccess)
|
|
200
207
|
return publishFailedChallengeVerification(community, challengeResult, request.challengeRequestId);
|
|
@@ -204,7 +211,13 @@ export async function publishChallengeVerification(community, challengeResult, r
|
|
|
204
211
|
let failureReason;
|
|
205
212
|
let toEncrypt;
|
|
206
213
|
try {
|
|
207
|
-
toEncrypt = await storePublicationAndEncryptForChallengeVerification(
|
|
214
|
+
toEncrypt = await storePublicationAndEncryptForChallengeVerification({
|
|
215
|
+
community,
|
|
216
|
+
request,
|
|
217
|
+
pendingApproval,
|
|
218
|
+
challengeAggregate,
|
|
219
|
+
authorIdentityMatcher
|
|
220
|
+
});
|
|
208
221
|
}
|
|
209
222
|
catch (e) {
|
|
210
223
|
const error = e;
|
|
@@ -378,7 +391,14 @@ async function validatePublicationOrRespondWithFailure({ community, decryptedReq
|
|
|
378
391
|
request: decryptedRequestMsg,
|
|
379
392
|
authorCommunity: communityAuthor
|
|
380
393
|
});
|
|
381
|
-
const
|
|
394
|
+
const authorIdentityMatcher = createAuthorIdentityMatcher({ community, publication });
|
|
395
|
+
const publicationInvalidityReason = await checkPublicationValidity({
|
|
396
|
+
community,
|
|
397
|
+
request: decryptedRequestMsg,
|
|
398
|
+
publication,
|
|
399
|
+
authorCommunity: communityAuthor,
|
|
400
|
+
authorIdentityMatcher
|
|
401
|
+
});
|
|
382
402
|
if (publicationInvalidityReason) {
|
|
383
403
|
if (DUPLICATE_PUBLICATION_ERRORS.has(publicationInvalidityReason)) {
|
|
384
404
|
const sig = publication.signature.signature;
|
|
@@ -395,11 +415,11 @@ async function validatePublicationOrRespondWithFailure({ community, decryptedReq
|
|
|
395
415
|
await publishFailedChallengeVerification(community, { reason: publicationInvalidityReason }, decryptedRequestMsg.challengeRequestId);
|
|
396
416
|
return undefined;
|
|
397
417
|
}
|
|
398
|
-
return { decryptedRequestMsg, decryptedRequestWithCommunityAuthor, publication, communityAuthor };
|
|
418
|
+
return { decryptedRequestMsg, decryptedRequestWithCommunityAuthor, publication, communityAuthor, authorIdentityMatcher };
|
|
399
419
|
}
|
|
400
420
|
// Runs the challenge exchange (challenges -> answers) for the request, returning the verification result.
|
|
401
421
|
async function runChallengeExchangeIfNeeded(community, parsed, log) {
|
|
402
|
-
const { decryptedRequestWithCommunityAuthor } = parsed;
|
|
422
|
+
const { decryptedRequestWithCommunityAuthor, authorIdentityMatcher } = parsed;
|
|
403
423
|
const answerPromiseKey = decryptedRequestWithCommunityAuthor.challengeRequestId.toString();
|
|
404
424
|
const getChallengeAnswers = async (challenges) => {
|
|
405
425
|
// ...get challenge answers from user. e.g.:
|
|
@@ -438,7 +458,8 @@ async function runChallengeExchangeIfNeeded(community, parsed, log) {
|
|
|
438
458
|
challengeVerification = await getChallengeVerification({
|
|
439
459
|
challengeRequestMessage: decryptedRequestWithCommunityAuthor,
|
|
440
460
|
community,
|
|
441
|
-
getChallengeAnswers
|
|
461
|
+
getChallengeAnswers,
|
|
462
|
+
authorIdentityMatcher
|
|
442
463
|
});
|
|
443
464
|
}
|
|
444
465
|
catch (e) {
|
|
@@ -475,7 +496,17 @@ async function runVerificationAndStorePublication(community, parsed, challengeVe
|
|
|
475
496
|
challengeErrors: challengeVerification.challengeErrors,
|
|
476
497
|
reason: challengeVerification.reason ?? challengeVerification.aggregatedReason
|
|
477
498
|
};
|
|
478
|
-
await publishChallengeVerification(
|
|
499
|
+
await publishChallengeVerification({
|
|
500
|
+
community,
|
|
501
|
+
challengeResult: challengeResultForPublish,
|
|
502
|
+
request: parsed.decryptedRequestMsg,
|
|
503
|
+
pendingApproval: challengeVerification.pendingApproval,
|
|
504
|
+
challengeAggregate: aggregate,
|
|
505
|
+
// Storing happens after the author answered, which can be minutes after validation resolved their
|
|
506
|
+
// name. Use the matcher rebuilt at the round-trip when there was one; when the exchange needed no
|
|
507
|
+
// challenge at all, no wall-clock time passed and the original still holds. Issues #353, #354.
|
|
508
|
+
authorIdentityMatcher: challengeVerification.postAnswerAuthorIdentityMatcher ?? parsed.authorIdentityMatcher
|
|
509
|
+
});
|
|
479
510
|
}
|
|
480
511
|
export async function handleChallengeRequest(community, request, isLocalPublisher) {
|
|
481
512
|
const log = Logger("pkc-js:local-community:handleChallengeRequest");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"challenges.js","sourceRoot":"","sources":["../../../../../../src/runtime/node/community/local-community/challenges.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"challenges.js","sourceRoot":"","sources":["../../../../../../src/runtime/node/community/local-community/challenges.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,10 @@ export async function parseRolesToEdit(community, newRawRoles) {
|
|
|
31
31
|
// Use community._clientsManager (not community._pkc) so nameResolver state changes emit on the community's clients
|
|
32
32
|
if (isStringDomain(roleAddress)) {
|
|
33
33
|
let resolved;
|
|
34
|
+
// Kept so the owner learns which of the four things went wrong. The code stays
|
|
35
|
+
// ERR_ROLE_ADDRESS_NAME_COULD_NOT_BE_RESOLVED, which is already the right classification for an
|
|
36
|
+
// owner-facing edit; what was missing is the cause, not the classification. Issue #353.
|
|
37
|
+
let resolveError;
|
|
34
38
|
try {
|
|
35
39
|
({ resolvedAuthorName: resolved } = await community._clientsManager.resolveAuthorNameIfNeeded({
|
|
36
40
|
authorName: roleAddress,
|
|
@@ -39,11 +43,12 @@ export async function parseRolesToEdit(community, newRawRoles) {
|
|
|
39
43
|
cache: { maxAge: 0 }
|
|
40
44
|
}));
|
|
41
45
|
}
|
|
42
|
-
catch {
|
|
46
|
+
catch (e) {
|
|
43
47
|
resolved = null;
|
|
48
|
+
resolveError = e;
|
|
44
49
|
}
|
|
45
50
|
if (!resolved)
|
|
46
|
-
throw new PKCError("ERR_ROLE_ADDRESS_NAME_COULD_NOT_BE_RESOLVED", { roleAddress });
|
|
51
|
+
throw new PKCError("ERR_ROLE_ADDRESS_NAME_COULD_NOT_BE_RESOLVED", { roleAddress, resolveError });
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
return omitBy(newRawRoles, (val, key) => val === undefined || val === null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editing.js","sourceRoot":"","sources":["../../../../../../src/runtime/node/community/local-community/editing.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,SAAS,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1H,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,oDAAoD,EAAE,MAAM,mCAAmC,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAChH,OAAO,EAAE,mDAAmD,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAQlG,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAA6B,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,2CAA2C,EAAE,MAAM,eAAe,CAAC;AAEnG,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,SAAyB,EAAE,UAAkB,EAAE,UAAkB;IACrH,MAAM,GAAG,GAAG,MAAM,CAAC,2DAA2D,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;IACpE,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,cAAc;IACtF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,CAAC,CAAC,mBAAmB;QAChC,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,SAAyB,EACzB,WAAuD;IAEvD,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;YAAE,SAAS,CAAC,gBAAgB;QAC7E,mHAAmH;QACnH,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,IAAI,QAAuB,CAAC;YAC5B,IAAI,CAAC;gBACD,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,yBAAyB,CAAC;oBAC1F,UAAU,EAAE,WAAW;oBACvB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;oBACjF,yDAAyD;oBACzD,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;iBACvB,CAAC,CAAC,CAAC;YACR,CAAC;YAAC,
|
|
1
|
+
{"version":3,"file":"editing.js","sourceRoot":"","sources":["../../../../../../src/runtime/node/community/local-community/editing.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,SAAS,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,+BAA+B,EAAE,kCAAkC,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1H,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,oDAAoD,EAAE,MAAM,mCAAmC,CAAC;AACzG,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAChH,OAAO,EAAE,mDAAmD,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,kCAAkC,EAAE,MAAM,8CAA8C,CAAC;AAQlG,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAA6B,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACpH,OAAO,EAAE,qBAAqB,EAAE,2CAA2C,EAAE,MAAM,eAAe,CAAC;AAEnG,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,SAAyB,EAAE,UAAkB,EAAE,UAAkB;IACrH,MAAM,GAAG,GAAG,MAAM,CAAC,2DAA2D,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;IACpE,IAAI,CAAC;QACD,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,cAAc;IACtF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,CAAC,CAAC,mBAAmB;QAChC,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,SAAyB,EACzB,WAAuD;IAEvD,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;YAAE,SAAS,CAAC,gBAAgB;QAC7E,mHAAmH;QACnH,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,IAAI,QAAuB,CAAC;YAC5B,+EAA+E;YAC/E,gGAAgG;YAChG,wFAAwF;YACxF,IAAI,YAAqB,CAAC;YAC1B,IAAI,CAAC;gBACD,CAAC,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,yBAAyB,CAAC;oBAC1F,UAAU,EAAE,WAAW;oBACvB,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;oBACjF,yDAAyD;oBACzD,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;iBACvB,CAAC,CAAC,CAAC;YACR,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,QAAQ,GAAG,IAAI,CAAC;gBAChB,YAAY,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,QAAQ,CAAC,6CAA6C,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;QACpH,CAAC;IACL,CAAC;IACD,OAAgD,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;AACzH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,SAAyB,EACzB,oBAA8F;IAE9F,wGAAwG;IACxG,0FAA0F;IAC1F,MAAM,kCAAkC,CAAC;QACrC,iBAAiB,EAAE,oBAAoB;QACvC,GAAG,EAAE,SAAS,CAAC,IAAI;QACnB,gBAAgB,EAAE,SAAS,CAAC,OAAO;KACtC,CAAC,CAAC;IACH,OAAO;QACH,UAAU,EAAE,MAAM,OAAO,CAAC,GAAG,CACzB,oBAAoB,CAAC,GAAG,CACpB,KAAK,EAAE,EAAE,EAAE,EAAE,CACT,CAAC,MAAM,mDAAmD,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;aAC/G,kBAAkB,CAC9B,CACJ;QACD,sBAAsB,EAAE,2BAA2B,CAAC,oBAAoB,CAAC;KAC5E,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,SAAyB,EAAE,UAAkB,EAAE,GAAW;IAC5G,IAAI,kCAAkC,CAAC,UAAU,CAAC;QAC9C,MAAM,IAAI,QAAQ,CAAC,uCAAuC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;IAClG,0FAA0F;IAC1F,kEAAkE;IAClE,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CACtD,CAAC,QAAQ,EAAE,EAAE,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CACvI,CAAC;IACF,IAAI,kBAAkB;QAClB,MAAM,IAAI,QAAQ,CAAC,oEAAoE,EAAE;YACrF,uBAAuB,EAAE,SAAS,CAAC,OAAO;YAC1C,mBAAmB,EAAE,UAAU;YAC/B,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW;SAC1C,CAAC,CAAC;IACP,SAAS,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAa,EAAE,EAAE;QACzE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACf,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC7C,SAAyB,EACzB,iBAA6C;IAE7C,4DAA4D;IAC5D,sEAAsE;IACtE,MAAM,GAAG,GAAG,MAAM,CAAC,0DAA0D,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,OAAO,iBAAiB,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnG,MAAM,+BAA+B,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEjF,GAAG,CAAC,6CAA6C,UAAU,OAAO,iBAAiB,CAAC,OAAO,gCAAgC,CAAC,CAAC;QAC7H,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACnF,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,iCAAiC,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvE,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAEjF,IAAI,SAAS,CAAC,SAAS;QACnB,MAAM,SAAS,CAAC,4CAA4C,CAAC;YACzD,GAAG,SAAS,CAAC,8BAA8B,EAAE;YAC7C,GAAG,iBAAiB;YACpB,sBAAsB,EAAE,YAAY;SACvC,CAAC,CAAC;;QAEH,MAAM,SAAS,CAAC,6CAA6C,CAAC;YAC1D,GAAG,SAAS,CAAC,+BAA+B,EAAE;YAC9C,GAAG,iBAAiB;YACpB,sBAAsB,EAAE,YAAY;SACvC,CAAC,CAAC;IACP,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACzC,GAAG,CACC,cAAc,SAAS,CAAC,OAAO,YAAY,IAAI,CAAC,iBAAiB,CAAC,oEAAoE,EACtI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAC3C,CAAC;IACF,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpC,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACnC,qBAAqB,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACjD,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAChD,SAAyB,EACzB,iBAA6C;IAE7C,sGAAsG;IACtG,MAAM,GAAG,GAAG,MAAM,CAAC,4DAA4D,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,CAAC,qBAAqB,EAAE,CAAC;IACxC,MAAM,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC5C,IAAI,OAAO,iBAAiB,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnG,MAAM,+BAA+B,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEjF,GAAG,CAAC,6CAA6C,UAAU,OAAO,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAE/F,0EAA0E;QAC1E,GAAG,CAAC,2BAA2B,EAAE,SAAS,CAAC,OAAO,EAAE,mEAAmE,CAAC,CAAC;QACzH,MAAM,iCAAiC,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjG,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1F,MAAM,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC5C,SAAS,CAAC,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAEtF,IAAI,WAAW,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,SAAS;QACnE,MAAM,SAAS,CAAC,4CAA4C,CAAC,mBAAmB,CAAC,CAAC;;QACjF,MAAM,SAAS,CAAC,6CAA6C,CAAC,mBAAmB,CAAC,CAAC;IACxF,MAAM,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;IAC/C,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,SAAyB,EAAE,mBAAyC;IAC3F,aAAa;IACb,qJAAqJ;IACrJ,qFAAqF;IACrF,oFAAoF;IACpF,yFAAyF;IAEzF,MAAM,gBAAgB,GAA+B,CACjD,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QAC3F,2BAA2B,CAAC,SAAS,CAAC,CAAC,CAC9C,CAAC;IACF,IAAI,gBAAgB,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACpD,cAAc;QACd,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEjE,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,2DAA2D;QAClG,MAAM,2CAA2C,CAAC,SAAS,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,CAAC,qBAAqB,EAAE,CAAC;IACxC,MAAM,SAAS,CAAC,mBAAmB,EAAE,CAAC;IACtC,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrD,cAAc;QACd,SAAS,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,IAAI,QAAQ,CAAC,+EAA+E,EAAE;YAChG,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ;SACpC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,iBAAiB,GAAG,oDAAoD,CAAC,mBAAmB,CAAC,CAAC;IAEpG,kFAAkF;IAClF,MAAM,mBAAmB,GACrB,OAAO,iBAAiB,CAAC,OAAO,KAAK,QAAQ,IAAI,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;QACtF,CAAC,CAAC,EAAE,GAAG,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,CAAC,OAAO,EAAE;QAC3D,CAAC,CAAC,iBAAiB,CAAC;IAE5B,MAAM,gBAAgB,GAAyG;QAC3H,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,GAAG,CAAC,mBAAmB,EAAE,QAAQ,EAAE,UAAU;YACzC,CAAC,CAAC,MAAM,qBAAqB,CAAC,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC;YACjF,CAAC,CAAC,SAAS,CAAC;KACnB,CAAC;IAEF,MAAM,QAAQ,GAA+B;QACzC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,mCAAmC;QAC5E,GAAG,gBAAgB;KACtB,CAAC;IAEF,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,cAAc;QACd,OAAO,8BAA8B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,oBAAoB,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/G,cAAc;QACd,OAAO,2BAA2B,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AuthorIdentityMatcher } from "./author-identity.js";
|
|
1
2
|
import type { CommentEditPubsubMessagePublication } from "../../../../publications/comment-edit/types.js";
|
|
2
3
|
import type { CommentIpfsType, CommentPubsubMessagePublication, CommentUpdateType, PostPubsubMessageWithCommunityAuthor, ReplyPubsubMessageWithCommunityAuthor } from "../../../../publications/comment/types.js";
|
|
3
4
|
import type { CommentModerationPubsubMessagePublication } from "../../../../publications/comment-moderation/types.js";
|
|
@@ -17,7 +18,11 @@ export declare function resolveAliasPrivateKeyForCommentPublication(community: L
|
|
|
17
18
|
originalAuthorPublicKey: PseudonymityAliasRow["originalAuthorPublicKey"];
|
|
18
19
|
postCid?: string;
|
|
19
20
|
}): Promise<string>;
|
|
20
|
-
export declare function prepareCommentWithAnonymity(community
|
|
21
|
+
export declare function prepareCommentWithAnonymity({ community, originalComment, authorIdentityMatcher }: {
|
|
22
|
+
community: LocalCommunity;
|
|
23
|
+
originalComment: CommentPubsubMessagePublication;
|
|
24
|
+
authorIdentityMatcher?: AuthorIdentityMatcher;
|
|
25
|
+
}): Promise<{
|
|
21
26
|
publication: CommentPubsubMessagePublication;
|
|
22
27
|
anonymity?: {
|
|
23
28
|
aliasPrivateKey: PseudonymityAliasRow["aliasPrivateKey"];
|
|
@@ -96,7 +101,13 @@ export declare function storeComment(community: LocalCommunity, opts: {
|
|
|
96
101
|
comment: CommentIpfsType;
|
|
97
102
|
cid: CommentUpdateType["cid"];
|
|
98
103
|
}>;
|
|
99
|
-
export declare function storePublication(community
|
|
104
|
+
export declare function storePublication({ community, request, pendingApproval, challengeAggregate, authorIdentityMatcher }: {
|
|
105
|
+
community: LocalCommunity;
|
|
106
|
+
request: DecryptedChallengeRequestMessageType;
|
|
107
|
+
pendingApproval?: boolean;
|
|
108
|
+
challengeAggregate?: ChallengeResultAggregate;
|
|
109
|
+
authorIdentityMatcher?: AuthorIdentityMatcher;
|
|
110
|
+
}): Promise<{
|
|
100
111
|
comment: CommentIpfsType;
|
|
101
112
|
cid: CommentUpdateType["cid"];
|
|
102
113
|
} | undefined>;
|
|
@@ -2,7 +2,7 @@ import Logger from "../../../../logger.js";
|
|
|
2
2
|
import { clone, difference, keys, pick } from "remeda";
|
|
3
3
|
import { default as lodashDeepMerge } from "lodash.merge";
|
|
4
4
|
import { stringify as deterministicStringify } from "safe-stable-stringify";
|
|
5
|
-
import { calculateIpfsCidV0, isStringDomain, retryKuboIpfsAddAndProvide, timestamp } from "../../../../util.js";
|
|
5
|
+
import { calculateIpfsCidV0, getErrorCodeFromMessage, isStringDomain, retryKuboIpfsAddAndProvide, timestamp } from "../../../../util.js";
|
|
6
6
|
import { PKCError } from "../../../../pkc-error.js";
|
|
7
7
|
import { signComment, signCommentEdit } from "../../../../signer/signatures.js";
|
|
8
8
|
import { getPKCAddressFromPublicKey } from "../../../../signer/util.js";
|
|
@@ -13,7 +13,8 @@ import { CommentIpfsSchema } from "../../../../publications/comment/schema.js";
|
|
|
13
13
|
import { CommentModerationPubsubMessagePublicationSchema } from "../../../../publications/comment-moderation/schema.js";
|
|
14
14
|
import { VotePubsubMessagePublicationSchema } from "../../../../publications/vote/schema.js";
|
|
15
15
|
import { addAllCidsUnderPurgedCommentToBeRemoved, rmUnneededMfsPaths } from "./cleanup.js";
|
|
16
|
-
import {
|
|
16
|
+
import { matchPublicationAuthorAgainstRoles } from "./publication-validation.js";
|
|
17
|
+
import { authorIdentityMatcherForRequest, createAuthorIdentityMatcher } from "./author-identity.js";
|
|
17
18
|
import { communityIdentityPublicKey } from "./identity.js";
|
|
18
19
|
export function isPublicationReply(publication) {
|
|
19
20
|
return Boolean(publication.parentCid);
|
|
@@ -71,14 +72,28 @@ export async function resolveAliasPrivateKeyForCommentPublication(community, opt
|
|
|
71
72
|
else
|
|
72
73
|
throw Error(`Unsupported pseudonymityMode (${opts.mode})`);
|
|
73
74
|
}
|
|
74
|
-
export async function prepareCommentWithAnonymity(community, originalComment) {
|
|
75
|
+
export async function prepareCommentWithAnonymity({ community, originalComment, authorIdentityMatcher = createAuthorIdentityMatcher({ community, publication: originalComment }) }) {
|
|
75
76
|
const mode = community.features?.pseudonymityMode;
|
|
76
77
|
if (!mode)
|
|
77
78
|
return { publication: originalComment };
|
|
78
79
|
// Mods (owner, admin, moderator) are never pseudonymized
|
|
79
|
-
const
|
|
80
|
-
|
|
80
|
+
const modMatch = await matchPublicationAuthorAgainstRoles({
|
|
81
|
+
community,
|
|
82
|
+
rolesToCheckAgainst: ["owner", "admin", "moderator"],
|
|
83
|
+
authorIdentityMatcher
|
|
84
|
+
});
|
|
85
|
+
if (modMatch.matched)
|
|
81
86
|
return { publication: originalComment };
|
|
87
|
+
// A mod whose role key is a domain the node could not verify would otherwise be pseudonymized silently:
|
|
88
|
+
// no error, the wrong outcome, and irreversible once the comment is stored under an alias. Refuse the
|
|
89
|
+
// publication instead, so the author can retry once the community's resolver is working. Issue #353.
|
|
90
|
+
if (modMatch.nameFailure)
|
|
91
|
+
throw new PKCError(getErrorCodeFromMessage(modMatch.nameFailure.reason), {
|
|
92
|
+
comment: originalComment,
|
|
93
|
+
// The only place a nameFailure escapes as a throw rather than a returned `messages` value, so it
|
|
94
|
+
// is the only place the resolver's own error can be carried along instead of dropped.
|
|
95
|
+
nameFailureError: modMatch.nameFailure.error
|
|
96
|
+
});
|
|
82
97
|
const originalAuthorPublicKey = originalComment.signature.publicKey;
|
|
83
98
|
const postCid = originalComment.postCid;
|
|
84
99
|
const aliasPrivateKey = await resolveAliasPrivateKeyForCommentPublication(community, {
|
|
@@ -377,7 +392,10 @@ export async function storeComment(community, opts) {
|
|
|
377
392
|
log("Inserted comment", commentRow.cid, "into db", "with props", commentRow);
|
|
378
393
|
return { comment: commentIpfs, cid: commentCid };
|
|
379
394
|
}
|
|
380
|
-
export async function storePublication(community, request, pendingApproval, challengeAggregate
|
|
395
|
+
export async function storePublication({ community, request, pendingApproval, challengeAggregate,
|
|
396
|
+
// Shared across the challenge request when the caller has one, so the author's domain resolves once.
|
|
397
|
+
// See issues #353 and #354.
|
|
398
|
+
authorIdentityMatcher }) {
|
|
381
399
|
if (request.vote)
|
|
382
400
|
return storeVote(community, request.vote, request.challengeRequestId);
|
|
383
401
|
else if (request.commentEdit) {
|
|
@@ -388,7 +406,11 @@ export async function storePublication(community, request, pendingApproval, chal
|
|
|
388
406
|
return storeCommentModeration(community, request.commentModeration, request.challengeRequestId);
|
|
389
407
|
else if (request.comment) {
|
|
390
408
|
const originalCommentSignatureEncoded = request.comment.signature.signature;
|
|
391
|
-
const { publication, anonymity } = await prepareCommentWithAnonymity(
|
|
409
|
+
const { publication, anonymity } = await prepareCommentWithAnonymity({
|
|
410
|
+
community,
|
|
411
|
+
originalComment: request.comment,
|
|
412
|
+
authorIdentityMatcher: authorIdentityMatcher ?? authorIdentityMatcherForRequest({ community, request })
|
|
413
|
+
});
|
|
392
414
|
const storedComment = await storeComment(community, {
|
|
393
415
|
commentPubsub: publication,
|
|
394
416
|
pendingApproval,
|