@lenne.tech/nest-server 11.7.0 → 11.7.2
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.
- package/dist/config.env.js +17 -1
- package/dist/config.env.js.map +1 -1
- package/dist/core/common/interfaces/server-options.interface.d.ts +35 -15
- package/dist/core/modules/auth/core-auth.controller.d.ts +1 -0
- package/dist/core/modules/auth/core-auth.controller.js +29 -3
- package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
- package/dist/core/modules/auth/core-auth.module.js +14 -1
- package/dist/core/modules/auth/core-auth.module.js.map +1 -1
- package/dist/core/modules/auth/core-auth.resolver.d.ts +1 -0
- package/dist/core/modules/auth/core-auth.resolver.js +21 -3
- package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
- package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.d.ts +4 -0
- package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js +17 -0
- package/dist/core/modules/auth/exceptions/legacy-auth-disabled.exception.js.map +1 -0
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +9 -0
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +74 -0
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -0
- package/dist/core/modules/auth/interfaces/auth-provider.interface.d.ts +7 -0
- package/dist/core/modules/auth/interfaces/auth-provider.interface.js +5 -0
- package/dist/core/modules/auth/interfaces/auth-provider.interface.js.map +1 -0
- package/dist/core/modules/auth/interfaces/core-auth-user.interface.d.ts +1 -0
- package/dist/core/modules/auth/services/core-auth.service.d.ts +10 -1
- package/dist/core/modules/auth/services/core-auth.service.js +141 -9
- package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +31 -0
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +153 -0
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -0
- package/dist/core/modules/better-auth/better-auth-migration-status.model.d.ts +10 -0
- package/dist/core/modules/better-auth/better-auth-migration-status.model.js +57 -0
- package/dist/core/modules/better-auth/better-auth-migration-status.model.js.map +1 -0
- package/dist/core/modules/better-auth/better-auth-rate-limiter.service.js +1 -1
- package/dist/core/modules/better-auth/better-auth-rate-limiter.service.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth-user.mapper.d.ts +33 -0
- package/dist/core/modules/better-auth/better-auth-user.mapper.js +395 -0
- package/dist/core/modules/better-auth/better-auth-user.mapper.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.config.js +29 -10
- package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.middleware.d.ts +1 -0
- package/dist/core/modules/better-auth/better-auth.middleware.js +55 -1
- package/dist/core/modules/better-auth/better-auth.middleware.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.module.d.ts +1 -1
- package/dist/core/modules/better-auth/better-auth.module.js +46 -18
- package/dist/core/modules/better-auth/better-auth.module.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.resolver.js +0 -11
- package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.service.d.ts +22 -1
- package/dist/core/modules/better-auth/better-auth.service.js +209 -8
- package/dist/core/modules/better-auth/better-auth.service.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.types.d.ts +2 -0
- package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +1 -0
- package/dist/core/modules/better-auth/core-better-auth.controller.js +15 -2
- package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +7 -0
- package/dist/core/modules/better-auth/core-better-auth.resolver.js +72 -12
- package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
- package/dist/core/modules/better-auth/index.d.ts +1 -0
- package/dist/core/modules/better-auth/index.js +1 -0
- package/dist/core/modules/better-auth/index.js.map +1 -1
- package/dist/core/modules/user/core-user.service.d.ts +7 -1
- package/dist/core/modules/user/core-user.service.js +57 -3
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/core/modules/user/interfaces/core-user-service-options.interface.d.ts +4 -0
- package/dist/core/modules/user/interfaces/core-user-service-options.interface.js +3 -0
- package/dist/core/modules/user/interfaces/core-user-service-options.interface.js.map +1 -0
- package/dist/core.module.d.ts +3 -0
- package/dist/core.module.js +136 -55
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/server/modules/auth/auth.resolver.js +2 -0
- package/dist/server/modules/auth/auth.resolver.js.map +1 -1
- package/dist/server/modules/better-auth/better-auth.module.d.ts +1 -1
- package/dist/server/modules/better-auth/better-auth.module.js +2 -1
- package/dist/server/modules/better-auth/better-auth.module.js.map +1 -1
- package/dist/server/modules/better-auth/better-auth.resolver.d.ts +5 -0
- package/dist/server/modules/better-auth/better-auth.resolver.js +27 -11
- package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -1
- package/dist/server/modules/user/user.controller.js +0 -8
- package/dist/server/modules/user/user.controller.js.map +1 -1
- package/dist/server/modules/user/user.service.d.ts +3 -1
- package/dist/server/modules/user/user.service.js +7 -3
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/config.env.ts +32 -2
- package/src/core/common/interfaces/server-options.interface.ts +304 -58
- package/src/core/modules/auth/core-auth.controller.ts +94 -6
- package/src/core/modules/auth/core-auth.module.ts +15 -1
- package/src/core/modules/auth/core-auth.resolver.ts +71 -3
- package/src/core/modules/auth/exceptions/legacy-auth-disabled.exception.ts +35 -0
- package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +109 -0
- package/src/core/modules/auth/interfaces/auth-provider.interface.ts +86 -0
- package/src/core/modules/auth/interfaces/core-auth-user.interface.ts +6 -0
- package/src/core/modules/auth/services/core-auth.service.ts +245 -6
- package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +283 -0
- package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +255 -0
- package/src/core/modules/better-auth/README.md +565 -208
- package/src/core/modules/better-auth/better-auth-migration-status.model.ts +73 -0
- package/src/core/modules/better-auth/better-auth-rate-limiter.service.ts +1 -1
- package/src/core/modules/better-auth/better-auth-user.mapper.ts +737 -0
- package/src/core/modules/better-auth/better-auth.config.ts +45 -15
- package/src/core/modules/better-auth/better-auth.middleware.ts +85 -2
- package/src/core/modules/better-auth/better-auth.module.ts +83 -27
- package/src/core/modules/better-auth/better-auth.resolver.ts +0 -11
- package/src/core/modules/better-auth/better-auth.service.ts +367 -12
- package/src/core/modules/better-auth/better-auth.types.ts +16 -0
- package/src/core/modules/better-auth/core-better-auth.controller.ts +44 -3
- package/src/core/modules/better-auth/core-better-auth.resolver.ts +136 -16
- package/src/core/modules/better-auth/index.ts +1 -0
- package/src/core/modules/user/core-user.service.ts +131 -4
- package/src/core/modules/user/interfaces/core-user-service-options.interface.ts +15 -0
- package/src/core.module.ts +264 -76
- package/src/index.ts +5 -0
- package/src/server/modules/auth/auth.resolver.ts +8 -0
- package/src/server/modules/better-auth/better-auth.module.ts +9 -3
- package/src/server/modules/better-auth/better-auth.resolver.ts +18 -11
- package/src/server/modules/user/user.controller.ts +1 -9
- package/src/server/modules/user/user.service.ts +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth.middleware.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoE;AAGpE,uEAAoG;AACpG,+DAA0D;AA2BnD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAG/B,YACmB,iBAAoC,EACpC,UAAgC;QADhC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAAsB;QAJlC,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAK7D,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,GAAsB,EAAE,IAAc,EAAE,IAAkB;QAElE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;YACxC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAGD,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;gBAElB,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC;gBAChC,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;gBAGlC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEtE,IAAI,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"better-auth.middleware.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { CoreBetterAuthController } from './core-better-auth.controller';
|
|
|
7
7
|
import { CoreBetterAuthResolver } from './core-better-auth.resolver';
|
|
8
8
|
export declare const BETTER_AUTH_INSTANCE = "BETTER_AUTH_INSTANCE";
|
|
9
9
|
export interface BetterAuthModuleOptions {
|
|
10
|
-
config: IBetterAuth;
|
|
10
|
+
config: boolean | IBetterAuth;
|
|
11
11
|
controller?: Type<CoreBetterAuthController>;
|
|
12
12
|
fallbackSecrets?: (string | undefined)[];
|
|
13
13
|
resolver?: Type<CoreBetterAuthResolver>;
|
|
@@ -27,6 +27,15 @@ const better_auth_resolver_1 = require("./better-auth.resolver");
|
|
|
27
27
|
const better_auth_service_1 = require("./better-auth.service");
|
|
28
28
|
const core_better_auth_controller_1 = require("./core-better-auth.controller");
|
|
29
29
|
exports.BETTER_AUTH_INSTANCE = 'BETTER_AUTH_INSTANCE';
|
|
30
|
+
function normalizeBetterAuthConfig(config) {
|
|
31
|
+
if (config === undefined || config === null)
|
|
32
|
+
return null;
|
|
33
|
+
if (config === true)
|
|
34
|
+
return {};
|
|
35
|
+
if (config === false)
|
|
36
|
+
return null;
|
|
37
|
+
return config;
|
|
38
|
+
}
|
|
30
39
|
let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
31
40
|
static getControllerClass() {
|
|
32
41
|
return this.customController || core_better_auth_controller_1.CoreBetterAuthController;
|
|
@@ -52,10 +61,10 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
52
61
|
const basePath = BetterAuthModule_1.currentConfig?.basePath || '/iam';
|
|
53
62
|
if (BetterAuthModule_1.currentConfig?.rateLimit?.enabled) {
|
|
54
63
|
consumer.apply(better_auth_rate_limit_middleware_1.BetterAuthRateLimitMiddleware).forRoutes(`${basePath}/*path`);
|
|
55
|
-
BetterAuthModule_1.logger.
|
|
64
|
+
BetterAuthModule_1.logger.debug(`Rate limiting middleware registered for ${basePath}/*path endpoints`);
|
|
56
65
|
}
|
|
57
66
|
consumer.apply(better_auth_middleware_1.BetterAuthMiddleware).forRoutes('(.*)');
|
|
58
|
-
BetterAuthModule_1.logger.
|
|
67
|
+
BetterAuthModule_1.logger.debug('BetterAuthMiddleware registered for all routes');
|
|
59
68
|
}
|
|
60
69
|
}
|
|
61
70
|
static async waitForMongoConnection() {
|
|
@@ -73,12 +82,13 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
73
82
|
throw new Error('MongoDB connection timeout - ensure MongoDB is running and accessible');
|
|
74
83
|
}
|
|
75
84
|
static forRoot(options) {
|
|
76
|
-
const { config, controller, fallbackSecrets, resolver } = options;
|
|
85
|
+
const { config: rawConfig, controller, fallbackSecrets, resolver } = options;
|
|
86
|
+
const config = normalizeBetterAuthConfig(rawConfig);
|
|
77
87
|
this.currentConfig = config;
|
|
78
88
|
this.customController = controller || null;
|
|
79
89
|
this.customResolver = resolver || null;
|
|
80
|
-
if (config?.enabled === false) {
|
|
81
|
-
this.logger.debug('BetterAuth is
|
|
90
|
+
if (config === null || config?.enabled === false) {
|
|
91
|
+
this.logger.debug('BetterAuth is disabled - skipping initialization');
|
|
82
92
|
this.betterAuthEnabled = false;
|
|
83
93
|
return {
|
|
84
94
|
exports: [exports.BETTER_AUTH_INSTANCE, better_auth_service_1.BetterAuthService, better_auth_user_mapper_1.BetterAuthUserMapper, better_auth_rate_limiter_service_1.BetterAuthRateLimiter],
|
|
@@ -108,11 +118,12 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
108
118
|
inject: [config_service_1.ConfigService],
|
|
109
119
|
provide: exports.BETTER_AUTH_INSTANCE,
|
|
110
120
|
useFactory: async (configService) => {
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
if (config?.enabled === false) {
|
|
114
|
-
this.logger.debug('BetterAuth is
|
|
121
|
+
const rawConfig = configService.get('betterAuth');
|
|
122
|
+
const config = normalizeBetterAuthConfig(rawConfig);
|
|
123
|
+
if (config === null || config?.enabled === false) {
|
|
124
|
+
this.logger.debug('BetterAuth is disabled');
|
|
115
125
|
this.betterAuthEnabled = false;
|
|
126
|
+
this.currentConfig = config;
|
|
116
127
|
return null;
|
|
117
128
|
}
|
|
118
129
|
this.betterAuthEnabled = true;
|
|
@@ -124,6 +135,7 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
124
135
|
const jwtConfig = configService.get('jwt');
|
|
125
136
|
const fallbackSecrets = [jwtConfig?.secret, jwtConfig?.refresh?.secret];
|
|
126
137
|
this.authInstance = (0, better_auth_config_1.createBetterAuthInstance)({ config, db, fallbackSecrets });
|
|
138
|
+
this.currentConfig = config;
|
|
127
139
|
if (this.authInstance) {
|
|
128
140
|
this.logger.log('BetterAuth initialized successfully');
|
|
129
141
|
this.logEnabledFeatures(config);
|
|
@@ -132,10 +144,14 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
132
144
|
},
|
|
133
145
|
},
|
|
134
146
|
{
|
|
135
|
-
|
|
147
|
+
provide: better_auth_service_1.BETTER_AUTH_CONFIG,
|
|
148
|
+
useFactory: () => this.currentConfig,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
inject: [exports.BETTER_AUTH_INSTANCE, better_auth_service_1.BETTER_AUTH_CONFIG, (0, mongoose_1.getConnectionToken)()],
|
|
136
152
|
provide: better_auth_service_1.BetterAuthService,
|
|
137
|
-
useFactory: (authInstance,
|
|
138
|
-
return new better_auth_service_1.BetterAuthService(authInstance,
|
|
153
|
+
useFactory: (authInstance, resolvedConfig, connection) => {
|
|
154
|
+
return new better_auth_service_1.BetterAuthService(authInstance, connection, resolvedConfig);
|
|
139
155
|
},
|
|
140
156
|
},
|
|
141
157
|
better_auth_user_mapper_1.BetterAuthUserMapper,
|
|
@@ -180,6 +196,7 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
180
196
|
else {
|
|
181
197
|
this.authInstance = (0, better_auth_config_1.createBetterAuthInstance)({ config, db, fallbackSecrets });
|
|
182
198
|
}
|
|
199
|
+
this.currentConfig = config;
|
|
183
200
|
if (this.authInstance && !this.initLogged) {
|
|
184
201
|
this.initLogged = true;
|
|
185
202
|
this.logger.log('BetterAuth initialized');
|
|
@@ -189,10 +206,14 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
189
206
|
},
|
|
190
207
|
},
|
|
191
208
|
{
|
|
192
|
-
|
|
209
|
+
provide: better_auth_service_1.BETTER_AUTH_CONFIG,
|
|
210
|
+
useFactory: () => this.currentConfig,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
inject: [exports.BETTER_AUTH_INSTANCE, better_auth_service_1.BETTER_AUTH_CONFIG, (0, mongoose_1.getConnectionToken)()],
|
|
193
214
|
provide: better_auth_service_1.BetterAuthService,
|
|
194
|
-
useFactory: (authInstance,
|
|
195
|
-
return new better_auth_service_1.BetterAuthService(authInstance,
|
|
215
|
+
useFactory: (authInstance, resolvedConfig, connection) => {
|
|
216
|
+
return new better_auth_service_1.BetterAuthService(authInstance, connection, resolvedConfig);
|
|
196
217
|
},
|
|
197
218
|
},
|
|
198
219
|
better_auth_user_mapper_1.BetterAuthUserMapper,
|
|
@@ -205,13 +226,20 @@ let BetterAuthModule = BetterAuthModule_1 = class BetterAuthModule {
|
|
|
205
226
|
}
|
|
206
227
|
static logEnabledFeatures(config) {
|
|
207
228
|
const features = [];
|
|
208
|
-
|
|
229
|
+
const isPluginEnabled = (value) => {
|
|
230
|
+
if (value === undefined || value === false)
|
|
231
|
+
return false;
|
|
232
|
+
if (value === true)
|
|
233
|
+
return true;
|
|
234
|
+
return value.enabled !== false;
|
|
235
|
+
};
|
|
236
|
+
if (isPluginEnabled(config.jwt)) {
|
|
209
237
|
features.push('JWT');
|
|
210
238
|
}
|
|
211
|
-
if (config.twoFactor
|
|
239
|
+
if (isPluginEnabled(config.twoFactor)) {
|
|
212
240
|
features.push('2FA/TOTP');
|
|
213
241
|
}
|
|
214
|
-
if (config.passkey
|
|
242
|
+
if (isPluginEnabled(config.passkey)) {
|
|
215
243
|
features.push('Passkey/WebAuthn');
|
|
216
244
|
}
|
|
217
245
|
const socialProviders = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth.module.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,+CAAsD;AACtD,uCAAgD;AAGhD,yEAAqE;AACrE,2FAAoF;AACpF,yFAA2E;AAC3E,uEAAiE;AACjE,6DAAoF;AACpF,qEAAgE;AAChE,iEAA4D;AAC5D,+
|
|
1
|
+
{"version":3,"file":"better-auth.module.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,9 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.BetterAuthResolver = void 0;
|
|
16
|
-
const common_1 = require("@nestjs/common");
|
|
17
16
|
const graphql_1 = require("@nestjs/graphql");
|
|
18
17
|
const roles_decorator_1 = require("../../common/decorators/roles.decorator");
|
|
19
18
|
const role_enum_1 = require("../../common/enums/role.enum");
|
|
20
|
-
const auth_guard_strategy_enum_1 = require("../auth/auth-guard-strategy.enum");
|
|
21
|
-
const auth_guard_1 = require("../auth/guards/auth.guard");
|
|
22
19
|
const better_auth_auth_model_1 = require("./better-auth-auth.model");
|
|
23
20
|
const better_auth_models_1 = require("./better-auth-models");
|
|
24
21
|
const better_auth_user_mapper_1 = require("./better-auth-user.mapper");
|
|
@@ -77,7 +74,6 @@ __decorate([
|
|
|
77
74
|
nullable: true,
|
|
78
75
|
}),
|
|
79
76
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
80
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
81
77
|
__param(0, (0, graphql_1.Context)()),
|
|
82
78
|
__metadata("design:type", Function),
|
|
83
79
|
__metadata("design:paramtypes", [Object]),
|
|
@@ -103,7 +99,6 @@ __decorate([
|
|
|
103
99
|
nullable: true,
|
|
104
100
|
}),
|
|
105
101
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
106
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
107
102
|
__param(0, (0, graphql_1.Context)()),
|
|
108
103
|
__metadata("design:type", Function),
|
|
109
104
|
__metadata("design:paramtypes", [Object]),
|
|
@@ -136,7 +131,6 @@ __decorate([
|
|
|
136
131
|
__decorate([
|
|
137
132
|
(0, graphql_1.Mutation)(() => Boolean, { description: 'Sign out via Better-Auth' }),
|
|
138
133
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
139
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
140
134
|
__param(0, (0, graphql_1.Context)()),
|
|
141
135
|
__metadata("design:type", Function),
|
|
142
136
|
__metadata("design:paramtypes", [Object]),
|
|
@@ -158,7 +152,6 @@ __decorate([
|
|
|
158
152
|
description: 'Enable 2FA for the current user',
|
|
159
153
|
}),
|
|
160
154
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
161
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
162
155
|
__param(0, (0, graphql_1.Args)('password')),
|
|
163
156
|
__param(1, (0, graphql_1.Context)()),
|
|
164
157
|
__metadata("design:type", Function),
|
|
@@ -170,7 +163,6 @@ __decorate([
|
|
|
170
163
|
description: 'Disable 2FA for the current user',
|
|
171
164
|
}),
|
|
172
165
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
173
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
174
166
|
__param(0, (0, graphql_1.Args)('password')),
|
|
175
167
|
__param(1, (0, graphql_1.Context)()),
|
|
176
168
|
__metadata("design:type", Function),
|
|
@@ -183,7 +175,6 @@ __decorate([
|
|
|
183
175
|
nullable: true,
|
|
184
176
|
}),
|
|
185
177
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
186
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
187
178
|
__param(0, (0, graphql_1.Context)()),
|
|
188
179
|
__metadata("design:type", Function),
|
|
189
180
|
__metadata("design:paramtypes", [Object]),
|
|
@@ -194,7 +185,6 @@ __decorate([
|
|
|
194
185
|
description: 'Get passkey registration challenge for WebAuthn',
|
|
195
186
|
}),
|
|
196
187
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
197
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
198
188
|
__param(0, (0, graphql_1.Context)()),
|
|
199
189
|
__metadata("design:type", Function),
|
|
200
190
|
__metadata("design:paramtypes", [Object]),
|
|
@@ -205,7 +195,6 @@ __decorate([
|
|
|
205
195
|
description: 'Delete a passkey by ID',
|
|
206
196
|
}),
|
|
207
197
|
(0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
|
|
208
|
-
(0, common_1.UseGuards)((0, auth_guard_1.AuthGuard)(auth_guard_strategy_enum_1.AuthGuardStrategy.JWT)),
|
|
209
198
|
__param(0, (0, graphql_1.Args)('passkeyId')),
|
|
210
199
|
__param(1, (0, graphql_1.Context)()),
|
|
211
200
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"better-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Request } from 'express';
|
|
2
|
+
import { Connection } from 'mongoose';
|
|
2
3
|
import { IBetterAuth } from '../../common/interfaces/server-options.interface';
|
|
3
4
|
import { ConfigService } from '../../common/services/config.service';
|
|
4
5
|
import { BetterAuthSessionUser } from './better-auth-user.mapper';
|
|
@@ -12,12 +13,15 @@ export interface SessionResult {
|
|
|
12
13
|
};
|
|
13
14
|
user: BetterAuthSessionUser | null;
|
|
14
15
|
}
|
|
16
|
+
export declare const BETTER_AUTH_CONFIG = "BETTER_AUTH_CONFIG";
|
|
15
17
|
export declare class BetterAuthService {
|
|
16
18
|
private readonly authInstance;
|
|
19
|
+
private readonly connection?;
|
|
20
|
+
private readonly resolvedConfig?;
|
|
17
21
|
private readonly configService?;
|
|
18
22
|
private readonly logger;
|
|
19
23
|
private readonly config;
|
|
20
|
-
constructor(authInstance: BetterAuthInstance | null, configService?: ConfigService);
|
|
24
|
+
constructor(authInstance: BetterAuthInstance | null, connection?: Connection, resolvedConfig?: IBetterAuth | null, configService?: ConfigService);
|
|
21
25
|
isEnabled(): boolean;
|
|
22
26
|
getInstance(): BetterAuthInstance | null;
|
|
23
27
|
getApi(): BetterAuthInstance['api'] | null;
|
|
@@ -25,13 +29,30 @@ export declare class BetterAuthService {
|
|
|
25
29
|
isJwtEnabled(): boolean;
|
|
26
30
|
isTwoFactorEnabled(): boolean;
|
|
27
31
|
isPasskeyEnabled(): boolean;
|
|
32
|
+
private isPluginEnabled;
|
|
28
33
|
getEnabledSocialProviders(): string[];
|
|
29
34
|
getBasePath(): string;
|
|
30
35
|
getBaseUrl(): string;
|
|
36
|
+
getToken(req: Request | {
|
|
37
|
+
headers: Record<string, string | string[] | undefined>;
|
|
38
|
+
}): Promise<null | string>;
|
|
31
39
|
getSession(req: Request | {
|
|
32
40
|
headers: Record<string, string | string[] | undefined>;
|
|
33
41
|
}): Promise<SessionResult>;
|
|
34
42
|
revokeSession(sessionToken: string): Promise<boolean>;
|
|
35
43
|
isSessionExpiringSoon(session: SessionResult['session'], thresholdMinutes?: number): boolean;
|
|
36
44
|
getSessionTimeRemaining(session: SessionResult['session']): number;
|
|
45
|
+
getSessionByToken(token: string): Promise<SessionResult>;
|
|
46
|
+
verifyJwtToken(token: string): Promise<null | {
|
|
47
|
+
[key: string]: any;
|
|
48
|
+
email?: string;
|
|
49
|
+
sub: string;
|
|
50
|
+
}>;
|
|
51
|
+
private verifyHs256Token;
|
|
52
|
+
private verifyJwksToken;
|
|
53
|
+
verifyJwtFromRequest(req: Request): Promise<null | {
|
|
54
|
+
[key: string]: any;
|
|
55
|
+
email?: string;
|
|
56
|
+
sub: string;
|
|
57
|
+
}>;
|
|
37
58
|
}
|
|
@@ -13,16 +13,22 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
var BetterAuthService_1;
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.BetterAuthService = void 0;
|
|
16
|
+
exports.BetterAuthService = exports.BETTER_AUTH_CONFIG = void 0;
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
19
|
+
const jose_1 = require("jose");
|
|
20
|
+
const mongoose_2 = require("mongoose");
|
|
18
21
|
const config_service_1 = require("../../common/services/config.service");
|
|
19
22
|
const better_auth_module_1 = require("./better-auth.module");
|
|
23
|
+
exports.BETTER_AUTH_CONFIG = 'BETTER_AUTH_CONFIG';
|
|
20
24
|
let BetterAuthService = BetterAuthService_1 = class BetterAuthService {
|
|
21
|
-
constructor(authInstance, configService) {
|
|
25
|
+
constructor(authInstance, connection, resolvedConfig, configService) {
|
|
22
26
|
this.authInstance = authInstance;
|
|
27
|
+
this.connection = connection;
|
|
28
|
+
this.resolvedConfig = resolvedConfig;
|
|
23
29
|
this.configService = configService;
|
|
24
30
|
this.logger = new common_1.Logger(BetterAuthService_1.name);
|
|
25
|
-
this.config = this.configService?.get('betterAuth') || {};
|
|
31
|
+
this.config = this.resolvedConfig || this.configService?.get('betterAuth') || {};
|
|
26
32
|
}
|
|
27
33
|
isEnabled() {
|
|
28
34
|
if (!this.authInstance) {
|
|
@@ -40,13 +46,27 @@ let BetterAuthService = BetterAuthService_1 = class BetterAuthService {
|
|
|
40
46
|
return this.config;
|
|
41
47
|
}
|
|
42
48
|
isJwtEnabled() {
|
|
43
|
-
|
|
49
|
+
if (!this.isEnabled())
|
|
50
|
+
return false;
|
|
51
|
+
const jwtConfig = this.config.jwt;
|
|
52
|
+
if (jwtConfig === false)
|
|
53
|
+
return false;
|
|
54
|
+
if (typeof jwtConfig === 'object' && jwtConfig?.enabled === false)
|
|
55
|
+
return false;
|
|
56
|
+
return true;
|
|
44
57
|
}
|
|
45
58
|
isTwoFactorEnabled() {
|
|
46
|
-
return this.isEnabled() &&
|
|
59
|
+
return this.isEnabled() && this.isPluginEnabled(this.config.twoFactor);
|
|
47
60
|
}
|
|
48
61
|
isPasskeyEnabled() {
|
|
49
|
-
return this.isEnabled() &&
|
|
62
|
+
return this.isEnabled() && this.isPluginEnabled(this.config.passkey);
|
|
63
|
+
}
|
|
64
|
+
isPluginEnabled(config) {
|
|
65
|
+
if (config === undefined)
|
|
66
|
+
return false;
|
|
67
|
+
if (typeof config === 'boolean')
|
|
68
|
+
return config;
|
|
69
|
+
return config.enabled !== false;
|
|
50
70
|
}
|
|
51
71
|
getEnabledSocialProviders() {
|
|
52
72
|
if (!this.isEnabled()) {
|
|
@@ -68,6 +88,36 @@ let BetterAuthService = BetterAuthService_1 = class BetterAuthService {
|
|
|
68
88
|
getBaseUrl() {
|
|
69
89
|
return this.config.baseUrl || 'http://localhost:3000';
|
|
70
90
|
}
|
|
91
|
+
async getToken(req) {
|
|
92
|
+
if (!this.isEnabled() || !this.isJwtEnabled()) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
const api = this.getApi();
|
|
96
|
+
if (!api) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const headers = new Headers();
|
|
101
|
+
const reqHeaders = 'headers' in req ? req.headers : {};
|
|
102
|
+
for (const [key, value] of Object.entries(reqHeaders)) {
|
|
103
|
+
if (typeof value === 'string') {
|
|
104
|
+
headers.set(key, value);
|
|
105
|
+
}
|
|
106
|
+
else if (Array.isArray(value)) {
|
|
107
|
+
headers.set(key, value.join(', '));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const response = await api.getToken({ headers });
|
|
111
|
+
if (response && typeof response === 'object' && 'token' in response) {
|
|
112
|
+
return response.token;
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
this.logger.debug(`getToken error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
71
121
|
async getSession(req) {
|
|
72
122
|
if (!this.isEnabled()) {
|
|
73
123
|
return { session: null, user: null };
|
|
@@ -110,7 +160,6 @@ let BetterAuthService = BetterAuthService_1 = class BetterAuthService {
|
|
|
110
160
|
const headers = new Headers();
|
|
111
161
|
headers.set('Authorization', `Bearer ${sessionToken}`);
|
|
112
162
|
await api.signOut({ headers });
|
|
113
|
-
this.logger.debug('Session revoked successfully');
|
|
114
163
|
return true;
|
|
115
164
|
}
|
|
116
165
|
catch (error) {
|
|
@@ -136,6 +185,154 @@ let BetterAuthService = BetterAuthService_1 = class BetterAuthService {
|
|
|
136
185
|
const remaining = Math.max(0, Math.floor((expiresAt.getTime() - now.getTime()) / 1000));
|
|
137
186
|
return remaining;
|
|
138
187
|
}
|
|
188
|
+
async getSessionByToken(token) {
|
|
189
|
+
if (!this.isEnabled() || !this.connection) {
|
|
190
|
+
return { session: null, user: null };
|
|
191
|
+
}
|
|
192
|
+
try {
|
|
193
|
+
const db = this.connection.db;
|
|
194
|
+
if (!db) {
|
|
195
|
+
return { session: null, user: null };
|
|
196
|
+
}
|
|
197
|
+
const sessionsCollection = db.collection('session');
|
|
198
|
+
const usersCollection = db.collection('users');
|
|
199
|
+
const session = await sessionsCollection.findOne({ token });
|
|
200
|
+
if (!session) {
|
|
201
|
+
return { session: null, user: null };
|
|
202
|
+
}
|
|
203
|
+
if (session.expiresAt && new Date(session.expiresAt) < new Date()) {
|
|
204
|
+
return { session: null, user: null };
|
|
205
|
+
}
|
|
206
|
+
const { ObjectId } = require('mongodb');
|
|
207
|
+
let user = await usersCollection.findOne({ id: session.userId });
|
|
208
|
+
if (!user) {
|
|
209
|
+
try {
|
|
210
|
+
const objectId = new ObjectId(session.userId);
|
|
211
|
+
user = await usersCollection.findOne({ _id: objectId });
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
user = await usersCollection.findOne({ _id: session.userId });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (!user) {
|
|
218
|
+
return { session: null, user: null };
|
|
219
|
+
}
|
|
220
|
+
return {
|
|
221
|
+
session: {
|
|
222
|
+
expiresAt: session.expiresAt,
|
|
223
|
+
id: session.id || session._id?.toString(),
|
|
224
|
+
userId: session.userId?.toString(),
|
|
225
|
+
...session,
|
|
226
|
+
},
|
|
227
|
+
user: {
|
|
228
|
+
email: user.email,
|
|
229
|
+
emailVerified: user.emailVerified,
|
|
230
|
+
id: user.id || user._id?.toString(),
|
|
231
|
+
name: user.name,
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
this.logger.debug(`getSessionByToken error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
237
|
+
return { session: null, user: null };
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
async verifyJwtToken(token) {
|
|
241
|
+
if (!this.isEnabled() || !this.isJwtEnabled()) {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
try {
|
|
245
|
+
const parts = token.split('.');
|
|
246
|
+
if (parts.length !== 3) {
|
|
247
|
+
this.logger.debug('Invalid JWT format');
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
const headerStr = Buffer.from(parts[0], 'base64url').toString('utf-8');
|
|
251
|
+
const header = JSON.parse(headerStr);
|
|
252
|
+
const alg = header.alg;
|
|
253
|
+
const kid = header.kid;
|
|
254
|
+
if (alg === 'HS256') {
|
|
255
|
+
return this.verifyHs256Token(token);
|
|
256
|
+
}
|
|
257
|
+
if (kid && this.connection) {
|
|
258
|
+
return this.verifyJwksToken(token, kid, alg);
|
|
259
|
+
}
|
|
260
|
+
this.logger.debug(`JWT verification: unsupported algorithm=${alg} or missing kid`);
|
|
261
|
+
return null;
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
this.logger.debug(`JWT verification failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async verifyHs256Token(token) {
|
|
269
|
+
try {
|
|
270
|
+
const secret = this.config.secret;
|
|
271
|
+
if (!secret) {
|
|
272
|
+
this.logger.debug('HS256 verification failed: no secret configured');
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
275
|
+
const secretKey = new TextEncoder().encode(secret);
|
|
276
|
+
const { payload } = await (0, jose_1.jwtVerify)(token, secretKey);
|
|
277
|
+
if (!payload.sub) {
|
|
278
|
+
this.logger.debug('JWT payload missing sub claim');
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
return payload;
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
this.logger.debug(`HS256 verification error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
285
|
+
return null;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
async verifyJwksToken(token, kid, alg) {
|
|
289
|
+
if (!this.connection) {
|
|
290
|
+
this.logger.debug('JWKS verification failed: no database connection');
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
try {
|
|
294
|
+
const jwksCollection = this.connection.collection('jwks');
|
|
295
|
+
let keyRecord = await jwksCollection.findOne({ id: kid });
|
|
296
|
+
if (!keyRecord) {
|
|
297
|
+
const allKeys = await jwksCollection.find({}).toArray();
|
|
298
|
+
const matchingKey = allKeys.find((k) => k.id === kid || k._id?.toString() === kid);
|
|
299
|
+
if (!matchingKey) {
|
|
300
|
+
this.logger.debug(`No JWKS key found for kid: ${kid}`);
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
keyRecord = matchingKey;
|
|
304
|
+
}
|
|
305
|
+
if (!keyRecord?.publicKey) {
|
|
306
|
+
this.logger.debug('JWKS key has no public key');
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
const publicKey = JSON.parse(keyRecord.publicKey);
|
|
310
|
+
const algorithm = alg || keyRecord.alg || 'EdDSA';
|
|
311
|
+
const key = await (0, jose_1.importJWK)(publicKey, algorithm);
|
|
312
|
+
const baseUrl = this.getBaseUrl();
|
|
313
|
+
const { payload } = await (0, jose_1.jwtVerify)(token, key, {
|
|
314
|
+
audience: baseUrl,
|
|
315
|
+
issuer: baseUrl,
|
|
316
|
+
});
|
|
317
|
+
if (!payload.sub) {
|
|
318
|
+
this.logger.debug('JWT payload missing sub claim');
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
return payload;
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
this.logger.debug(`JWKS verification error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
async verifyJwtFromRequest(req) {
|
|
329
|
+
const authHeader = req.headers.authorization;
|
|
330
|
+
if (!authHeader?.startsWith('Bearer ')) {
|
|
331
|
+
return null;
|
|
332
|
+
}
|
|
333
|
+
const token = authHeader.substring(7);
|
|
334
|
+
return this.verifyJwtToken(token);
|
|
335
|
+
}
|
|
139
336
|
};
|
|
140
337
|
exports.BetterAuthService = BetterAuthService;
|
|
141
338
|
exports.BetterAuthService = BetterAuthService = BetterAuthService_1 = __decorate([
|
|
@@ -143,6 +340,10 @@ exports.BetterAuthService = BetterAuthService = BetterAuthService_1 = __decorate
|
|
|
143
340
|
__param(0, (0, common_1.Optional)()),
|
|
144
341
|
__param(0, (0, common_1.Inject)(better_auth_module_1.BETTER_AUTH_INSTANCE)),
|
|
145
342
|
__param(1, (0, common_1.Optional)()),
|
|
146
|
-
|
|
343
|
+
__param(1, (0, mongoose_1.InjectConnection)()),
|
|
344
|
+
__param(2, (0, common_1.Inject)(exports.BETTER_AUTH_CONFIG)),
|
|
345
|
+
__param(2, (0, common_1.Optional)()),
|
|
346
|
+
__param(3, (0, common_1.Optional)()),
|
|
347
|
+
__metadata("design:paramtypes", [Object, mongoose_2.Connection, Object, config_service_1.ConfigService])
|
|
147
348
|
], BetterAuthService);
|
|
148
349
|
//# sourceMappingURL=better-auth.service.js.map
|