@lenne.tech/nest-server 11.6.2 → 11.7.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 (74) hide show
  1. package/dist/config.env.js +2 -11
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/helpers/filter.helper.d.ts +9 -9
  4. package/dist/core/common/helpers/filter.helper.js +2 -4
  5. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  6. package/dist/core/common/helpers/gridfs.helper.js +3 -3
  7. package/dist/core/common/helpers/gridfs.helper.js.map +1 -1
  8. package/dist/core/common/interfaces/server-options.interface.d.ts +4 -3
  9. package/dist/core/common/services/crud.service.d.ts +16 -16
  10. package/dist/core/common/services/crud.service.js +1 -1
  11. package/dist/core/common/services/crud.service.js.map +1 -1
  12. package/dist/core/modules/better-auth/better-auth-models.d.ts +0 -1
  13. package/dist/core/modules/better-auth/better-auth-models.js +0 -4
  14. package/dist/core/modules/better-auth/better-auth-models.js.map +1 -1
  15. package/dist/core/modules/better-auth/better-auth.config.js +3 -0
  16. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  17. package/dist/core/modules/better-auth/better-auth.module.d.ts +10 -2
  18. package/dist/core/modules/better-auth/better-auth.module.js +40 -52
  19. package/dist/core/modules/better-auth/better-auth.module.js.map +1 -1
  20. package/dist/core/modules/better-auth/better-auth.resolver.d.ts +8 -12
  21. package/dist/core/modules/better-auth/better-auth.resolver.js +33 -351
  22. package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
  23. package/dist/core/modules/better-auth/better-auth.service.d.ts +0 -1
  24. package/dist/core/modules/better-auth/better-auth.service.js +0 -3
  25. package/dist/core/modules/better-auth/better-auth.service.js.map +1 -1
  26. package/dist/core/modules/better-auth/better-auth.types.d.ts +9 -8
  27. package/dist/core/modules/better-auth/better-auth.types.js +14 -3
  28. package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
  29. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +66 -0
  30. package/dist/core/modules/better-auth/core-better-auth.controller.js +491 -0
  31. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -0
  32. package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +59 -0
  33. package/dist/core/modules/better-auth/core-better-auth.resolver.js +538 -0
  34. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -0
  35. package/dist/core/modules/better-auth/index.d.ts +2 -0
  36. package/dist/core/modules/better-auth/index.js +2 -0
  37. package/dist/core/modules/better-auth/index.js.map +1 -1
  38. package/dist/core.module.js +1 -1
  39. package/dist/core.module.js.map +1 -1
  40. package/dist/server/modules/better-auth/better-auth.controller.d.ts +10 -0
  41. package/dist/server/modules/better-auth/better-auth.controller.js +36 -0
  42. package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -0
  43. package/dist/server/modules/better-auth/better-auth.module.d.ts +9 -0
  44. package/dist/server/modules/better-auth/better-auth.module.js +44 -0
  45. package/dist/server/modules/better-auth/better-auth.module.js.map +1 -0
  46. package/dist/server/modules/better-auth/better-auth.resolver.d.ts +45 -0
  47. package/dist/server/modules/better-auth/better-auth.resolver.js +221 -0
  48. package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -0
  49. package/dist/server/modules/file/file-info.model.d.ts +71 -3
  50. package/dist/server/modules/user/user.model.d.ts +169 -3
  51. package/dist/server/server.module.js +6 -1
  52. package/dist/server/server.module.js.map +1 -1
  53. package/dist/tsconfig.build.tsbuildinfo +1 -1
  54. package/package.json +20 -29
  55. package/src/config.env.ts +2 -11
  56. package/src/core/common/helpers/filter.helper.ts +15 -17
  57. package/src/core/common/helpers/gridfs.helper.ts +5 -5
  58. package/src/core/common/interfaces/server-options.interface.ts +47 -14
  59. package/src/core/common/services/crud.service.ts +22 -22
  60. package/src/core/modules/better-auth/README.md +365 -39
  61. package/src/core/modules/better-auth/better-auth-models.ts +0 -3
  62. package/src/core/modules/better-auth/better-auth.config.ts +5 -0
  63. package/src/core/modules/better-auth/better-auth.module.ts +107 -66
  64. package/src/core/modules/better-auth/better-auth.resolver.ts +88 -553
  65. package/src/core/modules/better-auth/better-auth.service.ts +0 -9
  66. package/src/core/modules/better-auth/better-auth.types.ts +25 -10
  67. package/src/core/modules/better-auth/core-better-auth.controller.ts +605 -0
  68. package/src/core/modules/better-auth/core-better-auth.resolver.ts +705 -0
  69. package/src/core/modules/better-auth/index.ts +8 -1
  70. package/src/core.module.ts +3 -2
  71. package/src/server/modules/better-auth/better-auth.controller.ts +41 -0
  72. package/src/server/modules/better-auth/better-auth.module.ts +88 -0
  73. package/src/server/modules/better-auth/better-auth.resolver.ts +201 -0
  74. package/src/server/server.module.ts +10 -1
@@ -0,0 +1,66 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { Request, Response } from 'express';
3
+ import { ConfigService } from '../../common/services/config.service';
4
+ import { BetterAuthSessionUser, BetterAuthUserMapper } from './better-auth-user.mapper';
5
+ import { BetterAuthService } from './better-auth.service';
6
+ export declare class BetterAuthSessionInfo {
7
+ expiresAt: string;
8
+ id: string;
9
+ }
10
+ export declare class BetterAuthUserResponse {
11
+ email: string;
12
+ emailVerified: boolean;
13
+ id: string;
14
+ name: string;
15
+ twoFactorEnabled?: boolean;
16
+ }
17
+ export declare class BetterAuthResponse {
18
+ error?: string;
19
+ requiresTwoFactor?: boolean;
20
+ session?: BetterAuthSessionInfo;
21
+ success: boolean;
22
+ token?: string;
23
+ user?: BetterAuthUserResponse;
24
+ }
25
+ export declare class BetterAuthSignInInput {
26
+ email: string;
27
+ password: string;
28
+ }
29
+ export declare class BetterAuthSignUpInput {
30
+ email: string;
31
+ name?: string;
32
+ password: string;
33
+ }
34
+ export declare class BetterAuthTwoFactorInput {
35
+ code: string;
36
+ }
37
+ export declare class BetterAuthTwoFactorSetupResponse {
38
+ backupCodes: string[];
39
+ success: boolean;
40
+ totpSecret: string;
41
+ totpUri: string;
42
+ }
43
+ export declare class CoreBetterAuthController {
44
+ protected readonly betterAuthService: BetterAuthService;
45
+ protected readonly userMapper: BetterAuthUserMapper;
46
+ protected readonly configService: ConfigService;
47
+ protected readonly logger: Logger;
48
+ constructor(betterAuthService: BetterAuthService, userMapper: BetterAuthUserMapper, configService: ConfigService);
49
+ signIn(res: Response, input: BetterAuthSignInInput): Promise<BetterAuthResponse>;
50
+ signUp(res: Response, input: BetterAuthSignUpInput): Promise<BetterAuthResponse>;
51
+ signOut(req: Request, res: Response): Promise<BetterAuthResponse>;
52
+ getSession(req: Request): Promise<BetterAuthResponse>;
53
+ enableTwoFactor(req: Request): Promise<BetterAuthResponse | BetterAuthTwoFactorSetupResponse>;
54
+ verifyTwoFactor(req: Request, res: Response, input: BetterAuthTwoFactorInput): Promise<BetterAuthResponse>;
55
+ disableTwoFactor(req: Request): Promise<BetterAuthResponse>;
56
+ protected ensureEnabled(): void;
57
+ protected extractSessionToken(req: Request): null | string;
58
+ protected extractHeaders(req: Request): Headers;
59
+ protected mapSession(session: null | undefined | {
60
+ expiresAt: Date;
61
+ id: string;
62
+ }): BetterAuthSessionInfo | undefined;
63
+ protected mapUser(sessionUser: BetterAuthSessionUser, _mappedUser: any): BetterAuthUserResponse;
64
+ protected processCookies(res: Response, result: BetterAuthResponse): BetterAuthResponse;
65
+ protected clearAuthCookies(res: Response): void;
66
+ }
@@ -0,0 +1,491 @@
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 CoreBetterAuthController_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CoreBetterAuthController = exports.BetterAuthTwoFactorSetupResponse = exports.BetterAuthTwoFactorInput = exports.BetterAuthSignUpInput = exports.BetterAuthSignInInput = exports.BetterAuthResponse = exports.BetterAuthUserResponse = exports.BetterAuthSessionInfo = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const swagger_1 = require("@nestjs/swagger");
19
+ const roles_decorator_1 = require("../../common/decorators/roles.decorator");
20
+ const role_enum_1 = require("../../common/enums/role.enum");
21
+ const config_service_1 = require("../../common/services/config.service");
22
+ const better_auth_user_mapper_1 = require("./better-auth-user.mapper");
23
+ const better_auth_service_1 = require("./better-auth.service");
24
+ const better_auth_types_1 = require("./better-auth.types");
25
+ class BetterAuthSessionInfo {
26
+ }
27
+ exports.BetterAuthSessionInfo = BetterAuthSessionInfo;
28
+ __decorate([
29
+ (0, swagger_1.ApiProperty)({ description: 'Session expiration time' }),
30
+ __metadata("design:type", String)
31
+ ], BetterAuthSessionInfo.prototype, "expiresAt", void 0);
32
+ __decorate([
33
+ (0, swagger_1.ApiProperty)({ description: 'Session ID' }),
34
+ __metadata("design:type", String)
35
+ ], BetterAuthSessionInfo.prototype, "id", void 0);
36
+ class BetterAuthUserResponse {
37
+ }
38
+ exports.BetterAuthUserResponse = BetterAuthUserResponse;
39
+ __decorate([
40
+ (0, swagger_1.ApiProperty)({ description: 'User email address' }),
41
+ __metadata("design:type", String)
42
+ ], BetterAuthUserResponse.prototype, "email", void 0);
43
+ __decorate([
44
+ (0, swagger_1.ApiProperty)({ description: 'Whether email is verified' }),
45
+ __metadata("design:type", Boolean)
46
+ ], BetterAuthUserResponse.prototype, "emailVerified", void 0);
47
+ __decorate([
48
+ (0, swagger_1.ApiProperty)({ description: 'User ID from Better-Auth' }),
49
+ __metadata("design:type", String)
50
+ ], BetterAuthUserResponse.prototype, "id", void 0);
51
+ __decorate([
52
+ (0, swagger_1.ApiProperty)({ description: 'User display name' }),
53
+ __metadata("design:type", String)
54
+ ], BetterAuthUserResponse.prototype, "name", void 0);
55
+ __decorate([
56
+ (0, swagger_1.ApiProperty)({ description: 'Whether 2FA is enabled', required: false }),
57
+ __metadata("design:type", Boolean)
58
+ ], BetterAuthUserResponse.prototype, "twoFactorEnabled", void 0);
59
+ class BetterAuthResponse {
60
+ }
61
+ exports.BetterAuthResponse = BetterAuthResponse;
62
+ __decorate([
63
+ (0, swagger_1.ApiProperty)({ description: 'Error message if failed', required: false }),
64
+ __metadata("design:type", String)
65
+ ], BetterAuthResponse.prototype, "error", void 0);
66
+ __decorate([
67
+ (0, swagger_1.ApiProperty)({ description: 'Whether 2FA is required', required: false }),
68
+ __metadata("design:type", Boolean)
69
+ ], BetterAuthResponse.prototype, "requiresTwoFactor", void 0);
70
+ __decorate([
71
+ (0, swagger_1.ApiProperty)({ description: 'Session information', required: false, type: BetterAuthSessionInfo }),
72
+ __metadata("design:type", BetterAuthSessionInfo)
73
+ ], BetterAuthResponse.prototype, "session", void 0);
74
+ __decorate([
75
+ (0, swagger_1.ApiProperty)({ description: 'Whether operation succeeded' }),
76
+ __metadata("design:type", Boolean)
77
+ ], BetterAuthResponse.prototype, "success", void 0);
78
+ __decorate([
79
+ (0, swagger_1.ApiProperty)({ description: 'JWT token (if JWT plugin enabled)', required: false }),
80
+ __metadata("design:type", String)
81
+ ], BetterAuthResponse.prototype, "token", void 0);
82
+ __decorate([
83
+ (0, swagger_1.ApiProperty)({ description: 'User information', required: false, type: BetterAuthUserResponse }),
84
+ __metadata("design:type", BetterAuthUserResponse)
85
+ ], BetterAuthResponse.prototype, "user", void 0);
86
+ class BetterAuthSignInInput {
87
+ }
88
+ exports.BetterAuthSignInInput = BetterAuthSignInInput;
89
+ __decorate([
90
+ (0, swagger_1.ApiProperty)({ description: 'User email address', example: 'user@example.com' }),
91
+ __metadata("design:type", String)
92
+ ], BetterAuthSignInInput.prototype, "email", void 0);
93
+ __decorate([
94
+ (0, swagger_1.ApiProperty)({ description: 'User password' }),
95
+ __metadata("design:type", String)
96
+ ], BetterAuthSignInInput.prototype, "password", void 0);
97
+ class BetterAuthSignUpInput {
98
+ }
99
+ exports.BetterAuthSignUpInput = BetterAuthSignUpInput;
100
+ __decorate([
101
+ (0, swagger_1.ApiProperty)({ description: 'User email address', example: 'user@example.com' }),
102
+ __metadata("design:type", String)
103
+ ], BetterAuthSignUpInput.prototype, "email", void 0);
104
+ __decorate([
105
+ (0, swagger_1.ApiProperty)({ description: 'Display name', example: 'John Doe', required: false }),
106
+ __metadata("design:type", String)
107
+ ], BetterAuthSignUpInput.prototype, "name", void 0);
108
+ __decorate([
109
+ (0, swagger_1.ApiProperty)({ description: 'User password (min 8 characters)' }),
110
+ __metadata("design:type", String)
111
+ ], BetterAuthSignUpInput.prototype, "password", void 0);
112
+ class BetterAuthTwoFactorInput {
113
+ }
114
+ exports.BetterAuthTwoFactorInput = BetterAuthTwoFactorInput;
115
+ __decorate([
116
+ (0, swagger_1.ApiProperty)({ description: 'TOTP code from authenticator app', example: '123456' }),
117
+ __metadata("design:type", String)
118
+ ], BetterAuthTwoFactorInput.prototype, "code", void 0);
119
+ class BetterAuthTwoFactorSetupResponse {
120
+ }
121
+ exports.BetterAuthTwoFactorSetupResponse = BetterAuthTwoFactorSetupResponse;
122
+ __decorate([
123
+ (0, swagger_1.ApiProperty)({ description: 'Backup codes for recovery' }),
124
+ __metadata("design:type", Array)
125
+ ], BetterAuthTwoFactorSetupResponse.prototype, "backupCodes", void 0);
126
+ __decorate([
127
+ (0, swagger_1.ApiProperty)({ description: 'Whether operation succeeded' }),
128
+ __metadata("design:type", Boolean)
129
+ ], BetterAuthTwoFactorSetupResponse.prototype, "success", void 0);
130
+ __decorate([
131
+ (0, swagger_1.ApiProperty)({ description: 'TOTP secret for manual entry' }),
132
+ __metadata("design:type", String)
133
+ ], BetterAuthTwoFactorSetupResponse.prototype, "totpSecret", void 0);
134
+ __decorate([
135
+ (0, swagger_1.ApiProperty)({ description: 'QR code URI for authenticator apps' }),
136
+ __metadata("design:type", String)
137
+ ], BetterAuthTwoFactorSetupResponse.prototype, "totpUri", void 0);
138
+ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuthController {
139
+ constructor(betterAuthService, userMapper, configService) {
140
+ this.betterAuthService = betterAuthService;
141
+ this.userMapper = userMapper;
142
+ this.configService = configService;
143
+ this.logger = new common_1.Logger(CoreBetterAuthController_1.name);
144
+ }
145
+ async signIn(res, input) {
146
+ this.ensureEnabled();
147
+ const api = this.betterAuthService.getApi();
148
+ if (!api) {
149
+ throw new common_1.BadRequestException('Better-Auth API not available');
150
+ }
151
+ try {
152
+ const response = await api.signInEmail({
153
+ body: { email: input.email, password: input.password },
154
+ });
155
+ if (!response) {
156
+ throw new common_1.UnauthorizedException('Invalid credentials');
157
+ }
158
+ if ((0, better_auth_types_1.requires2FA)(response)) {
159
+ return { requiresTwoFactor: true, success: false };
160
+ }
161
+ if ((0, better_auth_types_1.hasUser)(response)) {
162
+ const mappedUser = await this.userMapper.mapSessionUser(response.user);
163
+ const token = this.betterAuthService.isJwtEnabled() ? response.token : undefined;
164
+ const result = {
165
+ requiresTwoFactor: false,
166
+ session: (0, better_auth_types_1.hasSession)(response) ? this.mapSession(response.session) : undefined,
167
+ success: true,
168
+ token,
169
+ user: mappedUser ? this.mapUser(response.user, mappedUser) : undefined,
170
+ };
171
+ return this.processCookies(res, result);
172
+ }
173
+ throw new common_1.UnauthorizedException('Invalid credentials');
174
+ }
175
+ catch (error) {
176
+ this.logger.debug(`Sign-in error: ${error instanceof Error ? error.message : 'Unknown error'}`);
177
+ throw new common_1.UnauthorizedException('Invalid credentials');
178
+ }
179
+ }
180
+ async signUp(res, input) {
181
+ this.ensureEnabled();
182
+ const api = this.betterAuthService.getApi();
183
+ if (!api) {
184
+ throw new common_1.BadRequestException('Better-Auth API not available');
185
+ }
186
+ try {
187
+ const response = await api.signUpEmail({
188
+ body: {
189
+ email: input.email,
190
+ name: input.name || input.email.split('@')[0],
191
+ password: input.password,
192
+ },
193
+ });
194
+ if (!response) {
195
+ throw new common_1.BadRequestException('Sign-up failed');
196
+ }
197
+ if ((0, better_auth_types_1.hasUser)(response)) {
198
+ await this.userMapper.linkOrCreateUser(response.user);
199
+ const mappedUser = await this.userMapper.mapSessionUser(response.user);
200
+ const result = {
201
+ requiresTwoFactor: false,
202
+ session: (0, better_auth_types_1.hasSession)(response) ? this.mapSession(response.session) : undefined,
203
+ success: true,
204
+ user: mappedUser ? this.mapUser(response.user, mappedUser) : undefined,
205
+ };
206
+ return this.processCookies(res, result);
207
+ }
208
+ throw new common_1.BadRequestException('Sign-up failed');
209
+ }
210
+ catch (error) {
211
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
212
+ this.logger.debug(`Sign-up error: ${errorMessage}`);
213
+ if (errorMessage.includes('already exists')) {
214
+ throw new common_1.BadRequestException('User with this email already exists');
215
+ }
216
+ throw new common_1.BadRequestException('Sign-up failed');
217
+ }
218
+ }
219
+ async signOut(req, res) {
220
+ if (!this.betterAuthService.isEnabled()) {
221
+ return { success: true };
222
+ }
223
+ try {
224
+ const sessionToken = this.extractSessionToken(req);
225
+ if (sessionToken) {
226
+ await this.betterAuthService.revokeSession(sessionToken);
227
+ }
228
+ this.clearAuthCookies(res);
229
+ return { success: true };
230
+ }
231
+ catch (error) {
232
+ this.logger.debug(`Sign-out error: ${error instanceof Error ? error.message : 'Unknown error'}`);
233
+ this.clearAuthCookies(res);
234
+ return { success: true };
235
+ }
236
+ }
237
+ async getSession(req) {
238
+ if (!this.betterAuthService.isEnabled()) {
239
+ return { error: 'Better-Auth is disabled', success: false };
240
+ }
241
+ try {
242
+ const { session, user } = await this.betterAuthService.getSession(req);
243
+ if (!session || !user) {
244
+ return { success: false };
245
+ }
246
+ const mappedUser = await this.userMapper.mapSessionUser(user);
247
+ return {
248
+ session: this.mapSession(session),
249
+ success: true,
250
+ user: mappedUser ? this.mapUser(user, mappedUser) : undefined,
251
+ };
252
+ }
253
+ catch (error) {
254
+ this.logger.debug(`Get session error: ${error instanceof Error ? error.message : 'Unknown error'}`);
255
+ return { success: false };
256
+ }
257
+ }
258
+ async enableTwoFactor(req) {
259
+ this.ensureEnabled();
260
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
261
+ throw new common_1.BadRequestException('Two-factor authentication is not enabled');
262
+ }
263
+ const api = this.betterAuthService.getApi();
264
+ if (!api || !('enableTwoFactor' in api)) {
265
+ throw new common_1.BadRequestException('2FA API not available');
266
+ }
267
+ try {
268
+ const headers = this.extractHeaders(req);
269
+ const response = await api.enableTwoFactor({ headers });
270
+ if (!response) {
271
+ throw new common_1.BadRequestException('Failed to enable 2FA');
272
+ }
273
+ return {
274
+ backupCodes: response.backupCodes || [],
275
+ success: true,
276
+ totpSecret: response.totpSecret || '',
277
+ totpUri: response.totpURI || '',
278
+ };
279
+ }
280
+ catch (error) {
281
+ this.logger.debug(`Enable 2FA error: ${error instanceof Error ? error.message : 'Unknown error'}`);
282
+ throw new common_1.BadRequestException('Failed to enable 2FA');
283
+ }
284
+ }
285
+ async verifyTwoFactor(req, res, input) {
286
+ this.ensureEnabled();
287
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
288
+ throw new common_1.BadRequestException('Two-factor authentication is not enabled');
289
+ }
290
+ const api = this.betterAuthService.getApi();
291
+ if (!api || !('verifyTOTP' in api)) {
292
+ throw new common_1.BadRequestException('2FA API not available');
293
+ }
294
+ try {
295
+ const headers = this.extractHeaders(req);
296
+ const response = await api.verifyTOTP({
297
+ body: { code: input.code },
298
+ headers,
299
+ });
300
+ if (!response) {
301
+ throw new common_1.UnauthorizedException('Invalid 2FA code');
302
+ }
303
+ if ((0, better_auth_types_1.hasUser)(response)) {
304
+ const mappedUser = await this.userMapper.mapSessionUser(response.user);
305
+ const token = this.betterAuthService.isJwtEnabled() ? response.token : undefined;
306
+ const result = {
307
+ session: (0, better_auth_types_1.hasSession)(response) ? this.mapSession(response.session) : undefined,
308
+ success: true,
309
+ token,
310
+ user: mappedUser ? this.mapUser(response.user, mappedUser) : undefined,
311
+ };
312
+ return this.processCookies(res, result);
313
+ }
314
+ throw new common_1.UnauthorizedException('Invalid 2FA code');
315
+ }
316
+ catch (error) {
317
+ this.logger.debug(`Verify 2FA error: ${error instanceof Error ? error.message : 'Unknown error'}`);
318
+ throw new common_1.UnauthorizedException('Invalid 2FA code');
319
+ }
320
+ }
321
+ async disableTwoFactor(req) {
322
+ this.ensureEnabled();
323
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
324
+ throw new common_1.BadRequestException('Two-factor authentication is not enabled');
325
+ }
326
+ const api = this.betterAuthService.getApi();
327
+ if (!api || !('disableTwoFactor' in api)) {
328
+ throw new common_1.BadRequestException('2FA API not available');
329
+ }
330
+ try {
331
+ const headers = this.extractHeaders(req);
332
+ await api.disableTwoFactor({ headers });
333
+ return { success: true };
334
+ }
335
+ catch (error) {
336
+ this.logger.debug(`Disable 2FA error: ${error instanceof Error ? error.message : 'Unknown error'}`);
337
+ throw new common_1.BadRequestException('Failed to disable 2FA');
338
+ }
339
+ }
340
+ ensureEnabled() {
341
+ if (!this.betterAuthService.isEnabled()) {
342
+ throw new common_1.BadRequestException('Better-Auth is not enabled');
343
+ }
344
+ }
345
+ extractSessionToken(req) {
346
+ const authHeader = req.headers.authorization;
347
+ if (authHeader?.startsWith('Bearer ')) {
348
+ return authHeader.substring(7);
349
+ }
350
+ const basePath = this.betterAuthService.getBasePath().replace(/^\//, '').replace(/\//g, '.');
351
+ const cookieName = `${basePath}.session_token`;
352
+ return req.cookies?.[cookieName] || req.cookies?.['better-auth.session_token'] || null;
353
+ }
354
+ extractHeaders(req) {
355
+ const headers = new Headers();
356
+ for (const [key, value] of Object.entries(req.headers)) {
357
+ if (typeof value === 'string') {
358
+ headers.set(key, value);
359
+ }
360
+ else if (Array.isArray(value)) {
361
+ headers.set(key, value.join(', '));
362
+ }
363
+ }
364
+ return headers;
365
+ }
366
+ mapSession(session) {
367
+ if (!session)
368
+ return undefined;
369
+ return {
370
+ expiresAt: session.expiresAt instanceof Date ? session.expiresAt.toISOString() : String(session.expiresAt),
371
+ id: session.id,
372
+ };
373
+ }
374
+ mapUser(sessionUser, _mappedUser) {
375
+ return {
376
+ email: sessionUser.email,
377
+ emailVerified: sessionUser.emailVerified || false,
378
+ id: sessionUser.id,
379
+ name: sessionUser.name || sessionUser.email.split('@')[0],
380
+ };
381
+ }
382
+ processCookies(res, result) {
383
+ if (this.configService.getFastButReadOnly('cookies')) {
384
+ const cookieOptions = { httpOnly: true, sameSite: 'lax', secure: process.env.NODE_ENV === 'production' };
385
+ if (result.token) {
386
+ res.cookie('token', result.token, cookieOptions);
387
+ delete result.token;
388
+ }
389
+ if (result.session) {
390
+ res.cookie('session', result.session.id, cookieOptions);
391
+ }
392
+ }
393
+ return result;
394
+ }
395
+ clearAuthCookies(res) {
396
+ const cookieOptions = { httpOnly: true, sameSite: 'lax' };
397
+ res.cookie('token', '', { ...cookieOptions, maxAge: 0 });
398
+ res.cookie('session', '', { ...cookieOptions, maxAge: 0 });
399
+ res.cookie('better-auth.session_token', '', { ...cookieOptions, maxAge: 0 });
400
+ }
401
+ };
402
+ exports.CoreBetterAuthController = CoreBetterAuthController;
403
+ __decorate([
404
+ (0, swagger_1.ApiBody)({ type: BetterAuthSignInInput }),
405
+ (0, swagger_1.ApiCreatedResponse)({ description: 'Signed in successfully', type: BetterAuthResponse }),
406
+ (0, swagger_1.ApiOperation)({ description: 'Sign in via Better-Auth with email and password', summary: 'Sign In' }),
407
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
408
+ (0, common_1.Post)('sign-in/email'),
409
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
410
+ __param(0, (0, common_1.Res)({ passthrough: true })),
411
+ __param(1, (0, common_1.Body)()),
412
+ __metadata("design:type", Function),
413
+ __metadata("design:paramtypes", [Object, BetterAuthSignInInput]),
414
+ __metadata("design:returntype", Promise)
415
+ ], CoreBetterAuthController.prototype, "signIn", null);
416
+ __decorate([
417
+ (0, swagger_1.ApiBody)({ type: BetterAuthSignUpInput }),
418
+ (0, swagger_1.ApiCreatedResponse)({ description: 'Signed up successfully', type: BetterAuthResponse }),
419
+ (0, swagger_1.ApiOperation)({ description: 'Sign up via Better-Auth with email and password', summary: 'Sign Up' }),
420
+ (0, common_1.Post)('sign-up/email'),
421
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
422
+ __param(0, (0, common_1.Res)({ passthrough: true })),
423
+ __param(1, (0, common_1.Body)()),
424
+ __metadata("design:type", Function),
425
+ __metadata("design:paramtypes", [Object, BetterAuthSignUpInput]),
426
+ __metadata("design:returntype", Promise)
427
+ ], CoreBetterAuthController.prototype, "signUp", null);
428
+ __decorate([
429
+ (0, swagger_1.ApiOkResponse)({ description: 'Signed out successfully', type: BetterAuthResponse }),
430
+ (0, swagger_1.ApiOperation)({ description: 'Sign out from Better-Auth', summary: 'Sign Out' }),
431
+ (0, common_1.Get)('sign-out'),
432
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
433
+ __param(0, (0, common_1.Req)()),
434
+ __param(1, (0, common_1.Res)({ passthrough: true })),
435
+ __metadata("design:type", Function),
436
+ __metadata("design:paramtypes", [Object, Object]),
437
+ __metadata("design:returntype", Promise)
438
+ ], CoreBetterAuthController.prototype, "signOut", null);
439
+ __decorate([
440
+ (0, swagger_1.ApiOkResponse)({ description: 'Current session', type: BetterAuthResponse }),
441
+ (0, swagger_1.ApiOperation)({ description: 'Get current session from Better-Auth', summary: 'Get Session' }),
442
+ (0, common_1.Get)('session'),
443
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
444
+ __param(0, (0, common_1.Req)()),
445
+ __metadata("design:type", Function),
446
+ __metadata("design:paramtypes", [Object]),
447
+ __metadata("design:returntype", Promise)
448
+ ], CoreBetterAuthController.prototype, "getSession", null);
449
+ __decorate([
450
+ (0, swagger_1.ApiOkResponse)({ description: '2FA setup information', type: BetterAuthTwoFactorSetupResponse }),
451
+ (0, swagger_1.ApiOperation)({ description: 'Enable Two-Factor Authentication', summary: 'Enable 2FA' }),
452
+ (0, common_1.Post)('two-factor/enable'),
453
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
454
+ __param(0, (0, common_1.Req)()),
455
+ __metadata("design:type", Function),
456
+ __metadata("design:paramtypes", [Object]),
457
+ __metadata("design:returntype", Promise)
458
+ ], CoreBetterAuthController.prototype, "enableTwoFactor", null);
459
+ __decorate([
460
+ (0, swagger_1.ApiBody)({ type: BetterAuthTwoFactorInput }),
461
+ (0, swagger_1.ApiOkResponse)({ description: 'Verification result', type: BetterAuthResponse }),
462
+ (0, swagger_1.ApiOperation)({ description: 'Verify Two-Factor Authentication code', summary: 'Verify 2FA' }),
463
+ (0, common_1.HttpCode)(common_1.HttpStatus.OK),
464
+ (0, common_1.Post)('two-factor/verify'),
465
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
466
+ __param(0, (0, common_1.Req)()),
467
+ __param(1, (0, common_1.Res)({ passthrough: true })),
468
+ __param(2, (0, common_1.Body)()),
469
+ __metadata("design:type", Function),
470
+ __metadata("design:paramtypes", [Object, Object, BetterAuthTwoFactorInput]),
471
+ __metadata("design:returntype", Promise)
472
+ ], CoreBetterAuthController.prototype, "verifyTwoFactor", null);
473
+ __decorate([
474
+ (0, swagger_1.ApiOkResponse)({ description: 'Disable result', type: BetterAuthResponse }),
475
+ (0, swagger_1.ApiOperation)({ description: 'Disable Two-Factor Authentication', summary: 'Disable 2FA' }),
476
+ (0, common_1.Post)('two-factor/disable'),
477
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
478
+ __param(0, (0, common_1.Req)()),
479
+ __metadata("design:type", Function),
480
+ __metadata("design:paramtypes", [Object]),
481
+ __metadata("design:returntype", Promise)
482
+ ], CoreBetterAuthController.prototype, "disableTwoFactor", null);
483
+ exports.CoreBetterAuthController = CoreBetterAuthController = CoreBetterAuthController_1 = __decorate([
484
+ (0, swagger_1.ApiTags)('Better-Auth'),
485
+ (0, common_1.Controller)('iam'),
486
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.ADMIN),
487
+ __metadata("design:paramtypes", [better_auth_service_1.BetterAuthService,
488
+ better_auth_user_mapper_1.BetterAuthUserMapper,
489
+ config_service_1.ConfigService])
490
+ ], CoreBetterAuthController);
491
+ //# sourceMappingURL=core-better-auth.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-better-auth.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAYwB;AACxB,6CAAiH;AAGjH,6EAAgE;AAChE,4DAAwD;AACxD,yEAAqE;AACrE,uEAAwF;AACxF,+DAA0D;AAC1D,2DAAuE;AAgBvE,MAAa,qBAAqB;CAMjC;AAND,sDAMC;AAJC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;;wDACtC;AAGlB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;;iDAChC;AAMb,MAAa,sBAAsB;CAelC;AAfD,wDAeC;AAbC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;;qDACrC;AAGd;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;;6DACnC;AAGvB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;;kDAC9C;AAGX;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;;oDACrC;AAGb;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;gEAC7C;AAM7B,MAAa,kBAAkB;CAkB9B;AAlBD,gDAkBC;AAhBC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iDAC1D;AAGf;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;6DAC7C;AAG5B;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;8BACxF,qBAAqB;mDAAC;AAGhC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;;mDAC3C;AAGjB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;iDACpE;AAGf;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;8BACzF,sBAAsB;gDAAC;AAUhC,MAAa,qBAAqB;CAMjC;AAND,sDAMC;AAJC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;;oDAClE;AAGd;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;;uDAC7B;AAMnB,MAAa,qBAAqB;CASjC;AATD,sDASC;AAPC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;;oDAClE;AAGd;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;mDACrE;AAGd;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;;uDAChD;AAMnB,MAAa,wBAAwB;CAGpC;AAHD,4DAGC;AADC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;sDACvE;AAMf,MAAa,gCAAgC;CAY5C;AAZD,4EAYC;AAVC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;;qEACpC;AAGtB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;;iEAC3C;AAGjB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;;oEAC1C;AAGnB;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;;iEACnD;AAyCX,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAGnC,YACqB,iBAAoC,EACpC,UAAgC,EAChC,aAA4B;QAF5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAAsB;QAChC,kBAAa,GAAb,aAAa,CAAe;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;IAMnE,CAAC;IAeE,AAAN,KAAK,CAAC,MAAM,CACkB,GAAa,EACjC,KAA4B;QAEpC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,4BAAmB,CAAC,+BAA+B,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;gBACrC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;aACvD,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;YACzD,CAAC;YAGD,IAAI,IAAA,+BAAW,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACrD,CAAC;YAGD,IAAI,IAAA,2BAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAE,QAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEpG,MAAM,MAAM,GAAuB;oBACjC,iBAAiB,EAAE,KAAK;oBACxB,OAAO,EAAE,IAAA,8BAAU,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7E,OAAO,EAAE,IAAI;oBACb,KAAK;oBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;iBACvE,CAAC;gBAEF,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAChG,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAUK,AAAN,KAAK,CAAC,MAAM,CACkB,GAAa,EACjC,KAA4B;QAEpC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,4BAAmB,CAAC,+BAA+B,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;gBACrC,IAAI,EAAE;oBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,IAAA,2BAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAEtB,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEvE,MAAM,MAAM,GAAuB;oBACjC,iBAAiB,EAAE,KAAK;oBACxB,OAAO,EAAE,IAAA,8BAAU,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7E,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;iBACvE,CAAC;gBAEF,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;YACpD,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,4BAAmB,CAAC,qCAAqC,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IASK,AAAN,KAAK,CAAC,OAAO,CAAQ,GAAY,EAA8B,GAAa;QAC1E,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;YACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEnD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC3D,CAAC;YAGD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAE3B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAEjG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IASK,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAY;QAClC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;YACxC,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE9D,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBACjC,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACpG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAaK,AAAN,KAAK,CAAC,eAAe,CAAQ,GAAY;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,4BAAmB,CAAC,0CAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,iBAAiB,IAAI,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,4BAAmB,CAAC,sBAAsB,CAAC,CAAC;YACxD,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;gBACvC,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE;gBACrC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;aAChC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACnG,MAAM,IAAI,4BAAmB,CAAC,sBAAsB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAWK,AAAN,KAAK,CAAC,eAAe,CACZ,GAAY,EACS,GAAa,EACjC,KAA+B;QAEvC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,4BAAmB,CAAC,0CAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAO,GAAW,CAAC,UAAU,CAAC;gBAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC1B,OAAO;aACR,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;YACtD,CAAC;YAED,IAAI,IAAA,2BAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAE,QAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAEpG,MAAM,MAAM,GAAuB;oBACjC,OAAO,EAAE,IAAA,8BAAU,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC7E,OAAO,EAAE,IAAI;oBACb,KAAK;oBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;iBACvE,CAAC;gBAEF,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACnG,MAAM,IAAI,8BAAqB,CAAC,kBAAkB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IASK,AAAN,KAAK,CAAC,gBAAgB,CAAQ,GAAY;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,4BAAmB,CAAC,0CAA0C,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,kBAAkB,IAAI,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACzC,MAAO,GAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACpG,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IASS,aAAa;QACrB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,4BAAmB,CAAC,4BAA4B,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAKS,mBAAmB,CAAC,GAAY;QAExC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,IAAI,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7F,MAAM,UAAU,GAAG,GAAG,QAAQ,gBAAgB,CAAC;QAC/C,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC;IACzF,CAAC;IAKS,cAAc,CAAC,GAAY;QACnC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAKS,UAAU,CAAC,OAA2D;QAC9E,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,SAAS,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1G,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,CAAC;IACJ,CAAC;IAQS,OAAO,CAAC,WAAkC,EAAE,WAAgB;QACpE,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,aAAa,EAAE,WAAW,CAAC,aAAa,IAAI,KAAK;YACjD,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;IAKS,cAAc,CAAC,GAAa,EAAE,MAA0B;QAEhE,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAc,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAGlH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC;YAGD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKS,gBAAgB,CAAC,GAAa;QACtC,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAc,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF,CAAA;AAxaY,4DAAwB;AAsB7B;IANL,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IACxC,IAAA,4BAAkB,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACvF,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACpG,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,aAAI,EAAC,eAAe,CAAC;IACrB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IAExB,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1B,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAQ,qBAAqB;;sDA4CrC;AAUK;IALL,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IACxC,IAAA,4BAAkB,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACvF,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACpG,IAAA,aAAI,EAAC,eAAe,CAAC;IACrB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IAExB,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1B,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAQ,qBAAqB;;sDA8CrC;AASK;IAJL,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,yBAAyB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACnF,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC/E,IAAA,YAAG,EAAC,UAAU,CAAC;IACf,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACZ,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;;;;uDAuB7D;AASK;IAJL,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3E,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC7F,IAAA,YAAG,EAAC,SAAS,CAAC;IACd,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACT,WAAA,IAAA,YAAG,GAAE,CAAA;;;;0DAuBtB;AAaK;IAJL,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;IAC/F,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxF,IAAA,aAAI,EAAC,mBAAmB,CAAC;IACzB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,MAAM,CAAC;IACA,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+DA8B3B;AAWK;IANL,IAAA,iBAAO,EAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IAC3C,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC/E,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,uCAAuC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;IAC7F,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;IACvB,IAAA,aAAI,EAAC,mBAAmB,CAAC;IACzB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IAExB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1B,WAAA,IAAA,aAAI,GAAE,CAAA;;qDAAQ,wBAAwB;;+DA2CxC;AASK;IAJL,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC1E,IAAA,sBAAY,EAAC,EAAE,WAAW,EAAE,mCAAmC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAC1F,IAAA,aAAI,EAAC,oBAAoB,CAAC;IAC1B,IAAA,uBAAK,EAAC,oBAAQ,CAAC,MAAM,CAAC;IACC,WAAA,IAAA,YAAG,GAAE,CAAA;;;;gEAqB5B;mCAhUU,wBAAwB;IAHpC,IAAA,iBAAO,EAAC,aAAa,CAAC;IACtB,IAAA,mBAAU,EAAC,KAAK,CAAC;IACjB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,KAAK,CAAC;qCAKoB,uCAAiB;QACxB,8CAAoB;QACjB,8BAAa;GANtC,wBAAwB,CAwapC"}
@@ -0,0 +1,59 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { Request, Response } from 'express';
3
+ import { BetterAuthAuthModel } from './better-auth-auth.model';
4
+ import { BetterAuth2FASetupModel, BetterAuthFeaturesModel, BetterAuthPasskeyChallengeModel, BetterAuthPasskeyModel, BetterAuthSessionModel, BetterAuthUserModel } from './better-auth-models';
5
+ import { BetterAuthUserMapper, MappedUser } from './better-auth-user.mapper';
6
+ import { BetterAuthService } from './better-auth.service';
7
+ export declare class CoreBetterAuthResolver {
8
+ protected readonly betterAuthService: BetterAuthService;
9
+ protected readonly userMapper: BetterAuthUserMapper;
10
+ protected readonly logger: Logger;
11
+ constructor(betterAuthService: BetterAuthService, userMapper: BetterAuthUserMapper);
12
+ betterAuthSession(ctx: {
13
+ req: Request;
14
+ }): Promise<BetterAuthSessionModel | null>;
15
+ betterAuthEnabled(): boolean;
16
+ betterAuthFeatures(): BetterAuthFeaturesModel;
17
+ betterAuthSignIn(email: string, password: string, _ctx: {
18
+ req: Request;
19
+ res: Response;
20
+ }): Promise<BetterAuthAuthModel>;
21
+ betterAuthSignUp(email: string, password: string, name?: string): Promise<BetterAuthAuthModel>;
22
+ betterAuthSignOut(ctx: {
23
+ req: Request;
24
+ }): Promise<boolean>;
25
+ betterAuthVerify2FA(code: string, ctx: {
26
+ req: Request;
27
+ }): Promise<BetterAuthAuthModel>;
28
+ betterAuthEnable2FA(password: string, ctx: {
29
+ req: Request;
30
+ }): Promise<BetterAuth2FASetupModel>;
31
+ betterAuthDisable2FA(password: string, ctx: {
32
+ req: Request;
33
+ }): Promise<boolean>;
34
+ betterAuthGenerateBackupCodes(ctx: {
35
+ req: Request;
36
+ }): Promise<null | string[]>;
37
+ betterAuthGetPasskeyChallenge(ctx: {
38
+ req: Request;
39
+ }): Promise<BetterAuthPasskeyChallengeModel>;
40
+ betterAuthListPasskeys(ctx: {
41
+ req: Request;
42
+ }): Promise<BetterAuthPasskeyModel[] | null>;
43
+ betterAuthDeletePasskey(passkeyId: string, ctx: {
44
+ req: Request;
45
+ }): Promise<boolean>;
46
+ protected ensureEnabled(): void;
47
+ protected convertHeaders(headers: Record<string, string | string[] | undefined>): Headers;
48
+ protected mapSessionInfo(session: {
49
+ createdAt?: Date;
50
+ expiresAt?: Date;
51
+ id?: string;
52
+ token?: string;
53
+ }): {
54
+ expiresAt?: Date;
55
+ id?: string;
56
+ token?: string;
57
+ };
58
+ protected mapToUserModel(user: MappedUser): BetterAuthUserModel;
59
+ }