@ofeklabs/horizon-auth 1.0.6 → 1.0.7

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 CHANGED
@@ -306,6 +306,12 @@ interface HorizonAuthConfig {
306
306
  };
307
307
 
308
308
  // Optional
309
+ email?: {
310
+ from: string; // Sender email address
311
+ customSender?: (to: string, subject: string, html: string) => Promise<void>;
312
+ provider?: 'resend' | 'sendgrid';
313
+ apiKey?: string; // Required if using provider
314
+ };
309
315
  multiTenant?: {
310
316
  enabled: boolean;
311
317
  tenantIdExtractor?: 'header' | 'subdomain' | 'custom';
@@ -322,6 +328,67 @@ interface HorizonAuthConfig {
322
328
  }
323
329
  ```
324
330
 
331
+ ## Email Configuration
332
+
333
+ The package supports email sending for password resets and email verification. You can use a custom sender function or one of the supported providers.
334
+
335
+ ### Provider Setup
336
+
337
+ **Important**: You must install the SDK for your chosen email provider:
338
+
339
+ ```bash
340
+ # For Resend
341
+ npm install resend
342
+
343
+ # For SendGrid
344
+ npm install @sendgrid/mail
345
+ ```
346
+
347
+ ### Using Resend
348
+
349
+ ```typescript
350
+ HorizonAuthModule.forRoot({
351
+ // ... other config
352
+ email: {
353
+ from: 'noreply@yourdomain.com',
354
+ provider: 'resend',
355
+ apiKey: process.env.RESEND_API_KEY,
356
+ },
357
+ });
358
+ ```
359
+
360
+ ### Using SendGrid
361
+
362
+ ```typescript
363
+ HorizonAuthModule.forRoot({
364
+ // ... other config
365
+ email: {
366
+ from: 'noreply@yourdomain.com',
367
+ provider: 'sendgrid',
368
+ apiKey: process.env.SENDGRID_API_KEY,
369
+ },
370
+ });
371
+ ```
372
+
373
+ ### Using Custom Sender
374
+
375
+ ```typescript
376
+ HorizonAuthModule.forRoot({
377
+ // ... other config
378
+ email: {
379
+ from: 'noreply@yourdomain.com',
380
+ customSender: async (to: string, subject: string, html: string) => {
381
+ // Your custom email sending logic
382
+ await yourEmailService.send({ to, subject, html });
383
+ },
384
+ },
385
+ });
386
+ ```
387
+
388
+ ### Development Mode
389
+
390
+ If no email configuration is provided, tokens will be logged to the console for development purposes.
391
+
325
392
  ## Decorators
326
393
 
327
394
  ### @Public()
@@ -18,6 +18,7 @@ const auth_controller_1 = require("./auth.controller");
18
18
  const jwks_controller_1 = require("./jwks.controller");
19
19
  const password_service_1 = require("./services/password.service");
20
20
  const token_service_1 = require("./services/token.service");
21
+ const email_service_1 = require("./services/email.service");
21
22
  const jwt_strategy_1 = require("./strategies/jwt.strategy");
22
23
  const jwt_sso_strategy_1 = require("./strategies/jwt-sso.strategy");
23
24
  const jwt_auth_guard_1 = require("./guards/jwt-auth.guard");
@@ -82,6 +83,7 @@ let AuthModule = AuthModule_1 = class AuthModule {
82
83
  auth_service_1.AuthService,
83
84
  password_service_1.PasswordService,
84
85
  token_service_1.TokenService,
86
+ email_service_1.EmailService,
85
87
  jwt_strategy_1.JwtStrategy,
86
88
  jwt_auth_guard_1.JwtAuthGuard,
87
89
  roles_guard_1.RolesGuard,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qCAAwC;AACxC,+CAAkD;AAClD,iDAAoD;AACpD,uCAAoD;AACpD,iDAA6C;AAC7C,uDAAmD;AACnD,uDAAmD;AACnD,kEAA8D;AAC9D,4DAAwD;AACxD,4DAAwD;AACxD,oEAA+D;AAC/D,4DAAuD;AACvD,sDAAkD;AAClD,wDAAoD;AACpD,wDAAoD;AAEpD,uEAAkE;AAClE,4DAAwD;AACxD,wEAAmE;AACnE,8DAA0D;AAC1D,0EAAqE;AAI9D,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAIrB,MAAM,CAAC,UAAU;QACf,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,yBAAc;gBACd,eAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;aACvB;YACD,SAAS,EAAE;gBACT,gBAAS;gBACT,iCAAc;gBACd,6BAAY;gBACZ,wBAAU;aACX;YACD,OAAO,EAAE,CAAC,6BAAY,EAAE,wBAAU,EAAE,gBAAS,CAAC;SAC/C,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,WAAW,CAAC,MAA0B;QAC3C,MAAM,OAAO,GAAU;YACrB,yBAAc;YACd,eAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,2BAAe,CAAC,OAAO,CAAC;gBACtB;oBACE,GAAG,EAAE,KAAK;oBACV,KAAK,EAAE,EAAE;iBACV;aACF,CAAC;YACF,0BAAW;YACX,0BAAW;YACX,mCAAe;SAChB,CAAC;QAGF,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;QAElC,IAAI,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,4BAAY,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,mCAAe,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,qCAAgB,CAAC,CAAC;QACjC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO;YACP,WAAW,EAAE,CAAC,gCAAc,EAAE,gCAAc,CAAC;YAC7C,SAAS,EAAE;gBACT,gBAAS;gBACT,0BAAW;gBACX,kCAAe;gBACf,4BAAY;gBACZ,0BAAW;gBACX,6BAAY;gBACZ,wBAAU;aACX;YACD,OAAO,EAAE,CAAC,0BAAW,EAAE,6BAAY,EAAE,wBAAU,EAAE,gBAAS,CAAC;SAC5D,CAAC;IACJ,CAAC;CACF,CAAA;AA1EY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CA0EtB"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../src/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qCAAwC;AACxC,+CAAkD;AAClD,iDAAoD;AACpD,uCAAoD;AACpD,iDAA6C;AAC7C,uDAAmD;AACnD,uDAAmD;AACnD,kEAA8D;AAC9D,4DAAwD;AACxD,4DAAwD;AACxD,4DAAwD;AACxD,oEAA+D;AAC/D,4DAAuD;AACvD,sDAAkD;AAClD,wDAAoD;AACpD,wDAAoD;AAEpD,uEAAkE;AAClE,4DAAwD;AACxD,wEAAmE;AACnE,8DAA0D;AAC1D,0EAAqE;AAI9D,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAIrB,MAAM,CAAC,UAAU;QACf,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,yBAAc;gBACd,eAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;aACvB;YACD,SAAS,EAAE;gBACT,gBAAS;gBACT,iCAAc;gBACd,6BAAY;gBACZ,wBAAU;aACX;YACD,OAAO,EAAE,CAAC,6BAAY,EAAE,wBAAU,EAAE,gBAAS,CAAC;SAC/C,CAAC;IACJ,CAAC;IAKD,MAAM,CAAC,WAAW,CAAC,MAA0B;QAC3C,MAAM,OAAO,GAAU;YACrB,yBAAc;YACd,eAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,2BAAe,CAAC,OAAO,CAAC;gBACtB;oBACE,GAAG,EAAE,KAAK;oBACV,KAAK,EAAE,EAAE;iBACV;aACF,CAAC;YACF,0BAAW;YACX,0BAAW;YACX,mCAAe;SAChB,CAAC;QAGF,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;QAElC,IAAI,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,4BAAY,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,mCAAe,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,QAAQ,EAAE,WAAW,EAAE,MAAM,IAAI,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,qCAAgB,CAAC,CAAC;QACjC,CAAC;QAED,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO;YACP,WAAW,EAAE,CAAC,gCAAc,EAAE,gCAAc,CAAC;YAC7C,SAAS,EAAE;gBACT,gBAAS;gBACT,0BAAW;gBACX,kCAAe;gBACf,4BAAY;gBACZ,4BAAY;gBACZ,0BAAW;gBACX,6BAAY;gBACZ,wBAAU;aACX;YACD,OAAO,EAAE,CAAC,0BAAW,EAAE,6BAAY,EAAE,wBAAU,EAAE,gBAAS,CAAC;SAC5D,CAAC;IACJ,CAAC;CACF,CAAA;AA3EY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CA2EtB"}
@@ -5,6 +5,7 @@ import { RedisService } from '../redis/redis.service';
5
5
  import { PrismaClient } from '@prisma/client';
6
6
  import { TwoFactorService } from '../two-factor/two-factor.service';
7
7
  import { DeviceService } from '../devices/device.service';
8
+ import { EmailService } from './services/email.service';
8
9
  export interface AuthResult {
9
10
  user: SafeUser;
10
11
  accessToken: string;
@@ -21,8 +22,9 @@ export declare class AuthService {
21
22
  private readonly redisService;
22
23
  private readonly twoFactorService?;
23
24
  private readonly deviceService?;
25
+ private readonly emailService?;
24
26
  private readonly prisma;
25
- constructor(usersService: UsersService, passwordService: PasswordService, tokenService: TokenService, redisService: RedisService, prisma: PrismaClient, twoFactorService?: TwoFactorService | undefined, deviceService?: DeviceService | undefined);
27
+ constructor(usersService: UsersService, passwordService: PasswordService, tokenService: TokenService, redisService: RedisService, prisma: PrismaClient, twoFactorService?: TwoFactorService | undefined, deviceService?: DeviceService | undefined, emailService?: EmailService | undefined);
26
28
  register(email: string, password: string, fullName?: string, tenantId?: string): Promise<AuthResult>;
27
29
  login(email: string, password: string, deviceInfo?: {
28
30
  userAgent?: string;
@@ -21,16 +21,18 @@ const redis_service_1 = require("../redis/redis.service");
21
21
  const client_1 = require("@prisma/client");
22
22
  const two_factor_service_1 = require("../two-factor/two-factor.service");
23
23
  const device_service_1 = require("../devices/device.service");
24
+ const email_service_1 = require("./services/email.service");
24
25
  const exceptions_1 = require("../common/exceptions");
25
26
  const constants_1 = require("../common/constants");
26
27
  let AuthService = class AuthService {
27
- constructor(usersService, passwordService, tokenService, redisService, prisma, twoFactorService, deviceService) {
28
+ constructor(usersService, passwordService, tokenService, redisService, prisma, twoFactorService, deviceService, emailService) {
28
29
  this.usersService = usersService;
29
30
  this.passwordService = passwordService;
30
31
  this.tokenService = tokenService;
31
32
  this.redisService = redisService;
32
33
  this.twoFactorService = twoFactorService;
33
34
  this.deviceService = deviceService;
35
+ this.emailService = emailService;
34
36
  this.prisma = prisma;
35
37
  console.log('🔍 AuthService constructor - prisma type:', prisma?.constructor?.name);
36
38
  console.log('🔍 AuthService constructor - prisma defined:', !!prisma);
@@ -47,6 +49,9 @@ let AuthService = class AuthService {
47
49
  if (fullName) {
48
50
  await this.usersService.update(user.id, { fullName });
49
51
  }
52
+ if (this.emailService && user.emailVerifyToken) {
53
+ await this.emailService.sendEmailVerificationEmail(email, user.emailVerifyToken);
54
+ }
50
55
  const accessToken = this.tokenService.generateAccessToken({
51
56
  sub: user.id,
52
57
  email: user.email,
@@ -247,7 +252,12 @@ let AuthService = class AuthService {
247
252
  }
248
253
  async requestPasswordReset(email) {
249
254
  const resetToken = await this.usersService.generateResetToken(email);
250
- console.log(`Password reset token for ${email}: ${resetToken}`);
255
+ if (this.emailService) {
256
+ await this.emailService.sendPasswordResetEmail(email, resetToken);
257
+ }
258
+ else {
259
+ console.log(`Password reset token for ${email}: ${resetToken}`);
260
+ }
251
261
  }
252
262
  async resetPassword(token, newPassword) {
253
263
  if (newPassword.length < 8) {
@@ -267,12 +277,14 @@ exports.AuthService = AuthService = __decorate([
267
277
  __param(4, (0, common_1.Inject)(constants_1.PRISMA_CLIENT_TOKEN)),
268
278
  __param(5, (0, common_1.Optional)()),
269
279
  __param(6, (0, common_1.Optional)()),
280
+ __param(7, (0, common_1.Optional)()),
270
281
  __metadata("design:paramtypes", [users_service_1.UsersService,
271
282
  password_service_1.PasswordService,
272
283
  token_service_1.TokenService,
273
284
  redis_service_1.RedisService,
274
285
  client_1.PrismaClient,
275
286
  two_factor_service_1.TwoFactorService,
276
- device_service_1.DeviceService])
287
+ device_service_1.DeviceService,
288
+ email_service_1.EmailService])
277
289
  ], AuthService);
278
290
  //# sourceMappingURL=auth.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { HorizonAuthConfig } from '../../lib/horizon-auth-config.interface';
2
+ export declare class EmailService {
3
+ private readonly config;
4
+ private readonly logger;
5
+ private readonly emailConfig?;
6
+ constructor(config: HorizonAuthConfig);
7
+ sendPasswordResetEmail(email: string, resetToken: string): Promise<void>;
8
+ sendEmailVerificationEmail(email: string, verificationToken: string): Promise<void>;
9
+ private sendEmail;
10
+ private sendWithResend;
11
+ private sendWithSendGrid;
12
+ private getBaseUrl;
13
+ private generatePasswordResetEmailHtml;
14
+ private generateEmailVerificationHtml;
15
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var EmailService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.EmailService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ let EmailService = EmailService_1 = class EmailService {
19
+ constructor(config) {
20
+ this.config = config;
21
+ this.logger = new common_1.Logger(EmailService_1.name);
22
+ this.emailConfig = config.email;
23
+ }
24
+ async sendPasswordResetEmail(email, resetToken) {
25
+ if (!this.emailConfig) {
26
+ console.log(`Password reset token for ${email}: ${resetToken}`);
27
+ return;
28
+ }
29
+ const resetLink = `${this.getBaseUrl()}/reset-password?token=${resetToken}`;
30
+ const subject = 'Password Reset Request';
31
+ const html = this.generatePasswordResetEmailHtml(resetLink);
32
+ await this.sendEmail(email, subject, html);
33
+ }
34
+ async sendEmailVerificationEmail(email, verificationToken) {
35
+ if (!this.emailConfig) {
36
+ console.log(`Email verification token for ${email}: ${verificationToken}`);
37
+ return;
38
+ }
39
+ const verificationLink = `${this.getBaseUrl()}/verify-email?token=${verificationToken}`;
40
+ const subject = 'Verify Your Email Address';
41
+ const html = this.generateEmailVerificationHtml(verificationLink);
42
+ await this.sendEmail(email, subject, html);
43
+ }
44
+ async sendEmail(to, subject, html) {
45
+ if (!this.emailConfig) {
46
+ throw new Error('Email configuration is not provided');
47
+ }
48
+ if (this.emailConfig.customSender) {
49
+ await this.emailConfig.customSender(to, subject, html);
50
+ this.logger.log(`Email sent to ${to} using custom sender`);
51
+ return;
52
+ }
53
+ if (this.emailConfig.provider === 'resend') {
54
+ await this.sendWithResend(to, subject, html);
55
+ }
56
+ else if (this.emailConfig.provider === 'sendgrid') {
57
+ await this.sendWithSendGrid(to, subject, html);
58
+ }
59
+ else {
60
+ throw new Error(`Unsupported email provider: ${this.emailConfig.provider}`);
61
+ }
62
+ }
63
+ async sendWithResend(to, subject, html) {
64
+ if (!this.emailConfig?.apiKey) {
65
+ throw new Error('Resend API key is not configured');
66
+ }
67
+ try {
68
+ const resendModule = await Function('return import("resend")')().catch(() => {
69
+ throw new Error('Resend package is not installed. Install it with: npm install resend');
70
+ });
71
+ const Resend = resendModule.Resend;
72
+ const resend = new Resend(this.emailConfig.apiKey);
73
+ await resend.emails.send({
74
+ from: this.emailConfig.from,
75
+ to,
76
+ subject,
77
+ html,
78
+ });
79
+ this.logger.log(`Email sent to ${to} using Resend`);
80
+ }
81
+ catch (error) {
82
+ this.logger.error(`Failed to send email via Resend: ${error.message}`);
83
+ throw new Error(`Failed to send email: ${error.message}`);
84
+ }
85
+ }
86
+ async sendWithSendGrid(to, subject, html) {
87
+ if (!this.emailConfig?.apiKey) {
88
+ throw new Error('SendGrid API key is not configured');
89
+ }
90
+ try {
91
+ const sgMailModule = await Function('return import("@sendgrid/mail")')().catch(() => {
92
+ throw new Error('SendGrid package is not installed. Install it with: npm install @sendgrid/mail');
93
+ });
94
+ const sgMail = sgMailModule.default;
95
+ sgMail.setApiKey(this.emailConfig.apiKey);
96
+ await sgMail.send({
97
+ from: this.emailConfig.from,
98
+ to,
99
+ subject,
100
+ html,
101
+ });
102
+ this.logger.log(`Email sent to ${to} using SendGrid`);
103
+ }
104
+ catch (error) {
105
+ this.logger.error(`Failed to send email via SendGrid: ${error.message}`);
106
+ throw new Error(`Failed to send email: ${error.message}`);
107
+ }
108
+ }
109
+ getBaseUrl() {
110
+ return process.env.APP_URL || 'http://localhost:3000';
111
+ }
112
+ generatePasswordResetEmailHtml(resetLink) {
113
+ return `
114
+ <!DOCTYPE html>
115
+ <html>
116
+ <head>
117
+ <meta charset="utf-8">
118
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
119
+ <title>Password Reset Request</title>
120
+ </head>
121
+ <body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px;">
122
+ <div style="background-color: #f4f4f4; padding: 20px; border-radius: 5px;">
123
+ <h2 style="color: #333; margin-top: 0;">Password Reset Request</h2>
124
+ <p>You requested to reset your password. Click the button below to reset it:</p>
125
+ <div style="text-align: center; margin: 30px 0;">
126
+ <a href="${resetLink}" style="background-color: #007bff; color: white; padding: 12px 30px; text-decoration: none; border-radius: 5px; display: inline-block;">Reset Password</a>
127
+ </div>
128
+ <p>Or copy and paste this link into your browser:</p>
129
+ <p style="word-break: break-all; color: #007bff;">${resetLink}</p>
130
+ <p style="color: #666; font-size: 14px; margin-top: 30px;">This link will expire in 1 hour.</p>
131
+ <p style="color: #666; font-size: 14px;">If you didn't request this password reset, please ignore this email.</p>
132
+ </div>
133
+ </body>
134
+ </html>
135
+ `;
136
+ }
137
+ generateEmailVerificationHtml(verificationLink) {
138
+ return `
139
+ <!DOCTYPE html>
140
+ <html>
141
+ <head>
142
+ <meta charset="utf-8">
143
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
144
+ <title>Verify Your Email Address</title>
145
+ </head>
146
+ <body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px;">
147
+ <div style="background-color: #f4f4f4; padding: 20px; border-radius: 5px;">
148
+ <h2 style="color: #333; margin-top: 0;">Verify Your Email Address</h2>
149
+ <p>Thank you for registering! Please verify your email address by clicking the button below:</p>
150
+ <div style="text-align: center; margin: 30px 0;">
151
+ <a href="${verificationLink}" style="background-color: #28a745; color: white; padding: 12px 30px; text-decoration: none; border-radius: 5px; display: inline-block;">Verify Email</a>
152
+ </div>
153
+ <p>Or copy and paste this link into your browser:</p>
154
+ <p style="word-break: break-all; color: #28a745;">${verificationLink}</p>
155
+ <p style="color: #666; font-size: 14px; margin-top: 30px;">If you didn't create an account, please ignore this email.</p>
156
+ </div>
157
+ </body>
158
+ </html>
159
+ `;
160
+ }
161
+ };
162
+ exports.EmailService = EmailService;
163
+ exports.EmailService = EmailService = EmailService_1 = __decorate([
164
+ (0, common_1.Injectable)(),
165
+ __param(0, (0, common_1.Inject)('HORIZON_AUTH_CONFIG')),
166
+ __metadata("design:paramtypes", [Object])
167
+ ], EmailService);
168
+ //# sourceMappingURL=email.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../../src/auth/services/email.service.ts"],"names":[],"mappings":"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"}