@bernierllc/email-sender 5.1.1 → 5.2.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.
Files changed (37) hide show
  1. package/dist/core/email-sender.d.ts.map +1 -1
  2. package/dist/core/email-sender.js +6 -0
  3. package/dist/core/email-sender.js.map +1 -1
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +5 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/providers/mailgun.d.ts +1 -1
  9. package/dist/providers/mailgun.d.ts.map +1 -1
  10. package/dist/providers/mailgun.js +17 -0
  11. package/dist/providers/mailgun.js.map +1 -1
  12. package/dist/providers/mandrill.d.ts +26 -0
  13. package/dist/providers/mandrill.d.ts.map +1 -0
  14. package/dist/providers/mandrill.js +319 -0
  15. package/dist/providers/mandrill.js.map +1 -0
  16. package/dist/providers/postmark.d.ts +1 -1
  17. package/dist/providers/postmark.d.ts.map +1 -1
  18. package/dist/providers/postmark.js +16 -1
  19. package/dist/providers/postmark.js.map +1 -1
  20. package/dist/providers/sendgrid.d.ts.map +1 -1
  21. package/dist/providers/sendgrid.js +19 -5
  22. package/dist/providers/sendgrid.js.map +1 -1
  23. package/dist/providers/ses.d.ts.map +1 -1
  24. package/dist/providers/ses.js +12 -5
  25. package/dist/providers/ses.js.map +1 -1
  26. package/dist/providers/smtp.d.ts.map +1 -1
  27. package/dist/providers/smtp.js +20 -1
  28. package/dist/providers/smtp.js.map +1 -1
  29. package/dist/providers/smtp2go.d.ts +27 -0
  30. package/dist/providers/smtp2go.d.ts.map +1 -0
  31. package/dist/providers/smtp2go.js +277 -0
  32. package/dist/providers/smtp2go.js.map +1 -0
  33. package/dist/types/index.d.ts +13 -1
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/index.js +10 -1
  36. package/dist/types/index.js.map +1 -1
  37. package/package.json +1 -1
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (c) 2025 Bernier LLC
4
+
5
+ This file is licensed to the client under a limited-use license.
6
+ The client may use and modify this code *only within the scope of the project it was delivered for*.
7
+ Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.Smtp2goProvider = void 0;
11
+ /**
12
+ * SMTP2GO Email Provider
13
+ * Handles email sending through SMTP2GO REST API
14
+ */
15
+ const base_1 = require("./base");
16
+ const types_1 = require("../types");
17
+ class Smtp2goProvider extends base_1.EmailProvider {
18
+ constructor(config) {
19
+ super(config);
20
+ this.baseUrl = 'https://api.smtp2go.com/v3';
21
+ }
22
+ async sendEmail(message) {
23
+ try {
24
+ const payload = this.buildSendPayload(message);
25
+ const response = await fetch(`${this.baseUrl}/email/send`, {
26
+ method: 'POST',
27
+ headers: {
28
+ 'Content-Type': 'application/json',
29
+ },
30
+ body: JSON.stringify(payload),
31
+ });
32
+ if (!response.ok) {
33
+ const errorText = await response.text();
34
+ throw new Error(`SMTP2GO API error: ${response.status} - ${errorText}`);
35
+ }
36
+ const result = await response.json();
37
+ if (result.data.failed > 0) {
38
+ throw new Error(`SMTP2GO send failed: ${result.data.failures.join(', ')}`);
39
+ }
40
+ return {
41
+ success: true,
42
+ messageId: result.request_id,
43
+ providerResponse: result,
44
+ metadata: {
45
+ provider: 'smtp2go',
46
+ timestamp: new Date().toISOString(),
47
+ },
48
+ };
49
+ }
50
+ catch (error) {
51
+ return {
52
+ success: false,
53
+ errorMessage: this.formatError(error),
54
+ providerResponse: error,
55
+ metadata: {
56
+ provider: 'smtp2go',
57
+ timestamp: new Date().toISOString(),
58
+ },
59
+ };
60
+ }
61
+ }
62
+ async sendBatch(emails) {
63
+ const results = [];
64
+ for (const email of emails) {
65
+ const result = await this.sendEmail(email);
66
+ results.push(result);
67
+ }
68
+ return results;
69
+ }
70
+ async getDeliveryStatus(messageId) {
71
+ try {
72
+ const payload = {
73
+ api_key: this.config.apiKey,
74
+ search: { message_id: messageId },
75
+ };
76
+ const response = await fetch(`${this.baseUrl}/activity/search`, {
77
+ method: 'POST',
78
+ headers: {
79
+ 'Content-Type': 'application/json',
80
+ },
81
+ body: JSON.stringify(payload),
82
+ });
83
+ if (!response.ok) {
84
+ return null;
85
+ }
86
+ const result = await response.json();
87
+ const emails = result.data?.emails ?? [];
88
+ if (emails.length === 0) {
89
+ return {
90
+ messageId,
91
+ status: 'pending',
92
+ metadata: {
93
+ provider: 'smtp2go',
94
+ },
95
+ };
96
+ }
97
+ const latest = emails[0];
98
+ const status = this.mapStatus(latest.status);
99
+ return {
100
+ messageId,
101
+ status,
102
+ ...(status === 'delivered' && { deliveredAt: new Date(latest.date) }),
103
+ metadata: {
104
+ provider: 'smtp2go',
105
+ event: latest.status,
106
+ },
107
+ };
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ }
113
+ async processWebhook(payload, _signature) {
114
+ const events = [];
115
+ const normalize = (item) => {
116
+ const event = {
117
+ messageId: item.message_id ?? '',
118
+ eventType: item.event ?? 'unknown',
119
+ timestamp: item.timestamp
120
+ ? new Date(typeof item.timestamp === 'number'
121
+ ? item.timestamp * 1000
122
+ : item.timestamp)
123
+ : new Date(),
124
+ email: item.email ?? '',
125
+ metadata: { provider: 'smtp2go' },
126
+ };
127
+ if (item.reason !== undefined)
128
+ event.reason = item.reason;
129
+ if (item.response !== undefined)
130
+ event.response = item.response;
131
+ return event;
132
+ };
133
+ if (Array.isArray(payload)) {
134
+ for (const item of payload) {
135
+ events.push(normalize(item));
136
+ }
137
+ }
138
+ else if (payload && typeof payload === 'object') {
139
+ events.push(normalize(payload));
140
+ }
141
+ return events;
142
+ }
143
+ validateConfiguration() {
144
+ const errors = [];
145
+ const warnings = [];
146
+ const cfg = this.config;
147
+ if (!cfg.apiKey) {
148
+ errors.push('SMTP2GO API key is required');
149
+ }
150
+ if (!cfg.fromEmail) {
151
+ errors.push('From email is required');
152
+ }
153
+ return {
154
+ isValid: errors.length === 0,
155
+ errors,
156
+ warnings,
157
+ };
158
+ }
159
+ getCapabilities() {
160
+ const features = {
161
+ sendEmail: { source: 'provider', description: 'Send email via SMTP2GO REST API', overridable: false },
162
+ batchSend: { source: 'provider', description: 'Sequential batch sending', limitations: '1000 recipients per call', overridable: false },
163
+ webhooksReceive: { source: 'provider', description: 'Event webhooks for delivery tracking', overridable: false },
164
+ deliveryTracking: { source: 'provider', description: 'Delivery event tracking via activity search API', overridable: false },
165
+ attachments: { source: 'provider', description: 'File attachments up to 50MB', overridable: false },
166
+ };
167
+ return {
168
+ supportsBatch: true,
169
+ supportsTemplates: false,
170
+ supportsWebhooks: true,
171
+ supportsAttachments: true,
172
+ supportsCustomHeaders: true,
173
+ supportsDeliveryTracking: true,
174
+ maxBatchSize: 1000,
175
+ maxAttachmentSize: 50 * 1024 * 1024, // 50MB
176
+ features,
177
+ };
178
+ }
179
+ buildSendPayload(message) {
180
+ const cfg = this.config;
181
+ const payload = {
182
+ api_key: cfg.apiKey,
183
+ to: [message.toEmail],
184
+ sender: message.fromEmail ?? cfg.fromEmail,
185
+ subject: message.subject,
186
+ };
187
+ if (message.htmlContent) {
188
+ payload.html_body = message.htmlContent;
189
+ }
190
+ if (message.textContent) {
191
+ payload.text_body = message.textContent;
192
+ }
193
+ if (message.cc && message.cc.length > 0) {
194
+ payload.cc = message.cc.map(types_1.formatEmailContact);
195
+ }
196
+ if (message.bcc && message.bcc.length > 0) {
197
+ payload.bcc = message.bcc.map(types_1.formatEmailContact);
198
+ }
199
+ if (message.replyTo) {
200
+ payload.custom_headers = [
201
+ ...(payload.custom_headers ?? []),
202
+ { header: 'Reply-To', value: message.replyTo },
203
+ ];
204
+ }
205
+ if (message.headers && Object.keys(message.headers).length > 0) {
206
+ const headerEntries = Object.entries(message.headers).map(([header, value]) => ({
207
+ header,
208
+ value,
209
+ }));
210
+ payload.custom_headers = [...(payload.custom_headers ?? []), ...headerEntries];
211
+ }
212
+ if (message.attachments && message.attachments.length > 0) {
213
+ payload.attachments = message.attachments.map((a) => ({
214
+ filename: a.filename,
215
+ fileblob: a.content,
216
+ mimetype: a.contentType ?? 'application/octet-stream',
217
+ }));
218
+ }
219
+ if (message.priority) {
220
+ const p = types_1.EMAIL_PRIORITY_MAP[message.priority];
221
+ payload.custom_headers = [...(payload.custom_headers ?? []), { header: 'X-Priority', value: p.xp }, { header: 'X-MSMail-Priority', value: p.ms }];
222
+ }
223
+ if (message.metadata) {
224
+ const metaHeaders = Object.entries(message.metadata).map(([key, value]) => ({ header: `X-Metadata-${key}`, value: String(value) }));
225
+ payload.custom_headers = [...(payload.custom_headers ?? []), ...metaHeaders];
226
+ }
227
+ return payload;
228
+ }
229
+ mapStatus(status) {
230
+ switch (status) {
231
+ case 'delivered':
232
+ return 'delivered';
233
+ case 'bounced':
234
+ case 'bounce':
235
+ return 'bounced';
236
+ case 'failed':
237
+ case 'rejected':
238
+ return 'failed';
239
+ case 'queued':
240
+ case 'processing':
241
+ return 'pending';
242
+ case 'sent':
243
+ return 'sent';
244
+ case 'opened':
245
+ case 'open':
246
+ return 'opened';
247
+ case 'clicked':
248
+ case 'click':
249
+ return 'clicked';
250
+ case 'spam':
251
+ case 'spam_complaint':
252
+ return 'spam';
253
+ case 'unsubscribed':
254
+ case 'unsub':
255
+ return 'unsubscribed';
256
+ default:
257
+ return 'sent';
258
+ }
259
+ }
260
+ formatError(error) {
261
+ if (error && typeof error === 'object' && 'message' in error) {
262
+ const msg = error.message;
263
+ if (msg.includes('401'))
264
+ return 'Invalid SMTP2GO API key';
265
+ if (msg.includes('403'))
266
+ return 'Access denied - check API key permissions';
267
+ if (msg.includes('404'))
268
+ return 'SMTP2GO resource not found';
269
+ if (msg.includes('422'))
270
+ return 'Invalid email parameters';
271
+ return msg;
272
+ }
273
+ return 'Unknown SMTP2GO error';
274
+ }
275
+ }
276
+ exports.Smtp2goProvider = Smtp2goProvider;
277
+ //# sourceMappingURL=smtp2go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp2go.js","sourceRoot":"","sources":["../../src/providers/smtp2go.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,15 @@
2
2
  * Email sender type definitions
3
3
  */
4
4
  import { z } from 'zod';
5
+ export interface EmailContactInfo {
6
+ email: string;
7
+ name?: string;
8
+ }
9
+ export declare function formatEmailContact(contact: EmailContactInfo): string;
10
+ export declare const EMAIL_PRIORITY_MAP: Record<'high' | 'normal' | 'low', {
11
+ xp: string;
12
+ ms: string;
13
+ }>;
5
14
  export interface EmailMessage {
6
15
  toEmail: string;
7
16
  toName?: string;
@@ -14,6 +23,9 @@ export interface EmailMessage {
14
23
  headers?: Record<string, string>;
15
24
  attachments?: EmailAttachment[];
16
25
  metadata?: Record<string, any>;
26
+ cc?: EmailContactInfo[];
27
+ bcc?: EmailContactInfo[];
28
+ priority?: 'low' | 'normal' | 'high';
17
29
  }
18
30
  export interface EmailAttachment {
19
31
  filename: string;
@@ -56,7 +68,7 @@ export interface WebhookEvent {
56
68
  metadata?: Record<string, any>;
57
69
  }
58
70
  export interface EmailProviderConfig {
59
- provider: 'sendgrid' | 'ses' | 'mailgun' | 'postmark' | 'smtp';
71
+ provider: 'sendgrid' | 'ses' | 'mailgun' | 'postmark' | 'smtp' | 'mandrill' | 'smtp2go';
60
72
  apiKey?: string;
61
73
  secretKey?: string;
62
74
  domain?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,OAAO,CAAC;QAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC;IACjH,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,wBAAwB,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;AAEpF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;IACtD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,20 @@ The client may use and modify this code *only within the scope of the project it
7
7
  Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.capabilityEntrySchema = exports.degradationInfoSchema = void 0;
10
+ exports.capabilityEntrySchema = exports.degradationInfoSchema = exports.EMAIL_PRIORITY_MAP = void 0;
11
+ exports.formatEmailContact = formatEmailContact;
11
12
  /**
12
13
  * Email sender type definitions
13
14
  */
14
15
  const zod_1 = require("zod");
16
+ function formatEmailContact(contact) {
17
+ return contact.name ? `${contact.name} <${contact.email}>` : contact.email;
18
+ }
19
+ exports.EMAIL_PRIORITY_MAP = {
20
+ high: { xp: '1', ms: 'High' },
21
+ normal: { xp: '3', ms: 'Normal' },
22
+ low: { xp: '5', ms: 'Low' },
23
+ };
15
24
  exports.degradationInfoSchema = zod_1.z.object({
16
25
  strategy: zod_1.z.string(),
17
26
  description: zod_1.z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;AAEF;;GAEG;AAEH,6BAAwB;AAgGX,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAIU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACnE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,6BAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxD,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;AAaF,gDAEC;AAbD;;GAEG;AAEH,6BAAwB;AAOxB,SAAgB,kBAAkB,CAAC,OAAyB;IAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7E,CAAC;AAEY,QAAA,kBAAkB,GAAkE;IAC/F,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;IAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE;IACjC,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;CAC5B,CAAC;AAmGW,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAIU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACnE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,6BAAqB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxD,WAAW,EAAE,OAAC,CAAC,OAAO,EAAE;CACzB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bernierllc/email-sender",
3
- "version": "5.1.1",
3
+ "version": "5.2.1",
4
4
  "description": "Email sending with provider-agnostic interface and SendGrid advanced features (templates, verified senders, rate limiting)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",