@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.
Files changed (151) hide show
  1. package/package.json +1 -1
  2. package/src/browser.d.ts +1 -1
  3. package/src/browser.d.ts.map +1 -1
  4. package/src/browser.js +3 -3
  5. package/src/browser.js.map +1 -1
  6. package/src/lib/blocks/encryptedBlockFactory.d.ts +6 -1
  7. package/src/lib/blocks/encryptedBlockFactory.d.ts.map +1 -1
  8. package/src/lib/blocks/encryptedBlockFactory.js +14 -5
  9. package/src/lib/blocks/encryptedBlockFactory.js.map +1 -1
  10. package/src/lib/enumerations/brightChainStrings.d.ts +1 -1
  11. package/src/lib/enumerations/brightChainStrings.js +1 -1
  12. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  13. package/src/lib/enumerations/messaging/deliveryStatus.d.ts +50 -0
  14. package/src/lib/enumerations/messaging/deliveryStatus.d.ts.map +1 -0
  15. package/src/lib/enumerations/messaging/deliveryStatus.js +68 -0
  16. package/src/lib/enumerations/messaging/deliveryStatus.js.map +1 -0
  17. package/src/lib/enumerations/messaging/emailErrorType.d.ts +36 -0
  18. package/src/lib/enumerations/messaging/emailErrorType.d.ts.map +1 -0
  19. package/src/lib/enumerations/messaging/emailErrorType.js +46 -0
  20. package/src/lib/enumerations/messaging/emailErrorType.js.map +1 -0
  21. package/src/lib/enumerations/messaging/index.d.ts +2 -1
  22. package/src/lib/enumerations/messaging/index.d.ts.map +1 -1
  23. package/src/lib/enumerations/messaging/index.js +2 -1
  24. package/src/lib/enumerations/messaging/index.js.map +1 -1
  25. package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts +4 -2
  26. package/src/lib/enumerations/messaging/messageEncryptionScheme.d.ts.map +1 -1
  27. package/src/lib/enumerations/messaging/messageEncryptionScheme.js +3 -1
  28. package/src/lib/enumerations/messaging/messageEncryptionScheme.js.map +1 -1
  29. package/src/lib/errors/messaging/emailError.d.ts +55 -0
  30. package/src/lib/errors/messaging/emailError.d.ts.map +1 -0
  31. package/src/lib/errors/messaging/emailError.js +64 -0
  32. package/src/lib/errors/messaging/emailError.js.map +1 -0
  33. package/src/lib/errors/messaging/index.d.ts +1 -0
  34. package/src/lib/errors/messaging/index.d.ts.map +1 -1
  35. package/src/lib/errors/messaging/index.js +1 -0
  36. package/src/lib/errors/messaging/index.js.map +1 -1
  37. package/src/lib/i18n/i18n-setup.d.ts +7 -2
  38. package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
  39. package/src/lib/i18n/i18n-setup.js +84 -24
  40. package/src/lib/i18n/i18n-setup.js.map +1 -1
  41. package/src/lib/interfaces/availability/gossipService.d.ts +171 -4
  42. package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
  43. package/src/lib/interfaces/availability/gossipService.js +139 -0
  44. package/src/lib/interfaces/availability/gossipService.js.map +1 -1
  45. package/src/lib/interfaces/messaging/attachmentMetadata.d.ts +47 -0
  46. package/src/lib/interfaces/messaging/attachmentMetadata.d.ts.map +1 -0
  47. package/src/lib/interfaces/messaging/{messageRouter.js → attachmentMetadata.js} +1 -1
  48. package/src/lib/interfaces/messaging/attachmentMetadata.js.map +1 -0
  49. package/src/lib/interfaces/messaging/emailAddress.d.ts +210 -0
  50. package/src/lib/interfaces/messaging/emailAddress.d.ts.map +1 -0
  51. package/src/lib/interfaces/messaging/emailAddress.js +213 -0
  52. package/src/lib/interfaces/messaging/emailAddress.js.map +1 -0
  53. package/src/lib/interfaces/messaging/emailDelivery.d.ts +80 -0
  54. package/src/lib/interfaces/messaging/emailDelivery.d.ts.map +1 -0
  55. package/src/lib/interfaces/messaging/emailDelivery.js +50 -0
  56. package/src/lib/interfaces/messaging/emailDelivery.js.map +1 -0
  57. package/src/lib/interfaces/messaging/emailMetadata.d.ts +269 -0
  58. package/src/lib/interfaces/messaging/emailMetadata.d.ts.map +1 -0
  59. package/src/lib/interfaces/messaging/emailMetadata.js +16 -0
  60. package/src/lib/interfaces/messaging/emailMetadata.js.map +1 -0
  61. package/src/lib/interfaces/messaging/index.d.ts +5 -1
  62. package/src/lib/interfaces/messaging/index.d.ts.map +1 -1
  63. package/src/lib/interfaces/messaging/index.js +5 -1
  64. package/src/lib/interfaces/messaging/index.js.map +1 -1
  65. package/src/lib/interfaces/messaging/messageMetadata.d.ts +2 -2
  66. package/src/lib/interfaces/messaging/messageMetadata.d.ts.map +1 -1
  67. package/src/lib/interfaces/messaging/messageMetadataStore.d.ts +2 -2
  68. package/src/lib/interfaces/messaging/messageMetadataStore.d.ts.map +1 -1
  69. package/src/lib/interfaces/messaging/mimePart.d.ts +214 -0
  70. package/src/lib/interfaces/messaging/mimePart.d.ts.map +1 -0
  71. package/src/lib/interfaces/messaging/mimePart.js +71 -0
  72. package/src/lib/interfaces/messaging/mimePart.js.map +1 -0
  73. package/src/lib/interfaces/network/index.d.ts +0 -1
  74. package/src/lib/interfaces/network/index.d.ts.map +1 -1
  75. package/src/lib/schemas/messaging/messageMetadataSchema.d.ts.map +1 -1
  76. package/src/lib/schemas/messaging/messageMetadataSchema.js.map +1 -1
  77. package/src/lib/services/messaging/deliveryTimeoutService.js +2 -2
  78. package/src/lib/services/messaging/deliveryTimeoutService.js.map +1 -1
  79. package/src/lib/services/messaging/emailEncryptionService.d.ts +250 -0
  80. package/src/lib/services/messaging/emailEncryptionService.d.ts.map +1 -0
  81. package/src/lib/services/messaging/emailEncryptionService.js +420 -0
  82. package/src/lib/services/messaging/emailEncryptionService.js.map +1 -0
  83. package/src/lib/services/messaging/emailMessageService.d.ts +669 -0
  84. package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -0
  85. package/src/lib/services/messaging/emailMessageService.js +1013 -0
  86. package/src/lib/services/messaging/emailMessageService.js.map +1 -0
  87. package/src/lib/services/messaging/emailParser.d.ts +458 -0
  88. package/src/lib/services/messaging/emailParser.d.ts.map +1 -0
  89. package/src/lib/services/messaging/emailParser.js +1298 -0
  90. package/src/lib/services/messaging/emailParser.js.map +1 -0
  91. package/src/lib/services/messaging/emailSerializer.d.ts +403 -0
  92. package/src/lib/services/messaging/emailSerializer.d.ts.map +1 -0
  93. package/src/lib/services/messaging/emailSerializer.js +852 -0
  94. package/src/lib/services/messaging/emailSerializer.js.map +1 -0
  95. package/src/lib/services/messaging/emailValidator.d.ts +448 -0
  96. package/src/lib/services/messaging/emailValidator.d.ts.map +1 -0
  97. package/src/lib/services/messaging/emailValidator.js +810 -0
  98. package/src/lib/services/messaging/emailValidator.js.map +1 -0
  99. package/src/lib/services/messaging/gossipRetryService.d.ts +204 -0
  100. package/src/lib/services/messaging/gossipRetryService.d.ts.map +1 -0
  101. package/src/lib/services/messaging/gossipRetryService.js +319 -0
  102. package/src/lib/services/messaging/gossipRetryService.js.map +1 -0
  103. package/src/lib/services/messaging/inMemoryEmailMetadataStore.d.ts +60 -0
  104. package/src/lib/services/messaging/inMemoryEmailMetadataStore.d.ts.map +1 -0
  105. package/src/lib/services/messaging/inMemoryEmailMetadataStore.js +281 -0
  106. package/src/lib/services/messaging/inMemoryEmailMetadataStore.js.map +1 -0
  107. package/src/lib/services/messaging/index.d.ts +11 -5
  108. package/src/lib/services/messaging/index.d.ts.map +1 -1
  109. package/src/lib/services/messaging/index.js +19 -5
  110. package/src/lib/services/messaging/index.js.map +1 -1
  111. package/src/lib/services/messaging/messageCBLService.js +2 -2
  112. package/src/lib/services/messaging/messageCBLService.js.map +1 -1
  113. package/src/lib/stores/messaging/memoryMessageMetadataStore.d.ts +2 -2
  114. package/src/lib/stores/messaging/memoryMessageMetadataStore.d.ts.map +1 -1
  115. package/src/lib/stores/messaging/memoryMessageMetadataStore.js +2 -2
  116. package/src/lib/stores/messaging/memoryMessageMetadataStore.js.map +1 -1
  117. package/src/lib/enumerations/messaging/messageDeliveryStatus.d.ts +0 -18
  118. package/src/lib/enumerations/messaging/messageDeliveryStatus.d.ts.map +0 -1
  119. package/src/lib/enumerations/messaging/messageDeliveryStatus.js +0 -22
  120. package/src/lib/enumerations/messaging/messageDeliveryStatus.js.map +0 -1
  121. package/src/lib/enumerations/messaging/routingStrategy.d.ts +0 -12
  122. package/src/lib/enumerations/messaging/routingStrategy.d.ts.map +0 -1
  123. package/src/lib/enumerations/messaging/routingStrategy.js +0 -16
  124. package/src/lib/enumerations/messaging/routingStrategy.js.map +0 -1
  125. package/src/lib/interfaces/messaging/messageRouter.d.ts +0 -48
  126. package/src/lib/interfaces/messaging/messageRouter.d.ts.map +0 -1
  127. package/src/lib/interfaces/messaging/messageRouter.js.map +0 -1
  128. package/src/lib/interfaces/network/networkTransport.d.ts +0 -19
  129. package/src/lib/interfaces/network/networkTransport.d.ts.map +0 -1
  130. package/src/lib/interfaces/network/networkTransport.js +0 -3
  131. package/src/lib/interfaces/network/networkTransport.js.map +0 -1
  132. package/src/lib/services/messaging/broadcastMessageRouter.d.ts +0 -18
  133. package/src/lib/services/messaging/broadcastMessageRouter.d.ts.map +0 -1
  134. package/src/lib/services/messaging/broadcastMessageRouter.js +0 -32
  135. package/src/lib/services/messaging/broadcastMessageRouter.js.map +0 -1
  136. package/src/lib/services/messaging/directMessageRouter.d.ts +0 -25
  137. package/src/lib/services/messaging/directMessageRouter.d.ts.map +0 -1
  138. package/src/lib/services/messaging/directMessageRouter.js +0 -58
  139. package/src/lib/services/messaging/directMessageRouter.js.map +0 -1
  140. package/src/lib/services/messaging/messageForwardingService.d.ts +0 -40
  141. package/src/lib/services/messaging/messageForwardingService.d.ts.map +0 -1
  142. package/src/lib/services/messaging/messageForwardingService.js +0 -74
  143. package/src/lib/services/messaging/messageForwardingService.js.map +0 -1
  144. package/src/lib/services/messaging/messageRouter.d.ts +0 -24
  145. package/src/lib/services/messaging/messageRouter.d.ts.map +0 -1
  146. package/src/lib/services/messaging/messageRouter.js +0 -111
  147. package/src/lib/services/messaging/messageRouter.js.map +0 -1
  148. package/src/lib/services/messaging/webSocketTransport.d.ts +0 -34
  149. package/src/lib/services/messaging/webSocketTransport.d.ts.map +0 -1
  150. package/src/lib/services/messaging/webSocketTransport.js +0 -115
  151. package/src/lib/services/messaging/webSocketTransport.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailMessageService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailMessageService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,458 @@
1
+ /**
2
+ * RFC 5322/MIME Compliant Email Parser
3
+ *
4
+ * Parses raw email strings and provides methods for parsing individual
5
+ * email components (headers, addresses, Message-IDs, dates, content types).
6
+ *
7
+ * Wraps the `postal-mime` library for full email parsing and the
8
+ * `email-addresses` library for RFC 5322 address grammar parsing.
9
+ *
10
+ * @see RFC 5322 - Internet Message Format
11
+ * @see RFC 2045 - MIME Part One: Format of Internet Message Bodies
12
+ * @see RFC 2046 - MIME Part Two: Media Types
13
+ *
14
+ * @remarks
15
+ * Requirements: 2.1, 2.2, 2.3, 2.4, 3.4, 3.5, 3.6, 14.4
16
+ */
17
+ import { IAddress, IMailbox } from '../../interfaces/messaging/emailAddress';
18
+ import type { IEmailMetadata } from '../../interfaces/messaging/emailMetadata';
19
+ import { ContentTransferEncoding, IContentType, IMimePart } from '../../interfaces/messaging/mimePart';
20
+ /**
21
+ * RFC 5322/MIME compliant email parser.
22
+ *
23
+ * Provides methods for parsing email headers, addresses, Message-IDs,
24
+ * dates, and content types. The main `parse()` method (Task 4.6) will
25
+ * use `postal-mime` for full email parsing.
26
+ *
27
+ * @see Design Document: EmailParser Class
28
+ */
29
+ export declare class EmailParser {
30
+ /**
31
+ * Unfolds multi-line headers by removing CRLF followed by whitespace.
32
+ *
33
+ * Per RFC 5322 Section 2.2.3, long header fields can be split across
34
+ * multiple lines by inserting a CRLF before any whitespace. Unfolding
35
+ * reverses this by removing the CRLF (or LF) that precedes whitespace.
36
+ *
37
+ * Also handles LF followed by whitespace for robustness (Requirement 14.5).
38
+ *
39
+ * @param rawHeaders - The raw header string potentially containing folded lines
40
+ * @returns The unfolded header string
41
+ *
42
+ * @see RFC 5322 Section 2.2.3 - Long Header Fields
43
+ * @see Requirement 14.4 - Unfold multi-line headers
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const parser = new EmailParser();
48
+ * parser.unfoldHeaders('Subject: This is\r\n a long subject');
49
+ * // => 'Subject: This is a long subject'
50
+ * ```
51
+ */
52
+ unfoldHeaders(rawHeaders: string): string;
53
+ /**
54
+ * Parses a raw header section string into a Map of header names to values.
55
+ *
56
+ * Handles:
57
+ * - Header unfolding (multi-line headers)
58
+ * - Multiple values for the same header name
59
+ * - Case-insensitive header name storage (lowercased keys)
60
+ *
61
+ * @param headerSection - The raw header section string (headers separated by line breaks)
62
+ * @returns Map of lowercase header names to arrays of values
63
+ *
64
+ * @see RFC 5322 Section 2.2 - Header Fields
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const parser = new EmailParser();
69
+ * const headers = parser.parseHeaders('From: alice@example.com\r\nTo: bob@example.com');
70
+ * headers.get('from'); // ['alice@example.com']
71
+ * headers.get('to'); // ['bob@example.com']
72
+ * ```
73
+ */
74
+ parseHeaders(headerSection: string): Map<string, string[]>;
75
+ /**
76
+ * Parses a single mailbox address string into an IMailbox object.
77
+ *
78
+ * Uses the `email-addresses` library for RFC 5322 compliant parsing.
79
+ * Supports both name-addr format (`"Display Name" <local@domain>`)
80
+ * and addr-spec format (`local@domain`).
81
+ *
82
+ * @param mailboxString - The mailbox string to parse
83
+ * @returns The parsed IMailbox object
84
+ * @throws {EmailError} With INVALID_MAILBOX if parsing fails
85
+ *
86
+ * @see RFC 5322 Section 3.4 - Address Specification
87
+ * @see Requirement 2.1 - Parse mailbox addresses
88
+ * @see Requirement 2.2 - Parse addr-spec as local-part@domain
89
+ * @see Requirement 2.3 - Support quoted-string local-parts
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const parser = new EmailParser();
94
+ * const mailbox = parser.parseMailbox('John Doe <john@example.com>');
95
+ * // { displayName: 'John Doe', localPart: 'john', domain: 'example.com' }
96
+ *
97
+ * const simple = parser.parseMailbox('user@example.com');
98
+ * // { localPart: 'user', domain: 'example.com' }
99
+ * ```
100
+ */
101
+ parseMailbox(mailboxString: string): IMailbox;
102
+ /**
103
+ * Parses an address list string into an array of IAddress objects.
104
+ *
105
+ * Uses the `email-addresses` library for RFC 5322 compliant parsing.
106
+ * Supports both individual mailboxes and group addresses.
107
+ *
108
+ * @param addressListString - The comma-separated address list string
109
+ * @returns Array of parsed IAddress objects (IMailbox or IAddressGroup)
110
+ * @throws {EmailError} With INVALID_MAILBOX if parsing fails
111
+ *
112
+ * @see RFC 5322 Section 3.4 - Address Specification
113
+ * @see Requirement 2.1 - Parse mailbox addresses
114
+ * @see Requirement 2.4 - Support group addresses
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const parser = new EmailParser();
119
+ * const addresses = parser.parseAddressList('alice@example.com, Bob <bob@example.com>');
120
+ * // [IMailbox, IMailbox]
121
+ *
122
+ * const withGroup = parser.parseAddressList('Team: alice@example.com, bob@example.com;');
123
+ * // [IAddressGroup]
124
+ * ```
125
+ */
126
+ parseAddressList(addressListString: string): IAddress[];
127
+ /**
128
+ * Parses a Message-ID string, validating its format.
129
+ *
130
+ * Message-IDs must be enclosed in angle brackets and contain exactly
131
+ * one "@" character per RFC 5322 Section 3.6.4.
132
+ *
133
+ * Also supports extracting multiple Message-IDs from In-Reply-To
134
+ * or References headers when called via parseMessageIdList().
135
+ *
136
+ * @param messageIdString - The Message-ID string to parse (e.g., "<id@domain>")
137
+ * @returns The validated Message-ID string (with angle brackets)
138
+ * @throws {EmailError} With INVALID_MESSAGE_ID if format is invalid
139
+ *
140
+ * @see RFC 5322 Section 3.6.4 - Identification Fields
141
+ * @see Requirement 3.4 - Validate Message-IDs are enclosed in angle brackets
142
+ * @see Requirement 3.5 - Validate Message-IDs contain exactly one "@"
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const parser = new EmailParser();
147
+ * parser.parseMessageId('<unique-id@example.com>');
148
+ * // => '<unique-id@example.com>'
149
+ *
150
+ * parser.parseMessageId('no-brackets@example.com');
151
+ * // throws EmailError (INVALID_MESSAGE_ID)
152
+ * ```
153
+ */
154
+ parseMessageId(messageIdString: string): string;
155
+ /**
156
+ * Extracts multiple Message-IDs from In-Reply-To or References header values.
157
+ *
158
+ * These headers can contain multiple Message-IDs separated by whitespace.
159
+ *
160
+ * @param headerValue - The header value containing one or more Message-IDs
161
+ * @returns Array of validated Message-ID strings
162
+ *
163
+ * @see RFC 5322 Section 3.6.4 - Identification Fields
164
+ * @see Requirement 3.6 - Extract multiple Message-IDs separated by whitespace
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * const parser = new EmailParser();
169
+ * parser.parseMessageIdList('<id1@example.com> <id2@example.com>');
170
+ * // => ['<id1@example.com>', '<id2@example.com>']
171
+ * ```
172
+ */
173
+ parseMessageIdList(headerValue: string): string[];
174
+ /**
175
+ * Parses an RFC 5322 date string into a Date object.
176
+ *
177
+ * Handles common RFC 5322 date formats including:
178
+ * - Full format: "Thu, 13 Feb 2025 15:30:00 +0000"
179
+ * - Without day-of-week: "13 Feb 2025 15:30:00 +0000"
180
+ * - Various timezone formats
181
+ *
182
+ * @param dateString - The RFC 5322 date string to parse
183
+ * @returns The parsed Date object
184
+ * @throws {EmailError} With INVALID_DATE if parsing fails
185
+ *
186
+ * @see RFC 5322 Section 3.3 - Date and Time Specification
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * const parser = new EmailParser();
191
+ * parser.parseDate('Thu, 13 Feb 2025 15:30:00 +0000');
192
+ * // => Date object for 2025-02-13T15:30:00Z
193
+ * ```
194
+ */
195
+ parseDate(dateString: string): Date;
196
+ /**
197
+ * Parses a Content-Type header string into an IContentType object.
198
+ *
199
+ * Extracts the type, subtype, and parameters from a Content-Type header value.
200
+ * Handles quoted parameter values containing special characters.
201
+ *
202
+ * @param contentTypeString - The Content-Type header value to parse
203
+ * @returns The parsed IContentType object
204
+ * @throws {EmailError} With INVALID_CONTENT_TYPE if parsing fails
205
+ *
206
+ * @see RFC 2045 Section 5 - Content-Type Header Field
207
+ * @see Requirement 5.1 - Content-Type with type/subtype and optional parameters
208
+ * @see Requirement 5.2 - Parse Content-Type parameters
209
+ * @see Requirement 5.3 - Handle quoted parameter values
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * const parser = new EmailParser();
214
+ * const ct = parser.parseContentType('text/plain; charset=utf-8');
215
+ * // { type: 'text', subtype: 'plain', parameters: Map { 'charset' => 'utf-8' } }
216
+ *
217
+ * const mp = parser.parseContentType('multipart/mixed; boundary="----=_Part_123"');
218
+ * // { type: 'multipart', subtype: 'mixed', parameters: Map { 'boundary' => '----=_Part_123' } }
219
+ * ```
220
+ */
221
+ parseContentType(contentTypeString: string): IContentType;
222
+ /**
223
+ * Parses Content-Type parameters from a parameter string.
224
+ *
225
+ * Handles both quoted and unquoted parameter values.
226
+ *
227
+ * @param paramString - The parameter portion of the Content-Type header
228
+ * @param parameters - Map to populate with parsed parameters
229
+ */
230
+ private parseContentTypeParameters;
231
+ /**
232
+ * Decodes an RFC 2047 encoded-word back to a UTF-8 string.
233
+ *
234
+ * Encoded-words have the format: =?charset?encoding?encoded-text?=
235
+ * where encoding is either "B" (base64) or "Q" (quoted-printable).
236
+ *
237
+ * If the input is not an encoded-word, it is returned as-is.
238
+ *
239
+ * @param encodedWord - The string potentially containing an encoded-word
240
+ * @returns The decoded UTF-8 string
241
+ *
242
+ * @see RFC 2047 - MIME Part Three: Message Header Extensions for Non-ASCII Text
243
+ * @see Requirement 4.5 - Decode RFC 2047 encoded-words in subject lines back to UTF-8
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const parser = new EmailParser();
248
+ * parser.decodeEncodedWord('=?UTF-8?B?SGVsbG8gV29ybGQ=?=');
249
+ * // => 'Hello World'
250
+ *
251
+ * parser.decodeEncodedWord('=?UTF-8?Q?Hello_World?=');
252
+ * // => 'Hello World'
253
+ *
254
+ * parser.decodeEncodedWord('plain text');
255
+ * // => 'plain text'
256
+ * ```
257
+ */
258
+ decodeEncodedWord(encodedWord: string): string;
259
+ /**
260
+ * Decodes quoted-printable encoded data per RFC 2045 Section 6.7.
261
+ *
262
+ * Replaces =XX sequences with the corresponding byte value and
263
+ * handles soft line breaks (=\r\n or =\n).
264
+ *
265
+ * @param data - The quoted-printable encoded data as Uint8Array
266
+ * @returns The decoded bytes as Uint8Array
267
+ *
268
+ * @see RFC 2045 Section 6.7 - Quoted-Printable Content-Transfer-Encoding
269
+ * @see Requirement 7.8 - Decode content based on Content-Transfer-Encoding
270
+ * @see Requirement 14.9 - Decode body according to Content-Transfer-Encoding header
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * const parser = new EmailParser();
275
+ * const encoded = new TextEncoder().encode('Hello=20World');
276
+ * const decoded = parser.decodeQuotedPrintable(encoded);
277
+ * // decoded contains bytes for 'Hello World'
278
+ * ```
279
+ */
280
+ decodeQuotedPrintable(data: Uint8Array): Uint8Array;
281
+ /**
282
+ * Decodes base64 encoded data per RFC 2045 Section 6.8.
283
+ *
284
+ * Uses Node.js Buffer for decoding. Ignores whitespace in the input,
285
+ * as line breaks in base64 encoded data are common per RFC 2045.
286
+ *
287
+ * @param data - The base64 encoded data as Uint8Array
288
+ * @returns The decoded bytes as Uint8Array
289
+ *
290
+ * @see RFC 2045 Section 6.8 - Base64 Content-Transfer-Encoding
291
+ * @see Requirement 7.8 - Decode content based on Content-Transfer-Encoding
292
+ * @see Requirement 14.9 - Decode body according to Content-Transfer-Encoding header
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * const parser = new EmailParser();
297
+ * const encoded = new TextEncoder().encode('SGVsbG8gV29ybGQ=');
298
+ * const decoded = parser.decodeBase64(encoded);
299
+ * // decoded contains bytes for 'Hello World'
300
+ * ```
301
+ */
302
+ decodeBase64(data: Uint8Array): Uint8Array;
303
+ /**
304
+ * Parses (decodes) the body of a MIME part based on its Content-Transfer-Encoding.
305
+ *
306
+ * Dispatches to the appropriate decoder:
307
+ * - '7bit', '8bit', 'binary': returns body as-is (no decoding needed)
308
+ * - 'quoted-printable': calls decodeQuotedPrintable()
309
+ * - 'base64': calls decodeBase64()
310
+ *
311
+ * @param body - The raw body data as Uint8Array
312
+ * @param contentType - The Content-Type of the body (for future use)
313
+ * @param encoding - The Content-Transfer-Encoding to apply
314
+ * @returns The decoded body as Uint8Array
315
+ *
316
+ * @see RFC 2045 Section 6 - Content-Transfer-Encoding Header Field
317
+ * @see Requirement 7.8 - Decode content based on Content-Transfer-Encoding
318
+ * @see Requirement 14.9 - Decode body according to Content-Transfer-Encoding header
319
+ *
320
+ * @example
321
+ * ```typescript
322
+ * const parser = new EmailParser();
323
+ * const ct = createContentType('text', 'plain');
324
+ * const body = new TextEncoder().encode('SGVsbG8=');
325
+ * const decoded = parser.parseBody(body, ct, ContentTransferEncoding.Base64);
326
+ * // decoded contains bytes for 'Hello'
327
+ * ```
328
+ */
329
+ parseBody(body: Uint8Array, contentType: IContentType, encoding: ContentTransferEncoding): Uint8Array;
330
+ /**
331
+ * Parses a multipart MIME body into an array of IMimePart objects.
332
+ *
333
+ * Splits the body by the given boundary delimiter, parses each part's
334
+ * headers and body, and recursively handles nested multipart structures.
335
+ * Preamble text (before the first boundary) and epilogue text (after the
336
+ * final boundary) are handled gracefully and ignored per RFC 2046.
337
+ *
338
+ * @param body - The raw multipart body as Uint8Array
339
+ * @param boundary - The boundary string from the Content-Type header
340
+ * @returns Array of parsed IMimePart objects
341
+ * @throws {EmailError} With MALFORMED_MIME if the boundary is missing or body is malformed
342
+ *
343
+ * @see RFC 2046 Section 5.1 - Multipart Media Type
344
+ * @see Requirement 6.7 - Parse nested multipart structures
345
+ * @see Requirement 6.8 - Handle preamble and epilogue text
346
+ *
347
+ * @example
348
+ * ```typescript
349
+ * const parser = new EmailParser();
350
+ * const body = new TextEncoder().encode(
351
+ * '--boundary\r\nContent-Type: text/plain\r\n\r\nHello\r\n--boundary--'
352
+ * );
353
+ * const parts = parser.parseMultipart(body, 'boundary');
354
+ * // [{ contentType: { type: 'text', subtype: 'plain', ... }, body: ..., size: 5 }]
355
+ * ```
356
+ */
357
+ parseMultipart(body: Uint8Array, boundary: string): IMimePart[];
358
+ /**
359
+ * Parses a single MIME part (headers + body) into an IMimePart object.
360
+ *
361
+ * @param partContent - The raw content of a single MIME part (headers + blank line + body)
362
+ * @returns The parsed IMimePart object
363
+ */
364
+ private parseSinglePart;
365
+ /**
366
+ * Parses a Content-Disposition header value into an IContentDisposition object.
367
+ *
368
+ * @param dispositionString - The Content-Disposition header value
369
+ * @returns The parsed IContentDisposition object
370
+ */
371
+ private parseContentDisposition;
372
+ /**
373
+ * Escapes special regex characters in a string for use in a RegExp.
374
+ *
375
+ * @param str - The string to escape
376
+ * @returns The escaped string safe for use in RegExp
377
+ */
378
+ private escapeRegExp;
379
+ /**
380
+ * Parses a raw email (string or Uint8Array) into an IEmailMetadata object.
381
+ *
382
+ * Uses `PostalMime.parse()` as the core parsing engine, then converts
383
+ * postal-mime's Email type to the IEmailMetadata interface. Handles both
384
+ * CRLF and LF line endings (postal-mime handles this internally).
385
+ *
386
+ * @param rawEmail - The raw email as a string or Uint8Array
387
+ * @returns The parsed IEmailMetadata object
388
+ * @throws {EmailError} With PARSE_ERROR if parsing fails
389
+ *
390
+ * @see RFC 5322 - Internet Message Format
391
+ * @see Requirement 14.5 - Handle both CRLF and LF line endings
392
+ *
393
+ * @example
394
+ * ```typescript
395
+ * const parser = new EmailParser();
396
+ * const metadata = await parser.parse(rawEmailString);
397
+ * console.log(metadata.from.address); // "sender@example.com"
398
+ * console.log(metadata.subject); // "Hello World"
399
+ * ```
400
+ */
401
+ parse(rawEmail: string | Uint8Array): Promise<IEmailMetadata>;
402
+ /**
403
+ * Converts a postal-mime Email object to IEmailMetadata.
404
+ *
405
+ * @param email - The postal-mime parsed Email object
406
+ * @returns The converted IEmailMetadata object
407
+ */
408
+ private convertPostalEmailToMetadata;
409
+ /**
410
+ * Converts a postal-mime Address to an IMailbox (single mailbox).
411
+ * Returns undefined if the address cannot be converted.
412
+ */
413
+ private convertPostalAddressToMailbox;
414
+ /**
415
+ * Converts a postal-mime Address to an array of IMailbox objects.
416
+ * Handles both individual mailboxes and group addresses.
417
+ */
418
+ private convertPostalAddressToMailboxes;
419
+ /**
420
+ * Converts a postal-mime Mailbox to an IMailbox.
421
+ */
422
+ private convertPostalMailboxToIMailbox;
423
+ /**
424
+ * Finds the first header value matching the given key (case-insensitive).
425
+ */
426
+ private findHeader;
427
+ /**
428
+ * Finds all header values matching the given key (case-insensitive).
429
+ */
430
+ private findAllHeaders;
431
+ /**
432
+ * Extracts custom/extension headers (X-* and other non-standard headers).
433
+ * Standard RFC 5322 headers are excluded.
434
+ */
435
+ private extractCustomHeaders;
436
+ /**
437
+ * Builds IMimePart[] from postal-mime's parsed email content.
438
+ * Creates parts from text, html, and attachment content.
439
+ */
440
+ private buildMimeParts;
441
+ /**
442
+ * Converts postal-mime attachments to IAttachmentMetadata[].
443
+ */
444
+ private convertAttachments;
445
+ /**
446
+ * Converts a single postal-mime Attachment to IAttachmentMetadata.
447
+ */
448
+ private convertSingleAttachment;
449
+ /**
450
+ * Converts postal-mime attachment content to Uint8Array.
451
+ */
452
+ private convertAttachmentContent;
453
+ /**
454
+ * Parses an attachment's MIME type string into an IContentType.
455
+ */
456
+ private parseAttachmentContentType;
457
+ }
458
+ //# sourceMappingURL=emailParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emailParser.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/messaging/emailParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiBH,OAAO,EACL,QAAQ,EACR,QAAQ,EAGT,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EACL,uBAAuB,EAEvB,YAAY,EACZ,SAAS,EAEV,MAAM,qCAAqC,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAMzC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAyC1D;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ;IA+B7C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,GAAG,QAAQ,EAAE;IAgCvD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAoC/C;;;;;;;;;;;;;;;;;OAiBG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAiBjD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA0BnC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,GAAG,YAAY;IAqDzD;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IA2DlC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAkE9C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;IA+CnD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;IAW1C;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,CACP,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,YAAY,EACzB,QAAQ,EAAE,uBAAuB,GAChC,UAAU;IAoBb;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IA8F/D;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAiHvB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAkE/B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAsCnE;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAqLpC;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAavC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAmBtC;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuDtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAOnC"}