@vaultsandbox/client 0.9.0 → 0.9.2
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/README.md +44 -26
- package/dist/client.d.ts +11 -0
- package/dist/client.js +32 -0
- package/dist/client.js.map +1 -1
- package/dist/crypto/decrypt.d.ts +33 -4
- package/dist/crypto/decrypt.js +64 -40
- package/dist/crypto/decrypt.js.map +1 -1
- package/dist/crypto/signature.d.ts +5 -2
- package/dist/crypto/signature.js +16 -9
- package/dist/crypto/signature.js.map +1 -1
- package/dist/email.d.ts +2 -1
- package/dist/email.js +8 -2
- package/dist/email.js.map +1 -1
- package/dist/http/api-client.js +30 -8
- package/dist/http/api-client.js.map +1 -1
- package/dist/inbox.d.ts +14 -0
- package/dist/inbox.js +66 -10
- package/dist/inbox.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/strategies/delivery-strategy.d.ts +5 -2
- package/dist/strategies/polling-strategy.d.ts +10 -2
- package/dist/strategies/polling-strategy.js +32 -10
- package/dist/strategies/polling-strategy.js.map +1 -1
- package/dist/strategies/sse-strategy.d.ts +23 -2
- package/dist/strategies/sse-strategy.js +102 -15
- package/dist/strategies/sse-strategy.js.map +1 -1
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/email-utils.d.ts +7 -1
- package/dist/utils/email-utils.js +47 -32
- package/dist/utils/email-utils.js.map +1 -1
- package/package.json +7 -7
|
@@ -8,20 +8,41 @@ export declare class SSEStrategy implements DeliveryStrategy {
|
|
|
8
8
|
private reconnectInterval;
|
|
9
9
|
private maxReconnectAttempts;
|
|
10
10
|
private backoffMultiplier;
|
|
11
|
+
private maxCacheSize;
|
|
11
12
|
private eventSource;
|
|
12
13
|
private subscriptions;
|
|
13
14
|
private reconnectAttempts;
|
|
14
15
|
private reconnectTimer;
|
|
15
16
|
private isClosing;
|
|
17
|
+
private messageQueue;
|
|
16
18
|
constructor(apiClient: ApiClient, config: SSEConfig);
|
|
19
|
+
/**
|
|
20
|
+
* Trims the email cache to stay within the configured maximum size.
|
|
21
|
+
* Removes oldest entries first (FIFO eviction).
|
|
22
|
+
* @param cache - The email cache to trim
|
|
23
|
+
*/
|
|
24
|
+
private trimCache;
|
|
25
|
+
/**
|
|
26
|
+
* Validates that a keypair exists for encrypted email operations.
|
|
27
|
+
* @param keypair - The keypair to validate
|
|
28
|
+
* @param emailAddress - The email address for error context
|
|
29
|
+
* @returns The validated keypair
|
|
30
|
+
* @throws DecryptionError if keypair is null
|
|
31
|
+
*/
|
|
32
|
+
private validateKeypair;
|
|
33
|
+
/**
|
|
34
|
+
* Notifies all subscribed error callbacks about an error.
|
|
35
|
+
* @param error - The error to notify about
|
|
36
|
+
*/
|
|
37
|
+
private notifyErrorCallbacks;
|
|
17
38
|
/**
|
|
18
39
|
* Wait for an email matching the specified criteria using SSE
|
|
19
40
|
*/
|
|
20
|
-
waitForEmail(emailAddress: string, inboxHash: string, keypair: Keypair | null, options?: WaitOptions): Promise<IEmail>;
|
|
41
|
+
waitForEmail(emailAddress: string, inboxHash: string, keypair: Keypair | null, options?: WaitOptions, serverPublicKey?: string | null): Promise<IEmail>;
|
|
21
42
|
/**
|
|
22
43
|
* Subscribe to new email notifications for a specific inbox
|
|
23
44
|
*/
|
|
24
|
-
subscribe(emailAddress: string, inboxHash: string, keypair: Keypair | null, callback: (email: IEmail) => void | Promise<void>, emailCache?: Map<string, EmailData>, onEmailDeleted?: (emailId: string) => void): Subscription;
|
|
45
|
+
subscribe(emailAddress: string, inboxHash: string, keypair: Keypair | null, callback: (email: IEmail) => void | Promise<void>, emailCache?: Map<string, EmailData>, onEmailDeleted?: (emailId: string) => void, onError?: (error: Error) => void, serverPublicKey?: string | null): Subscription;
|
|
25
46
|
/**
|
|
26
47
|
* Connect to SSE endpoint
|
|
27
48
|
*/
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import createDebug from 'debug';
|
|
2
2
|
import { EventSource } from 'eventsource';
|
|
3
|
-
import { TimeoutError, SSEError } from '../types/index.js';
|
|
3
|
+
import { TimeoutError, SSEError, DecryptionError } from '../types/index.js';
|
|
4
4
|
import { decryptEmailData, decodeBase64EmailData, isEncryptedEmailData, matchesFilters } from '../utils/email-utils.js';
|
|
5
5
|
import { syncInbox } from '../sync/inbox-sync.js';
|
|
6
6
|
const debug = createDebug('vaultsandbox:sse-strategy');
|
|
7
|
+
/** Default maximum number of emails to cache per inbox */
|
|
8
|
+
const DEFAULT_MAX_CACHE_SIZE = 1000;
|
|
7
9
|
export class SSEStrategy {
|
|
8
10
|
apiClient;
|
|
9
11
|
url;
|
|
@@ -11,11 +13,13 @@ export class SSEStrategy {
|
|
|
11
13
|
reconnectInterval;
|
|
12
14
|
maxReconnectAttempts;
|
|
13
15
|
backoffMultiplier;
|
|
16
|
+
maxCacheSize;
|
|
14
17
|
eventSource = null;
|
|
15
18
|
subscriptions = new Map();
|
|
16
19
|
reconnectAttempts = 0;
|
|
17
20
|
reconnectTimer = null;
|
|
18
21
|
isClosing = false;
|
|
22
|
+
messageQueue = Promise.resolve();
|
|
19
23
|
constructor(apiClient, config) {
|
|
20
24
|
this.apiClient = apiClient;
|
|
21
25
|
this.url = config.url;
|
|
@@ -23,12 +27,59 @@ export class SSEStrategy {
|
|
|
23
27
|
this.reconnectInterval = config.reconnectInterval ?? 2000;
|
|
24
28
|
this.maxReconnectAttempts = config.maxReconnectAttempts ?? 10;
|
|
25
29
|
this.backoffMultiplier = config.backoffMultiplier ?? 2;
|
|
30
|
+
this.maxCacheSize = config.maxCacheSize ?? DEFAULT_MAX_CACHE_SIZE;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Trims the email cache to stay within the configured maximum size.
|
|
34
|
+
* Removes oldest entries first (FIFO eviction).
|
|
35
|
+
* @param cache - The email cache to trim
|
|
36
|
+
*/
|
|
37
|
+
trimCache(cache) {
|
|
38
|
+
if (this.maxCacheSize === 0)
|
|
39
|
+
return; // Unlimited cache
|
|
40
|
+
while (cache.size > this.maxCacheSize) {
|
|
41
|
+
const firstKey = cache.keys().next().value;
|
|
42
|
+
/* istanbul ignore else - cache.size > 0 ensures firstKey exists */
|
|
43
|
+
if (firstKey !== undefined) {
|
|
44
|
+
cache.delete(firstKey);
|
|
45
|
+
debug('Evicted email %s from cache (size: %d/%d)', firstKey, cache.size, this.maxCacheSize);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Validates that a keypair exists for encrypted email operations.
|
|
51
|
+
* @param keypair - The keypair to validate
|
|
52
|
+
* @param emailAddress - The email address for error context
|
|
53
|
+
* @returns The validated keypair
|
|
54
|
+
* @throws DecryptionError if keypair is null
|
|
55
|
+
*/
|
|
56
|
+
validateKeypair(keypair, emailAddress) {
|
|
57
|
+
if (!keypair) {
|
|
58
|
+
throw new DecryptionError(`Received encrypted email for inbox ${emailAddress} but no keypair available`);
|
|
59
|
+
}
|
|
60
|
+
return keypair;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Notifies all subscribed error callbacks about an error.
|
|
64
|
+
* @param error - The error to notify about
|
|
65
|
+
*/
|
|
66
|
+
notifyErrorCallbacks(error) {
|
|
67
|
+
this.subscriptions.forEach((sub) => {
|
|
68
|
+
sub.errorCallbacks.forEach((callback) => {
|
|
69
|
+
try {
|
|
70
|
+
callback(error);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
debug('Error in error callback: %O', e);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
26
77
|
}
|
|
27
78
|
/**
|
|
28
79
|
* Wait for an email matching the specified criteria using SSE
|
|
29
80
|
*/
|
|
30
81
|
async waitForEmail(emailAddress, inboxHash, keypair,
|
|
31
|
-
/* istanbul ignore next - default parameter */ options = {}) {
|
|
82
|
+
/* istanbul ignore next - default parameter */ options = {}, serverPublicKey) {
|
|
32
83
|
const timeout = options.timeout ?? /* istanbul ignore next - default timeout */ 30000;
|
|
33
84
|
const startTime = Date.now();
|
|
34
85
|
return new Promise((resolve, reject) => {
|
|
@@ -50,7 +101,7 @@ export class SSEStrategy {
|
|
|
50
101
|
subscription.unsubscribe();
|
|
51
102
|
resolve(email);
|
|
52
103
|
}
|
|
53
|
-
});
|
|
104
|
+
}, undefined, undefined, undefined, serverPublicKey);
|
|
54
105
|
// If we're past the timeout already, reject immediately
|
|
55
106
|
if (Date.now() - startTime >= timeout) {
|
|
56
107
|
resolved = true;
|
|
@@ -63,7 +114,7 @@ export class SSEStrategy {
|
|
|
63
114
|
/**
|
|
64
115
|
* Subscribe to new email notifications for a specific inbox
|
|
65
116
|
*/
|
|
66
|
-
subscribe(emailAddress, inboxHash, keypair, callback, emailCache, onEmailDeleted) {
|
|
117
|
+
subscribe(emailAddress, inboxHash, keypair, callback, emailCache, onEmailDeleted, onError, serverPublicKey) {
|
|
67
118
|
// Get or create subscription entry
|
|
68
119
|
let subscription = this.subscriptions.get(emailAddress);
|
|
69
120
|
if (!subscription) {
|
|
@@ -71,7 +122,9 @@ export class SSEStrategy {
|
|
|
71
122
|
emailAddress,
|
|
72
123
|
inboxHash,
|
|
73
124
|
keypair,
|
|
125
|
+
serverPublicKey: serverPublicKey ?? null,
|
|
74
126
|
callbacks: new Set(),
|
|
127
|
+
errorCallbacks: new Set(),
|
|
75
128
|
seenEmailIds: new Set(),
|
|
76
129
|
emailCache: emailCache ?? new Map(),
|
|
77
130
|
onEmailDeleted,
|
|
@@ -85,6 +138,10 @@ export class SSEStrategy {
|
|
|
85
138
|
}
|
|
86
139
|
// Add callback
|
|
87
140
|
subscription.callbacks.add(callback);
|
|
141
|
+
// Add error callback if provided
|
|
142
|
+
if (onError) {
|
|
143
|
+
subscription.errorCallbacks.add(onError);
|
|
144
|
+
}
|
|
88
145
|
// Connect or reconnect with updated inbox list
|
|
89
146
|
if (!this.eventSource || this.eventSource.readyState === 2) {
|
|
90
147
|
// 2 = CLOSED
|
|
@@ -100,6 +157,9 @@ export class SSEStrategy {
|
|
|
100
157
|
const sub = this.subscriptions.get(emailAddress);
|
|
101
158
|
if (sub) {
|
|
102
159
|
sub.callbacks.delete(callback);
|
|
160
|
+
if (onError) {
|
|
161
|
+
sub.errorCallbacks.delete(onError);
|
|
162
|
+
}
|
|
103
163
|
if (sub.callbacks.size === 0) {
|
|
104
164
|
this.subscriptions.delete(emailAddress);
|
|
105
165
|
if (this.subscriptions.size === 0) {
|
|
@@ -160,13 +220,14 @@ export class SSEStrategy {
|
|
|
160
220
|
debug('SSE connection established');
|
|
161
221
|
this.reconnectAttempts = 0; // Reset reconnect counter
|
|
162
222
|
};
|
|
163
|
-
this.eventSource.onmessage =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
223
|
+
this.eventSource.onmessage = (event) => {
|
|
224
|
+
// Queue messages to process sequentially to prevent race conditions on seenEmailIds
|
|
225
|
+
this.messageQueue = this.messageQueue
|
|
226
|
+
.then(() => this.handleMessage(event.data))
|
|
227
|
+
.catch((error) => {
|
|
168
228
|
debug('Error handling SSE message: %O', error);
|
|
169
|
-
|
|
229
|
+
this.notifyErrorCallbacks(error instanceof Error ? error : new SSEError(String(error)));
|
|
230
|
+
});
|
|
170
231
|
};
|
|
171
232
|
this.eventSource.onerror = (error) => {
|
|
172
233
|
debug('SSE connection error: %O', error);
|
|
@@ -186,6 +247,16 @@ export class SSEStrategy {
|
|
|
186
247
|
try {
|
|
187
248
|
debug('Received message: %s', data.substring(0, 200));
|
|
188
249
|
const messageData = JSON.parse(data);
|
|
250
|
+
// Validate required fields
|
|
251
|
+
if (!messageData || typeof messageData !== 'object') {
|
|
252
|
+
throw new SSEError('Invalid SSE message: not an object');
|
|
253
|
+
}
|
|
254
|
+
if (typeof messageData.inboxId !== 'string' || !messageData.inboxId) {
|
|
255
|
+
throw new SSEError('Invalid SSE message: missing or invalid inboxId');
|
|
256
|
+
}
|
|
257
|
+
if (typeof messageData.emailId !== 'string' || !messageData.emailId) {
|
|
258
|
+
throw new SSEError('Invalid SSE message: missing or invalid emailId');
|
|
259
|
+
}
|
|
189
260
|
debug('Parsed message data: %s', JSON.stringify(messageData, null, 2).substring(0, 500));
|
|
190
261
|
const { inboxId, emailId } = messageData;
|
|
191
262
|
debug('Looking for subscription with inboxId: %s', inboxId);
|
|
@@ -206,11 +277,13 @@ export class SSEStrategy {
|
|
|
206
277
|
subscription.seenEmailIds.add(emailId);
|
|
207
278
|
// SSE notification only contains metadata, fetch full email from API
|
|
208
279
|
const emailData = await this.apiClient.getEmail(subscription.emailAddress, emailId);
|
|
209
|
-
// Add to email cache
|
|
280
|
+
// Add to email cache and trim if needed
|
|
210
281
|
subscription.emailCache.set(emailId, emailData);
|
|
282
|
+
this.trimCache(subscription.emailCache);
|
|
211
283
|
// Decrypt or decode email based on format
|
|
212
284
|
const email = isEncryptedEmailData(emailData)
|
|
213
|
-
? await decryptEmailData(emailData, subscription.keypair, subscription.emailAddress, this.apiClient
|
|
285
|
+
? await decryptEmailData(emailData, this.validateKeypair(subscription.keypair, subscription.emailAddress), subscription.emailAddress, this.apiClient,
|
|
286
|
+
/* istanbul ignore next - defensive null to undefined */ subscription.serverPublicKey ?? undefined)
|
|
214
287
|
: decodeBase64EmailData(emailData, subscription.emailAddress, this.apiClient);
|
|
215
288
|
// Notify all callbacks for this inbox
|
|
216
289
|
subscription.callbacks.forEach((callback) => {
|
|
@@ -254,8 +327,21 @@ export class SSEStrategy {
|
|
|
254
327
|
}, backoffDelay);
|
|
255
328
|
}
|
|
256
329
|
else {
|
|
257
|
-
debug('Max reconnection attempts reached');
|
|
258
|
-
|
|
330
|
+
debug('Max reconnection attempts reached - notifying subscribers');
|
|
331
|
+
const error = new SSEError('Failed to establish SSE connection after maximum retry attempts');
|
|
332
|
+
// Notify all subscribers of the failure
|
|
333
|
+
this.subscriptions.forEach((sub) => {
|
|
334
|
+
sub.errorCallbacks.forEach((errorCallback) => {
|
|
335
|
+
try {
|
|
336
|
+
errorCallback(error);
|
|
337
|
+
}
|
|
338
|
+
catch (callbackError) /* istanbul ignore next - defensive for callback errors */ {
|
|
339
|
+
debug('Error in error callback: %O', callbackError);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
// Clean up and mark as disconnected
|
|
344
|
+
this.close();
|
|
259
345
|
}
|
|
260
346
|
}
|
|
261
347
|
/**
|
|
@@ -279,9 +365,10 @@ export class SSEStrategy {
|
|
|
279
365
|
try {
|
|
280
366
|
const fullEmailData = await this.apiClient.getEmail(subscription.emailAddress, metadataOnly.id);
|
|
281
367
|
subscription.emailCache.set(metadataOnly.id, fullEmailData);
|
|
368
|
+
this.trimCache(subscription.emailCache);
|
|
282
369
|
// Decrypt or decode and notify
|
|
283
370
|
const email = isEncryptedEmailData(fullEmailData)
|
|
284
|
-
? await decryptEmailData(fullEmailData, subscription.keypair, subscription.emailAddress, this.apiClient)
|
|
371
|
+
? await decryptEmailData(fullEmailData, this.validateKeypair(subscription.keypair, subscription.emailAddress), subscription.emailAddress, this.apiClient, subscription.serverPublicKey ?? undefined)
|
|
285
372
|
: /* istanbul ignore next */ decodeBase64EmailData(fullEmailData, subscription.emailAddress, this.apiClient);
|
|
286
373
|
/* istanbul ignore next - callback execution after successful decryption */
|
|
287
374
|
subscription.callbacks.forEach((callback) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse-strategy.js","sourceRoot":"","sources":["../../src/strategies/sse-strategy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sse-strategy.js","sourceRoot":"","sources":["../../src/strategies/sse-strategy.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* VaultSandbox Client SDK - Type Definitions
|
|
3
3
|
*/
|
|
4
|
+
/**
|
|
5
|
+
* Options for graceful shutdown.
|
|
6
|
+
*/
|
|
7
|
+
export interface CloseOptions {
|
|
8
|
+
/** Maximum time in milliseconds to wait for pending operations (default: 5000). */
|
|
9
|
+
timeout?: number;
|
|
10
|
+
}
|
|
4
11
|
/**
|
|
5
12
|
* Configuration for the VaultSandboxClient.
|
|
6
13
|
*/
|
|
@@ -27,6 +34,8 @@ export interface ClientConfig {
|
|
|
27
34
|
sseReconnectInterval?: number;
|
|
28
35
|
/** The maximum number of SSE reconnection attempts (default: 10). */
|
|
29
36
|
sseMaxReconnectAttempts?: number;
|
|
37
|
+
/** Maximum number of emails to cache per inbox in SSE strategy (default: 1000). Set to 0 for unlimited. */
|
|
38
|
+
sseMaxCacheSize?: number;
|
|
30
39
|
}
|
|
31
40
|
/**
|
|
32
41
|
* Options for creating a new inbox.
|
|
@@ -223,6 +232,8 @@ export interface AttachmentData {
|
|
|
223
232
|
checksum?: string;
|
|
224
233
|
/** The content of the attachment as a byte array. */
|
|
225
234
|
content?: Uint8Array;
|
|
235
|
+
/** Indicates that the attachment content failed to decode from base64. */
|
|
236
|
+
decodeError?: boolean;
|
|
226
237
|
}
|
|
227
238
|
/**
|
|
228
239
|
* Represents the raw, decrypted source of an email.
|
|
@@ -487,6 +498,8 @@ export interface SSEConfig {
|
|
|
487
498
|
reconnectInterval?: number;
|
|
488
499
|
maxReconnectAttempts?: number;
|
|
489
500
|
backoffMultiplier?: number;
|
|
501
|
+
/** Maximum number of emails to cache per inbox (default: 1000). Set to 0 for unlimited. */
|
|
502
|
+
maxCacheSize?: number;
|
|
490
503
|
}
|
|
491
504
|
/**
|
|
492
505
|
* SSE message data for new email notifications.
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,14 @@ export declare function isEncryptedEmailData(email: EmailData): email is Encrypt
|
|
|
13
13
|
* Decrypts an EncryptedEmailData object into an Email instance.
|
|
14
14
|
* Expects full email data with encryptedParsed content.
|
|
15
15
|
* IMPORTANT: Signature verification happens BEFORE decryption for security
|
|
16
|
+
*
|
|
17
|
+
* @param emailData - The encrypted email data
|
|
18
|
+
* @param keypair - The recipient's keypair for decryption
|
|
19
|
+
* @param emailAddress - The inbox email address
|
|
20
|
+
* @param apiClient - API client for email operations
|
|
21
|
+
* @param expectedServerPublicKey - Optional expected server public key (base64url) for MITM protection
|
|
16
22
|
*/
|
|
17
|
-
export declare function decryptEmailData(emailData: EncryptedEmailData, keypair: Keypair, emailAddress: string, apiClient: ApiClient): Promise<IEmail>;
|
|
23
|
+
export declare function decryptEmailData(emailData: EncryptedEmailData, keypair: Keypair, emailAddress: string, apiClient: ApiClient, expectedServerPublicKey?: string): Promise<IEmail>;
|
|
18
24
|
/**
|
|
19
25
|
* Decodes a PlainEmailData object into an Email instance.
|
|
20
26
|
* Plain emails have base64-encoded metadata and parsed content.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared email utilities for decryption and filtering
|
|
3
3
|
*/
|
|
4
|
+
import createDebug from 'debug';
|
|
4
5
|
import { Email } from '../email.js';
|
|
5
6
|
import { decryptMetadata, decryptParsed } from '../crypto/decrypt.js';
|
|
6
7
|
import { verifySignature } from '../crypto/signature.js';
|
|
7
8
|
import { fromBase64 } from '../crypto/utils.js';
|
|
9
|
+
const debug = createDebug('vaultsandbox:email-utils');
|
|
8
10
|
/**
|
|
9
11
|
* Type guard to determine if email data is encrypted.
|
|
10
12
|
* @param email - The email data to check
|
|
@@ -13,39 +15,55 @@ import { fromBase64 } from '../crypto/utils.js';
|
|
|
13
15
|
export function isEncryptedEmailData(email) {
|
|
14
16
|
return 'encryptedMetadata' in email;
|
|
15
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Transforms attachment content from base64 strings to Uint8Array.
|
|
20
|
+
* The server returns attachment content as base64-encoded strings, but our type expects Uint8Array.
|
|
21
|
+
* @param attachments - Array of attachment data to transform
|
|
22
|
+
* @returns Transformed attachments with content as Uint8Array (or undefined with decodeError flag if decode fails)
|
|
23
|
+
*/
|
|
24
|
+
function transformAttachmentContent(attachments) {
|
|
25
|
+
return attachments.map((att) => {
|
|
26
|
+
if (att.content && typeof att.content === 'string') {
|
|
27
|
+
try {
|
|
28
|
+
return { ...att, content: fromBase64(att.content) };
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
debug('Failed to decode attachment %s: %O', att.filename, error);
|
|
32
|
+
// Return attachment with undefined content to indicate decode failure
|
|
33
|
+
return { ...att, content: undefined, decodeError: true };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return att;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
16
39
|
/**
|
|
17
40
|
* Decrypts an EncryptedEmailData object into an Email instance.
|
|
18
41
|
* Expects full email data with encryptedParsed content.
|
|
19
42
|
* IMPORTANT: Signature verification happens BEFORE decryption for security
|
|
43
|
+
*
|
|
44
|
+
* @param emailData - The encrypted email data
|
|
45
|
+
* @param keypair - The recipient's keypair for decryption
|
|
46
|
+
* @param emailAddress - The inbox email address
|
|
47
|
+
* @param apiClient - API client for email operations
|
|
48
|
+
* @param expectedServerPublicKey - Optional expected server public key (base64url) for MITM protection
|
|
20
49
|
*/
|
|
21
|
-
export async function decryptEmailData(emailData, keypair, emailAddress, apiClient) {
|
|
22
|
-
// Verify signature FIRST (before decryption) -
|
|
23
|
-
verifySignature(emailData.encryptedMetadata);
|
|
24
|
-
// Decrypt metadata
|
|
25
|
-
const metadata = await decryptMetadata(emailData.encryptedMetadata, keypair);
|
|
50
|
+
export async function decryptEmailData(emailData, keypair, emailAddress, apiClient, expectedServerPublicKey) {
|
|
51
|
+
// Verify signature FIRST (before decryption) - also validates server public key if provided
|
|
52
|
+
verifySignature(emailData.encryptedMetadata, undefined, expectedServerPublicKey);
|
|
53
|
+
// Decrypt metadata (signature already verified above, but decrypt also verifies internally)
|
|
54
|
+
const metadata = await decryptMetadata(emailData.encryptedMetadata, keypair, expectedServerPublicKey);
|
|
26
55
|
// Decrypt parsed content if available
|
|
27
56
|
let parsed = null;
|
|
28
57
|
if (emailData.encryptedParsed) {
|
|
29
58
|
// Verify signature for parsed content too
|
|
30
|
-
verifySignature(emailData.encryptedParsed);
|
|
31
|
-
parsed = await decryptParsed(emailData.encryptedParsed, keypair);
|
|
59
|
+
verifySignature(emailData.encryptedParsed, undefined, expectedServerPublicKey);
|
|
60
|
+
parsed = await decryptParsed(emailData.encryptedParsed, keypair, expectedServerPublicKey);
|
|
32
61
|
// Transform attachment content from base64 strings to Uint8Array
|
|
33
|
-
// The server returns attachment content as base64-encoded strings, but our type expects Uint8Array
|
|
34
62
|
if (parsed?.attachments) {
|
|
35
|
-
parsed.attachments = parsed.attachments
|
|
36
|
-
// Check if content exists and is a string (base64 encoded)
|
|
37
|
-
if (att.content && typeof att.content === 'string') {
|
|
38
|
-
return {
|
|
39
|
-
...att,
|
|
40
|
-
content: fromBase64(att.content),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
// Content is already Uint8Array or undefined
|
|
44
|
-
return att;
|
|
45
|
-
});
|
|
63
|
+
parsed.attachments = transformAttachmentContent(parsed.attachments);
|
|
46
64
|
}
|
|
47
65
|
}
|
|
48
|
-
return new Email(emailData, metadata, parsed, emailAddress, apiClient, keypair);
|
|
66
|
+
return new Email(emailData, metadata, parsed, emailAddress, apiClient, keypair, expectedServerPublicKey);
|
|
49
67
|
}
|
|
50
68
|
/**
|
|
51
69
|
* Decodes a PlainEmailData object into an Email instance.
|
|
@@ -61,17 +79,8 @@ export function decodeBase64EmailData(emailData, emailAddress, apiClient) {
|
|
|
61
79
|
const parsedJson = Buffer.from(emailData.parsed, 'base64').toString('utf-8');
|
|
62
80
|
parsed = JSON.parse(parsedJson);
|
|
63
81
|
// Transform attachment content from base64 strings to Uint8Array
|
|
64
|
-
// Same as encrypted path - server sends attachment content as base64
|
|
65
82
|
if (parsed?.attachments) {
|
|
66
|
-
parsed.attachments = parsed.attachments
|
|
67
|
-
if (att.content && typeof att.content === 'string') {
|
|
68
|
-
return {
|
|
69
|
-
...att,
|
|
70
|
-
content: fromBase64(att.content),
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
return att;
|
|
74
|
-
});
|
|
83
|
+
parsed.attachments = transformAttachmentContent(parsed.attachments);
|
|
75
84
|
}
|
|
76
85
|
}
|
|
77
86
|
// Pass null for keypair since plain emails don't need decryption
|
|
@@ -122,8 +131,14 @@ export function matchesFilters(email, options) {
|
|
|
122
131
|
}
|
|
123
132
|
// Check custom predicate
|
|
124
133
|
if (options.predicate) {
|
|
125
|
-
|
|
126
|
-
|
|
134
|
+
try {
|
|
135
|
+
if (!options.predicate(email)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
debug('Error in user predicate function: %O', error);
|
|
141
|
+
return false; // Treat throwing predicate as non-match
|
|
127
142
|
}
|
|
128
143
|
}
|
|
129
144
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-utils.js","sourceRoot":"","sources":["../../src/utils/email-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"email-utils.js","sourceRoot":"","sources":["../../src/utils/email-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaultsandbox/client",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Node.js SDK for VaultSandbox Gateway —
|
|
3
|
+
"version": "0.9.2",
|
|
4
|
+
"description": "Node.js SDK for VaultSandbox Gateway — production-like email testing that's self-hosted and secure. Replicate real-world email delivery with TLS, authentication, spam analysis, and zero-knowledge encryption.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/vaultsandbox/client-node",
|
|
7
7
|
"repository": {
|
|
@@ -62,22 +62,22 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@noble/post-quantum": "0.5.4",
|
|
65
|
-
"axios": "1.13.
|
|
65
|
+
"axios": "1.13.3",
|
|
66
66
|
"debug": "4.4.3",
|
|
67
67
|
"eventsource": "4.1.0"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@types/debug": "4.1.12",
|
|
71
71
|
"@types/jest": "30.0.0",
|
|
72
|
-
"@types/node": "
|
|
73
|
-
"@typescript-eslint/eslint-plugin": "8.53.
|
|
74
|
-
"@typescript-eslint/parser": "8.53.
|
|
72
|
+
"@types/node": "25.0.10",
|
|
73
|
+
"@typescript-eslint/eslint-plugin": "8.53.1",
|
|
74
|
+
"@typescript-eslint/parser": "8.53.1",
|
|
75
75
|
"dotenv": "17.2.3",
|
|
76
76
|
"eslint": "9.39.2",
|
|
77
77
|
"eslint-config-prettier": "10.1.8",
|
|
78
78
|
"eslint-plugin-prettier": "5.5.5",
|
|
79
79
|
"jest": "30.2.0",
|
|
80
|
-
"prettier": "3.8.
|
|
80
|
+
"prettier": "3.8.1",
|
|
81
81
|
"ts-jest": "29.4.6",
|
|
82
82
|
"tsx": "4.21.0",
|
|
83
83
|
"typescript": "5.9.3"
|