@brightchain/brightchain-lib 0.13.0 → 0.14.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 +1 -1
- package/src/browser.d.ts +1 -1
- package/src/browser.d.ts.map +1 -1
- package/src/browser.js +3 -3
- package/src/browser.js.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.d.ts +6 -1
- package/src/lib/blocks/encryptedBlockFactory.d.ts.map +1 -1
- package/src/lib/blocks/encryptedBlockFactory.js +14 -5
- package/src/lib/blocks/encryptedBlockFactory.js.map +1 -1
- package/src/lib/enumerations/brightChainStrings.d.ts +1 -1
- package/src/lib/enumerations/brightChainStrings.js +1 -1
- package/src/lib/enumerations/brightChainStrings.js.map +1 -1
- package/src/lib/enumerations/messaging/deliveryStatus.d.ts +50 -0
- package/src/lib/enumerations/messaging/deliveryStatus.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/deliveryStatus.js +68 -0
- package/src/lib/enumerations/messaging/deliveryStatus.js.map +1 -0
- package/src/lib/enumerations/messaging/emailErrorType.d.ts +36 -0
- package/src/lib/enumerations/messaging/emailErrorType.d.ts.map +1 -0
- package/src/lib/enumerations/messaging/emailErrorType.js +46 -0
- package/src/lib/enumerations/messaging/emailErrorType.js.map +1 -0
- package/src/lib/enumerations/messaging/index.d.ts +2 -1
- package/src/lib/enumerations/messaging/index.d.ts.map +1 -1
- package/src/lib/enumerations/messaging/index.js +2 -1
- package/src/lib/enumerations/messaging/index.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/messaging/emailError.d.ts +55 -0
- package/src/lib/errors/messaging/emailError.d.ts.map +1 -0
- package/src/lib/errors/messaging/emailError.js +64 -0
- package/src/lib/errors/messaging/emailError.js.map +1 -0
- package/src/lib/errors/messaging/index.d.ts +1 -0
- package/src/lib/errors/messaging/index.d.ts.map +1 -1
- package/src/lib/errors/messaging/index.js +1 -0
- package/src/lib/errors/messaging/index.js.map +1 -1
- package/src/lib/i18n/i18n-setup.d.ts +7 -2
- package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
- package/src/lib/i18n/i18n-setup.js +84 -24
- package/src/lib/i18n/i18n-setup.js.map +1 -1
- package/src/lib/interfaces/availability/gossipService.d.ts +171 -4
- package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
- package/src/lib/interfaces/availability/gossipService.js +139 -0
- package/src/lib/interfaces/availability/gossipService.js.map +1 -1
- package/src/lib/interfaces/messaging/attachmentMetadata.d.ts +47 -0
- package/src/lib/interfaces/messaging/attachmentMetadata.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/{messageRouter.js → attachmentMetadata.js} +1 -1
- package/src/lib/interfaces/messaging/attachmentMetadata.js.map +1 -0
- package/src/lib/interfaces/messaging/emailAddress.d.ts +210 -0
- package/src/lib/interfaces/messaging/emailAddress.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/emailAddress.js +213 -0
- package/src/lib/interfaces/messaging/emailAddress.js.map +1 -0
- package/src/lib/interfaces/messaging/emailDelivery.d.ts +80 -0
- package/src/lib/interfaces/messaging/emailDelivery.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/emailDelivery.js +50 -0
- package/src/lib/interfaces/messaging/emailDelivery.js.map +1 -0
- package/src/lib/interfaces/messaging/emailMetadata.d.ts +269 -0
- package/src/lib/interfaces/messaging/emailMetadata.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/emailMetadata.js +16 -0
- package/src/lib/interfaces/messaging/emailMetadata.js.map +1 -0
- package/src/lib/interfaces/messaging/index.d.ts +5 -1
- package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/index.js +5 -1
- package/src/lib/interfaces/messaging/index.js.map +1 -1
- package/src/lib/interfaces/messaging/messageMetadata.d.ts +2 -2
- package/src/lib/interfaces/messaging/messageMetadata.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/messageMetadataStore.d.ts +2 -2
- package/src/lib/interfaces/messaging/messageMetadataStore.d.ts.map +1 -1
- package/src/lib/interfaces/messaging/mimePart.d.ts +214 -0
- package/src/lib/interfaces/messaging/mimePart.d.ts.map +1 -0
- package/src/lib/interfaces/messaging/mimePart.js +71 -0
- package/src/lib/interfaces/messaging/mimePart.js.map +1 -0
- package/src/lib/interfaces/network/index.d.ts +0 -1
- package/src/lib/interfaces/network/index.d.ts.map +1 -1
- package/src/lib/schemas/messaging/messageMetadataSchema.d.ts.map +1 -1
- package/src/lib/schemas/messaging/messageMetadataSchema.js.map +1 -1
- package/src/lib/services/messaging/deliveryTimeoutService.js +2 -2
- package/src/lib/services/messaging/deliveryTimeoutService.js.map +1 -1
- package/src/lib/services/messaging/emailEncryptionService.d.ts +250 -0
- package/src/lib/services/messaging/emailEncryptionService.d.ts.map +1 -0
- package/src/lib/services/messaging/emailEncryptionService.js +420 -0
- package/src/lib/services/messaging/emailEncryptionService.js.map +1 -0
- package/src/lib/services/messaging/emailMessageService.d.ts +669 -0
- package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -0
- package/src/lib/services/messaging/emailMessageService.js +1013 -0
- package/src/lib/services/messaging/emailMessageService.js.map +1 -0
- package/src/lib/services/messaging/emailParser.d.ts +458 -0
- package/src/lib/services/messaging/emailParser.d.ts.map +1 -0
- package/src/lib/services/messaging/emailParser.js +1298 -0
- package/src/lib/services/messaging/emailParser.js.map +1 -0
- package/src/lib/services/messaging/emailSerializer.d.ts +403 -0
- package/src/lib/services/messaging/emailSerializer.d.ts.map +1 -0
- package/src/lib/services/messaging/emailSerializer.js +852 -0
- package/src/lib/services/messaging/emailSerializer.js.map +1 -0
- package/src/lib/services/messaging/emailValidator.d.ts +448 -0
- package/src/lib/services/messaging/emailValidator.d.ts.map +1 -0
- package/src/lib/services/messaging/emailValidator.js +810 -0
- package/src/lib/services/messaging/emailValidator.js.map +1 -0
- package/src/lib/services/messaging/gossipRetryService.d.ts +204 -0
- package/src/lib/services/messaging/gossipRetryService.d.ts.map +1 -0
- package/src/lib/services/messaging/gossipRetryService.js +319 -0
- package/src/lib/services/messaging/gossipRetryService.js.map +1 -0
- package/src/lib/services/messaging/inMemoryEmailMetadataStore.d.ts +60 -0
- package/src/lib/services/messaging/inMemoryEmailMetadataStore.d.ts.map +1 -0
- package/src/lib/services/messaging/inMemoryEmailMetadataStore.js +281 -0
- package/src/lib/services/messaging/inMemoryEmailMetadataStore.js.map +1 -0
- package/src/lib/services/messaging/index.d.ts +11 -5
- package/src/lib/services/messaging/index.d.ts.map +1 -1
- package/src/lib/services/messaging/index.js +19 -5
- package/src/lib/services/messaging/index.js.map +1 -1
- package/src/lib/services/messaging/messageCBLService.js +2 -2
- package/src/lib/services/messaging/messageCBLService.js.map +1 -1
- package/src/lib/stores/messaging/memoryMessageMetadataStore.d.ts +2 -2
- package/src/lib/stores/messaging/memoryMessageMetadataStore.d.ts.map +1 -1
- package/src/lib/stores/messaging/memoryMessageMetadataStore.js +2 -2
- package/src/lib/stores/messaging/memoryMessageMetadataStore.js.map +1 -1
- package/src/lib/enumerations/messaging/messageDeliveryStatus.d.ts +0 -18
- package/src/lib/enumerations/messaging/messageDeliveryStatus.d.ts.map +0 -1
- package/src/lib/enumerations/messaging/messageDeliveryStatus.js +0 -22
- package/src/lib/enumerations/messaging/messageDeliveryStatus.js.map +0 -1
- package/src/lib/enumerations/messaging/routingStrategy.d.ts +0 -12
- package/src/lib/enumerations/messaging/routingStrategy.d.ts.map +0 -1
- package/src/lib/enumerations/messaging/routingStrategy.js +0 -16
- package/src/lib/enumerations/messaging/routingStrategy.js.map +0 -1
- package/src/lib/interfaces/messaging/messageRouter.d.ts +0 -48
- package/src/lib/interfaces/messaging/messageRouter.d.ts.map +0 -1
- package/src/lib/interfaces/messaging/messageRouter.js.map +0 -1
- package/src/lib/interfaces/network/networkTransport.d.ts +0 -19
- package/src/lib/interfaces/network/networkTransport.d.ts.map +0 -1
- package/src/lib/interfaces/network/networkTransport.js +0 -3
- package/src/lib/interfaces/network/networkTransport.js.map +0 -1
- package/src/lib/services/messaging/broadcastMessageRouter.d.ts +0 -18
- package/src/lib/services/messaging/broadcastMessageRouter.d.ts.map +0 -1
- package/src/lib/services/messaging/broadcastMessageRouter.js +0 -32
- package/src/lib/services/messaging/broadcastMessageRouter.js.map +0 -1
- package/src/lib/services/messaging/directMessageRouter.d.ts +0 -25
- package/src/lib/services/messaging/directMessageRouter.d.ts.map +0 -1
- package/src/lib/services/messaging/directMessageRouter.js +0 -58
- package/src/lib/services/messaging/directMessageRouter.js.map +0 -1
- package/src/lib/services/messaging/messageForwardingService.d.ts +0 -40
- package/src/lib/services/messaging/messageForwardingService.d.ts.map +0 -1
- package/src/lib/services/messaging/messageForwardingService.js +0 -74
- package/src/lib/services/messaging/messageForwardingService.js.map +0 -1
- package/src/lib/services/messaging/messageRouter.d.ts +0 -24
- package/src/lib/services/messaging/messageRouter.d.ts.map +0 -1
- package/src/lib/services/messaging/messageRouter.js +0 -111
- package/src/lib/services/messaging/messageRouter.js.map +0 -1
- package/src/lib/services/messaging/webSocketTransport.d.ts +0 -34
- package/src/lib/services/messaging/webSocketTransport.d.ts.map +0 -1
- package/src/lib/services/messaging/webSocketTransport.js +0 -115
- package/src/lib/services/messaging/webSocketTransport.js.map +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RFC 5322 Email Address Interfaces and Utilities
|
|
4
|
+
*
|
|
5
|
+
* Provides interfaces for representing email addresses per RFC 5322 Section 3.4,
|
|
6
|
+
* including individual mailboxes (addr-spec and name-addr formats) and group
|
|
7
|
+
* addresses. Also provides utility functions for creating, formatting, and
|
|
8
|
+
* type-guarding address objects.
|
|
9
|
+
*
|
|
10
|
+
* @see RFC 5322 Section 3.4 - Address Specification
|
|
11
|
+
* @see RFC 5321 - Address length limits
|
|
12
|
+
* @see RFC 6532 - Internationalized Email Headers (UTF-8)
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* Requirements: 2.1, 2.2, 2.3, 2.4
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.createMailbox = createMailbox;
|
|
19
|
+
exports.createAddressGroup = createAddressGroup;
|
|
20
|
+
exports.isMailbox = isMailbox;
|
|
21
|
+
exports.isAddressGroup = isAddressGroup;
|
|
22
|
+
exports.formatMailbox = formatMailbox;
|
|
23
|
+
exports.formatAddressGroup = formatAddressGroup;
|
|
24
|
+
exports.formatAddress = formatAddress;
|
|
25
|
+
exports.formatAddressList = formatAddressList;
|
|
26
|
+
// ─── Utility Functions ──────────────────────────────────────────────────────
|
|
27
|
+
/**
|
|
28
|
+
* Creates an IMailbox object with a computed `address` property.
|
|
29
|
+
*
|
|
30
|
+
* @param localPart - The local part of the email address (before @)
|
|
31
|
+
* @param domain - The domain of the email address (after @)
|
|
32
|
+
* @param displayName - Optional display name
|
|
33
|
+
* @returns A fully constructed IMailbox with computed address getter
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const mailbox = createMailbox('john', 'example.com', 'John Doe');
|
|
38
|
+
* console.log(mailbox.address); // "john@example.com"
|
|
39
|
+
* console.log(mailbox.displayName); // "John Doe"
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function createMailbox(localPart, domain, displayName) {
|
|
43
|
+
return {
|
|
44
|
+
localPart,
|
|
45
|
+
domain,
|
|
46
|
+
displayName,
|
|
47
|
+
get address() {
|
|
48
|
+
return `${this.localPart}@${this.domain}`;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Creates an IAddressGroup object.
|
|
54
|
+
*
|
|
55
|
+
* @param displayName - The group display name
|
|
56
|
+
* @param mailboxes - Array of mailboxes in the group (defaults to empty)
|
|
57
|
+
* @returns A fully constructed IAddressGroup
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const group = createAddressGroup('Team', [
|
|
62
|
+
* createMailbox('alice', 'example.com'),
|
|
63
|
+
* createMailbox('bob', 'example.com'),
|
|
64
|
+
* ]);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
function createAddressGroup(displayName, mailboxes = []) {
|
|
68
|
+
return {
|
|
69
|
+
displayName,
|
|
70
|
+
mailboxes,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Type guard to check if an IAddress is an IMailbox.
|
|
75
|
+
*
|
|
76
|
+
* Distinguishes mailboxes from groups by checking for the presence of
|
|
77
|
+
* `localPart` and `domain` properties (which are unique to IMailbox).
|
|
78
|
+
*
|
|
79
|
+
* @param address - The address to check
|
|
80
|
+
* @returns true if the address is an IMailbox
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const addr: IAddress = createMailbox('user', 'example.com');
|
|
85
|
+
* if (isMailbox(addr)) {
|
|
86
|
+
* console.log(addr.address); // "user@example.com"
|
|
87
|
+
* }
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
function isMailbox(address) {
|
|
91
|
+
return ('localPart' in address &&
|
|
92
|
+
'domain' in address &&
|
|
93
|
+
typeof address.localPart === 'string' &&
|
|
94
|
+
typeof address.domain === 'string');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Type guard to check if an IAddress is an IAddressGroup.
|
|
98
|
+
*
|
|
99
|
+
* Distinguishes groups from mailboxes by checking for the presence of
|
|
100
|
+
* the `mailboxes` array property (which is unique to IAddressGroup).
|
|
101
|
+
*
|
|
102
|
+
* @param address - The address to check
|
|
103
|
+
* @returns true if the address is an IAddressGroup
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const addr: IAddress = createAddressGroup('Team', []);
|
|
108
|
+
* if (isAddressGroup(addr)) {
|
|
109
|
+
* console.log(addr.displayName); // "Team"
|
|
110
|
+
* }
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
function isAddressGroup(address) {
|
|
114
|
+
return ('mailboxes' in address &&
|
|
115
|
+
Array.isArray(address.mailboxes) &&
|
|
116
|
+
!('localPart' in address));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Formats an IMailbox as an RFC 5322 compliant string.
|
|
120
|
+
*
|
|
121
|
+
* If a display name is present, formats as name-addr: `"Display Name" <local@domain>`
|
|
122
|
+
* Otherwise, formats as addr-spec: `local@domain`
|
|
123
|
+
*
|
|
124
|
+
* @param mailbox - The mailbox to format
|
|
125
|
+
* @returns RFC 5322 formatted mailbox string
|
|
126
|
+
*
|
|
127
|
+
* @see RFC 5322 Section 3.4
|
|
128
|
+
* @see Requirement 2.1
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* formatMailbox(createMailbox('john', 'example.com', 'John Doe'));
|
|
133
|
+
* // => '"John Doe" <john@example.com>'
|
|
134
|
+
*
|
|
135
|
+
* formatMailbox(createMailbox('john', 'example.com'));
|
|
136
|
+
* // => 'john@example.com'
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
function formatMailbox(mailbox) {
|
|
140
|
+
if (mailbox.displayName) {
|
|
141
|
+
// Use quoted-string for display name to handle special characters
|
|
142
|
+
return `"${mailbox.displayName}" <${mailbox.address}>`;
|
|
143
|
+
}
|
|
144
|
+
return mailbox.address;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Formats an IAddressGroup as an RFC 5322 compliant string.
|
|
148
|
+
*
|
|
149
|
+
* Formats as: `display-name: mailbox-list;`
|
|
150
|
+
* For empty groups: `display-name:;`
|
|
151
|
+
*
|
|
152
|
+
* @param group - The address group to format
|
|
153
|
+
* @returns RFC 5322 formatted group address string
|
|
154
|
+
*
|
|
155
|
+
* @see RFC 5322 Section 3.4
|
|
156
|
+
* @see Requirement 2.4
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* formatAddressGroup(createAddressGroup('Team', [
|
|
161
|
+
* createMailbox('alice', 'example.com'),
|
|
162
|
+
* createMailbox('bob', 'example.com'),
|
|
163
|
+
* ]));
|
|
164
|
+
* // => 'Team: alice@example.com, bob@example.com;'
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
function formatAddressGroup(group) {
|
|
168
|
+
if (group.mailboxes.length === 0) {
|
|
169
|
+
return `${group.displayName}:;`;
|
|
170
|
+
}
|
|
171
|
+
const mailboxList = group.mailboxes.map(formatMailbox).join(', ');
|
|
172
|
+
return `${group.displayName}: ${mailboxList};`;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Formats an IAddress (either mailbox or group) as an RFC 5322 compliant string.
|
|
176
|
+
*
|
|
177
|
+
* @param address - The address to format
|
|
178
|
+
* @returns RFC 5322 formatted address string
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```typescript
|
|
182
|
+
* formatAddress(createMailbox('user', 'example.com'));
|
|
183
|
+
* // => 'user@example.com'
|
|
184
|
+
*
|
|
185
|
+
* formatAddress(createAddressGroup('Team', []));
|
|
186
|
+
* // => 'Team:;'
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
function formatAddress(address) {
|
|
190
|
+
if (isMailbox(address)) {
|
|
191
|
+
return formatMailbox(address);
|
|
192
|
+
}
|
|
193
|
+
return formatAddressGroup(address);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Formats an array of IAddress objects as a comma-separated RFC 5322 address list.
|
|
197
|
+
*
|
|
198
|
+
* @param addresses - Array of addresses to format
|
|
199
|
+
* @returns Comma-separated RFC 5322 formatted address list string
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```typescript
|
|
203
|
+
* formatAddressList([
|
|
204
|
+
* createMailbox('alice', 'example.com', 'Alice'),
|
|
205
|
+
* createMailbox('bob', 'example.com'),
|
|
206
|
+
* ]);
|
|
207
|
+
* // => '"Alice" <alice@example.com>, bob@example.com'
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
function formatAddressList(addresses) {
|
|
211
|
+
return addresses.map(formatAddress).join(', ');
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=emailAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailAddress.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailAddress.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AA4EH,sCAaC;AAiBD,gDAQC;AAmBD,8BAOC;AAmBD,wCAMC;AAuBD,sCAMC;AAuBD,gDAMC;AAiBD,sCAKC;AAiBD,8CAEC;AA7MD,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,SAAgB,aAAa,CAC3B,SAAiB,EACjB,MAAc,EACd,WAAoB;IAEpB,OAAO;QACL,SAAS;QACT,MAAM;QACN,WAAW;QACX,IAAI,OAAO;YACT,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5C,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAChC,WAAmB,EACnB,YAAwB,EAAE;IAE1B,OAAO;QACL,WAAW;QACX,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,SAAS,CAAC,OAAiB;IACzC,OAAO,CACL,WAAW,IAAI,OAAO;QACtB,QAAQ,IAAI,OAAO;QACnB,OAAQ,OAAoB,CAAC,SAAS,KAAK,QAAQ;QACnD,OAAQ,OAAoB,CAAC,MAAM,KAAK,QAAQ,CACjD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,cAAc,CAAC,OAAiB;IAC9C,OAAO,CACL,WAAW,IAAI,OAAO;QACtB,KAAK,CAAC,OAAO,CAAE,OAAyB,CAAC,SAAS,CAAC;QACnD,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,aAAa,CAAC,OAAiB;IAC7C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,kEAAkE;QAClE,OAAO,IAAI,OAAO,CAAC,WAAW,MAAM,OAAO,CAAC,OAAO,GAAG,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,kBAAkB,CAAC,KAAoB;IACrD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC;IAClC,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,OAAO,GAAG,KAAK,CAAC,WAAW,KAAK,WAAW,GAAG,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,aAAa,CAAC,OAAiB;IAC7C,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,kBAAkB,CAAC,OAAwB,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,iBAAiB,CAAC,SAAqB;IACrD,OAAO,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email delivery status tracking types.
|
|
3
|
+
*
|
|
4
|
+
* Defines the IDeliveryReceipt interface for tracking email delivery lifecycle
|
|
5
|
+
* across BrightChain nodes. The IDeliveryReceipt now uses the unified
|
|
6
|
+
* DeliveryStatus enum instead of the deprecated EmailDeliveryStatus.
|
|
7
|
+
*
|
|
8
|
+
* @see Requirements 12.1, 12.2, 12.3, 2.4, 2.5
|
|
9
|
+
* @module emailDelivery
|
|
10
|
+
*/
|
|
11
|
+
import { DeliveryStatus } from '../../enumerations/messaging/deliveryStatus';
|
|
12
|
+
/**
|
|
13
|
+
* Delivery status states for tracking email delivery lifecycle.
|
|
14
|
+
*
|
|
15
|
+
* @deprecated Use {@link DeliveryStatus} from `../../enumerations/messaging/deliveryStatus` instead.
|
|
16
|
+
* This enum is replaced by the unified DeliveryStatus enum as part of the
|
|
17
|
+
* unified gossip delivery migration (Requirement 2.4, 2.5).
|
|
18
|
+
*
|
|
19
|
+
* Migration mapping:
|
|
20
|
+
* - Pending → DeliveryStatus.Pending
|
|
21
|
+
* - Queued → DeliveryStatus.Pending (no separate Queued state)
|
|
22
|
+
* - InTransit → DeliveryStatus.Announced
|
|
23
|
+
* - Delivered → DeliveryStatus.Delivered
|
|
24
|
+
* - Failed → DeliveryStatus.Failed
|
|
25
|
+
* - Bounced → DeliveryStatus.Bounced
|
|
26
|
+
* - Read → DeliveryStatus.Read
|
|
27
|
+
*
|
|
28
|
+
* @see Requirement 12.1
|
|
29
|
+
* @see DeliveryStatus
|
|
30
|
+
*/
|
|
31
|
+
export declare enum EmailDeliveryStatus {
|
|
32
|
+
/** Initial state when email is created but not yet queued for delivery */
|
|
33
|
+
Pending = "pending",
|
|
34
|
+
/** Email has been queued for delivery processing */
|
|
35
|
+
Queued = "queued",
|
|
36
|
+
/** Email blocks are being replicated to the recipient's node */
|
|
37
|
+
InTransit = "in_transit",
|
|
38
|
+
/** Email blocks have been successfully replicated to the recipient's node */
|
|
39
|
+
Delivered = "delivered",
|
|
40
|
+
/** Delivery failed after exhausting retry attempts */
|
|
41
|
+
Failed = "failed",
|
|
42
|
+
/** Email was rejected/bounced by the recipient's node */
|
|
43
|
+
Bounced = "bounced",
|
|
44
|
+
/** Recipient has read the email (read receipt received) */
|
|
45
|
+
Read = "read"
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Delivery receipt for tracking email delivery status per recipient.
|
|
49
|
+
*
|
|
50
|
+
* Each recipient of an email has their own delivery receipt that tracks
|
|
51
|
+
* the full delivery lifecycle including timestamps and failure information.
|
|
52
|
+
*
|
|
53
|
+
* @see Requirement 12.2 - Delivery receipts with timestamps
|
|
54
|
+
* @see Requirement 12.3 - Delivery timestamps per recipient
|
|
55
|
+
*/
|
|
56
|
+
export interface IDeliveryReceipt {
|
|
57
|
+
/** Recipient identifier (e.g., user ID or address) */
|
|
58
|
+
recipientId: string;
|
|
59
|
+
/** Recipient's home node identifier */
|
|
60
|
+
recipientNode: string;
|
|
61
|
+
/** Current delivery status */
|
|
62
|
+
status: DeliveryStatus;
|
|
63
|
+
/** Timestamp when the email was queued for delivery */
|
|
64
|
+
queuedAt?: Date;
|
|
65
|
+
/** Timestamp when the email blocks were sent/replication initiated */
|
|
66
|
+
sentAt?: Date;
|
|
67
|
+
/** Timestamp when delivery was confirmed at the recipient's node */
|
|
68
|
+
deliveredAt?: Date;
|
|
69
|
+
/** Timestamp when the recipient read the email */
|
|
70
|
+
readAt?: Date;
|
|
71
|
+
/** Timestamp when delivery failed */
|
|
72
|
+
failedAt?: Date;
|
|
73
|
+
/** Human-readable reason for delivery failure */
|
|
74
|
+
failureReason?: string;
|
|
75
|
+
/** Machine-readable error code for delivery failure */
|
|
76
|
+
failureCode?: string;
|
|
77
|
+
/** Number of delivery retry attempts made */
|
|
78
|
+
retryCount: number;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=emailDelivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailDelivery.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailDelivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E;;;;;;;;;;;;;;;;;;GAkBG;AACH,oBAAY,mBAAmB;IAC7B,0EAA0E;IAC1E,OAAO,YAAY;IAEnB,oDAAoD;IACpD,MAAM,WAAW;IAEjB,gEAAgE;IAChE,SAAS,eAAe;IAExB,6EAA6E;IAC7E,SAAS,cAAc;IAEvB,sDAAsD;IACtD,MAAM,WAAW;IAEjB,yDAAyD;IACzD,OAAO,YAAY;IAEnB,2DAA2D;IAC3D,IAAI,SAAS;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAC;IAEtB,8BAA8B;IAC9B,MAAM,EAAE,cAAc,CAAC;IAIvB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,sEAAsE;IACtE,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd,oEAAoE;IACpE,WAAW,CAAC,EAAE,IAAI,CAAC;IAEnB,kDAAkD;IAClD,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAIhB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Email delivery status tracking types.
|
|
4
|
+
*
|
|
5
|
+
* Defines the IDeliveryReceipt interface for tracking email delivery lifecycle
|
|
6
|
+
* across BrightChain nodes. The IDeliveryReceipt now uses the unified
|
|
7
|
+
* DeliveryStatus enum instead of the deprecated EmailDeliveryStatus.
|
|
8
|
+
*
|
|
9
|
+
* @see Requirements 12.1, 12.2, 12.3, 2.4, 2.5
|
|
10
|
+
* @module emailDelivery
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.EmailDeliveryStatus = void 0;
|
|
14
|
+
/**
|
|
15
|
+
* Delivery status states for tracking email delivery lifecycle.
|
|
16
|
+
*
|
|
17
|
+
* @deprecated Use {@link DeliveryStatus} from `../../enumerations/messaging/deliveryStatus` instead.
|
|
18
|
+
* This enum is replaced by the unified DeliveryStatus enum as part of the
|
|
19
|
+
* unified gossip delivery migration (Requirement 2.4, 2.5).
|
|
20
|
+
*
|
|
21
|
+
* Migration mapping:
|
|
22
|
+
* - Pending → DeliveryStatus.Pending
|
|
23
|
+
* - Queued → DeliveryStatus.Pending (no separate Queued state)
|
|
24
|
+
* - InTransit → DeliveryStatus.Announced
|
|
25
|
+
* - Delivered → DeliveryStatus.Delivered
|
|
26
|
+
* - Failed → DeliveryStatus.Failed
|
|
27
|
+
* - Bounced → DeliveryStatus.Bounced
|
|
28
|
+
* - Read → DeliveryStatus.Read
|
|
29
|
+
*
|
|
30
|
+
* @see Requirement 12.1
|
|
31
|
+
* @see DeliveryStatus
|
|
32
|
+
*/
|
|
33
|
+
var EmailDeliveryStatus;
|
|
34
|
+
(function (EmailDeliveryStatus) {
|
|
35
|
+
/** Initial state when email is created but not yet queued for delivery */
|
|
36
|
+
EmailDeliveryStatus["Pending"] = "pending";
|
|
37
|
+
/** Email has been queued for delivery processing */
|
|
38
|
+
EmailDeliveryStatus["Queued"] = "queued";
|
|
39
|
+
/** Email blocks are being replicated to the recipient's node */
|
|
40
|
+
EmailDeliveryStatus["InTransit"] = "in_transit";
|
|
41
|
+
/** Email blocks have been successfully replicated to the recipient's node */
|
|
42
|
+
EmailDeliveryStatus["Delivered"] = "delivered";
|
|
43
|
+
/** Delivery failed after exhausting retry attempts */
|
|
44
|
+
EmailDeliveryStatus["Failed"] = "failed";
|
|
45
|
+
/** Email was rejected/bounced by the recipient's node */
|
|
46
|
+
EmailDeliveryStatus["Bounced"] = "bounced";
|
|
47
|
+
/** Recipient has read the email (read receipt received) */
|
|
48
|
+
EmailDeliveryStatus["Read"] = "read";
|
|
49
|
+
})(EmailDeliveryStatus || (exports.EmailDeliveryStatus = EmailDeliveryStatus = {}));
|
|
50
|
+
//# sourceMappingURL=emailDelivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailDelivery.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailDelivery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAIH;;;;;;;;;;;;;;;;;;GAkBG;AACH,IAAY,mBAqBX;AArBD,WAAY,mBAAmB;IAC7B,0EAA0E;IAC1E,0CAAmB,CAAA;IAEnB,oDAAoD;IACpD,wCAAiB,CAAA;IAEjB,gEAAgE;IAChE,+CAAwB,CAAA;IAExB,6EAA6E;IAC7E,8CAAuB,CAAA;IAEvB,sDAAsD;IACtD,wCAAiB,CAAA;IAEjB,yDAAyD;IACzD,0CAAmB,CAAA;IAEnB,2DAA2D;IAC3D,oCAAa,CAAA;AACf,CAAC,EArBW,mBAAmB,mCAAnB,mBAAmB,QAqB9B"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { IMailbox } from './emailAddress';
|
|
2
|
+
import { IMessageMetadata } from './messageMetadata';
|
|
3
|
+
import { ContentTransferEncoding, type IContentType, type IMimePart } from './mimePart';
|
|
4
|
+
export type { IMailbox } from './emailAddress';
|
|
5
|
+
export { ContentTransferEncoding, createContentType } from './mimePart';
|
|
6
|
+
export type { IContentDisposition, IContentType, IMimePart } from './mimePart';
|
|
7
|
+
export type { IAttachmentMetadata } from './attachmentMetadata';
|
|
8
|
+
import type { IAttachmentMetadata } from './attachmentMetadata';
|
|
9
|
+
export { EmailDeliveryStatus } from './emailDelivery';
|
|
10
|
+
export type { IDeliveryReceipt } from './emailDelivery';
|
|
11
|
+
export { DeliveryStatus } from '../../enumerations/messaging/deliveryStatus';
|
|
12
|
+
import type { IDeliveryReceipt } from './emailDelivery';
|
|
13
|
+
/**
|
|
14
|
+
* Resent header block for forwarded emails per RFC 5322 Section 3.6.6.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* When an email is forwarded, a new block of Resent-* headers is prepended.
|
|
18
|
+
* Multiple forwards result in multiple blocks, most recent first.
|
|
19
|
+
*/
|
|
20
|
+
export interface IResentHeaderBlock {
|
|
21
|
+
/** Resent-From: the forwarder's mailbox */
|
|
22
|
+
resentFrom: IMailbox;
|
|
23
|
+
/** Resent-To: forwarding recipients */
|
|
24
|
+
resentTo: IMailbox[];
|
|
25
|
+
/** Resent-Cc: optional carbon copy recipients for the forward */
|
|
26
|
+
resentCc?: IMailbox[];
|
|
27
|
+
/** Resent-Bcc: optional blind carbon copy recipients for the forward */
|
|
28
|
+
resentBcc?: IMailbox[];
|
|
29
|
+
/** Resent-Date: date of the forward */
|
|
30
|
+
resentDate: Date;
|
|
31
|
+
/** Resent-Message-ID: unique identifier for this forward action */
|
|
32
|
+
resentMessageId: string;
|
|
33
|
+
/** Resent-Sender: optional actual sender if different from Resent-From */
|
|
34
|
+
resentSender?: IMailbox;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Email-specific metadata extending the base message metadata.
|
|
38
|
+
* Provides RFC 5322 compliant email header fields and MIME support.
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* This interface extends {@link IMessageMetadata} with all fields necessary
|
|
42
|
+
* to represent a complete RFC 5322 Internet Message Format email, including:
|
|
43
|
+
* - Originator fields (From, Sender, Reply-To) per Section 3.6.2
|
|
44
|
+
* - Destination fields (To, Cc, Bcc) per Section 3.6.3
|
|
45
|
+
* - Identification fields (Message-ID, In-Reply-To, References) per Section 3.6.4
|
|
46
|
+
* - Informational fields (Subject, Comments, Keywords) per Section 3.6.5
|
|
47
|
+
* - Date field per Section 3.6.1
|
|
48
|
+
* - MIME headers per RFC 2045
|
|
49
|
+
* - Resent headers for forwarding per Section 3.6.6
|
|
50
|
+
* - Delivery tracking extensions for BrightChain cross-node delivery
|
|
51
|
+
*
|
|
52
|
+
* @see Requirements 1.1, 1.2, 1.3, 1.4, 1.5, 1.6
|
|
53
|
+
*/
|
|
54
|
+
export interface IEmailMetadata extends IMessageMetadata {
|
|
55
|
+
/**
|
|
56
|
+
* Required: sender mailbox.
|
|
57
|
+
* Per RFC 5322, the "From:" field specifies the author(s) of the message.
|
|
58
|
+
*
|
|
59
|
+
* @see Requirement 1.1
|
|
60
|
+
*/
|
|
61
|
+
from: IMailbox;
|
|
62
|
+
/**
|
|
63
|
+
* Optional: actual sender if different from From.
|
|
64
|
+
* Per RFC 5322, the "Sender:" field is used when the actual sender
|
|
65
|
+
* differs from the author specified in "From:".
|
|
66
|
+
*
|
|
67
|
+
* @see Requirement 1.1
|
|
68
|
+
*/
|
|
69
|
+
sender?: IMailbox;
|
|
70
|
+
/**
|
|
71
|
+
* Optional: reply addresses.
|
|
72
|
+
* Per RFC 5322, the "Reply-To:" field indicates the address(es)
|
|
73
|
+
* to which the author suggests replies be sent.
|
|
74
|
+
*
|
|
75
|
+
* @see Requirement 1.1
|
|
76
|
+
*/
|
|
77
|
+
replyTo?: IMailbox[];
|
|
78
|
+
/**
|
|
79
|
+
* Primary recipients.
|
|
80
|
+
* Per RFC 5322, the "To:" field contains the address(es) of the
|
|
81
|
+
* primary recipient(s) of the message.
|
|
82
|
+
*
|
|
83
|
+
* @see Requirement 1.2
|
|
84
|
+
*/
|
|
85
|
+
to: IMailbox[];
|
|
86
|
+
/**
|
|
87
|
+
* Carbon copy recipients.
|
|
88
|
+
* Per RFC 5322, the "Cc:" field contains the addresses of others
|
|
89
|
+
* who are to receive the message, though the content is not directed at them.
|
|
90
|
+
*
|
|
91
|
+
* @see Requirement 1.2
|
|
92
|
+
*/
|
|
93
|
+
cc?: IMailbox[];
|
|
94
|
+
/**
|
|
95
|
+
* Blind carbon copy recipients.
|
|
96
|
+
* Per RFC 5322, the "Bcc:" field contains addresses of recipients
|
|
97
|
+
* who should receive the message but whose addresses should not be
|
|
98
|
+
* revealed to other recipients. Stored separately for privacy.
|
|
99
|
+
*
|
|
100
|
+
* @see Requirement 1.2
|
|
101
|
+
*/
|
|
102
|
+
bcc?: IMailbox[];
|
|
103
|
+
/**
|
|
104
|
+
* Unique message identifier in the format `<id-left@id-right>`.
|
|
105
|
+
* Per RFC 5322, the "Message-ID:" field provides a unique identifier
|
|
106
|
+
* for the message. Auto-generated if not provided.
|
|
107
|
+
*
|
|
108
|
+
* @see Requirement 1.3
|
|
109
|
+
*/
|
|
110
|
+
messageId: string;
|
|
111
|
+
/**
|
|
112
|
+
* Parent message ID for threading.
|
|
113
|
+
* Per RFC 5322, the "In-Reply-To:" field identifies the message(s)
|
|
114
|
+
* to which this message is a reply.
|
|
115
|
+
*
|
|
116
|
+
* @see Requirement 1.3
|
|
117
|
+
*/
|
|
118
|
+
inReplyTo?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Thread reference chain.
|
|
121
|
+
* Per RFC 5322, the "References:" field identifies other correspondence
|
|
122
|
+
* that this message references, used for threading.
|
|
123
|
+
*
|
|
124
|
+
* @see Requirement 1.3
|
|
125
|
+
*/
|
|
126
|
+
references?: string[];
|
|
127
|
+
/**
|
|
128
|
+
* Email subject line (UTF-8 encoded).
|
|
129
|
+
* Per RFC 5322, the "Subject:" field is a short string identifying
|
|
130
|
+
* the topic of the message.
|
|
131
|
+
*
|
|
132
|
+
* @see Requirement 1.4
|
|
133
|
+
*/
|
|
134
|
+
subject?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Optional comments.
|
|
137
|
+
* Per RFC 5322, the "Comments:" field provides additional comments
|
|
138
|
+
* on the text of the body. May appear multiple times.
|
|
139
|
+
*
|
|
140
|
+
* @see Requirement 1.4
|
|
141
|
+
*/
|
|
142
|
+
comments?: string[];
|
|
143
|
+
/**
|
|
144
|
+
* Optional keywords.
|
|
145
|
+
* Per RFC 5322, the "Keywords:" field contains a comma-separated
|
|
146
|
+
* list of important words and phrases. May appear multiple times.
|
|
147
|
+
*
|
|
148
|
+
* @see Requirement 1.4
|
|
149
|
+
*/
|
|
150
|
+
keywords?: string[];
|
|
151
|
+
/**
|
|
152
|
+
* Origination date.
|
|
153
|
+
* Per RFC 5322, the "Date:" field specifies the date and time at which
|
|
154
|
+
* the creator of the message indicated that the message was complete
|
|
155
|
+
* and ready to enter the mail delivery system. Auto-generated if not provided.
|
|
156
|
+
*
|
|
157
|
+
* @see Requirement 1.5
|
|
158
|
+
*/
|
|
159
|
+
date: Date;
|
|
160
|
+
/**
|
|
161
|
+
* MIME version, always "1.0".
|
|
162
|
+
* Per RFC 2045, the "MIME-Version:" header field indicates that the
|
|
163
|
+
* message is MIME compliant.
|
|
164
|
+
*
|
|
165
|
+
* @see Requirement 1.8
|
|
166
|
+
*/
|
|
167
|
+
mimeVersion: string;
|
|
168
|
+
/**
|
|
169
|
+
* Content-Type header with type/subtype and optional parameters.
|
|
170
|
+
* Per RFC 2045, the "Content-Type:" header field describes the data
|
|
171
|
+
* contained in the body.
|
|
172
|
+
*
|
|
173
|
+
* @see Requirement 5.1
|
|
174
|
+
*/
|
|
175
|
+
contentType: IContentType;
|
|
176
|
+
/**
|
|
177
|
+
* Content-Transfer-Encoding for the top-level message.
|
|
178
|
+
* Per RFC 2045, specifies the encoding used for the message body.
|
|
179
|
+
*/
|
|
180
|
+
contentTransferEncoding?: ContentTransferEncoding;
|
|
181
|
+
/**
|
|
182
|
+
* Custom and extension headers (X-* and other non-standard headers).
|
|
183
|
+
* Per RFC 5322, user-defined header fields may be added to messages.
|
|
184
|
+
* Keys are header field names, values are arrays to support multiple
|
|
185
|
+
* occurrences of the same header.
|
|
186
|
+
*
|
|
187
|
+
* @see Requirement 1.6
|
|
188
|
+
*/
|
|
189
|
+
customHeaders: Map<string, string[]>;
|
|
190
|
+
/**
|
|
191
|
+
* MIME parts for multipart messages.
|
|
192
|
+
* Contains the individual parts of a multipart message, each with
|
|
193
|
+
* its own Content-Type, encoding, and body.
|
|
194
|
+
*
|
|
195
|
+
* @see Requirement 6.1
|
|
196
|
+
*/
|
|
197
|
+
parts?: IMimePart[];
|
|
198
|
+
/**
|
|
199
|
+
* Attachment references with CBL storage metadata.
|
|
200
|
+
* Each attachment is stored as separate blocks with filename,
|
|
201
|
+
* MIME type, and integrity information.
|
|
202
|
+
*
|
|
203
|
+
* @see Requirement 8.1
|
|
204
|
+
*/
|
|
205
|
+
attachments?: IAttachmentMetadata[];
|
|
206
|
+
/**
|
|
207
|
+
* Delivery receipts per recipient.
|
|
208
|
+
* Maps recipient identifier to their delivery receipt,
|
|
209
|
+
* tracking the full delivery lifecycle.
|
|
210
|
+
*
|
|
211
|
+
* @see Requirement 12.1
|
|
212
|
+
*/
|
|
213
|
+
deliveryReceipts: Map<string, IDeliveryReceipt>;
|
|
214
|
+
/**
|
|
215
|
+
* Read receipts per recipient.
|
|
216
|
+
* Maps recipient identifier to the timestamp when they read the message.
|
|
217
|
+
*
|
|
218
|
+
* @see Requirement 12.3
|
|
219
|
+
*/
|
|
220
|
+
readReceipts: Map<string, Date>;
|
|
221
|
+
/**
|
|
222
|
+
* Resent header blocks for forwarded emails.
|
|
223
|
+
* Each forward operation prepends a new block of Resent-* headers.
|
|
224
|
+
* Most recent forward is first in the array.
|
|
225
|
+
*
|
|
226
|
+
* @see Requirement 17.1
|
|
227
|
+
*/
|
|
228
|
+
resentHeaders?: IResentHeaderBlock[];
|
|
229
|
+
/**
|
|
230
|
+
* Per-recipient encrypted symmetric keys.
|
|
231
|
+
* Maps recipient address to their ECIES-encrypted copy of the symmetric key
|
|
232
|
+
* used to encrypt the email content. Only present when encryptionScheme
|
|
233
|
+
* is RECIPIENT_KEYS.
|
|
234
|
+
*
|
|
235
|
+
* @see Requirement 16.4 - Separate encrypted copies for each recipient
|
|
236
|
+
* @see Requirement 16.7 - Store encryption metadata in Email_Metadata
|
|
237
|
+
*/
|
|
238
|
+
encryptedKeys?: Map<string, Uint8Array>;
|
|
239
|
+
/**
|
|
240
|
+
* Initialization vector used for AES-256-GCM content encryption.
|
|
241
|
+
* Present when the email content is encrypted (RECIPIENT_KEYS or SHARED_KEY).
|
|
242
|
+
*/
|
|
243
|
+
encryptionIv?: Uint8Array;
|
|
244
|
+
/**
|
|
245
|
+
* Authentication tag from AES-256-GCM content encryption.
|
|
246
|
+
* Present when the email content is encrypted.
|
|
247
|
+
*/
|
|
248
|
+
encryptionAuthTag?: Uint8Array;
|
|
249
|
+
/**
|
|
250
|
+
* Whether the email content has been digitally signed.
|
|
251
|
+
*
|
|
252
|
+
* @see Requirement 16.5 - S/MIME signatures for sender authentication
|
|
253
|
+
*/
|
|
254
|
+
isSigned?: boolean;
|
|
255
|
+
/**
|
|
256
|
+
* Digital signature bytes for the email content.
|
|
257
|
+
* Present when isSigned is true.
|
|
258
|
+
*
|
|
259
|
+
* @see Requirement 16.5
|
|
260
|
+
*/
|
|
261
|
+
contentSignature?: Uint8Array;
|
|
262
|
+
/**
|
|
263
|
+
* Public key of the signer, stored for signature verification.
|
|
264
|
+
*
|
|
265
|
+
* @see Requirement 16.8 - Verify sender's signature on decryption
|
|
266
|
+
*/
|
|
267
|
+
signerPublicKey?: Uint8Array;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=emailMetadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailMetadata.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,UAAU,EAAE,QAAQ,CAAC;IACrB,uCAAuC;IACvC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,uCAAuC;IACvC,UAAU,EAAE,IAAI,CAAC;IACjB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IAGtD;;;;;OAKG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC;IAElB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IAIrB;;;;;;OAMG;IACH,EAAE,EAAE,QAAQ,EAAE,CAAC;IAEf;;;;;;OAMG;IACH,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEhB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IAIjB;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAItB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAIpB;;;;;;;OAOG;IACH,IAAI,EAAE,IAAI,CAAC;IAIX;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,EAAE,YAAY,CAAC;IAE1B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAIlD;;;;;;;OAOG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAErC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IAEpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAIpC;;;;;;OAMG;IACH,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEhD;;;;;OAKG;IACH,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAIhC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAIrC;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAExC;;;OAGG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;IAE1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAE/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAE9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeliveryStatus = exports.EmailDeliveryStatus = exports.createContentType = exports.ContentTransferEncoding = void 0;
|
|
4
|
+
// Re-export MIME types from their canonical location (mimePart.ts)
|
|
5
|
+
// so existing consumers of emailMetadata.ts still work
|
|
6
|
+
var mimePart_1 = require("./mimePart");
|
|
7
|
+
Object.defineProperty(exports, "ContentTransferEncoding", { enumerable: true, get: function () { return mimePart_1.ContentTransferEncoding; } });
|
|
8
|
+
Object.defineProperty(exports, "createContentType", { enumerable: true, get: function () { return mimePart_1.createContentType; } });
|
|
9
|
+
// Re-export delivery types from their canonical location (emailDelivery.ts)
|
|
10
|
+
// so existing consumers of emailMetadata.ts still work
|
|
11
|
+
var emailDelivery_1 = require("./emailDelivery");
|
|
12
|
+
Object.defineProperty(exports, "EmailDeliveryStatus", { enumerable: true, get: function () { return emailDelivery_1.EmailDeliveryStatus; } });
|
|
13
|
+
// Re-export unified DeliveryStatus
|
|
14
|
+
var deliveryStatus_1 = require("../../enumerations/messaging/deliveryStatus");
|
|
15
|
+
Object.defineProperty(exports, "DeliveryStatus", { enumerable: true, get: function () { return deliveryStatus_1.DeliveryStatus; } });
|
|
16
|
+
//# sourceMappingURL=emailMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emailMetadata.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/emailMetadata.ts"],"names":[],"mappings":";;;AAWA,mEAAmE;AACnE,uDAAuD;AACvD,uCAAwE;AAA/D,mHAAA,uBAAuB,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AASnD,4EAA4E;AAC5E,uDAAuD;AACvD,iDAAsD;AAA7C,oHAAA,mBAAmB,OAAA;AAG5B,mCAAmC;AACnC,8EAA6E;AAApE,gHAAA,cAAc,OAAA"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export * from './attachmentMetadata';
|
|
2
|
+
export * from './emailAddress';
|
|
3
|
+
export * from './emailDelivery';
|
|
4
|
+
export * from './emailMetadata';
|
|
1
5
|
export * from './messageMetadata';
|
|
2
6
|
export * from './messageMetadataStore';
|
|
3
|
-
export * from './messageRouter';
|
|
4
7
|
export * from './messageSystemConfig';
|
|
8
|
+
export * from './mimePart';
|
|
5
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/interfaces/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,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,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
|