@brightchain/brightchain-lib 0.29.26 → 0.29.27
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 +10 -4
- package/src/index.d.ts +1 -1
- package/src/index.d.ts.map +1 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/enumeration-translations/index.d.ts +2 -0
- package/src/lib/enumeration-translations/index.d.ts.map +1 -1
- package/src/lib/enumeration-translations/index.js +1 -0
- package/src/lib/enumeration-translations/index.js.map +1 -1
- package/src/lib/enumeration-translations/memberStatusType.d.ts +5 -0
- package/src/lib/enumeration-translations/memberStatusType.d.ts.map +1 -0
- package/src/lib/enumeration-translations/memberStatusType.js +58 -0
- package/src/lib/enumeration-translations/memberStatusType.js.map +1 -0
- package/src/lib/enumerations/brightChainStrings.d.ts +43 -0
- package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
- package/src/lib/enumerations/brightChainStrings.js +44 -0
- package/src/lib/enumerations/brightChainStrings.js.map +1 -1
- package/src/lib/enumerations/brightchainFeatures.d.ts +1 -0
- package/src/lib/enumerations/brightchainFeatures.d.ts.map +1 -1
- package/src/lib/enumerations/brightchainFeatures.js +1 -0
- package/src/lib/enumerations/brightchainFeatures.js.map +1 -1
- package/src/lib/enumerations/communication.d.ts +7 -1
- package/src/lib/enumerations/communication.d.ts.map +1 -1
- package/src/lib/enumerations/communication.js +6 -0
- package/src/lib/enumerations/communication.js.map +1 -1
- package/src/lib/enumerations/messaging/emailErrorType.d.ts +15 -2
- package/src/lib/enumerations/messaging/emailErrorType.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/emailErrorType.js +17 -1
- package/src/lib/enumerations/messaging/emailErrorType.js.map +1 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts +4 -2
- package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js +3 -1
- package/src/lib/enumerations/messaging/messageEncryptionScheme.js.map +1 -1
- package/src/lib/errors/encryptionErrors.d.ts +71 -0
- package/src/lib/errors/encryptionErrors.d.ts.map +1 -0
- package/src/lib/errors/encryptionErrors.js +112 -0
- package/src/lib/errors/encryptionErrors.js.map +1 -0
- package/src/lib/errors/index.d.ts +10 -0
- package/src/lib/errors/index.d.ts.map +1 -1
- package/src/lib/errors/index.js +13 -0
- package/src/lib/errors/index.js.map +1 -1
- package/src/lib/i18n/i18n-setup.d.ts +2 -2
- package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUK.d.ts +2 -2
- package/src/lib/i18n/strings/englishUK.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUK.js.map +1 -1
- package/src/lib/i18n/strings/englishUs.d.ts +2 -2
- package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
- package/src/lib/i18n/strings/englishUs.js +45 -1
- package/src/lib/i18n/strings/englishUs.js.map +1 -1
- package/src/lib/i18n/strings/french.d.ts +2 -2
- package/src/lib/i18n/strings/french.d.ts.map +1 -1
- package/src/lib/i18n/strings/french.js +58 -13
- package/src/lib/i18n/strings/french.js.map +1 -1
- package/src/lib/i18n/strings/german.d.ts +2 -2
- package/src/lib/i18n/strings/german.d.ts.map +1 -1
- package/src/lib/i18n/strings/german.js +57 -12
- package/src/lib/i18n/strings/german.js.map +1 -1
- package/src/lib/i18n/strings/japanese.d.ts +2 -2
- package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
- package/src/lib/i18n/strings/japanese.js +57 -12
- package/src/lib/i18n/strings/japanese.js.map +1 -1
- package/src/lib/i18n/strings/mandarin.d.ts +2 -2
- package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
- package/src/lib/i18n/strings/mandarin.js +57 -12
- package/src/lib/i18n/strings/mandarin.js.map +1 -1
- package/src/lib/i18n/strings/spanish.d.ts +2 -2
- package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
- package/src/lib/i18n/strings/spanish.js +57 -12
- package/src/lib/i18n/strings/spanish.js.map +1 -1
- package/src/lib/i18n/strings/ukrainian.d.ts +2 -2
- package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
- package/src/lib/i18n/strings/ukrainian.js +57 -12
- package/src/lib/i18n/strings/ukrainian.js.map +1 -1
- package/src/lib/index.d.ts +31 -0
- package/src/lib/index.d.ts.map +1 -1
- package/src/lib/index.js +29 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/interfaces/auth/writeProof.d.ts +2 -0
- package/src/lib/interfaces/auth/writeProof.d.ts.map +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.d.ts +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.d.ts.map +1 -1
- package/src/lib/interfaces/auth/writeProofUtils.js +2 -2
- package/src/lib/interfaces/auth/writeProofUtils.js.map +1 -1
- package/src/lib/interfaces/availability/gossipService.d.ts +99 -1
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.js +4 -0
- package/src/lib/interfaces/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/communication/blockContentStore.d.ts +57 -0
- package/src/lib/interfaces/communication/blockContentStore.d.ts.map +1 -0
- package/src/lib/interfaces/communication/blockContentStore.js +21 -0
- package/src/lib/interfaces/communication/blockContentStore.js.map +1 -0
- package/src/lib/interfaces/communication/chatStorageProvider.d.ts +77 -0
- package/src/lib/interfaces/communication/chatStorageProvider.d.ts.map +1 -0
- package/src/lib/interfaces/communication/chatStorageProvider.js +25 -0
- package/src/lib/interfaces/communication/chatStorageProvider.js.map +1 -0
- package/src/lib/interfaces/communication/index.d.ts +4 -0
- package/src/lib/interfaces/communication/index.d.ts.map +1 -0
- package/src/lib/interfaces/communication/index.js +3 -0
- package/src/lib/interfaces/communication/index.js.map +1 -0
- package/src/lib/interfaces/communication/server.d.ts +57 -0
- package/src/lib/interfaces/communication/server.d.ts.map +1 -0
- package/src/lib/interfaces/communication/server.js +14 -0
- package/src/lib/interfaces/communication/server.js.map +1 -0
- package/src/lib/interfaces/communication.d.ts +60 -5
- package/src/lib/interfaces/communication.d.ts.map +1 -1
- package/src/lib/interfaces/communication.js +8 -0
- package/src/lib/interfaces/communication.js.map +1 -1
- package/src/lib/interfaces/communicationEvents.d.ts +59 -1
- package/src/lib/interfaces/communicationEvents.d.ts.map +1 -1
- package/src/lib/interfaces/events/communicationEventEmitter.d.ts +9 -0
- package/src/lib/interfaces/events/communicationEventEmitter.d.ts.map +1 -1
- package/src/lib/interfaces/events/communicationEventEmitter.js +9 -0
- package/src/lib/interfaces/events/communicationEventEmitter.js.map +1 -1
- package/src/lib/interfaces/index.d.ts +4 -1
- package/src/lib/interfaces/index.d.ts.map +1 -1
- package/src/lib/interfaces/index.js +3 -0
- package/src/lib/interfaces/index.js.map +1 -1
- package/src/lib/interfaces/messaging/gpgKey.d.ts +93 -0
- package/src/lib/interfaces/messaging/gpgKey.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/gpgKey.js +12 -0
- package/src/lib/interfaces/messaging/gpgKey.js.map +1 -0
- package/src/lib/interfaces/messaging/index.d.ts +4 -0
- package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/index.js +4 -0
- package/src/lib/interfaces/messaging/index.js.map +1 -1
- package/src/lib/interfaces/messaging/keyStore.d.ts +100 -0
- package/src/lib/interfaces/messaging/keyStore.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/keyStore.js +13 -0
- package/src/lib/interfaces/messaging/keyStore.js.map +1 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts +92 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.js +13 -0
- package/src/lib/interfaces/messaging/recipientKeyResolver.js.map +1 -0
- package/src/lib/interfaces/messaging/smimeCertificate.d.ts +99 -0
- package/src/lib/interfaces/messaging/smimeCertificate.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/smimeCertificate.js +12 -0
- package/src/lib/interfaces/messaging/smimeCertificate.js.map +1 -0
- package/src/lib/interfaces/responses/adminDashboardResponse.d.ts +8 -0
- package/src/lib/interfaces/responses/adminDashboardResponse.d.ts.map +1 -1
- package/src/lib/interfaces/responses/communicationResponses.d.ts +25 -0
- package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -1
- package/src/lib/services/blockService.d.ts +11 -3
- package/src/lib/services/blockService.d.ts.map +1 -1
- package/src/lib/services/blockService.js +22 -2
- package/src/lib/services/blockService.js.map +1 -1
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts +108 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts.map +1 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.js +284 -0
- package/src/lib/services/communication/__tests__/mockChatStorageProvider.js.map +1 -0
- package/src/lib/services/communication/attachmentUtils.d.ts +20 -0
- package/src/lib/services/communication/attachmentUtils.d.ts.map +1 -0
- package/src/lib/services/communication/attachmentUtils.js +43 -0
- package/src/lib/services/communication/attachmentUtils.js.map +1 -0
- package/src/lib/services/communication/channelService.d.ts +127 -12
- package/src/lib/services/communication/channelService.d.ts.map +1 -1
- package/src/lib/services/communication/channelService.js +486 -30
- package/src/lib/services/communication/channelService.js.map +1 -1
- package/src/lib/services/communication/conversationService.d.ts +91 -4
- package/src/lib/services/communication/conversationService.d.ts.map +1 -1
- package/src/lib/services/communication/conversationService.js +237 -5
- package/src/lib/services/communication/conversationService.js.map +1 -1
- package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts +36 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.d.ts.map +1 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.js +30 -0
- package/src/lib/services/communication/eciesKeyEncryptionHandler.js.map +1 -0
- package/src/lib/services/communication/groupService.d.ts +99 -21
- package/src/lib/services/communication/groupService.d.ts.map +1 -1
- package/src/lib/services/communication/groupService.js +359 -39
- package/src/lib/services/communication/groupService.js.map +1 -1
- package/src/lib/services/communication/index.d.ts +6 -1
- package/src/lib/services/communication/index.d.ts.map +1 -1
- package/src/lib/services/communication/index.js +20 -1
- package/src/lib/services/communication/index.js.map +1 -1
- package/src/lib/services/communication/keyEpochManager.d.ts +41 -0
- package/src/lib/services/communication/keyEpochManager.d.ts.map +1 -0
- package/src/lib/services/communication/keyEpochManager.js +59 -0
- package/src/lib/services/communication/keyEpochManager.js.map +1 -0
- package/src/lib/services/communication/rehydrationHelpers.d.ts +32 -0
- package/src/lib/services/communication/rehydrationHelpers.d.ts.map +1 -0
- package/src/lib/services/communication/rehydrationHelpers.js +58 -0
- package/src/lib/services/communication/rehydrationHelpers.js.map +1 -0
- package/src/lib/services/communication/serverService.d.ts +193 -0
- package/src/lib/services/communication/serverService.d.ts.map +1 -0
- package/src/lib/services/communication/serverService.js +497 -0
- package/src/lib/services/communication/serverService.js.map +1 -0
- package/src/lib/services/memberStore.d.ts +10 -0
- package/src/lib/services/memberStore.d.ts.map +1 -1
- package/src/lib/services/memberStore.js +41 -16
- package/src/lib/services/memberStore.js.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.d.ts +162 -0
- package/src/lib/services/messaging/emailEncryptionService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.js +293 -0
- package/src/lib/services/messaging/emailEncryptionService.js.map +1 -1
- package/src/lib/services/messaging/emailMessageService.d.ts +64 -0
- package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
- package/src/lib/services/messaging/emailMessageService.js +142 -13
- package/src/lib/services/messaging/emailMessageService.js.map +1 -1
- package/src/lib/services/messaging/gpgKeyManager.d.ts +130 -0
- package/src/lib/services/messaging/gpgKeyManager.d.ts.map +1 -0
- package/src/lib/services/messaging/gpgKeyManager.js +381 -0
- package/src/lib/services/messaging/gpgKeyManager.js.map +1 -0
- package/src/lib/services/messaging/index.d.ts +3 -0
- package/src/lib/services/messaging/index.d.ts.map +1 -1
- package/src/lib/services/messaging/index.js +3 -0
- package/src/lib/services/messaging/index.js.map +1 -1
- package/src/lib/services/messaging/recipientKeyResolver.d.ts +47 -0
- package/src/lib/services/messaging/recipientKeyResolver.d.ts.map +1 -0
- package/src/lib/services/messaging/recipientKeyResolver.js +132 -0
- package/src/lib/services/messaging/recipientKeyResolver.js.map +1 -0
- package/src/lib/services/messaging/smimeCertificateManager.d.ts +207 -0
- package/src/lib/services/messaging/smimeCertificateManager.d.ts.map +1 -0
- package/src/lib/services/messaging/smimeCertificateManager.js +696 -0
- package/src/lib/services/messaging/smimeCertificateManager.js.map +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/channelService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channelService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/channelService.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,33 @@
|
|
|
5
5
|
* encrypted content storage to MessagePassingService. Supports cursor-based
|
|
6
6
|
* pagination, message deletion, and conversation promotion to groups.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* Uses epoch-aware key management via IKeyEpochState for forward secrecy.
|
|
9
|
+
* DM conversations generate a 256-bit DM_Key at creation, wrapped per-participant
|
|
10
|
+
* using the injected key encryption handler. Messages record the keyEpoch they
|
|
11
|
+
* were encrypted under.
|
|
12
|
+
*
|
|
13
|
+
* When an IChatStorageProvider is injected, conversations and messages are
|
|
14
|
+
* also persisted to the provider's collections (write-through). Sync helper
|
|
15
|
+
* methods continue to read from the in-memory Maps so their signatures
|
|
16
|
+
* remain unchanged.
|
|
17
|
+
*
|
|
18
|
+
* Requirements: 10.1, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 9.2
|
|
9
19
|
*/
|
|
10
|
-
import { ICommunicationMessage, IConversation, IGroup, IPaginatedResult } from '../../interfaces/communication';
|
|
20
|
+
import { IChatAttachmentInput, ICommunicationMessage, IConversation, IGroup, IPaginatedResult } from '../../interfaces/communication';
|
|
21
|
+
import { IChatStorageProvider } from '../../interfaces/communication/chatStorageProvider';
|
|
22
|
+
import { IBlockContentStore } from '../../interfaces/communication/blockContentStore';
|
|
11
23
|
import { ICommunicationEventEmitter } from '../../interfaces/events';
|
|
24
|
+
import { IKeyEpochState } from './keyEpochManager';
|
|
25
|
+
/**
|
|
26
|
+
* Callback for encrypting a symmetric key for a specific member.
|
|
27
|
+
* Returns the encrypted key as a string (e.g. base64).
|
|
28
|
+
*/
|
|
29
|
+
export type ConversationKeyEncryptionHandler = (memberId: string, symmetricKey: Uint8Array) => string;
|
|
30
|
+
/**
|
|
31
|
+
* Extract the symmetric key from a default-encrypted key string.
|
|
32
|
+
* Only works with the default placeholder encryption.
|
|
33
|
+
*/
|
|
34
|
+
export declare function extractConversationKeyFromDefault(encrypted: string): Uint8Array;
|
|
12
35
|
/**
|
|
13
36
|
* Callback to check whether a member exists and is not blocked by the sender.
|
|
14
37
|
* Returns true if the member is reachable, false otherwise.
|
|
@@ -55,10 +78,52 @@ export declare class ConversationService {
|
|
|
55
78
|
private readonly blockedPairs;
|
|
56
79
|
/** Set of known member IDs */
|
|
57
80
|
private readonly knownMembers;
|
|
81
|
+
/** conversationId → epoch-aware key state (raw keys + wrapped keys per epoch) */
|
|
82
|
+
private readonly keyEpochStates;
|
|
58
83
|
private groupPromotionHandler;
|
|
84
|
+
private initialized;
|
|
59
85
|
private readonly memberReachabilityCheck;
|
|
60
86
|
private readonly eventEmitter;
|
|
61
|
-
|
|
87
|
+
private readonly encryptKey;
|
|
88
|
+
private readonly randomBytesProvider;
|
|
89
|
+
/** Optional persistent collection for conversations (write-through). */
|
|
90
|
+
private readonly conversationCollection;
|
|
91
|
+
/** Optional persistent collection for messages (write-through). */
|
|
92
|
+
private readonly messageCollection;
|
|
93
|
+
/** Optional block content store for storing message content as blocks. */
|
|
94
|
+
private readonly blockContentStore;
|
|
95
|
+
constructor(memberReachabilityCheck?: MemberReachabilityCheck | null, eventEmitter?: ICommunicationEventEmitter, storageProvider?: IChatStorageProvider, encryptKey?: ConversationKeyEncryptionHandler, randomBytesProvider?: (length: number) => Uint8Array, blockContentStore?: IBlockContentStore);
|
|
96
|
+
/**
|
|
97
|
+
* Load persisted conversations and messages from the storage provider
|
|
98
|
+
* into in-memory Maps, rebuilding derived indexes and key epoch states.
|
|
99
|
+
*
|
|
100
|
+
* No-op when no storage provider was injected or when already initialized.
|
|
101
|
+
*
|
|
102
|
+
* Requirements: 1.1, 1.5, 1.6, 2.1, 2.2, 2.3, 2.4, 2.5, 8.1, 8.2, 8.3, 9.1, 9.2
|
|
103
|
+
*/
|
|
104
|
+
init(): Promise<void>;
|
|
105
|
+
private generateSymmetricKey;
|
|
106
|
+
/**
|
|
107
|
+
* Encrypt a symmetric key for multiple members, returning a Map<memberId, wrappedKey>.
|
|
108
|
+
* Wraps key wrapping failures as KeyUnwrapError with context information.
|
|
109
|
+
*
|
|
110
|
+
* Requirements: 12.3
|
|
111
|
+
*/
|
|
112
|
+
private encryptKeyForMembers;
|
|
113
|
+
/**
|
|
114
|
+
* Assert that a key epoch exists in the epoch state for a given context.
|
|
115
|
+
* Throws KeyEpochNotFoundError if the epoch is not found.
|
|
116
|
+
*
|
|
117
|
+
* Requirements: 12.3, 12.4
|
|
118
|
+
*/
|
|
119
|
+
private assertEpochExists;
|
|
120
|
+
/**
|
|
121
|
+
* Create initial epoch state (epoch 0) for a new conversation.
|
|
122
|
+
* Uses KeyEpochManager pattern: creates epoch 0 with wrapped keys for all participants.
|
|
123
|
+
*
|
|
124
|
+
* Requirements: 4.1, 4.4
|
|
125
|
+
*/
|
|
126
|
+
private createInitialEpochState;
|
|
62
127
|
/**
|
|
63
128
|
* Register a member as known (exists in the system).
|
|
64
129
|
*/
|
|
@@ -83,6 +148,9 @@ export declare class ConversationService {
|
|
|
83
148
|
private participantKey;
|
|
84
149
|
/**
|
|
85
150
|
* Create a new conversation between two members, or return the existing one.
|
|
151
|
+
* Generates a DM_Key and wraps for both participants using epoch-aware key management.
|
|
152
|
+
*
|
|
153
|
+
* Requirements: 4.1, 4.4, 9.2
|
|
86
154
|
*/
|
|
87
155
|
createOrGetConversation(memberA: string, memberB: string): Promise<IConversation>;
|
|
88
156
|
/**
|
|
@@ -92,16 +160,26 @@ export declare class ConversationService {
|
|
|
92
160
|
listConversations(memberId: string, cursor?: string, limit?: number): Promise<IPaginatedResult<IConversation>>;
|
|
93
161
|
/**
|
|
94
162
|
* Get messages in a conversation, in chronological order.
|
|
163
|
+
* Messages are returned with their keyEpoch so clients can decrypt
|
|
164
|
+
* using the appropriate epoch's DM_Key.
|
|
165
|
+
* Validates that each message's keyEpoch exists in the epoch state;
|
|
166
|
+
* throws KeyEpochNotFoundError if a message references a non-existent epoch.
|
|
95
167
|
* Supports cursor-based pagination.
|
|
168
|
+
*
|
|
169
|
+
* Requirements: 4.3, 4.5, 12.3, 12.4
|
|
96
170
|
*/
|
|
97
171
|
getMessages(conversationId: string, memberId: string, cursor?: string, limit?: number): Promise<IPaginatedResult<ICommunicationMessage>>;
|
|
98
172
|
/**
|
|
99
173
|
* Send a message in a conversation.
|
|
100
174
|
* Creates the conversation if it doesn't exist.
|
|
175
|
+
* Encrypts content with the current epoch's DM_Key and records the keyEpoch.
|
|
101
176
|
* Checks recipient reachability and returns a uniform error for
|
|
102
177
|
* non-existent or blocked members.
|
|
178
|
+
* Optionally accepts attachments which are validated against platform limits.
|
|
179
|
+
*
|
|
180
|
+
* Requirements: 4.2, 4.5, 9.2, 11.1, 11.2, 11.4, 11.5
|
|
103
181
|
*/
|
|
104
|
-
sendMessage(senderId: string, recipientId: string, content: string, conversationId?: string): Promise<ICommunicationMessage>;
|
|
182
|
+
sendMessage(senderId: string, recipientId: string, content: string, conversationId?: string, attachments?: IChatAttachmentInput[]): Promise<ICommunicationMessage>;
|
|
105
183
|
/**
|
|
106
184
|
* Delete a message authored by the requesting member.
|
|
107
185
|
* Marks the message as deleted for all participants.
|
|
@@ -116,6 +194,15 @@ export declare class ConversationService {
|
|
|
116
194
|
* Get a conversation by ID. Returns undefined if not found.
|
|
117
195
|
*/
|
|
118
196
|
getConversation(conversationId: string): IConversation | undefined;
|
|
197
|
+
/**
|
|
198
|
+
* Get the current epoch's raw symmetric key for a conversation.
|
|
199
|
+
* Returns the key for the latest epoch (backward-compatible accessor).
|
|
200
|
+
*/
|
|
201
|
+
getSymmetricKey(conversationId: string): Uint8Array | undefined;
|
|
202
|
+
/**
|
|
203
|
+
* Get the full epoch state for a conversation (testing / internal use).
|
|
204
|
+
*/
|
|
205
|
+
getKeyEpochState(conversationId: string): IKeyEpochState<string> | undefined;
|
|
119
206
|
/**
|
|
120
207
|
* Get all messages for a conversation (no pagination). Used internally
|
|
121
208
|
* for promotion and testing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversationService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/conversationService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"conversationService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/conversationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,53 @@
|
|
|
6
6
|
* encrypted content storage to MessagePassingService. Supports cursor-based
|
|
7
7
|
* pagination, message deletion, and conversation promotion to groups.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Uses epoch-aware key management via IKeyEpochState for forward secrecy.
|
|
10
|
+
* DM conversations generate a 256-bit DM_Key at creation, wrapped per-participant
|
|
11
|
+
* using the injected key encryption handler. Messages record the keyEpoch they
|
|
12
|
+
* were encrypted under.
|
|
13
|
+
*
|
|
14
|
+
* When an IChatStorageProvider is injected, conversations and messages are
|
|
15
|
+
* also persisted to the provider's collections (write-through). Sync helper
|
|
16
|
+
* methods continue to read from the in-memory Maps so their signatures
|
|
17
|
+
* remain unchanged.
|
|
18
|
+
*
|
|
19
|
+
* Requirements: 10.1, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 9.2
|
|
10
20
|
*/
|
|
11
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
22
|
exports.ConversationService = exports.GroupPromotionNotConfiguredError = exports.NotMessageAuthorError = exports.MessageNotFoundError = exports.NotParticipantError = exports.ConversationNotFoundError = exports.RecipientNotReachableError = void 0;
|
|
23
|
+
exports.extractConversationKeyFromDefault = extractConversationKeyFromDefault;
|
|
13
24
|
const uuid_1 = require("uuid");
|
|
25
|
+
const platformCrypto_1 = require("../../crypto/platformCrypto");
|
|
26
|
+
const attachmentUtils_1 = require("./attachmentUtils");
|
|
14
27
|
const events_1 = require("../../interfaces/events");
|
|
15
28
|
const pagination_1 = require("../../utils/pagination");
|
|
29
|
+
const encryptionErrors_1 = require("../../errors/encryptionErrors");
|
|
30
|
+
const rehydrationHelpers_1 = require("./rehydrationHelpers");
|
|
31
|
+
/**
|
|
32
|
+
* Default key encryption: base64-encodes the key prefixed with memberId.
|
|
33
|
+
* Placeholder; real implementations use ECIES.
|
|
34
|
+
*/
|
|
35
|
+
function defaultKeyEncryption(memberId, symmetricKey) {
|
|
36
|
+
const binary = Array.from(symmetricKey)
|
|
37
|
+
.map((b) => String.fromCharCode(b))
|
|
38
|
+
.join('');
|
|
39
|
+
const base64 = btoa(binary);
|
|
40
|
+
return `enc:${memberId}:${base64}`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract the symmetric key from a default-encrypted key string.
|
|
44
|
+
* Only works with the default placeholder encryption.
|
|
45
|
+
*/
|
|
46
|
+
function extractConversationKeyFromDefault(encrypted) {
|
|
47
|
+
const parts = encrypted.split(':');
|
|
48
|
+
const base64 = parts[2];
|
|
49
|
+
const binary = atob(base64);
|
|
50
|
+
const bytes = new Uint8Array(binary.length);
|
|
51
|
+
for (let i = 0; i < binary.length; i++) {
|
|
52
|
+
bytes[i] = binary.charCodeAt(i);
|
|
53
|
+
}
|
|
54
|
+
return bytes;
|
|
55
|
+
}
|
|
16
56
|
/**
|
|
17
57
|
* Uniform error thrown when a recipient is not reachable.
|
|
18
58
|
* The message is intentionally identical for non-existent and blocked members
|
|
@@ -71,13 +111,135 @@ class ConversationService {
|
|
|
71
111
|
blockedPairs = new Set();
|
|
72
112
|
/** Set of known member IDs */
|
|
73
113
|
knownMembers = new Set();
|
|
114
|
+
/** conversationId → epoch-aware key state (raw keys + wrapped keys per epoch) */
|
|
115
|
+
keyEpochStates = new Map();
|
|
74
116
|
groupPromotionHandler = null;
|
|
117
|
+
initialized = false;
|
|
75
118
|
memberReachabilityCheck;
|
|
76
119
|
eventEmitter;
|
|
77
|
-
|
|
120
|
+
encryptKey;
|
|
121
|
+
randomBytesProvider;
|
|
122
|
+
/** Optional persistent collection for conversations (write-through). */
|
|
123
|
+
conversationCollection;
|
|
124
|
+
/** Optional persistent collection for messages (write-through). */
|
|
125
|
+
messageCollection;
|
|
126
|
+
/** Optional block content store for storing message content as blocks. */
|
|
127
|
+
blockContentStore;
|
|
128
|
+
constructor(memberReachabilityCheck = null, eventEmitter = new events_1.NullEventEmitter(), storageProvider, encryptKey = defaultKeyEncryption, randomBytesProvider, blockContentStore) {
|
|
78
129
|
this.memberReachabilityCheck = memberReachabilityCheck;
|
|
79
130
|
this.eventEmitter = eventEmitter;
|
|
131
|
+
this.encryptKey = encryptKey;
|
|
132
|
+
this.randomBytesProvider = randomBytesProvider ?? platformCrypto_1.getRandomBytes;
|
|
133
|
+
this.blockContentStore = blockContentStore;
|
|
134
|
+
if (storageProvider) {
|
|
135
|
+
this.conversationCollection = storageProvider.conversations;
|
|
136
|
+
this.messageCollection = storageProvider.messages;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// ─── Rehydration ────────────────────────────────────────────────────────
|
|
140
|
+
/**
|
|
141
|
+
* Load persisted conversations and messages from the storage provider
|
|
142
|
+
* into in-memory Maps, rebuilding derived indexes and key epoch states.
|
|
143
|
+
*
|
|
144
|
+
* No-op when no storage provider was injected or when already initialized.
|
|
145
|
+
*
|
|
146
|
+
* Requirements: 1.1, 1.5, 1.6, 2.1, 2.2, 2.3, 2.4, 2.5, 8.1, 8.2, 8.3, 9.1, 9.2
|
|
147
|
+
*/
|
|
148
|
+
async init() {
|
|
149
|
+
if (this.initialized)
|
|
150
|
+
return;
|
|
151
|
+
if (!this.conversationCollection)
|
|
152
|
+
return;
|
|
153
|
+
this.initialized = true;
|
|
154
|
+
// ── Load conversations ──────────────────────────────────────────────
|
|
155
|
+
let loadedConversations;
|
|
156
|
+
try {
|
|
157
|
+
loadedConversations = await this.conversationCollection.findMany();
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
console.error('[ConversationService] Failed to load from conversations collection:', error);
|
|
161
|
+
throw error;
|
|
162
|
+
}
|
|
163
|
+
for (const conversation of loadedConversations) {
|
|
164
|
+
this.conversations.set(conversation.id, conversation);
|
|
165
|
+
// Rebuild participant index
|
|
166
|
+
const key = this.participantKey(conversation.participants[0], conversation.participants[1]);
|
|
167
|
+
this.participantIndex.set(key, conversation.id);
|
|
168
|
+
// Reconstruct key epoch state
|
|
169
|
+
const epochState = (0, rehydrationHelpers_1.reconstructKeyEpochState)(conversation.encryptedSharedKey);
|
|
170
|
+
if (epochState) {
|
|
171
|
+
this.keyEpochStates.set(conversation.id, epochState);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
console.warn(`[ConversationService] Skipping key epoch reconstruction for conversation ${conversation.id}: malformed encryptedSharedKey`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// ── Load messages ───────────────────────────────────────────────────
|
|
178
|
+
let loadedMessages;
|
|
179
|
+
try {
|
|
180
|
+
loadedMessages = await this.messageCollection.findMany();
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
console.error('[ConversationService] Failed to load from messages collection:', error);
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
const grouped = (0, rehydrationHelpers_1.groupAndSortMessages)(loadedMessages);
|
|
187
|
+
for (const [contextId, msgs] of grouped) {
|
|
188
|
+
this.messages.set(contextId, msgs);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// ─── Key management helpers ─────────────────────────────────────────────
|
|
192
|
+
generateSymmetricKey() {
|
|
193
|
+
return this.randomBytesProvider(32); // AES-256
|
|
80
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Encrypt a symmetric key for multiple members, returning a Map<memberId, wrappedKey>.
|
|
197
|
+
* Wraps key wrapping failures as KeyUnwrapError with context information.
|
|
198
|
+
*
|
|
199
|
+
* Requirements: 12.3
|
|
200
|
+
*/
|
|
201
|
+
encryptKeyForMembers(memberIds, symmetricKey, contextId, epoch) {
|
|
202
|
+
const encrypted = new Map();
|
|
203
|
+
for (const id of memberIds) {
|
|
204
|
+
try {
|
|
205
|
+
encrypted.set(id, this.encryptKey(id, symmetricKey));
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
if (contextId !== undefined && epoch !== undefined) {
|
|
209
|
+
throw new encryptionErrors_1.KeyUnwrapError(contextId, id, epoch);
|
|
210
|
+
}
|
|
211
|
+
throw error;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return encrypted;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Assert that a key epoch exists in the epoch state for a given context.
|
|
218
|
+
* Throws KeyEpochNotFoundError if the epoch is not found.
|
|
219
|
+
*
|
|
220
|
+
* Requirements: 12.3, 12.4
|
|
221
|
+
*/
|
|
222
|
+
assertEpochExists(contextId, keyEpoch) {
|
|
223
|
+
const state = this.keyEpochStates.get(contextId);
|
|
224
|
+
if (!state || !state.epochKeys.has(keyEpoch)) {
|
|
225
|
+
throw new encryptionErrors_1.KeyEpochNotFoundError(contextId, keyEpoch);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Create initial epoch state (epoch 0) for a new conversation.
|
|
230
|
+
* Uses KeyEpochManager pattern: creates epoch 0 with wrapped keys for all participants.
|
|
231
|
+
*
|
|
232
|
+
* Requirements: 4.1, 4.4
|
|
233
|
+
*/
|
|
234
|
+
createInitialEpochState(symmetricKey, memberIds) {
|
|
235
|
+
const epochKeys = new Map();
|
|
236
|
+
epochKeys.set(0, symmetricKey);
|
|
237
|
+
const wrappedKeys = this.encryptKeyForMembers(memberIds, symmetricKey);
|
|
238
|
+
const encryptedEpochKeys = new Map();
|
|
239
|
+
encryptedEpochKeys.set(0, wrappedKeys);
|
|
240
|
+
return { currentEpoch: 0, epochKeys, encryptedEpochKeys };
|
|
241
|
+
}
|
|
242
|
+
// ─── Member management ──────────────────────────────────────────────────
|
|
81
243
|
/**
|
|
82
244
|
* Register a member as known (exists in the system).
|
|
83
245
|
*/
|
|
@@ -116,8 +278,12 @@ class ConversationService {
|
|
|
116
278
|
participantKey(a, b) {
|
|
117
279
|
return a < b ? `${a}:${b}` : `${b}:${a}`;
|
|
118
280
|
}
|
|
281
|
+
// ─── Conversation lifecycle ─────────────────────────────────────────────
|
|
119
282
|
/**
|
|
120
283
|
* Create a new conversation between two members, or return the existing one.
|
|
284
|
+
* Generates a DM_Key and wraps for both participants using epoch-aware key management.
|
|
285
|
+
*
|
|
286
|
+
* Requirements: 4.1, 4.4, 9.2
|
|
121
287
|
*/
|
|
122
288
|
async createOrGetConversation(memberA, memberB) {
|
|
123
289
|
const key = this.participantKey(memberA, memberB);
|
|
@@ -129,15 +295,25 @@ class ConversationService {
|
|
|
129
295
|
}
|
|
130
296
|
}
|
|
131
297
|
const now = new Date();
|
|
298
|
+
const symmetricKey = this.generateSymmetricKey();
|
|
299
|
+
const participants = [memberA, memberB];
|
|
300
|
+
// Create initial epoch state (epoch 0) with wrapped keys for both participants
|
|
301
|
+
const epochState = this.createInitialEpochState(symmetricKey, participants);
|
|
132
302
|
const conversation = {
|
|
133
303
|
id: (0, uuid_1.v4)(),
|
|
134
|
-
participants
|
|
304
|
+
participants,
|
|
305
|
+
encryptedSharedKey: epochState.encryptedEpochKeys,
|
|
135
306
|
createdAt: now,
|
|
136
307
|
lastMessageAt: now,
|
|
137
308
|
};
|
|
138
309
|
this.conversations.set(conversation.id, conversation);
|
|
139
310
|
this.messages.set(conversation.id, []);
|
|
311
|
+
this.keyEpochStates.set(conversation.id, epochState);
|
|
140
312
|
this.participantIndex.set(key, conversation.id);
|
|
313
|
+
// Persist to storage provider if available
|
|
314
|
+
if (this.conversationCollection) {
|
|
315
|
+
await this.conversationCollection.create(conversation);
|
|
316
|
+
}
|
|
141
317
|
return conversation;
|
|
142
318
|
}
|
|
143
319
|
/**
|
|
@@ -152,7 +328,13 @@ class ConversationService {
|
|
|
152
328
|
}
|
|
153
329
|
/**
|
|
154
330
|
* Get messages in a conversation, in chronological order.
|
|
331
|
+
* Messages are returned with their keyEpoch so clients can decrypt
|
|
332
|
+
* using the appropriate epoch's DM_Key.
|
|
333
|
+
* Validates that each message's keyEpoch exists in the epoch state;
|
|
334
|
+
* throws KeyEpochNotFoundError if a message references a non-existent epoch.
|
|
155
335
|
* Supports cursor-based pagination.
|
|
336
|
+
*
|
|
337
|
+
* Requirements: 4.3, 4.5, 12.3, 12.4
|
|
156
338
|
*/
|
|
157
339
|
async getMessages(conversationId, memberId, cursor, limit = 50) {
|
|
158
340
|
const conversation = this.conversations.get(conversationId);
|
|
@@ -164,19 +346,31 @@ class ConversationService {
|
|
|
164
346
|
throw new NotParticipantError();
|
|
165
347
|
}
|
|
166
348
|
const msgs = this.messages.get(conversationId) ?? [];
|
|
349
|
+
// Validate that each message's keyEpoch exists in the epoch state
|
|
350
|
+
for (const msg of msgs) {
|
|
351
|
+
this.assertEpochExists(conversationId, msg.keyEpoch);
|
|
352
|
+
}
|
|
167
353
|
return (0, pagination_1.paginateItems)(msgs, cursor, limit);
|
|
168
354
|
}
|
|
169
355
|
/**
|
|
170
356
|
* Send a message in a conversation.
|
|
171
357
|
* Creates the conversation if it doesn't exist.
|
|
358
|
+
* Encrypts content with the current epoch's DM_Key and records the keyEpoch.
|
|
172
359
|
* Checks recipient reachability and returns a uniform error for
|
|
173
360
|
* non-existent or blocked members.
|
|
361
|
+
* Optionally accepts attachments which are validated against platform limits.
|
|
362
|
+
*
|
|
363
|
+
* Requirements: 4.2, 4.5, 9.2, 11.1, 11.2, 11.4, 11.5
|
|
174
364
|
*/
|
|
175
|
-
async sendMessage(senderId, recipientId, content, conversationId) {
|
|
365
|
+
async sendMessage(senderId, recipientId, content, conversationId, attachments) {
|
|
176
366
|
// Check reachability: uniform error for blocked/non-existent
|
|
177
367
|
if (!this.isReachable(senderId, recipientId)) {
|
|
178
368
|
throw new RecipientNotReachableError();
|
|
179
369
|
}
|
|
370
|
+
// Validate and prepare attachment metadata before creating the message
|
|
371
|
+
const attachmentMetadata = attachments?.length
|
|
372
|
+
? (0, attachmentUtils_1.validateAndPrepareAttachments)(attachments)
|
|
373
|
+
: [];
|
|
180
374
|
let conversation;
|
|
181
375
|
if (conversationId) {
|
|
182
376
|
const existing = this.conversations.get(conversationId);
|
|
@@ -188,18 +382,28 @@ class ConversationService {
|
|
|
188
382
|
else {
|
|
189
383
|
conversation = await this.createOrGetConversation(senderId, recipientId);
|
|
190
384
|
}
|
|
385
|
+
const state = this.keyEpochStates.get(conversation.id);
|
|
386
|
+
const currentEpoch = state?.currentEpoch ?? 0;
|
|
387
|
+
// Store content via block content store if available; otherwise use raw content
|
|
388
|
+
let messageContent = content;
|
|
389
|
+
if (this.blockContentStore) {
|
|
390
|
+
const { blockReference } = await this.blockContentStore.storeContent(content, senderId, [recipientId]);
|
|
391
|
+
messageContent = blockReference;
|
|
392
|
+
}
|
|
191
393
|
const now = new Date();
|
|
192
394
|
const message = {
|
|
193
395
|
id: (0, uuid_1.v4)(),
|
|
194
396
|
contextType: 'conversation',
|
|
195
397
|
contextId: conversation.id,
|
|
196
398
|
senderId,
|
|
197
|
-
encryptedContent:
|
|
399
|
+
encryptedContent: messageContent,
|
|
198
400
|
createdAt: now,
|
|
199
401
|
editHistory: [],
|
|
200
402
|
deleted: false,
|
|
201
403
|
pinned: false,
|
|
202
404
|
reactions: [],
|
|
405
|
+
keyEpoch: currentEpoch,
|
|
406
|
+
attachments: attachmentMetadata,
|
|
203
407
|
};
|
|
204
408
|
const msgs = this.messages.get(conversation.id);
|
|
205
409
|
if (msgs) {
|
|
@@ -207,6 +411,13 @@ class ConversationService {
|
|
|
207
411
|
}
|
|
208
412
|
// Update conversation's lastMessageAt
|
|
209
413
|
conversation.lastMessageAt = now;
|
|
414
|
+
// Persist to storage provider if available
|
|
415
|
+
if (this.messageCollection) {
|
|
416
|
+
await this.messageCollection.create(message);
|
|
417
|
+
}
|
|
418
|
+
if (this.conversationCollection) {
|
|
419
|
+
await this.conversationCollection.update(conversation.id, conversation);
|
|
420
|
+
}
|
|
210
421
|
// Emit message sent event
|
|
211
422
|
this.eventEmitter.emitMessageSent('conversation', conversation.id, message.id, senderId);
|
|
212
423
|
return message;
|
|
@@ -234,6 +445,10 @@ class ConversationService {
|
|
|
234
445
|
}
|
|
235
446
|
message.deleted = true;
|
|
236
447
|
message.deletedBy = memberId;
|
|
448
|
+
// Persist deletion to storage provider if available
|
|
449
|
+
if (this.messageCollection) {
|
|
450
|
+
await this.messageCollection.update(messageId, message);
|
|
451
|
+
}
|
|
237
452
|
// Emit message deleted event
|
|
238
453
|
this.eventEmitter.emitMessageDeleted('conversation', conversationId, messageId, memberId);
|
|
239
454
|
}
|
|
@@ -256,12 +471,29 @@ class ConversationService {
|
|
|
256
471
|
const msgs = this.messages.get(conversationId) ?? [];
|
|
257
472
|
return this.groupPromotionHandler(conversationId, conversation.participants, newMemberIds, msgs, requesterId);
|
|
258
473
|
}
|
|
474
|
+
// ─── Accessors (for testing / internal use) ───────────────────────────
|
|
259
475
|
/**
|
|
260
476
|
* Get a conversation by ID. Returns undefined if not found.
|
|
261
477
|
*/
|
|
262
478
|
getConversation(conversationId) {
|
|
263
479
|
return this.conversations.get(conversationId);
|
|
264
480
|
}
|
|
481
|
+
/**
|
|
482
|
+
* Get the current epoch's raw symmetric key for a conversation.
|
|
483
|
+
* Returns the key for the latest epoch (backward-compatible accessor).
|
|
484
|
+
*/
|
|
485
|
+
getSymmetricKey(conversationId) {
|
|
486
|
+
const state = this.keyEpochStates.get(conversationId);
|
|
487
|
+
if (!state)
|
|
488
|
+
return undefined;
|
|
489
|
+
return state.epochKeys.get(state.currentEpoch);
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Get the full epoch state for a conversation (testing / internal use).
|
|
493
|
+
*/
|
|
494
|
+
getKeyEpochState(conversationId) {
|
|
495
|
+
return this.keyEpochStates.get(conversationId);
|
|
496
|
+
}
|
|
265
497
|
/**
|
|
266
498
|
* Get all messages for a conversation (no pagination). Used internally
|
|
267
499
|
* for promotion and testing.
|