@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
@@ -10,7 +10,7 @@ export declare abstract class TypeOrmQueryBuilder<TEntity extends ObjectLiteral,
10
10
  constructor(services: EntityServiceLocator<TEntity, unknown>);
11
11
  search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, number, TFacets>>;
12
12
  protected findPagedQueryResults(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<TEntity[]>;
13
- protected getRelationsToLoad(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): FindOptionsRelations<TEntity> | undefined;
13
+ protected getRelationsToLoad(request: TEntitySearchParameters, context: IAuthenticationContext<TUserContext> | undefined): FindOptionsRelations<TEntity> | undefined;
14
14
  protected buildPagingParameters(request: TEntitySearchParameters): {
15
15
  skip: number | undefined;
16
16
  take: number | undefined;
@@ -0,0 +1,11 @@
1
+ export declare class AuthTestController {
2
+ getPublicData(): {
3
+ data: string;
4
+ };
5
+ getAuthenticatedData(): {
6
+ data: string;
7
+ };
8
+ getAdminData(): {
9
+ data: string;
10
+ };
11
+ }
@@ -0,0 +1,12 @@
1
+ import { IAuthRoleService } from "../../../../../extensions";
2
+ import { RoleEntityManager } from "../../../entities/roles/role.manager";
3
+ import { RoleEntity } from "../../../database/core/entities/role.entity";
4
+ export declare class AuthRolesService implements IAuthRoleService<RoleEntity> {
5
+ private readonly rolesManager;
6
+ constructor(rolesManager: RoleEntityManager);
7
+ create(data: Partial<RoleEntity>): Promise<RoleEntity>;
8
+ update(id: string, data: Partial<RoleEntity>): Promise<void>;
9
+ delete(id: string): Promise<void>;
10
+ getById(id: string): Promise<RoleEntity | undefined>;
11
+ getByUid(uid: string): Promise<RoleEntity | undefined>;
12
+ }
@@ -1,10 +1,10 @@
1
- import { IAuthUserService } from "../../../../extensions";
2
- import { UserEntity } from "../../database/core/entities/user.entity";
3
- import { UserEntityManager } from "../../entities/users/user.manager";
4
- import { AppUserContext } from "../../infrastructure/authentication";
5
- import { UserRegistrationData } from "./auth.dto";
6
- import { OrganizationEntityManager } from "../../entities/organizations/organization.manager";
7
- import { UserProfileEntityManager } from "../../entities/userProfiles/userProfile.manager";
1
+ import { IAuthUserService } from "../../../../../extensions";
2
+ import { UserEntity } from "../../../database/core/entities/user.entity";
3
+ import { UserEntityManager } from "../../../entities/users/user.manager";
4
+ import { AppUserContext } from "../../../infrastructure/authentication";
5
+ import { UserRegistrationData } from "./../auth.dto";
6
+ import { OrganizationEntityManager } from "../../../entities/organizations/organization.manager";
7
+ import { UserProfileEntityManager } from "../../../entities/userProfiles/userProfile.manager";
8
8
  export declare class AuthUserService implements IAuthUserService<UserEntity, AppUserContext, UserRegistrationData> {
9
9
  private readonly userManager;
10
10
  private readonly userProfileManager;
@@ -0,0 +1,20 @@
1
+ import { IAuthUserRolesService } from "../../../../../extensions";
2
+ import { UserEntityManager } from "../../../entities/users/user.manager";
3
+ import { UserRoleEntityManager } from "../../../entities/userRoles/userRole.manager";
4
+ import { RoleEntityManager } from "../../../entities/roles/role.manager";
5
+ import { RoleEntity } from "../../../database/core/entities/role.entity";
6
+ import { UserEntity } from "../../../database/core/entities/user.entity";
7
+ export declare class AuthUserRolesService implements IAuthUserRolesService<UserEntity, RoleEntity> {
8
+ private readonly rolesManager;
9
+ private readonly userManager;
10
+ private readonly userRoleManager;
11
+ constructor(rolesManager: RoleEntityManager, userManager: UserEntityManager, userRoleManager: UserRoleEntityManager);
12
+ getRoleUsers(roleId: string): Promise<UserEntity[]>;
13
+ getUserRoles(userId: string): Promise<RoleEntity[]>;
14
+ getUserRolesByUid(roleUid: string): Promise<RoleEntity[]>;
15
+ addUserToRole(userId: string, roleId: string): Promise<void>;
16
+ addUserToRoleByUid(userId: string, roleUid: string): Promise<void>;
17
+ removeUserFromRole(userId: string, roleId: string): Promise<void>;
18
+ removeUserFromRoleByUid(userId: string, roleUid: string): Promise<void>;
19
+ clearUserRoles(userId: string): Promise<RoleEntity[]>;
20
+ }
@@ -0,0 +1,4 @@
1
+ import { AuthRolesService } from "./auth.roles.service";
2
+ import { AuthUserService } from "./auth.user.service";
3
+ import { AuthUserRolesService } from "./auth.userRoles.service";
4
+ export declare const AuthServices: (typeof AuthRolesService | typeof AuthUserService | typeof AuthUserRolesService)[];
@@ -3,4 +3,5 @@ import { RoleCreateData, RoleCursor, RoleEntityId, RoleFacets, RoleSearchParamet
3
3
  import { RoleEntity } from "../../database/core/entities/role.entity";
4
4
  export declare class RoleEntityManager extends NestEntityManager<RoleEntity, RoleEntityId, RoleCreateData, RoleUpdateData, RoleSearchParameters, RoleSorting, RoleCursor, RoleFacets> {
5
5
  constructor(registry: EntityManagerRegistry);
6
+ getByUid(uid: string): Promise<RoleEntity | undefined>;
6
7
  }
@@ -6,6 +6,7 @@ export type RoleUpdateData = Partial<Omit<RoleEntity, "id">>;
6
6
  export declare class RoleFacets {
7
7
  }
8
8
  export declare class RoleSearchFilters {
9
+ uid?: string[];
9
10
  }
10
11
  export declare enum RoleSorting {
11
12
  Name = "Name"
@@ -1,4 +1,4 @@
1
- import { FindOptionsWhere } from "typeorm";
1
+ import { FindOptionsRelations, FindOptionsWhere } from "typeorm";
2
2
  import { IAuthenticationContext, EntityManagerRegistry, NestTypeOrmQueryBuilder } from "../../../../../..";
3
3
  import { RoleEntity } from "../../database/core/entities/role.entity";
4
4
  import { RoleFacets, RoleSearchParameters, RoleSorting } from "./role.models";
@@ -6,6 +6,7 @@ import { AppAuthContext } from "../../infrastructure/authentication/types";
6
6
  export declare class RoleQueryBuilder extends NestTypeOrmQueryBuilder<RoleEntity, RoleSearchParameters, RoleSorting, RoleFacets, AppAuthContext> {
7
7
  constructor(registry: EntityManagerRegistry);
8
8
  protected buildContextFilter(context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsWhere<RoleEntity> | FindOptionsWhere<RoleEntity>[];
9
- protected buildWhereClause(request: RoleSearchParameters): FindOptionsWhere<RoleEntity> | FindOptionsWhere<RoleEntity>[];
9
+ protected buildWhereClause(request: RoleSearchParameters, context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsWhere<RoleEntity> | FindOptionsWhere<RoleEntity>[];
10
10
  protected calculateFacets(request: RoleSearchParameters): Promise<RoleFacets | undefined>;
11
+ protected getRelationsToLoad(request: RoleSearchParameters, context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsRelations<RoleEntity> | undefined;
11
12
  }
@@ -6,6 +6,8 @@ export type UserRoleUpdateData = Partial<Omit<UserRoleEntity, "id">>;
6
6
  export declare class UserRoleFacets {
7
7
  }
8
8
  export declare class UserRoleSearchFilters {
9
+ userId?: string;
10
+ roleIds?: string[];
9
11
  }
10
12
  export declare enum UserRoleSorting {
11
13
  Name = "Name"
@@ -1,4 +1,4 @@
1
- import { FindOptionsWhere } from "typeorm";
1
+ import { FindOptionsRelations, FindOptionsWhere } from "typeorm";
2
2
  import { IAuthenticationContext, EntityManagerRegistry, NestTypeOrmQueryBuilder } from "../../../../../..";
3
3
  import { UserRoleEntity } from "../../database/core/entities/userRole.entity";
4
4
  import { UserRoleFacets, UserRoleSearchParameters, UserRoleSorting } from "./userRole.models";
@@ -8,4 +8,5 @@ export declare class UserRoleQueryBuilder extends NestTypeOrmQueryBuilder<UserRo
8
8
  protected buildContextFilter(context?: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsWhere<UserRoleEntity> | FindOptionsWhere<UserRoleEntity>[];
9
9
  protected buildWhereClause(request: UserRoleSearchParameters): FindOptionsWhere<UserRoleEntity> | FindOptionsWhere<UserRoleEntity>[];
10
10
  protected calculateFacets(request: UserRoleSearchParameters): Promise<UserRoleFacets | undefined>;
11
+ protected getRelationsToLoad(request: UserRoleSearchParameters, context: IAuthenticationContext<AppAuthContext> | undefined): FindOptionsRelations<UserRoleEntity> | undefined;
11
12
  }
@@ -1,13 +1,13 @@
1
- import { DataSource } from "typeorm";
2
1
  export declare const createTestServer: (options?: {
3
2
  createWebServer?: boolean;
4
3
  serverStartPort?: number;
5
4
  useAuthentication?: boolean;
5
+ useAuthorization?: boolean;
6
6
  extraControllers?: any[];
7
7
  extraProviders?: any[];
8
8
  }) => Promise<{
9
9
  app: import("@nestjs/common").INestApplication<any>;
10
10
  server: import("@nestjs/testing").TestingModule;
11
- dataSource: DataSource;
11
+ dataSource: import("typeorm").DataSource;
12
12
  terminate: () => Promise<void>;
13
13
  }>;
@@ -1,5 +1,10 @@
1
1
  export interface IAuthService {
2
2
  }
3
+ export interface IAuthRole {
4
+ id: string;
5
+ uid: string;
6
+ name: string;
7
+ }
3
8
  export interface IAuthUserProfile {
4
9
  firstName: string;
5
10
  lastName: string;
@@ -25,6 +30,11 @@ export interface IAuthUser {
25
30
  export interface IAuthUserContext {
26
31
  organizationUid?: string;
27
32
  }
33
+ export interface IAuthUserTokenData<TContext extends IAuthUserContext> {
34
+ userId: string;
35
+ email: string;
36
+ context?: TContext;
37
+ }
28
38
  export interface IAuthUserService<TUser extends IAuthUser, TUserContext extends IAuthUserContext, TUserRegistrationInfo> {
29
39
  getById(id: string): Promise<TUser>;
30
40
  getByEmail(email: string, context?: TUserContext): Promise<TUser>;
@@ -33,8 +43,20 @@ export interface IAuthUserService<TUser extends IAuthUser, TUserContext extends
33
43
  delete(id: string): Promise<void>;
34
44
  create(email: string, data: TUserRegistrationInfo, context?: TUserContext): Promise<TUser>;
35
45
  }
36
- export interface IAuthUserTokenData<TContext extends IAuthUserContext> {
37
- userId: string;
38
- email: string;
39
- context?: TContext;
46
+ export interface IAuthRoleService<TRole extends IAuthRole> {
47
+ create(data: Partial<TRole>): Promise<TRole>;
48
+ update(id: string, data: Partial<TRole>): Promise<void>;
49
+ delete(id: string): Promise<void>;
50
+ getById(id: string): Promise<TRole | undefined>;
51
+ getByUid(id: string): Promise<TRole | undefined>;
52
+ }
53
+ export interface IAuthUserRolesService<TUser extends IAuthUser, TRole extends IAuthRole> {
54
+ getRoleUsers(roleId: string): Promise<TUser[]>;
55
+ getUserRoles(userId: string): Promise<TRole[]>;
56
+ getUserRolesByUid(roleUid: string): Promise<TRole[]>;
57
+ addUserToRole(userId: string, roleId: string): Promise<void>;
58
+ addUserToRoleByUid(userId: string, roleUid: string): Promise<void>;
59
+ removeUserFromRole(userId: string, roleId: string): Promise<void>;
60
+ removeUserFromRoleByUid(userId: string, roleUid: string): Promise<void>;
61
+ clearUserRoles(userId: string): Promise<TRole[]>;
40
62
  }
@@ -0,0 +1,4 @@
1
+ export declare const Public: () => import("@nestjs/common").CustomDecorator<string>;
2
+ export declare const Authenticated: () => import("@nestjs/common").CustomDecorator<string>;
3
+ export declare const Roles: (...roles: string[]) => import("@nestjs/common").CustomDecorator<string>;
4
+ export declare const MemberOf: (...groups: string[]) => import("@nestjs/common").CustomDecorator<string>;
@@ -1,2 +1,5 @@
1
+ export { Authenticated, MemberOf, Public, Roles } from "./guards";
1
2
  export { AuthenticationExtensionSymbols } from "./symbols";
3
+ export { WpRolesService } from "./rolesService";
2
4
  export { WpUserService } from "./userService";
5
+ export { WpUserRolesService } from "./userRolesService";
@@ -0,0 +1 @@
1
+ export declare const WpRolesService: () => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -1,3 +1,11 @@
1
1
  export declare const AuthenticationExtensionSymbols: {
2
2
  UserService: symbol;
3
+ RolesService: symbol;
4
+ UserRolesService: symbol;
5
+ };
6
+ export declare const AuthenticationGuardsSymbols: {
7
+ Authenticated: string;
8
+ Public: string;
9
+ Roles: string;
10
+ MemberOf: string;
3
11
  };
@@ -0,0 +1 @@
1
+ export declare const WpUserRolesService: () => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -0,0 +1,13 @@
1
+ import { CanActivate, ExecutionContext } from "@nestjs/common";
2
+ import { Reflector } from "@nestjs/core";
3
+ export declare class AuthGuard implements CanActivate {
4
+ private reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): boolean;
7
+ private isRoleMatching;
8
+ private getIsForAllAuthenticated;
9
+ private getIsPublic;
10
+ private getAllowedRoles;
11
+ private getCurrentAuth;
12
+ private getMetadata;
13
+ }
@@ -0,0 +1 @@
1
+ export { AuthGuard } from "./auth";
@@ -16,4 +16,5 @@ export interface UserRegistrationInput<TUserRegistrationInfo, TUserContext exten
16
16
  export interface UserRegistrationResult {
17
17
  success: boolean;
18
18
  error?: UserRegistrationError;
19
+ userId?: string;
19
20
  }
@@ -3,6 +3,7 @@ export * from "./decorators";
3
3
  export * from "./email";
4
4
  export * from "./errors";
5
5
  export * from "./events";
6
+ export * from "./guards";
6
7
  export * from "./handlers";
7
8
  export * from "./errors";
8
9
  export * from "./services";
@@ -8,5 +8,10 @@ export declare class AuthenticationInitializer implements IAppInitializer {
8
8
  private readonly logger;
9
9
  constructor(discover: CustomDiscoveryService, registry: AuthenticationServicesResolver);
10
10
  initialize(app: INestApplicationContext): Promise<void>;
11
+ private registerRolesService;
12
+ private registerUsersService;
13
+ private registerUserRolesService;
11
14
  private discoverUserService;
15
+ private discoverRolesService;
16
+ private discoverUserRolesService;
12
17
  }
@@ -0,0 +1,10 @@
1
+ import { NestMiddleware } from "@nestjs/common";
2
+ import { AuthenticationService } from "../../services";
3
+ export declare class AuthenticationMiddleware implements NestMiddleware {
4
+ private readonly authService;
5
+ constructor(authService: AuthenticationService);
6
+ use(req: any, res: any, next: (error?: any) => void): Promise<void>;
7
+ private getUserFromToken;
8
+ private getUserRoles;
9
+ private extractTokenFromHeader;
10
+ }
@@ -1,5 +1,6 @@
1
- import { DynamicModule } from "@nestjs/common";
1
+ import { DynamicModule, MiddlewareConsumer, NestModule } from "@nestjs/common";
2
2
  import { AuthenticationModuleSettings } from "./types";
3
- export declare class AuthenticationModule {
3
+ export declare class AuthenticationModule implements NestModule {
4
4
  static forRoot(input: AuthenticationModuleSettings): DynamicModule;
5
+ configure(consumer: MiddlewareConsumer): void;
5
6
  }
@@ -1,6 +1,12 @@
1
- import { IAuthUser, IAuthUserService } from "../abstractions";
1
+ import { IAuthRole, IAuthRoleService, IAuthUser, IAuthUserRolesService, IAuthUserService } from "../abstractions";
2
2
  export declare class AuthenticationServicesResolver {
3
3
  private usersService;
4
+ private rolesService;
5
+ private usersRolesService;
4
6
  registerUsersService(usersService: IAuthUserService<any, any, any>): void;
7
+ registerRoleService(rolesService: IAuthRoleService<any>): void;
8
+ registerUserRolesService(userRolesService: IAuthUserRolesService<any, any>): void;
5
9
  getUsersService<TUser extends IAuthUser, TUserRegistrationInfo>(): IAuthUserService<TUser, any, TUserRegistrationInfo>;
10
+ getRoleService<TRole extends IAuthRole>(): IAuthRoleService<TRole>;
11
+ getUserRoleService<TUser extends IAuthUser, TRole extends IAuthRole>(): IAuthUserRolesService<TUser, TRole>;
6
12
  }
@@ -1,4 +1,4 @@
1
- import { IAuthService, IAuthUserContext } from "../../abstractions";
1
+ import { IAuthRole, IAuthRoleService, IAuthService, IAuthUser, IAuthUserContext, IAuthUserRolesService, IAuthUserService } from "../../abstractions";
2
2
  import { UserRegistrationHandler } from "../../handlers/user-register";
3
3
  import { UserDisableHandler } from "../../handlers/user-disable";
4
4
  import { UserEnableHandler } from "../../handlers/user-enable";
@@ -19,6 +19,7 @@ import { UserRegistrationInput, UserRegistrationResult } from "../../handlers/us
19
19
  import { UserTokenVerifyInput, UserTokenVerifyResult } from "../../handlers/user-token-verify/types";
20
20
  import { UserVerifyCompleteInput } from "../../handlers/user-verify-complete/types";
21
21
  import { UserVerifyRequestInput, UserVerifyRequestResult } from "../../handlers/user-verify-request/types";
22
+ import { AuthenticationServicesResolver } from "../../resolver";
22
23
  export declare class AuthenticationService implements IAuthService {
23
24
  private readonly userDisableHandler;
24
25
  private readonly userEnableHandler;
@@ -30,7 +31,8 @@ export declare class AuthenticationService implements IAuthService {
30
31
  private readonly userTokenVerifyHandler;
31
32
  private readonly userVerifyRequestHandler;
32
33
  private readonly userVerifyCompleteHandler;
33
- constructor(userDisableHandler: UserDisableHandler, userEnableHandler: UserEnableHandler, userLoginHandler: UserLoginHandler, userPasswordChangeHandler: UserPasswordChangeHandler, userPasswordResetFinalizeHandler: UserPasswordResetCompleteHandler, userPasswordResetRequestHandler: UserPasswordResetRequestHandler, userRegistrationHandler: UserRegistrationHandler, userTokenVerifyHandler: UserTokenVerifyHandler, userVerifyRequestHandler: UserVerifyRequestHandler, userVerifyCompleteHandler: UserVerifyCompleteHandler);
34
+ private readonly resolver;
35
+ constructor(userDisableHandler: UserDisableHandler, userEnableHandler: UserEnableHandler, userLoginHandler: UserLoginHandler, userPasswordChangeHandler: UserPasswordChangeHandler, userPasswordResetFinalizeHandler: UserPasswordResetCompleteHandler, userPasswordResetRequestHandler: UserPasswordResetRequestHandler, userRegistrationHandler: UserRegistrationHandler, userTokenVerifyHandler: UserTokenVerifyHandler, userVerifyRequestHandler: UserVerifyRequestHandler, userVerifyCompleteHandler: UserVerifyCompleteHandler, resolver: AuthenticationServicesResolver);
34
36
  userDisable(input: UserDisableInput): Promise<void>;
35
37
  userEnable(input: UserEnableInput): Promise<void>;
36
38
  userLogin<TUserContext extends IAuthUserContext>(input: UserLoginInput<TUserContext>): Promise<UserLoginResult>;
@@ -41,4 +43,7 @@ export declare class AuthenticationService implements IAuthService {
41
43
  userVerifyRequest<TUserContext extends IAuthUserContext>(input: UserVerifyRequestInput<TUserContext>): Promise<UserVerifyRequestResult>;
42
44
  userVerifyComplete(input: UserVerifyCompleteInput): Promise<void>;
43
45
  userTokenVerify<TUserContext extends IAuthUserContext>(input: UserTokenVerifyInput): Promise<UserTokenVerifyResult<TUserContext>>;
46
+ get usersService(): IAuthUserService<IAuthUser, any, unknown>;
47
+ get rolesService(): IAuthRoleService<IAuthRole>;
48
+ get userRolesService(): IAuthUserRolesService<IAuthUser, IAuthRole>;
44
49
  }
@@ -33,6 +33,8 @@ export interface IAppUser {
33
33
  verified: boolean;
34
34
  disabled: boolean;
35
35
  profile: IAppUserProfile;
36
+ tenant: IAppTenant;
37
+ organization?: IAppOrganization;
36
38
  }
37
39
  export interface IAppUserGroup {
38
40
  id: string;
@@ -0,0 +1,6 @@
1
+ import { EntityManagerRegistry } from "../../../../ioc";
2
+ export declare abstract class BaseInitializer {
3
+ private readonly registry;
4
+ constructor(registry: EntityManagerRegistry);
5
+ protected get companiesRepo(): import("../../../../../..").IEntityRepository<unknown, unknown, unknown, unknown, unknown, unknown>;
6
+ }
@@ -0,0 +1 @@
1
+ export declare const Providers: never[];
@@ -0,0 +1,2 @@
1
+ export { OrganizationInitializerService } from "./organization-initializer";
2
+ export { TenantInitializerService } from "./tenant-initializer";
@@ -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
+ };