@brightchain/brightchain-lib 0.24.1 → 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/brightChain.d.ts +16 -2
- package/src/lib/brightChain.d.ts.map +1 -1
- package/src/lib/brightChain.js +26 -4
- package/src/lib/brightChain.js.map +1 -1
- package/src/lib/constants.d.ts +8 -0
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +12 -3
- package/src/lib/constants.js.map +1 -1
- package/src/lib/documents/member/memberDocument.js +1 -1
- package/src/lib/documents/member/memberDocument.js.map +1 -1
- package/src/lib/documents/member/memberProfileDocument.js +1 -1
- package/src/lib/documents/member/memberProfileDocument.js.map +1 -1
- package/src/lib/documents/member/memberProfileHydration.d.ts.map +1 -1
- package/src/lib/documents/member/memberProfileHydration.js +18 -0
- package/src/lib/documents/member/memberProfileHydration.js.map +1 -1
- 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/brightPassStrings.d.ts +24 -11
- package/src/lib/enumerations/brightPassStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightPassStrings.js +25 -11
- package/src/lib/enumerations/brightPassStrings.js.map +1 -1
- package/src/lib/enumerations/index.d.ts +2 -1
- package/src/lib/enumerations/index.d.ts.map +1 -1
- package/src/lib/enumerations/index.js +3 -1
- package/src/lib/enumerations/index.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/enumerations/writeMode.d.ts +22 -0
- package/src/lib/enumerations/writeMode.d.ts.map +1 -0
- package/src/lib/enumerations/writeMode.js +26 -0
- package/src/lib/enumerations/writeMode.js.map +1 -0
- package/src/lib/errors/index.d.ts +12 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +15 -0
- package/src/lib/errors/index.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/errors/writeAclErrors.d.ts +98 -0
- package/src/lib/errors/writeAclErrors.d.ts.map +1 -0
- package/src/lib/errors/writeAclErrors.js +159 -0
- package/src/lib/errors/writeAclErrors.js.map +1 -0
- package/src/lib/factories/blockStoreFactory.d.ts +4 -4
- package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
- package/src/lib/factories/blockStoreFactory.js +10 -4
- package/src/lib/factories/blockStoreFactory.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/englishUK.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/englishUK.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/englishUs.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/englishUs.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/englishUs.js +25 -11
- package/src/lib/i18n/strings/brightpass/englishUs.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/french.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/french.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/french.js +46 -17
- package/src/lib/i18n/strings/brightpass/french.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/german.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/german.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/german.js +46 -17
- package/src/lib/i18n/strings/brightpass/german.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/japanese.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/japanese.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/japanese.js +46 -17
- package/src/lib/i18n/strings/brightpass/japanese.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/mandarin.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/mandarin.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/mandarin.js +46 -17
- package/src/lib/i18n/strings/brightpass/mandarin.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/spanish.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/spanish.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/spanish.js +46 -17
- package/src/lib/i18n/strings/brightpass/spanish.js.map +1 -1
- package/src/lib/i18n/strings/brightpass/ukrainian.d.ts +2 -2
- package/src/lib/i18n/strings/brightpass/ukrainian.d.ts.map +1 -1
- package/src/lib/i18n/strings/brightpass/ukrainian.js +46 -17
- package/src/lib/i18n/strings/brightpass/ukrainian.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 +12 -5
- 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 +8 -1
- 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/auth/aclDocument.d.ts +32 -0
- package/src/lib/interfaces/auth/aclDocument.d.ts.map +1 -0
- package/src/lib/interfaces/auth/aclDocument.js +13 -0
- package/src/lib/interfaces/auth/aclDocument.js.map +1 -0
- package/src/lib/interfaces/auth/aclDocumentSerialization.d.ts +63 -0
- package/src/lib/interfaces/auth/aclDocumentSerialization.d.ts.map +1 -0
- package/src/lib/interfaces/auth/aclDocumentSerialization.js +99 -0
- package/src/lib/interfaces/auth/aclDocumentSerialization.js.map +1 -0
- package/src/lib/interfaces/auth/capabilityToken.d.ts +35 -0
- package/src/lib/interfaces/auth/capabilityToken.d.ts.map +1 -0
- package/src/lib/interfaces/auth/capabilityToken.js +14 -0
- package/src/lib/interfaces/auth/capabilityToken.js.map +1 -0
- package/src/lib/interfaces/auth/capabilityTokenSerialization.d.ts +55 -0
- package/src/lib/interfaces/auth/capabilityTokenSerialization.d.ts.map +1 -0
- package/src/lib/interfaces/auth/capabilityTokenSerialization.js +78 -0
- package/src/lib/interfaces/auth/capabilityTokenSerialization.js.map +1 -0
- package/src/lib/interfaces/auth/index.d.ts +10 -0
- package/src/lib/interfaces/auth/index.d.ts.map +1 -1
- package/src/lib/interfaces/auth/index.js +9 -1
- package/src/lib/interfaces/auth/index.js.map +1 -1
- package/src/lib/interfaces/auth/writeAcl.d.ts +44 -0
- package/src/lib/interfaces/auth/writeAcl.d.ts.map +1 -0
- package/src/lib/interfaces/auth/writeAcl.js +12 -0
- package/src/lib/interfaces/auth/writeAcl.js.map +1 -0
- package/src/lib/interfaces/auth/writeAclAuditLogger.d.ts +83 -0
- package/src/lib/interfaces/auth/writeAclAuditLogger.d.ts.map +1 -0
- package/src/lib/interfaces/auth/writeAclAuditLogger.js +13 -0
- package/src/lib/interfaces/auth/writeAclAuditLogger.js.map +1 -0
- package/src/lib/interfaces/auth/writeProof.d.ts +35 -0
- package/src/lib/interfaces/auth/writeProof.d.ts.map +1 -0
- package/src/lib/interfaces/auth/writeProof.js +13 -0
- package/src/lib/interfaces/auth/writeProof.js.map +1 -0
- package/src/lib/interfaces/auth/writeProofUtils.d.ts +34 -0
- package/src/lib/interfaces/auth/writeProofUtils.d.ts.map +1 -0
- package/src/lib/interfaces/auth/writeProofUtils.js +42 -0
- package/src/lib/interfaces/auth/writeProofUtils.js.map +1 -0
- package/src/lib/interfaces/availability/gossipService.d.ts +30 -2
- 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/member/memberData.d.ts +5 -0
- package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
- package/src/lib/interfaces/member/profileStorage.d.ts +9 -0
- package/src/lib/interfaces/member/profileStorage.d.ts.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/index.d.ts +1 -0
- package/src/lib/interfaces/services/index.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/services/writeAclService.d.ts +98 -0
- package/src/lib/interfaces/services/writeAclService.d.ts.map +1 -0
- package/src/lib/interfaces/services/writeAclService.js +13 -0
- package/src/lib/interfaces/services/writeAclService.js.map +1 -0
- package/src/lib/interfaces/storage/blockStore.d.ts +12 -3
- package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
- package/src/lib/interfaces/storage/cloudBlockStoreConfig.d.ts +2 -2
- package/src/lib/interfaces/storage/cloudBlockStoreConfig.d.ts.map +1 -1
- package/src/lib/interfaces/storage/headRegistry.d.ts +7 -3
- package/src/lib/interfaces/storage/headRegistry.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.d.ts +1 -1
- package/src/lib/interfaces/storage/index.d.ts.map +1 -1
- package/src/lib/interfaces/storage/index.js.map +1 -1
- package/src/lib/interfaces/storage/universalBlockStore.d.ts +2 -1
- package/src/lib/interfaces/storage/universalBlockStore.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/member/memberCblService.d.ts.map +1 -1
- package/src/lib/services/member/memberCblService.js +1 -1
- package/src/lib/services/member/memberCblService.js.map +1 -1
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +4 -0
- package/src/lib/services/memberStore.js.map +1 -1
- 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
- package/src/lib/stores/blockStoreAdapter.d.ts +2 -1
- package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
- package/src/lib/stores/blockStoreAdapter.js +4 -2
- package/src/lib/stores/blockStoreAdapter.js.map +1 -1
- package/src/lib/stores/memoryBlockStore.d.ts +38 -12
- package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
- package/src/lib/stores/memoryBlockStore.js +170 -70
- package/src/lib/stores/memoryBlockStore.js.map +1 -1
- package/src/lib/stores/pooledMemoryBlockStore.d.ts +1 -1
- package/src/lib/stores/pooledMemoryBlockStore.d.ts.map +1 -1
- package/src/lib/stores/pooledMemoryBlockStore.js +1 -1
- package/src/lib/stores/pooledMemoryBlockStore.js.map +1 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Gateway shared interfaces for bridging BrightChain internal messaging
|
|
3
|
+
* with external SMTP email via Postfix.
|
|
4
|
+
*
|
|
5
|
+
* These interfaces use generic `<TID>` type parameters per workspace conventions:
|
|
6
|
+
* - Frontend consumers use `string` (the default)
|
|
7
|
+
* - Backend consumers use `GuidV4Buffer` or other platform-specific ID types
|
|
8
|
+
*
|
|
9
|
+
* @see Requirements 11.1, 11.4, 5.1, 7.2, 6.4
|
|
10
|
+
* @module emailGateway
|
|
11
|
+
*/
|
|
12
|
+
import type { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
13
|
+
import { OutboundDeliveryStatus } from '../../enumerations/messaging/outboundDeliveryStatus';
|
|
14
|
+
import { SpamClassification } from '../../enumerations/messaging/spamClassification';
|
|
15
|
+
/**
|
|
16
|
+
* An outbound email message queued for external SMTP delivery via the Email Gateway.
|
|
17
|
+
*
|
|
18
|
+
* Represents a message in the outbound queue with all metadata needed for
|
|
19
|
+
* delivery tracking, retry logic, and size enforcement.
|
|
20
|
+
*
|
|
21
|
+
* @template TID - Platform ID type for frontend/backend DTO compatibility.
|
|
22
|
+
* Defaults to `string` for backward compatibility.
|
|
23
|
+
*
|
|
24
|
+
* @see Requirements 11.1, 11.4, 9.1
|
|
25
|
+
*/
|
|
26
|
+
export interface IOutboundEmailMessage<TID extends PlatformID = string> {
|
|
27
|
+
/** Unique identifier for this outbound message */
|
|
28
|
+
messageId: TID;
|
|
29
|
+
/** Sender email address (RFC 5322 From) */
|
|
30
|
+
from: string;
|
|
31
|
+
/** Recipient email addresses */
|
|
32
|
+
to: string[];
|
|
33
|
+
/** Email subject line */
|
|
34
|
+
subject: string;
|
|
35
|
+
/** Optional raw RFC 5322 message content for direct delivery */
|
|
36
|
+
rawRfc5322?: string;
|
|
37
|
+
/** Number of delivery attempts made so far */
|
|
38
|
+
retryCount: number;
|
|
39
|
+
/** Timestamp of the next scheduled delivery attempt */
|
|
40
|
+
nextAttemptAt: Date;
|
|
41
|
+
/** Current delivery status */
|
|
42
|
+
status: OutboundDeliveryStatus;
|
|
43
|
+
/** Timestamp when the message was enqueued */
|
|
44
|
+
enqueuedAt: Date;
|
|
45
|
+
/** Maximum allowed message size in bytes */
|
|
46
|
+
maxMessageSizeBytes: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Status report for an outbound email delivery to a specific recipient.
|
|
50
|
+
*
|
|
51
|
+
* Tracks per-recipient delivery outcome including retry history and failure details.
|
|
52
|
+
*
|
|
53
|
+
* @template TID - Platform ID type for frontend/backend DTO compatibility.
|
|
54
|
+
* Defaults to `string` for backward compatibility.
|
|
55
|
+
*
|
|
56
|
+
* @see Requirements 11.1, 5.1
|
|
57
|
+
*/
|
|
58
|
+
export interface IOutboundEmailStatus<TID extends PlatformID = string> {
|
|
59
|
+
/** Identifier of the original outbound message */
|
|
60
|
+
messageId: TID;
|
|
61
|
+
/** Email address of the recipient */
|
|
62
|
+
recipientAddress: string;
|
|
63
|
+
/** Current delivery status for this recipient */
|
|
64
|
+
status: OutboundDeliveryStatus;
|
|
65
|
+
/** Number of delivery attempts made */
|
|
66
|
+
retryCount: number;
|
|
67
|
+
/** Timestamp of the most recent delivery attempt */
|
|
68
|
+
lastAttemptAt?: Date;
|
|
69
|
+
/** Human-readable reason for delivery failure, if applicable */
|
|
70
|
+
failureReason?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Bounce notification generated when an outbound email cannot be delivered.
|
|
74
|
+
*
|
|
75
|
+
* Created by the BounceProcessor when a DSN (RFC 3464) is received for
|
|
76
|
+
* a previously sent outbound message.
|
|
77
|
+
*
|
|
78
|
+
* @template TID - Platform ID type for frontend/backend DTO compatibility.
|
|
79
|
+
* Defaults to `string` for backward compatibility.
|
|
80
|
+
*
|
|
81
|
+
* @see Requirements 5.1, 5.2, 5.3, 5.4
|
|
82
|
+
*/
|
|
83
|
+
export interface IBounceNotification<TID extends PlatformID = string> {
|
|
84
|
+
/** Message-ID of the original outbound email that bounced */
|
|
85
|
+
originalMessageId: TID;
|
|
86
|
+
/** Email address of the recipient that bounced */
|
|
87
|
+
recipientAddress: string;
|
|
88
|
+
/** Type of bounce: permanent (5xx) or transient (4xx) */
|
|
89
|
+
bounceType: 'permanent' | 'transient';
|
|
90
|
+
/** Human-readable reason for the bounce */
|
|
91
|
+
failureReason: string;
|
|
92
|
+
/** Raw DSN message content (RFC 3464) */
|
|
93
|
+
dsnMessage?: string;
|
|
94
|
+
/** Timestamp when the bounce was received */
|
|
95
|
+
timestamp: Date;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Authentication result for a single email authentication mechanism
|
|
99
|
+
* (SPF, DKIM, or DMARC).
|
|
100
|
+
*
|
|
101
|
+
* @see Requirements 6.4, 6.5
|
|
102
|
+
*/
|
|
103
|
+
export interface IEmailAuthenticationResult {
|
|
104
|
+
/** SPF verification result */
|
|
105
|
+
spf: {
|
|
106
|
+
/** SPF check outcome */
|
|
107
|
+
status: 'pass' | 'fail' | 'softfail' | 'neutral' | 'none' | 'temperror' | 'permerror';
|
|
108
|
+
/** Additional details about the SPF check */
|
|
109
|
+
details?: string;
|
|
110
|
+
};
|
|
111
|
+
/** DKIM verification result */
|
|
112
|
+
dkim: {
|
|
113
|
+
/** DKIM check outcome */
|
|
114
|
+
status: 'pass' | 'fail' | 'none' | 'temperror' | 'permerror';
|
|
115
|
+
/** Additional details about the DKIM check */
|
|
116
|
+
details?: string;
|
|
117
|
+
};
|
|
118
|
+
/** DMARC verification result */
|
|
119
|
+
dmarc: {
|
|
120
|
+
/** DMARC check outcome */
|
|
121
|
+
status: 'pass' | 'fail' | 'none' | 'temperror' | 'permerror';
|
|
122
|
+
/** Additional details about the DMARC check */
|
|
123
|
+
details?: string;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Result of processing an inbound email received from an external sender.
|
|
128
|
+
*
|
|
129
|
+
* Contains metadata about the received message including spam classification
|
|
130
|
+
* and authentication verification results.
|
|
131
|
+
*
|
|
132
|
+
* @template TID - Platform ID type for frontend/backend DTO compatibility.
|
|
133
|
+
* Defaults to `string` for backward compatibility.
|
|
134
|
+
*
|
|
135
|
+
* @see Requirements 11.1, 7.2, 6.4
|
|
136
|
+
*/
|
|
137
|
+
export interface IInboundEmailResult<TID extends PlatformID = string> {
|
|
138
|
+
/** Unique identifier assigned to the inbound message */
|
|
139
|
+
messageId: TID;
|
|
140
|
+
/** Email address of the external sender */
|
|
141
|
+
sender: string;
|
|
142
|
+
/** Email address of the local recipient */
|
|
143
|
+
recipient: string;
|
|
144
|
+
/** Spam classification determined by the anti-spam filter */
|
|
145
|
+
spamClassification: SpamClassification;
|
|
146
|
+
/** Numeric spam score from the anti-spam engine */
|
|
147
|
+
spamScore: number;
|
|
148
|
+
/** SPF/DKIM/DMARC authentication verification results */
|
|
149
|
+
authenticationResults: IEmailAuthenticationResult;
|
|
150
|
+
/** Timestamp when the message was received by the gateway */
|
|
151
|
+
receivedAt: Date;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Configurable score thresholds for spam classification.
|
|
155
|
+
*
|
|
156
|
+
* Messages are classified based on their spam score:
|
|
157
|
+
* - score < probableSpamScore → Ham (legitimate)
|
|
158
|
+
* - probableSpamScore ≤ score < definiteSpamScore → ProbableSpam (tagged, delivered to spam folder)
|
|
159
|
+
* - score ≥ definiteSpamScore → DefiniteSpam (rejected at SMTP time)
|
|
160
|
+
*
|
|
161
|
+
* @see Requirements 7.2, 7.3, 7.4
|
|
162
|
+
*/
|
|
163
|
+
export interface ISpamThresholds {
|
|
164
|
+
/** Score at or above which a message is classified as probable spam */
|
|
165
|
+
probableSpamScore: number;
|
|
166
|
+
/** Score at or above which a message is classified as definite spam and rejected */
|
|
167
|
+
definiteSpamScore: number;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Interface for the Recipient Lookup Service that validates whether an email
|
|
171
|
+
* address corresponds to a registered BrightChain user.
|
|
172
|
+
*
|
|
173
|
+
* Postfix queries this service via the `socketmap` or `tcp_table` protocol
|
|
174
|
+
* at SMTP time to reject mail for unknown users before accepting it,
|
|
175
|
+
* preventing backscatter.
|
|
176
|
+
*
|
|
177
|
+
* The concrete TCP server implementation lives in `brightchain-api-lib`;
|
|
178
|
+
* this interface is defined in `brightchain-lib` so both frontend and
|
|
179
|
+
* backend consumers can reference the lookup contract.
|
|
180
|
+
*
|
|
181
|
+
* @see Requirements 13.7, 13.2, 13.3, 13.4, 13.5
|
|
182
|
+
*/
|
|
183
|
+
export interface IRecipientLookupService {
|
|
184
|
+
/**
|
|
185
|
+
* Look up whether the given email address corresponds to a registered
|
|
186
|
+
* BrightChain user at the Canonical Domain.
|
|
187
|
+
*
|
|
188
|
+
* @param emailAddress - The full email address to validate (e.g. `alice@brightchain.org`)
|
|
189
|
+
* @returns
|
|
190
|
+
* - `'OK'` when the address corresponds to a registered user (Req 13.3)
|
|
191
|
+
* - `'NOTFOUND'` when the address does not match any registered user (Req 13.4)
|
|
192
|
+
* - `'TEMP'` when the user registry is unreachable, signalling Postfix
|
|
193
|
+
* to respond with 451 so the sending server retries later (Req 13.5)
|
|
194
|
+
*/
|
|
195
|
+
lookup(emailAddress: string): Promise<'OK' | 'NOTFOUND' | 'TEMP'>;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=emailGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailGateway.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailGateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IACpE,kDAAkD;IAClD,SAAS,EAAE,GAAG,CAAC;IAEf,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,EAAE,EAAE,MAAM,EAAE,CAAC;IAEb,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,aAAa,EAAE,IAAI,CAAC;IAEpB,8BAA8B;IAC9B,MAAM,EAAE,sBAAsB,CAAC;IAE/B,8CAA8C;IAC9C,UAAU,EAAE,IAAI,CAAC;IAEjB,4CAA4C;IAC5C,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IACnE,kDAAkD;IAClD,SAAS,EAAE,GAAG,CAAC;IAEf,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iDAAiD;IACjD,MAAM,EAAE,sBAAsB,CAAC;IAE/B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IAEnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,IAAI,CAAC;IAErB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IAClE,6DAA6D;IAC7D,iBAAiB,EAAE,GAAG,CAAC;IAEvB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,yDAAyD;IACzD,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC;IAEtC,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IAEtB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IACzC,8BAA8B;IAC9B,GAAG,EAAE;QACH,wBAAwB;QACxB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;QACtF,6CAA6C;QAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,+BAA+B;IAC/B,IAAI,EAAE;QACJ,yBAAyB;QACzB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;QAC7D,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,gCAAgC;IAChC,KAAK,EAAE;QACL,0BAA0B;QAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;QAC7D,+CAA+C;QAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB,CAAC,GAAG,SAAS,UAAU,GAAG,MAAM;IAClE,wDAAwD;IACxD,SAAS,EAAE,GAAG,CAAC;IAEf,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IAEf,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAElB,yDAAyD;IACzD,qBAAqB,EAAE,0BAA0B,CAAC;IAElD,6DAA6D;IAC7D,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAE1B,oFAAoF;IACpF,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;CACnE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Email Gateway shared interfaces for bridging BrightChain internal messaging
|
|
4
|
+
* with external SMTP email via Postfix.
|
|
5
|
+
*
|
|
6
|
+
* These interfaces use generic `<TID>` type parameters per workspace conventions:
|
|
7
|
+
* - Frontend consumers use `string` (the default)
|
|
8
|
+
* - Backend consumers use `GuidV4Buffer` or other platform-specific ID types
|
|
9
|
+
*
|
|
10
|
+
* @see Requirements 11.1, 11.4, 5.1, 7.2, 6.4
|
|
11
|
+
* @module emailGateway
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
//# sourceMappingURL=emailGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailGateway.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailGateway.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|
|
@@ -4,6 +4,7 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./attachmentMetadata"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./emailAddress"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./emailDelivery"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./emailGateway"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./emailMetadata"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./messageMetadata"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./messageMetadataStore"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,yDAA+B;AAC/B,0DAAgC;AAChC,0DAAgC;AAChC,4DAAkC;AAClC,iEAAuC;AACvC,gEAAsC;AACtC,qDAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,yDAA+B;AAC/B,0DAAgC;AAChC,yDAA+B;AAC/B,0DAAgC;AAChC,4DAAkC;AAClC,iEAAuC;AACvC,gEAAsC;AACtC,qDAA2B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Configuration for the ban mechanism.
|
|
3
|
+
*
|
|
4
|
+
* Cooling periods and supermajority thresholds for BAN_MEMBER
|
|
5
|
+
* and UNBAN_MEMBER proposals.
|
|
6
|
+
*
|
|
7
|
+
* @see Network Trust and Ban Mechanism spec, Requirements 2.1-2.5, 1.4
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for ban/unban proposal cooling periods and vote thresholds.
|
|
11
|
+
*/
|
|
12
|
+
export interface IBanConfig {
|
|
13
|
+
/**
|
|
14
|
+
* Mandatory waiting period (ms) before a BAN_MEMBER proposal can be executed,
|
|
15
|
+
* even if the vote threshold is reached early.
|
|
16
|
+
* Default: 72 hours. Minimum: 1 hour.
|
|
17
|
+
*/
|
|
18
|
+
banCoolingPeriodMs: number;
|
|
19
|
+
/**
|
|
20
|
+
* Mandatory waiting period (ms) before an UNBAN_MEMBER proposal can be executed.
|
|
21
|
+
* Default: 48 hours. Minimum: 1 hour.
|
|
22
|
+
*/
|
|
23
|
+
unbanCoolingPeriodMs: number;
|
|
24
|
+
/**
|
|
25
|
+
* Supermajority fraction required for BAN_MEMBER and UNBAN_MEMBER votes.
|
|
26
|
+
* Default: 0.75 (75%). Minimum: 0.67 (67%).
|
|
27
|
+
*/
|
|
28
|
+
banSupermajorityThreshold: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Default ban configuration values.
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_BAN_CONFIG: IBanConfig;
|
|
34
|
+
/**
|
|
35
|
+
* Minimum allowed values for ban configuration.
|
|
36
|
+
*/
|
|
37
|
+
export declare const MIN_BAN_CONFIG: {
|
|
38
|
+
readonly banCoolingPeriodMs: number;
|
|
39
|
+
readonly unbanCoolingPeriodMs: number;
|
|
40
|
+
readonly banSupermajorityThreshold: 0.67;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Validate and normalize ban configuration, clamping to minimums.
|
|
44
|
+
*/
|
|
45
|
+
export declare function normalizeBanConfig(partial?: Partial<IBanConfig>): IBanConfig;
|
|
46
|
+
//# sourceMappingURL=banConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banConfig.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/banConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAIhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC5B,UAAU,CAgBZ"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Configuration for the ban mechanism.
|
|
4
|
+
*
|
|
5
|
+
* Cooling periods and supermajority thresholds for BAN_MEMBER
|
|
6
|
+
* and UNBAN_MEMBER proposals.
|
|
7
|
+
*
|
|
8
|
+
* @see Network Trust and Ban Mechanism spec, Requirements 2.1-2.5, 1.4
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.MIN_BAN_CONFIG = exports.DEFAULT_BAN_CONFIG = void 0;
|
|
12
|
+
exports.normalizeBanConfig = normalizeBanConfig;
|
|
13
|
+
/** Milliseconds in one hour */
|
|
14
|
+
const ONE_HOUR_MS = 60 * 60 * 1000;
|
|
15
|
+
/**
|
|
16
|
+
* Default ban configuration values.
|
|
17
|
+
*/
|
|
18
|
+
exports.DEFAULT_BAN_CONFIG = {
|
|
19
|
+
banCoolingPeriodMs: 72 * ONE_HOUR_MS, // 72 hours
|
|
20
|
+
unbanCoolingPeriodMs: 48 * ONE_HOUR_MS, // 48 hours
|
|
21
|
+
banSupermajorityThreshold: 0.75,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Minimum allowed values for ban configuration.
|
|
25
|
+
*/
|
|
26
|
+
exports.MIN_BAN_CONFIG = {
|
|
27
|
+
banCoolingPeriodMs: ONE_HOUR_MS,
|
|
28
|
+
unbanCoolingPeriodMs: ONE_HOUR_MS,
|
|
29
|
+
banSupermajorityThreshold: 0.67,
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Validate and normalize ban configuration, clamping to minimums.
|
|
33
|
+
*/
|
|
34
|
+
function normalizeBanConfig(partial) {
|
|
35
|
+
const config = { ...exports.DEFAULT_BAN_CONFIG, ...partial };
|
|
36
|
+
return {
|
|
37
|
+
banCoolingPeriodMs: Math.max(config.banCoolingPeriodMs, exports.MIN_BAN_CONFIG.banCoolingPeriodMs),
|
|
38
|
+
unbanCoolingPeriodMs: Math.max(config.unbanCoolingPeriodMs, exports.MIN_BAN_CONFIG.unbanCoolingPeriodMs),
|
|
39
|
+
banSupermajorityThreshold: Math.max(config.banSupermajorityThreshold, exports.MIN_BAN_CONFIG.banSupermajorityThreshold),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=banConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banConfig.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/banConfig.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAkDH,gDAkBC;AAlED,+BAA+B;AAC/B,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA0BnC;;GAEG;AACU,QAAA,kBAAkB,GAAe;IAC5C,kBAAkB,EAAE,EAAE,GAAG,WAAW,EAAE,WAAW;IACjD,oBAAoB,EAAE,EAAE,GAAG,WAAW,EAAE,WAAW;IACnD,yBAAyB,EAAE,IAAI;CAChC,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAG;IAC5B,kBAAkB,EAAE,WAAW;IAC/B,oBAAoB,EAAE,WAAW;IACjC,yBAAyB,EAAE,IAAI;CACvB,CAAC;AAEX;;GAEG;AACH,SAAgB,kBAAkB,CAChC,OAA6B;IAE7B,MAAM,MAAM,GAAG,EAAE,GAAG,0BAAkB,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,OAAO;QACL,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAC1B,MAAM,CAAC,kBAAkB,EACzB,sBAAc,CAAC,kBAAkB,CAClC;QACD,oBAAoB,EAAE,IAAI,CAAC,GAAG,CAC5B,MAAM,CAAC,oBAAoB,EAC3B,sBAAc,CAAC,oBAAoB,CACpC;QACD,yBAAyB,EAAE,IAAI,CAAC,GAAG,CACjC,MAAM,CAAC,yBAAyB,EAChC,sBAAc,CAAC,yBAAyB,CACzC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview BanListCache interface for the network trust system.
|
|
3
|
+
*
|
|
4
|
+
* Each node maintains a local cache of the active ban list, updated via
|
|
5
|
+
* gossip announcements. Enforcement points (gossip, discovery, reconciliation,
|
|
6
|
+
* block store) check this cache with O(1) lookups.
|
|
7
|
+
*
|
|
8
|
+
* @see Network Trust and Ban Mechanism spec
|
|
9
|
+
*/
|
|
10
|
+
import { HexString, PlatformID } from '@digitaldefiance/ecies-lib';
|
|
11
|
+
import { IBanRecord } from './banRecord';
|
|
12
|
+
/**
|
|
13
|
+
* Interface for the local ban list cache.
|
|
14
|
+
* Implementations must provide O(1) lookup for isBanned().
|
|
15
|
+
*
|
|
16
|
+
* @template TID - Platform ID type
|
|
17
|
+
*/
|
|
18
|
+
export interface IBanListCache<TID extends PlatformID = Uint8Array> {
|
|
19
|
+
/** Check if a member is banned — must be O(1) */
|
|
20
|
+
isBanned(memberId: TID): boolean;
|
|
21
|
+
/** Add a verified ban record to the cache */
|
|
22
|
+
addBan(record: IBanRecord<TID>): void;
|
|
23
|
+
/** Remove a ban record (unban) */
|
|
24
|
+
removeBan(memberId: TID): void;
|
|
25
|
+
/** Get all active ban records */
|
|
26
|
+
getAll(): IBanRecord<TID>[];
|
|
27
|
+
/** Get a specific ban record by member ID, or null if not banned */
|
|
28
|
+
getBan(memberId: TID): IBanRecord<TID> | null;
|
|
29
|
+
/** Bulk load ban records (used on startup/reconnect sync) */
|
|
30
|
+
loadFrom(records: IBanRecord<TID>[]): void;
|
|
31
|
+
/** Number of currently banned members */
|
|
32
|
+
readonly size: number;
|
|
33
|
+
/**
|
|
34
|
+
* Verify a ban record's quorum signatures against known public keys.
|
|
35
|
+
* Returns true if the record has at least `requiredSignatures` valid signatures.
|
|
36
|
+
*/
|
|
37
|
+
verifySignatures(record: IBanRecord<TID>, quorumPublicKeys: Map<HexString, Uint8Array>): Promise<boolean>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=banListCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banListCache.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/banListCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAChE,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC;IAEjC,6CAA6C;IAC7C,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAEtC,kCAAkC;IAClC,SAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;IAE/B,iCAAiC;IACjC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAE5B,oEAAoE;IACpE,MAAM,CAAC,QAAQ,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE9C,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IAE3C,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,gBAAgB,CACd,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EACvB,gBAAgB,EAAE,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,GAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview BanListCache interface for the network trust system.
|
|
4
|
+
*
|
|
5
|
+
* Each node maintains a local cache of the active ban list, updated via
|
|
6
|
+
* gossip announcements. Enforcement points (gossip, discovery, reconciliation,
|
|
7
|
+
* block store) check this cache with O(1) lookups.
|
|
8
|
+
*
|
|
9
|
+
* @see Network Trust and Ban Mechanism spec
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=banListCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banListCache.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/banListCache.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Ban record interfaces for the network trust system.
|
|
3
|
+
*
|
|
4
|
+
* A BanRecord is created when a BAN_MEMBER proposal is approved by the quorum.
|
|
5
|
+
* It carries the quorum's threshold signatures so any node can independently
|
|
6
|
+
* verify the ban is legitimate.
|
|
7
|
+
*
|
|
8
|
+
* @see Network Trust and Ban Mechanism spec
|
|
9
|
+
*/
|
|
10
|
+
import { PlatformID } from '@digitaldefiance/ecies-lib';
|
|
11
|
+
/**
|
|
12
|
+
* A signed record indicating a member has been banned from the network.
|
|
13
|
+
*
|
|
14
|
+
* @template TID - Platform ID type for frontend/backend DTO compatibility
|
|
15
|
+
*/
|
|
16
|
+
export interface IBanRecord<TID extends PlatformID = Uint8Array> {
|
|
17
|
+
/** The banned member's ID */
|
|
18
|
+
memberId: TID;
|
|
19
|
+
/** Human-readable reason for the ban */
|
|
20
|
+
reason: string;
|
|
21
|
+
/** The proposal ID that resulted in this ban */
|
|
22
|
+
proposalId: TID;
|
|
23
|
+
/** Epoch number when the ban was enacted */
|
|
24
|
+
epoch: number;
|
|
25
|
+
/** Timestamp when the ban took effect */
|
|
26
|
+
bannedAt: Date;
|
|
27
|
+
/** Optional block IDs referencing evidence (offending content, logs, etc.) */
|
|
28
|
+
evidenceBlockIds?: string[];
|
|
29
|
+
/** Quorum signatures approving this ban */
|
|
30
|
+
approvalSignatures: Array<{
|
|
31
|
+
memberId: TID;
|
|
32
|
+
signature: Uint8Array;
|
|
33
|
+
}>;
|
|
34
|
+
/** The minimum number of signatures required for this ban to be valid */
|
|
35
|
+
requiredSignatures: number;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Lightweight ban list entry for quick lookups.
|
|
39
|
+
* Used by the BanListCache for efficient membership checks.
|
|
40
|
+
*
|
|
41
|
+
* @template TID - Platform ID type
|
|
42
|
+
*/
|
|
43
|
+
export interface IBanListEntry<TID extends PlatformID = Uint8Array> {
|
|
44
|
+
memberId: TID;
|
|
45
|
+
bannedAt: Date;
|
|
46
|
+
epoch: number;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=banRecord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banRecord.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/banRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC7D,6BAA6B;IAC7B,QAAQ,EAAE,GAAG,CAAC;IAEd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IAEf,gDAAgD;IAChD,UAAU,EAAE,GAAG,CAAC;IAEhB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IAEd,yCAAyC;IACzC,QAAQ,EAAE,IAAI,CAAC;IAEf,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B,2CAA2C;IAC3C,kBAAkB,EAAE,KAAK,CAAC;QACxB,QAAQ,EAAE,GAAG,CAAC;QACd,SAAS,EAAE,UAAU,CAAC;KACvB,CAAC,CAAC;IAEH,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAChE,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Ban record interfaces for the network trust system.
|
|
4
|
+
*
|
|
5
|
+
* A BanRecord is created when a BAN_MEMBER proposal is approved by the quorum.
|
|
6
|
+
* It carries the quorum's threshold signatures so any node can independently
|
|
7
|
+
* verify the ban is legitimate.
|
|
8
|
+
*
|
|
9
|
+
* @see Network Trust and Ban Mechanism spec
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=banRecord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banRecord.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/banRecord.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export type * from './banConfig';
|
|
2
|
+
export type * from './banListCache';
|
|
3
|
+
export type * from './banRecord';
|
|
4
|
+
export { DEFAULT_BAN_CONFIG, MIN_BAN_CONFIG, normalizeBanConfig } from './banConfig';
|
|
1
5
|
export type * from './node';
|
|
2
6
|
export type * from './nodeAdvertisement';
|
|
3
7
|
export type * from './nodeConfig';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,QAAQ,CAAC;AAC5B,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,aAAa,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrF,mBAAmB,QAAQ,CAAC;AAC5B,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,aAAa,CAAC;AACjC,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,iBAAiB,CAAC"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeBanConfig = exports.MIN_BAN_CONFIG = exports.DEFAULT_BAN_CONFIG = void 0;
|
|
4
|
+
var banConfig_1 = require("./banConfig");
|
|
5
|
+
Object.defineProperty(exports, "DEFAULT_BAN_CONFIG", { enumerable: true, get: function () { return banConfig_1.DEFAULT_BAN_CONFIG; } });
|
|
6
|
+
Object.defineProperty(exports, "MIN_BAN_CONFIG", { enumerable: true, get: function () { return banConfig_1.MIN_BAN_CONFIG; } });
|
|
7
|
+
Object.defineProperty(exports, "normalizeBanConfig", { enumerable: true, get: function () { return banConfig_1.normalizeBanConfig; } });
|
|
3
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/network/index.ts"],"names":[],"mappings":";;;AAGA,yCAAqF;AAA5E,+GAAA,kBAAkB,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,+GAAA,kBAAkB,OAAA"}
|
|
@@ -45,6 +45,13 @@ export interface Proposal<TID extends PlatformID = Uint8Array> {
|
|
|
45
45
|
attachmentCblId?: string;
|
|
46
46
|
/** Epoch number at proposal creation */
|
|
47
47
|
epochNumber: number;
|
|
48
|
+
/**
|
|
49
|
+
* Optional cooling period end timestamp.
|
|
50
|
+
* When set, the proposal cannot be executed until this time has passed,
|
|
51
|
+
* even if the vote threshold is reached early.
|
|
52
|
+
* Used by BAN_MEMBER and UNBAN_MEMBER proposals.
|
|
53
|
+
*/
|
|
54
|
+
coolingPeriodEndsAt?: Date;
|
|
48
55
|
}
|
|
49
56
|
/**
|
|
50
57
|
* Input format for submitting a new proposal.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/interfaces/proposal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,QAAQ,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC3D,iCAAiC;IACjC,EAAE,EAAE,GAAG,CAAC;IACR,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE,kBAAkB,CAAC;IAC/B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kDAAkD;IAClD,gBAAgB,EAAE,GAAG,CAAC;IACtB,+BAA+B;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,SAAS,EAAE,IAAI,CAAC;IAChB,qCAAqC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/interfaces/proposal.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,QAAQ,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAC3D,iCAAiC;IACjC,EAAE,EAAE,GAAG,CAAC;IACR,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE,kBAAkB,CAAC;IAC/B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kDAAkD;IAClD,gBAAgB,EAAE,GAAG,CAAC;IACtB,+BAA+B;IAC/B,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,SAAS,EAAE,IAAI,CAAC;IAChB,qCAAqC;IACrC,SAAS,EAAE,IAAI,CAAC;IAChB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,EAAE,kBAAkB,CAAC;IAC/B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iDAAiD;IACjD,SAAS,EAAE,IAAI,CAAC;IAChB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/services/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAC;AACnC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,iBAAiB,CAAC;AAGrC,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/services/index.ts"],"names":[],"mappings":"AAAA,mBAAmB,eAAe,CAAC;AACnC,mBAAmB,cAAc,CAAC;AAClC,mBAAmB,iBAAiB,CAAC;AAGrC,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,uBAAuB,CAAC;AAC3C,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,qBAAqB,CAAC;AACzC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,wBAAwB,CAAC;AAG5C,mBAAmB,mBAAmB,CAAC"}
|
|
@@ -21,6 +21,7 @@ import { RedistributionJournalEntry } from '../redistributionJournalEntry';
|
|
|
21
21
|
import { StatuteOfLimitationsConfig } from '../statuteConfig';
|
|
22
22
|
import { Vote } from '../vote';
|
|
23
23
|
import { IQuorumMember } from './quorumService';
|
|
24
|
+
import { IBanRecord } from '../network/banRecord';
|
|
24
25
|
/**
|
|
25
26
|
* Abstraction over BrightDb with a dedicated "quorum-system" pool.
|
|
26
27
|
*
|
|
@@ -203,5 +204,34 @@ export interface IQuorumDatabase<TID extends PlatformID = Uint8Array> {
|
|
|
203
204
|
* @returns True if the database is available and healthy
|
|
204
205
|
*/
|
|
205
206
|
isAvailable(): Promise<boolean>;
|
|
207
|
+
/**
|
|
208
|
+
* Persist a ban record.
|
|
209
|
+
* @param record - The ban record to save
|
|
210
|
+
*/
|
|
211
|
+
saveBanRecord(record: IBanRecord<TID>): Promise<void>;
|
|
212
|
+
/**
|
|
213
|
+
* Delete a ban record (used when unbanning a member).
|
|
214
|
+
* @param memberId - The banned member's ID
|
|
215
|
+
*/
|
|
216
|
+
deleteBanRecord(memberId: TID): Promise<void>;
|
|
217
|
+
/**
|
|
218
|
+
* Retrieve a ban record by member ID.
|
|
219
|
+
* @param memberId - The member ID
|
|
220
|
+
* @returns The ban record, or null if not banned
|
|
221
|
+
*/
|
|
222
|
+
getBanRecord(memberId: TID): Promise<IBanRecord<TID> | null>;
|
|
223
|
+
/**
|
|
224
|
+
* Get all active ban records.
|
|
225
|
+
* @returns Array of all active ban records
|
|
226
|
+
*/
|
|
227
|
+
getAllBanRecords(): Promise<IBanRecord<TID>[]>;
|
|
228
|
+
/**
|
|
229
|
+
* Get the member ID of whoever proposed the admission of a given member.
|
|
230
|
+
* Returns null if the member was a founding member (no proposer).
|
|
231
|
+
* Used by BanProposalValidator for Sybil protection.
|
|
232
|
+
* @param memberId - The member whose admission proposer to look up
|
|
233
|
+
* @returns The proposer's member ID, or null
|
|
234
|
+
*/
|
|
235
|
+
getMemberAdmissionProposerId(memberId: TID): Promise<TID | null>;
|
|
206
236
|
}
|
|
207
237
|
//# sourceMappingURL=quorumDatabase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quorumDatabase.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/services/quorumDatabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"quorumDatabase.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/services/quorumDatabase.ts"],"names":[],"mappings":"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"}
|