@studiosonrai/nestjs-email 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # @studiosonrai/nestjs-email
2
+
3
+ Email module for NestJS with SMTP, Azure Communication Service, and Resend support.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @studiosonrai/nestjs-email
9
+
10
+ # For SMTP:
11
+ npm install nodemailer
12
+
13
+ # For Azure:
14
+ npm install @azure/communication-email
15
+
16
+ # For Resend:
17
+ npm install resend
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ### SMTP
23
+
24
+ ```typescript
25
+ import { EmailModule, EmailService } from '@studiosonrai/nestjs-email';
26
+
27
+ @Module({
28
+ imports: [
29
+ EmailModule.forRootAsync({
30
+ inject: [ConfigService],
31
+ useFactory: (config: ConfigService) => ({
32
+ provider: 'smtp',
33
+ smtp: {
34
+ host: config.get('SMTP_HOST'),
35
+ port: config.get('SMTP_PORT'),
36
+ auth: { user: config.get('SMTP_USER'), pass: config.get('SMTP_PASS') },
37
+ },
38
+ defaultFrom: config.get('MAIL_FROM'),
39
+ }),
40
+ }),
41
+ ],
42
+ })
43
+ export class AppModule {}
44
+ ```
45
+
46
+ ### Resend
47
+
48
+ ```typescript
49
+ @Module({
50
+ imports: [
51
+ EmailModule.forRootAsync({
52
+ inject: [ConfigService],
53
+ useFactory: (config: ConfigService) => ({
54
+ provider: 'resend',
55
+ resend: {
56
+ apiKey: config.get('RESEND_API_KEY'),
57
+ },
58
+ defaultFrom: config.get('MAIL_FROM'),
59
+ }),
60
+ }),
61
+ ],
62
+ })
63
+ export class AppModule {}
64
+ ```
65
+
66
+ ### Sending Emails
67
+
68
+ ```typescript
69
+ // Inject and use
70
+ @Injectable()
71
+ export class MyService {
72
+ constructor(private emailService: EmailService) {}
73
+
74
+ async send() {
75
+ await this.emailService.sendEmail('to@example.com', 'Subject', '<p>Body</p>');
76
+ }
77
+ }
78
+ ```
79
+
80
+ ## Configuration
81
+
82
+ | Option | Type | Description |
83
+ |--------|------|-------------|
84
+ | `provider` | `'smtp' \| 'azure' \| 'resend'` | Email provider |
85
+ | `smtp` | `{ host, port, secure?, auth? }` | SMTP config |
86
+ | `azure` | `{ connectionString, senderAddress }` | Azure config |
87
+ | `resend` | `{ apiKey }` | Resend config |
88
+ | `defaultFrom` | `string` | Default sender address |
89
+ | `imageCompression` | `{ enabled, maxWidth?, quality? }` | Compress inline images |
90
+ | `verbose` | `boolean` | Enable logging |
@@ -13,6 +13,7 @@ const email_service_1 = require("./email.service");
13
13
  const email_constants_1 = require("./email.constants");
14
14
  const smtp_provider_1 = require("./providers/smtp.provider");
15
15
  const azure_provider_1 = require("./providers/azure.provider");
16
+ const resend_provider_1 = require("./providers/resend.provider");
16
17
  function createEmailProvider(options) {
17
18
  const providerOptions = {
18
19
  defaultFrom: options.defaultFrom,
@@ -31,6 +32,12 @@ function createEmailProvider(options) {
31
32
  }
32
33
  return new azure_provider_1.AzureEmailProvider(options.azure, providerOptions);
33
34
  }
35
+ if (options.provider === 'resend') {
36
+ if (!options.resend) {
37
+ throw new Error('Resend configuration is required when provider is "resend"');
38
+ }
39
+ return new resend_provider_1.ResendEmailProvider(options.resend, providerOptions);
40
+ }
34
41
  throw new Error(`Unknown email provider: ${options.provider}`);
35
42
  }
36
43
  let EmailModule = EmailModule_1 = class EmailModule {
@@ -1 +1 @@
1
- {"version":3,"file":"email.module.js","sourceRoot":"","sources":["../../src/email.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email.module.js","sourceRoot":"","sources":["../../src/email.module.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ exports.EmailService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const email_constants_1 = require("./email.constants");
18
18
  let EmailService = class EmailService {
19
+ options;
20
+ provider;
19
21
  constructor(options, provider) {
20
22
  this.options = options;
21
23
  this.provider = provider;
@@ -1 +1 @@
1
- {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../src/email.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkF;AAQlF,uDAAyE;AAMlE,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YAEmB,OAA2B,EAE3B,QAAuB;QAFvB,YAAO,GAAP,OAAO,CAAoB;QAE3B,aAAQ,GAAR,QAAQ,CAAe;IACvC,CAAC;IAUJ,KAAK,CAAC,SAAS,CACb,EAAqB,EACrB,OAAe,EACf,IAAY,EACZ,WAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3C,EAAE;YACF,OAAO;YACP,IAAI,EAAE,IAAI;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACF,CAAA;AA7EY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,sCAAoB,CAAC,CAAA;IAE5B,WAAA,IAAA,eAAM,EAAC,gCAAc,CAAC,CAAA;;GAJd,YAAY,CA6ExB"}
1
+ {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../src/email.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkF;AAQlF,uDAAyE;AAMlE,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGJ;IAEA;IAJnB,YAEmB,OAA2B,EAE3B,QAAuB;QAFvB,YAAO,GAAP,OAAO,CAAoB;QAE3B,aAAQ,GAAR,QAAQ,CAAe;IACvC,CAAC;IAUJ,KAAK,CAAC,SAAS,CACb,EAAqB,EACrB,OAAe,EACf,IAAY,EACZ,WAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC3C,EAAE;YACF,OAAO;YACP,IAAI,EAAE,IAAI;YACV,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,qCAA4B,CACpC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAChD,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,KAAK,CAAC,OAAO,CAAC,OAAyB;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAKD,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAKD,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,CAAC;CACF,CAAA;AA7EY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,sCAAoB,CAAC,CAAA;IAE5B,WAAA,IAAA,eAAM,EAAC,gCAAc,CAAC,CAAA;;GAJd,YAAY,CA6ExB"}
@@ -5,3 +5,4 @@ export * from './template.service';
5
5
  export * from './interfaces/email.interfaces';
6
6
  export * from './providers/smtp.provider';
7
7
  export * from './providers/azure.provider';
8
+ export * from './providers/resend.provider';
package/dist/src/index.js CHANGED
@@ -21,4 +21,5 @@ __exportStar(require("./template.service"), exports);
21
21
  __exportStar(require("./interfaces/email.interfaces"), exports);
22
22
  __exportStar(require("./providers/smtp.provider"), exports);
23
23
  __exportStar(require("./providers/azure.provider"), exports);
24
+ __exportStar(require("./providers/resend.provider"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,iDAA+B;AAC/B,kDAAgC;AAChC,oDAAkC;AAClC,qDAAmC;AAGnC,gEAA8C;AAG9C,4DAA0C;AAC1C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,iDAA+B;AAC/B,kDAAgC;AAChC,oDAAkC;AAClC,qDAAmC;AAGnC,gEAA8C;AAG9C,4DAA0C;AAC1C,6DAA2C;AAC3C,8DAA4C"}
@@ -40,16 +40,20 @@ export interface AzureEmailConfig {
40
40
  connectionString: string;
41
41
  senderAddress: string;
42
42
  }
43
+ export interface ResendEmailConfig {
44
+ apiKey: string;
45
+ }
43
46
  export interface ImageCompressionOptions {
44
47
  enabled: boolean;
45
48
  maxWidth?: number;
46
49
  quality?: number;
47
50
  }
48
- export type EmailProviderType = 'smtp' | 'azure';
51
+ export type EmailProviderType = 'smtp' | 'azure' | 'resend';
49
52
  export interface EmailModuleOptions {
50
53
  provider: EmailProviderType;
51
54
  smtp?: SmtpTransportConfig;
52
55
  azure?: AzureEmailConfig;
56
+ resend?: ResendEmailConfig;
53
57
  defaultFrom?: string;
54
58
  imageCompression?: ImageCompressionOptions;
55
59
  verbose?: boolean;
@@ -35,8 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.AzureEmailProvider = void 0;
37
37
  class AzureEmailProvider {
38
+ emailClient;
39
+ senderAddress;
40
+ ready = false;
41
+ imageCompression;
42
+ verbose;
38
43
  constructor(config, options) {
39
- this.ready = false;
40
44
  this.senderAddress = config.senderAddress;
41
45
  this.imageCompression = options?.imageCompression;
42
46
  this.verbose = options?.verbose ?? false;
@@ -1 +1 @@
1
- {"version":3,"file":"azure.provider.js","sourceRoot":"","sources":["../../../src/providers/azure.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure.provider.js","sourceRoot":"","sources":["../../../src/providers/azure.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const azure_provider_1 = require("./azure.provider");
4
+ describe('AzureEmailProvider Integration', () => {
5
+ let provider;
6
+ const config = {
7
+ connectionString: process.env.AZURE_EMAIL_CONNECTION_STRING || '',
8
+ senderAddress: process.env.AZURE_EMAIL_SENDER || '',
9
+ };
10
+ const testRecipient = process.env.TEST_EMAIL_TO || 'test@example.com';
11
+ beforeAll(async () => {
12
+ if (!config.connectionString) {
13
+ throw new Error('Azure connection string is required (AZURE_EMAIL_CONNECTION_STRING)');
14
+ }
15
+ if (!config.senderAddress) {
16
+ throw new Error('Azure sender address is required (AZURE_EMAIL_SENDER)');
17
+ }
18
+ provider = new azure_provider_1.AzureEmailProvider(config, {
19
+ verbose: true,
20
+ });
21
+ await new Promise((resolve) => setTimeout(resolve, 500));
22
+ });
23
+ it('should initialize successfully', () => {
24
+ expect(provider.isReady()).toBe(true);
25
+ });
26
+ it('should send a simple email', async () => {
27
+ const result = await provider.sendEmail({
28
+ to: testRecipient,
29
+ subject: `[Azure Test] Simple Email - ${new Date().toISOString()}`,
30
+ html: '<h1>Test Email</h1><p>This is a test email sent via Azure Communication Service.</p>',
31
+ text: 'Test Email\n\nThis is a test email sent via Azure Communication Service.',
32
+ });
33
+ expect(result.success).toBe(true);
34
+ expect(result.messageId).toBeDefined();
35
+ console.log('Message ID:', result.messageId);
36
+ }, 30000);
37
+ it('should send email with custom from address', async () => {
38
+ const result = await provider.sendEmail({
39
+ to: testRecipient,
40
+ from: config.senderAddress,
41
+ subject: `[Azure Test] Custom From - ${new Date().toISOString()}`,
42
+ html: '<p>Email with custom from address.</p>',
43
+ });
44
+ expect(result.success).toBe(true);
45
+ expect(result.messageId).toBeDefined();
46
+ }, 30000);
47
+ it('should send email with cc', async () => {
48
+ const result = await provider.sendEmail({
49
+ to: testRecipient,
50
+ cc: testRecipient,
51
+ subject: `[Azure Test] CC Test - ${new Date().toISOString()}`,
52
+ html: '<p>Email with CC recipient.</p>',
53
+ });
54
+ expect(result.success).toBe(true);
55
+ expect(result.messageId).toBeDefined();
56
+ }, 30000);
57
+ it('should send email with replyTo', async () => {
58
+ const result = await provider.sendEmail({
59
+ to: testRecipient,
60
+ replyTo: testRecipient,
61
+ subject: `[Azure Test] Reply-To Test - ${new Date().toISOString()}`,
62
+ html: '<p>Email with reply-to address.</p>',
63
+ });
64
+ expect(result.success).toBe(true);
65
+ expect(result.messageId).toBeDefined();
66
+ }, 30000);
67
+ it('should send email with attachment', async () => {
68
+ const result = await provider.sendEmail({
69
+ to: testRecipient,
70
+ subject: `[Azure Test] Attachment Test - ${new Date().toISOString()}`,
71
+ html: '<p>Email with attachment.</p>',
72
+ attachments: [
73
+ {
74
+ filename: 'test.txt',
75
+ content: Buffer.from('This is a test attachment content.'),
76
+ contentType: 'text/plain',
77
+ },
78
+ ],
79
+ });
80
+ expect(result.success).toBe(true);
81
+ expect(result.messageId).toBeDefined();
82
+ }, 30000);
83
+ });
84
+ //# sourceMappingURL=azure.provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.provider.spec.js","sourceRoot":"","sources":["../../../src/providers/azure.provider.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './smtp.provider';
2
2
  export * from './azure.provider';
3
+ export * from './resend.provider';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./smtp.provider"), exports);
18
18
  __exportStar(require("./azure.provider"), exports);
19
+ __exportStar(require("./resend.provider"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,oDAAkC"}
@@ -0,0 +1,17 @@
1
+ import { EmailProvider, SendEmailOptions, SendEmailResult, ResendEmailConfig, ImageCompressionOptions } from '../interfaces/email.interfaces';
2
+ export declare class ResendEmailProvider implements EmailProvider {
3
+ private resendClient;
4
+ private ready;
5
+ private defaultFrom?;
6
+ private imageCompression?;
7
+ private verbose;
8
+ constructor(config: ResendEmailConfig, options?: {
9
+ defaultFrom?: string;
10
+ imageCompression?: ImageCompressionOptions;
11
+ verbose?: boolean;
12
+ });
13
+ private initializeClient;
14
+ private compressAttachment;
15
+ sendEmail(options: SendEmailOptions): Promise<SendEmailResult>;
16
+ isReady(): boolean;
17
+ }
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ResendEmailProvider = void 0;
37
+ class ResendEmailProvider {
38
+ resendClient;
39
+ ready = false;
40
+ defaultFrom;
41
+ imageCompression;
42
+ verbose;
43
+ constructor(config, options) {
44
+ this.defaultFrom = options?.defaultFrom;
45
+ this.imageCompression = options?.imageCompression;
46
+ this.verbose = options?.verbose ?? false;
47
+ this.initializeClient(config.apiKey);
48
+ }
49
+ async initializeClient(apiKey) {
50
+ try {
51
+ const { Resend } = await Promise.resolve().then(() => __importStar(require('resend')));
52
+ this.resendClient = new Resend(apiKey);
53
+ this.ready = true;
54
+ if (this.verbose) {
55
+ console.log('[EmailModule] Resend provider initialized');
56
+ }
57
+ }
58
+ catch (error) {
59
+ console.error('[EmailModule] Failed to initialize Resend provider:', error);
60
+ throw new Error('Failed to initialize Resend provider. Make sure resend is installed.');
61
+ }
62
+ }
63
+ async compressAttachment(attachment) {
64
+ if (!this.imageCompression?.enabled) {
65
+ return attachment;
66
+ }
67
+ if (!attachment.contentType?.startsWith('image/')) {
68
+ return attachment;
69
+ }
70
+ try {
71
+ const sharp = (await Promise.resolve().then(() => __importStar(require('sharp')))).default;
72
+ const buffer = attachment.content instanceof Buffer
73
+ ? attachment.content
74
+ : Buffer.from(attachment.content, 'base64');
75
+ const compressedBuffer = await sharp(buffer)
76
+ .resize({
77
+ width: this.imageCompression.maxWidth ?? 1200,
78
+ withoutEnlargement: true,
79
+ })
80
+ .jpeg({ quality: this.imageCompression.quality ?? 75 })
81
+ .toBuffer();
82
+ return {
83
+ ...attachment,
84
+ content: compressedBuffer,
85
+ contentType: 'image/jpeg',
86
+ };
87
+ }
88
+ catch (error) {
89
+ if (this.verbose) {
90
+ console.warn(`[EmailModule] Failed to compress ${attachment.filename}, sending original.`);
91
+ }
92
+ return attachment;
93
+ }
94
+ }
95
+ async sendEmail(options) {
96
+ if (!this.resendClient) {
97
+ return {
98
+ success: false,
99
+ error: new Error('Resend client not initialized'),
100
+ };
101
+ }
102
+ try {
103
+ let processedAttachments = [];
104
+ if (options.attachments?.length) {
105
+ processedAttachments = await Promise.all(options.attachments.map((att) => this.compressAttachment(att)));
106
+ }
107
+ if (processedAttachments.length > 0) {
108
+ const totalSize = processedAttachments.reduce((acc, att) => {
109
+ const size = att.content instanceof Buffer
110
+ ? att.content.length
111
+ : Buffer.byteLength(att.content, 'base64');
112
+ return acc + size;
113
+ }, 0);
114
+ if (totalSize > 40 * 1024 * 1024) {
115
+ return {
116
+ success: false,
117
+ error: new Error('Attachments exceed Resend 40MB email size limit'),
118
+ };
119
+ }
120
+ }
121
+ const emailOptions = {
122
+ from: options.from ?? this.defaultFrom,
123
+ to: Array.isArray(options.to) ? options.to : [options.to],
124
+ subject: options.subject,
125
+ };
126
+ if (options.html) {
127
+ emailOptions.html = options.html;
128
+ }
129
+ if (options.text) {
130
+ emailOptions.text = options.text;
131
+ }
132
+ if (options.cc) {
133
+ emailOptions.cc = Array.isArray(options.cc) ? options.cc : [options.cc];
134
+ }
135
+ if (options.bcc) {
136
+ emailOptions.bcc = Array.isArray(options.bcc) ? options.bcc : [options.bcc];
137
+ }
138
+ if (options.replyTo) {
139
+ emailOptions.replyTo = options.replyTo;
140
+ }
141
+ if (processedAttachments.length > 0) {
142
+ emailOptions.attachments = processedAttachments.map((att) => ({
143
+ filename: att.filename,
144
+ content: att.content instanceof Buffer
145
+ ? att.content
146
+ : Buffer.from(att.content, 'base64'),
147
+ }));
148
+ }
149
+ const { data, error } = await this.resendClient.emails.send(emailOptions);
150
+ if (error) {
151
+ console.error('[EmailModule] Resend send error:', error);
152
+ return {
153
+ success: false,
154
+ error: new Error(error.message || 'Resend send failed'),
155
+ };
156
+ }
157
+ if (this.verbose) {
158
+ console.log(`[EmailModule] Email sent successfully via Resend to ${options.to}`);
159
+ }
160
+ return {
161
+ success: true,
162
+ messageId: data?.id,
163
+ };
164
+ }
165
+ catch (error) {
166
+ console.error('[EmailModule] Resend send error:', error);
167
+ return {
168
+ success: false,
169
+ error: error instanceof Error ? error : new Error(String(error)),
170
+ };
171
+ }
172
+ }
173
+ isReady() {
174
+ return this.ready;
175
+ }
176
+ }
177
+ exports.ResendEmailProvider = ResendEmailProvider;
178
+ //# sourceMappingURL=resend.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resend.provider.js","sourceRoot":"","sources":["../../../src/providers/resend.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};