@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.
- package/dist/config.env.js +19 -12
- package/dist/config.env.js.map +1 -1
- package/dist/core/common/helpers/filter.helper.d.ts +9 -9
- package/dist/core/common/helpers/filter.helper.js +2 -4
- package/dist/core/common/helpers/filter.helper.js.map +1 -1
- package/dist/core/common/helpers/gridfs.helper.js +3 -3
- package/dist/core/common/helpers/gridfs.helper.js.map +1 -1
- package/dist/core/common/interfaces/server-options.interface.d.ts +21 -3
- package/dist/core/common/services/crud.service.d.ts +16 -16
- package/dist/core/common/services/crud.service.js +1 -1
- package/dist/core/common/services/crud.service.js.map +1 -1
- package/dist/core/modules/auth/core-auth.controller.d.ts +1 -0
- package/dist/core/modules/auth/core-auth.controller.js +28 -2
- 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 +20 -2
- 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-models.d.ts +0 -1
- package/dist/core/modules/better-auth/better-auth-models.js +0 -4
- package/dist/core/modules/better-auth/better-auth-models.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 +443 -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 +3 -0
- package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.module.d.ts +10 -2
- package/dist/core/modules/better-auth/better-auth.module.js +40 -52
- package/dist/core/modules/better-auth/better-auth.module.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.resolver.d.ts +8 -12
- package/dist/core/modules/better-auth/better-auth.resolver.js +33 -351
- package/dist/core/modules/better-auth/better-auth.resolver.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.service.d.ts +0 -1
- package/dist/core/modules/better-auth/better-auth.service.js +0 -3
- package/dist/core/modules/better-auth/better-auth.service.js.map +1 -1
- package/dist/core/modules/better-auth/better-auth.types.d.ts +9 -8
- package/dist/core/modules/better-auth/better-auth.types.js +14 -3
- 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 +67 -0
- package/dist/core/modules/better-auth/core-better-auth.controller.js +504 -0
- package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -0
- package/dist/core/modules/better-auth/core-better-auth.resolver.d.ts +61 -0
- package/dist/core/modules/better-auth/core-better-auth.resolver.js +552 -0
- package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -0
- package/dist/core/modules/better-auth/index.d.ts +3 -0
- package/dist/core/modules/better-auth/index.js +3 -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 +132 -54
- 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.controller.d.ts +10 -0
- package/dist/server/modules/better-auth/better-auth.controller.js +36 -0
- package/dist/server/modules/better-auth/better-auth.controller.js.map +1 -0
- package/dist/server/modules/better-auth/better-auth.module.d.ts +9 -0
- package/dist/server/modules/better-auth/better-auth.module.js +44 -0
- package/dist/server/modules/better-auth/better-auth.module.js.map +1 -0
- package/dist/server/modules/better-auth/better-auth.resolver.d.ts +47 -0
- package/dist/server/modules/better-auth/better-auth.resolver.js +234 -0
- package/dist/server/modules/better-auth/better-auth.resolver.js.map +1 -0
- package/dist/server/modules/file/file-info.model.d.ts +71 -3
- package/dist/server/modules/user/user.model.d.ts +169 -3
- 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/server/server.module.js +6 -1
- package/dist/server/server.module.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +20 -29
- package/src/config.env.ts +34 -13
- package/src/core/common/helpers/filter.helper.ts +15 -17
- package/src/core/common/helpers/gridfs.helper.ts +5 -5
- package/src/core/common/interfaces/server-options.interface.ts +222 -14
- package/src/core/common/services/crud.service.ts +22 -22
- package/src/core/modules/auth/core-auth.controller.ts +93 -5
- package/src/core/modules/auth/core-auth.module.ts +15 -1
- package/src/core/modules/auth/core-auth.resolver.ts +70 -2
- 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 +254 -0
- package/src/core/modules/better-auth/README.md +698 -54
- package/src/core/modules/better-auth/better-auth-migration-status.model.ts +73 -0
- package/src/core/modules/better-auth/better-auth-models.ts +0 -3
- package/src/core/modules/better-auth/better-auth-user.mapper.ts +805 -0
- package/src/core/modules/better-auth/better-auth.config.ts +5 -0
- package/src/core/modules/better-auth/better-auth.module.ts +107 -66
- package/src/core/modules/better-auth/better-auth.resolver.ts +88 -553
- package/src/core/modules/better-auth/better-auth.service.ts +0 -9
- package/src/core/modules/better-auth/better-auth.types.ts +25 -10
- package/src/core/modules/better-auth/core-better-auth.controller.ts +646 -0
- package/src/core/modules/better-auth/core-better-auth.resolver.ts +730 -0
- package/src/core/modules/better-auth/index.ts +9 -1
- 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 +257 -74
- package/src/index.ts +5 -0
- package/src/server/modules/auth/auth.resolver.ts +8 -0
- package/src/server/modules/better-auth/better-auth.controller.ts +41 -0
- package/src/server/modules/better-auth/better-auth.module.ts +88 -0
- package/src/server/modules/better-auth/better-auth.resolver.ts +210 -0
- package/src/server/modules/user/user.service.ts +4 -2
- package/src/server/server.module.ts +10 -1
|
@@ -21,16 +21,18 @@ const mongoose_2 = require("mongoose");
|
|
|
21
21
|
const translatable_decorator_1 = require("../../../core/common/decorators/translatable.decorator");
|
|
22
22
|
const config_service_1 = require("../../../core/common/services/config.service");
|
|
23
23
|
const email_service_1 = require("../../../core/common/services/email.service");
|
|
24
|
+
const better_auth_user_mapper_1 = require("../../../core/modules/better-auth/better-auth-user.mapper");
|
|
24
25
|
const core_user_service_1 = require("../../../core/modules/user/core-user.service");
|
|
25
26
|
const user_model_1 = require("./user.model");
|
|
26
27
|
let UserService = class UserService extends core_user_service_1.CoreUserService {
|
|
27
|
-
constructor(configService, emailService, mainModelConstructor, mainDbModel, pubSub) {
|
|
28
|
-
super(configService, emailService, mainDbModel, mainModelConstructor);
|
|
28
|
+
constructor(configService, emailService, mainModelConstructor, mainDbModel, pubSub, betterAuthUserMapper) {
|
|
29
|
+
super(configService, emailService, mainDbModel, mainModelConstructor, { betterAuthUserMapper });
|
|
29
30
|
this.configService = configService;
|
|
30
31
|
this.emailService = emailService;
|
|
31
32
|
this.mainModelConstructor = mainModelConstructor;
|
|
32
33
|
this.mainDbModel = mainDbModel;
|
|
33
34
|
this.pubSub = pubSub;
|
|
35
|
+
this.betterAuthUserMapper = betterAuthUserMapper;
|
|
34
36
|
}
|
|
35
37
|
async create(input, serviceOptions) {
|
|
36
38
|
let user = await super.create(input, serviceOptions);
|
|
@@ -87,8 +89,10 @@ exports.UserService = UserService = __decorate([
|
|
|
87
89
|
__param(2, (0, common_1.Inject)('USER_CLASS')),
|
|
88
90
|
__param(3, (0, mongoose_1.InjectModel)('User')),
|
|
89
91
|
__param(4, (0, common_1.Inject)('PUB_SUB')),
|
|
92
|
+
__param(5, (0, common_1.Optional)()),
|
|
90
93
|
__metadata("design:paramtypes", [config_service_1.ConfigService,
|
|
91
94
|
email_service_1.EmailService, Object, mongoose_2.Model,
|
|
92
|
-
graphql_subscriptions_1.PubSub
|
|
95
|
+
graphql_subscriptions_1.PubSub,
|
|
96
|
+
better_auth_user_mapper_1.BetterAuthUserMapper])
|
|
93
97
|
], UserService);
|
|
94
98
|
//# sourceMappingURL=user.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../src/server/modules/user/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../src/server/modules/user/user.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ const core_auth_service_1 = require("../core/modules/auth/services/core-auth.ser
|
|
|
18
18
|
const cron_jobs_service_1 = require("./common/services/cron-jobs.service");
|
|
19
19
|
const auth_controller_1 = require("./modules/auth/auth.controller");
|
|
20
20
|
const auth_module_1 = require("./modules/auth/auth.module");
|
|
21
|
+
const better_auth_module_1 = require("./modules/better-auth/better-auth.module");
|
|
21
22
|
const file_module_1 = require("./modules/file/file.module");
|
|
22
23
|
const server_controller_1 = require("./server.controller");
|
|
23
24
|
let ServerModule = class ServerModule {
|
|
@@ -26,11 +27,15 @@ exports.ServerModule = ServerModule;
|
|
|
26
27
|
exports.ServerModule = ServerModule = __decorate([
|
|
27
28
|
(0, common_1.Module)({
|
|
28
29
|
controllers: [server_controller_1.ServerController, auth_controller_1.AuthController],
|
|
29
|
-
exports: [core_module_1.CoreModule, auth_module_1.AuthModule, file_module_1.FileModule],
|
|
30
|
+
exports: [core_module_1.CoreModule, auth_module_1.AuthModule, better_auth_module_1.BetterAuthModule, file_module_1.FileModule],
|
|
30
31
|
imports: [
|
|
31
32
|
core_module_1.CoreModule.forRoot(core_auth_service_1.CoreAuthService, auth_module_1.AuthModule.forRoot(config_env_1.default.jwt), config_env_1.default),
|
|
32
33
|
schedule_1.ScheduleModule.forRoot(),
|
|
33
34
|
auth_module_1.AuthModule.forRoot(config_env_1.default.jwt),
|
|
35
|
+
better_auth_module_1.BetterAuthModule.forRoot({
|
|
36
|
+
config: config_env_1.default.betterAuth,
|
|
37
|
+
fallbackSecrets: [config_env_1.default.jwt?.secret, config_env_1.default.jwt?.refresh?.secret],
|
|
38
|
+
}),
|
|
34
39
|
file_module_1.FileModule,
|
|
35
40
|
],
|
|
36
41
|
providers: [any_scalar_1.Any, cron_jobs_service_1.CronJobs, date_scalar_1.DateScalar, json_scalar_1.JSON],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.module.js","sourceRoot":"","sources":["../../src/server/server.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAAkD;AAElD,8CAAsC;AACtC,gDAA4C;AAC5C,kEAAwD;AACxD,oEAAgE;AAChE,oEAA0D;AAC1D,uFAAkF;AAClF,2EAA+D;AAC/D,oEAAgE;AAChE,4DAAwD;AACxD,4DAAwD;AACxD,2DAAuD;
|
|
1
|
+
{"version":3,"file":"server.module.js","sourceRoot":"","sources":["../../src/server/server.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,+CAAkD;AAElD,8CAAsC;AACtC,gDAA4C;AAC5C,kEAAwD;AACxD,oEAAgE;AAChE,oEAA0D;AAC1D,uFAAkF;AAClF,2EAA+D;AAC/D,oEAAgE;AAChE,4DAAwD;AACxD,iFAA4E;AAC5E,4DAAwD;AACxD,2DAAuD;AAyChD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAjCxB,IAAA,eAAM,EAAC;QAEN,WAAW,EAAE,CAAC,oCAAgB,EAAE,gCAAc,CAAC;QAG/C,OAAO,EAAE,CAAC,wBAAU,EAAE,wBAAU,EAAE,qCAAgB,EAAE,wBAAU,CAAC;QAG/D,OAAO,EAAE;YAGP,wBAAU,CAAC,OAAO,CAAC,mCAAe,EAAE,wBAAU,CAAC,OAAO,CAAC,oBAAS,CAAC,GAAG,CAAC,EAAE,oBAAS,CAAC;YAGjF,yBAAc,CAAC,OAAO,EAAE;YAIxB,wBAAU,CAAC,OAAO,CAAC,oBAAS,CAAC,GAAG,CAAC;YAIjC,qCAAgB,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,oBAAS,CAAC,UAAU;gBAC5B,eAAe,EAAE,CAAC,oBAAS,CAAC,GAAG,EAAE,MAAM,EAAE,oBAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;aACzE,CAAC;YAGF,wBAAU;SACX;QAED,SAAS,EAAE,CAAC,gBAAG,EAAE,4BAAQ,EAAE,wBAAU,EAAE,kBAAI,CAAC;KAC7C,CAAC;GACW,YAAY,CAAG"}
|