@punks/backend-entity-manager 0.0.65 → 0.0.68

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 (100) hide show
  1. package/dist/cjs/index.js +220 -51
  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} +8 -8
  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/entities/roles/role.manager.d.ts +1 -0
  9. package/dist/cjs/types/platforms/nest/__test__/server/entities/roles/role.models.d.ts +1 -0
  10. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.models.d.ts +2 -0
  11. package/dist/cjs/types/platforms/nest/__test__/server/entities/userRoles/userRole.query.d.ts +2 -1
  12. package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +2 -2
  13. package/dist/cjs/types/platforms/nest/__test__/server/infrastructure/authentication/guards/auth-guard/index.d.ts +13 -0
  14. package/dist/cjs/types/platforms/nest/__test__/tests/authentication/test_auth_guards.test.d.ts +1 -0
  15. package/dist/cjs/types/platforms/nest/__test__/tests/authentication/test_auth_jwt.test.d.ts +1 -0
  16. package/dist/cjs/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +34 -12
  17. package/dist/cjs/types/platforms/nest/extensions/authentication/converters/index.d.ts +2 -2
  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/handlers/user-login/index.d.ts +2 -2
  24. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-login/types.d.ts +2 -2
  25. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-password-reset-request/index.d.ts +2 -2
  26. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-password-reset-request/types.d.ts +2 -2
  27. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-register/index.d.ts +2 -2
  28. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-register/types.d.ts +3 -2
  29. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-token-verify/index.d.ts +2 -2
  30. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-token-verify/types.d.ts +3 -3
  31. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-verify-request/index.d.ts +2 -2
  32. package/dist/cjs/types/platforms/nest/extensions/authentication/handlers/user-verify-request/types.d.ts +2 -2
  33. package/dist/cjs/types/platforms/nest/extensions/authentication/initializer/index.d.ts +5 -0
  34. package/dist/cjs/types/platforms/nest/extensions/authentication/middlewares/authentication/index.d.ts +10 -0
  35. package/dist/cjs/types/platforms/nest/extensions/authentication/module.d.ts +3 -2
  36. package/dist/cjs/types/platforms/nest/extensions/authentication/resolver/index.d.ts +9 -3
  37. package/dist/cjs/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +13 -8
  38. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +1 -39
  39. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/models.d.ts +51 -0
  40. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/base/initializer/index.d.ts +6 -0
  41. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/index.d.ts +1 -0
  42. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/processors/providers.d.ts +1 -0
  43. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/index.d.ts +2 -0
  44. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/organization-initializer/index.d.ts +8 -0
  45. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/providers.d.ts +3 -0
  46. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/services/tenant-initializer/index.d.ts +8 -0
  47. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/symbols/index.d.ts +10 -0
  48. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/types/index.d.ts +1 -0
  49. package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/types/templates.d.ts +20 -0
  50. package/dist/esm/index.js +215 -52
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +1 -1
  53. package/dist/esm/types/platforms/nest/__test__/server/app/auth/auth.test-controller.d.ts +11 -0
  54. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/auth.roles.service.d.ts +12 -0
  55. package/dist/esm/types/platforms/nest/__test__/server/app/auth/{user.service.d.ts → services/auth.user.service.d.ts} +8 -8
  56. package/dist/esm/types/platforms/nest/__test__/server/app/auth/services/auth.userRoles.service.d.ts +20 -0
  57. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.manager.d.ts +1 -0
  58. package/dist/esm/types/platforms/nest/__test__/server/entities/roles/role.models.d.ts +1 -0
  59. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.models.d.ts +2 -0
  60. package/dist/esm/types/platforms/nest/__test__/server/entities/userRoles/userRole.query.d.ts +2 -1
  61. package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +2 -2
  62. package/dist/esm/types/platforms/nest/__test__/server/infrastructure/authentication/guards/auth-guard/index.d.ts +13 -0
  63. package/dist/esm/types/platforms/nest/__test__/tests/authentication/test_auth_guards.test.d.ts +1 -0
  64. package/dist/esm/types/platforms/nest/__test__/tests/authentication/test_auth_jwt.test.d.ts +1 -0
  65. package/dist/esm/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +34 -12
  66. package/dist/esm/types/platforms/nest/extensions/authentication/converters/index.d.ts +2 -2
  67. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/guards.d.ts +4 -0
  68. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/index.d.ts +3 -0
  69. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/rolesService.d.ts +1 -0
  70. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/symbols.d.ts +8 -0
  71. package/dist/esm/types/platforms/nest/extensions/authentication/decorators/userRolesService.d.ts +1 -0
  72. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-login/index.d.ts +2 -2
  73. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-login/types.d.ts +2 -2
  74. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-password-reset-request/index.d.ts +2 -2
  75. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-password-reset-request/types.d.ts +2 -2
  76. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-register/index.d.ts +2 -2
  77. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-register/types.d.ts +3 -2
  78. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-token-verify/index.d.ts +2 -2
  79. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-token-verify/types.d.ts +3 -3
  80. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-verify-request/index.d.ts +2 -2
  81. package/dist/esm/types/platforms/nest/extensions/authentication/handlers/user-verify-request/types.d.ts +2 -2
  82. package/dist/esm/types/platforms/nest/extensions/authentication/initializer/index.d.ts +5 -0
  83. package/dist/esm/types/platforms/nest/extensions/authentication/middlewares/authentication/index.d.ts +10 -0
  84. package/dist/esm/types/platforms/nest/extensions/authentication/module.d.ts +3 -2
  85. package/dist/esm/types/platforms/nest/extensions/authentication/resolver/index.d.ts +9 -3
  86. package/dist/esm/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +13 -8
  87. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +1 -39
  88. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/models.d.ts +51 -0
  89. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/base/initializer/index.d.ts +6 -0
  90. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/index.d.ts +1 -0
  91. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/processors/providers.d.ts +1 -0
  92. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/index.d.ts +2 -0
  93. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/organization-initializer/index.d.ts +8 -0
  94. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/providers.d.ts +3 -0
  95. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/services/tenant-initializer/index.d.ts +8 -0
  96. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/symbols/index.d.ts +10 -0
  97. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/types/index.d.ts +1 -0
  98. package/dist/esm/types/platforms/nest/extensions/multi-tenancy/types/templates.d.ts +20 -0
  99. package/dist/index.d.ts +134 -36
  100. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import { OrganizationTemplate } from "../../types";
2
+ import { IAppCompany, IAppUser, IAppUserGroup } from "../../abstractions";
3
+ import { EntityManagerRegistry } from "../../../../ioc";
4
+ export declare class OrganizationInitializerService {
5
+ private readonly registry;
6
+ constructor(registry: EntityManagerRegistry);
7
+ execute<TCompany extends IAppCompany, TUser extends IAppUser, TUserGroup extends IAppUserGroup>(template: OrganizationTemplate<TCompany, TUser, TUserGroup>): Promise<void>;
8
+ }
@@ -0,0 +1,3 @@
1
+ import { OrganizationInitializerService } from "./organization-initializer";
2
+ import { TenantInitializerService } from "./tenant-initializer";
3
+ export declare const Services: (typeof OrganizationInitializerService | typeof TenantInitializerService)[];
@@ -0,0 +1,8 @@
1
+ import { TenantTemplate } from "../../types";
2
+ import { IAppTenant, IAppUser } from "../../abstractions";
3
+ import { EntityManagerRegistry } from "../../../../ioc";
4
+ export declare class TenantInitializerService {
5
+ private readonly registry;
6
+ constructor(registry: EntityManagerRegistry);
7
+ execute<TTenant extends IAppTenant, TUser extends IAppUser>(template: TenantTemplate<TTenant, TUser>): Promise<void>;
8
+ }
@@ -0,0 +1,10 @@
1
+ export declare const MultiTenancyEntities: {
2
+ Company: string;
3
+ Division: string;
4
+ Organization: string;
5
+ Role: string;
6
+ Tenant: string;
7
+ User: string;
8
+ UserGroup: string;
9
+ UserRole: string;
10
+ };
@@ -0,0 +1 @@
1
+ export { OrganizationAdmin, OrganizationTemplate, TenantAdmin, TenantTemplate, } from "./templates";
@@ -0,0 +1,20 @@
1
+ import { IAppCompany, IAppTenant, IAppUser, IAppUserGroup } from "../abstractions";
2
+ export type TenantAdmin<TUser extends IAppUser> = {
3
+ user: Partial<TUser>;
4
+ password: string;
5
+ };
6
+ export type TenantTemplate<TTenant extends IAppTenant, TUser extends IAppUser> = {
7
+ tenant: Partial<TTenant>;
8
+ defaultAdmin?: TenantAdmin<TUser>;
9
+ };
10
+ export type OrganizationAdmin<TUser extends IAppUser> = {
11
+ user: Partial<TUser>;
12
+ password: string;
13
+ };
14
+ export type OrganizationTemplate<TCompany extends IAppCompany, TUser extends IAppUser, TUserGroup extends IAppUserGroup> = {
15
+ tenant: Partial<TCompany["organization"]["tenant"]>;
16
+ organization: Partial<TCompany["organization"]>;
17
+ company: Partial<TCompany>;
18
+ groups: Partial<TUserGroup>[];
19
+ defaultAdmin?: OrganizationAdmin<TUser>;
20
+ };
package/dist/esm/index.js CHANGED
@@ -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"),
315
317
  };
318
+ const AuthenticationGuardsSymbols = {
319
+ Authenticated: "guard:authenticated",
320
+ Public: "guard:public",
321
+ Roles: "guard:roles",
322
+ MemberOf: "guard:memberOf",
323
+ };
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));
316
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",
@@ -19073,12 +19090,30 @@ let AuthenticationServicesResolver = class AuthenticationServicesResolver {
19073
19090
  registerUsersService(usersService) {
19074
19091
  this.usersService = usersService;
19075
19092
  }
19093
+ registerRoleService(rolesService) {
19094
+ this.rolesService = rolesService;
19095
+ }
19096
+ registerUserRolesService(userRolesService) {
19097
+ this.usersRolesService = userRolesService;
19098
+ }
19076
19099
  getUsersService() {
19077
19100
  if (!this.usersService) {
19078
19101
  throw new Error("Users service is not registered");
19079
19102
  }
19080
19103
  return this.usersService;
19081
19104
  }
19105
+ getRoleService() {
19106
+ if (!this.rolesService) {
19107
+ throw new Error("Roles service is not registered");
19108
+ }
19109
+ return this.rolesService;
19110
+ }
19111
+ getUserRoleService() {
19112
+ if (!this.usersRolesService) {
19113
+ throw new Error("User roles service is not registered");
19114
+ }
19115
+ return this.usersRolesService;
19116
+ }
19082
19117
  };
19083
19118
  AuthenticationServicesResolver = __decorate([
19084
19119
  Injectable()
@@ -19187,6 +19222,7 @@ let UserRegistrationHandler = class UserRegistrationHandler {
19187
19222
  this.logger.debug(`User already exists but not verified. Sending new verification email: ${input.email} - ${input.userName}`, { user });
19188
19223
  return {
19189
19224
  success: true,
19225
+ userId: user.id,
19190
19226
  };
19191
19227
  }
19192
19228
  const newUser = await this.createUser(input.email, input.registrationInfo, input.context);
@@ -19201,6 +19237,7 @@ let UserRegistrationHandler = class UserRegistrationHandler {
19201
19237
  });
19202
19238
  return {
19203
19239
  success: true,
19240
+ userId: newUser.id,
19204
19241
  };
19205
19242
  }
19206
19243
  async createPasswordHash(password, userId) {
@@ -19565,7 +19602,7 @@ UserVerifyRequestHandler = __decorate([
19565
19602
  ], UserVerifyRequestHandler);
19566
19603
 
19567
19604
  let AuthenticationService = class AuthenticationService {
19568
- constructor(userDisableHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler) {
19605
+ constructor(userDisableHandler, userEnableHandler, userLoginHandler, userPasswordChangeHandler, userPasswordResetFinalizeHandler, userPasswordResetRequestHandler, userRegistrationHandler, userTokenVerifyHandler, userVerifyRequestHandler, userVerifyCompleteHandler, resolver) {
19569
19606
  this.userDisableHandler = userDisableHandler;
19570
19607
  this.userEnableHandler = userEnableHandler;
19571
19608
  this.userLoginHandler = userLoginHandler;
@@ -19576,6 +19613,7 @@ let AuthenticationService = class AuthenticationService {
19576
19613
  this.userTokenVerifyHandler = userTokenVerifyHandler;
19577
19614
  this.userVerifyRequestHandler = userVerifyRequestHandler;
19578
19615
  this.userVerifyCompleteHandler = userVerifyCompleteHandler;
19616
+ this.resolver = resolver;
19579
19617
  }
19580
19618
  async userDisable(input) {
19581
19619
  await this.userDisableHandler.execute(input);
@@ -19607,6 +19645,15 @@ let AuthenticationService = class AuthenticationService {
19607
19645
  async userTokenVerify(input) {
19608
19646
  return await this.userTokenVerifyHandler.execute(input);
19609
19647
  }
19648
+ get usersService() {
19649
+ return this.resolver.getUsersService();
19650
+ }
19651
+ get rolesService() {
19652
+ return this.resolver.getRoleService();
19653
+ }
19654
+ get userRolesService() {
19655
+ return this.resolver.getUserRoleService();
19656
+ }
19610
19657
  };
19611
19658
  AuthenticationService = __decorate([
19612
19659
  Injectable(),
@@ -19619,12 +19666,13 @@ AuthenticationService = __decorate([
19619
19666
  UserRegistrationHandler,
19620
19667
  UserTokenVerifyHandler,
19621
19668
  UserVerifyRequestHandler,
19622
- UserVerifyCompleteHandler])
19669
+ UserVerifyCompleteHandler,
19670
+ AuthenticationServicesResolver])
19623
19671
  ], AuthenticationService);
19624
19672
 
19625
- const Services$1 = [AuthenticationService];
19673
+ const Services$2 = [AuthenticationService];
19626
19674
 
19627
- const Services = [
19675
+ const Services$1 = [
19628
19676
  AppSessionService,
19629
19677
  AppHashingService,
19630
19678
  EntityManagerService,
@@ -19847,8 +19895,8 @@ let EntityManagerModule = class EntityManagerModule {
19847
19895
  EntityManagerModule = __decorate([
19848
19896
  Module({
19849
19897
  imports: [CustomDiscoveryModule, EventEmitterModule],
19850
- providers: [...IoC, ...Providers, ...Processors, ...Services],
19851
- exports: [EntityManagerRegistry, ...Services],
19898
+ providers: [...IoC, ...Providers, ...Processors, ...Services$1],
19899
+ exports: [EntityManagerRegistry, ...Services$1],
19852
19900
  })
19853
19901
  ], EntityManagerModule);
19854
19902
 
@@ -19875,16 +19923,44 @@ let AuthenticationInitializer = AuthenticationInitializer_1 = class Authenticati
19875
19923
  this.logger = new Logger(AuthenticationInitializer_1.name);
19876
19924
  }
19877
19925
  async initialize(app) {
19878
- const userService = await this.discoverUserService();
19879
- if (!userService) {
19926
+ await this.registerRolesService();
19927
+ await this.registerUsersService();
19928
+ await this.registerUserRolesService();
19929
+ this.logger.log("Authentication initialized 🔑");
19930
+ }
19931
+ async registerRolesService() {
19932
+ const service = await this.discoverRolesService();
19933
+ if (!service) {
19934
+ throw new Error("No roles service found");
19935
+ }
19936
+ this.registry.registerRoleService(service.discoveredClass.instance);
19937
+ this.logger.log(`Authentication roles service ${service.discoveredClass.name} registered`);
19938
+ }
19939
+ async registerUsersService() {
19940
+ const service = await this.discoverUserService();
19941
+ if (!service) {
19880
19942
  throw new Error("No user service found");
19881
19943
  }
19882
- this.registry.registerUsersService(userService.discoveredClass.instance);
19883
- this.logger.log("Authentication initialized 🔑");
19944
+ this.registry.registerUsersService(service.discoveredClass.instance);
19945
+ this.logger.log(`Authentication users service ${service.discoveredClass.name} registered`);
19946
+ }
19947
+ async registerUserRolesService() {
19948
+ const service = await this.discoverUserRolesService();
19949
+ if (!service) {
19950
+ throw new Error("No user roles service found");
19951
+ }
19952
+ this.registry.registerUserRolesService(service.discoveredClass.instance);
19953
+ this.logger.log(`Authentication user roles service ${service.discoveredClass.name} registered`);
19884
19954
  }
19885
19955
  async discoverUserService() {
19886
19956
  return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.UserService);
19887
19957
  }
19958
+ async discoverRolesService() {
19959
+ return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.RolesService);
19960
+ }
19961
+ async discoverUserRolesService() {
19962
+ return await this.discover.providerWithMetaAtKey(AuthenticationExtensionSymbols.UserRolesService);
19963
+ }
19888
19964
  };
19889
19965
  AuthenticationInitializer = AuthenticationInitializer_1 = __decorate([
19890
19966
  WpAppInitializer(),
@@ -19892,17 +19968,94 @@ AuthenticationInitializer = AuthenticationInitializer_1 = __decorate([
19892
19968
  AuthenticationServicesResolver])
19893
19969
  ], AuthenticationInitializer);
19894
19970
 
19971
+ class AppSession {
19972
+ constructor(request, response) {
19973
+ this._map = new Map();
19974
+ this._request = request;
19975
+ this._response = response;
19976
+ }
19977
+ get(key) {
19978
+ return this._map.get(key);
19979
+ }
19980
+ set(key, value) {
19981
+ this._map.set(key, value);
19982
+ }
19983
+ delete(key) {
19984
+ this._map.delete(key);
19985
+ }
19986
+ clear() {
19987
+ this._map.clear();
19988
+ }
19989
+ get request() {
19990
+ return this._request;
19991
+ }
19992
+ get response() {
19993
+ return this._response;
19994
+ }
19995
+ }
19996
+
19997
+ let AppSessionMiddleware = class AppSessionMiddleware {
19998
+ use(req, res, next) {
19999
+ asyncLocalStorage.run(new AppSession(req, res), () => {
20000
+ next();
20001
+ });
20002
+ }
20003
+ };
20004
+ AppSessionMiddleware = __decorate([
20005
+ Injectable()
20006
+ ], AppSessionMiddleware);
20007
+ function appSessionMiddleware(req, res, next) {
20008
+ asyncLocalStorage.run(new AppSession(req, res), () => {
20009
+ next();
20010
+ });
20011
+ }
20012
+
20013
+ let AuthenticationMiddleware = class AuthenticationMiddleware {
20014
+ constructor(authService) {
20015
+ this.authService = authService;
20016
+ }
20017
+ async use(req, res, next) {
20018
+ const token = this.extractTokenFromHeader(req);
20019
+ if (token) {
20020
+ const parsedToken = await this.authService.userTokenVerify({ token });
20021
+ if (parsedToken.isValid) {
20022
+ const user = await this.getUserFromToken(parsedToken.data);
20023
+ const roles = user ? await this.getUserRoles(user) : [];
20024
+ req.auth = {
20025
+ user,
20026
+ roles,
20027
+ };
20028
+ }
20029
+ }
20030
+ next();
20031
+ }
20032
+ async getUserFromToken(parsedToken) {
20033
+ return await this.authService.usersService.getById(parsedToken.userId);
20034
+ }
20035
+ async getUserRoles(user) {
20036
+ return await this.authService.userRolesService.getUserRoles(user.id);
20037
+ }
20038
+ extractTokenFromHeader(request) {
20039
+ const [type, token] = request.headers.authorization?.split(" ") ?? [];
20040
+ return type === "Bearer" ? token : undefined;
20041
+ }
20042
+ };
20043
+ AuthenticationMiddleware = __decorate([
20044
+ Injectable(),
20045
+ __metadata("design:paramtypes", [AuthenticationService])
20046
+ ], AuthenticationMiddleware);
20047
+
19895
20048
  var AuthenticationModule_1;
19896
20049
  const ModuleData$2 = {
19897
20050
  imports: [EntityManagerModule, JwtModule],
19898
20051
  providers: [
19899
20052
  AuthenticationServicesResolver,
19900
20053
  AuthenticationInitializer,
19901
- ...Services$1,
20054
+ ...Services$2,
19902
20055
  ...UserHandlers,
19903
20056
  ...AuthenticationProviders,
19904
20057
  ],
19905
- exports: [...Services$1],
20058
+ exports: [...Services$2],
19906
20059
  };
19907
20060
  let AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
19908
20061
  static forRoot(input) {
@@ -19912,6 +20065,13 @@ let AuthenticationModule = AuthenticationModule_1 = class AuthenticationModule {
19912
20065
  ...ModuleData$2,
19913
20066
  };
19914
20067
  }
20068
+ configure(consumer) {
20069
+ consumer
20070
+ .apply(appSessionMiddleware)
20071
+ .forRoutes("*")
20072
+ .apply(AuthenticationMiddleware)
20073
+ .forRoutes("*");
20074
+ }
19915
20075
  };
19916
20076
  AuthenticationModule = AuthenticationModule_1 = __decorate([
19917
20077
  Module({
@@ -19919,10 +20079,41 @@ AuthenticationModule = AuthenticationModule_1 = __decorate([
19919
20079
  })
19920
20080
  ], AuthenticationModule);
19921
20081
 
20082
+ let OrganizationInitializerService = class OrganizationInitializerService {
20083
+ constructor(registry) {
20084
+ this.registry = registry;
20085
+ }
20086
+ async execute(template) { }
20087
+ };
20088
+ OrganizationInitializerService = __decorate([
20089
+ Injectable(),
20090
+ __metadata("design:paramtypes", [EntityManagerRegistry])
20091
+ ], OrganizationInitializerService);
20092
+
20093
+ let TenantInitializerService = class TenantInitializerService {
20094
+ constructor(registry) {
20095
+ this.registry = registry;
20096
+ }
20097
+ async execute(template) { }
20098
+ };
20099
+ TenantInitializerService = __decorate([
20100
+ Injectable(),
20101
+ __metadata("design:paramtypes", [EntityManagerRegistry])
20102
+ ], TenantInitializerService);
20103
+
20104
+ const Services = [
20105
+ OrganizationInitializerService,
20106
+ TenantInitializerService,
20107
+ ];
20108
+
19922
20109
  let MultiTenancyModule = class MultiTenancyModule {
19923
20110
  };
19924
20111
  MultiTenancyModule = __decorate([
19925
- Module({})
20112
+ Module({
20113
+ imports: [EntityManagerModule],
20114
+ providers: [...Providers, ...Services],
20115
+ exports: [...Services],
20116
+ })
19926
20117
  ], MultiTenancyModule);
19927
20118
 
19928
20119
  class QueryBuilderBase {
@@ -19972,7 +20163,7 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
19972
20163
  ...(context ? this.buildContextFilter(context) : {}),
19973
20164
  ...this.buildWhereClause(request),
19974
20165
  },
19975
- relations: this.getRelationsToLoad(request),
20166
+ relations: this.getRelationsToLoad(request, context),
19976
20167
  ...this.buildPagingParameters(request),
19977
20168
  });
19978
20169
  }
@@ -19995,6 +20186,15 @@ class TypeOrmQueryBuilder extends QueryBuilderBase {
19995
20186
  },
19996
20187
  });
19997
20188
  }
20189
+ // protected calculateFacet(
20190
+ // request: TEntitySearchParameters,
20191
+ // context: IAuthenticationContext<TUserContext> | undefined
20192
+ // ) {
20193
+ // const repo = this.getRepository().getInnerRepository()
20194
+ // repo.createQueryBuilder().relation("xx").select([]).where({
20195
+ // whereFactory:
20196
+ // }).groupBy().getRawMany()
20197
+ // }
19998
20198
  getRepository() {
19999
20199
  if (!this.repository) {
20000
20200
  this.repository = this.services.resolveRepository();
@@ -25390,42 +25590,5 @@ SendgridEmailModule = SendgridEmailModule_1 = __decorate([
25390
25590
  })
25391
25591
  ], SendgridEmailModule);
25392
25592
 
25393
- class AppSession {
25394
- constructor(request, response) {
25395
- this._map = new Map();
25396
- this._request = request;
25397
- this._response = response;
25398
- }
25399
- get(key) {
25400
- return this._map.get(key);
25401
- }
25402
- set(key, value) {
25403
- this._map.set(key, value);
25404
- }
25405
- delete(key) {
25406
- this._map.delete(key);
25407
- }
25408
- clear() {
25409
- this._map.clear();
25410
- }
25411
- get request() {
25412
- return this._request;
25413
- }
25414
- get response() {
25415
- return this._response;
25416
- }
25417
- }
25418
-
25419
- let AppSessionMiddleware = class AppSessionMiddleware {
25420
- use(req, res, next) {
25421
- asyncLocalStorage.run(new AppSession(req, res), () => {
25422
- next();
25423
- });
25424
- }
25425
- };
25426
- AppSessionMiddleware = __decorate([
25427
- Injectable()
25428
- ], AppSessionMiddleware);
25429
-
25430
- 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 };
25593
+ export { AUTHENTICATION_EVENTS_NAMESPACE, AppExceptionsFilterBase, AppHashingService, AppInMemorySettings, AppSessionMiddleware, AppSessionService, 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 };
25431
25594
  //# sourceMappingURL=index.js.map