@punks/backend-entity-manager 0.0.67 → 0.0.69

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 (84) hide show
  1. package/dist/cjs/index.js +266 -52
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +1 -1
  4. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/auth.test-controller.d.ts +11 -0
  5. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/auth.roles.service.d.ts +12 -0
  6. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/{user.service.d.ts → services/auth.user.service.d.ts} +7 -7
  7. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/auth.userRoles.service.d.ts +20 -0
  8. package/dist/cjs/types/platforms/nest/__test__/server/app/auth/services/index.d.ts +4 -0
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.manager.d.ts +1 -0
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.models.d.ts +1 -0
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.query.d.ts +3 -2
  12. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.models.d.ts +2 -0
  13. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.query.d.ts +2 -1
  14. package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +2 -2
  15. package/dist/cjs/types/platforms/nest/__test__/tests/authentication/test_auth_guards.test.d.ts +1 -0
  16. package/dist/cjs/types/platforms/nest/__test__/tests/authentication/test_auth_jwt.test.d.ts +1 -0
  17. package/dist/cjs/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +26 -4
  18. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/guards.d.ts +4 -0
  19. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/index.d.ts +3 -0
  20. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/rolesService.d.ts +1 -0
  21. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/symbols.d.ts +8 -0
  22. package/dist/cjs/types/platforms/nest/extensions/authentication/decorators/userRolesService.d.ts +1 -0
  23. package/dist/cjs/types/platforms/nest/extensions/authentication/guards/auth.d.ts +13 -0
  24. package/dist/cjs/types/platforms/nest/extensions/authentication/guards/index.d.ts +1 -0
  25. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-register/types.d.ts +1 -0
  26. package/dist/cjs/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
  27. package/dist/cjs/types/platforms/nest/extensions/authentication/initializer/index.d.ts +5 -0
  28. package/dist/cjs/types/platforms/nest/extensions/authentication/middlewares/authentication/index.d.ts +10 -0
  29. package/dist/cjs/types/platforms/nest/extensions/authentication/module.d.ts +3 -2
  30. package/dist/cjs/types/platforms/nest/extensions/authentication/resolver/index.d.ts +7 -1
  31. package/dist/cjs/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +7 -2
  32. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/models.d.ts +2 -0
  33. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/base/initializer/index.d.ts +6 -0
  34. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/processors/providers.d.ts +1 -0
  35. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/index.d.ts +2 -0
  36. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/organization-initializer/index.d.ts +8 -0
  37. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/providers.d.ts +3 -0
  38. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/tenant-initializer/index.d.ts +8 -0
  39. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/symbols/index.d.ts +10 -0
  40. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/types/index.d.ts +1 -0
  41. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/types/templates.d.ts +20 -0
  42. package/dist/esm/index.js +261 -53
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +1 -1
  45. package/dist/esm/types/platforms/nest/__test__/server/app/auth/auth.test-controller.d.ts +11 -0
  46. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/auth.roles.service.d.ts +12 -0
  47. package/dist/esm/types/platforms/nest/__test__/server/app/auth/{user.service.d.ts → services/auth.user.service.d.ts} +7 -7
  48. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/auth.userRoles.service.d.ts +20 -0
  49. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/index.d.ts +4 -0
  50. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.manager.d.ts +1 -0
  51. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.models.d.ts +1 -0
  52. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.query.d.ts +3 -2
  53. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.models.d.ts +2 -0
  54. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.query.d.ts +2 -1
  55. package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +2 -2
  56. package/dist/esm/types/platforms/nest/__test__/tests/authentication/test_auth_guards.test.d.ts +1 -0
  57. package/dist/esm/types/platforms/nest/__test__/tests/authentication/test_auth_jwt.test.d.ts +1 -0
  58. package/dist/esm/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +26 -4
  59. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/guards.d.ts +4 -0
  60. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/index.d.ts +3 -0
  61. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/rolesService.d.ts +1 -0
  62. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/symbols.d.ts +8 -0
  63. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/userRolesService.d.ts +1 -0
  64. package/dist/esm/types/platforms/nest/extensions/authentication/guards/auth.d.ts +13 -0
  65. package/dist/esm/types/platforms/nest/extensions/authentication/guards/index.d.ts +1 -0
  66. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-register/types.d.ts +1 -0
  67. package/dist/esm/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
  68. package/dist/esm/types/platforms/nest/extensions/authentication/initializer/index.d.ts +5 -0
  69. package/dist/esm/types/platforms/nest/extensions/authentication/middlewares/authentication/index.d.ts +10 -0
  70. package/dist/esm/types/platforms/nest/extensions/authentication/module.d.ts +3 -2
  71. package/dist/esm/types/platforms/nest/extensions/authentication/resolver/index.d.ts +7 -1
  72. package/dist/esm/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +7 -2
  73. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/models.d.ts +2 -0
  74. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/base/initializer/index.d.ts +6 -0
  75. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/processors/providers.d.ts +1 -0
  76. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/index.d.ts +2 -0
  77. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/organization-initializer/index.d.ts +8 -0
  78. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/providers.d.ts +3 -0
  79. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/tenant-initializer/index.d.ts +8 -0
  80. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/symbols/index.d.ts +10 -0
  81. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/types/index.d.ts +1 -0
  82. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/types/templates.d.ts +20 -0
  83. package/dist/index.d.ts +70 -10
  84. package/package.json +1 -1
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Log, sort, byField, toDict, newUuid as newUuid$1, removeUndefinedProps } from '@punks/backend-core';
2
2
  import { applyDecorators, Injectable, SetMetadata, Global, Module, Scope, Logger, HttpStatus, HttpException } from '@nestjs/common';
3
3
  import { ApiProperty } from '@nestjs/swagger';
4
+ import { Reflector } from '@nestjs/core';
4
5
  import { AsyncLocalStorage } from 'async_hooks';
5
6
  import { hash } from 'bcrypt';
6
7
  import { PATH_METADATA } from '@nestjs/common/constants';
@@ -9,7 +10,6 @@ import { MetadataScanner } from '@nestjs/core/metadata-scanner';
9
10
  import { JwtService, JwtModule } from '@nestjs/jwt';
10
11
  import { EventEmitter2, EventEmitterModule } from '@nestjs/event-emitter';
11
12
  import { In } from 'typeorm';
12
- import { Reflector } from '@nestjs/core';
13
13
  import { SendEmailCommand, SESClient } from '@aws-sdk/client-ses';
14
14
  import require$$2 from 'fs';
15
15
  import { MailService } from '@sendgrid/mail';
@@ -312,10 +312,27 @@ __decorate([
312
312
 
313
313
  const AuthenticationExtensionSymbols = {
314
314
  UserService: Symbol.for("WP.EXT:AUTHENTICATION.USER_SERVICE"),
315
+ RolesService: Symbol.for("WP.EXT:AUTHENTICATION.ROLES_SERVICE"),
316
+ UserRolesService: Symbol.for("WP.EXT:AUTHENTICATION.USER_ROLES_SERVICE"),
317
+ };
318
+ const AuthenticationGuardsSymbols = {
319
+ Authenticated: "guard:authenticated",
320
+ Public: "guard:public",
321
+ Roles: "guard:roles",
322
+ MemberOf: "guard:memberOf",
315
323
  };
316
324
 
325
+ const Public = () => SetMetadata(AuthenticationGuardsSymbols.Public, true);
326
+ const Authenticated = () => SetMetadata(AuthenticationGuardsSymbols.Authenticated, true);
327
+ const Roles = (...roles) => SetMetadata(AuthenticationGuardsSymbols.Roles, roles);
328
+ const MemberOf = (...groups) => SetMetadata(AuthenticationGuardsSymbols.MemberOf, groups);
329
+
330
+ const WpRolesService = () => applyDecorators(Injectable(), SetMetadata(AuthenticationExtensionSymbols.RolesService, true));
331
+
317
332
  const WpUserService = () => applyDecorators(Injectable(), SetMetadata(AuthenticationExtensionSymbols.UserService, true));
318
333
 
334
+ const WpUserRolesService = () => applyDecorators(Injectable(), SetMetadata(AuthenticationExtensionSymbols.UserRolesService, true));
335
+
319
336
  const AuthenticationEmailTemplates = {
320
337
  Registration: "registration",
321
338
  PasswordReset: "passwordReset",
@@ -350,6 +367,59 @@ const AuthenticationEvents = {
350
367
  UserPasswordResetCompleted: `${AUTHENTICATION_EVENTS_NAMESPACE}:user.passwordResetCompleted`,
351
368
  };
352
369
 
370
+ let AuthGuard = class AuthGuard {
371
+ constructor(reflector) {
372
+ this.reflector = reflector;
373
+ }
374
+ canActivate(context) {
375
+ const isPublic = this.getIsPublic(context);
376
+ if (isPublic) {
377
+ return true;
378
+ }
379
+ const auth = this.getCurrentAuth(context);
380
+ const allowedRoles = this.getAllowedRoles(context);
381
+ if (allowedRoles) {
382
+ return this.isRoleMatching(allowedRoles, auth?.roles ?? []);
383
+ }
384
+ const isForAllAuthenticated = this.getIsForAllAuthenticated(context);
385
+ if (isForAllAuthenticated) {
386
+ return !!auth?.user;
387
+ }
388
+ return false;
389
+ }
390
+ isRoleMatching(allowedRoles, userRoles) {
391
+ return userRoles.some((role) => allowedRoles.includes(role.uid));
392
+ }
393
+ getIsForAllAuthenticated(context) {
394
+ return this.getMetadata(AuthenticationGuardsSymbols.Authenticated, context);
395
+ }
396
+ getIsPublic(context) {
397
+ return this.getMetadata(AuthenticationGuardsSymbols.Public, context);
398
+ }
399
+ getAllowedRoles(context) {
400
+ return this.getMetadata(AuthenticationGuardsSymbols.Roles, context);
401
+ }
402
+ getCurrentAuth(context) {
403
+ const request = context.switchToHttp()?.getRequest();
404
+ return request?.auth?.user
405
+ ? {
406
+ user: request.auth.user,
407
+ roles: request.auth.roles,
408
+ }
409
+ : undefined;
410
+ }
411
+ getMetadata(symbol, context) {
412
+ return this.reflector.getAllAndOverride(symbol, [
413
+ context.getHandler(),
414
+ context.getClass(),
415
+ ]);
416
+ }
417
+ };
418
+ AuthGuard = __decorate([
419
+ Injectable(),
420
+ __metadata("design:paramtypes", [Reflector])
421
+ ], AuthGuard);
422
+
353
423
  const asyncLocalStorage = new AsyncLocalStorage();
354
424
 
355
425
  let AppSessionService = class AppSessionService {
@@ -19073,12 +19143,30 @@ let AuthenticationServicesResolver = class AuthenticationServicesResolver {
19073
19143
  registerUsersService(usersService) {
19074
19144
  this.usersService = usersService;
19075
19145
  }
19146
+ registerRoleService(rolesService) {
19147
+ this.rolesService = rolesService;
19148
+ }
19149
+ registerUserRolesService(userRolesService) {
19150
+ this.usersRolesService = userRolesService;
19151
+ }
19076
19152
  getUsersService() {
19077
19153
  if (!this.usersService) {
19078
19154
  throw new Error("Users service is not registered");
19079
19155
  }
19080
19156
  return this.usersService;
19081
19157
  }
19158
+ getRoleService() {
19159
+ if (!this.rolesService) {
19160
+ throw new Error("Roles service is not registered");
19161
+ }
19162
+ return this.rolesService;
19163
+ }
19164
+ getUserRoleService() {
19165
+ if (!this.usersRolesService) {
19166
+ throw new Error("User roles service is not registered");
19167
+ }
19168
+ return this.usersRolesService;
19169
+ }
19082
19170
  };
19083
19171
  AuthenticationServicesResolver = __decorate([
19084
19172
  Injectable()
@@ -19187,6 +19275,7 @@ let UserRegistrationHandler = class UserRegistrationHandler {
19187
19275
  this.logger.debug(`User already exists but not verified. Sending new verification email: ${input.email} - ${input.userName}`, { user });
19188
19276
  return {
19189
19277
  success: true,
19278
+ userId: user.id,
19190
19279
  };
19191
19280
  }
19192
19281
  const newUser = await this.createUser(input.email, input.registrationInfo, input.context);
@@ -19201,6 +19290,7 @@ let UserRegistrationHandler = class UserRegistrationHandler {
19201
19290
  });
19202
19291
  return {
19203
19292
  success: true,
19293
+ userId: newUser.id,
19204
19294
  };
19205
19295
  }
19206
19296
  async createPasswordHash(password, userId) {
@@ -19565,7 +19655,7 @@ UserVerifyRequestHandler = __decorate([
19565
19655
  ], UserVerifyRequestHandler);
19566
19656
 
19567
19657
  let AuthenticationService = class AuthenticationService {
19568
- constructor(userDisableHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler) {
19658
+ constructor(userDisableHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler, resolver) {
19569
19659
  this.userDisableHandler = userDisableHandler;
19570
19660
  this.userEnableHandler = userEnableHandler;
19571
19661
  this.userLoginHandler = userLoginHandler;
@@ -19576,6 +19666,7 @@ let AuthenticationService = class AuthenticationService {
19576
19666
  this.userTokenVerifyHandler = userTokenVerifyHandler;
19577
19667
  this.userVerifyRequestHandler = userVerifyRequestHandler;
19578
19668
  this.userVerifyCompleteHandler = userVerifyCompleteHandler;
19669
+ this.resolver = resolver;
19579
19670
  }
19580
19671
  async userDisable(input) {
19581
19672
  await this.userDisableHandler.execute(input);
@@ -19607,6 +19698,15 @@ let AuthenticationService = class AuthenticationService {
19607
19698
  async userTokenVerify(input) {
19608
19699
  return await this.userTokenVerifyHandler.execute(input);
19609
19700
  }
19701
+ get usersService() {
19702
+ return this.resolver.getUsersService();
19703
+ }
19704
+ get rolesService() {
19705
+ return this.resolver.getRoleService();
19706
+ }
19707
+ get userRolesService() {
19708
+ return this.resolver.getUserRoleService();
19709
+ }
19610
19710
  };
19611
19711
  AuthenticationService = __decorate([
19612
19712
  Injectable(),
@@ -19619,12 +19719,13 @@ AuthenticationService = __decorate([
19619
19719
  UserRegistrationHandler,
19620
19720
  UserTokenVerifyHandler,
19621
19721
  UserVerifyRequestHandler,
19622
- UserVerifyCompleteHandler])
19722
+ UserVerifyCompleteHandler,
19723
+ AuthenticationServicesResolver])
19623
19724
  ], AuthenticationService);
19624
19725
 
19625
- const Services$1 = [AuthenticationService];
19726
+ const Services$2 = [AuthenticationService];
19626
19727
 
19627
- const Services = [
19728
+ const Services$1 = [
19628
19729
  AppSessionService,
19629
19730
  AppHashingService,
19630
19731
  EntityManagerService,
@@ -19847,8 +19948,8 @@ let EntityManagerModule = class EntityManagerModule {
19847
19948
  EntityManagerModule = __decorate([
19848
19949
  Module({
19849
19950
  imports: [CustomDiscoveryModule, EventEmitterModule],
19850
- providers: [...IoC, ...Providers, ...Processors, ...Services],
19851
- exports: [EntityManagerRegistry, ...Services],
19951
+ providers: [...IoC, ...Providers, ...Processors, ...Services$1],
19952
+ exports: [EntityManagerRegistry, ...Services$1],
19852
19953
  })
19853
19954
  ], EntityManagerModule);
19854
19955
 
@@ -19875,16 +19976,44 @@ let AuthenticationInitializer = AuthenticationInitializer_1 = class Authenticati
19875
19976
  this.logger = new Logger(AuthenticationInitializer_1.name);
19876
19977
  }
19877
19978
  async initialize(app) {
19878
- const userService = await this.discoverUserService();
19879
- if (!userService) {
19979
+ await this.registerRolesService();
19980
+ await this.registerUsersService();
19981
+ await this.registerUserRolesService();
19982
+ this.logger.log("Authentication initialized 🔑");
19983
+ }
19984
+ async registerRolesService() {
19985
+ const service = await this.discoverRolesService();
19986
+ if (!service) {
19987
+ throw new Error("No roles service found");
19988
+ }
19989
+ this.registry.registerRoleService(service.discoveredClass.instance);
19990
+ this.logger.log(`Authentication roles service ${service.discoveredClass.name} registered`);
19991
+ }
19992
+ async registerUsersService() {
19993
+ const service = await this.discoverUserService();
19994
+ if (!service) {
19880
19995
  throw new Error("No user service found");
19881
19996
  }
19882
- this.registry.registerUsersService(userService.discoveredClass.instance);
19883
- this.logger.log("Authentication initialized 🔑");
19997
+ this.registry.registerUsersService(service.discoveredClass.instance);
19998
+ this.logger.log(`Authentication users service ${service.discoveredClass.name} registered`);
19999
+ }
20000
+ async registerUserRolesService() {
20001
+ const service = await this.discoverUserRolesService();
20002
+ if (!service) {
20003
+ throw new Error("No user roles service found");
20004
+ }
20005
+ this.registry.registerUserRolesService(service.discoveredClass.instance);
20006
+ this.logger.log(`Authentication user roles service ${service.discoveredClass.name} registered`);
19884
20007
  }
19885
20008
  async discoverUserService() {
19886
20009
  return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.UserService);
19887
20010
  }
20011
+ async discoverRolesService() {
20012
+ return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.RolesService);
20013
+ }
20014
+ async discoverUserRolesService() {
20015
+ return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.UserRolesService);
20016
+ }
19888
20017
  };
19889
20018
  AuthenticationInitializer = AuthenticationInitializer_1 = __decorate([
19890
20019
  WpAppInitializer(),
@@ -19892,17 +20021,95 @@ AuthenticationInitializer = AuthenticationInitializer_1 = __decorate([
19892
20021
  AuthenticationServicesResolver])
19893
20022
  ], AuthenticationInitializer);
19894
20023
 
20024
+ class AppSession {
20025
+ constructor(request, response) {
20026
+ this._map = new Map();
20027
+ this._request = request;
20028
+ this._response = response;
20029
+ }
20030
+ get(key) {
20031
+ return this._map.get(key);
20032
+ }
20033
+ set(key, value) {
20034
+ this._map.set(key, value);
20035
+ }
20036
+ delete(key) {
20037
+ this._map.delete(key);
20038
+ }
20039
+ clear() {
20040
+ this._map.clear();
20041
+ }
20042
+ get request() {
20043
+ return this._request;
20044
+ }
20045
+ get response() {
20046
+ return this._response;
20047
+ }
20048
+ }
20049
+
20050
+ let AppSessionMiddleware = class AppSessionMiddleware {
20051
+ use(req, res, next) {
20052
+ asyncLocalStorage.run(new AppSession(req, res), () => {
20053
+ next();
20054
+ });
20055
+ }
20056
+ };
20057
+ AppSessionMiddleware = __decorate([
20058
+ Injectable()
20059
+ ], AppSessionMiddleware);
20060
+ function appSessionMiddleware(req, res, next) {
20061
+ asyncLocalStorage.run(new AppSession(req, res), () => {
20062
+ next();
20063
+ });
20064
+ }
20065
+
20066
+ let AuthenticationMiddleware = class AuthenticationMiddleware {
20067
+ constructor(authService) {
20068
+ this.authService = authService;
20069
+ }
20070
+ async use(req, res, next) {
20071
+ const token = this.extractTokenFromHeader(req);
20072
+ if (token) {
20073
+ const parsedToken = await this.authService.userTokenVerify({ token });
20074
+ if (parsedToken.isValid) {
20075
+ const user = await this.getUserFromToken(parsedToken.data);
20076
+ const roles = user ? await this.getUserRoles(user) : [];
20077
+ req.auth = {
20078
+ user,
20079
+ roles,
20080
+ };
20081
+ }
20082
+ }
20083
+ next();
20084
+ }
20085
+ async getUserFromToken(parsedToken) {
20086
+ return await this.authService.usersService.getById(parsedToken.userId);
20087
+ }
20088
+ async getUserRoles(user) {
20089
+ return await this.authService.userRolesService.getUserRoles(user.id);
20090
+ }
20091
+ extractTokenFromHeader(request) {
20092
+ const [type, token] = request.headers.authorization?.split(" ") ?? [];
20093
+ return type === "Bearer" ? token : undefined;
20094
+ }
20095
+ };
20096
+ AuthenticationMiddleware = __decorate([
20097
+ Injectable(),
20098
+ __metadata("design:paramtypes", [AuthenticationService])
20099
+ ], AuthenticationMiddleware);
20100
+
19895
20101
  var AuthenticationModule_1;
19896
20102
  const ModuleData$2 = {
19897
20103
  imports: [EntityManagerModule, JwtModule],
19898
20104
  providers: [
19899
20105
  AuthenticationServicesResolver,
19900
20106
  AuthenticationInitializer,
19901
- ...Services$1,
20107
+ AuthGuard,
20108
+ ...Services$2,
19902
20109
  ...UserHandlers,
19903
20110
  ...AuthenticationProviders,
19904
20111
  ],
19905
- exports: [...Services$1],
20112
+ exports: [...Services$2],
19906
20113
  };
19907
20114
  let AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
19908
20115
  static forRoot(input) {
@@ -19912,6 +20119,13 @@ let AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
19912
20119
  ...ModuleData$2,
19913
20120
  };
19914
20121
  }
20122
+ configure(consumer) {
20123
+ consumer
20124
+ .apply(appSessionMiddleware)
20125
+ .forRoutes("*")
20126
+ .apply(AuthenticationMiddleware)
20127
+ .forRoutes("*");
20128
+ }
19915
20129
  };
19916
20130
  AuthenticationModule = AuthenticationModule_1 = __decorate([
19917
20131
  Module({
@@ -19919,10 +20133,41 @@ AuthenticationModule = AuthenticationModule_1 = __decorate([
19919
20133
  })
19920
20134
  ], AuthenticationModule);
19921
20135
 
20136
+ let OrganizationInitializerService = class OrganizationInitializerService {
20137
+ constructor(registry) {
20138
+ this.registry = registry;
20139
+ }
20140
+ async execute(template) { }
20141
+ };
20142
+ OrganizationInitializerService = __decorate([
20143
+ Injectable(),
20144
+ __metadata("design:paramtypes", [EntityManagerRegistry])
20145
+ ], OrganizationInitializerService);
20146
+
20147
+ let TenantInitializerService = class TenantInitializerService {
20148
+ constructor(registry) {
20149
+ this.registry = registry;
20150
+ }
20151
+ async execute(template) { }
20152
+ };
20153
+ TenantInitializerService = __decorate([
20154
+ Injectable(),
20155
+ __metadata("design:paramtypes", [EntityManagerRegistry])
20156
+ ], TenantInitializerService);
20157
+
20158
+ const Services = [
20159
+ OrganizationInitializerService,
20160
+ TenantInitializerService,
20161
+ ];
20162
+
19922
20163
  let MultiTenancyModule = class MultiTenancyModule {
19923
20164
  };
19924
20165
  MultiTenancyModule = __decorate([
19925
- Module({})
20166
+ Module({
20167
+ imports: [EntityManagerModule],
20168
+ providers: [...Providers, ...Services],
20169
+ exports: [...Services],
20170
+ })
19926
20171
  ], MultiTenancyModule);
19927
20172
 
19928
20173
  class QueryBuilderBase {
@@ -19972,7 +20217,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
19972
20217
  ...(context ? this.buildContextFilter(context) : {}),
19973
20218
  ...this.buildWhereClause(request),
19974
20219
  },
19975
- relations: this.getRelationsToLoad(request),
20220
+ relations: this.getRelationsToLoad(request, context),
19976
20221
  ...this.buildPagingParameters(request),
19977
20222
  });
19978
20223
  }
@@ -25399,42 +25644,5 @@ SendgridEmailModule = SendgridEmailModule_1 = __decorate([
25399
25644
  })
25400
25645
  ], SendgridEmailModule);
25401
25646
 
25402
- class AppSession {
25403
- constructor(request, response) {
25404
- this._map = new Map();
25405
- this._request = request;
25406
- this._response = response;
25407
- }
25408
- get(key) {
25409
- return this._map.get(key);
25410
- }
25411
- set(key, value) {
25412
- this._map.set(key, value);
25413
- }
25414
- delete(key) {
25415
- this._map.delete(key);
25416
- }
25417
- clear() {
25418
- this._map.clear();
25419
- }
25420
- get request() {
25421
- return this._request;
25422
- }
25423
- get response() {
25424
- return this._response;
25425
- }
25426
- }
25427
-
25428
- let AppSessionMiddleware = class AppSessionMiddleware {
25429
- use(req, res, next) {
25430
- asyncLocalStorage.run(new AppSession(req, res), () => {
25431
- next();
25432
- });
25433
- }
25434
- };
25435
- AppSessionMiddleware = __decorate([
25436
- Injectable()
25437
- ], AppSessionMiddleware);
25438
-
25439
- export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, BooleanFacet, BooleanFacetItem, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EventsService, InvalidCredentialsError, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, NumericFacet, NumericFacetItem, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, PlatformEvents, QueryBuilderBase, ReplicationMode, SendgridEmailModule, SendgridEmailTemplate, SortDirection, StringFacet, StringFacetItem, TrackingService, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEventsTracker, WpSendgridEmailTemplate, WpUserService, getLocalizedText, newUuid, renderHandlebarsTemplate };
25647
+ export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, AuthGuard, Authenticated, AuthenticationEmailTemplates, AuthenticationError, AuthenticationEvents, AuthenticationExtensionSymbols, AuthenticationModule, AuthenticationService, AwsEmailModule, AwsSesEmailTemplate, BooleanFacet, BooleanFacetItem, EmailService, EntityManagerConfigurationError, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerRegistry, EntityManagerService, EntityManagerSymbols, EntityManagerUnauthorizedException, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntitySeeder, EventsService, InvalidCredentialsError, MemberOf, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmEntitySeeder, NestTypeOrmQueryBuilder, NestTypeOrmRepository, NumericFacet, NumericFacetItem, OperationTokenMismatchError, PLATFORM_EVENT_NAMESPACE, PlatformEvents, Public, QueryBuilderBase, ReplicationMode, Roles, SendgridEmailModule, SendgridEmailTemplate, SortDirection, StringFacet, StringFacetItem, TrackingService, UserRegistrationError, WpAppInitializer, WpAwsSesEmailTemplate, WpEmailTemplate, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, WpEntitySeeder, WpEventsTracker, WpRolesService, WpSendgridEmailTemplate, WpUserRolesService, WpUserService, getLocalizedText, newUuid, renderHandlebarsTemplate };
25440
25648
  //# sourceMappingURL=index.js.map