@lenne.tech/nest-server 11.6.2 → 11.7.1

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 (136) hide show
  1. package/dist/config.env.js +19 -12
  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 +21 -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/auth/core-auth.controller.d.ts +1 -0
  13. package/dist/core/modules/auth/core-auth.controller.js +28 -2
  14. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  15. package/dist/core/modules/auth/core-auth.module.js +14 -1
  16. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  17. package/dist/core/modules/auth/core-auth.resolver.d.ts +1 -0
  18. package/dist/core/modules/auth/core-auth.resolver.js +20 -2
  19. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  20. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.d.ts +4 -0
  21. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js +17 -0
  22. package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js.map +1 -0
  23. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +9 -0
  24. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +74 -0
  25. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -0
  26. package/dist/core/modules/auth/interfaces/auth-provider.interface.d.ts +7 -0
  27. package/dist/core/modules/auth/interfaces/auth-provider.interface.js +5 -0
  28. package/dist/core/modules/auth/interfaces/auth-provider.interface.js.map +1 -0
  29. package/dist/core/modules/auth/interfaces/core-auth-user.interface.d.ts +1 -0
  30. package/dist/core/modules/auth/services/core-auth.service.d.ts +10 -1
  31. package/dist/core/modules/auth/services/core-auth.service.js +141 -9
  32. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  33. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +31 -0
  34. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +153 -0
  35. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -0
  36. package/dist/core/modules/better-auth/better-auth-migration-status.model.d.ts +10 -0
  37. package/dist/core/modules/better-auth/better-auth-migration-status.model.js +57 -0
  38. package/dist/core/modules/better-auth/better-auth-migration-status.model.js.map +1 -0
  39. package/dist/core/modules/better-auth/better-auth-models.d.ts +0 -1
  40. package/dist/core/modules/better-auth/better-auth-models.js +0 -4
  41. package/dist/core/modules/better-auth/better-auth-models.js.map +1 -1
  42. package/dist/core/modules/better-auth/better-auth-user.mapper.d.ts +33 -0
  43. package/dist/core/modules/better-auth/better-auth-user.mapper.js +443 -0
  44. package/dist/core/modules/better-auth/better-auth-user.mapper.js.map +1 -1
  45. package/dist/core/modules/better-auth/better-auth.config.js +3 -0
  46. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  47. package/dist/core/modules/better-auth/better-auth.module.d.ts +10 -2
  48. package/dist/core/modules/better-auth/better-auth.module.js +40 -52
  49. package/dist/core/modules/better-auth/better-auth.module.js.map +1 -1
  50. package/dist/core/modules/better-auth/better-auth.resolver.d.ts +8 -12
  51. package/dist/core/modules/better-auth/better-auth.resolver.js +33 -351
  52. package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
  53. package/dist/core/modules/better-auth/better-auth.service.d.ts +0 -1
  54. package/dist/core/modules/better-auth/better-auth.service.js +0 -3
  55. package/dist/core/modules/better-auth/better-auth.service.js.map +1 -1
  56. package/dist/core/modules/better-auth/better-auth.types.d.ts +9 -8
  57. package/dist/core/modules/better-auth/better-auth.types.js +14 -3
  58. package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
  59. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +67 -0
  60. package/dist/core/modules/better-auth/core-better-auth.controller.js +504 -0
  61. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -0
  62. package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +61 -0
  63. package/dist/core/modules/better-auth/core-better-auth.resolver.js +552 -0
  64. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -0
  65. package/dist/core/modules/better-auth/index.d.ts +3 -0
  66. package/dist/core/modules/better-auth/index.js +3 -0
  67. package/dist/core/modules/better-auth/index.js.map +1 -1
  68. package/dist/core/modules/user/core-user.service.d.ts +7 -1
  69. package/dist/core/modules/user/core-user.service.js +57 -3
  70. package/dist/core/modules/user/core-user.service.js.map +1 -1
  71. package/dist/core/modules/user/interfaces/core-user-service-options.interface.d.ts +4 -0
  72. package/dist/core/modules/user/interfaces/core-user-service-options.interface.js +3 -0
  73. package/dist/core/modules/user/interfaces/core-user-service-options.interface.js.map +1 -0
  74. package/dist/core.module.d.ts +3 -0
  75. package/dist/core.module.js +132 -54
  76. package/dist/core.module.js.map +1 -1
  77. package/dist/index.d.ts +5 -0
  78. package/dist/index.js +5 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/server/modules/auth/auth.resolver.js +2 -0
  81. package/dist/server/modules/auth/auth.resolver.js.map +1 -1
  82. package/dist/server/modules/better-auth/better-auth.controller.d.ts +10 -0
  83. package/dist/server/modules/better-auth/better-auth.controller.js +36 -0
  84. package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -0
  85. package/dist/server/modules/better-auth/better-auth.module.d.ts +9 -0
  86. package/dist/server/modules/better-auth/better-auth.module.js +44 -0
  87. package/dist/server/modules/better-auth/better-auth.module.js.map +1 -0
  88. package/dist/server/modules/better-auth/better-auth.resolver.d.ts +47 -0
  89. package/dist/server/modules/better-auth/better-auth.resolver.js +234 -0
  90. package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -0
  91. package/dist/server/modules/file/file-info.model.d.ts +71 -3
  92. package/dist/server/modules/user/user.model.d.ts +169 -3
  93. package/dist/server/modules/user/user.service.d.ts +3 -1
  94. package/dist/server/modules/user/user.service.js +7 -3
  95. package/dist/server/modules/user/user.service.js.map +1 -1
  96. package/dist/server/server.module.js +6 -1
  97. package/dist/server/server.module.js.map +1 -1
  98. package/dist/tsconfig.build.tsbuildinfo +1 -1
  99. package/package.json +20 -29
  100. package/src/config.env.ts +34 -13
  101. package/src/core/common/helpers/filter.helper.ts +15 -17
  102. package/src/core/common/helpers/gridfs.helper.ts +5 -5
  103. package/src/core/common/interfaces/server-options.interface.ts +222 -14
  104. package/src/core/common/services/crud.service.ts +22 -22
  105. package/src/core/modules/auth/core-auth.controller.ts +93 -5
  106. package/src/core/modules/auth/core-auth.module.ts +15 -1
  107. package/src/core/modules/auth/core-auth.resolver.ts +70 -2
  108. package/src/core/modules/auth/exceptions/legacy-auth-disabled.exception.ts +35 -0
  109. package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +109 -0
  110. package/src/core/modules/auth/interfaces/auth-provider.interface.ts +86 -0
  111. package/src/core/modules/auth/interfaces/core-auth-user.interface.ts +6 -0
  112. package/src/core/modules/auth/services/core-auth.service.ts +245 -6
  113. package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +283 -0
  114. package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +254 -0
  115. package/src/core/modules/better-auth/README.md +698 -54
  116. package/src/core/modules/better-auth/better-auth-migration-status.model.ts +73 -0
  117. package/src/core/modules/better-auth/better-auth-models.ts +0 -3
  118. package/src/core/modules/better-auth/better-auth-user.mapper.ts +805 -0
  119. package/src/core/modules/better-auth/better-auth.config.ts +5 -0
  120. package/src/core/modules/better-auth/better-auth.module.ts +107 -66
  121. package/src/core/modules/better-auth/better-auth.resolver.ts +88 -553
  122. package/src/core/modules/better-auth/better-auth.service.ts +0 -9
  123. package/src/core/modules/better-auth/better-auth.types.ts +25 -10
  124. package/src/core/modules/better-auth/core-better-auth.controller.ts +646 -0
  125. package/src/core/modules/better-auth/core-better-auth.resolver.ts +730 -0
  126. package/src/core/modules/better-auth/index.ts +9 -1
  127. package/src/core/modules/user/core-user.service.ts +131 -4
  128. package/src/core/modules/user/interfaces/core-user-service-options.interface.ts +15 -0
  129. package/src/core.module.ts +257 -74
  130. package/src/index.ts +5 -0
  131. package/src/server/modules/auth/auth.resolver.ts +8 -0
  132. package/src/server/modules/better-auth/better-auth.controller.ts +41 -0
  133. package/src/server/modules/better-auth/better-auth.module.ts +88 -0
  134. package/src/server/modules/better-auth/better-auth.resolver.ts +210 -0
  135. package/src/server/modules/user/user.service.ts +4 -2
  136. package/src/server/server.module.ts +10 -1
@@ -0,0 +1,552 @@
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 CoreBetterAuthResolver_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CoreBetterAuthResolver = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const graphql_1 = require("@nestjs/graphql");
19
+ const roles_decorator_1 = require("../../common/decorators/roles.decorator");
20
+ const role_enum_1 = require("../../common/enums/role.enum");
21
+ const auth_guard_strategy_enum_1 = require("../auth/auth-guard-strategy.enum");
22
+ const auth_guard_1 = require("../auth/guards/auth.guard");
23
+ const better_auth_auth_model_1 = require("./better-auth-auth.model");
24
+ const better_auth_migration_status_model_1 = require("./better-auth-migration-status.model");
25
+ const better_auth_models_1 = require("./better-auth-models");
26
+ const better_auth_user_mapper_1 = require("./better-auth-user.mapper");
27
+ const better_auth_service_1 = require("./better-auth.service");
28
+ const better_auth_types_1 = require("./better-auth.types");
29
+ let CoreBetterAuthResolver = CoreBetterAuthResolver_1 = class CoreBetterAuthResolver {
30
+ constructor(betterAuthService, userMapper) {
31
+ this.betterAuthService = betterAuthService;
32
+ this.userMapper = userMapper;
33
+ this.logger = new common_1.Logger(CoreBetterAuthResolver_1.name);
34
+ }
35
+ async betterAuthSession(ctx) {
36
+ if (!this.betterAuthService.isEnabled()) {
37
+ return null;
38
+ }
39
+ const { session, user } = await this.betterAuthService.getSession(ctx.req);
40
+ if (!session || !user) {
41
+ return null;
42
+ }
43
+ return {
44
+ expiresAt: session.expiresAt,
45
+ id: session.id,
46
+ user: {
47
+ email: user.email,
48
+ emailVerified: user.emailVerified,
49
+ id: user.id,
50
+ name: user.name,
51
+ },
52
+ };
53
+ }
54
+ betterAuthEnabled() {
55
+ return this.betterAuthService.isEnabled();
56
+ }
57
+ betterAuthFeatures() {
58
+ return {
59
+ enabled: this.betterAuthService.isEnabled(),
60
+ jwt: this.betterAuthService.isJwtEnabled(),
61
+ passkey: this.betterAuthService.isPasskeyEnabled(),
62
+ socialProviders: this.betterAuthService.getEnabledSocialProviders(),
63
+ twoFactor: this.betterAuthService.isTwoFactorEnabled(),
64
+ };
65
+ }
66
+ async betterAuthMigrationStatus() {
67
+ const status = await this.userMapper.getMigrationStatus();
68
+ return status;
69
+ }
70
+ async betterAuthSignIn(email, password, _ctx) {
71
+ this.ensureEnabled();
72
+ const api = this.betterAuthService.getApi();
73
+ if (!api) {
74
+ throw new common_1.BadRequestException('Better-Auth API not available');
75
+ }
76
+ try {
77
+ const response = (await api.signInEmail({
78
+ body: { email, password },
79
+ }));
80
+ if (!response) {
81
+ throw new common_1.UnauthorizedException('Invalid credentials');
82
+ }
83
+ if ((0, better_auth_types_1.requires2FA)(response)) {
84
+ return {
85
+ requiresTwoFactor: true,
86
+ success: false,
87
+ user: null,
88
+ };
89
+ }
90
+ if ((0, better_auth_types_1.hasUser)(response)) {
91
+ const sessionUser = response.user;
92
+ const mappedUser = await this.userMapper.mapSessionUser(sessionUser);
93
+ const token = this.betterAuthService.isJwtEnabled() ? response.token : undefined;
94
+ return {
95
+ requiresTwoFactor: false,
96
+ session: (0, better_auth_types_1.hasSession)(response) ? this.mapSessionInfo(response.session) : null,
97
+ success: true,
98
+ token,
99
+ user: mappedUser ? this.mapToUserModel(mappedUser) : null,
100
+ };
101
+ }
102
+ throw new common_1.UnauthorizedException('Invalid credentials');
103
+ }
104
+ catch (error) {
105
+ this.logger.debug(`Sign-in error: ${error instanceof Error ? error.message : 'Unknown error'}`);
106
+ throw new common_1.UnauthorizedException('Invalid credentials');
107
+ }
108
+ }
109
+ async betterAuthSignUp(email, password, name) {
110
+ this.ensureEnabled();
111
+ const api = this.betterAuthService.getApi();
112
+ if (!api) {
113
+ throw new common_1.BadRequestException('Better-Auth API not available');
114
+ }
115
+ try {
116
+ const response = (await api.signUpEmail({
117
+ body: {
118
+ email,
119
+ name: name || email.split('@')[0],
120
+ password,
121
+ },
122
+ }));
123
+ if (!response) {
124
+ throw new common_1.BadRequestException('Sign-up failed');
125
+ }
126
+ if ((0, better_auth_types_1.hasUser)(response)) {
127
+ const sessionUser = response.user;
128
+ await this.userMapper.linkOrCreateUser(sessionUser);
129
+ const mappedUser = await this.userMapper.mapSessionUser(sessionUser);
130
+ return {
131
+ requiresTwoFactor: false,
132
+ session: (0, better_auth_types_1.hasSession)(response) ? this.mapSessionInfo(response.session) : null,
133
+ success: true,
134
+ user: mappedUser ? this.mapToUserModel(mappedUser) : null,
135
+ };
136
+ }
137
+ throw new common_1.BadRequestException('Sign-up failed');
138
+ }
139
+ catch (error) {
140
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
141
+ this.logger.debug(`Sign-up error: ${errorMessage}`);
142
+ if (errorMessage.includes('already exists')) {
143
+ throw new common_1.BadRequestException('User with this email already exists');
144
+ }
145
+ throw new common_1.BadRequestException('Sign-up failed');
146
+ }
147
+ }
148
+ async betterAuthSignOut(ctx) {
149
+ if (!this.betterAuthService.isEnabled()) {
150
+ return false;
151
+ }
152
+ const api = this.betterAuthService.getApi();
153
+ if (!api) {
154
+ return false;
155
+ }
156
+ try {
157
+ const headers = this.convertHeaders(ctx.req.headers);
158
+ await api.signOut({ headers });
159
+ return true;
160
+ }
161
+ catch (error) {
162
+ this.logger.debug(`Sign-out error: ${error instanceof Error ? error.message : 'Unknown error'}`);
163
+ return false;
164
+ }
165
+ }
166
+ async betterAuthVerify2FA(code, ctx) {
167
+ this.ensureEnabled();
168
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
169
+ throw new common_1.BadRequestException('Two-factor authentication is not enabled');
170
+ }
171
+ const api = this.betterAuthService.getApi();
172
+ if (!api) {
173
+ throw new common_1.BadRequestException('Better-Auth API not available');
174
+ }
175
+ try {
176
+ const headers = this.convertHeaders(ctx.req.headers);
177
+ const twoFactorApi = api.twoFactor;
178
+ if (!twoFactorApi?.verifyTotp) {
179
+ throw new common_1.BadRequestException('2FA verification method not available');
180
+ }
181
+ const response = await twoFactorApi.verifyTotp({
182
+ body: { code },
183
+ headers,
184
+ });
185
+ if (response && (0, better_auth_types_1.hasUser)(response)) {
186
+ const sessionUser = response.user;
187
+ const mappedUser = await this.userMapper.mapSessionUser(sessionUser);
188
+ return {
189
+ requiresTwoFactor: false,
190
+ success: true,
191
+ user: mappedUser ? this.mapToUserModel(mappedUser) : null,
192
+ };
193
+ }
194
+ throw new common_1.UnauthorizedException('Invalid 2FA code');
195
+ }
196
+ catch (error) {
197
+ this.logger.debug(`2FA verification error: ${error instanceof Error ? error.message : 'Unknown error'}`);
198
+ throw new common_1.UnauthorizedException('Invalid 2FA code');
199
+ }
200
+ }
201
+ async betterAuthEnable2FA(password, ctx) {
202
+ this.ensureEnabled();
203
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
204
+ return { error: 'Two-factor authentication is not enabled on this server', success: false };
205
+ }
206
+ const api = this.betterAuthService.getApi();
207
+ if (!api) {
208
+ return { error: 'Better-Auth API not available', success: false };
209
+ }
210
+ try {
211
+ const headers = this.convertHeaders(ctx.req.headers);
212
+ const twoFactorApi = api.twoFactor;
213
+ if (!twoFactorApi?.enable) {
214
+ return { error: '2FA enable method not available', success: false };
215
+ }
216
+ const response = await twoFactorApi.enable({
217
+ body: { password },
218
+ headers,
219
+ });
220
+ return {
221
+ backupCodes: response.backupCodes,
222
+ success: true,
223
+ totpUri: response.totpURI,
224
+ };
225
+ }
226
+ catch (error) {
227
+ this.logger.debug(`2FA enable error: ${error instanceof Error ? error.message : 'Unknown error'}`);
228
+ return { error: error instanceof Error ? error.message : 'Failed to enable 2FA', success: false };
229
+ }
230
+ }
231
+ async betterAuthDisable2FA(password, ctx) {
232
+ this.ensureEnabled();
233
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
234
+ throw new common_1.BadRequestException('Two-factor authentication is not enabled on this server');
235
+ }
236
+ const api = this.betterAuthService.getApi();
237
+ if (!api) {
238
+ return false;
239
+ }
240
+ try {
241
+ const headers = this.convertHeaders(ctx.req.headers);
242
+ const twoFactorApi = api.twoFactor;
243
+ if (!twoFactorApi?.disable) {
244
+ throw new common_1.BadRequestException('2FA disable method not available');
245
+ }
246
+ const response = await twoFactorApi.disable({
247
+ body: { password },
248
+ headers,
249
+ });
250
+ return response?.status === true;
251
+ }
252
+ catch (error) {
253
+ this.logger.debug(`2FA disable error: ${error instanceof Error ? error.message : 'Unknown error'}`);
254
+ return false;
255
+ }
256
+ }
257
+ async betterAuthGenerateBackupCodes(ctx) {
258
+ this.ensureEnabled();
259
+ if (!this.betterAuthService.isTwoFactorEnabled()) {
260
+ throw new common_1.BadRequestException('Two-factor authentication is not enabled on this server');
261
+ }
262
+ const api = this.betterAuthService.getApi();
263
+ if (!api) {
264
+ return null;
265
+ }
266
+ try {
267
+ const headers = this.convertHeaders(ctx.req.headers);
268
+ const twoFactorApi = api.twoFactor;
269
+ if (!twoFactorApi?.generateBackupCodes) {
270
+ throw new common_1.BadRequestException('Generate backup codes method not available');
271
+ }
272
+ const response = await twoFactorApi.generateBackupCodes({ headers });
273
+ return response?.backupCodes || null;
274
+ }
275
+ catch (error) {
276
+ this.logger.debug(`Generate backup codes error: ${error instanceof Error ? error.message : 'Unknown error'}`);
277
+ return null;
278
+ }
279
+ }
280
+ async betterAuthGetPasskeyChallenge(ctx) {
281
+ this.ensureEnabled();
282
+ if (!this.betterAuthService.isPasskeyEnabled()) {
283
+ return { error: 'Passkey authentication is not enabled on this server', success: false };
284
+ }
285
+ const api = this.betterAuthService.getApi();
286
+ if (!api) {
287
+ return { error: 'Better-Auth API not available', success: false };
288
+ }
289
+ try {
290
+ const headers = this.convertHeaders(ctx.req.headers);
291
+ const passkeyApi = api.passkey;
292
+ if (!passkeyApi?.generateRegisterOptions) {
293
+ return { error: 'Passkey registration method not available', success: false };
294
+ }
295
+ const challenge = await passkeyApi.generateRegisterOptions({ headers });
296
+ return {
297
+ challenge: JSON.stringify(challenge),
298
+ success: true,
299
+ };
300
+ }
301
+ catch (error) {
302
+ this.logger.debug(`Passkey challenge error: ${error instanceof Error ? error.message : 'Unknown error'}`);
303
+ return { error: error instanceof Error ? error.message : 'Failed to get passkey challenge', success: false };
304
+ }
305
+ }
306
+ async betterAuthListPasskeys(ctx) {
307
+ if (!this.betterAuthService.isEnabled() || !this.betterAuthService.isPasskeyEnabled()) {
308
+ return null;
309
+ }
310
+ const api = this.betterAuthService.getApi();
311
+ if (!api) {
312
+ return null;
313
+ }
314
+ try {
315
+ const headers = this.convertHeaders(ctx.req.headers);
316
+ const passkeyApi = api.passkey;
317
+ if (!passkeyApi?.listUserPasskeys) {
318
+ return null;
319
+ }
320
+ const passkeys = await passkeyApi.listUserPasskeys({ headers });
321
+ return passkeys.map((pk) => ({
322
+ createdAt: pk.createdAt,
323
+ credentialId: pk.credentialID,
324
+ id: pk.id,
325
+ name: pk.name,
326
+ }));
327
+ }
328
+ catch (error) {
329
+ this.logger.debug(`List passkeys error: ${error instanceof Error ? error.message : 'Unknown error'}`);
330
+ return null;
331
+ }
332
+ }
333
+ async betterAuthDeletePasskey(passkeyId, ctx) {
334
+ this.ensureEnabled();
335
+ if (!this.betterAuthService.isPasskeyEnabled()) {
336
+ throw new common_1.BadRequestException('Passkey authentication is not enabled on this server');
337
+ }
338
+ const api = this.betterAuthService.getApi();
339
+ if (!api) {
340
+ return false;
341
+ }
342
+ try {
343
+ const headers = this.convertHeaders(ctx.req.headers);
344
+ const passkeyApi = api.passkey;
345
+ if (!passkeyApi?.deletePasskey) {
346
+ throw new common_1.BadRequestException('Delete passkey method not available');
347
+ }
348
+ const response = await passkeyApi.deletePasskey({
349
+ body: { id: passkeyId },
350
+ headers,
351
+ });
352
+ return response?.status === true;
353
+ }
354
+ catch (error) {
355
+ this.logger.debug(`Delete passkey error: ${error instanceof Error ? error.message : 'Unknown error'}`);
356
+ return false;
357
+ }
358
+ }
359
+ ensureEnabled() {
360
+ if (!this.betterAuthService.isEnabled()) {
361
+ throw new common_1.BadRequestException('Better-Auth is not enabled. Check that betterAuth.enabled is not set to false in your environment.');
362
+ }
363
+ }
364
+ convertHeaders(headers) {
365
+ const result = new Headers();
366
+ for (const [key, value] of Object.entries(headers)) {
367
+ if (typeof value === 'string') {
368
+ result.set(key, value);
369
+ }
370
+ else if (Array.isArray(value)) {
371
+ result.set(key, value.join(', '));
372
+ }
373
+ }
374
+ return result;
375
+ }
376
+ mapSessionInfo(session) {
377
+ return {
378
+ expiresAt: session.expiresAt,
379
+ id: session.id,
380
+ token: session.token,
381
+ };
382
+ }
383
+ mapToUserModel(user) {
384
+ return {
385
+ email: user.email,
386
+ emailVerified: user.emailVerified,
387
+ iamId: user.iamId,
388
+ id: user.id,
389
+ name: user.name,
390
+ roles: user.roles,
391
+ verified: user.verified,
392
+ };
393
+ }
394
+ };
395
+ exports.CoreBetterAuthResolver = CoreBetterAuthResolver;
396
+ __decorate([
397
+ (0, graphql_1.Query)(() => better_auth_models_1.BetterAuthSessionModel, {
398
+ description: 'Get current Better-Auth session',
399
+ nullable: true,
400
+ }),
401
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
402
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
403
+ __param(0, (0, graphql_1.Context)()),
404
+ __metadata("design:type", Function),
405
+ __metadata("design:paramtypes", [Object]),
406
+ __metadata("design:returntype", Promise)
407
+ ], CoreBetterAuthResolver.prototype, "betterAuthSession", null);
408
+ __decorate([
409
+ (0, graphql_1.Query)(() => Boolean, { description: 'Check if Better-Auth is enabled' }),
410
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
411
+ __metadata("design:type", Function),
412
+ __metadata("design:paramtypes", []),
413
+ __metadata("design:returntype", Boolean)
414
+ ], CoreBetterAuthResolver.prototype, "betterAuthEnabled", null);
415
+ __decorate([
416
+ (0, graphql_1.Query)(() => better_auth_models_1.BetterAuthFeaturesModel, { description: 'Get enabled Better-Auth features' }),
417
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
418
+ __metadata("design:type", Function),
419
+ __metadata("design:paramtypes", []),
420
+ __metadata("design:returntype", better_auth_models_1.BetterAuthFeaturesModel)
421
+ ], CoreBetterAuthResolver.prototype, "betterAuthFeatures", null);
422
+ __decorate([
423
+ (0, graphql_1.Query)(() => better_auth_migration_status_model_1.BetterAuthMigrationStatusModel, {
424
+ description: 'Get migration status from Legacy Auth to Better-Auth (IAM) - Admin only',
425
+ }),
426
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.ADMIN),
427
+ __metadata("design:type", Function),
428
+ __metadata("design:paramtypes", []),
429
+ __metadata("design:returntype", Promise)
430
+ ], CoreBetterAuthResolver.prototype, "betterAuthMigrationStatus", null);
431
+ __decorate([
432
+ (0, graphql_1.Mutation)(() => better_auth_auth_model_1.BetterAuthAuthModel, {
433
+ description: 'Sign in via Better-Auth (email/password)',
434
+ }),
435
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
436
+ __param(0, (0, graphql_1.Args)('email')),
437
+ __param(1, (0, graphql_1.Args)('password')),
438
+ __param(2, (0, graphql_1.Context)()),
439
+ __metadata("design:type", Function),
440
+ __metadata("design:paramtypes", [String, String, Object]),
441
+ __metadata("design:returntype", Promise)
442
+ ], CoreBetterAuthResolver.prototype, "betterAuthSignIn", null);
443
+ __decorate([
444
+ (0, graphql_1.Mutation)(() => better_auth_auth_model_1.BetterAuthAuthModel, {
445
+ description: 'Sign up via Better-Auth (email/password)',
446
+ }),
447
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
448
+ __param(0, (0, graphql_1.Args)('email')),
449
+ __param(1, (0, graphql_1.Args)('password')),
450
+ __param(2, (0, graphql_1.Args)('name', { nullable: true })),
451
+ __metadata("design:type", Function),
452
+ __metadata("design:paramtypes", [String, String, String]),
453
+ __metadata("design:returntype", Promise)
454
+ ], CoreBetterAuthResolver.prototype, "betterAuthSignUp", null);
455
+ __decorate([
456
+ (0, graphql_1.Mutation)(() => Boolean, { description: 'Sign out via Better-Auth' }),
457
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
458
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
459
+ __param(0, (0, graphql_1.Context)()),
460
+ __metadata("design:type", Function),
461
+ __metadata("design:paramtypes", [Object]),
462
+ __metadata("design:returntype", Promise)
463
+ ], CoreBetterAuthResolver.prototype, "betterAuthSignOut", null);
464
+ __decorate([
465
+ (0, graphql_1.Mutation)(() => better_auth_auth_model_1.BetterAuthAuthModel, {
466
+ description: 'Verify 2FA code during sign-in',
467
+ }),
468
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
469
+ __param(0, (0, graphql_1.Args)('code')),
470
+ __param(1, (0, graphql_1.Context)()),
471
+ __metadata("design:type", Function),
472
+ __metadata("design:paramtypes", [String, Object]),
473
+ __metadata("design:returntype", Promise)
474
+ ], CoreBetterAuthResolver.prototype, "betterAuthVerify2FA", null);
475
+ __decorate([
476
+ (0, graphql_1.Mutation)(() => better_auth_models_1.BetterAuth2FASetupModel, {
477
+ description: 'Enable 2FA for the current user',
478
+ }),
479
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
480
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
481
+ __param(0, (0, graphql_1.Args)('password')),
482
+ __param(1, (0, graphql_1.Context)()),
483
+ __metadata("design:type", Function),
484
+ __metadata("design:paramtypes", [String, Object]),
485
+ __metadata("design:returntype", Promise)
486
+ ], CoreBetterAuthResolver.prototype, "betterAuthEnable2FA", null);
487
+ __decorate([
488
+ (0, graphql_1.Mutation)(() => Boolean, {
489
+ description: 'Disable 2FA for the current user',
490
+ }),
491
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
492
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
493
+ __param(0, (0, graphql_1.Args)('password')),
494
+ __param(1, (0, graphql_1.Context)()),
495
+ __metadata("design:type", Function),
496
+ __metadata("design:paramtypes", [String, Object]),
497
+ __metadata("design:returntype", Promise)
498
+ ], CoreBetterAuthResolver.prototype, "betterAuthDisable2FA", null);
499
+ __decorate([
500
+ (0, graphql_1.Mutation)(() => [String], {
501
+ description: 'Generate new backup codes for 2FA',
502
+ nullable: true,
503
+ }),
504
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
505
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
506
+ __param(0, (0, graphql_1.Context)()),
507
+ __metadata("design:type", Function),
508
+ __metadata("design:paramtypes", [Object]),
509
+ __metadata("design:returntype", Promise)
510
+ ], CoreBetterAuthResolver.prototype, "betterAuthGenerateBackupCodes", null);
511
+ __decorate([
512
+ (0, graphql_1.Mutation)(() => better_auth_models_1.BetterAuthPasskeyChallengeModel, {
513
+ description: 'Get passkey registration challenge for WebAuthn',
514
+ }),
515
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
516
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
517
+ __param(0, (0, graphql_1.Context)()),
518
+ __metadata("design:type", Function),
519
+ __metadata("design:paramtypes", [Object]),
520
+ __metadata("design:returntype", Promise)
521
+ ], CoreBetterAuthResolver.prototype, "betterAuthGetPasskeyChallenge", null);
522
+ __decorate([
523
+ (0, graphql_1.Query)(() => [better_auth_models_1.BetterAuthPasskeyModel], {
524
+ description: 'List passkeys for the current user',
525
+ nullable: true,
526
+ }),
527
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
528
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
529
+ __param(0, (0, graphql_1.Context)()),
530
+ __metadata("design:type", Function),
531
+ __metadata("design:paramtypes", [Object]),
532
+ __metadata("design:returntype", Promise)
533
+ ], CoreBetterAuthResolver.prototype, "betterAuthListPasskeys", null);
534
+ __decorate([
535
+ (0, graphql_1.Mutation)(() => Boolean, {
536
+ description: 'Delete a passkey by ID',
537
+ }),
538
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
539
+ (0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
540
+ __param(0, (0, graphql_1.Args)('passkeyId')),
541
+ __param(1, (0, graphql_1.Context)()),
542
+ __metadata("design:type", Function),
543
+ __metadata("design:paramtypes", [String, Object]),
544
+ __metadata("design:returntype", Promise)
545
+ ], CoreBetterAuthResolver.prototype, "betterAuthDeletePasskey", null);
546
+ exports.CoreBetterAuthResolver = CoreBetterAuthResolver = CoreBetterAuthResolver_1 = __decorate([
547
+ (0, graphql_1.Resolver)(() => better_auth_auth_model_1.BetterAuthAuthModel, { isAbstract: true }),
548
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.ADMIN),
549
+ __metadata("design:paramtypes", [better_auth_service_1.BetterAuthService,
550
+ better_auth_user_mapper_1.BetterAuthUserMapper])
551
+ ], CoreBetterAuthResolver);
552
+ //# sourceMappingURL=core-better-auth.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-better-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth.resolver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './better-auth-auth.model';
2
+ export * from './better-auth-migration-status.model';
2
3
  export * from './better-auth-models';
3
4
  export * from './better-auth-rate-limit.middleware';
4
5
  export * from './better-auth-rate-limiter.service';
@@ -9,3 +10,5 @@ export * from './better-auth.module';
9
10
  export * from './better-auth.resolver';
10
11
  export * from './better-auth.service';
11
12
  export * from './better-auth.types';
13
+ export * from './core-better-auth.controller';
14
+ export * from './core-better-auth.resolver';
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./better-auth-auth.model"), exports);
18
+ __exportStar(require("./better-auth-migration-status.model"), exports);
18
19
  __exportStar(require("./better-auth-models"), exports);
19
20
  __exportStar(require("./better-auth-rate-limit.middleware"), exports);
20
21
  __exportStar(require("./better-auth-rate-limiter.service"), exports);
@@ -25,4 +26,6 @@ __exportStar(require("./better-auth.module"), exports);
25
26
  __exportStar(require("./better-auth.resolver"), exports);
26
27
  __exportStar(require("./better-auth.service"), exports);
27
28
  __exportStar(require("./better-auth.types"), exports);
29
+ __exportStar(require("./core-better-auth.controller"), exports);
30
+ __exportStar(require("./core-better-auth.resolver"), exports);
28
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAcA,2DAAyC;AACzC,uDAAqC;AACrC,sEAAoD;AACpD,qEAAmD;AACnD,4DAA0C;AAC1C,uDAAqC;AACrC,2DAAyC;AACzC,uDAAqC;AACrC,yDAAuC;AACvC,wDAAsC;AACtC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAmBA,2DAAyC;AACzC,uEAAqD;AACrD,uDAAqC;AACrC,sEAAoD;AACpD,qEAAmD;AACnD,4DAA0C;AAC1C,uDAAqC;AACrC,2DAAyC;AACzC,uDAAqC;AACrC,yDAAuC;AACvC,wDAAsC;AACtC,sDAAoC;AACpC,gEAA8C;AAC9C,8DAA4C"}
@@ -1,3 +1,4 @@
1
+ import { Logger } from '@nestjs/common';
1
2
  import { Document, Model } from 'mongoose';
2
3
  import { ServiceOptions } from '../../common/interfaces/service-options.interface';
3
4
  import { ConfigService } from '../../common/services/config.service';
@@ -7,12 +8,15 @@ import { CoreModelConstructor } from '../../common/types/core-model-constructor.
7
8
  import { CoreUserModel } from './core-user.model';
8
9
  import { CoreUserCreateInput } from './inputs/core-user-create.input';
9
10
  import { CoreUserInput } from './inputs/core-user.input';
11
+ import { CoreUserServiceOptions } from './interfaces/core-user-service-options.interface';
10
12
  export declare abstract class CoreUserService<TUser extends CoreUserModel, TUserInput extends CoreUserInput, TUserCreateInput extends CoreUserCreateInput> extends CrudService<TUser, TUserCreateInput, TUserInput> {
11
13
  protected readonly configService: ConfigService;
12
14
  protected readonly emailService: EmailService;
13
15
  protected readonly mainDbModel: Model<Document & TUser>;
14
16
  protected readonly mainModelConstructor: CoreModelConstructor<TUser>;
15
- protected constructor(configService: ConfigService, emailService: EmailService, mainDbModel: Model<Document & TUser>, mainModelConstructor: CoreModelConstructor<TUser>);
17
+ protected readonly options?: CoreUserServiceOptions;
18
+ protected readonly userServiceLogger: Logger;
19
+ protected constructor(configService: ConfigService, emailService: EmailService, mainDbModel: Model<Document & TUser>, mainModelConstructor: CoreModelConstructor<TUser>, options?: CoreUserServiceOptions);
16
20
  create(input: any, serviceOptions?: ServiceOptions): Promise<TUser>;
17
21
  getViaEmail(email: string, serviceOptions?: ServiceOptions): Promise<TUser>;
18
22
  getVerifiedState(token: string, serviceOptions?: ServiceOptions): Promise<boolean>;
@@ -20,4 +24,6 @@ export declare abstract class CoreUserService<TUser extends CoreUserModel, TUser
20
24
  resetPassword(token: string, newPassword: string, serviceOptions?: ServiceOptions): Promise<TUser>;
21
25
  setPasswordResetTokenForEmail(email: string, serviceOptions?: ServiceOptions): Promise<TUser>;
22
26
  setRoles(userId: string, roles: string[], serviceOptions?: ServiceOptions): Promise<TUser>;
27
+ update(id: string, input: TUserInput, serviceOptions?: ServiceOptions): Promise<TUser>;
28
+ delete(id: string, serviceOptions?: ServiceOptions): Promise<TUser>;
23
29
  }