@lenne.tech/nest-server 11.10.1 → 11.10.3

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 (75) hide show
  1. package/dist/config.env.js +16 -133
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/interfaces/server-options.interface.d.ts +4 -0
  4. package/dist/core/modules/auth/guards/auth.guard.d.ts +2 -2
  5. package/dist/core/modules/auth/guards/auth.guard.js +68 -8
  6. package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
  7. package/dist/core/modules/auth/guards/roles.guard.d.ts +3 -4
  8. package/dist/core/modules/auth/guards/roles.guard.js +64 -159
  9. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  10. package/dist/core/modules/better-auth/better-auth-token.service.d.ts +21 -0
  11. package/dist/core/modules/better-auth/better-auth-token.service.js +153 -0
  12. package/dist/core/modules/better-auth/better-auth-token.service.js.map +1 -0
  13. package/dist/core/modules/better-auth/better-auth.config.d.ts +3 -0
  14. package/dist/core/modules/better-auth/better-auth.config.js +176 -47
  15. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  16. package/dist/core/modules/better-auth/better-auth.types.d.ts +13 -0
  17. package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
  18. package/dist/core/modules/better-auth/core-better-auth-api.middleware.d.ts +5 -1
  19. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js +101 -8
  20. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js.map +1 -1
  21. package/dist/core/modules/better-auth/core-better-auth-challenge.service.d.ts +20 -0
  22. package/dist/core/modules/better-auth/core-better-auth-challenge.service.js +142 -0
  23. package/dist/core/modules/better-auth/core-better-auth-challenge.service.js.map +1 -0
  24. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +1 -1
  25. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
  26. package/dist/core/modules/better-auth/core-better-auth-web.helper.d.ts +2 -0
  27. package/dist/core/modules/better-auth/core-better-auth-web.helper.js +29 -1
  28. package/dist/core/modules/better-auth/core-better-auth-web.helper.js.map +1 -1
  29. package/dist/core/modules/better-auth/core-better-auth.controller.js +5 -13
  30. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
  31. package/dist/core/modules/better-auth/core-better-auth.middleware.d.ts +0 -1
  32. package/dist/core/modules/better-auth/core-better-auth.middleware.js +6 -19
  33. package/dist/core/modules/better-auth/core-better-auth.middleware.js.map +1 -1
  34. package/dist/core/modules/better-auth/core-better-auth.module.d.ts +6 -1
  35. package/dist/core/modules/better-auth/core-better-auth.module.js +82 -19
  36. package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
  37. package/dist/core/modules/better-auth/core-better-auth.resolver.js +7 -6
  38. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
  39. package/dist/core/modules/better-auth/core-better-auth.service.d.ts +1 -2
  40. package/dist/core/modules/better-auth/core-better-auth.service.js +27 -37
  41. package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
  42. package/dist/core/modules/better-auth/index.d.ts +1 -0
  43. package/dist/core/modules/better-auth/index.js +1 -0
  44. package/dist/core/modules/better-auth/index.js.map +1 -1
  45. package/dist/core.module.js +4 -0
  46. package/dist/core.module.js.map +1 -1
  47. package/dist/server/modules/better-auth/better-auth.module.d.ts +4 -1
  48. package/dist/server/modules/better-auth/better-auth.module.js +4 -1
  49. package/dist/server/modules/better-auth/better-auth.module.js.map +1 -1
  50. package/dist/server/server.module.js +1 -4
  51. package/dist/server/server.module.js.map +1 -1
  52. package/dist/tsconfig.build.tsbuildinfo +1 -1
  53. package/package.json +1 -1
  54. package/src/config.env.ts +24 -174
  55. package/src/core/common/interfaces/server-options.interface.ts +288 -35
  56. package/src/core/modules/auth/guards/auth.guard.ts +136 -23
  57. package/src/core/modules/auth/guards/roles.guard.ts +119 -239
  58. package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +82 -56
  59. package/src/core/modules/better-auth/README.md +132 -35
  60. package/src/core/modules/better-auth/better-auth-token.service.ts +241 -0
  61. package/src/core/modules/better-auth/better-auth.config.ts +402 -70
  62. package/src/core/modules/better-auth/better-auth.types.ts +37 -0
  63. package/src/core/modules/better-auth/core-better-auth-api.middleware.ts +158 -18
  64. package/src/core/modules/better-auth/core-better-auth-challenge.service.ts +254 -0
  65. package/src/core/modules/better-auth/core-better-auth-user.mapper.ts +1 -1
  66. package/src/core/modules/better-auth/core-better-auth-web.helper.ts +64 -1
  67. package/src/core/modules/better-auth/core-better-auth.controller.ts +7 -15
  68. package/src/core/modules/better-auth/core-better-auth.middleware.ts +7 -20
  69. package/src/core/modules/better-auth/core-better-auth.module.ts +182 -25
  70. package/src/core/modules/better-auth/core-better-auth.resolver.ts +8 -7
  71. package/src/core/modules/better-auth/core-better-auth.service.ts +40 -48
  72. package/src/core/modules/better-auth/index.ts +1 -0
  73. package/src/core.module.ts +8 -0
  74. package/src/server/modules/better-auth/better-auth.module.ts +40 -10
  75. package/src/server/server.module.ts +2 -4
@@ -17,20 +17,28 @@ function createBetterAuthInstance(options) {
17
17
  if (config?.enabled === false) {
18
18
  return null;
19
19
  }
20
- const validation = validateConfig(config, fallbackSecrets);
20
+ const resolvedUrls = resolveUrls(options);
21
+ for (const warning of resolvedUrls.warnings) {
22
+ logger.log(warning);
23
+ }
24
+ const passkeyNormalization = normalizePasskeyConfig(config, resolvedUrls);
25
+ for (const warning of passkeyNormalization.warnings) {
26
+ logger.warn(warning);
27
+ }
28
+ const validation = validateConfig(config, fallbackSecrets, passkeyNormalization);
21
29
  for (const warning of validation.warnings) {
22
30
  logger.warn(warning);
23
31
  }
24
32
  if (!validation.valid) {
25
33
  throw new Error(`BetterAuth configuration invalid: ${validation.errors.join('; ')}`);
26
34
  }
27
- const plugins = buildPlugins(config);
35
+ const plugins = buildPlugins(config, passkeyNormalization);
28
36
  const socialProviders = buildSocialProviders(config);
29
- const trustedOrigins = buildTrustedOrigins(config);
37
+ const trustedOrigins = buildTrustedOrigins(config, passkeyNormalization, resolvedUrls);
30
38
  const additionalFields = buildUserFields(config);
31
39
  const betterAuthConfig = {
32
40
  basePath: config.basePath || '/iam',
33
- baseURL: config.baseUrl || 'http://localhost:3000',
41
+ baseURL: resolvedUrls.baseUrl || config.baseUrl || 'http://localhost:3000',
34
42
  database: (0, mongodb_1.mongodbAdapter)(db),
35
43
  emailAndPassword: {
36
44
  enabled: config.emailAndPassword?.enabled !== false,
@@ -49,7 +57,7 @@ function createBetterAuthInstance(options) {
49
57
  const finalConfig = config.options ? { ...betterAuthConfig, ...config.options } : betterAuthConfig;
50
58
  return (0, better_auth_1.betterAuth)(finalConfig);
51
59
  }
52
- function buildPlugins(config) {
60
+ function buildPlugins(config, passkeyNormalization) {
53
61
  const plugins = [];
54
62
  const jwtExplicitlyDisabled = config.jwt === false || (typeof config.jwt === 'object' && config.jwt?.enabled === false);
55
63
  if (!jwtExplicitlyDisabled) {
@@ -60,30 +68,31 @@ function buildPlugins(config) {
60
68
  },
61
69
  }));
62
70
  }
63
- const twoFactorConfig = getPluginConfig(config.twoFactor);
64
- if (twoFactorConfig) {
71
+ const twoFactorExplicitlyDisabled = config.twoFactor === false || (typeof config.twoFactor === 'object' && config.twoFactor?.enabled === false);
72
+ if (!twoFactorExplicitlyDisabled) {
73
+ const twoFactorConfig = typeof config.twoFactor === 'object' ? config.twoFactor : {};
65
74
  plugins.push((0, plugins_1.twoFactor)({
66
75
  issuer: twoFactorConfig.appName || 'Nest Server',
67
76
  }));
68
77
  }
69
- const passkeyConfig = getPluginConfig(config.passkey);
70
- if (passkeyConfig) {
78
+ if (passkeyNormalization.enabled && passkeyNormalization.normalizedConfig) {
79
+ const normalizedPasskey = passkeyNormalization.normalizedConfig;
71
80
  const passkeyOptions = {
72
- origin: passkeyConfig.origin || 'http://localhost:3000',
73
- rpID: passkeyConfig.rpId || 'localhost',
74
- rpName: passkeyConfig.rpName || 'Nest Server',
81
+ origin: normalizedPasskey.origin,
82
+ rpID: normalizedPasskey.rpId,
83
+ rpName: normalizedPasskey.rpName,
75
84
  };
76
- if (passkeyConfig.authenticatorAttachment) {
77
- passkeyOptions.authenticatorAttachment = passkeyConfig.authenticatorAttachment;
85
+ if (normalizedPasskey.authenticatorAttachment) {
86
+ passkeyOptions.authenticatorAttachment = normalizedPasskey.authenticatorAttachment;
78
87
  }
79
- if (passkeyConfig.residentKey) {
80
- passkeyOptions.residentKey = passkeyConfig.residentKey;
88
+ if (normalizedPasskey.residentKey) {
89
+ passkeyOptions.residentKey = normalizedPasskey.residentKey;
81
90
  }
82
- if (passkeyConfig.userVerification) {
83
- passkeyOptions.userVerification = passkeyConfig.userVerification;
91
+ if (normalizedPasskey.userVerification) {
92
+ passkeyOptions.userVerification = normalizedPasskey.userVerification;
84
93
  }
85
- if (passkeyConfig.webAuthnChallengeCookie) {
86
- passkeyOptions.webAuthnChallengeCookie = passkeyConfig.webAuthnChallengeCookie;
94
+ if (normalizedPasskey.webAuthnChallengeCookie) {
95
+ passkeyOptions.webAuthnChallengeCookie = normalizedPasskey.webAuthnChallengeCookie;
87
96
  }
88
97
  plugins.push((0, passkey_1.passkey)(passkeyOptions));
89
98
  }
@@ -106,13 +115,15 @@ function buildSocialProviders(config) {
106
115
  }
107
116
  return socialProvidersConfig;
108
117
  }
109
- function buildTrustedOrigins(config) {
118
+ function buildTrustedOrigins(config, passkeyNormalization, resolvedUrls) {
110
119
  if (config.trustedOrigins?.length) {
111
120
  return config.trustedOrigins;
112
121
  }
113
- const isPasskeyEnabled = isPluginEnabled(config.passkey);
114
- if (!isPasskeyEnabled && config.baseUrl) {
115
- return [config.baseUrl];
122
+ if (passkeyNormalization.enabled && passkeyNormalization.trustedOrigins?.length) {
123
+ return passkeyNormalization.trustedOrigins;
124
+ }
125
+ if (resolvedUrls.appUrl) {
126
+ return [resolvedUrls.appUrl];
116
127
  }
117
128
  return undefined;
118
129
  }
@@ -167,20 +178,6 @@ function getAutoGeneratedSecret() {
167
178
  }
168
179
  return cachedAutoGeneratedSecret;
169
180
  }
170
- function getPluginConfig(config) {
171
- if (!isPluginEnabled(config))
172
- return undefined;
173
- if (typeof config === 'boolean')
174
- return {};
175
- return config;
176
- }
177
- function isPluginEnabled(config) {
178
- if (config === undefined)
179
- return false;
180
- if (typeof config === 'boolean')
181
- return config;
182
- return config.enabled !== false;
183
- }
184
181
  function isValidSecretLength(secret) {
185
182
  return secret && secret.length >= 32;
186
183
  }
@@ -193,7 +190,136 @@ function isValidUrl(url) {
193
190
  return false;
194
191
  }
195
192
  }
196
- function validateConfig(config, fallbackSecrets) {
193
+ const LOCALHOST_DEFAULTS = {
194
+ API_URL: 'http://localhost:3000',
195
+ APP_URL: 'http://localhost:3001',
196
+ };
197
+ const LOCALHOST_ENVS = ['local', 'ci', 'e2e'];
198
+ function deriveAppUrlFromBaseUrl(baseUrl) {
199
+ try {
200
+ const url = new URL(baseUrl);
201
+ const hostname = url.hostname;
202
+ if (hostname.startsWith('api.')) {
203
+ url.hostname = hostname.substring(4);
204
+ return url.origin;
205
+ }
206
+ return url.origin;
207
+ }
208
+ catch {
209
+ return baseUrl;
210
+ }
211
+ }
212
+ function extractRpIdFromUrl(url) {
213
+ try {
214
+ const parsedUrl = new URL(url);
215
+ const hostname = parsedUrl.hostname;
216
+ if (hostname === 'localhost' || hostname === '127.0.0.1') {
217
+ return 'localhost';
218
+ }
219
+ const parts = hostname.split('.');
220
+ if (parts.length <= 2) {
221
+ return hostname;
222
+ }
223
+ return parts.slice(-2).join('.');
224
+ }
225
+ catch {
226
+ return 'localhost';
227
+ }
228
+ }
229
+ function normalizePasskeyConfig(config, resolvedUrls) {
230
+ const warnings = [];
231
+ const isExplicitlyDisabled = config.passkey === false || (typeof config.passkey === 'object' && config.passkey?.enabled === false);
232
+ if (isExplicitlyDisabled) {
233
+ return { enabled: false, normalizedConfig: null, trustedOrigins: null, warnings };
234
+ }
235
+ const rawConfig = typeof config.passkey === 'object' ? config.passkey : {};
236
+ const finalRpId = rawConfig.rpId || resolvedUrls.rpId;
237
+ const finalOrigin = rawConfig.origin || resolvedUrls.appUrl;
238
+ const finalTrustedOrigins = config.trustedOrigins?.length ? config.trustedOrigins : resolvedUrls.appUrl ? [resolvedUrls.appUrl] : undefined;
239
+ const hasRequiredConfig = finalRpId && finalOrigin && finalTrustedOrigins?.length;
240
+ if (!hasRequiredConfig) {
241
+ const missingFields = [];
242
+ if (!finalRpId)
243
+ missingFields.push('rpId');
244
+ if (!finalOrigin)
245
+ missingFields.push('origin');
246
+ if (!finalTrustedOrigins?.length)
247
+ missingFields.push('trustedOrigins');
248
+ warnings.push(`⚠️ PASSKEY DISABLED: Cannot auto-detect required values (${missingFields.join(', ')}). ` +
249
+ 'To enable Passkey, set baseUrl in your config or configure passkey values explicitly.');
250
+ warnings.push('Fix options:\n' +
251
+ ' 1. Set baseUrl: "https://api.example.com" → auto-detects appUrl, rpId, origin\n' +
252
+ ' 2. Set env: "local" → uses localhost:3000 (API) and localhost:3001 (App) defaults\n' +
253
+ ' 3. Disable Passkey explicitly: passkey: false (no warning)');
254
+ return { enabled: false, normalizedConfig: null, trustedOrigins: null, warnings };
255
+ }
256
+ if (!rawConfig.rpId && resolvedUrls.rpId) {
257
+ warnings.push(`PASSKEY: Using rpId="${finalRpId}" (auto-detected from appUrl)`);
258
+ }
259
+ if (!rawConfig.origin && resolvedUrls.appUrl) {
260
+ warnings.push(`PASSKEY: Using origin="${finalOrigin}" (= appUrl)`);
261
+ }
262
+ if (!config.trustedOrigins?.length && resolvedUrls.appUrl) {
263
+ warnings.push(`PASSKEY: Using trustedOrigins=${JSON.stringify(finalTrustedOrigins)} (= [appUrl])`);
264
+ }
265
+ const normalizedConfig = {
266
+ origin: finalOrigin,
267
+ rpId: finalRpId,
268
+ rpName: rawConfig.rpName || 'Nest Server',
269
+ };
270
+ if (rawConfig.authenticatorAttachment) {
271
+ normalizedConfig.authenticatorAttachment = rawConfig.authenticatorAttachment;
272
+ }
273
+ if (rawConfig.challengeStorage) {
274
+ normalizedConfig.challengeStorage = rawConfig.challengeStorage;
275
+ }
276
+ if (rawConfig.challengeTtlSeconds) {
277
+ normalizedConfig.challengeTtlSeconds = rawConfig.challengeTtlSeconds;
278
+ }
279
+ if (rawConfig.residentKey) {
280
+ normalizedConfig.residentKey = rawConfig.residentKey;
281
+ }
282
+ if (rawConfig.userVerification) {
283
+ normalizedConfig.userVerification = rawConfig.userVerification;
284
+ }
285
+ if (rawConfig.webAuthnChallengeCookie) {
286
+ normalizedConfig.webAuthnChallengeCookie = rawConfig.webAuthnChallengeCookie;
287
+ }
288
+ return {
289
+ enabled: true,
290
+ normalizedConfig,
291
+ trustedOrigins: finalTrustedOrigins,
292
+ warnings,
293
+ };
294
+ }
295
+ function resolveUrls(options) {
296
+ const { config, serverAppUrl, serverBaseUrl, serverEnv } = options;
297
+ const warnings = [];
298
+ const usesLocalhostDefaults = LOCALHOST_ENVS.includes(serverEnv || '');
299
+ let baseUrl = config.baseUrl || serverBaseUrl;
300
+ if (!baseUrl && usesLocalhostDefaults) {
301
+ baseUrl = LOCALHOST_DEFAULTS.API_URL;
302
+ warnings.push(`URL: Using localhost default baseUrl="${baseUrl}" (env: '${serverEnv}')`);
303
+ }
304
+ let appUrl = serverAppUrl;
305
+ const isBaseUrlLocalhost = baseUrl && (baseUrl.includes('localhost') || baseUrl.includes('127.0.0.1'));
306
+ if (!appUrl && usesLocalhostDefaults && isBaseUrlLocalhost) {
307
+ appUrl = LOCALHOST_DEFAULTS.APP_URL;
308
+ warnings.push(`URL: Using localhost default appUrl="${appUrl}" (env: '${serverEnv}')`);
309
+ }
310
+ if (!appUrl && baseUrl) {
311
+ appUrl = deriveAppUrlFromBaseUrl(baseUrl);
312
+ if (appUrl !== baseUrl) {
313
+ warnings.push(`URL: Auto-derived appUrl="${appUrl}" from baseUrl="${baseUrl}"`);
314
+ }
315
+ }
316
+ let rpId;
317
+ if (appUrl) {
318
+ rpId = extractRpIdFromUrl(appUrl);
319
+ }
320
+ return { appUrl, baseUrl, rpId, warnings };
321
+ }
322
+ function validateConfig(config, fallbackSecrets, passkeyNormalization) {
197
323
  const errors = [];
198
324
  const warnings = [];
199
325
  let secretSource = 'explicit';
@@ -236,15 +362,18 @@ function validateConfig(config, fallbackSecrets) {
236
362
  }
237
363
  }
238
364
  }
239
- const isPasskeyEnabled = isPluginEnabled(config.passkey);
240
- if (isPasskeyEnabled && !config.trustedOrigins?.length) {
241
- errors.push('PASSKEY CORS: trustedOrigins is REQUIRED when Passkey is enabled. ' +
242
- 'Passkey uses credentials which requires explicit CORS origins (wildcard "*" is not allowed). ' +
243
- 'Configure betterAuth.trustedOrigins with your frontend URLs, e.g.: ["http://localhost:3001", "https://app.example.com"]');
365
+ if (passkeyNormalization?.trustedOrigins) {
366
+ for (const origin of passkeyNormalization.trustedOrigins) {
367
+ if (!isValidUrl(origin)) {
368
+ errors.push(`Invalid auto-detected trustedOrigin format: ${origin}`);
369
+ }
370
+ }
244
371
  }
245
- const passkeyConfig = typeof config.passkey === 'object' ? config.passkey : null;
246
- if (passkeyConfig?.enabled && passkeyConfig.origin && !isValidUrl(passkeyConfig.origin)) {
247
- errors.push(`Invalid passkey origin format: ${passkeyConfig.origin}`);
372
+ if (passkeyNormalization?.enabled && passkeyNormalization.normalizedConfig) {
373
+ const normalizedOrigin = passkeyNormalization.normalizedConfig.origin;
374
+ if (!isValidUrl(normalizedOrigin)) {
375
+ errors.push(`Invalid passkey origin format: ${normalizedOrigin}`);
376
+ }
248
377
  }
249
378
  if (config.socialProviders) {
250
379
  for (const [name, provider] of Object.entries(config.socialProviders)) {
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.config.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"better-auth.config.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Types } from 'mongoose';
1
2
  import { BetterAuthSessionUser } from './core-better-auth-user.mapper';
2
3
  export interface BetterAuth2FAResponse {
3
4
  accessToken?: string;
@@ -5,6 +6,18 @@ export interface BetterAuth2FAResponse {
5
6
  token?: string;
6
7
  user?: BetterAuthSessionUser;
7
8
  }
9
+ export interface BetterAuthenticatedUser {
10
+ [key: string]: unknown;
11
+ _authenticatedViaBetterAuth: true;
12
+ _id?: Types.ObjectId;
13
+ email: string;
14
+ emailVerified?: boolean;
15
+ hasRole: (roles: string[]) => boolean;
16
+ id: string;
17
+ roles?: string[];
18
+ verified?: boolean;
19
+ verifiedAt?: Date;
20
+ }
8
21
  export interface BetterAuthSessionResponse {
9
22
  session: {
10
23
  createdAt: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.types.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.types.ts"],"names":[],"mappings":";;AAwEA,gCAQC;AAMD,0BAQC;AAKD,kCAOC;AAlCD,SAAgB,UAAU,CAAI,QAAW;IACvC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,SAAS,IAAI,QAAQ;QACpB,QAAkC,CAAC,OAAO,KAAK,IAAI;QACnD,QAAkC,CAAC,OAAO,KAAK,SAAS,CAC1D,CAAC;AACJ,CAAC;AAMD,SAAgB,OAAO,CAAI,QAAW;IACpC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,MAAM,IAAI,QAAQ;QACjB,QAA+B,CAAC,IAAI,KAAK,IAAI;QAC7C,QAA+B,CAAC,IAAI,KAAK,SAAS,CACpD,CAAC;AACJ,CAAC;AAKD,SAAgB,WAAW,CAAI,QAAW;IACxC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,mBAAmB,IAAI,QAAQ;QAC9B,QAA4C,CAAC,iBAAiB,KAAK,IAAI,CACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"better-auth.types.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.types.ts"],"names":[],"mappings":";;AA6GA,gCAQC;AAMD,0BAQC;AAKD,kCAOC;AAlCD,SAAgB,UAAU,CAAI,QAAW;IACvC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,SAAS,IAAI,QAAQ;QACpB,QAAkC,CAAC,OAAO,KAAK,IAAI;QACnD,QAAkC,CAAC,OAAO,KAAK,SAAS,CAC1D,CAAC;AACJ,CAAC;AAMD,SAAgB,OAAO,CAAI,QAAW;IACpC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,MAAM,IAAI,QAAQ;QACjB,QAA+B,CAAC,IAAI,KAAK,IAAI;QAC7C,QAA+B,CAAC,IAAI,KAAK,SAAS,CACpD,CAAC;AACJ,CAAC;AAKD,SAAgB,WAAW,CAAI,QAAW;IACxC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,mBAAmB,IAAI,QAAQ;QAC9B,QAA4C,CAAC,iBAAiB,KAAK,IAAI,CACzE,CAAC;AACJ,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { NestMiddleware } from '@nestjs/common';
2
2
  import { NextFunction, Request, Response } from 'express';
3
+ import { CoreBetterAuthChallengeService } from './core-better-auth-challenge.service';
3
4
  import { CoreBetterAuthService } from './core-better-auth.service';
4
5
  export declare class CoreBetterAuthApiMiddleware implements NestMiddleware {
5
6
  private readonly betterAuthService;
7
+ private readonly challengeService?;
6
8
  private readonly logger;
7
9
  private readonly isProd;
8
- constructor(betterAuthService: CoreBetterAuthService);
10
+ private loggedChallengeStorageMode;
11
+ constructor(betterAuthService: CoreBetterAuthService, challengeService?: CoreBetterAuthChallengeService);
12
+ private useDbChallengeStorage;
9
13
  use(req: Request, res: Response, next: NextFunction): Promise<void>;
10
14
  }
@@ -8,11 +8,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
11
14
  var CoreBetterAuthApiMiddleware_1;
12
15
  Object.defineProperty(exports, "__esModule", { value: true });
13
16
  exports.CoreBetterAuthApiMiddleware = void 0;
14
17
  const common_1 = require("@nestjs/common");
15
18
  const logging_helper_1 = require("../../common/helpers/logging.helper");
19
+ const core_better_auth_challenge_service_1 = require("./core-better-auth-challenge.service");
16
20
  const core_better_auth_web_helper_1 = require("./core-better-auth-web.helper");
17
21
  const core_better_auth_service_1 = require("./core-better-auth.service");
18
22
  const CONTROLLER_HANDLED_PATHS = [
@@ -21,21 +25,40 @@ const CONTROLLER_HANDLED_PATHS = [
21
25
  '/sign-out',
22
26
  '/session',
23
27
  ];
28
+ const PASSKEY_GENERATE_PATHS = [
29
+ '/passkey/generate-register-options',
30
+ '/passkey/generate-authenticate-options',
31
+ ];
32
+ const PASSKEY_VERIFY_PATHS = [
33
+ '/passkey/verify-registration',
34
+ '/passkey/verify-authentication',
35
+ ];
24
36
  let CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware_1 = class CoreBetterAuthApiMiddleware {
25
- constructor(betterAuthService) {
37
+ constructor(betterAuthService, challengeService) {
26
38
  this.betterAuthService = betterAuthService;
39
+ this.challengeService = challengeService;
27
40
  this.logger = new common_1.Logger(CoreBetterAuthApiMiddleware_1.name);
28
41
  this.isProd = (0, logging_helper_1.isProduction)();
42
+ this.loggedChallengeStorageMode = false;
43
+ }
44
+ useDbChallengeStorage() {
45
+ const enabled = this.challengeService?.isEnabled() ?? false;
46
+ if (enabled && !this.loggedChallengeStorageMode) {
47
+ this.logger.log('Passkey challenge storage: database (JWT mode compatible)');
48
+ this.loggedChallengeStorageMode = true;
49
+ }
50
+ return enabled;
29
51
  }
30
52
  async use(req, res, next) {
31
53
  if (!this.betterAuthService.isEnabled()) {
32
54
  return next();
33
55
  }
34
56
  const basePath = this.betterAuthService.getBasePath();
35
- const requestPath = req.path;
57
+ const requestPath = req.originalUrl?.split('?')[0] || req.path;
36
58
  if (!requestPath.startsWith(basePath)) {
37
59
  return next();
38
60
  }
61
+ this.logger.debug(`API Middleware handling: ${req.method} ${requestPath}`);
39
62
  const relativePath = requestPath.slice(basePath.length);
40
63
  if (CONTROLLER_HANDLED_PATHS.some((path) => relativePath === path || relativePath.startsWith(`${path}/`))) {
41
64
  return next();
@@ -45,12 +68,34 @@ let CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware_1 = class CoreBett
45
68
  this.logger.warn('Better Auth instance not available');
46
69
  return next();
47
70
  }
48
- if (!this.isProd) {
49
- this.logger.debug(`Forwarding to Better Auth handler: ${req.method} ${requestPath}`);
50
- }
71
+ this.logger.debug(`Forwarding to Better Auth handler: ${req.method} ${requestPath}`);
51
72
  try {
73
+ const useDbStorage = this.useDbChallengeStorage();
74
+ const isPasskeyGenerate = useDbStorage && PASSKEY_GENERATE_PATHS.some((p) => relativePath === p);
75
+ const isPasskeyVerify = useDbStorage && PASSKEY_VERIFY_PATHS.some((p) => relativePath === p);
52
76
  const sessionToken = (0, core_better_auth_web_helper_1.extractSessionToken)(req, basePath);
53
77
  const config = this.betterAuthService.getConfig();
78
+ const cookieName = this.challengeService?.getCookieName() || 'better-auth.better-auth-passkey';
79
+ let challengeIdToDelete;
80
+ if (isPasskeyVerify && this.challengeService) {
81
+ const challengeId = req.body?.challengeId;
82
+ this.logger.debug(`Passkey verify: challengeId=${challengeId ? `${challengeId.substring(0, 8)}...` : 'MISSING'}, body keys=${Object.keys(req.body || {}).join(', ')}`);
83
+ if (challengeId) {
84
+ const verificationToken = await this.challengeService.getVerificationToken(challengeId);
85
+ if (verificationToken) {
86
+ const signedToken = (0, core_better_auth_web_helper_1.signCookieValue)(verificationToken, config.secret || '');
87
+ const existingCookies = req.headers.cookie || '';
88
+ req.headers.cookie = existingCookies
89
+ ? `${existingCookies}; ${cookieName}=${signedToken}`
90
+ : `${cookieName}=${signedToken}`;
91
+ challengeIdToDelete = challengeId;
92
+ this.logger.debug(`Injected verificationToken for passkey verification`);
93
+ }
94
+ else {
95
+ this.logger.debug(`Challenge mapping not found: ${challengeId.substring(0, 8)}...`);
96
+ }
97
+ }
98
+ }
54
99
  const webRequest = await (0, core_better_auth_web_helper_1.toWebRequest)(req, {
55
100
  basePath,
56
101
  baseUrl: this.betterAuthService.getBaseUrl(),
@@ -59,8 +104,54 @@ let CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware_1 = class CoreBett
59
104
  sessionToken,
60
105
  });
61
106
  const response = await authInstance.handler(webRequest);
62
- if (!this.isProd) {
63
- this.logger.debug(`Better Auth handler response: ${response.status}`);
107
+ this.logger.debug(`Better Auth handler response: ${response.status}`);
108
+ if (isPasskeyGenerate && response.ok && this.challengeService) {
109
+ const setCookieHeaders = response.headers.getSetCookie?.() || [];
110
+ let verificationToken = null;
111
+ for (const cookieHeader of setCookieHeaders) {
112
+ if (cookieHeader.startsWith(`${cookieName}=`)) {
113
+ const cookieValue = cookieHeader.split(';')[0].split('=')[1];
114
+ const decodedValue = decodeURIComponent(cookieValue);
115
+ verificationToken = decodedValue.split('.')[0];
116
+ break;
117
+ }
118
+ }
119
+ if (verificationToken) {
120
+ const responseClone = response.clone();
121
+ const responseBody = await responseClone.json();
122
+ const userId = responseBody?.user?.id || sessionToken || 'anonymous';
123
+ const type = relativePath.includes('register') ? 'registration' : 'authentication';
124
+ const challengeId = await this.challengeService.storeChallengeMapping(verificationToken, userId, type);
125
+ const enhancedBody = {
126
+ ...responseBody,
127
+ challengeId,
128
+ };
129
+ const newHeaders = new Headers();
130
+ response.headers.forEach((value, key) => {
131
+ if (key.toLowerCase() !== 'set-cookie') {
132
+ newHeaders.set(key, value);
133
+ }
134
+ });
135
+ for (const cookieHeader of setCookieHeaders) {
136
+ if (!cookieHeader.startsWith(`${cookieName}=`)) {
137
+ newHeaders.append('Set-Cookie', cookieHeader);
138
+ }
139
+ }
140
+ const enhancedResponse = new Response(JSON.stringify(enhancedBody), {
141
+ headers: newHeaders,
142
+ status: response.status,
143
+ statusText: response.statusText,
144
+ });
145
+ this.logger.debug(`Stored challenge mapping with ID: ${challengeId.substring(0, 8)}...`);
146
+ await (0, core_better_auth_web_helper_1.sendWebResponse)(res, enhancedResponse);
147
+ return;
148
+ }
149
+ else {
150
+ this.logger.warn('Could not extract verificationToken from Set-Cookie header');
151
+ }
152
+ }
153
+ if (challengeIdToDelete && this.challengeService) {
154
+ await this.challengeService.deleteChallengeMapping(challengeIdToDelete);
64
155
  }
65
156
  await (0, core_better_auth_web_helper_1.sendWebResponse)(res, response);
66
157
  }
@@ -86,6 +177,8 @@ let CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware_1 = class CoreBett
86
177
  exports.CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware;
87
178
  exports.CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware = CoreBetterAuthApiMiddleware_1 = __decorate([
88
179
  (0, common_1.Injectable)(),
89
- __metadata("design:paramtypes", [core_better_auth_service_1.CoreBetterAuthService])
180
+ __param(1, (0, common_1.Optional)()),
181
+ __metadata("design:paramtypes", [core_better_auth_service_1.CoreBetterAuthService,
182
+ core_better_auth_challenge_service_1.CoreBetterAuthChallengeService])
90
183
  ], CoreBetterAuthApiMiddleware);
91
184
  //# sourceMappingURL=core-better-auth-api.middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-better-auth-api.middleware.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-api.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-better-auth-api.middleware.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-api.middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { Connection } from 'mongoose';
3
+ import { ConfigService } from '../../common/services/config.service';
4
+ export declare class CoreBetterAuthChallengeService implements OnModuleInit {
5
+ private readonly connection;
6
+ private readonly configService?;
7
+ private readonly logger;
8
+ private collection;
9
+ private ttlSeconds;
10
+ private enabled;
11
+ constructor(connection: Connection, configService?: ConfigService);
12
+ onModuleInit(): Promise<void>;
13
+ isEnabled(): boolean;
14
+ storeChallengeMapping(verificationToken: string, userId: string, type: 'authentication' | 'registration'): Promise<string>;
15
+ getVerificationToken(challengeId: string): Promise<null | string>;
16
+ deleteChallengeMapping(challengeId: string): Promise<void>;
17
+ deleteUserChallengeMappings(userId: string): Promise<void>;
18
+ getTtlSeconds(): number;
19
+ getCookieName(): string;
20
+ }