@brightchain/brightchain-lib 0.25.0 → 0.26.0
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/package.json +45 -4
- package/src/lib/enumerations/brightChainStrings.d.ts +6 -0
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainStrings.js +7 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -1
- package/src/lib/enumerations/messaging/index.d.ts +2 -0
- package/src/lib/enumerations/messaging/index.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/index.js +2 -0
- package/src/lib/enumerations/messaging/index.js.map +1 -1
- package/src/lib/enumerations/messaging/outboundDeliveryStatus.d.ts +48 -0
- package/src/lib/enumerations/messaging/outboundDeliveryStatus.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/outboundDeliveryStatus.js +70 -0
- package/src/lib/enumerations/messaging/outboundDeliveryStatus.js.map +1 -0
- package/src/lib/enumerations/messaging/spamClassification.d.ts +17 -0
- package/src/lib/enumerations/messaging/spamClassification.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/spamClassification.js +21 -0
- package/src/lib/enumerations/messaging/spamClassification.js.map +1 -0
- package/src/lib/enumerations/proposalActionType.d.ts +2 -0
- package/src/lib/enumerations/proposalActionType.d.ts.map +1 -1
- package/src/lib/enumerations/proposalActionType.js +2 -0
- package/src/lib/enumerations/proposalActionType.js.map +1 -1
- package/src/lib/enumerations/quorumErrorType.d.ts +6 -0
- package/src/lib/enumerations/quorumErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/quorumErrorType.js +7 -0
- package/src/lib/enumerations/quorumErrorType.js.map +1 -1
- package/src/lib/errors/quorumError.d.ts.map +1 -1
- package/src/lib/errors/quorumError.js +7 -0
- package/src/lib/errors/quorumError.js.map +1 -1
- package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUs.js +7 -0
- package/src/lib/i18n/strings/englishUs.js.map +1 -1
- package/src/lib/i18n/strings/french.d.ts.map +1 -1
- package/src/lib/i18n/strings/french.js +7 -0
- package/src/lib/i18n/strings/french.js.map +1 -1
- package/src/lib/i18n/strings/german.d.ts.map +1 -1
- package/src/lib/i18n/strings/german.js +7 -0
- package/src/lib/i18n/strings/german.js.map +1 -1
- package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
- package/src/lib/i18n/strings/japanese.js +7 -0
- package/src/lib/i18n/strings/japanese.js.map +1 -1
- package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
- package/src/lib/i18n/strings/mandarin.js +7 -0
- package/src/lib/i18n/strings/mandarin.js.map +1 -1
- package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
- package/src/lib/i18n/strings/spanish.js +7 -0
- package/src/lib/i18n/strings/spanish.js.map +1 -1
- package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
- package/src/lib/i18n/strings/ukrainian.js +7 -0
- package/src/lib/i18n/strings/ukrainian.js.map +1 -1
- package/src/lib/interfaces/auditLogEntry.d.ts +1 -1
- package/src/lib/interfaces/auditLogEntry.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.d.ts +8 -0
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/messaging/emailGateway.d.ts +197 -0
- package/src/lib/interfaces/messaging/emailGateway.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/emailGateway.js +14 -0
- package/src/lib/interfaces/messaging/emailGateway.js.map +1 -0
- package/src/lib/interfaces/messaging/index.d.ts +1 -0
- package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/index.js +1 -0
- package/src/lib/interfaces/messaging/index.js.map +1 -1
- package/src/lib/interfaces/network/banConfig.d.ts +46 -0
- package/src/lib/interfaces/network/banConfig.d.ts.map +1 -0
- package/src/lib/interfaces/network/banConfig.js +42 -0
- package/src/lib/interfaces/network/banConfig.js.map +1 -0
- package/src/lib/interfaces/network/banListCache.d.ts +39 -0
- package/src/lib/interfaces/network/banListCache.d.ts.map +1 -0
- package/src/lib/interfaces/network/banListCache.js +12 -0
- package/src/lib/interfaces/network/banListCache.js.map +1 -0
- package/src/lib/interfaces/network/banRecord.d.ts +48 -0
- package/src/lib/interfaces/network/banRecord.d.ts.map +1 -0
- package/src/lib/interfaces/network/banRecord.js +12 -0
- package/src/lib/interfaces/network/banRecord.js.map +1 -0
- package/src/lib/interfaces/network/index.d.ts +4 -0
- package/src/lib/interfaces/network/index.d.ts.map +1 -1
- package/src/lib/interfaces/network/index.js +5 -0
- package/src/lib/interfaces/network/index.js.map +1 -1
- package/src/lib/interfaces/proposal.d.ts +7 -0
- package/src/lib/interfaces/proposal.d.ts.map +1 -1
- package/src/lib/interfaces/services/quorumDatabase.d.ts +30 -0
- package/src/lib/interfaces/services/quorumDatabase.d.ts.map +1 -1
- package/src/lib/interfaces/vote.d.ts +2 -0
- package/src/lib/interfaces/vote.d.ts.map +1 -1
- package/src/lib/services/banListCache.d.ts +49 -0
- package/src/lib/services/banListCache.d.ts.map +1 -0
- package/src/lib/services/banListCache.js +113 -0
- package/src/lib/services/banListCache.js.map +1 -0
- package/src/lib/services/banProposalValidator.d.ts +67 -0
- package/src/lib/services/banProposalValidator.d.ts.map +1 -0
- package/src/lib/services/banProposalValidator.js +134 -0
- package/src/lib/services/banProposalValidator.js.map +1 -0
- package/src/lib/services/messaging/emailMessageService.d.ts +38 -0
- package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailMessageService.js +104 -22
- package/src/lib/services/messaging/emailMessageService.js.map +1 -1
- package/src/lib/services/quorumStateMachine.d.ts +28 -1
- package/src/lib/services/quorumStateMachine.d.ts.map +1 -1
- package/src/lib/services/quorumStateMachine.js +161 -2
- package/src/lib/services/quorumStateMachine.js.map +1 -1
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Ban proposal validation with Sybil attack protections.
|
|
4
|
+
*
|
|
5
|
+
* Validates BAN_MEMBER proposals before submission and filters votes
|
|
6
|
+
* to prevent coordinated abuse of the ban mechanism.
|
|
7
|
+
*
|
|
8
|
+
* Two key protections:
|
|
9
|
+
* 1. Epoch restriction: members who joined in the current epoch cannot propose bans.
|
|
10
|
+
* 2. Proposer-ally restriction: members admitted by the ban proposer cannot vote on
|
|
11
|
+
* that proposer's ban proposals.
|
|
12
|
+
*
|
|
13
|
+
* @see Network Trust and Ban Mechanism spec, Requirements 1.6, 6.4, 6.5
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.BanProposalValidator = void 0;
|
|
17
|
+
const memberStatusType_1 = require("../enumerations/memberStatusType");
|
|
18
|
+
const quorumErrorType_1 = require("../enumerations/quorumErrorType");
|
|
19
|
+
const quorumError_1 = require("../errors/quorumError");
|
|
20
|
+
/**
|
|
21
|
+
* Validates BAN_MEMBER proposals and filters votes for Sybil protection.
|
|
22
|
+
*/
|
|
23
|
+
class BanProposalValidator {
|
|
24
|
+
dataProvider;
|
|
25
|
+
idProvider;
|
|
26
|
+
constructor(dataProvider, idProvider) {
|
|
27
|
+
this.dataProvider = dataProvider;
|
|
28
|
+
this.idProvider = idProvider;
|
|
29
|
+
}
|
|
30
|
+
idsEqual(a, b) {
|
|
31
|
+
const aBytes = this.idProvider.toBytes(a);
|
|
32
|
+
const bBytes = this.idProvider.toBytes(b);
|
|
33
|
+
if (aBytes.length !== bBytes.length)
|
|
34
|
+
return false;
|
|
35
|
+
for (let i = 0; i < aBytes.length; i++) {
|
|
36
|
+
if (aBytes[i] !== bBytes[i])
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validate a BAN_MEMBER proposal before submission.
|
|
43
|
+
*
|
|
44
|
+
* Checks:
|
|
45
|
+
* 1. Proposer is not banning themselves
|
|
46
|
+
* 2. Target member exists and is not already banned
|
|
47
|
+
* 3. Proposer did not join in the current epoch (Sybil protection)
|
|
48
|
+
*
|
|
49
|
+
* @param proposerId - The member submitting the proposal
|
|
50
|
+
* @param targetMemberId - The member to be banned
|
|
51
|
+
* @param currentEpoch - The current quorum epoch
|
|
52
|
+
* @throws QuorumError if validation fails
|
|
53
|
+
*/
|
|
54
|
+
async validateBanProposal(proposerId, targetMemberId, currentEpoch) {
|
|
55
|
+
// 1. Cannot ban yourself
|
|
56
|
+
if (this.idsEqual(proposerId, targetMemberId)) {
|
|
57
|
+
throw new quorumError_1.QuorumError(quorumErrorType_1.QuorumErrorType.CannotBanSelf);
|
|
58
|
+
}
|
|
59
|
+
// 2. Target must exist and not already be banned
|
|
60
|
+
const target = await this.dataProvider.getMember(targetMemberId);
|
|
61
|
+
if (!target) {
|
|
62
|
+
throw new quorumError_1.QuorumError(quorumErrorType_1.QuorumErrorType.MemberNotFound);
|
|
63
|
+
}
|
|
64
|
+
if (target.status === memberStatusType_1.MemberStatusType.Banned) {
|
|
65
|
+
throw new quorumError_1.QuorumError(quorumErrorType_1.QuorumErrorType.MemberAlreadyBanned);
|
|
66
|
+
}
|
|
67
|
+
// 3. Proposer must not have joined in the current epoch
|
|
68
|
+
// Check if the proposer is in the current epoch's member list but was NOT
|
|
69
|
+
// in the previous epoch. If there's no previous epoch (epoch 1), founding
|
|
70
|
+
// members are allowed.
|
|
71
|
+
if (currentEpoch.epochNumber > 1) {
|
|
72
|
+
const proposerHex = this.idProvider.toString(proposerId, 'hex');
|
|
73
|
+
const currentMemberHexes = currentEpoch.memberIds.map((id) => this.idProvider.toString(id, 'hex'));
|
|
74
|
+
// If the proposer is in the current epoch, we need to check if they
|
|
75
|
+
// were also in the previous epoch. We do this by checking if the
|
|
76
|
+
// current epoch was created as a result of adding this member.
|
|
77
|
+
// A simpler heuristic: if the proposer's admission proposer exists
|
|
78
|
+
// and the current epoch is the one where they were added, block it.
|
|
79
|
+
// For now, we check if the member is in the current epoch's member list
|
|
80
|
+
// and was the most recently added member (the one that triggered this epoch).
|
|
81
|
+
const isInCurrentEpoch = currentMemberHexes.includes(proposerHex);
|
|
82
|
+
if (isInCurrentEpoch) {
|
|
83
|
+
// Check if this member was added in this epoch by looking at
|
|
84
|
+
// whether the previous epoch existed without them
|
|
85
|
+
const previousEpochNumber = currentEpoch.previousEpochNumber;
|
|
86
|
+
if (previousEpochNumber !== undefined &&
|
|
87
|
+
currentEpoch.memberIds.length > 0) {
|
|
88
|
+
// The member joined in this epoch if they weren't in the previous one.
|
|
89
|
+
// We rely on the database to tell us who proposed their admission.
|
|
90
|
+
const admissionProposerId = await this.dataProvider.getMemberAdmissionProposerId(proposerId);
|
|
91
|
+
if (admissionProposerId !== null) {
|
|
92
|
+
// Member was admitted (not a founder). Check if they were admitted
|
|
93
|
+
// in the current epoch by comparing epoch numbers.
|
|
94
|
+
// Since we don't store the admission epoch directly, we use the
|
|
95
|
+
// heuristic that if the member count increased in this epoch and
|
|
96
|
+
// this member has an admission proposer, they may be new.
|
|
97
|
+
// A more robust check would store the admission epoch on the member record.
|
|
98
|
+
// For now, we block any member admitted in the last epoch transition.
|
|
99
|
+
// TODO: Store admissionEpoch on IQuorumMember for precise checking.
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Filter votes on a BAN_MEMBER proposal to exclude proposer-ally votes.
|
|
107
|
+
*
|
|
108
|
+
* A vote is excluded if the voter was admitted to the quorum by the same
|
|
109
|
+
* member who submitted the ban proposal. This prevents a single member
|
|
110
|
+
* from admitting allies and immediately using their votes to ban others.
|
|
111
|
+
*
|
|
112
|
+
* @param proposal - The BAN_MEMBER proposal
|
|
113
|
+
* @param votes - All votes cast on the proposal
|
|
114
|
+
* @returns Filtered votes with proposer-ally votes removed
|
|
115
|
+
*/
|
|
116
|
+
async filterVotes(proposal, votes) {
|
|
117
|
+
const proposerHex = this.idProvider.toString(proposal.proposerMemberId, 'hex');
|
|
118
|
+
const filtered = [];
|
|
119
|
+
for (const vote of votes) {
|
|
120
|
+
const voterAdmissionProposerId = await this.dataProvider.getMemberAdmissionProposerId(vote.voterMemberId);
|
|
121
|
+
if (voterAdmissionProposerId !== null) {
|
|
122
|
+
const admissionProposerHex = this.idProvider.toString(voterAdmissionProposerId, 'hex');
|
|
123
|
+
if (admissionProposerHex === proposerHex) {
|
|
124
|
+
// This voter was admitted by the ban proposer — exclude their vote
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
filtered.push(vote);
|
|
129
|
+
}
|
|
130
|
+
return filtered;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
exports.BanProposalValidator = BanProposalValidator;
|
|
134
|
+
//# sourceMappingURL=banProposalValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banProposalValidator.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/banProposalValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,17 @@ import type { MessageCBLService } from './messageCBLService';
|
|
|
35
35
|
* @see Requirement 8.6 - Configurable maximum total message size limit
|
|
36
36
|
*/
|
|
37
37
|
export interface IEmailServiceConfig {
|
|
38
|
+
/**
|
|
39
|
+
* The canonical email domain for this BrightChain network instance.
|
|
40
|
+
* Recipients whose domain does not match are considered external and
|
|
41
|
+
* will be routed to the Email Gateway via a gateway-outbound gossip
|
|
42
|
+
* announcement.
|
|
43
|
+
*
|
|
44
|
+
* @default CoreConstants.SiteEmailDomain ('brightchain.org')
|
|
45
|
+
* @see Requirement 1.1 — detect external recipients
|
|
46
|
+
* @see Requirement 8.1 — read canonical domain from CoreConstants
|
|
47
|
+
*/
|
|
48
|
+
canonicalDomain: string;
|
|
38
49
|
/**
|
|
39
50
|
* Maximum size of a single attachment in bytes.
|
|
40
51
|
* @default 25 * 1024 * 1024 (25MB)
|
|
@@ -559,6 +570,33 @@ export declare class EmailMessageService {
|
|
|
559
570
|
verified: boolean;
|
|
560
571
|
isSigned: boolean;
|
|
561
572
|
}>;
|
|
573
|
+
/**
|
|
574
|
+
// ─── External Recipient Routing ──────────────────────────────────────
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* Determine whether a mailbox belongs to an external domain
|
|
578
|
+
* (i.e. its domain does not match the configured canonical domain).
|
|
579
|
+
*
|
|
580
|
+
* @param mailbox - The mailbox to check
|
|
581
|
+
* @returns `true` when the mailbox domain differs from the canonical domain
|
|
582
|
+
*
|
|
583
|
+
* @see Requirement 1.1 — detect external recipients
|
|
584
|
+
*/
|
|
585
|
+
private isExternalMailbox;
|
|
586
|
+
/**
|
|
587
|
+
* Partition an array of mailboxes into internal (canonical domain) and
|
|
588
|
+
* external (non-canonical domain) groups.
|
|
589
|
+
*
|
|
590
|
+
* @param mailboxes - The mailboxes to partition
|
|
591
|
+
* @returns Object with `internal` and `external` arrays
|
|
592
|
+
*
|
|
593
|
+
* @see Requirement 1.1 — detect external recipients
|
|
594
|
+
* @see Requirement 1.4 — mixed internal/external recipient handling
|
|
595
|
+
*/
|
|
596
|
+
partitionRecipients(mailboxes: IMailbox[]): {
|
|
597
|
+
internal: IMailbox[];
|
|
598
|
+
external: IMailbox[];
|
|
599
|
+
};
|
|
562
600
|
/**
|
|
563
601
|
* Creates a copy of the email metadata with BCC information stripped.
|
|
564
602
|
* This copy is delivered to To and CC recipients.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailMessageService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"emailMessageService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.EmailMessageService = exports.DEFAULT_EMAIL_SERVICE_CONFIG = void 0;
|
|
23
23
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
24
|
+
const constants_1 = require("../../constants");
|
|
24
25
|
const platformCrypto_1 = require("../../crypto/platformCrypto");
|
|
25
26
|
const durabilityLevel_1 = require("../../enumerations/durabilityLevel");
|
|
26
27
|
const deliveryStatus_1 = require("../../enumerations/messaging/deliveryStatus");
|
|
@@ -37,6 +38,7 @@ const emailValidator_1 = require("./emailValidator");
|
|
|
37
38
|
* Default configuration values for EmailMessageService.
|
|
38
39
|
*/
|
|
39
40
|
exports.DEFAULT_EMAIL_SERVICE_CONFIG = {
|
|
41
|
+
canonicalDomain: constants_1.CoreConstants.SiteEmailDomain,
|
|
40
42
|
maxAttachmentSize: 25 * 1024 * 1024, // 25MB
|
|
41
43
|
maxMessageSize: 50 * 1024 * 1024, // 50MB
|
|
42
44
|
inlinePartThreshold: 64 * 1024, // 64KB
|
|
@@ -299,28 +301,53 @@ class EmailMessageService {
|
|
|
299
301
|
throw new emailError_1.EmailError(emailErrorType_1.EmailErrorType.STORAGE_FAILED, `Failed to store email metadata: ${err instanceof Error ? err.message : String(err)}`, { messageId });
|
|
300
302
|
}
|
|
301
303
|
// 5. Initiate delivery to recipients via gossip with BCC privacy handling
|
|
304
|
+
// and external recipient routing (Requirements 1.1, 1.3, 1.4, 9.2, 9.3, 6.3).
|
|
302
305
|
//
|
|
303
|
-
// BCC Privacy
|
|
306
|
+
// BCC Privacy:
|
|
304
307
|
// - To/CC recipients receive a single gossip announcement WITHOUT BCC info
|
|
305
308
|
// - Each BCC recipient receives their own separate gossip announcement
|
|
306
309
|
// - All announcements have ackRequired=true (Requirement 6.5)
|
|
310
|
+
//
|
|
311
|
+
// External Routing (Requirements 1.1, 1.4):
|
|
312
|
+
// - Recipients whose domain ≠ canonicalDomain are external
|
|
313
|
+
// - Internal recipients: delivered via gossip as before
|
|
314
|
+
// - External recipients: routed to Email Gateway via a gateway-outbound
|
|
315
|
+
// gossip announcement so the EmailGatewayService can pick them up
|
|
316
|
+
// - Mixed lists: both deliveries happen simultaneously
|
|
317
|
+
// - All RFC 5322 headers are preserved in the metadata (Requirement 1.3)
|
|
307
318
|
try {
|
|
308
|
-
// 5a. Deliver to To/CC recipients (no BCC info)
|
|
309
|
-
const
|
|
310
|
-
...(email.to ?? [])
|
|
311
|
-
...(email.cc ?? [])
|
|
319
|
+
// 5a. Deliver to To/CC recipients (no BCC info), partitioned by domain
|
|
320
|
+
const toCcMailboxes = [
|
|
321
|
+
...(email.to ?? []),
|
|
322
|
+
...(email.cc ?? []),
|
|
312
323
|
];
|
|
313
|
-
if (
|
|
324
|
+
if (toCcMailboxes.length > 0) {
|
|
325
|
+
const { internal: internalToCc, external: externalToCc } = this.partitionRecipients(toCcMailboxes);
|
|
314
326
|
const toCcMetadata = this.createBccStrippedCopy(metadata);
|
|
315
327
|
await this.metadataStore.store(toCcMetadata);
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
328
|
+
// Deliver to internal To/CC recipients via gossip
|
|
329
|
+
if (internalToCc.length > 0) {
|
|
330
|
+
await this.gossipService.announceMessage(toCcMetadata.cblBlockIds ?? [], {
|
|
331
|
+
messageId,
|
|
332
|
+
recipientIds: internalToCc.map((m) => m.address),
|
|
333
|
+
priority: 'normal',
|
|
334
|
+
blockIds: toCcMetadata.cblBlockIds ?? [],
|
|
335
|
+
cblBlockId: toCcMetadata.blockId,
|
|
336
|
+
ackRequired: true,
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
// Route external To/CC recipients to Email Gateway via gateway-outbound gossip
|
|
340
|
+
if (externalToCc.length > 0) {
|
|
341
|
+
await this.gossipService.announceMessage(toCcMetadata.cblBlockIds ?? [], {
|
|
342
|
+
messageId,
|
|
343
|
+
recipientIds: externalToCc.map((m) => m.address),
|
|
344
|
+
priority: 'normal',
|
|
345
|
+
blockIds: toCcMetadata.cblBlockIds ?? [],
|
|
346
|
+
cblBlockId: toCcMetadata.blockId,
|
|
347
|
+
ackRequired: false,
|
|
348
|
+
gatewayOutbound: true,
|
|
349
|
+
});
|
|
350
|
+
}
|
|
324
351
|
}
|
|
325
352
|
// 5b. Deliver to each BCC recipient separately (BCC privacy)
|
|
326
353
|
// Each BCC recipient gets their own announcement with no BCC header and
|
|
@@ -329,14 +356,29 @@ class EmailMessageService {
|
|
|
329
356
|
for (const bccMailbox of email.bcc) {
|
|
330
357
|
const bccCopy = this.createBccRecipientCopy(metadata, bccMailbox);
|
|
331
358
|
await this.metadataStore.store(bccCopy);
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
359
|
+
if (this.isExternalMailbox(bccMailbox)) {
|
|
360
|
+
// External BCC: route to Email Gateway
|
|
361
|
+
await this.gossipService.announceMessage(bccCopy.cblBlockIds ?? [], {
|
|
362
|
+
messageId,
|
|
363
|
+
recipientIds: [bccMailbox.address],
|
|
364
|
+
priority: 'normal',
|
|
365
|
+
blockIds: bccCopy.cblBlockIds ?? [],
|
|
366
|
+
cblBlockId: bccCopy.blockId,
|
|
367
|
+
ackRequired: false,
|
|
368
|
+
gatewayOutbound: true,
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
// Internal BCC: deliver via gossip as before
|
|
373
|
+
await this.gossipService.announceMessage(bccCopy.cblBlockIds ?? [], {
|
|
374
|
+
messageId,
|
|
375
|
+
recipientIds: [bccMailbox.address],
|
|
376
|
+
priority: 'normal',
|
|
377
|
+
blockIds: bccCopy.cblBlockIds ?? [],
|
|
378
|
+
cblBlockId: bccCopy.blockId,
|
|
379
|
+
ackRequired: true,
|
|
380
|
+
});
|
|
381
|
+
}
|
|
340
382
|
}
|
|
341
383
|
}
|
|
342
384
|
}
|
|
@@ -817,6 +859,46 @@ class EmailMessageService {
|
|
|
817
859
|
return { verified, isSigned: true };
|
|
818
860
|
}
|
|
819
861
|
// ─── BCC Privacy Handling ─────────────────────────────────────────
|
|
862
|
+
/**
|
|
863
|
+
// ─── External Recipient Routing ──────────────────────────────────────
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* Determine whether a mailbox belongs to an external domain
|
|
867
|
+
* (i.e. its domain does not match the configured canonical domain).
|
|
868
|
+
*
|
|
869
|
+
* @param mailbox - The mailbox to check
|
|
870
|
+
* @returns `true` when the mailbox domain differs from the canonical domain
|
|
871
|
+
*
|
|
872
|
+
* @see Requirement 1.1 — detect external recipients
|
|
873
|
+
*/
|
|
874
|
+
isExternalMailbox(mailbox) {
|
|
875
|
+
return (mailbox.domain.toLowerCase() !==
|
|
876
|
+
this.config.canonicalDomain.toLowerCase());
|
|
877
|
+
}
|
|
878
|
+
/**
|
|
879
|
+
* Partition an array of mailboxes into internal (canonical domain) and
|
|
880
|
+
* external (non-canonical domain) groups.
|
|
881
|
+
*
|
|
882
|
+
* @param mailboxes - The mailboxes to partition
|
|
883
|
+
* @returns Object with `internal` and `external` arrays
|
|
884
|
+
*
|
|
885
|
+
* @see Requirement 1.1 — detect external recipients
|
|
886
|
+
* @see Requirement 1.4 — mixed internal/external recipient handling
|
|
887
|
+
*/
|
|
888
|
+
partitionRecipients(mailboxes) {
|
|
889
|
+
const internal = [];
|
|
890
|
+
const external = [];
|
|
891
|
+
for (const mailbox of mailboxes) {
|
|
892
|
+
if (this.isExternalMailbox(mailbox)) {
|
|
893
|
+
external.push(mailbox);
|
|
894
|
+
}
|
|
895
|
+
else {
|
|
896
|
+
internal.push(mailbox);
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
return { internal, external };
|
|
900
|
+
}
|
|
901
|
+
// ─── BCC Privacy Helpers ──────────────────────────────────────────
|
|
820
902
|
/**
|
|
821
903
|
* Creates a copy of the email metadata with BCC information stripped.
|
|
822
904
|
* This copy is delivered to To and CC recipients.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emailMessageService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,iDAA8C;AAC9C,gEAA6D;AAC7D,wEAAqE;AACrE,gFAA6E;AAC7E,gFAA6E;AAC7E,kGAA+F;AAC/F,kFAA+E;AAC/E,4EAAyE;AACzE,kEAA+D;AAG/D,yEAAwE;AAQxE,kEAI6C;AAC7C,qEAAkE;AAClE,qDAG0B;AA8E1B;;GAEG;AACU,QAAA,4BAA4B,GAAwB;IAC/D,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;IAC5C,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;IACzC,mBAAmB,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO;IACvC,mBAAmB,EAAE,GAAG,GAAG,IAAI,EAAE,QAAQ;IACzC,eAAe,EAAE,EAAE;IACnB,kBAAkB,EAAE,EAAE;IACtB,gBAAgB,EAAE,CAAC;IACnB,iBAAiB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;IACnD,MAAM,EAAE,WAAW;CACpB,CAAC;AAgWF,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,mBAAmB;IAIX;IACA;IACA;IALF,MAAM,CAAsB;IAE7C,YACmB,iBAAoC,EACpC,aAAkC,EAClC,aAA6B,EAC9C,MAAqC;QAHpB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,kBAAa,GAAb,aAAa,CAAqB;QAClC,kBAAa,GAAb,aAAa,CAAgB;QAG9C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,oCAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/D,CAAC;IAED,uEAAuE;IAEvE;;;;;;;;;;;;;OAaG;IACH;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,KAAkB;QAChC,+CAA+C;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QAEtC,uEAAuE;QACvE,MAAM,cAAc,GAAyB;YAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI;YACJ,SAAS;YACT,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC5B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;gBACL,CAAC,CAAC,SAAS;YACb,QAAQ,EACN,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACzE,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC/D,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAChD,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO;gBACL,SAAS;gBACT,oBAAoB,EAAE,EAAE;gBACxB,cAAc,EAAE,IAAI,GAAG,EAAE;gBACzB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,gBAAgB,CAAC,MAAM;qBAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;qBACtC,IAAI,CAAC,IAAI,CAAC;aACd,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,kEAAkE;QAClE,MAAM,qBAAqB,GAAa,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,WAAW,GACf,KAAK,CAAC,WAAW;YACjB,IAAA,4BAAiB,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzE,MAAM,QAAQ,GAAmB;YAC/B,wBAAwB;YACxB,OAAO,EAAE,oBAA+B;YACxC,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,iCAAe,CAAC,QAAQ;YACzC,cAAc,EAAE,EAAE;YAClB,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,GAAG;YACnB,iBAAiB,EAAE,qCAAiB,CAAC,OAAO;YAC5C,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,EAAE;YAClB,IAAI,EACF,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,CAAC,KAAK,CAAC,WAAW;oBAChB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjE,CAAC,CAAC,CAAC,CAAC;YACR,QAAQ,EAAE,EAAE;YAEZ,0BAA0B;YAC1B,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;YAC5B,UAAU,EAAE,qBAAqB;YACjC,QAAQ,EAAE,iCAAe,CAAC,MAAM;YAChC,cAAc,EAAE,IAAI,GAAG,CACrB,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,+BAAc,CAAC,OAAO,CAAC,CAAC,CACpE;YACD,eAAe,EAAE,IAAI,GAAG,EAAE;YAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,iDAAuB,CAAC,IAAI;YACxE,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,CAAC,oBAA+B,CAAC;YAE9C,wBAAwB;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS;YACT,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI;YACJ,WAAW,EAAE,KAAK;YAClB,WAAW;YACX,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE;YAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,SAAS;YACtB,gBAAgB,EAAE,IAAI,GAAG,EAAE;YAC3B,YAAY,EAAE,IAAI,GAAG,EAAE;SACxB,CAAC;QAEF,sCAAsC;QACtC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,QAAQ,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CACxE,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,IACE,KAAK,CAAC,gBAAgB;YACtB,KAAK,CAAC,gBAAgB,KAAK,iDAAuB,CAAC,IAAI,EACvD,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,iBAAiB,GAAG,IAAI,+CAAsB,EAAE,CAAC;gBAEvD,8CAA8C;gBAC9C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAC1C,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAChD,CAAC;gBAEF,IAAI,KAAK,CAAC,gBAAgB,KAAK,iDAAuB,CAAC,cAAc,EAAE,CAAC;oBACtE,iCAAiC;oBACjC,IACE,CAAC,KAAK,CAAC,mBAAmB;wBAC1B,KAAK,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,EACpC,CAAC;wBACD,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,kEAAkE,CACnE,CAAC;oBACJ,CAAC;oBAED,8CAA8C;oBAC9C,IAAI,MAAM,CAAC;oBACX,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;wBACpD,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAC7C,WAAW,EACX,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,eAAe,CACtB,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,MAAM,iBAAiB,CAAC,oBAAoB,CACnD,WAAW,EACX,KAAK,CAAC,mBAAmB,CAC1B,CAAC;oBACJ,CAAC;oBAED,kDAAkD;oBAClD,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC;oBACjE,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrD,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;oBAC/D,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oBACvD,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC;oBAChE,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC;gBACvE,CAAC;qBAAM,IACL,KAAK,CAAC,gBAAgB,KAAK,iDAAuB,CAAC,UAAU,EAC7D,CAAC;oBACD,uCAAuC;oBACvC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;wBACrB,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,kDAAkD,CACnD,CAAC;oBACJ,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,uBAAuB,CAC5D,WAAW,EACX,KAAK,CAAC,SAAS,CAChB,CAAC;oBAEF,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrD,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;oBAE/D,kBAAkB;oBAClB,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;wBACpD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAC7C,WAAW,EACX,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,eAAe,CACtB,CAAC;wBACF,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACzB,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC;wBAC1C,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;oBACjD,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,iDAAuB,CAAC,MAAM,EAAE,CAAC;oBACrE,kEAAkE;oBAClE,IACE,CAAC,KAAK,CAAC,mBAAmB;wBAC1B,KAAK,CAAC,mBAAmB,CAAC,IAAI,KAAK,CAAC,EACpC,CAAC;wBACD,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,0DAA0D,CAC3D,CAAC;oBACJ,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;wBACtD,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,mEAAmE,CACpE,CAAC;oBACJ,CAAC;oBAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,CACjD,WAAW,EACX,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,eAAe,CACtB,CAAC;oBAEF,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC;oBACjE,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBACrD,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC;oBAC/D,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oBACvD,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC;oBAChE,QAAQ,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,eAAe,CAAC;gBACvE,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,uBAAU;oBAAE,MAAM,GAAG,CAAC;gBACzC,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC9E,EAAE,SAAS,EAAE,CACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,cAAc,EAC7B,mCAAmC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACrF,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,EAAE;QACF,4CAA4C;QAC5C,2EAA2E;QAC3E,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,gBAAgB,GAAG;gBACvB,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1C,CAAC;YAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CACtC,YAAY,CAAC,WAAW,IAAI,EAAE,EAC9B;oBACE,SAAS;oBACT,YAAY,EAAE,gBAAgB;oBAC9B,QAAQ,EAAE,QAAQ;oBAClB,QAAQ,EAAE,YAAY,CAAC,WAAW,IAAI,EAAE;oBACxC,UAAU,EAAE,YAAY,CAAC,OAAO;oBAChC,WAAW,EAAE,IAAI;iBAClB,CACF,CAAC;YACJ,CAAC;YAED,6DAA6D;YAC7D,wEAAwE;YACxE,6CAA6C;YAC7C,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAClE,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACxC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;wBAClE,SAAS;wBACT,YAAY,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;wBAClC,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;wBACnC,UAAU,EAAE,OAAO,CAAC,OAAO;wBAC3B,WAAW,EAAE,IAAI;qBAClB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+EAA+E;YAC/E,4CAA4C;YAC5C,OAAO;gBACL,SAAS;gBACT,oBAAoB;gBACpB,cAAc,EAAE,IAAI,GAAG,EAA4B;gBACnD,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACzF,CAAC;QACJ,CAAC;QAED,oFAAoF;QACpF,OAAO;YACL,SAAS;YACT,oBAAoB;YACpB,cAAc,EAAE,IAAI,GAAG,EAA4B;YACnD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,yBAAyB,SAAS,aAAa,EAC/C,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,IAAI,QAA4B,CAAC;QACjC,IAAI,QAA4B,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAElC,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM;oBAChC,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO;oBACpC,IAAI,CAAC,IAAI,EACT,CAAC;oBACD,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;qBAAM,IACL,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM;oBAChC,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,MAAM;oBACnC,IAAI,CAAC,IAAI,EACT,CAAC;oBACD,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,KAAK,MAAM,cAAc,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAClD,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,yEAAyE;gBACzE,IAAI,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAC1D,cAAc,CAAC,QAAQ,CACxB,CAAC;oBACF,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE;YAC3B,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,yBAAyB,SAAS,aAAa,EAC/C,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,uEAAuE;IAEvE;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAAkB;QACjD,4CAA4C;QAC5C,MAAM,eAAe,GAAgB;YACnC,GAAG,KAAK;YACR,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;YACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;YACvD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM;YAC5C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK;SACtC,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,MAAc;QAChD,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,uEAAuE;IAEvE;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,iCAAiC;QACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,iDAAiD;QACjD,kEAAkE;QAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,+BAA+B;QAC/B,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;QAChD,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE5C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;YAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,gEAAgE;gBAChE,SAAS;YACX,CAAC;YAED,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAElC,4DAA4D;YAC5D,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAClB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,yEAAyE;QACzE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+EAA+E;QACjF,CAAC;QAED,sEAAsE;QACtE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjE,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB;QACpC,iCAAiC;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,8DAA8D;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvD,0CAA0C;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,+DAA+D;QAC/D,yDAAyD;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,SAAS,EAAE,CAAC;gBACd,gEAAgE;gBAChE,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/D,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,yCAAyC;gBACzC,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uEAAuE;IAEvE;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,WAAW,CACf,UAAkB,EAClB,YAAyB;QAEzB,iCAAiC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,kCAAkC,UAAU,aAAa,EACzD,EAAE,SAAS,EAAE,UAAU,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,4DAA4D;QAC5D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhE,8EAA8E;QAC9E,iEAAiE;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC/C,MAAM,UAAU,GACd,aAAa,CAAC,MAAM,GAAG,OAAO;YAC5B,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC;QAEpB,2BAA2B;QAC3B,IAAI,YAAwB,CAAC;QAC7B,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,iEAAiE;YACjE,qEAAqE;YACrE,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;YACjD,MAAM,kBAAkB,GAAG;gBACzB,QAAQ,CAAC,IAAI;gBACb,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;gBACtB,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;aACvB,CAAC;YACF,iDAAiD;YACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,YAAY,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC7B,IAAI,IAAI,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACf,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,YAAY;gBACV,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAC7C,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;oBACvB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,uDAAuD;QACvD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;QAED,6DAA6D;QAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QAC/C,MAAM,OAAO,GACX,YAAY,CAAC,OAAO;YACpB,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,OAAO,eAAe,EAAE,CAAC,CAAC;QAEhC,oCAAoC;QACpC,MAAM,UAAU,GAAgB;YAC9B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,EAAE,EAAE,YAAY;YAChB,EAAE,EAAE,YAAY,CAAC,YAAY;YAC7B,OAAO;YACP,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,UAAU;SACX,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,YAAY,CAChB,UAAkB,EAClB,SAAqB;QAErB,iCAAiC;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,kCAAkC,UAAU,aAAa,EACzD,EAAE,SAAS,EAAE,UAAU,EAAE,CAC1B,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,MAAM,iBAAiB,GAAuB;YAC5C,UAAU,EAAE,QAAQ,CAAC,IAAI;YACzB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE;SAC1C,CAAC;QAEF,6EAA6E;QAC7E,MAAM,qBAAqB,GAAG,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC;QAC3D,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,GAAG,qBAAqB,CAAC,CAAC;QAE3E,wFAAwF;QACxF,MAAM,UAAU,GAAgB;YAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,EAAE,EAAE,SAAS;YACb,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACvB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAChC,CAAC,CAAC,QAAQ,CAAC,OAAO;oBAClB,CAAC,CAAC,QAAQ,QAAQ,CAAC,OAAO,EAAE;gBAC9B,CAAC,CAAC,SAAS;YACb,QAAQ,EAAE,SAAS;YACnB,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,iBAAiB,CAAC,eAAe;YAC5C,aAAa,EAAE,QAAQ,CAAC,aAAa;SACtC,CAAC;QAEF,8BAA8B;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEhD,sDAAsD;QACtD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;oBAChD,aAAa,EAAE,oBAAoB;iBACpC,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,2EAA2E;YAC7E,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uEAAuE;IAEvE;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CACrB,SAAiB;QAEjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,yBAAyB,SAAS,aAAa,EAC/C,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,gBAAgB,CAAC;IACnC,CAAC;IAED,oEAAoE;IAEpE;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,gBAA4B;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAClB,+BAAc,CAAC,iBAAiB,EAChC,yBAAyB,SAAS,aAAa,EAC/C,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACrD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QAED,gEAAgE;QAChE,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,IACE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM;oBAChC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,OAAO;wBACnC,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,MAAM,CAAC;oBACtC,IAAI,CAAC,IAAI,EACT,CAAC;oBACD,WAAW,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,iBAAiB,GAAG,IAAI,+CAAsB,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,eAAe,CACtD,OAAO,EACP,QAAQ,CAAC,gBAAgB,EACzB,gBAAgB,CACjB,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,qEAAqE;IAErE;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,QAAwB;QAC5C,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CACnD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAClC,CAAC;QAEF,yCAAyC;QACzC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA0B,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAA4B,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,wBAAwB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,OAAkB;YAC9C,GAAG,EAAE,SAAS;YACd,UAAU,EAAE,kBAAkB;YAC9B,cAAc,EAAE,sBAAsB;YACtC,gBAAgB,EAAE,wBAAwB;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,sBAAsB,CACpB,QAAwB,EACxB,YAAsB;QAEtB,iEAAiE;QACjE,gEAAgE;QAChE,gCAAgC;QAChC,iEAAiE;QACjE,uDAAuD;QACvD,MAAM,aAAa,GAAG;YACpB,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACpC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC7C,CAAC;QAEF,OAAO;YACL,GAAG,QAAQ;YACX,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,QAAQ,YAAY,CAAC,OAAO,EAAa;YACrE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;YAClC,GAAG,EAAE,SAAS;YACd,UAAU,EAAE,CAAC,GAAG,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC;YACpD,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,+BAAc,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,gBAAgB,EAAE,IAAI,GAAG,EAAE;YAC3B,gBAAgB,EAAE,iDAAuB,CAAC,cAAc;SACzD,CAAC;IACJ,CAAC;IAED,uEAAuE;IAEvE;;;;;;;;OAQG;IAEH,uEAAuE;IAEvE;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,KAAkB;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,MAAM,KAAK,IAAI,CAAC;IAC7C,CAAC;IAED,uEAAuE;IAEvE;;;;;;;;;;;;;;;OAeG;IACK,KAAK,CAAC,eAAe,CAC3B,KAAuB;QAEvB,mFAAmF;QACnF,MAAM,UAAU,GAAG,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,sDAAsD;QACtD,uEAAuE;QACvE,uEAAuE;QACvE,8CAA8C;QAC9C,IAAI,WAAmB,CAAC;QACxB,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,QAAQ,IAAI,IAAI;YACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,EAC7B,CAAC;YACD,iEAAiE;YACjE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,gFAAgF;YAChF,WAAW,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,MAAM,YAAY,GAAG,sBAAsB,cAAc,EAAE,CAAC;QAE5D,0CAA0C;QAC1C,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEvE,sDAAsD;QACtD,IAAI,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAC7C,cAAc,EACd,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY;YACZ,QAAQ,EAAE,CAAC,OAAO,CAAC;YACnB,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,WAAW;SACxB,CAAC;IACJ,CAAC;IAED,yEAAyE;IAEzE;;;;;;;;;;;;;;;;;;;OAmBG;IACH,iBAAiB;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,IAAA,+BAAc,EAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,MAAM,MAAM,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,IAAI,MAAM,IAAI,OAAO,GAAG,CAAC;IAClC,CAAC;IAED,uEAAuE;IAEvE;;;;OAIG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAhpCD,kDAgpCC"}
|
|
1
|
+
{"version":3,"file":"emailMessageService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ import { VoteInput } from '../interfaces/vote';
|
|
|
21
21
|
import { AliasRegistry } from './aliasRegistry';
|
|
22
22
|
import { AuditLogService } from './auditLogService';
|
|
23
23
|
import { SealingService } from './sealing.service';
|
|
24
|
+
import { IBanConfig } from '../interfaces/network/banConfig';
|
|
25
|
+
import { BanListCache } from './banListCache';
|
|
24
26
|
/**
|
|
25
27
|
* QuorumStateMachine is the central coordinator for the quorum system.
|
|
26
28
|
*
|
|
@@ -43,8 +45,11 @@ export declare class QuorumStateMachine<TID extends PlatformID = Uint8Array> imp
|
|
|
43
45
|
private configuredThreshold;
|
|
44
46
|
private initialized;
|
|
45
47
|
private readonly checksumService;
|
|
48
|
+
private readonly banConfig;
|
|
49
|
+
private readonly banListCache;
|
|
50
|
+
private readonly banProposalValidator;
|
|
46
51
|
private metricsData;
|
|
47
|
-
constructor(db: IQuorumDatabase<TID>, sealingService: SealingService<TID>, gossipService: IGossipService, auditLogService?: AuditLogService<TID> | undefined, aliasRegistry?: AliasRegistry<TID> | undefined);
|
|
52
|
+
constructor(db: IQuorumDatabase<TID>, sealingService: SealingService<TID>, gossipService: IGossipService, auditLogService?: AuditLogService<TID> | undefined, aliasRegistry?: AliasRegistry<TID> | undefined, banConfig?: Partial<IBanConfig>);
|
|
48
53
|
/**
|
|
49
54
|
* Initialize the quorum system.
|
|
50
55
|
*
|
|
@@ -302,6 +307,24 @@ export declare class QuorumStateMachine<TID extends PlatformID = Uint8Array> imp
|
|
|
302
307
|
* 11.8.11 CUSTOM — log approval without automated execution.
|
|
303
308
|
*/
|
|
304
309
|
private executeCustomAction;
|
|
310
|
+
/**
|
|
311
|
+
* Execute a BAN_MEMBER proposal.
|
|
312
|
+
*
|
|
313
|
+
* Sets the target member's status to Banned, creates a ban record with
|
|
314
|
+
* approval signatures from the proposal's votes, persists it, updates
|
|
315
|
+
* the local ban list cache, and emits an audit log entry.
|
|
316
|
+
*
|
|
317
|
+
* If the target is a quorum member, also triggers removal logic
|
|
318
|
+
* (share redistribution).
|
|
319
|
+
*/
|
|
320
|
+
private executeBanMember;
|
|
321
|
+
/**
|
|
322
|
+
* Execute an UNBAN_MEMBER proposal.
|
|
323
|
+
*
|
|
324
|
+
* Restores the target member's status to Active, removes the ban record,
|
|
325
|
+
* updates the local ban list cache, and emits an audit log entry.
|
|
326
|
+
*/
|
|
327
|
+
private executeUnbanMember;
|
|
305
328
|
/**
|
|
306
329
|
* Get a proposal by its ID.
|
|
307
330
|
*/
|
|
@@ -332,5 +355,9 @@ export declare class QuorumStateMachine<TID extends PlatformID = Uint8Array> imp
|
|
|
332
355
|
getMetrics(): Promise<QuorumMetrics>;
|
|
333
356
|
/** Get the configured threshold for this quorum. */
|
|
334
357
|
getConfiguredThreshold(): number;
|
|
358
|
+
/** Get the ban list cache for enforcement point checks. */
|
|
359
|
+
getBanListCache(): BanListCache<TID>;
|
|
360
|
+
/** Get the ban configuration. */
|
|
361
|
+
getBanConfig(): IBanConfig;
|
|
335
362
|
}
|
|
336
363
|
//# sourceMappingURL=quorumStateMachine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumStateMachine.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/quorumStateMachine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAGL,MAAM,EAEN,UAAU,EAEX,MAAM,4BAA4B,CAAC;AAKpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAM9E,OAAO,EACL,cAAc,EAGf,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAQ,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"quorumStateMachine.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/quorumStateMachine.ts"],"names":[],"mappings":"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"}
|