@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/cjs/index.js CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var backendCore = require('@punks/backend-core');
6
6
  var common = require('@nestjs/common');
7
7
  var swagger = require('@nestjs/swagger');
8
+ var core = require('@nestjs/core');
8
9
  var async_hooks = require('async_hooks');
9
10
  var bcrypt = require('bcrypt');
10
11
  var constants = require('@nestjs/common/constants');
@@ -13,7 +14,6 @@ var metadataScanner = require('@nestjs/core/metadata-scanner');
13
14
  var jwt = require('@nestjs/jwt');
14
15
  var eventEmitter = require('@nestjs/event-emitter');
15
16
  var typeorm = require('typeorm');
16
- var core = require('@nestjs/core');
17
17
  var clientSes = require('@aws-sdk/client-ses');
18
18
  var require$$2 = require('fs');
19
19
  var mail = require('@sendgrid/mail');
@@ -320,10 +320,27 @@ __decorate([
320
320
 
321
321
  const AuthenticationExtensionSymbols = {
322
322
  UserService: Symbol.for("WP.EXT:AUTHENTICATION.USER_SERVICE"),
323
+ RolesService: Symbol.for("WP.EXT:AUTHENTICATION.ROLES_SERVICE"),
324
+ UserRolesService: Symbol.for("WP.EXT:AUTHENTICATION.USER_ROLES_SERVICE"),
325
+ };
326
+ const AuthenticationGuardsSymbols = {
327
+ Authenticated: "guard:authenticated",
328
+ Public: "guard:public",
329
+ Roles: "guard:roles",
330
+ MemberOf: "guard:memberOf",
323
331
  };
324
332
 
333
+ const Public = () => common.SetMetadata(AuthenticationGuardsSymbols.Public, true);
334
+ const Authenticated = () => common.SetMetadata(AuthenticationGuardsSymbols.Authenticated, true);
335
+ const Roles = (...roles) => common.SetMetadata(AuthenticationGuardsSymbols.Roles, roles);
336
+ const MemberOf = (...groups) => common.SetMetadata(AuthenticationGuardsSymbols.MemberOf, groups);
337
+
338
+ const WpRolesService = () => common.applyDecorators(common.Injectable(), common.SetMetadata(AuthenticationExtensionSymbols.RolesService, true));
339
+
325
340
  const WpUserService = () => common.applyDecorators(common.Injectable(), common.SetMetadata(AuthenticationExtensionSymbols.UserService, true));
326
341
 
342
+ const WpUserRolesService = () => common.applyDecorators(common.Injectable(), common.SetMetadata(AuthenticationExtensionSymbols.UserRolesService, true));
343
+
327
344
  const AuthenticationEmailTemplates = {
328
345
  Registration: "registration",
329
346
  PasswordReset: "passwordReset",
@@ -358,6 +375,59 @@ const AuthenticationEvents = {
358
375
  UserPasswordResetCompleted: `${AUTHENTICATION_EVENTS_NAMESPACE}:user.passwordResetCompleted`,
359
376
  };
360
377
 
378
+ exports.AuthGuard = class AuthGuard {
379
+ constructor(reflector) {
380
+ this.reflector = reflector;
381
+ }
382
+ canActivate(context) {
383
+ const isPublic = this.getIsPublic(context);
384
+ if (isPublic) {
385
+ return true;
386
+ }
387
+ const auth = this.getCurrentAuth(context);
388
+ const allowedRoles = this.getAllowedRoles(context);
389
+ if (allowedRoles) {
390
+ return this.isRoleMatching(allowedRoles, auth?.roles ?? []);
391
+ }
392
+ const isForAllAuthenticated = this.getIsForAllAuthenticated(context);
393
+ if (isForAllAuthenticated) {
394
+ return !!auth?.user;
395
+ }
396
+ return false;
397
+ }
398
+ isRoleMatching(allowedRoles, userRoles) {
399
+ return userRoles.some((role) => allowedRoles.includes(role.uid));
400
+ }
401
+ getIsForAllAuthenticated(context) {
402
+ return this.getMetadata(AuthenticationGuardsSymbols.Authenticated, context);
403
+ }
404
+ getIsPublic(context) {
405
+ return this.getMetadata(AuthenticationGuardsSymbols.Public, context);
406
+ }
407
+ getAllowedRoles(context) {
408
+ return this.getMetadata(AuthenticationGuardsSymbols.Roles, context);
409
+ }
410
+ getCurrentAuth(context) {
411
+ const request = context.switchToHttp()?.getRequest();
412
+ return request?.auth?.user
413
+ ? {
414
+ user: request.auth.user,
415
+ roles: request.auth.roles,
416
+ }
417
+ : undefined;
418
+ }
419
+ getMetadata(symbol, context) {
420
+ return this.reflector.getAllAndOverride(symbol, [
421
+ context.getHandler(),
422
+ context.getClass(),
423
+ ]);
424
+ }
425
+ };
426
+ exports.AuthGuard = __decorate([
427
+ common.Injectable(),
428
+ __metadata("design:paramtypes", [core.Reflector])
429
+ ], exports.AuthGuard);
430
+
361
431
  const asyncLocalStorage = new async_hooks.AsyncLocalStorage();
362
432
 
363
433
  exports.AppSessionService = class AppSessionService {
@@ -19081,12 +19151,30 @@ let AuthenticationServicesResolver = class AuthenticationServicesResolver {
19081
19151
  registerUsersService(usersService) {
19082
19152
  this.usersService = usersService;
19083
19153
  }
19154
+ registerRoleService(rolesService) {
19155
+ this.rolesService = rolesService;
19156
+ }
19157
+ registerUserRolesService(userRolesService) {
19158
+ this.usersRolesService = userRolesService;
19159
+ }
19084
19160
  getUsersService() {
19085
19161
  if (!this.usersService) {
19086
19162
  throw new Error("Users service is not registered");
19087
19163
  }
19088
19164
  return this.usersService;
19089
19165
  }
19166
+ getRoleService() {
19167
+ if (!this.rolesService) {
19168
+ throw new Error("Roles service is not registered");
19169
+ }
19170
+ return this.rolesService;
19171
+ }
19172
+ getUserRoleService() {
19173
+ if (!this.usersRolesService) {
19174
+ throw new Error("User roles service is not registered");
19175
+ }
19176
+ return this.usersRolesService;
19177
+ }
19090
19178
  };
19091
19179
  AuthenticationServicesResolver = __decorate([
19092
19180
  common.Injectable()
@@ -19195,6 +19283,7 @@ let UserRegistrationHandler = class UserRegistrationHandler {
19195
19283
  this.logger.debug(`User already exists but not verified. Sending new verification email: ${input.email} - ${input.userName}`, { user });
19196
19284
  return {
19197
19285
  success: true,
19286
+ userId: user.id,
19198
19287
  };
19199
19288
  }
19200
19289
  const newUser = await this.createUser(input.email, input.registrationInfo, input.context);
@@ -19209,6 +19298,7 @@ let UserRegistrationHandler = class UserRegistrationHandler {
19209
19298
  });
19210
19299
  return {
19211
19300
  success: true,
19301
+ userId: newUser.id,
19212
19302
  };
19213
19303
  }
19214
19304
  async createPasswordHash(password, userId) {
@@ -19573,7 +19663,7 @@ UserVerifyRequestHandler = __decorate([
19573
19663
  ], UserVerifyRequestHandler);
19574
19664
 
19575
19665
  exports.AuthenticationService = class AuthenticationService {
19576
- constructor(userDisableHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler) {
19666
+ constructor(userDisableHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler, resolver) {
19577
19667
  this.userDisableHandler = userDisableHandler;
19578
19668
  this.userEnableHandler = userEnableHandler;
19579
19669
  this.userLoginHandler = userLoginHandler;
@@ -19584,6 +19674,7 @@ exports.AuthenticationService = class AuthenticationService {
19584
19674
  this.userTokenVerifyHandler = userTokenVerifyHandler;
19585
19675
  this.userVerifyRequestHandler = userVerifyRequestHandler;
19586
19676
  this.userVerifyCompleteHandler = userVerifyCompleteHandler;
19677
+ this.resolver = resolver;
19587
19678
  }
19588
19679
  async userDisable(input) {
19589
19680
  await this.userDisableHandler.execute(input);
@@ -19615,6 +19706,15 @@ exports.AuthenticationService = class AuthenticationService {
19615
19706
  async userTokenVerify(input) {
19616
19707
  return await this.userTokenVerifyHandler.execute(input);
19617
19708
  }
19709
+ get usersService() {
19710
+ return this.resolver.getUsersService();
19711
+ }
19712
+ get rolesService() {
19713
+ return this.resolver.getRoleService();
19714
+ }
19715
+ get userRolesService() {
19716
+ return this.resolver.getUserRoleService();
19717
+ }
19618
19718
  };
19619
19719
  exports.AuthenticationService = __decorate([
19620
19720
  common.Injectable(),
@@ -19627,12 +19727,13 @@ exports.AuthenticationService = __decorate([
19627
19727
  UserRegistrationHandler,
19628
19728
  UserTokenVerifyHandler,
19629
19729
  UserVerifyRequestHandler,
19630
- UserVerifyCompleteHandler])
19730
+ UserVerifyCompleteHandler,
19731
+ AuthenticationServicesResolver])
19631
19732
  ], exports.AuthenticationService);
19632
19733
 
19633
- const Services$1 = [exports.AuthenticationService];
19734
+ const Services$2 = [exports.AuthenticationService];
19634
19735
 
19635
- const Services = [
19736
+ const Services$1 = [
19636
19737
  exports.AppSessionService,
19637
19738
  exports.AppHashingService,
19638
19739
  exports.EntityManagerService,
@@ -19855,8 +19956,8 @@ exports.EntityManagerModule = class EntityManagerModule {
19855
19956
  exports.EntityManagerModule = __decorate([
19856
19957
  common.Module({
19857
19958
  imports: [CustomDiscoveryModule, eventEmitter.EventEmitterModule],
19858
- providers: [...IoC, ...Providers, ...Processors, ...Services],
19859
- exports: [exports.EntityManagerRegistry, ...Services],
19959
+ providers: [...IoC, ...Providers, ...Processors, ...Services$1],
19960
+ exports: [exports.EntityManagerRegistry, ...Services$1],
19860
19961
  })
19861
19962
  ], exports.EntityManagerModule);
19862
19963
 
@@ -19883,16 +19984,44 @@ let AuthenticationInitializer = AuthenticationInitializer_1 = class Authenticati
19883
19984
  this.logger = new common.Logger(AuthenticationInitializer_1.name);
19884
19985
  }
19885
19986
  async initialize(app) {
19886
- const userService = await this.discoverUserService();
19887
- if (!userService) {
19987
+ await this.registerRolesService();
19988
+ await this.registerUsersService();
19989
+ await this.registerUserRolesService();
19990
+ this.logger.log("Authentication initialized 🔑");
19991
+ }
19992
+ async registerRolesService() {
19993
+ const service = await this.discoverRolesService();
19994
+ if (!service) {
19995
+ throw new Error("No roles service found");
19996
+ }
19997
+ this.registry.registerRoleService(service.discoveredClass.instance);
19998
+ this.logger.log(`Authentication roles service ${service.discoveredClass.name} registered`);
19999
+ }
20000
+ async registerUsersService() {
20001
+ const service = await this.discoverUserService();
20002
+ if (!service) {
19888
20003
  throw new Error("No user service found");
19889
20004
  }
19890
- this.registry.registerUsersService(userService.discoveredClass.instance);
19891
- this.logger.log("Authentication initialized 🔑");
20005
+ this.registry.registerUsersService(service.discoveredClass.instance);
20006
+ this.logger.log(`Authentication users service ${service.discoveredClass.name} registered`);
20007
+ }
20008
+ async registerUserRolesService() {
20009
+ const service = await this.discoverUserRolesService();
20010
+ if (!service) {
20011
+ throw new Error("No user roles service found");
20012
+ }
20013
+ this.registry.registerUserRolesService(service.discoveredClass.instance);
20014
+ this.logger.log(`Authentication user roles service ${service.discoveredClass.name} registered`);
19892
20015
  }
19893
20016
  async discoverUserService() {
19894
20017
  return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.UserService);
19895
20018
  }
20019
+ async discoverRolesService() {
20020
+ return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.RolesService);
20021
+ }
20022
+ async discoverUserRolesService() {
20023
+ return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.UserRolesService);
20024
+ }
19896
20025
  };
19897
20026
  AuthenticationInitializer = AuthenticationInitializer_1 = __decorate([
19898
20027
  WpAppInitializer(),
@@ -19900,17 +20029,95 @@ AuthenticationInitializer = AuthenticationInitializer_1 = __decorate([
19900
20029
  AuthenticationServicesResolver])
19901
20030
  ], AuthenticationInitializer);
19902
20031
 
20032
+ class AppSession {
20033
+ constructor(request, response) {
20034
+ this._map = new Map();
20035
+ this._request = request;
20036
+ this._response = response;
20037
+ }
20038
+ get(key) {
20039
+ return this._map.get(key);
20040
+ }
20041
+ set(key, value) {
20042
+ this._map.set(key, value);
20043
+ }
20044
+ delete(key) {
20045
+ this._map.delete(key);
20046
+ }
20047
+ clear() {
20048
+ this._map.clear();
20049
+ }
20050
+ get request() {
20051
+ return this._request;
20052
+ }
20053
+ get response() {
20054
+ return this._response;
20055
+ }
20056
+ }
20057
+
20058
+ exports.AppSessionMiddleware = class AppSessionMiddleware {
20059
+ use(req, res, next) {
20060
+ asyncLocalStorage.run(new AppSession(req, res), () => {
20061
+ next();
20062
+ });
20063
+ }
20064
+ };
20065
+ exports.AppSessionMiddleware = __decorate([
20066
+ common.Injectable()
20067
+ ], exports.AppSessionMiddleware);
20068
+ function appSessionMiddleware(req, res, next) {
20069
+ asyncLocalStorage.run(new AppSession(req, res), () => {
20070
+ next();
20071
+ });
20072
+ }
20073
+
20074
+ let AuthenticationMiddleware = class AuthenticationMiddleware {
20075
+ constructor(authService) {
20076
+ this.authService = authService;
20077
+ }
20078
+ async use(req, res, next) {
20079
+ const token = this.extractTokenFromHeader(req);
20080
+ if (token) {
20081
+ const parsedToken = await this.authService.userTokenVerify({ token });
20082
+ if (parsedToken.isValid) {
20083
+ const user = await this.getUserFromToken(parsedToken.data);
20084
+ const roles = user ? await this.getUserRoles(user) : [];
20085
+ req.auth = {
20086
+ user,
20087
+ roles,
20088
+ };
20089
+ }
20090
+ }
20091
+ next();
20092
+ }
20093
+ async getUserFromToken(parsedToken) {
20094
+ return await this.authService.usersService.getById(parsedToken.userId);
20095
+ }
20096
+ async getUserRoles(user) {
20097
+ return await this.authService.userRolesService.getUserRoles(user.id);
20098
+ }
20099
+ extractTokenFromHeader(request) {
20100
+ const [type, token] = request.headers.authorization?.split(" ") ?? [];
20101
+ return type === "Bearer" ? token : undefined;
20102
+ }
20103
+ };
20104
+ AuthenticationMiddleware = __decorate([
20105
+ common.Injectable(),
20106
+ __metadata("design:paramtypes", [exports.AuthenticationService])
20107
+ ], AuthenticationMiddleware);
20108
+
19903
20109
  var AuthenticationModule_1;
19904
20110
  const ModuleData$2 = {
19905
20111
  imports: [exports.EntityManagerModule, jwt.JwtModule],
19906
20112
  providers: [
19907
20113
  AuthenticationServicesResolver,
19908
20114
  AuthenticationInitializer,
19909
- ...Services$1,
20115
+ exports.AuthGuard,
20116
+ ...Services$2,
19910
20117
  ...UserHandlers,
19911
20118
  ...AuthenticationProviders,
19912
20119
  ],
19913
- exports: [...Services$1],
20120
+ exports: [...Services$2],
19914
20121
  };
19915
20122
  exports.AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
19916
20123
  static forRoot(input) {
@@ -19920,6 +20127,13 @@ exports.AuthenticationModule = AuthenticationModule_1 = class AuthenticationModu
19920
20127
  ...ModuleData$2,
19921
20128
  };
19922
20129
  }
20130
+ configure(consumer) {
20131
+ consumer
20132
+ .apply(appSessionMiddleware)
20133
+ .forRoutes("*")
20134
+ .apply(AuthenticationMiddleware)
20135
+ .forRoutes("*");
20136
+ }
19923
20137
  };
19924
20138
  exports.AuthenticationModule = AuthenticationModule_1 = __decorate([
19925
20139
  common.Module({
@@ -19927,10 +20141,41 @@ exports.AuthenticationModule = AuthenticationModule_1 = __decorate([
19927
20141
  })
19928
20142
  ], exports.AuthenticationModule);
19929
20143
 
20144
+ let OrganizationInitializerService = class OrganizationInitializerService {
20145
+ constructor(registry) {
20146
+ this.registry = registry;
20147
+ }
20148
+ async execute(template) { }
20149
+ };
20150
+ OrganizationInitializerService = __decorate([
20151
+ common.Injectable(),
20152
+ __metadata("design:paramtypes", [exports.EntityManagerRegistry])
20153
+ ], OrganizationInitializerService);
20154
+
20155
+ let TenantInitializerService = class TenantInitializerService {
20156
+ constructor(registry) {
20157
+ this.registry = registry;
20158
+ }
20159
+ async execute(template) { }
20160
+ };
20161
+ TenantInitializerService = __decorate([
20162
+ common.Injectable(),
20163
+ __metadata("design:paramtypes", [exports.EntityManagerRegistry])
20164
+ ], TenantInitializerService);
20165
+
20166
+ const Services = [
20167
+ OrganizationInitializerService,
20168
+ TenantInitializerService,
20169
+ ];
20170
+
19930
20171
  exports.MultiTenancyModule = class MultiTenancyModule {
19931
20172
  };
19932
20173
  exports.MultiTenancyModule = __decorate([
19933
- common.Module({})
20174
+ common.Module({
20175
+ imports: [exports.EntityManagerModule],
20176
+ providers: [...Providers, ...Services],
20177
+ exports: [...Services],
20178
+ })
19934
20179
  ], exports.MultiTenancyModule);
19935
20180
 
19936
20181
  class QueryBuilderBase {
@@ -19980,7 +20225,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
19980
20225
  ...(context ? this.buildContextFilter(context) : {}),
19981
20226
  ...this.buildWhereClause(request),
19982
20227
  },
19983
- relations: this.getRelationsToLoad(request),
20228
+ relations: this.getRelationsToLoad(request, context),
19984
20229
  ...this.buildPagingParameters(request),
19985
20230
  });
19986
20231
  }
@@ -25407,46 +25652,10 @@ exports.SendgridEmailModule = SendgridEmailModule_1 = __decorate([
25407
25652
  })
25408
25653
  ], exports.SendgridEmailModule);
25409
25654
 
25410
- class AppSession {
25411
- constructor(request, response) {
25412
- this._map = new Map();
25413
- this._request = request;
25414
- this._response = response;
25415
- }
25416
- get(key) {
25417
- return this._map.get(key);
25418
- }
25419
- set(key, value) {
25420
- this._map.set(key, value);
25421
- }
25422
- delete(key) {
25423
- this._map.delete(key);
25424
- }
25425
- clear() {
25426
- this._map.clear();
25427
- }
25428
- get request() {
25429
- return this._request;
25430
- }
25431
- get response() {
25432
- return this._response;
25433
- }
25434
- }
25435
-
25436
- exports.AppSessionMiddleware = class AppSessionMiddleware {
25437
- use(req, res, next) {
25438
- asyncLocalStorage.run(new AppSession(req, res), () => {
25439
- next();
25440
- });
25441
- }
25442
- };
25443
- exports.AppSessionMiddleware = __decorate([
25444
- common.Injectable()
25445
- ], exports.AppSessionMiddleware);
25446
-
25447
25655
  exports.AUTHENTICATION_EVENTS_NAMESPACE = AUTHENTICATION_EVENTS_NAMESPACE;
25448
25656
  exports.AppExceptionsFilterBase = AppExceptionsFilterBase;
25449
25657
  exports.AppInMemorySettings = AppInMemorySettings;
25658
+ exports.Authenticated = Authenticated;
25450
25659
  exports.AuthenticationEmailTemplates = AuthenticationEmailTemplates;
25451
25660
  exports.AuthenticationError = AuthenticationError;
25452
25661
  exports.AuthenticationEvents = AuthenticationEvents;
@@ -25462,6 +25671,7 @@ exports.EntityNotFoundException = EntityNotFoundException;
25462
25671
  exports.EntityOperationUnauthorizedException = EntityOperationUnauthorizedException;
25463
25672
  exports.EntitySeeder = EntitySeeder;
25464
25673
  exports.InvalidCredentialsError = InvalidCredentialsError;
25674
+ exports.MemberOf = MemberOf;
25465
25675
  exports.MultipleEntitiesFoundException = MultipleEntitiesFoundException;
25466
25676
  exports.NestEntityActions = NestEntityActions;
25467
25677
  exports.NestEntityAuthorizationMiddleware = NestEntityAuthorizationMiddleware;
@@ -25474,7 +25684,9 @@ exports.NumericFacetItem = NumericFacetItem;
25474
25684
  exports.OperationTokenMismatchError = OperationTokenMismatchError;
25475
25685
  exports.PLATFORM_EVENT_NAMESPACE = PLATFORM_EVENT_NAMESPACE;
25476
25686
  exports.PlatformEvents = PlatformEvents;
25687
+ exports.Public = Public;
25477
25688
  exports.QueryBuilderBase = QueryBuilderBase;
25689
+ exports.Roles = Roles;
25478
25690
  exports.SendgridEmailTemplate = SendgridEmailTemplate;
25479
25691
  exports.StringFacet = StringFacet;
25480
25692
  exports.StringFacetItem = StringFacetItem;
@@ -25492,7 +25704,9 @@ exports.WpEntityQueryBuilder = WpEntityQueryBuilder;
25492
25704
  exports.WpEntityRepository = WpEntityRepository;
25493
25705
  exports.WpEntitySeeder = WpEntitySeeder;
25494
25706
  exports.WpEventsTracker = WpEventsTracker;
25707
+ exports.WpRolesService = WpRolesService;
25495
25708
  exports.WpSendgridEmailTemplate = WpSendgridEmailTemplate;
25709
+ exports.WpUserRolesService = WpUserRolesService;
25496
25710
  exports.WpUserService = WpUserService;
25497
25711
  exports.getLocalizedText = getLocalizedText;
25498
25712
  exports.newUuid = newUuid;