@ofeklabs/horizon-auth 1.0.7 → 1.0.8

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.
@@ -41,6 +41,34 @@ let EmailService = EmailService_1 = class EmailService {
41
41
  const html = this.generateEmailVerificationHtml(verificationLink);
42
42
  await this.sendEmail(email, subject, html);
43
43
  }
44
+ async sendOtpEmail(to, otp, expiryMinutes) {
45
+ if (!this.emailConfig) {
46
+ console.log(`Email verification OTP for ${to}: ${otp} (expires in ${expiryMinutes} minutes)`);
47
+ return;
48
+ }
49
+ const subject = 'Verify Your Email Address';
50
+ const html = this.generateOtpEmailHtml(otp, expiryMinutes);
51
+ await this.sendEmail(to, subject, html);
52
+ }
53
+ async sendCombinedVerificationEmail(to, otp, token, expiryMinutes) {
54
+ if (!this.emailConfig) {
55
+ console.log(`Email verification for ${to}:\n OTP: ${otp}\n Token: ${token}\n (expires in ${expiryMinutes} minutes)`);
56
+ return;
57
+ }
58
+ const verificationLink = `${this.getBaseUrl()}/verify-email?token=${token}`;
59
+ const subject = 'Verify Your Email Address';
60
+ const html = this.generateCombinedVerificationEmailHtml(otp, verificationLink, expiryMinutes);
61
+ await this.sendEmail(to, subject, html);
62
+ }
63
+ async sendPasswordResetOtpEmail(to, otp, expiryMinutes) {
64
+ if (!this.emailConfig) {
65
+ console.log(`Password reset OTP for ${to}: ${otp} (expires in ${expiryMinutes} minutes)`);
66
+ return;
67
+ }
68
+ const subject = 'Password Reset Request';
69
+ const html = this.generatePasswordResetOtpEmailHtml(otp, expiryMinutes);
70
+ await this.sendEmail(to, subject, html);
71
+ }
44
72
  async sendEmail(to, subject, html) {
45
73
  if (!this.emailConfig) {
46
74
  throw new Error('Email configuration is not provided');
@@ -158,6 +186,104 @@ let EmailService = EmailService_1 = class EmailService {
158
186
  </html>
159
187
  `;
160
188
  }
189
+ generateOtpEmailHtml(otp, expiryMinutes) {
190
+ return `
191
+ <!DOCTYPE html>
192
+ <html>
193
+ <head>
194
+ <meta charset="utf-8">
195
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
196
+ <title>Verify Your Email Address</title>
197
+ </head>
198
+ <body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px;">
199
+ <div style="background-color: #f4f4f4; padding: 20px; border-radius: 5px;">
200
+ <h2 style="color: #333; margin-top: 0;">Verify Your Email Address</h2>
201
+ <p>Thank you for registering! Please use the verification code below to verify your email address:</p>
202
+ <div style="text-align: center; margin: 30px 0;">
203
+ <div style="background-color: #fff; border: 2px solid #28a745; border-radius: 8px; padding: 20px; display: inline-block;">
204
+ <div style="font-size: 32px; font-weight: bold; letter-spacing: 8px; color: #28a745;">${otp}</div>
205
+ </div>
206
+ </div>
207
+ <p style="text-align: center; font-size: 16px; color: #666;">Enter this code to verify your email</p>
208
+ <p style="color: #666; font-size: 14px; margin-top: 30px;">This code will expire in ${expiryMinutes} minutes.</p>
209
+ <p style="color: #666; font-size: 14px;">If you didn't create an account, please ignore this email.</p>
210
+ </div>
211
+ </body>
212
+ </html>
213
+ `;
214
+ }
215
+ generateCombinedVerificationEmailHtml(otp, verificationLink, expiryMinutes) {
216
+ return `
217
+ <!DOCTYPE html>
218
+ <html>
219
+ <head>
220
+ <meta charset="utf-8">
221
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
222
+ <title>Verify Your Email Address</title>
223
+ </head>
224
+ <body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px;">
225
+ <div style="background-color: #f4f4f4; padding: 20px; border-radius: 5px;">
226
+ <h2 style="color: #333; margin-top: 0;">Verify Your Email Address</h2>
227
+ <p>Thank you for registering! You can verify your email address using either of the two methods below:</p>
228
+
229
+ <!-- Option 1: Verification Code -->
230
+ <div style="background-color: #fff; border-radius: 8px; padding: 20px; margin: 20px 0;">
231
+ <h3 style="color: #333; margin-top: 0; font-size: 18px;">Option 1: Enter Verification Code</h3>
232
+ <p style="margin: 10px 0;">Use this code in the verification form:</p>
233
+ <div style="text-align: center; margin: 20px 0;">
234
+ <div style="background-color: #f8f9fa; border: 2px solid #28a745; border-radius: 8px; padding: 15px; display: inline-block;">
235
+ <div style="font-size: 28px; font-weight: bold; letter-spacing: 6px; color: #28a745;">${otp}</div>
236
+ </div>
237
+ </div>
238
+ </div>
239
+
240
+ <!-- Divider -->
241
+ <div style="text-align: center; margin: 30px 0; color: #999; font-weight: bold;">OR</div>
242
+
243
+ <!-- Option 2: Magic Link -->
244
+ <div style="background-color: #fff; border-radius: 8px; padding: 20px; margin: 20px 0;">
245
+ <h3 style="color: #333; margin-top: 0; font-size: 18px;">Option 2: Click Verification Link</h3>
246
+ <p style="margin: 10px 0;">Click the button below to verify instantly:</p>
247
+ <div style="text-align: center; margin: 20px 0;">
248
+ <a href="${verificationLink}" style="background-color: #28a745; color: white; padding: 12px 30px; text-decoration: none; border-radius: 5px; display: inline-block; font-weight: bold;">Verify Email</a>
249
+ </div>
250
+ <p style="font-size: 14px; color: #666; margin: 10px 0;">Or copy and paste this link into your browser:</p>
251
+ <p style="word-break: break-all; color: #28a745; font-size: 12px;">${verificationLink}</p>
252
+ </div>
253
+
254
+ <p style="color: #666; font-size: 14px; margin-top: 30px; text-align: center;">Both methods will expire in ${expiryMinutes} minutes.</p>
255
+ <p style="color: #666; font-size: 14px; text-align: center;">If you didn't create an account, please ignore this email.</p>
256
+ </div>
257
+ </body>
258
+ </html>
259
+ `;
260
+ }
261
+ generatePasswordResetOtpEmailHtml(otp, expiryMinutes) {
262
+ return `
263
+ <!DOCTYPE html>
264
+ <html>
265
+ <head>
266
+ <meta charset="utf-8">
267
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
268
+ <title>Password Reset Request</title>
269
+ </head>
270
+ <body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px;">
271
+ <div style="background-color: #f4f4f4; padding: 20px; border-radius: 5px;">
272
+ <h2 style="color: #333; margin-top: 0;">Password Reset Request</h2>
273
+ <p>You requested to reset your password. Please use the verification code below to proceed:</p>
274
+ <div style="text-align: center; margin: 30px 0;">
275
+ <div style="background-color: #fff; border: 2px solid #007bff; border-radius: 8px; padding: 20px; display: inline-block;">
276
+ <div style="font-size: 32px; font-weight: bold; letter-spacing: 8px; color: #007bff;">${otp}</div>
277
+ </div>
278
+ </div>
279
+ <p style="text-align: center; font-size: 16px; color: #666;">Enter this code to reset your password</p>
280
+ <p style="color: #666; font-size: 14px; margin-top: 30px;">This code will expire in ${expiryMinutes} minutes.</p>
281
+ <p style="color: #666; font-size: 14px;">If you didn't request this password reset, please ignore this email.</p>
282
+ </div>
283
+ </body>
284
+ </html>
285
+ `;
286
+ }
161
287
  };
162
288
  exports.EmailService = EmailService;
163
289
  exports.EmailService = EmailService = EmailService_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../../src/auth/services/email.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../../src/auth/services/email.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
+ export interface EmailVerificationConfig {
2
+ method: 'otp' | 'magic-link' | 'both';
3
+ otpLength?: number;
4
+ otpExpiry?: number;
5
+ tokenExpiry?: number;
6
+ }
7
+ export interface PasswordResetConfig {
8
+ method: 'otp' | 'magic-link' | 'both';
9
+ otpLength?: number;
10
+ otpExpiry?: number;
11
+ tokenExpiry?: number;
12
+ }
1
13
  export interface HorizonAuthConfig {
2
14
  ssoMode?: boolean;
3
15
  authServiceUrl?: string;
@@ -50,6 +62,8 @@ export interface HorizonAuthConfig {
50
62
  from: string;
51
63
  customSender?: (to: string, subject: string, html: string) => Promise<void>;
52
64
  };
65
+ emailVerification?: EmailVerificationConfig;
66
+ passwordReset?: PasswordResetConfig;
53
67
  security?: {
54
68
  bcryptMigration?: boolean;
55
69
  cookieSecure?: boolean;
@@ -92,6 +92,28 @@ let HorizonAuthModule = HorizonAuthModule_1 = class HorizonAuthModule {
92
92
  if (!config.jwt.privateKey.includes('BEGIN') || !config.jwt.publicKey.includes('BEGIN')) {
93
93
  throw new Error('HorizonAuth: JWT keys must be in PEM format');
94
94
  }
95
+ if (config.emailVerification) {
96
+ const validMethods = ['otp', 'magic-link', 'both'];
97
+ if (!validMethods.includes(config.emailVerification.method)) {
98
+ throw new Error('HorizonAuth: emailVerification.method must be one of: otp, magic-link, both');
99
+ }
100
+ if (config.emailVerification.otpLength !== undefined) {
101
+ if (config.emailVerification.otpLength < 4 || config.emailVerification.otpLength > 8) {
102
+ throw new Error('HorizonAuth: emailVerification.otpLength must be between 4 and 8');
103
+ }
104
+ }
105
+ }
106
+ if (config.passwordReset) {
107
+ const validMethods = ['otp', 'magic-link', 'both'];
108
+ if (!validMethods.includes(config.passwordReset.method)) {
109
+ throw new Error('HorizonAuth: passwordReset.method must be one of: otp, magic-link, both');
110
+ }
111
+ if (config.passwordReset.otpLength !== undefined) {
112
+ if (config.passwordReset.otpLength < 4 || config.passwordReset.otpLength > 8) {
113
+ throw new Error('HorizonAuth: passwordReset.otpLength must be between 4 and 8');
114
+ }
115
+ }
116
+ }
95
117
  }
96
118
  static applyDefaults(config) {
97
119
  return {
@@ -121,6 +143,33 @@ let HorizonAuthModule = HorizonAuthModule_1 = class HorizonAuthModule {
121
143
  register: config.rateLimit?.register || { limit: 3, ttl: 60 },
122
144
  passwordReset: config.rateLimit?.passwordReset || { limit: 3, ttl: 3600 },
123
145
  },
146
+ emailVerification: config.emailVerification ? {
147
+ method: config.emailVerification.method || 'otp',
148
+ otpLength: config.emailVerification.otpLength || 6,
149
+ otpExpiry: config.emailVerification.otpExpiry || 10,
150
+ tokenExpiry: config.emailVerification.tokenExpiry || 24,
151
+ } : {
152
+ method: 'otp',
153
+ otpLength: 6,
154
+ otpExpiry: 10,
155
+ tokenExpiry: 24,
156
+ },
157
+ passwordReset: config.passwordReset ? {
158
+ method: config.passwordReset.method || config.emailVerification?.method || 'otp',
159
+ otpLength: config.passwordReset.otpLength || config.emailVerification?.otpLength || 6,
160
+ otpExpiry: config.passwordReset.otpExpiry || config.emailVerification?.otpExpiry || 10,
161
+ tokenExpiry: config.passwordReset.tokenExpiry || config.emailVerification?.tokenExpiry || 24,
162
+ } : config.emailVerification ? {
163
+ method: config.emailVerification.method || 'otp',
164
+ otpLength: config.emailVerification.otpLength || 6,
165
+ otpExpiry: config.emailVerification.otpExpiry || 10,
166
+ tokenExpiry: config.emailVerification.tokenExpiry || 24,
167
+ } : {
168
+ method: 'otp',
169
+ otpLength: 6,
170
+ otpExpiry: 10,
171
+ tokenExpiry: 24,
172
+ },
124
173
  security: {
125
174
  bcryptMigration: config.security?.bcryptMigration || false,
126
175
  cookieSecure: config.security?.cookieSecure ?? (process.env.NODE_ENV === 'production'),
@@ -1 +1 @@
1
- {"version":3,"file":"horizon-auth.module.js","sourceRoot":"","sources":["../../src/lib/horizon-auth.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"horizon-auth.module.js","sourceRoot":"","sources":["../../src/lib/horizon-auth.module.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,8 @@ export declare class PushTokenService {
12
12
  id: string;
13
13
  createdAt: Date;
14
14
  updatedAt: Date;
15
- userId: string;
16
15
  token: string;
16
+ userId: string;
17
17
  deviceId: string;
18
18
  tokenType: string;
19
19
  active: boolean;
@@ -22,8 +22,8 @@ export declare class PushTokenService {
22
22
  id: string;
23
23
  createdAt: Date;
24
24
  updatedAt: Date;
25
- userId: string;
26
25
  token: string;
26
+ userId: string;
27
27
  deviceId: string;
28
28
  tokenType: string;
29
29
  active: boolean;
@@ -41,8 +41,8 @@ export declare class PushTokenService {
41
41
  id: string;
42
42
  createdAt: Date;
43
43
  updatedAt: Date;
44
- userId: string;
45
44
  token: string;
45
+ userId: string;
46
46
  deviceId: string;
47
47
  tokenType: string;
48
48
  active: boolean;
@@ -28,7 +28,14 @@ export declare class SocialAuthService {
28
28
  fullName: string | null;
29
29
  passwordHash: string | null;
30
30
  emailVerified: boolean;
31
+ emailVerificationOtp: string | null;
32
+ emailVerificationSentAt: Date | null;
33
+ emailVerificationExpiresAt: Date | null;
34
+ emailVerificationAttempts: number;
31
35
  emailVerifyToken: string | null;
36
+ passwordResetOtp: string | null;
37
+ passwordResetOtpExpiresAt: Date | null;
38
+ passwordResetOtpAttempts: number;
32
39
  resetToken: string | null;
33
40
  resetTokenExpiry: Date | null;
34
41
  tenantId: string;