@lenne.tech/nest-server 11.11.1 → 11.13.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.
Files changed (113) hide show
  1. package/dist/config.env.js +1 -0
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/interfaces/server-options.interface.d.ts +16 -0
  4. package/dist/core/modules/auth/core-auth.controller.js +1 -1
  5. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  6. package/dist/core/modules/auth/core-auth.resolver.js +1 -1
  7. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  8. package/dist/core/modules/better-auth/better-auth-token.service.js +1 -4
  9. package/dist/core/modules/better-auth/better-auth-token.service.js.map +1 -1
  10. package/dist/core/modules/better-auth/better-auth.config.d.ts +13 -0
  11. package/dist/core/modules/better-auth/better-auth.config.js +114 -17
  12. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  13. package/dist/core/modules/better-auth/better-auth.resolver.d.ts +7 -3
  14. package/dist/core/modules/better-auth/better-auth.resolver.js +16 -6
  15. package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
  16. package/dist/core/modules/better-auth/core-better-auth-api.middleware.d.ts +4 -2
  17. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js +63 -18
  18. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js.map +1 -1
  19. package/dist/core/modules/better-auth/core-better-auth-auth.model.d.ts +1 -0
  20. package/dist/core/modules/better-auth/core-better-auth-auth.model.js +7 -0
  21. package/dist/core/modules/better-auth/core-better-auth-auth.model.js.map +1 -1
  22. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.d.ts +41 -0
  23. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js +107 -0
  24. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js.map +1 -0
  25. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.d.ts +48 -0
  26. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js +241 -0
  27. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js.map +1 -0
  28. package/dist/core/modules/better-auth/core-better-auth-models.d.ts +2 -1
  29. package/dist/core/modules/better-auth/core-better-auth-models.js +8 -4
  30. package/dist/core/modules/better-auth/core-better-auth-models.js.map +1 -1
  31. package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.d.ts +18 -0
  32. package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.js +82 -0
  33. package/dist/core/modules/better-auth/core-better-auth-signup-validator.service.js.map +1 -0
  34. package/dist/core/modules/better-auth/core-better-auth-token.helper.d.ts +16 -0
  35. package/dist/core/modules/better-auth/core-better-auth-token.helper.js +66 -0
  36. package/dist/core/modules/better-auth/core-better-auth-token.helper.js.map +1 -0
  37. package/dist/core/modules/better-auth/core-better-auth-user.mapper.d.ts +0 -1
  38. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +15 -8
  39. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
  40. package/dist/core/modules/better-auth/core-better-auth-web.helper.d.ts +3 -3
  41. package/dist/core/modules/better-auth/core-better-auth-web.helper.js +64 -44
  42. package/dist/core/modules/better-auth/core-better-auth-web.helper.js.map +1 -1
  43. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +13 -1
  44. package/dist/core/modules/better-auth/core-better-auth.controller.js +108 -49
  45. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
  46. package/dist/core/modules/better-auth/core-better-auth.middleware.d.ts +0 -1
  47. package/dist/core/modules/better-auth/core-better-auth.middleware.js +57 -39
  48. package/dist/core/modules/better-auth/core-better-auth.middleware.js.map +1 -1
  49. package/dist/core/modules/better-auth/core-better-auth.module.d.ts +6 -0
  50. package/dist/core/modules/better-auth/core-better-auth.module.js +129 -24
  51. package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
  52. package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +12 -5
  53. package/dist/core/modules/better-auth/core-better-auth.resolver.js +64 -17
  54. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
  55. package/dist/core/modules/better-auth/core-better-auth.service.d.ts +4 -1
  56. package/dist/core/modules/better-auth/core-better-auth.service.js +143 -23
  57. package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
  58. package/dist/core/modules/better-auth/index.d.ts +4 -0
  59. package/dist/core/modules/better-auth/index.js +4 -0
  60. package/dist/core/modules/better-auth/index.js.map +1 -1
  61. package/dist/core/modules/error-code/error-codes.d.ts +45 -0
  62. package/dist/core/modules/error-code/error-codes.js +40 -0
  63. package/dist/core/modules/error-code/error-codes.js.map +1 -1
  64. package/dist/core/modules/user/core-user.model.d.ts +1 -0
  65. package/dist/core/modules/user/core-user.model.js +11 -0
  66. package/dist/core/modules/user/core-user.model.js.map +1 -1
  67. package/dist/server/modules/better-auth/better-auth.controller.d.ts +3 -1
  68. package/dist/server/modules/better-auth/better-auth.controller.js +12 -3
  69. package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -1
  70. package/dist/server/modules/better-auth/better-auth.resolver.d.ts +7 -3
  71. package/dist/server/modules/better-auth/better-auth.resolver.js +16 -6
  72. package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -1
  73. package/dist/server/modules/error-code/error-codes.d.ts +5 -0
  74. package/dist/server/modules/user/user.model.d.ts +5 -0
  75. package/dist/templates/email-verification-de.ejs +78 -0
  76. package/dist/templates/email-verification-en.ejs +78 -0
  77. package/dist/test/test.helper.d.ts +4 -0
  78. package/dist/test/test.helper.js +54 -1
  79. package/dist/test/test.helper.js.map +1 -1
  80. package/dist/tsconfig.build.tsbuildinfo +1 -1
  81. package/package.json +10 -10
  82. package/src/config.env.ts +2 -0
  83. package/src/core/common/interfaces/server-options.interface.ts +240 -0
  84. package/src/core/modules/auth/core-auth.controller.ts +2 -2
  85. package/src/core/modules/auth/core-auth.resolver.ts +2 -2
  86. package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +113 -0
  87. package/src/core/modules/better-auth/README.md +72 -7
  88. package/src/core/modules/better-auth/better-auth-token.service.ts +5 -8
  89. package/src/core/modules/better-auth/better-auth.config.ts +282 -29
  90. package/src/core/modules/better-auth/better-auth.resolver.ts +16 -5
  91. package/src/core/modules/better-auth/core-better-auth-api.middleware.ts +100 -22
  92. package/src/core/modules/better-auth/core-better-auth-auth.model.ts +10 -0
  93. package/src/core/modules/better-auth/core-better-auth-cookie.helper.ts +323 -0
  94. package/src/core/modules/better-auth/core-better-auth-email-verification.service.ts +433 -0
  95. package/src/core/modules/better-auth/core-better-auth-models.ts +6 -3
  96. package/src/core/modules/better-auth/core-better-auth-signup-validator.service.ts +178 -0
  97. package/src/core/modules/better-auth/core-better-auth-token.helper.ts +200 -0
  98. package/src/core/modules/better-auth/core-better-auth-user.mapper.ts +18 -14
  99. package/src/core/modules/better-auth/core-better-auth-web.helper.ts +119 -69
  100. package/src/core/modules/better-auth/core-better-auth.controller.ts +197 -84
  101. package/src/core/modules/better-auth/core-better-auth.middleware.ts +93 -64
  102. package/src/core/modules/better-auth/core-better-auth.module.ts +215 -38
  103. package/src/core/modules/better-auth/core-better-auth.resolver.ts +140 -20
  104. package/src/core/modules/better-auth/core-better-auth.service.ts +210 -32
  105. package/src/core/modules/better-auth/index.ts +4 -0
  106. package/src/core/modules/error-code/error-codes.ts +45 -0
  107. package/src/core/modules/user/core-user.model.ts +15 -0
  108. package/src/server/modules/better-auth/better-auth.controller.ts +6 -2
  109. package/src/server/modules/better-auth/better-auth.resolver.ts +16 -5
  110. package/src/templates/email-verification-de.ejs +78 -0
  111. package/src/templates/email-verification-en.ejs +78 -0
  112. package/src/test/README.md +190 -0
  113. package/src/test/test.helper.ts +82 -1
@@ -0,0 +1,241 @@
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 CoreBetterAuthEmailVerificationService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CoreBetterAuthEmailVerificationService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const ejs = require("ejs");
19
+ const fs = require("fs");
20
+ const path = require("path");
21
+ const logging_helper_1 = require("../../common/helpers/logging.helper");
22
+ const brevo_service_1 = require("../../common/services/brevo.service");
23
+ const config_service_1 = require("../../common/services/config.service");
24
+ const email_service_1 = require("../../common/services/email.service");
25
+ const template_service_1 = require("../../common/services/template.service");
26
+ const better_auth_config_1 = require("./better-auth.config");
27
+ const DEFAULT_CONFIG = {
28
+ autoSignInAfterVerification: true,
29
+ callbackURL: '/auth/verify-email',
30
+ enabled: true,
31
+ expiresIn: 86400,
32
+ locale: 'en',
33
+ resendCooldownSeconds: 60,
34
+ template: 'email-verification',
35
+ };
36
+ let CoreBetterAuthEmailVerificationService = CoreBetterAuthEmailVerificationService_1 = class CoreBetterAuthEmailVerificationService {
37
+ constructor(configService, emailService, templateService, brevoService) {
38
+ this.configService = configService;
39
+ this.emailService = emailService;
40
+ this.templateService = templateService;
41
+ this.brevoService = brevoService;
42
+ this.logger = new common_1.Logger(CoreBetterAuthEmailVerificationService_1.name);
43
+ this.config = DEFAULT_CONFIG;
44
+ this.lastSendTimes = new Map();
45
+ this.configure();
46
+ }
47
+ isEnabled() {
48
+ return this.config.enabled;
49
+ }
50
+ getConfig() {
51
+ return { ...this.config };
52
+ }
53
+ getExpiresIn() {
54
+ return this.config.expiresIn;
55
+ }
56
+ shouldAutoSignIn() {
57
+ return this.config.autoSignInAfterVerification;
58
+ }
59
+ async sendVerificationEmail(options) {
60
+ const { token, user } = options;
61
+ let { url } = options;
62
+ if (this.isInCooldown(user.email)) {
63
+ this.logger.debug(`Resend cooldown active for ${this.maskEmail(user.email)}, skipping email send`);
64
+ return;
65
+ }
66
+ if (this.config.callbackURL) {
67
+ url = this.buildFrontendVerificationUrl(token);
68
+ }
69
+ console.log(`[EMAIL VERIFICATION] User: ${user.email}, URL: ${url}`);
70
+ if (this.config.brevoTemplateId && this.brevoService) {
71
+ try {
72
+ const appName = this.getAppName();
73
+ await this.brevoService.sendMail(user.email, this.config.brevoTemplateId, {
74
+ appName,
75
+ expiresIn: this.formatExpiresIn(this.config.expiresIn),
76
+ link: url,
77
+ name: user.name || user.email.split('@')[0],
78
+ });
79
+ this.trackSend(user.email);
80
+ this.logger.debug(`Verification email sent via Brevo to ${this.maskEmail(user.email)}`);
81
+ return;
82
+ }
83
+ catch (error) {
84
+ this.logger.error(`Failed to send verification email via Brevo to ${this.maskEmail(user.email)}: ${error instanceof Error ? error.message : 'Unknown error'}`);
85
+ throw error;
86
+ }
87
+ }
88
+ if (!this.emailService) {
89
+ this.logger.warn('EmailService not available, cannot send verification email');
90
+ return;
91
+ }
92
+ try {
93
+ const resolved = await this.resolveTemplatePath(this.config.template, this.config.locale);
94
+ const appName = this.getAppName();
95
+ const templateData = {
96
+ appName,
97
+ expiresIn: this.formatExpiresIn(this.config.expiresIn),
98
+ link: url,
99
+ name: user.name || user.email.split('@')[0],
100
+ };
101
+ if (resolved.isAbsolute) {
102
+ const templateContent = fs.readFileSync(`${resolved.path}.ejs`, 'utf-8');
103
+ const html = ejs.render(templateContent, templateData);
104
+ await this.emailService.sendMail(user.email, this.getEmailSubject(appName), { html });
105
+ }
106
+ else {
107
+ await this.emailService.sendMail(user.email, this.getEmailSubject(appName), {
108
+ htmlTemplate: resolved.path,
109
+ templateData,
110
+ });
111
+ }
112
+ this.trackSend(user.email);
113
+ this.logger.debug(`Verification email sent to ${this.maskEmail(user.email)}`);
114
+ }
115
+ catch (error) {
116
+ this.logger.error(`Failed to send verification email to ${this.maskEmail(user.email)}: ${error instanceof Error ? error.message : 'Unknown error'}`);
117
+ throw error;
118
+ }
119
+ }
120
+ configure() {
121
+ const rawConfig = this.configService.getFastButReadOnly('betterAuth.emailVerification');
122
+ if (rawConfig === false) {
123
+ this.config = { ...DEFAULT_CONFIG, enabled: false };
124
+ return;
125
+ }
126
+ if (!rawConfig || rawConfig === true) {
127
+ this.config = { ...DEFAULT_CONFIG, enabled: true };
128
+ return;
129
+ }
130
+ this.config = {
131
+ ...DEFAULT_CONFIG,
132
+ ...rawConfig,
133
+ enabled: rawConfig.enabled !== false,
134
+ };
135
+ }
136
+ buildFrontendVerificationUrl(token) {
137
+ let baseUrl = this.config.callbackURL;
138
+ if (baseUrl.startsWith('/')) {
139
+ const appUrl = this.configService.getFastButReadOnly('appUrl') || 'http://localhost:3001';
140
+ baseUrl = `${appUrl.replace(/\/$/, '')}${baseUrl}`;
141
+ }
142
+ const separator = baseUrl.includes('?') ? '&' : '?';
143
+ return `${baseUrl}${separator}token=${token}`;
144
+ }
145
+ async resolveTemplatePath(templateName, locale) {
146
+ const projectTemplatesPath = this.configService.getFastButReadOnly('templates.path');
147
+ const nestServerTemplatesPath = path.join(__dirname, '..', '..', '..', 'templates');
148
+ const candidates = [
149
+ { base: projectTemplatesPath, isNestServer: false, name: `${templateName}-${locale}` },
150
+ { base: projectTemplatesPath, isNestServer: false, name: templateName },
151
+ { base: nestServerTemplatesPath, isNestServer: true, name: `${templateName}-${locale}` },
152
+ { base: nestServerTemplatesPath, isNestServer: true, name: templateName },
153
+ ];
154
+ for (const candidate of candidates) {
155
+ if (!candidate.base)
156
+ continue;
157
+ const fullPath = path.join(candidate.base, `${candidate.name}.ejs`);
158
+ if (fs.existsSync(fullPath)) {
159
+ if (candidate.isNestServer) {
160
+ return { isAbsolute: true, path: fullPath.replace('.ejs', '') };
161
+ }
162
+ return { isAbsolute: false, path: candidate.name };
163
+ }
164
+ }
165
+ this.logger.warn(`Template '${templateName}' not found in any location, using fallback`);
166
+ return { isAbsolute: false, path: templateName };
167
+ }
168
+ getAppName() {
169
+ try {
170
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
171
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
172
+ if (packageJson.name) {
173
+ return this.formatProjectName(packageJson.name);
174
+ }
175
+ }
176
+ catch {
177
+ }
178
+ return 'Nest Server';
179
+ }
180
+ formatProjectName(name) {
181
+ return (0, better_auth_config_1.formatProjectName)(name);
182
+ }
183
+ getEmailSubject(appName) {
184
+ const locale = this.config.locale;
185
+ if (locale === 'de') {
186
+ return `${appName} - E-Mail-Adresse bestätigen`;
187
+ }
188
+ return `${appName} - Verify your email address`;
189
+ }
190
+ formatExpiresIn(seconds) {
191
+ const hours = Math.floor(seconds / 3600);
192
+ const locale = this.config.locale;
193
+ if (hours >= 24) {
194
+ const days = Math.floor(hours / 24);
195
+ if (locale === 'de') {
196
+ return days === 1 ? '1 Tag' : `${days} Tage`;
197
+ }
198
+ return days === 1 ? '1 day' : `${days} days`;
199
+ }
200
+ if (locale === 'de') {
201
+ return hours === 1 ? '1 Stunde' : `${hours} Stunden`;
202
+ }
203
+ return hours === 1 ? '1 hour' : `${hours} hours`;
204
+ }
205
+ isInCooldown(email) {
206
+ const cooldown = this.config.resendCooldownSeconds;
207
+ if (cooldown <= 0)
208
+ return false;
209
+ const key = email.toLowerCase();
210
+ const lastSend = this.lastSendTimes.get(key);
211
+ if (!lastSend)
212
+ return false;
213
+ const elapsed = (Date.now() - lastSend) / 1000;
214
+ return elapsed < cooldown;
215
+ }
216
+ trackSend(email) {
217
+ const key = email.toLowerCase();
218
+ this.lastSendTimes.set(key, Date.now());
219
+ const cooldown = this.config.resendCooldownSeconds;
220
+ if (cooldown > 0) {
221
+ setTimeout(() => this.lastSendTimes.delete(key), cooldown * 1000);
222
+ }
223
+ }
224
+ maskEmail(email) {
225
+ return (0, logging_helper_1.maskEmail)(email);
226
+ }
227
+ };
228
+ exports.CoreBetterAuthEmailVerificationService = CoreBetterAuthEmailVerificationService;
229
+ CoreBetterAuthEmailVerificationService.BREVO_SERVICE_TOKEN = 'BETTER_AUTH_BREVO_SERVICE';
230
+ exports.CoreBetterAuthEmailVerificationService = CoreBetterAuthEmailVerificationService = CoreBetterAuthEmailVerificationService_1 = __decorate([
231
+ (0, common_1.Injectable)(),
232
+ __param(1, (0, common_1.Optional)()),
233
+ __param(2, (0, common_1.Optional)()),
234
+ __param(3, (0, common_1.Optional)()),
235
+ __param(3, (0, common_1.Inject)(CoreBetterAuthEmailVerificationService.BREVO_SERVICE_TOKEN)),
236
+ __metadata("design:paramtypes", [config_service_1.ConfigService,
237
+ email_service_1.EmailService,
238
+ template_service_1.TemplateService,
239
+ brevo_service_1.BrevoService])
240
+ ], CoreBetterAuthEmailVerificationService);
241
+ //# sourceMappingURL=core-better-auth-email-verification.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-better-auth-email-verification.service.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-email-verification.service.ts"],"names":[],"mappings":"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"}
@@ -35,9 +35,10 @@ export declare class CoreBetterAuthPasskeyChallengeModel {
35
35
  error?: string;
36
36
  }
37
37
  export declare class CoreBetterAuthFeaturesModel {
38
+ emailVerification: boolean;
38
39
  enabled: boolean;
39
40
  jwt: boolean;
40
- twoFactor: boolean;
41
41
  passkey: boolean;
42
42
  socialProviders: string[];
43
+ twoFactor: boolean;
43
44
  }
@@ -154,6 +154,10 @@ exports.CoreBetterAuthPasskeyChallengeModel = CoreBetterAuthPasskeyChallengeMode
154
154
  let CoreBetterAuthFeaturesModel = class CoreBetterAuthFeaturesModel {
155
155
  };
156
156
  exports.CoreBetterAuthFeaturesModel = CoreBetterAuthFeaturesModel;
157
+ __decorate([
158
+ (0, graphql_1.Field)(() => Boolean, { description: 'Whether email verification is required on sign-up' }),
159
+ __metadata("design:type", Boolean)
160
+ ], CoreBetterAuthFeaturesModel.prototype, "emailVerification", void 0);
157
161
  __decorate([
158
162
  (0, graphql_1.Field)(() => Boolean, { description: 'Whether Better-Auth is enabled' }),
159
163
  __metadata("design:type", Boolean)
@@ -162,10 +166,6 @@ __decorate([
162
166
  (0, graphql_1.Field)(() => Boolean, { description: 'Whether JWT plugin is enabled' }),
163
167
  __metadata("design:type", Boolean)
164
168
  ], CoreBetterAuthFeaturesModel.prototype, "jwt", void 0);
165
- __decorate([
166
- (0, graphql_1.Field)(() => Boolean, { description: 'Whether 2FA is enabled' }),
167
- __metadata("design:type", Boolean)
168
- ], CoreBetterAuthFeaturesModel.prototype, "twoFactor", void 0);
169
169
  __decorate([
170
170
  (0, graphql_1.Field)(() => Boolean, { description: 'Whether Passkey is enabled' }),
171
171
  __metadata("design:type", Boolean)
@@ -174,6 +174,10 @@ __decorate([
174
174
  (0, graphql_1.Field)(() => [String], { description: 'List of enabled social providers' }),
175
175
  __metadata("design:type", Array)
176
176
  ], CoreBetterAuthFeaturesModel.prototype, "socialProviders", void 0);
177
+ __decorate([
178
+ (0, graphql_1.Field)(() => Boolean, { description: 'Whether 2FA is enabled' }),
179
+ __metadata("design:type", Boolean)
180
+ ], CoreBetterAuthFeaturesModel.prototype, "twoFactor", void 0);
177
181
  exports.CoreBetterAuthFeaturesModel = CoreBetterAuthFeaturesModel = __decorate([
178
182
  (0, graphql_1.ObjectType)({ description: 'Better-Auth features status' }),
179
183
  (0, restricted_decorator_1.Restricted)(role_enum_1.RoleEnum.S_EVERYONE)
@@ -1 +1 @@
1
- {"version":3,"file":"core-better-auth-models.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-better-auth-models.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { IBetterAuthSignUpChecksConfig } from '../../common/interfaces/server-options.interface';
3
+ import { ConfigService } from '../../common/services/config.service';
4
+ export interface SignUpValidationInput {
5
+ [key: string]: unknown;
6
+ termsAndPrivacyAccepted?: boolean;
7
+ }
8
+ export declare class CoreBetterAuthSignUpValidatorService {
9
+ protected readonly configService: ConfigService;
10
+ protected readonly logger: Logger;
11
+ protected config: Required<IBetterAuthSignUpChecksConfig>;
12
+ constructor(configService: ConfigService);
13
+ isEnabled(): boolean;
14
+ getConfig(): Required<IBetterAuthSignUpChecksConfig>;
15
+ getRequiredFields(): string[];
16
+ validateSignUpInput(input: SignUpValidationInput): void;
17
+ protected configure(): void;
18
+ }
@@ -0,0 +1,82 @@
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 CoreBetterAuthSignUpValidatorService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CoreBetterAuthSignUpValidatorService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const config_service_1 = require("../../common/services/config.service");
16
+ const error_codes_1 = require("../error-code/error-codes");
17
+ const DEFAULT_CONFIG = {
18
+ enabled: true,
19
+ requiredFields: ['termsAndPrivacyAccepted'],
20
+ };
21
+ let CoreBetterAuthSignUpValidatorService = CoreBetterAuthSignUpValidatorService_1 = class CoreBetterAuthSignUpValidatorService {
22
+ constructor(configService) {
23
+ this.configService = configService;
24
+ this.logger = new common_1.Logger(CoreBetterAuthSignUpValidatorService_1.name);
25
+ this.config = DEFAULT_CONFIG;
26
+ this.configure();
27
+ }
28
+ isEnabled() {
29
+ return this.config.enabled;
30
+ }
31
+ getConfig() {
32
+ return { ...this.config };
33
+ }
34
+ getRequiredFields() {
35
+ return [...this.config.requiredFields];
36
+ }
37
+ validateSignUpInput(input) {
38
+ if (!this.config.enabled) {
39
+ return;
40
+ }
41
+ const missingFields = [];
42
+ for (const field of this.config.requiredFields) {
43
+ const value = input[field];
44
+ if (value === undefined || value === null || value === false || value === '') {
45
+ missingFields.push(field);
46
+ }
47
+ }
48
+ if (missingFields.length > 0) {
49
+ this.logger.debug(`Sign-up validation failed: missing required fields: ${missingFields.join(', ')}`);
50
+ if (missingFields.includes('termsAndPrivacyAccepted')) {
51
+ throw new common_1.BadRequestException(error_codes_1.ErrorCode.SIGNUP_TERMS_NOT_ACCEPTED);
52
+ }
53
+ throw new common_1.BadRequestException(`${error_codes_1.ErrorCode.SIGNUP_MISSING_REQUIRED_FIELDS} - Missing: ${missingFields.join(', ')}`);
54
+ }
55
+ }
56
+ configure() {
57
+ const rawConfig = this.configService.getFastButReadOnly('betterAuth.signUpChecks');
58
+ if (rawConfig === undefined || rawConfig === null || rawConfig === true) {
59
+ this.config = { ...DEFAULT_CONFIG, enabled: true };
60
+ return;
61
+ }
62
+ if (rawConfig === false) {
63
+ this.config = { ...DEFAULT_CONFIG, enabled: false };
64
+ return;
65
+ }
66
+ const enabled = rawConfig.enabled !== false;
67
+ this.config = {
68
+ ...DEFAULT_CONFIG,
69
+ ...rawConfig,
70
+ enabled,
71
+ };
72
+ if (!Array.isArray(this.config.requiredFields)) {
73
+ this.config.requiredFields = DEFAULT_CONFIG.requiredFields;
74
+ }
75
+ }
76
+ };
77
+ exports.CoreBetterAuthSignUpValidatorService = CoreBetterAuthSignUpValidatorService;
78
+ exports.CoreBetterAuthSignUpValidatorService = CoreBetterAuthSignUpValidatorService = CoreBetterAuthSignUpValidatorService_1 = __decorate([
79
+ (0, common_1.Injectable)(),
80
+ __metadata("design:paramtypes", [config_service_1.ConfigService])
81
+ ], CoreBetterAuthSignUpValidatorService);
82
+ //# sourceMappingURL=core-better-auth-signup-validator.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-better-auth-signup-validator.service.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-signup-validator.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare enum TokenType {
2
+ BETTER_AUTH_JWT = "better_auth_jwt",
3
+ LEGACY_JWT = "legacy_jwt",
4
+ SESSION_TOKEN = "session_token",
5
+ UNKNOWN = "unknown"
6
+ }
7
+ export interface TokenAnalysisResult {
8
+ payload?: Record<string, unknown>;
9
+ type: TokenType;
10
+ }
11
+ export declare function analyzeToken(token: string): TokenAnalysisResult;
12
+ export declare function getUserIdFromToken(token: string): null | string;
13
+ export declare function isBetterAuthJwt(token: string): boolean;
14
+ export declare function isJwt(token: string): boolean;
15
+ export declare function isLegacyJwt(token: string): boolean;
16
+ export declare function isSessionToken(token: string): boolean;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenType = void 0;
4
+ exports.analyzeToken = analyzeToken;
5
+ exports.getUserIdFromToken = getUserIdFromToken;
6
+ exports.isBetterAuthJwt = isBetterAuthJwt;
7
+ exports.isJwt = isJwt;
8
+ exports.isLegacyJwt = isLegacyJwt;
9
+ exports.isSessionToken = isSessionToken;
10
+ var TokenType;
11
+ (function (TokenType) {
12
+ TokenType["BETTER_AUTH_JWT"] = "better_auth_jwt";
13
+ TokenType["LEGACY_JWT"] = "legacy_jwt";
14
+ TokenType["SESSION_TOKEN"] = "session_token";
15
+ TokenType["UNKNOWN"] = "unknown";
16
+ })(TokenType || (exports.TokenType = TokenType = {}));
17
+ function analyzeToken(token) {
18
+ if (!token || typeof token !== 'string') {
19
+ return { type: TokenType.UNKNOWN };
20
+ }
21
+ const parts = token.split('.');
22
+ if (parts.length !== 3) {
23
+ return { type: TokenType.SESSION_TOKEN };
24
+ }
25
+ try {
26
+ const payloadStr = Buffer.from(parts[1], 'base64url').toString('utf-8');
27
+ const payload = JSON.parse(payloadStr);
28
+ if (payload.id !== undefined && payload.sub === undefined) {
29
+ return { payload, type: TokenType.LEGACY_JWT };
30
+ }
31
+ if (payload.sub !== undefined) {
32
+ return { payload, type: TokenType.BETTER_AUTH_JWT };
33
+ }
34
+ return { payload, type: TokenType.UNKNOWN };
35
+ }
36
+ catch {
37
+ return { type: TokenType.SESSION_TOKEN };
38
+ }
39
+ }
40
+ function getUserIdFromToken(token) {
41
+ const result = analyzeToken(token);
42
+ if (!result.payload) {
43
+ return null;
44
+ }
45
+ if (result.type === TokenType.LEGACY_JWT) {
46
+ return result.payload.id;
47
+ }
48
+ if (result.type === TokenType.BETTER_AUTH_JWT) {
49
+ return result.payload.sub;
50
+ }
51
+ return null;
52
+ }
53
+ function isBetterAuthJwt(token) {
54
+ return analyzeToken(token).type === TokenType.BETTER_AUTH_JWT;
55
+ }
56
+ function isJwt(token) {
57
+ const result = analyzeToken(token);
58
+ return result.type === TokenType.LEGACY_JWT || result.type === TokenType.BETTER_AUTH_JWT;
59
+ }
60
+ function isLegacyJwt(token) {
61
+ return analyzeToken(token).type === TokenType.LEGACY_JWT;
62
+ }
63
+ function isSessionToken(token) {
64
+ return analyzeToken(token).type === TokenType.SESSION_TOKEN;
65
+ }
66
+ //# sourceMappingURL=core-better-auth-token.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-better-auth-token.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-token.helper.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,6 @@ export declare class CoreBetterAuthUserMapper {
56
56
  private generateId;
57
57
  normalizePasswordForIam(password: string): string;
58
58
  private hashPasswordForBetterAuth;
59
- private bytesToHex;
60
59
  linkOrCreateUser(sessionUser: BetterAuthSessionUser, additionalData?: Record<string, any>): Promise<null | SyncedUserDocument>;
61
60
  syncEmailChangeFromLegacy(oldEmail: string, newEmail: string): Promise<boolean>;
62
61
  syncEmailChangeFromIam(userId: string, newEmail: string): Promise<boolean>;
@@ -236,9 +236,10 @@ let CoreBetterAuthUserMapper = CoreBetterAuthUserMapper_1 = class CoreBetterAuth
236
236
  }
237
237
  generateId() {
238
238
  const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
239
+ const bytes = (0, crypto_1.randomBytes)(21);
239
240
  let result = '';
240
241
  for (let i = 0; i < 21; i++) {
241
- result += chars.charAt(Math.floor(Math.random() * chars.length));
242
+ result += chars.charAt(bytes[i] % chars.length);
242
243
  }
243
244
  return result;
244
245
  }
@@ -262,11 +263,6 @@ let CoreBetterAuthUserMapper = CoreBetterAuthUserMapper_1 = class CoreBetterAuth
262
263
  const key = await scryptPromise(normalizedPassword.normalize('NFKC'), salt, keyLength, scryptOptions);
263
264
  return `${salt}:${key.toString('hex')}`;
264
265
  }
265
- bytesToHex(bytes) {
266
- return Array.from(bytes)
267
- .map((b) => b.toString(16).padStart(2, '0'))
268
- .join('');
269
- }
270
266
  async linkOrCreateUser(sessionUser, additionalData) {
271
267
  if (!sessionUser?.email) {
272
268
  return null;
@@ -280,6 +276,14 @@ let CoreBetterAuthUserMapper = CoreBetterAuthUserMapper_1 = class CoreBetterAuth
280
276
  const existingUser = await userCollection.findOne({
281
277
  $or: [{ email: sessionUser.email }, { iamId: sessionUser.id }],
282
278
  });
279
+ const processedAdditionalData = { ...additionalData };
280
+ if (processedAdditionalData?.termsAndPrivacyAccepted === true) {
281
+ processedAdditionalData.termsAndPrivacyAcceptedAt = new Date();
282
+ delete processedAdditionalData.termsAndPrivacyAccepted;
283
+ }
284
+ else {
285
+ delete processedAdditionalData?.termsAndPrivacyAccepted;
286
+ }
283
287
  const updateData = {
284
288
  email: sessionUser.email,
285
289
  ...(sessionUser.name && { firstName: sessionUser.name.split(' ')[0] }),
@@ -291,7 +295,7 @@ let CoreBetterAuthUserMapper = CoreBetterAuthUserMapper_1 = class CoreBetterAuth
291
295
  ...(sessionUser.image && { avatar: sessionUser.image }),
292
296
  iamId: sessionUser.id,
293
297
  updatedAt: new Date(),
294
- ...additionalData,
298
+ ...processedAdditionalData,
295
299
  };
296
300
  const updateQuery = {
297
301
  $set: updateData,
@@ -323,12 +327,15 @@ let CoreBetterAuthUserMapper = CoreBetterAuthUserMapper_1 = class CoreBetterAuth
323
327
  try {
324
328
  const sessionCollection = this.connection.collection('session');
325
329
  const usersCollection = this.connection.collection('users');
326
- const user = await usersCollection.findOne({ email: newEmail });
330
+ const user = await usersCollection.findOne({
331
+ $or: [{ email: newEmail }, { email: oldEmail }],
332
+ });
327
333
  if (!user) {
328
334
  return false;
329
335
  }
330
336
  if (user._id) {
331
337
  await sessionCollection.deleteMany({ userId: user._id });
338
+ this.logger.debug(`Invalidated sessions for email change: ${(0, logging_helper_1.maskEmail)(oldEmail)} → ${(0, logging_helper_1.maskEmail)(newEmail)}`);
332
339
  }
333
340
  return true;
334
341
  }