@pkcprotocol/pkc-js 0.0.35 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/browser/community/remote-community.d.ts +3 -3
- package/dist/browser/community/remote-community.js.map +1 -1
- package/dist/browser/community/schema.d.ts +24 -0
- package/dist/browser/community/schema.js +14 -1
- package/dist/browser/community/schema.js.map +1 -1
- package/dist/browser/errors.d.ts +5 -1
- package/dist/browser/errors.js +4 -0
- package/dist/browser/errors.js.map +1 -1
- package/dist/browser/generated-version.d.ts +1 -1
- package/dist/browser/generated-version.js +1 -1
- package/dist/browser/index.d.ts +12 -0
- package/dist/browser/pkc/pkc.js +3 -3
- package/dist/browser/pkc/pkc.js.map +1 -1
- package/dist/browser/pkc-error.d.ts +1 -1
- package/dist/browser/publications/comment/schema.d.ts +2 -0
- package/dist/browser/publications/comment/schema.js +32 -0
- package/dist/browser/publications/comment/schema.js.map +1 -1
- package/dist/browser/rpc/src/lib/pkc-js/index.d.ts +6 -0
- package/dist/browser/rpc/src/schema.d.ts +36 -0
- package/dist/browser/runtime/browser/community/local-community.d.ts +2 -0
- package/dist/browser/runtime/browser/community/local-community.js +6 -0
- package/dist/browser/runtime/browser/community/local-community.js.map +1 -1
- package/dist/browser/runtime/node/community/challenges/index.d.ts +11 -5
- package/dist/browser/runtime/node/community/challenges/index.js +40 -5
- package/dist/browser/runtime/node/community/challenges/index.js.map +1 -1
- package/dist/browser/runtime/node/community/challenges/validate-challenge-result.d.ts +5 -0
- package/dist/browser/runtime/node/community/challenges/validate-challenge-result.js +70 -0
- package/dist/browser/runtime/node/community/challenges/validate-challenge-result.js.map +1 -0
- package/dist/browser/runtime/node/community/db-handler.d.ts +3 -1
- package/dist/browser/runtime/node/community/db-handler.js +24 -9
- package/dist/browser/runtime/node/community/db-handler.js.map +1 -1
- package/dist/browser/runtime/node/community/local-community/challenges.d.ts +27 -0
- package/dist/browser/runtime/node/community/local-community/challenges.js +534 -0
- package/dist/browser/runtime/node/community/local-community/challenges.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/cleanup.d.ts +9 -0
- package/dist/browser/runtime/node/community/local-community/cleanup.js +165 -0
- package/dist/browser/runtime/node/community/local-community/cleanup.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/comment-updates.d.ts +11 -0
- package/dist/browser/runtime/node/community/local-community/comment-updates.js +218 -0
- package/dist/browser/runtime/node/community/local-community/comment-updates.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/db-state.d.ts +15 -0
- package/dist/browser/runtime/node/community/local-community/db-state.js +323 -0
- package/dist/browser/runtime/node/community/local-community/db-state.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/defaults.d.ts +12 -0
- package/dist/browser/runtime/node/community/local-community/defaults.js +29 -0
- package/dist/browser/runtime/node/community/local-community/defaults.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/editing.d.ts +10 -0
- package/dist/browser/runtime/node/community/local-community/editing.js +188 -0
- package/dist/browser/runtime/node/community/local-community/editing.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/ipns-publishing.d.ts +12 -0
- package/dist/browser/runtime/node/community/local-community/ipns-publishing.js +340 -0
- package/dist/browser/runtime/node/community/local-community/ipns-publishing.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/lifecycle.d.ts +11 -0
- package/dist/browser/runtime/node/community/local-community/lifecycle.js +428 -0
- package/dist/browser/runtime/node/community/local-community/lifecycle.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/publication-store.d.ts +102 -0
- package/dist/browser/runtime/node/community/local-community/publication-store.js +403 -0
- package/dist/browser/runtime/node/community/local-community/publication-store.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/publication-validation.d.ts +9 -0
- package/dist/browser/runtime/node/community/local-community/publication-validation.js +493 -0
- package/dist/browser/runtime/node/community/local-community/publication-validation.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/pubsub.d.ts +3 -0
- package/dist/browser/runtime/node/community/local-community/pubsub.js +43 -0
- package/dist/browser/runtime/node/community/local-community/pubsub.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community/registry.d.ts +3 -0
- package/dist/browser/runtime/node/community/local-community/registry.js +4 -0
- package/dist/browser/runtime/node/community/local-community/registry.js.map +1 -0
- package/dist/browser/runtime/node/community/local-community.d.ts +68 -105
- package/dist/browser/runtime/node/community/local-community.js +127 -2927
- package/dist/browser/runtime/node/community/local-community.js.map +1 -1
- package/dist/browser/schema/schema.d.ts +1 -0
- package/dist/browser/schema/schema.js +17 -0
- package/dist/browser/schema/schema.js.map +1 -1
- package/dist/browser/schema.d.ts +48 -0
- package/dist/browser/signer/signatures.d.ts +1 -1
- package/dist/browser/signer/signatures.js +9 -2
- package/dist/browser/signer/signatures.js.map +1 -1
- package/dist/browser/test/test-util.js +0 -1
- package/dist/browser/test/test-util.js.map +1 -1
- package/dist/browser/version.js +1 -1
- package/dist/node/community/remote-community.d.ts +3 -3
- package/dist/node/community/remote-community.js.map +1 -1
- package/dist/node/community/schema.d.ts +24 -0
- package/dist/node/community/schema.js +14 -1
- package/dist/node/community/schema.js.map +1 -1
- package/dist/node/errors.d.ts +5 -1
- package/dist/node/errors.js +4 -0
- package/dist/node/errors.js.map +1 -1
- package/dist/node/generated-version.d.ts +1 -1
- package/dist/node/generated-version.js +1 -1
- package/dist/node/index.d.ts +12 -0
- package/dist/node/pkc/pkc.js +3 -3
- package/dist/node/pkc/pkc.js.map +1 -1
- package/dist/node/pkc-error.d.ts +1 -1
- package/dist/node/publications/comment/schema.d.ts +2 -0
- package/dist/node/publications/comment/schema.js +32 -0
- package/dist/node/publications/comment/schema.js.map +1 -1
- package/dist/node/rpc/src/lib/pkc-js/index.d.ts +6 -0
- package/dist/node/rpc/src/schema.d.ts +36 -0
- package/dist/node/runtime/browser/community/local-community.d.ts +2 -0
- package/dist/node/runtime/browser/community/local-community.js +6 -0
- package/dist/node/runtime/browser/community/local-community.js.map +1 -1
- package/dist/node/runtime/node/community/challenges/index.d.ts +11 -5
- package/dist/node/runtime/node/community/challenges/index.js +40 -5
- package/dist/node/runtime/node/community/challenges/index.js.map +1 -1
- package/dist/node/runtime/node/community/challenges/validate-challenge-result.d.ts +5 -0
- package/dist/node/runtime/node/community/challenges/validate-challenge-result.js +70 -0
- package/dist/node/runtime/node/community/challenges/validate-challenge-result.js.map +1 -0
- package/dist/node/runtime/node/community/db-handler.d.ts +3 -1
- package/dist/node/runtime/node/community/db-handler.js +24 -9
- package/dist/node/runtime/node/community/db-handler.js.map +1 -1
- package/dist/node/runtime/node/community/local-community/challenges.d.ts +27 -0
- package/dist/node/runtime/node/community/local-community/challenges.js +534 -0
- package/dist/node/runtime/node/community/local-community/challenges.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/cleanup.d.ts +9 -0
- package/dist/node/runtime/node/community/local-community/cleanup.js +165 -0
- package/dist/node/runtime/node/community/local-community/cleanup.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/comment-updates.d.ts +11 -0
- package/dist/node/runtime/node/community/local-community/comment-updates.js +218 -0
- package/dist/node/runtime/node/community/local-community/comment-updates.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/db-state.d.ts +15 -0
- package/dist/node/runtime/node/community/local-community/db-state.js +323 -0
- package/dist/node/runtime/node/community/local-community/db-state.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/defaults.d.ts +12 -0
- package/dist/node/runtime/node/community/local-community/defaults.js +29 -0
- package/dist/node/runtime/node/community/local-community/defaults.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/editing.d.ts +10 -0
- package/dist/node/runtime/node/community/local-community/editing.js +188 -0
- package/dist/node/runtime/node/community/local-community/editing.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/ipns-publishing.d.ts +12 -0
- package/dist/node/runtime/node/community/local-community/ipns-publishing.js +340 -0
- package/dist/node/runtime/node/community/local-community/ipns-publishing.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/lifecycle.d.ts +11 -0
- package/dist/node/runtime/node/community/local-community/lifecycle.js +428 -0
- package/dist/node/runtime/node/community/local-community/lifecycle.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/publication-store.d.ts +102 -0
- package/dist/node/runtime/node/community/local-community/publication-store.js +403 -0
- package/dist/node/runtime/node/community/local-community/publication-store.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/publication-validation.d.ts +9 -0
- package/dist/node/runtime/node/community/local-community/publication-validation.js +493 -0
- package/dist/node/runtime/node/community/local-community/publication-validation.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/pubsub.d.ts +3 -0
- package/dist/node/runtime/node/community/local-community/pubsub.js +43 -0
- package/dist/node/runtime/node/community/local-community/pubsub.js.map +1 -0
- package/dist/node/runtime/node/community/local-community/registry.d.ts +3 -0
- package/dist/node/runtime/node/community/local-community/registry.js +4 -0
- package/dist/node/runtime/node/community/local-community/registry.js.map +1 -0
- package/dist/node/runtime/node/community/local-community.d.ts +68 -105
- package/dist/node/runtime/node/community/local-community.js +127 -2927
- package/dist/node/runtime/node/community/local-community.js.map +1 -1
- package/dist/node/schema/schema.d.ts +1 -0
- package/dist/node/schema/schema.js +17 -0
- package/dist/node/schema/schema.js.map +1 -1
- package/dist/node/schema.d.ts +48 -0
- package/dist/node/signer/signatures.d.ts +1 -1
- package/dist/node/signer/signatures.js +9 -2
- package/dist/node/signer/signatures.js.map +1 -1
- package/dist/node/test/test-util.js +0 -1
- package/dist/node/test/test-util.js.map +1 -1
- package/dist/node/version.js +1 -1
- package/package.json +3 -2
|
@@ -9,10 +9,15 @@ type DeferredChallenge = {
|
|
|
9
9
|
communityChallenge: CommunityChallenge;
|
|
10
10
|
};
|
|
11
11
|
export type GetChallengeAnswers = (challenges: Omit<Challenge, "verify">[]) => Promise<DecryptedChallengeAnswer["challengeAnswers"]>;
|
|
12
|
+
export type ChallengeResultAggregate = {
|
|
13
|
+
aggregatedComment?: Record<string, unknown>;
|
|
14
|
+
aggregatedCommentUpdate?: Record<string, unknown>;
|
|
15
|
+
aggregatedReason?: string;
|
|
16
|
+
};
|
|
12
17
|
type ChallengeVerificationSuccess = {
|
|
13
18
|
challengeSuccess: true;
|
|
14
19
|
pendingApprovalSuccess: boolean;
|
|
15
|
-
}
|
|
20
|
+
} & Omit<ChallengeResultAggregate, "aggregatedReason">;
|
|
16
21
|
type ChallengeVerificationPending = {
|
|
17
22
|
pendingChallenges: PendingChallenge[];
|
|
18
23
|
pendingApprovalSuccess: boolean;
|
|
@@ -23,7 +28,7 @@ type ChallengeVerificationPending = {
|
|
|
23
28
|
type ChallengeVerificationFailure = {
|
|
24
29
|
challengeSuccess: false;
|
|
25
30
|
challengeErrors: NonNullable<ChallengeVerificationMessageType["challengeErrors"]>;
|
|
26
|
-
}
|
|
31
|
+
} & Pick<ChallengeResultAggregate, "aggregatedReason">;
|
|
27
32
|
type PKCWithSettingsChallenges = {
|
|
28
33
|
settings?: {
|
|
29
34
|
challenges?: Record<string, ChallengeFileFactoryInput>;
|
|
@@ -43,13 +48,14 @@ declare const getChallengeVerificationFromChallengeAnswers: ({ pendingChallenges
|
|
|
43
48
|
partialResults?: (Challenge | ChallengeResult | undefined)[];
|
|
44
49
|
communityChallenges?: CommunityChallenge[];
|
|
45
50
|
}) => Promise<ChallengeVerificationSuccess | ChallengeVerificationFailure>;
|
|
51
|
+
export type GetChallengeVerificationResult = Pick<ChallengeVerificationMessageType, "challengeErrors" | "challengeSuccess"> & {
|
|
52
|
+
pendingApproval?: boolean;
|
|
53
|
+
} & ChallengeResultAggregate;
|
|
46
54
|
declare const getChallengeVerification: ({ challengeRequestMessage, community, getChallengeAnswers }: {
|
|
47
55
|
challengeRequestMessage: DecryptedChallengeRequestMessageTypeWithCommunityAuthor;
|
|
48
56
|
community: LocalCommunity;
|
|
49
57
|
getChallengeAnswers: GetChallengeAnswers;
|
|
50
|
-
}) => Promise<
|
|
51
|
-
pendingApproval?: boolean;
|
|
52
|
-
}>;
|
|
58
|
+
}) => Promise<GetChallengeVerificationResult>;
|
|
53
59
|
declare const getCommunityChallengeFromCommunityChallengeSettings: ({ communityChallengeSettings, pkc }: {
|
|
54
60
|
communityChallengeSettings: CommunityChallengeSetting;
|
|
55
61
|
pkc?: PKCWithSettingsChallenges;
|
|
@@ -10,6 +10,24 @@ import * as remeda from "remeda";
|
|
|
10
10
|
import { ChallengeFileFactorySchema, ChallengeFileSchema, CommunityChallengeSettingSchema } from "../../../../community/schema.js";
|
|
11
11
|
import { PKCError } from "../../../../pkc-error.js";
|
|
12
12
|
import { pathToFileURL } from "node:url";
|
|
13
|
+
import { validateChallengeResultExtras } from "./validate-challenge-result.js";
|
|
14
|
+
// Mutates `agg` in place — merges challenge-supplied `comment`/`commentUpdate` extras from one
|
|
15
|
+
// successful result, or the `reason` from a failure. Throws via the guard if the result tries to
|
|
16
|
+
// override a protocol-owned field. Called for both immediate (Phase 5) and post-verify results.
|
|
17
|
+
const accumulateChallengeResultExtras = ({ challengeResult, challengeIndex, agg }) => {
|
|
18
|
+
validateChallengeResultExtras({ challengeResult, challengeIndex });
|
|
19
|
+
if (!("success" in challengeResult) || challengeResult.success !== true) {
|
|
20
|
+
if (challengeResult.reason)
|
|
21
|
+
agg.aggregatedReason = challengeResult.reason;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (challengeResult.comment) {
|
|
25
|
+
agg.aggregatedComment = { ...(agg.aggregatedComment ?? {}), ...challengeResult.comment };
|
|
26
|
+
}
|
|
27
|
+
if (challengeResult.commentUpdate) {
|
|
28
|
+
agg.aggregatedCommentUpdate = { ...(agg.aggregatedCommentUpdate ?? {}), ...challengeResult.commentUpdate };
|
|
29
|
+
}
|
|
30
|
+
};
|
|
13
31
|
const resolveChallengeFactoryByName = ({ name, pkc }) => {
|
|
14
32
|
// User-defined shadows built-ins
|
|
15
33
|
return { factory: pkc?.settings?.challenges?.[name] ?? pkcJsChallenges[name] };
|
|
@@ -323,6 +341,7 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
|
|
|
323
341
|
let pendingChallenges = [];
|
|
324
342
|
const challengeErrors = {};
|
|
325
343
|
let pendingApprovalSuccess = false;
|
|
344
|
+
const agg = {};
|
|
326
345
|
for (let i = 0; i < challengeCount; i++) {
|
|
327
346
|
const r = results[i];
|
|
328
347
|
if (r === undefined)
|
|
@@ -332,10 +351,12 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
|
|
|
332
351
|
if ("success" in r && r.success === false) {
|
|
333
352
|
challengeFailureCount++;
|
|
334
353
|
challengeErrors[i] = r.error;
|
|
354
|
+
accumulateChallengeResultExtras({ challengeResult: r, challengeIndex: i, agg });
|
|
335
355
|
}
|
|
336
356
|
else if ("success" in r && r.success === true) {
|
|
337
357
|
if (communityChallenges[i].pendingApproval)
|
|
338
358
|
pendingApprovalSuccess = true;
|
|
359
|
+
accumulateChallengeResultExtras({ challengeResult: r, challengeIndex: i, agg });
|
|
339
360
|
}
|
|
340
361
|
else {
|
|
341
362
|
pendingChallenges.push({ ...r, index: i });
|
|
@@ -350,10 +371,12 @@ const getPendingChallengesOrChallengeVerification = async ({ challengeRequestMes
|
|
|
350
371
|
if (pendingChallenges.length === 0 && challengeFailureCount === 0) {
|
|
351
372
|
challengeSuccess = true;
|
|
352
373
|
}
|
|
353
|
-
if (challengeSuccess === true)
|
|
354
|
-
|
|
374
|
+
if (challengeSuccess === true) {
|
|
375
|
+
const { aggregatedReason: _unusedOnSuccess, ...successAgg } = agg;
|
|
376
|
+
return { challengeSuccess, pendingApprovalSuccess, ...successAgg };
|
|
377
|
+
}
|
|
355
378
|
if (challengeSuccess === false)
|
|
356
|
-
return { challengeSuccess, challengeErrors };
|
|
379
|
+
return { challengeSuccess, challengeErrors, aggregatedReason: agg.aggregatedReason };
|
|
357
380
|
return {
|
|
358
381
|
pendingChallenges,
|
|
359
382
|
pendingApprovalSuccess,
|
|
@@ -493,6 +516,7 @@ const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges,
|
|
|
493
516
|
let challengeFailureCount = 0;
|
|
494
517
|
const challengeErrors = {};
|
|
495
518
|
let pendingApprovalSuccess = false;
|
|
519
|
+
const agg = {};
|
|
496
520
|
for (let i = 0; i < challengeCount; i++) {
|
|
497
521
|
const r = results[i];
|
|
498
522
|
if (r === undefined)
|
|
@@ -502,24 +526,29 @@ const getChallengeVerificationFromChallengeAnswers = async ({ pendingChallenges,
|
|
|
502
526
|
continue;
|
|
503
527
|
challengeFailureCount++;
|
|
504
528
|
challengeErrors[i] = r.error;
|
|
529
|
+
accumulateChallengeResultExtras({ challengeResult: r, challengeIndex: i, agg });
|
|
505
530
|
}
|
|
506
531
|
else if ("success" in r && r.success === true) {
|
|
507
532
|
if (shouldExcludeChallengeSuccess(loadedCommunityChallenges[i], i, results))
|
|
508
533
|
continue;
|
|
509
534
|
if (loadedCommunityChallenges[i].pendingApproval)
|
|
510
535
|
pendingApprovalSuccess = true;
|
|
536
|
+
accumulateChallengeResultExtras({ challengeResult: r, challengeIndex: i, agg });
|
|
511
537
|
}
|
|
512
538
|
// Any pending shape left at this point would be unexpected; ignore.
|
|
513
539
|
}
|
|
514
540
|
if (challengeFailureCount > 0) {
|
|
515
541
|
return {
|
|
516
542
|
challengeSuccess: false,
|
|
517
|
-
challengeErrors
|
|
543
|
+
challengeErrors,
|
|
544
|
+
aggregatedReason: agg.aggregatedReason
|
|
518
545
|
};
|
|
519
546
|
}
|
|
547
|
+
const { aggregatedReason: _unusedOnSuccess, ...successAgg } = agg;
|
|
520
548
|
return {
|
|
521
549
|
challengeSuccess: true,
|
|
522
|
-
pendingApprovalSuccess
|
|
550
|
+
pendingApprovalSuccess,
|
|
551
|
+
...successAgg
|
|
523
552
|
};
|
|
524
553
|
};
|
|
525
554
|
const getChallengeVerification = async ({ challengeRequestMessage, community, getChallengeAnswers }) => {
|
|
@@ -562,6 +591,12 @@ const getChallengeVerification = async ({ challengeRequestMessage, community, ge
|
|
|
562
591
|
challengeVerification = { challengeSuccess: res.challengeSuccess };
|
|
563
592
|
if ("challengeErrors" in res)
|
|
564
593
|
challengeVerification.challengeErrors = res.challengeErrors;
|
|
594
|
+
if ("aggregatedComment" in res && res.aggregatedComment)
|
|
595
|
+
challengeVerification.aggregatedComment = res.aggregatedComment;
|
|
596
|
+
if ("aggregatedCommentUpdate" in res && res.aggregatedCommentUpdate)
|
|
597
|
+
challengeVerification.aggregatedCommentUpdate = res.aggregatedCommentUpdate;
|
|
598
|
+
if ("aggregatedReason" in res && res.aggregatedReason)
|
|
599
|
+
challengeVerification.aggregatedReason = res.aggregatedReason;
|
|
565
600
|
}
|
|
566
601
|
// store the publication result and author address in mem cache for rateLimit exclude challenge settings
|
|
567
602
|
addToRateLimiter(community.settings?.challenges, challengeRequestMessage, challengeVerification.challengeSuccess);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/browser/community/challenges/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iCAAiC,EACjC,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,yDAAyD;AACzD,OAAO,QAAQ,MAAM,kCAAkC,CAAC;AACxD,OAAO,IAAI,MAAM,6BAA6B,CAAC;AAC/C,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AAgBxE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACnI,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA0BzC,MAAM,6BAA6B,GAAG,CAAC,EACnC,IAAI,EACJ,GAAG,EAIN,EAAsD,EAAE;IACrD,iCAAiC;IACjC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;AACnF,CAAC,CAAC;AAEF,MAAM,eAAe,GAA8C;IAC/D,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,QAAQ;IAClB,mBAAmB,EAAE,gBAAgB;CACxC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,EAClC,oBAAoB,EACpB,cAAc,EACd,SAAS,EAKZ,EAAgB,EAAE;IACf,MAAM,0BAA0B,GAAG,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC;IACrF,IAAI,OAAO,oBAAoB,KAAK,UAAU,EAAE,CAAC;QAC7C,MAAM,KAAK,CACP,mEAAmE,0BAA0B,EAAE,IAAI,IAAI,0BAA0B,EAAE,IAAI,iBAAiB,cAAc,GAAG,CAAC,GAAG,CAChL,CAAC;IACN,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,EAC3B,aAAa,EACb,cAAc,EACd,SAAS,EAKZ,EAAgB,EAAE;IACf,MAAM,0BAA0B,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC;IACpF,IAAI,OAAO,aAAa,EAAE,YAAY,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,CACP,oDAAoD,0BAA0B,EAAE,IAAI,IAAI,0BAA0B,EAAE,IAAI,iBAAiB,cAAc,GAAG,CAAC,GAAG,CACjK,CAAC;IACN,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,EAC7B,eAAe,EACf,cAAc,EACd,SAAS,EAKZ,EAAgB,EAAE;IACf,MAAM,0BAA0B,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,sDAAsD,0BAA0B,EAAE,IAAI,IAAI,0BAA0B,EAAE,IAAI,iBAAiB,cAAc,GAAG,CAAC,GAAG,CAAC;IAC/K,IAAI,OAAO,eAAe,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;QAChD,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,kCAAkC,GAAG,CAAC,EACxC,0BAA0B,EAC1B,cAAc,EACd,SAAS,EAKZ,EAAgB,EAAE;IACf,IAAI,SAAS,IAAI,0BAA0B,EAAE,CAAC;QAC1C,uBAAuB,CAAC,EAAE,eAAe,EAAE,0BAA0B,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IACxG,CAAC;SAAM,IACH,OAAO,0BAA0B,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ;QAC7D,OAAO,0BAA0B,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ;QACxD,OAAO,0BAA0B,EAAE,CAAC,QAAQ,CAAC,KAAK,UAAU,EAC9D,CAAC;QACC,MAAM,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,KAAK,EAAE,EAC7B,0BAA0B,EAC1B,cAAc,EACd,SAAS,EAKZ,EAA6C,EAAE;IAC5C,IACI,CAAC,0BAA0B,CAAC,IAAI;QAChC,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,0BAA0B,CAAC,IAAK,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO;QAEvG,MAAM,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAChF,IAAI,oBAA0C,CAAC;IAC/C,IAAI,CAAC;QACD,oBAAoB,GAAG,0BAA0B,CAAC,KAAK,CACnD,0BAA0B,CAAC,IAAI;YAC3B,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YAC7E,CAAC,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,0BAA0B,CAAC,IAAK,EAAE,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAC/G,CAAC;QACF,4BAA4B,CAAC,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,QAAQ,CAAC,6CAA6C,EAAE;YAC9D,IAAI,EAAE,0BAA0B,CAAC,IAAI;YACrC,0BAA0B;YAC1B,KAAK,EAAE,CAAC;YACR,cAAc;SACjB,CAAC,CAAC;IACP,CAAC;IACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC9F,qBAAqB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAC5B,aAAa,EACb,0BAA0B,EAC1B,uBAAuB,EACvB,cAAc,EACd,SAAS,EAOZ,EAAwE,EAAE;IACvE,IAAI,0BAAuD,CAAC;IAC5D,IAAI,CAAC;QACD,0BAA0B,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC;YAC1D,iBAAiB,EAAE,0BAA0B;YAC7C,uBAAuB;YACvB,cAAc;YACd,SAAS;SACZ,CAAC,CAAC;QACH,kCAAkC,CAAC,EAAE,0BAA0B,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,QAAQ,CAAC,gDAAgD,EAAE;YACjE,0BAA0B;YAC1B,aAAa,EAAE,0BAA0B,CAAC,IAAI,IAAI,0BAA0B,CAAC,IAAI;YACjF,uBAAuB;YACvB,cAAc,EAAE,cAAc,GAAG,CAAC;YAClC,KAAK,EAAE,CAAC;SACX,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAC1C,CAAC,CAAC;AAiBF,MAAM,uBAAuB,GAAG,CAAC,EAC7B,CAAC,EACD,mBAAmB,EACnB,OAAO,EACP,OAAO,EAMV,EAAwC,EAAE;IACvC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACtE,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC7B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;YAAE,SAAS;QACvC,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACd,UAAU,GAAG,KAAK,CAAC;gBACnB,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,iBAAiB,GAAG,KAAK,CAAC;YAC1B,SAAS;QACb,CAAC;QACD,IAAI,mBAAmB,GAAG,IAAI,CAAC;QAC/B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClB,mBAAmB,GAAG,KAAK,CAAC;gBAC5B,MAAM;YACV,CAAC;YACD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,mBAAmB,GAAG,KAAK,CAAC;oBAC5B,MAAM;gBACV,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,IAAI,CAAC;gBAClB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,IAAI,CAAC,mBAAmB;YAAE,SAAS;QACnC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,8CAA8C;QAC/F,mFAAmF;QACnF,mFAAmF;QACnF,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,cAAc,EAAE,CAAC;gBACjB,SAAS,GAAG,KAAK,CAAC;gBAClB,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,SAAS;YAAE,YAAY,GAAG,IAAI,CAAC;IACvC,CAAC;IACD,IAAI,YAAY;QAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9D,CAAC,CAAC;AAEF,sGAAsG;AACtG,mGAAmG;AACnG,iGAAiG;AACjG,gGAAgG;AAChG,mEAAmE;AACnE,MAAM,iCAAiC,GAAG,CACtC,CAAS,EACT,mBAAyC,EACzC,OAAkB,EAClB,OAAoD,EAC7C,EAAE;IACT,MAAM,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM;YAAE,SAAS;QACvC,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,SAAS,CAAC,wCAAwC;YACnE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,CAAC,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;YAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,gBAAgB,GAAG,KAAK,CAAC;gBACzB,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,gBAAgB;YAAE,OAAO,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,2CAA2C,GAAG,KAAK,EAAE,EACvD,uBAAuB,EACvB,SAAS,EAIZ,EAAuG,EAAE;IACtG,8DAA8D;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC9C,OAAO;YACH,gBAAgB,EAAE,IAAI;YACtB,sBAAsB,EAAE,KAAK;SAChC,CAAC;IACN,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5D,MAAM,OAAO,GAAgD,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACvF,MAAM,OAAO,GAAc,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjE,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAC7B,KAAK,EAAE,CAAC,EAAE,EAAE,CACR,CACI,MAAM,mDAAmD,CAAC;QACtD,0BAA0B,EAAE,CAAC;QAC7B,GAAG,EAAE,SAAS,CAAC,IAAI;KACtB,CAAC,CACL,CAAC,kBAAkB,CAC3B,CACJ,CAAC;IAEF,yGAAyG;IACzG,8FAA8F;IAC9F,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAC7B,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,iBAAiB,CAAC,EAAE,0BAA0B,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,CAC3H,CACJ,CAAC;IAEF,6FAA6F;IAC7F,MAAM,OAAO,CAAC,GAAG,CACb,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE;QACpD,IAAI,wBAAwB,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,CAAC,EAAE,CAAC;YACnF,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAClB,OAAO;QACX,CAAC;QACD,IAAI,MAAM,iCAAiC,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACvG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACtB,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,2EAA2E;IAC3E,8FAA8F;IAC9F,2EAA2E;IAC3E,MAAM,QAAQ,GAAc,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,iGAAiG;IACjG,gGAAgG;IAChG,0EAA0E;IAC1E,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,MAAM,wBAAwB,GAAG,GAAY,EAAE;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS;gBAAE,SAAS;YAC7C,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,iCAAiC,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACxH,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,IAAI,EAAE,CAAC;QACV,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,CAAC,CAAC;gBAAE,SAAS;YACzB,MAAM,EAAE,QAAQ,EAAE,GAAG,uBAAuB,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3F,IAAI,QAAQ,KAAK,MAAM;gBAAE,SAAS;YAClC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAClB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,CAAC,CAAC,GAAG,CACT,MAAM,gBAAgB,CAAC;oBACnB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;oBAChC,0BAA0B,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC5D,uBAAuB;oBACvB,cAAc,EAAE,CAAC;oBACjB,SAAS;iBACZ,CAAC,CACL,CAAC,0BAA0B,CAAC;gBAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,QAAQ;YAAE,SAAS;QACvB,+EAA+E;QAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,cAAc,KAAK,CAAC,CAAC;YAAE,MAAM;QACjC,IAAI,UAAU,EAAE,CAAC;YACb,gDAAgD;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACd,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBAClB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACvB,CAAC;YACL,CAAC;YACD,MAAM;QACV,CAAC;QACD,wFAAwF;QACxF,2FAA2F;QAC3F,0FAA0F;QAC1F,2FAA2F;QAC3F,2FAA2F;QAC3F,IAAI,wBAAwB,EAAE,EAAE,CAAC;YAC7B,qBAAqB,GAAG,IAAI,CAAC;YAC7B,MAAM;QACV,CAAC;QACD,yFAAyF;QACzF,OAAO,CAAC,cAAc,CAAC,GAAG,CACtB,MAAM,gBAAgB,CAAC;YACnB,aAAa,EAAE,cAAc,CAAC,cAAc,CAAC;YAC7C,0BAA0B,EAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC;YACzE,uBAAuB;YACvB,cAAc,EAAE,cAAc;YAC9B,SAAS;SACZ,CAAC,CACL,CAAC,0BAA0B,CAAC;QAC7B,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAClB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,MAAM,kBAAkB,GAAwB,EAAE,CAAC;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,+FAA+F;IAC/F,8FAA8F;IAC9F,mEAAmE;IACnE,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,iBAAiB,GAAuB,EAAE,CAAC;IAC/C,MAAM,eAAe,GAAqE,EAAE,CAAC;IAC7F,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,wCAAwC;QACvE,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAA0C,CAAC;YAAE,SAAS;QACnH,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACxC,qBAAqB,EAAE,CAAC;YACxB,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACjC,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9C,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe;gBAAE,sBAAsB,GAAG,IAAI,CAAC;QAC9E,CAAC;aAAM,CAAC;YACJ,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,IAAI,gBAAgB,GAAwB,SAAS,CAAC;IAEtD,kDAAkD;IAClD,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;QAC5B,gBAAgB,GAAG,KAAK,CAAC;QACzB,iBAAiB,GAAG,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,KAAK,CAAC,EAAE,CAAC;QAChE,gBAAgB,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IACnF,IAAI,gBAAgB,KAAK,KAAK;QAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC7E,OAAO;QACH,iBAAiB;QACjB,sBAAsB;QACtB,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;QAClF,cAAc,EAAE,OAAO;QACvB,mBAAmB;KACtB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,4CAA4C,GAAG,KAAK,EAAE,EACxD,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EAStB,EAAwE,EAAE;IACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC;QAAE,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACjH,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;IAE5D,wDAAwD;IACxD,MAAM,uBAAuB,GAA+B,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAChC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,kCAAkC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACtF,KAAK,MAAM,CAAC,IAAI,kCAAkC,EAAE,CAAC;QACjD,uBAAuB,CAAC;YACpB,eAAe,EAAE,kCAAkC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9D,cAAc,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;YAClD,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,+FAA+F;IAC/F,6FAA6F;IAC7F,+FAA+F;IAC/F,0BAA0B;IAC1B,MAAM,OAAO,GAAgD,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACjI,KAAK,MAAM,CAAC,IAAI,kCAAkC,EAAE,CAAC;QACjD,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,kCAAkC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,iGAAiG;IACjG,MAAM,yBAAyB,GAC3B,mBAAmB;QACnB,CAAC,MAAM,OAAO,CAAC,GAAG,CACd,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAC7B,KAAK,EAAE,CAAC,EAAE,EAAE,CACR,CACI,MAAM,mDAAmD,CAAC;YACtD,0BAA0B,EAAE,CAAC;YAC7B,GAAG,EAAE,SAAS,CAAC,IAAI;SACtB,CAAC,CACL,CAAC,kBAAkB,CAC3B,CACJ,CAAC,CAAC;IAEP,6FAA6F;IAC7F,gGAAgG;IAChG,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,kBAAkB,IAAI,EAAE,CAAC;IAC1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,uBAAuB;YACxB,MAAM,KAAK,CACP,oHAAoH,CACvH,CAAC;QACN,MAAM,OAAO,GAAc,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAEnD,+FAA+F;QAC/F,MAAM,qBAAqB,GAAkC,EAAE,CAAC;QAChE,MAAM,mBAAmB,GAAG,KAAK,EAAE,CAAS,EAA0B,EAAE;YACpE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,qBAAqB,CAAC,CAAC,CAAC,GAAG,CACvB,MAAM,iBAAiB,CAAC;oBACpB,0BAA0B,EAAE,SAAS,CAAC,QAAS,CAAC,UAAW,CAAC,CAAC,CAAC;oBAC9D,cAAc,EAAE,CAAC;oBACjB,SAAS;iBACZ,CAAC,CACL,CAAC,aAAa,CAAC;YACpB,CAAC;YACD,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;gBAClB,IAAI,OAAO,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACzB,MAAM,EAAE,QAAQ,EAAE,GAAG,uBAAuB,CAAC;oBACzC,CAAC;oBACD,mBAAmB,EAAE,yBAAyB;oBAC9C,OAAO;oBACP,OAAO;iBACV,CAAC,CAAC;gBACH,IAAI,QAAQ,KAAK,MAAM;oBAAE,SAAS;gBAClC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACjD,gFAAgF;oBAChF,4EAA4E;oBAC5E,kFAAkF;oBAClF,gFAAgF;oBAChF,4BAA4B;oBAC5B,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,CAAC,CAAC,CAAC;oBAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,CACT,MAAM,gBAAgB,CAAC;wBACnB,aAAa,EAAE,IAAI;wBACnB,0BAA0B,EAAE,SAAS,CAAC,QAAS,CAAC,UAAW,CAAC,CAAC,CAAC;wBAC9D,uBAAuB;wBACvB,cAAc,EAAE,CAAC;wBACjB,SAAS;qBACZ,CAAC,CACL,CAAC,0BAA0B,CAAC;oBAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACtB,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,IAAI,QAAQ;gBAAE,SAAS;YACvB,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,cAAc,KAAK,CAAC,CAAC;gBAAE,MAAM;YACjC,sFAAsF;YACtF,0FAA0F;YAC1F,uFAAuF;YACvF,iFAAiF;YACjF,IAAI,uBAAuB,GAAG,KAAK,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS;oBAAE,SAAS;gBAC7C,IACI,SAAS,IAAI,CAAC;oBACd,CAAC,CAAC,OAAO,KAAK,KAAK;oBACnB,CAAC,iCAAiC,CAAC,CAAC,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,EACpF,CAAC;oBACC,uBAAuB,GAAG,IAAI,CAAC;oBAC/B,MAAM;gBACV,CAAC;YACL,CAAC;YACD,IAAI,uBAAuB,EAAE,CAAC;gBAC1B,KAAK,MAAM,CAAC,IAAI,QAAQ;oBAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;wBAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBACzE,MAAM;YACV,CAAC;YACD,sDAAsD;YACtD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACvD,OAAO,CAAC,cAAc,CAAC,GAAG,CACtB,MAAM,gBAAgB,CAAC;gBACnB,aAAa,EAAE,IAAI;gBACnB,0BAA0B,EAAE,SAAS,CAAC,QAAS,CAAC,UAAW,CAAC,cAAc,CAAC;gBAC3E,uBAAuB;gBACvB,cAAc,EAAE,cAAc;gBAC9B,SAAS;aACZ,CAAC,CACL,CAAC,0BAA0B,CAAC;YAC7B,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;QACnC,CAAC;IACL,CAAC;IAED,8CAA8C;IAC9C,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,MAAM,eAAe,GAAqE,EAAE,CAAC;IAC7F,IAAI,sBAAsB,GAAG,KAAK,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QAC9B,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACxC,IAAI,6BAA6B,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAA0C,CAAC;gBAAE,SAAS;YACzH,qBAAqB,EAAE,CAAC;YACxB,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACjC,CAAC;aAAM,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9C,IAAI,6BAA6B,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAA0C,CAAC;gBAAE,SAAS;YACzH,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC,eAAe;gBAAE,sBAAsB,GAAG,IAAI,CAAC;QACpF,CAAC;QACD,oEAAoE;IACxE,CAAC;IAED,IAAI,qBAAqB,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO;YACH,gBAAgB,EAAE,KAAK;YACvB,eAAe;SAClB,CAAC;IACN,CAAC;IACD,OAAO;QACH,gBAAgB,EAAE,IAAI;QACtB,sBAAsB;KACzB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,KAAK,EAAE,EACpC,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EAKtB,EAA2H,EAAE;IAC1H,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC,sEAAsE,uBAAuB,GAAG,CAAC,CAAC;IAClH,CAAC;IACD,IAAI,OAAO,SAAS,EAAE,IAAI,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,CAAC,wDAAwD,SAAS,kCAAkC,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,KAAK,CAAC,kEAAkE,mBAAmB,kBAAkB,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC;QAAE,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAEjH,MAAM,GAAG,GAAG,MAAM,2CAA2C,CAAC,EAAE,uBAAuB,EAAE,SAAS,EAAE,CAAC,CAAC;IACtG,IAAI,sBAAsB,GAAG,wBAAwB,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC;IAElG,IAAI,qBAAqG,CAAC;IAC1G,0DAA0D;IAC1D,IAAI,mBAAmB,IAAI,GAAG,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAC9C,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CACxF,CAAC;QACF,MAAM,uBAAuB,GAAG,MAAM,4CAA4C,CAAC;YAC/E,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,gBAAgB;YAChB,SAAS;YACT,uBAAuB;YACvB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;YAC1C,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;SAC/C,CAAC,CAAC;QACH,IAAI,wBAAwB,IAAI,uBAAuB,EAAE,CAAC;YACtD,sBAAsB,GAAG,sBAAsB,IAAI,uBAAuB,CAAC,sBAAsB,CAAC;YAClG,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACJ,sBAAsB,GAAG,KAAK,CAAC;YAC/B,qBAAqB,GAAG,uBAAuB,CAAC;QACpD,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,qBAAqB,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACnE,IAAI,iBAAiB,IAAI,GAAG;YAAE,qBAAqB,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IAC9F,CAAC;IAED,wGAAwG;IACxG,gBAAgB,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAElH,aAAa;IACb,kFAAkF;IAClF,wCAAwC;IACxC,6HAA6H;IAE7H,MAAM,2BAA2B,GAC7B,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,gBAAgB,KAAK,IAAI,IAAI,sBAAsB,CAAC;IAE1H,IAAI,2BAA2B,EAAE,CAAC;QAC9B,OAAO,EAAE,GAAG,qBAAqB,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,qBAAqB,CAAC;AACjC,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,mDAAmD,GAAG,KAAK,EAAE,EAC/D,0BAA0B,EAC1B,GAAG,EAIN,EAAuD,EAAE;IACtD,0BAA0B,GAAG,+BAA+B,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAE/F,oGAAoG;IACpG,IAAI,aAAa,GAA8B,SAAS,CAAC;IACzD,IAAI,0BAA0B,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACvF,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACpF,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;QACvH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACR,CAAc,CAAC,OAAO,GAAG;gBACtB,GAAI,CAAc,CAAC,OAAO;gBAC1B,IAAI,EAAE,0BAA0B,CAAC,IAAI;gBACrC,0BAA0B;aAC7B,CAAC;YACF,IAAI,CAAC,YAAY,KAAK;gBAClB,CAAC,CAAC,OAAO,GAAG,6FAA6F,0BAA0B,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9J,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IACD,8DAA8D;SACzD,IAAI,0BAA0B,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,KAAK,CACzD,6BAA6B,CAAC,EAAE,IAAI,EAAE,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CACxF,CAAC;QACF,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,CAAC,aAAa;QAAE,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACjE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAC1C,OAAO;QACH,kBAAkB,EAAE;YAChB,OAAO,EAAE,0BAA0B,CAAC,OAAO;YAC3C,WAAW,EAAE,0BAA0B,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW;YAChF,SAAS;YACT,IAAI;YACJ,eAAe,EAAE,aAAa,CAAC,eAAe;YAC9C,eAAe,EAAE,0BAA0B,CAAC,eAAe;SAC9D;KACJ,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EACH,eAAe,EACf,2CAA2C,EAC3C,4CAA4C,EAC5C,wBAAwB,EACxB,mDAAmD,EACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/runtime/browser/community/challenges/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { CommentSignedPropertyNames, CommentUpdateChallengeReservedFieldNames } from "../../../../publications/comment/schema.js";
|
|
2
|
+
import { CommunityAuthorChallengeReservedFieldNames } from "../../../../schema/schema.js";
|
|
3
|
+
import { PKCError } from "../../../../pkc-error.js";
|
|
4
|
+
// Throws when a challenge result tries to set a key that the protocol owns.
|
|
5
|
+
// - comment.<key>: forbidden if key is in CommentSignedPropertyNames (would invalidate the author's
|
|
6
|
+
// signature on CommentIpfs, since challenge fields are spread last into the IPFS-bound literal).
|
|
7
|
+
// - commentUpdate.<key>: forbidden if key is in CommentUpdateChallengeReservedFieldNames
|
|
8
|
+
// (community-computed fields: counts, cid, signature, updatedAt, etc.).
|
|
9
|
+
// - commentUpdate.author.<key>: only `community` is permitted (rest of author is signed identity).
|
|
10
|
+
// - commentUpdate.author.community.<key>: forbidden if key is in CommunityAuthorChallengeReservedFieldNames
|
|
11
|
+
// (computed scores/timestamps and mod-settable fields; mods own those via commentModeration).
|
|
12
|
+
export function validateChallengeResultExtras({ challengeResult, challengeIndex }) {
|
|
13
|
+
if (!("success" in challengeResult) || challengeResult.success !== true)
|
|
14
|
+
return;
|
|
15
|
+
if (challengeResult.comment) {
|
|
16
|
+
for (const key of Object.keys(challengeResult.comment)) {
|
|
17
|
+
if (CommentSignedPropertyNames.includes(key)) {
|
|
18
|
+
throw new PKCError("ERR_CHALLENGE_RESULT_OVERRIDES_COMMENT_SIGNED_FIELD", {
|
|
19
|
+
challengeIndex,
|
|
20
|
+
offendingKey: key
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (challengeResult.commentUpdate) {
|
|
26
|
+
for (const key of Object.keys(challengeResult.commentUpdate)) {
|
|
27
|
+
if (CommentUpdateChallengeReservedFieldNames.includes(key)) {
|
|
28
|
+
throw new PKCError("ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMENT_UPDATE_FIELD", {
|
|
29
|
+
challengeIndex,
|
|
30
|
+
offendingKey: key
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const author = challengeResult.commentUpdate.author;
|
|
35
|
+
if (author !== undefined) {
|
|
36
|
+
if (typeof author !== "object" || author === null || Array.isArray(author)) {
|
|
37
|
+
throw new PKCError("ERR_CHALLENGE_RESULT_OVERRIDES_NON_COMMUNITY_AUTHOR_KEY", {
|
|
38
|
+
challengeIndex,
|
|
39
|
+
offendingKey: "author"
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
for (const authorKey of Object.keys(author)) {
|
|
43
|
+
if (authorKey !== "community") {
|
|
44
|
+
throw new PKCError("ERR_CHALLENGE_RESULT_OVERRIDES_NON_COMMUNITY_AUTHOR_KEY", {
|
|
45
|
+
challengeIndex,
|
|
46
|
+
offendingKey: `author.${authorKey}`
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const community = author.community;
|
|
51
|
+
if (community !== undefined) {
|
|
52
|
+
if (typeof community !== "object" || community === null || Array.isArray(community)) {
|
|
53
|
+
throw new PKCError("ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMUNITY_AUTHOR_FIELD", {
|
|
54
|
+
challengeIndex,
|
|
55
|
+
offendingKey: "author.community"
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
for (const communityKey of Object.keys(community)) {
|
|
59
|
+
if (CommunityAuthorChallengeReservedFieldNames.includes(communityKey)) {
|
|
60
|
+
throw new PKCError("ERR_CHALLENGE_RESULT_OVERRIDES_RESERVED_COMMUNITY_AUTHOR_FIELD", {
|
|
61
|
+
challengeIndex,
|
|
62
|
+
offendingKey: `author.community.${communityKey}`
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=validate-challenge-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-challenge-result.js","sourceRoot":"","sources":["../../../../../../src/runtime/browser/community/challenges/validate-challenge-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -184,7 +184,9 @@ export declare class DbHandler {
|
|
|
184
184
|
} | undefined;
|
|
185
185
|
private _calculateCommentNumbers;
|
|
186
186
|
queryCalculatedCommentUpdate(opts: {
|
|
187
|
-
comment: Pick<CommentsTableRow, "cid" | "authorSignerAddress" | "timestamp"
|
|
187
|
+
comment: Pick<CommentsTableRow, "cid" | "authorSignerAddress" | "timestamp"> & {
|
|
188
|
+
challengeCommentUpdate?: Record<string, unknown>;
|
|
189
|
+
};
|
|
188
190
|
authorDomain?: string;
|
|
189
191
|
}): Omit<CommentUpdateType, "signature" | "updatedAt" | "replies" | "protocolVersion">;
|
|
190
192
|
queryLatestPostCid(): Pick<CommentsTableRow, "cid"> | undefined;
|
|
@@ -10,7 +10,9 @@ import env from "../../../version.js";
|
|
|
10
10
|
import Database from "better-sqlite3";
|
|
11
11
|
import { sha256 } from "js-sha256";
|
|
12
12
|
import lockfile from "@pkcprotocol/proper-lock-file";
|
|
13
|
-
import {
|
|
13
|
+
import { isDefaultChallengeStructure } from "./local-community/defaults.js";
|
|
14
|
+
import { addAllCidsUnderPurgedCommentToBeRemoved } from "./local-community/cleanup.js";
|
|
15
|
+
import { updateDbInternalState } from "./local-community/db-state.js";
|
|
14
16
|
import { getPKCAddressFromPublicKey, getPKCAddressFromPublicKeySync } from "../../../signer/util.js";
|
|
15
17
|
import * as remeda from "remeda";
|
|
16
18
|
import { CommentIpfsSchema, CommentUpdateSchema } from "../../../publications/comment/schema.js";
|
|
@@ -233,6 +235,7 @@ export class DbHandler {
|
|
|
233
235
|
pseudonymityMode TEXT NULLABLE,
|
|
234
236
|
quotedCids TEXT NULLABLE, -- JSON array
|
|
235
237
|
extraProps TEXT NULLABLE, -- JSON
|
|
238
|
+
challengeCommentUpdate TEXT NULLABLE, -- JSON: challenge-supplied partial CommentUpdate seeded into queryCalculatedCommentUpdate with lowest priority
|
|
236
239
|
protocolVersion TEXT NOT NULL,
|
|
237
240
|
insertedAt INTEGER NOT NULL
|
|
238
241
|
)
|
|
@@ -433,7 +436,7 @@ export class DbHandler {
|
|
|
433
436
|
const _usingDefaultChallenge = "_usingDefaultChallenge" in internalState
|
|
434
437
|
? internalState._usingDefaultChallenge
|
|
435
438
|
: //@ts-expect-error - fallback for old DB records that predate _usingDefaultChallenge field
|
|
436
|
-
|
|
439
|
+
isDefaultChallengeStructure(internalState?.settings?.challenges);
|
|
437
440
|
const updateCid = "updateCid" in internalState && typeof internalState.updateCid === "string"
|
|
438
441
|
? internalState.updateCid
|
|
439
442
|
: "QmYHzA8euDgUpNy3fh7JRwpPwt6jCgF35YTutYkyGGyr8f";
|
|
@@ -444,7 +447,7 @@ export class DbHandler {
|
|
|
444
447
|
pkc: this._community._pkc
|
|
445
448
|
})).communityChallenge))
|
|
446
449
|
: newSettings.challenges;
|
|
447
|
-
await this._community
|
|
450
|
+
await updateDbInternalState(this._community, {
|
|
448
451
|
posts: undefined,
|
|
449
452
|
challenges: newChallenges,
|
|
450
453
|
settings: newSettings,
|
|
@@ -705,7 +708,7 @@ export class DbHandler {
|
|
|
705
708
|
for (const { cid } of duplicateCids) {
|
|
706
709
|
const purgedRows = this.purgeComment(cid);
|
|
707
710
|
for (const row of purgedRows)
|
|
708
|
-
await this._community
|
|
711
|
+
await addAllCidsUnderPurgedCommentToBeRemoved(this._community, row);
|
|
709
712
|
}
|
|
710
713
|
log(`Purged ${duplicateCids.length} duplicate comment row(s) based on signature.signature with higher rowid values.`);
|
|
711
714
|
continue;
|
|
@@ -851,8 +854,8 @@ export class DbHandler {
|
|
|
851
854
|
// Adding a new column to the comments table requires updating this list manually, which is error-prone.
|
|
852
855
|
const stmt = this._db.prepare(`
|
|
853
856
|
INSERT INTO ${TABLES.COMMENTS}
|
|
854
|
-
(cid, authorSignerAddress, author, link, linkWidth, linkHeight, thumbnailUrl, thumbnailUrlWidth, thumbnailUrlHeight, parentCid, postCid, previousCid, communityPublicKey, communityName, content, timestamp, signature, originalCommentSignatureEncoded, title, depth, linkHtmlTagName, flairs, spoiler, pendingApproval, number, postNumber, nsfw, pseudonymityMode, quotedCids, extraProps, protocolVersion, insertedAt)
|
|
855
|
-
VALUES (@cid, @authorSignerAddress, @author, @link, @linkWidth, @linkHeight, @thumbnailUrl, @thumbnailUrlWidth, @thumbnailUrlHeight, @parentCid, @postCid, @previousCid, @communityPublicKey, @communityName, @content, @timestamp, @signature, @originalCommentSignatureEncoded, @title, @depth, @linkHtmlTagName, @flairs, @spoiler, @pendingApproval, @number, @postNumber, @nsfw, @pseudonymityMode, @quotedCids, @extraProps, @protocolVersion, @insertedAt)
|
|
857
|
+
(cid, authorSignerAddress, author, link, linkWidth, linkHeight, thumbnailUrl, thumbnailUrlWidth, thumbnailUrlHeight, parentCid, postCid, previousCid, communityPublicKey, communityName, content, timestamp, signature, originalCommentSignatureEncoded, title, depth, linkHtmlTagName, flairs, spoiler, pendingApproval, number, postNumber, nsfw, pseudonymityMode, quotedCids, extraProps, challengeCommentUpdate, protocolVersion, insertedAt)
|
|
858
|
+
VALUES (@cid, @authorSignerAddress, @author, @link, @linkWidth, @linkHeight, @thumbnailUrl, @thumbnailUrlWidth, @thumbnailUrlHeight, @parentCid, @postCid, @previousCid, @communityPublicKey, @communityName, @content, @timestamp, @signature, @originalCommentSignatureEncoded, @title, @depth, @linkHtmlTagName, @flairs, @spoiler, @pendingApproval, @number, @postNumber, @nsfw, @pseudonymityMode, @quotedCids, @extraProps, @challengeCommentUpdate, @protocolVersion, @insertedAt)
|
|
856
859
|
`);
|
|
857
860
|
// Create default object with null values for all columns
|
|
858
861
|
const defaults = remeda.mapToObj(columnNames, (column) => [column, null]);
|
|
@@ -2192,16 +2195,28 @@ export class DbHandler {
|
|
|
2192
2195
|
const { number: commentNumber, postNumber } = this._calculateCommentNumbers(comment.cid);
|
|
2193
2196
|
if (!authorCommunity)
|
|
2194
2197
|
throw Error("Failed to query author.community in queryCalculatedCommentUpdate");
|
|
2198
|
+
// Seed with challenge-supplied commentUpdate (lowest priority, per-field). Mod queries below
|
|
2199
|
+
// overwrite individual keys (reason, flairs, flags, approved, ...) when the mod has actually
|
|
2200
|
+
// published a moderation that set that key — challenge keys the mod never touched persist.
|
|
2201
|
+
// Same logic applies one level deeper for author.community: challenge-supplied
|
|
2202
|
+
// commentUpdate.author.community.<newKey> (e.g. countryCode) seeds underneath the computed
|
|
2203
|
+
// authorCommunity, so community-computed keys (postScore, replyScore, ...) and mod-settable
|
|
2204
|
+
// keys (flairs, banExpiresAt) always win. The validator forbids challenges from setting any
|
|
2205
|
+
// schema-defined key on author.community, so the spread here only carries novel extras.
|
|
2206
|
+
const challengeAuthorCommunity = comment.challengeCommentUpdate?.author
|
|
2207
|
+
?.community;
|
|
2195
2208
|
return {
|
|
2209
|
+
...(comment.challengeCommentUpdate ?? {}),
|
|
2196
2210
|
...(removedFromApproved ? removedFromApproved : undefined),
|
|
2197
2211
|
cid: comment.cid,
|
|
2198
2212
|
...(commentNumber !== undefined ? { number: commentNumber } : undefined),
|
|
2199
2213
|
...(postNumber !== undefined ? { postNumber } : undefined),
|
|
2200
2214
|
...commentUpdateCounts,
|
|
2201
|
-
flairs: commentModFlairs?.flairs || authorEdit?.flairs,
|
|
2215
|
+
flairs: commentModFlairs?.flairs || authorEdit?.flairs || comment.challengeCommentUpdate?.flairs,
|
|
2202
2216
|
...commentFlags,
|
|
2203
|
-
|
|
2204
|
-
|
|
2217
|
+
// moderatorReason wins when present, else fall back to the challenge-supplied reason (if any).
|
|
2218
|
+
reason: moderatorReason?.reason ?? comment.challengeCommentUpdate?.reason,
|
|
2219
|
+
author: { community: { ...(challengeAuthorCommunity ?? {}), ...authorCommunity } },
|
|
2205
2220
|
...lastChildAndLastReplyTimestamp,
|
|
2206
2221
|
...(authorEdit ? { edit: authorEdit } : undefined),
|
|
2207
2222
|
...(isThisCommentApproved ? { approved: isThisCommentApproved.approved } : undefined)
|