@vaultsandbox/client 0.8.5 → 0.9.1
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 -23
- package/dist/client.d.ts +11 -0
- package/dist/client.js +33 -1
- package/dist/client.js.map +1 -1
- package/dist/crypto/decrypt.d.ts +21 -0
- package/dist/crypto/decrypt.js +48 -33
- package/dist/crypto/decrypt.js.map +1 -1
- package/dist/crypto/signature.d.ts +3 -1
- package/dist/crypto/signature.js +9 -8
- package/dist/crypto/signature.js.map +1 -1
- package/dist/email.js +4 -0
- package/dist/email.js.map +1 -1
- package/dist/http/api-client.d.ts +31 -2
- package/dist/http/api-client.js +72 -9
- package/dist/http/api-client.js.map +1 -1
- package/dist/inbox.d.ts +37 -1
- package/dist/inbox.js +98 -9
- 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 +2 -1
- package/dist/strategies/polling-strategy.d.ts +9 -1
- package/dist/strategies/polling-strategy.js +29 -7
- package/dist/strategies/polling-strategy.js.map +1 -1
- package/dist/strategies/sse-strategy.d.ts +22 -1
- package/dist/strategies/sse-strategy.js +98 -13
- package/dist/strategies/sse-strategy.js.map +1 -1
- package/dist/types/index.d.ts +116 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/email-utils.js +33 -24
- package/dist/utils/email-utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polling-strategy.js","sourceRoot":"","sources":["../../src/strategies/polling-strategy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,WAAW,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"polling-strategy.js","sourceRoot":"","sources":["../../src/strategies/polling-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,33 @@ 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
|
*/
|
|
@@ -21,7 +42,7 @@ export declare class SSEStrategy implements DeliveryStrategy {
|
|
|
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): 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,6 +27,53 @@ 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
|
|
@@ -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) {
|
|
67
118
|
// Get or create subscription entry
|
|
68
119
|
let subscription = this.subscriptions.get(emailAddress);
|
|
69
120
|
if (!subscription) {
|
|
@@ -72,6 +123,7 @@ export class SSEStrategy {
|
|
|
72
123
|
inboxHash,
|
|
73
124
|
keypair,
|
|
74
125
|
callbacks: new Set(),
|
|
126
|
+
errorCallbacks: new Set(),
|
|
75
127
|
seenEmailIds: new Set(),
|
|
76
128
|
emailCache: emailCache ?? new Map(),
|
|
77
129
|
onEmailDeleted,
|
|
@@ -85,6 +137,10 @@ export class SSEStrategy {
|
|
|
85
137
|
}
|
|
86
138
|
// Add callback
|
|
87
139
|
subscription.callbacks.add(callback);
|
|
140
|
+
// Add error callback if provided
|
|
141
|
+
if (onError) {
|
|
142
|
+
subscription.errorCallbacks.add(onError);
|
|
143
|
+
}
|
|
88
144
|
// Connect or reconnect with updated inbox list
|
|
89
145
|
if (!this.eventSource || this.eventSource.readyState === 2) {
|
|
90
146
|
// 2 = CLOSED
|
|
@@ -100,6 +156,9 @@ export class SSEStrategy {
|
|
|
100
156
|
const sub = this.subscriptions.get(emailAddress);
|
|
101
157
|
if (sub) {
|
|
102
158
|
sub.callbacks.delete(callback);
|
|
159
|
+
if (onError) {
|
|
160
|
+
sub.errorCallbacks.delete(onError);
|
|
161
|
+
}
|
|
103
162
|
if (sub.callbacks.size === 0) {
|
|
104
163
|
this.subscriptions.delete(emailAddress);
|
|
105
164
|
if (this.subscriptions.size === 0) {
|
|
@@ -160,13 +219,14 @@ export class SSEStrategy {
|
|
|
160
219
|
debug('SSE connection established');
|
|
161
220
|
this.reconnectAttempts = 0; // Reset reconnect counter
|
|
162
221
|
};
|
|
163
|
-
this.eventSource.onmessage =
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
222
|
+
this.eventSource.onmessage = (event) => {
|
|
223
|
+
// Queue messages to process sequentially to prevent race conditions on seenEmailIds
|
|
224
|
+
this.messageQueue = this.messageQueue
|
|
225
|
+
.then(() => this.handleMessage(event.data))
|
|
226
|
+
.catch((error) => {
|
|
168
227
|
debug('Error handling SSE message: %O', error);
|
|
169
|
-
|
|
228
|
+
this.notifyErrorCallbacks(error instanceof Error ? error : new SSEError(String(error)));
|
|
229
|
+
});
|
|
170
230
|
};
|
|
171
231
|
this.eventSource.onerror = (error) => {
|
|
172
232
|
debug('SSE connection error: %O', error);
|
|
@@ -186,6 +246,16 @@ export class SSEStrategy {
|
|
|
186
246
|
try {
|
|
187
247
|
debug('Received message: %s', data.substring(0, 200));
|
|
188
248
|
const messageData = JSON.parse(data);
|
|
249
|
+
// Validate required fields
|
|
250
|
+
if (!messageData || typeof messageData !== 'object') {
|
|
251
|
+
throw new SSEError('Invalid SSE message: not an object');
|
|
252
|
+
}
|
|
253
|
+
if (typeof messageData.inboxId !== 'string' || !messageData.inboxId) {
|
|
254
|
+
throw new SSEError('Invalid SSE message: missing or invalid inboxId');
|
|
255
|
+
}
|
|
256
|
+
if (typeof messageData.emailId !== 'string' || !messageData.emailId) {
|
|
257
|
+
throw new SSEError('Invalid SSE message: missing or invalid emailId');
|
|
258
|
+
}
|
|
189
259
|
debug('Parsed message data: %s', JSON.stringify(messageData, null, 2).substring(0, 500));
|
|
190
260
|
const { inboxId, emailId } = messageData;
|
|
191
261
|
debug('Looking for subscription with inboxId: %s', inboxId);
|
|
@@ -206,11 +276,12 @@ export class SSEStrategy {
|
|
|
206
276
|
subscription.seenEmailIds.add(emailId);
|
|
207
277
|
// SSE notification only contains metadata, fetch full email from API
|
|
208
278
|
const emailData = await this.apiClient.getEmail(subscription.emailAddress, emailId);
|
|
209
|
-
// Add to email cache
|
|
279
|
+
// Add to email cache and trim if needed
|
|
210
280
|
subscription.emailCache.set(emailId, emailData);
|
|
281
|
+
this.trimCache(subscription.emailCache);
|
|
211
282
|
// Decrypt or decode email based on format
|
|
212
283
|
const email = isEncryptedEmailData(emailData)
|
|
213
|
-
? await decryptEmailData(emailData, subscription.keypair, subscription.emailAddress, this.apiClient)
|
|
284
|
+
? await decryptEmailData(emailData, this.validateKeypair(subscription.keypair, subscription.emailAddress), subscription.emailAddress, this.apiClient)
|
|
214
285
|
: decodeBase64EmailData(emailData, subscription.emailAddress, this.apiClient);
|
|
215
286
|
// Notify all callbacks for this inbox
|
|
216
287
|
subscription.callbacks.forEach((callback) => {
|
|
@@ -254,8 +325,21 @@ export class SSEStrategy {
|
|
|
254
325
|
}, backoffDelay);
|
|
255
326
|
}
|
|
256
327
|
else {
|
|
257
|
-
debug('Max reconnection attempts reached');
|
|
258
|
-
|
|
328
|
+
debug('Max reconnection attempts reached - notifying subscribers');
|
|
329
|
+
const error = new SSEError('Failed to establish SSE connection after maximum retry attempts');
|
|
330
|
+
// Notify all subscribers of the failure
|
|
331
|
+
this.subscriptions.forEach((sub) => {
|
|
332
|
+
sub.errorCallbacks.forEach((errorCallback) => {
|
|
333
|
+
try {
|
|
334
|
+
errorCallback(error);
|
|
335
|
+
}
|
|
336
|
+
catch (callbackError) /* istanbul ignore next - defensive for callback errors */ {
|
|
337
|
+
debug('Error in error callback: %O', callbackError);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
// Clean up and mark as disconnected
|
|
342
|
+
this.close();
|
|
259
343
|
}
|
|
260
344
|
}
|
|
261
345
|
/**
|
|
@@ -279,9 +363,10 @@ export class SSEStrategy {
|
|
|
279
363
|
try {
|
|
280
364
|
const fullEmailData = await this.apiClient.getEmail(subscription.emailAddress, metadataOnly.id);
|
|
281
365
|
subscription.emailCache.set(metadataOnly.id, fullEmailData);
|
|
366
|
+
this.trimCache(subscription.emailCache);
|
|
282
367
|
// Decrypt or decode and notify
|
|
283
368
|
const email = isEncryptedEmailData(fullEmailData)
|
|
284
|
-
? await decryptEmailData(fullEmailData, subscription.keypair, subscription.emailAddress, this.apiClient)
|
|
369
|
+
? await decryptEmailData(fullEmailData, this.validateKeypair(subscription.keypair, subscription.emailAddress), subscription.emailAddress, this.apiClient)
|
|
285
370
|
: /* istanbul ignore next */ decodeBase64EmailData(fullEmailData, subscription.emailAddress, this.apiClient);
|
|
286
371
|
/* istanbul ignore next - callback execution after successful decryption */
|
|
287
372
|
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.
|
|
@@ -47,6 +56,11 @@ export interface CreateInboxOptions {
|
|
|
47
56
|
* - undefined/omitted: Use server default
|
|
48
57
|
*/
|
|
49
58
|
spamAnalysis?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Chaos engineering configuration for this inbox.
|
|
61
|
+
* Only available when the server has chaos engineering enabled (chaosEnabled: true in server info).
|
|
62
|
+
*/
|
|
63
|
+
chaos?: ChaosConfigRequest;
|
|
50
64
|
}
|
|
51
65
|
/**
|
|
52
66
|
* Exported inbox data structure for sharing or backup purposes.
|
|
@@ -218,6 +232,8 @@ export interface AttachmentData {
|
|
|
218
232
|
checksum?: string;
|
|
219
233
|
/** The content of the attachment as a byte array. */
|
|
220
234
|
content?: Uint8Array;
|
|
235
|
+
/** Indicates that the attachment content failed to decode from base64. */
|
|
236
|
+
decodeError?: boolean;
|
|
221
237
|
}
|
|
222
238
|
/**
|
|
223
239
|
* Represents the raw, decrypted source of an email.
|
|
@@ -463,6 +479,8 @@ export interface ServerInfo {
|
|
|
463
479
|
allowedDomains: string[];
|
|
464
480
|
/** Whether spam analysis (Rspamd) is enabled on this server. */
|
|
465
481
|
spamAnalysisEnabled?: boolean;
|
|
482
|
+
/** Whether chaos engineering features are enabled on this server. */
|
|
483
|
+
chaosEnabled?: boolean;
|
|
466
484
|
}
|
|
467
485
|
/**
|
|
468
486
|
* Represents a subscription to an event source, such as new emails.
|
|
@@ -480,6 +498,8 @@ export interface SSEConfig {
|
|
|
480
498
|
reconnectInterval?: number;
|
|
481
499
|
maxReconnectAttempts?: number;
|
|
482
500
|
backoffMultiplier?: number;
|
|
501
|
+
/** Maximum number of emails to cache per inbox (default: 1000). Set to 0 for unlimited. */
|
|
502
|
+
maxCacheSize?: number;
|
|
483
503
|
}
|
|
484
504
|
/**
|
|
485
505
|
* SSE message data for new email notifications.
|
|
@@ -744,3 +764,99 @@ export interface RotateSecretResponse {
|
|
|
744
764
|
/** ISO 8601 timestamp until which the previous secret remains valid. */
|
|
745
765
|
previousSecretValidUntil: string;
|
|
746
766
|
}
|
|
767
|
+
/**
|
|
768
|
+
* How to track senders for greylisting.
|
|
769
|
+
*/
|
|
770
|
+
export type GreylistTrackBy = 'ip' | 'sender' | 'ip_sender';
|
|
771
|
+
/**
|
|
772
|
+
* Types of SMTP errors for random error chaos.
|
|
773
|
+
*/
|
|
774
|
+
export type ChaosErrorType = 'temporary' | 'permanent';
|
|
775
|
+
/**
|
|
776
|
+
* Latency injection configuration for chaos testing.
|
|
777
|
+
* Injects artificial delays into email processing.
|
|
778
|
+
*/
|
|
779
|
+
export interface LatencyConfig {
|
|
780
|
+
/** Enable latency injection. */
|
|
781
|
+
enabled: boolean;
|
|
782
|
+
/** Minimum delay in milliseconds (default: 500). */
|
|
783
|
+
minDelayMs?: number;
|
|
784
|
+
/** Maximum delay in milliseconds (default: 10000, max: 60000). */
|
|
785
|
+
maxDelayMs?: number;
|
|
786
|
+
/** Randomize delay within range. If false, uses maxDelayMs (default: true). */
|
|
787
|
+
jitter?: boolean;
|
|
788
|
+
/** Probability of applying delay, 0.0-1.0 (default: 1.0). */
|
|
789
|
+
probability?: number;
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* Connection drop configuration for chaos testing.
|
|
793
|
+
* Simulates connection failures by dropping the SMTP connection.
|
|
794
|
+
*/
|
|
795
|
+
export interface ConnectionDropConfig {
|
|
796
|
+
/** Enable connection dropping. */
|
|
797
|
+
enabled: boolean;
|
|
798
|
+
/** Probability of dropping the connection, 0.0-1.0 (default: 1.0). */
|
|
799
|
+
probability?: number;
|
|
800
|
+
/** Use graceful close (FIN) vs abrupt (RST) (default: true). */
|
|
801
|
+
graceful?: boolean;
|
|
802
|
+
}
|
|
803
|
+
/**
|
|
804
|
+
* Random error configuration for chaos testing.
|
|
805
|
+
* Returns random SMTP error codes.
|
|
806
|
+
*/
|
|
807
|
+
export interface RandomErrorConfig {
|
|
808
|
+
/** Enable random error generation. */
|
|
809
|
+
enabled: boolean;
|
|
810
|
+
/** Probability of returning an error, 0.0-1.0 (default: 0.1). */
|
|
811
|
+
errorRate?: number;
|
|
812
|
+
/** Types of errors to return (default: ['temporary']). */
|
|
813
|
+
errorTypes?: ChaosErrorType[];
|
|
814
|
+
}
|
|
815
|
+
/**
|
|
816
|
+
* Greylist configuration for chaos testing.
|
|
817
|
+
* Simulates greylisting behavior (reject first attempt, accept on retry).
|
|
818
|
+
*/
|
|
819
|
+
export interface GreylistConfig {
|
|
820
|
+
/** Enable greylisting simulation. */
|
|
821
|
+
enabled: boolean;
|
|
822
|
+
/** Window for tracking retry attempts in milliseconds (default: 300000). */
|
|
823
|
+
retryWindowMs?: number;
|
|
824
|
+
/** Number of attempts before accepting (default: 2). */
|
|
825
|
+
maxAttempts?: number;
|
|
826
|
+
/** How to identify unique senders (default: 'ip_sender'). */
|
|
827
|
+
trackBy?: GreylistTrackBy;
|
|
828
|
+
}
|
|
829
|
+
/**
|
|
830
|
+
* Blackhole configuration for chaos testing.
|
|
831
|
+
* Accepts emails but silently discards them (does not store).
|
|
832
|
+
*/
|
|
833
|
+
export interface BlackholeConfig {
|
|
834
|
+
/** Enable blackhole mode. */
|
|
835
|
+
enabled: boolean;
|
|
836
|
+
/** Whether to still trigger webhooks (default: false). */
|
|
837
|
+
triggerWebhooks?: boolean;
|
|
838
|
+
}
|
|
839
|
+
/**
|
|
840
|
+
* Request object for setting chaos configuration on an inbox.
|
|
841
|
+
*/
|
|
842
|
+
export interface ChaosConfigRequest {
|
|
843
|
+
/** Master switch for chaos on this inbox. */
|
|
844
|
+
enabled: boolean;
|
|
845
|
+
/** ISO 8601 timestamp to auto-disable chaos after. */
|
|
846
|
+
expiresAt?: string;
|
|
847
|
+
/** Latency injection settings. */
|
|
848
|
+
latency?: LatencyConfig;
|
|
849
|
+
/** Connection drop settings. */
|
|
850
|
+
connectionDrop?: ConnectionDropConfig;
|
|
851
|
+
/** Random error settings. */
|
|
852
|
+
randomError?: RandomErrorConfig;
|
|
853
|
+
/** Greylisting settings. */
|
|
854
|
+
greylist?: GreylistConfig;
|
|
855
|
+
/** Blackhole mode settings. */
|
|
856
|
+
blackhole?: BlackholeConfig;
|
|
857
|
+
}
|
|
858
|
+
/**
|
|
859
|
+
* Response object for chaos configuration.
|
|
860
|
+
* Returned when getting or setting chaos configuration.
|
|
861
|
+
*/
|
|
862
|
+
export type ChaosConfigResponse = ChaosConfigRequest;
|
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":"AAAA;;GAEG;AA+lBH,qBAAqB;AAErB;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,iBAAiB;IAEpC;IADT,YACS,UAAkB,EACzB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,eAAU,GAAV,UAAU,CAAQ;QAIzB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,iBAAiB;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,iBAAiB;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IAC/D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,iBAAiB;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,iBAAiB;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAC3D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -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,6 +15,27 @@ 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.
|
|
@@ -30,19 +53,8 @@ export async function decryptEmailData(emailData, keypair, emailAddress, apiClie
|
|
|
30
53
|
verifySignature(emailData.encryptedParsed);
|
|
31
54
|
parsed = await decryptParsed(emailData.encryptedParsed, keypair);
|
|
32
55
|
// Transform attachment content from base64 strings to Uint8Array
|
|
33
|
-
// The server returns attachment content as base64-encoded strings, but our type expects Uint8Array
|
|
34
56
|
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
|
-
});
|
|
57
|
+
parsed.attachments = transformAttachmentContent(parsed.attachments);
|
|
46
58
|
}
|
|
47
59
|
}
|
|
48
60
|
return new Email(emailData, metadata, parsed, emailAddress, apiClient, keypair);
|
|
@@ -61,17 +73,8 @@ export function decodeBase64EmailData(emailData, emailAddress, apiClient) {
|
|
|
61
73
|
const parsedJson = Buffer.from(emailData.parsed, 'base64').toString('utf-8');
|
|
62
74
|
parsed = JSON.parse(parsedJson);
|
|
63
75
|
// Transform attachment content from base64 strings to Uint8Array
|
|
64
|
-
// Same as encrypted path - server sends attachment content as base64
|
|
65
76
|
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
|
-
});
|
|
77
|
+
parsed.attachments = transformAttachmentContent(parsed.attachments);
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
// Pass null for keypair since plain emails don't need decryption
|
|
@@ -122,8 +125,14 @@ export function matchesFilters(email, options) {
|
|
|
122
125
|
}
|
|
123
126
|
// Check custom predicate
|
|
124
127
|
if (options.predicate) {
|
|
125
|
-
|
|
126
|
-
|
|
128
|
+
try {
|
|
129
|
+
if (!options.predicate(email)) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
debug('Error in user predicate function: %O', error);
|
|
135
|
+
return false; // Treat throwing predicate as non-match
|
|
127
136
|
}
|
|
128
137
|
}
|
|
129
138
|
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.
|
|
4
|
-
"description": "Node.js SDK for VaultSandbox Gateway —
|
|
3
|
+
"version": "0.9.1",
|
|
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": {
|