@forklaunch/implementation-iam-base 0.1.13 → 0.1.15

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 (42) hide show
  1. package/lib/__test__/schemaEquality.test.d.ts +1 -1
  2. package/lib/__test__/schemaEquality.test.js +235 -135
  3. package/lib/jest.config.d.ts +1 -1
  4. package/lib/jest.config.js +16 -16
  5. package/lib/schemas/index.d.ts +1 -1
  6. package/lib/schemas/organization.schema.d.ts +375 -152
  7. package/lib/schemas/organization.schema.js +4 -1
  8. package/lib/schemas/permission.schema.d.ts +88 -34
  9. package/lib/schemas/permission.schema.js +4 -1
  10. package/lib/schemas/role.schema.d.ts +139 -50
  11. package/lib/schemas/role.schema.js +4 -1
  12. package/lib/schemas/typebox/organization.schema.d.ts +373 -103
  13. package/lib/schemas/typebox/organization.schema.js +27 -17
  14. package/lib/schemas/typebox/permission.schema.d.ts +114 -38
  15. package/lib/schemas/typebox/permission.schema.js +24 -17
  16. package/lib/schemas/typebox/role.schema.d.ts +174 -50
  17. package/lib/schemas/typebox/role.schema.js +24 -17
  18. package/lib/schemas/typebox/user.schema.d.ts +306 -94
  19. package/lib/schemas/typebox/user.schema.js +40 -32
  20. package/lib/schemas/user.schema.d.ts +270 -116
  21. package/lib/schemas/user.schema.js +4 -1
  22. package/lib/schemas/zod/organization.schema.d.ts +355 -221
  23. package/lib/schemas/zod/organization.schema.js +27 -17
  24. package/lib/schemas/zod/permission.schema.d.ts +62 -38
  25. package/lib/schemas/zod/permission.schema.js +24 -17
  26. package/lib/schemas/zod/role.schema.d.ts +112 -66
  27. package/lib/schemas/zod/role.schema.js +24 -17
  28. package/lib/schemas/zod/user.schema.d.ts +214 -144
  29. package/lib/schemas/zod/user.schema.js +40 -32
  30. package/lib/services/index.d.ts +1 -1
  31. package/lib/services/organization.service.d.ts +106 -33
  32. package/lib/services/organization.service.js +47 -32
  33. package/lib/services/permission.service.d.ts +117 -41
  34. package/lib/services/permission.service.js +193 -149
  35. package/lib/services/role.service.d.ts +104 -35
  36. package/lib/services/role.service.js +70 -54
  37. package/lib/services/user.service.d.ts +121 -37
  38. package/lib/services/user.service.js +121 -80
  39. package/lib/tsconfig.tsbuildinfo +1 -1
  40. package/lib/vitest.config.d.ts +2 -2
  41. package/lib/vitest.config.js +4 -4
  42. package/package.json +8 -8
@@ -1,49 +1,118 @@
1
- import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http';
1
+ import {
2
+ MetricsDefinition,
3
+ OpenTelemetryCollector
4
+ } from '@forklaunch/core/http';
2
5
  import { RoleService } from '@forklaunch/interfaces-iam/interfaces';
3
6
  import { EntityManager } from '@mikro-orm/core';
4
7
  import { IdDto, IdsDto } from '@forklaunch/common';
5
- import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/mappers';
8
+ import {
9
+ RequestDtoMapperConstructor,
10
+ ResponseDtoMapperConstructor
11
+ } from '@forklaunch/core/mappers';
6
12
  import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
7
- import { CreateRoleDto, RoleDto, UpdateRoleDto } from '@forklaunch/interfaces-iam/types';
13
+ import {
14
+ CreateRoleDto,
15
+ RoleDto,
16
+ UpdateRoleDto
17
+ } from '@forklaunch/interfaces-iam/types';
8
18
  import { AnySchemaValidator } from '@forklaunch/validator';
9
- export declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
19
+ export declare class BaseRoleService<
20
+ SchemaValidator extends AnySchemaValidator,
21
+ Metrics extends MetricsDefinition = MetricsDefinition,
22
+ Dto extends {
10
23
  RoleDtoMapper: RoleDto;
11
24
  CreateRoleDtoMapper: CreateRoleDto;
12
25
  UpdateRoleDtoMapper: UpdateRoleDto;
13
- } = {
26
+ } = {
14
27
  RoleDtoMapper: RoleDto;
15
28
  CreateRoleDtoMapper: CreateRoleDto;
16
29
  UpdateRoleDtoMapper: UpdateRoleDto;
17
- }, Entities extends {
30
+ },
31
+ Entities extends {
18
32
  RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
19
- CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
20
- UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
21
- } = {
33
+ CreateRoleDtoMapper: MapNestedDtoArraysToCollections<
34
+ RoleDto,
35
+ 'permissions'
36
+ >;
37
+ UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<
38
+ RoleDto,
39
+ 'permissions'
40
+ >;
41
+ } = {
22
42
  RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
23
- CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
24
- UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
25
- }> implements RoleService {
26
- #private;
27
- em: EntityManager;
28
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
29
- protected schemaValidator: SchemaValidator;
30
- protected mapperss: {
31
- RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
32
- CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
33
- UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
34
- };
35
- constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
36
- RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
37
- CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
38
- UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
39
- });
40
- createRole(roleDto: Dto['CreateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
41
- createBatchRoles(roleDtos: Dto['CreateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
42
- getRole(idDto: IdDto, em?: EntityManager): Promise<RoleDto>;
43
- getBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<RoleDto[]>;
44
- updateRole(roleDto: Dto['UpdateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
45
- updateBatchRoles(roleDtos: Dto['UpdateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
46
- deleteRole(idDto: IdDto, em?: EntityManager): Promise<void>;
47
- deleteBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<void>;
43
+ CreateRoleDtoMapper: MapNestedDtoArraysToCollections<
44
+ RoleDto,
45
+ 'permissions'
46
+ >;
47
+ UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<
48
+ RoleDto,
49
+ 'permissions'
50
+ >;
51
+ }
52
+ > implements RoleService
53
+ {
54
+ #private;
55
+ em: EntityManager;
56
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
57
+ protected schemaValidator: SchemaValidator;
58
+ protected mapperss: {
59
+ RoleDtoMapper: ResponseDtoMapperConstructor<
60
+ SchemaValidator,
61
+ Dto['RoleDtoMapper'],
62
+ Entities['RoleDtoMapper']
63
+ >;
64
+ CreateRoleDtoMapper: RequestDtoMapperConstructor<
65
+ SchemaValidator,
66
+ Dto['CreateRoleDtoMapper'],
67
+ Entities['CreateRoleDtoMapper']
68
+ >;
69
+ UpdateRoleDtoMapper: RequestDtoMapperConstructor<
70
+ SchemaValidator,
71
+ Dto['UpdateRoleDtoMapper'],
72
+ Entities['UpdateRoleDtoMapper']
73
+ >;
74
+ };
75
+ constructor(
76
+ em: EntityManager,
77
+ openTelemetryCollector: OpenTelemetryCollector<Metrics>,
78
+ schemaValidator: SchemaValidator,
79
+ mapperss: {
80
+ RoleDtoMapper: ResponseDtoMapperConstructor<
81
+ SchemaValidator,
82
+ Dto['RoleDtoMapper'],
83
+ Entities['RoleDtoMapper']
84
+ >;
85
+ CreateRoleDtoMapper: RequestDtoMapperConstructor<
86
+ SchemaValidator,
87
+ Dto['CreateRoleDtoMapper'],
88
+ Entities['CreateRoleDtoMapper']
89
+ >;
90
+ UpdateRoleDtoMapper: RequestDtoMapperConstructor<
91
+ SchemaValidator,
92
+ Dto['UpdateRoleDtoMapper'],
93
+ Entities['UpdateRoleDtoMapper']
94
+ >;
95
+ }
96
+ );
97
+ createRole(
98
+ roleDto: Dto['CreateRoleDtoMapper'],
99
+ em?: EntityManager
100
+ ): Promise<Dto['RoleDtoMapper']>;
101
+ createBatchRoles(
102
+ roleDtos: Dto['CreateRoleDtoMapper'][],
103
+ em?: EntityManager
104
+ ): Promise<Dto['RoleDtoMapper'][]>;
105
+ getRole(idDto: IdDto, em?: EntityManager): Promise<RoleDto>;
106
+ getBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<RoleDto[]>;
107
+ updateRole(
108
+ roleDto: Dto['UpdateRoleDtoMapper'],
109
+ em?: EntityManager
110
+ ): Promise<Dto['RoleDtoMapper']>;
111
+ updateBatchRoles(
112
+ roleDtos: Dto['UpdateRoleDtoMapper'][],
113
+ em?: EntityManager
114
+ ): Promise<Dto['RoleDtoMapper'][]>;
115
+ deleteRole(idDto: IdDto, em?: EntityManager): Promise<void>;
116
+ deleteBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<void>;
48
117
  }
49
- //# sourceMappingURL=role.service.d.ts.map
118
+ //# sourceMappingURL=role.service.d.ts.map
@@ -1,57 +1,73 @@
1
1
  import { transformIntoInternalDtoMapper } from '@forklaunch/core/mappers';
2
2
  export class BaseRoleService {
3
- em;
4
- openTelemetryCollector;
5
- schemaValidator;
6
- mapperss;
7
- #mapperss;
8
- constructor(em, openTelemetryCollector, schemaValidator, mapperss) {
9
- this.em = em;
10
- this.openTelemetryCollector = openTelemetryCollector;
11
- this.schemaValidator = schemaValidator;
12
- this.mapperss = mapperss;
13
- this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
14
- }
15
- async createRole(roleDto, em) {
16
- // TODO: Think about removing static method here, since we need specific args
17
- const role = this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
18
- await (em ?? this.em).transactional((em) => em.persist(role));
19
- return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
20
- }
21
- async createBatchRoles(roleDtos, em) {
22
- const roles = await Promise.all(roleDtos.map(async (roleDto) => this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)));
23
- await (em ?? this.em).transactional((em) => em.persist(roles));
24
- return roles.map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
25
- }
26
- async getRole(idDto, em) {
27
- const role = await (em ?? this.em).findOneOrFail('Role', idDto, {
28
- populate: ['id', '*']
29
- });
30
- return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
31
- }
32
- async getBatchRoles(idsDto, em) {
33
- return (await (em ?? this.em).find('Role', idsDto, {
34
- populate: ['id', '*']
35
- })).map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
36
- }
37
- async updateRole(roleDto, em) {
38
- let role = this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto);
39
- await (em ?? this.em).transactional(async (em) => {
40
- role = (await em.upsert('Role', role));
41
- });
42
- return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
43
- }
44
- async updateBatchRoles(roleDtos, em) {
45
- let roles = await Promise.all(roleDtos.map(async (roleDto) => this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)));
46
- await (em ?? this.em).transactional(async (em) => {
47
- roles = await em.upsertMany('Role', roles);
48
- });
49
- return roles.map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
50
- }
51
- async deleteRole(idDto, em) {
52
- await (em ?? this.em).nativeDelete('Role', idDto);
53
- }
54
- async deleteBatchRoles(idsDto, em) {
55
- await (em ?? this.em).nativeDelete('Role', { id: { $in: idsDto.ids } });
56
- }
3
+ em;
4
+ openTelemetryCollector;
5
+ schemaValidator;
6
+ mapperss;
7
+ #mapperss;
8
+ constructor(em, openTelemetryCollector, schemaValidator, mapperss) {
9
+ this.em = em;
10
+ this.openTelemetryCollector = openTelemetryCollector;
11
+ this.schemaValidator = schemaValidator;
12
+ this.mapperss = mapperss;
13
+ this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
14
+ }
15
+ async createRole(roleDto, em) {
16
+ // TODO: Think about removing static method here, since we need specific args
17
+ const role =
18
+ this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
19
+ await (em ?? this.em).transactional((em) => em.persist(role));
20
+ return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
21
+ }
22
+ async createBatchRoles(roleDtos, em) {
23
+ const roles = await Promise.all(
24
+ roleDtos.map(async (roleDto) =>
25
+ this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)
26
+ )
27
+ );
28
+ await (em ?? this.em).transactional((em) => em.persist(roles));
29
+ return roles.map((role) =>
30
+ this.#mapperss.RoleDtoMapper.serializeEntityToDto(role)
31
+ );
32
+ }
33
+ async getRole(idDto, em) {
34
+ const role = await (em ?? this.em).findOneOrFail('Role', idDto, {
35
+ populate: ['id', '*']
36
+ });
37
+ return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
38
+ }
39
+ async getBatchRoles(idsDto, em) {
40
+ return (
41
+ await (em ?? this.em).find('Role', idsDto, {
42
+ populate: ['id', '*']
43
+ })
44
+ ).map((role) => this.#mapperss.RoleDtoMapper.serializeEntityToDto(role));
45
+ }
46
+ async updateRole(roleDto, em) {
47
+ let role =
48
+ this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto);
49
+ await (em ?? this.em).transactional(async (em) => {
50
+ role = await em.upsert('Role', role);
51
+ });
52
+ return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
53
+ }
54
+ async updateBatchRoles(roleDtos, em) {
55
+ let roles = await Promise.all(
56
+ roleDtos.map(async (roleDto) =>
57
+ this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)
58
+ )
59
+ );
60
+ await (em ?? this.em).transactional(async (em) => {
61
+ roles = await em.upsertMany('Role', roles);
62
+ });
63
+ return roles.map((role) =>
64
+ this.#mapperss.RoleDtoMapper.serializeEntityToDto(role)
65
+ );
66
+ }
67
+ async deleteRole(idDto, em) {
68
+ await (em ?? this.em).nativeDelete('Role', idDto);
69
+ }
70
+ async deleteBatchRoles(idsDto, em) {
71
+ await (em ?? this.em).nativeDelete('Role', { id: { $in: idsDto.ids } });
72
+ }
57
73
  }
@@ -1,54 +1,138 @@
1
- import { OrganizationService, RoleService, UserService } from '@forklaunch/interfaces-iam/interfaces';
1
+ import {
2
+ OrganizationService,
3
+ RoleService,
4
+ UserService
5
+ } from '@forklaunch/interfaces-iam/interfaces';
2
6
  import { IdDto, IdsDto } from '@forklaunch/common';
3
- import { RequestDtoMapperConstructor, ResponseDtoMapperConstructor } from '@forklaunch/core/mappers';
4
- import { MetricsDefinition, OpenTelemetryCollector } from '@forklaunch/core/http';
7
+ import {
8
+ RequestDtoMapperConstructor,
9
+ ResponseDtoMapperConstructor
10
+ } from '@forklaunch/core/mappers';
11
+ import {
12
+ MetricsDefinition,
13
+ OpenTelemetryCollector
14
+ } from '@forklaunch/core/http';
5
15
  import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
6
- import { CreateUserDto, UpdateUserDto, UserDto } from '@forklaunch/interfaces-iam/types';
16
+ import {
17
+ CreateUserDto,
18
+ UpdateUserDto,
19
+ UserDto
20
+ } from '@forklaunch/interfaces-iam/types';
7
21
  import { AnySchemaValidator } from '@forklaunch/validator';
8
22
  import { EntityManager } from '@mikro-orm/core';
9
- export declare class BaseUserService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
23
+ export declare class BaseUserService<
24
+ SchemaValidator extends AnySchemaValidator,
25
+ OrganizationStatus,
26
+ Metrics extends MetricsDefinition = MetricsDefinition,
27
+ Dto extends {
10
28
  UserDtoMapper: UserDto;
11
29
  CreateUserDtoMapper: CreateUserDto;
12
30
  UpdateUserDtoMapper: UpdateUserDto;
13
- } = {
31
+ } = {
14
32
  UserDtoMapper: UserDto;
15
33
  CreateUserDtoMapper: CreateUserDto;
16
34
  UpdateUserDtoMapper: UpdateUserDto;
17
- }, Entities extends {
35
+ },
36
+ Entities extends {
18
37
  UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
19
38
  CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
20
39
  UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
21
- } = {
40
+ } = {
22
41
  UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
23
42
  CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
24
43
  UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
25
- }> implements UserService {
26
- #private;
27
- em: EntityManager;
28
- protected passwordEncryptionPublicKeyPath: string;
29
- protected roleServiceFactory: () => RoleService;
30
- protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
31
- protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
32
- protected schemaValidator: SchemaValidator;
33
- protected mapperss: {
34
- UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
35
- CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
36
- UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
37
- };
38
- constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mapperss: {
39
- UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
40
- CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
41
- UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper'], (dto: never, passwordEncryptionPublicKeyPath: string) => Entities['UpdateUserDtoMapper']>;
42
- });
43
- createUser(userDto: Dto['CreateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
44
- createBatchUsers(userDtos: Dto['CreateUserDtoMapper'][], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
45
- getUser(idDto: IdDto, em?: EntityManager): Promise<Dto['UserDtoMapper']>;
46
- getBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
47
- updateUser(userDto: Dto['UpdateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
48
- updateBatchUsers(userDtos: UpdateUserDto[], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
49
- deleteUser(idDto: IdDto, em?: EntityManager): Promise<void>;
50
- deleteBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<void>;
51
- verifyHasRole(idDto: IdDto, roleId: string): Promise<void>;
52
- verifyHasPermission(idDto: IdDto, permissionId: string): Promise<void>;
44
+ }
45
+ > implements UserService
46
+ {
47
+ #private;
48
+ em: EntityManager;
49
+ protected passwordEncryptionPublicKeyPath: string;
50
+ protected roleServiceFactory: () => RoleService;
51
+ protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
52
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
53
+ protected schemaValidator: SchemaValidator;
54
+ protected mapperss: {
55
+ UserDtoMapper: ResponseDtoMapperConstructor<
56
+ SchemaValidator,
57
+ Dto['UserDtoMapper'],
58
+ Entities['UserDtoMapper']
59
+ >;
60
+ CreateUserDtoMapper: RequestDtoMapperConstructor<
61
+ SchemaValidator,
62
+ Dto['CreateUserDtoMapper'],
63
+ Entities['CreateUserDtoMapper'],
64
+ (
65
+ dto: never,
66
+ passwordEncryptionPublicKeyPath: string
67
+ ) => Entities['UpdateUserDtoMapper']
68
+ >;
69
+ UpdateUserDtoMapper: RequestDtoMapperConstructor<
70
+ SchemaValidator,
71
+ Dto['UpdateUserDtoMapper'],
72
+ Entities['UpdateUserDtoMapper'],
73
+ (
74
+ dto: never,
75
+ passwordEncryptionPublicKeyPath: string
76
+ ) => Entities['UpdateUserDtoMapper']
77
+ >;
78
+ };
79
+ constructor(
80
+ em: EntityManager,
81
+ passwordEncryptionPublicKeyPath: string,
82
+ roleServiceFactory: () => RoleService,
83
+ organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
84
+ openTelemetryCollector: OpenTelemetryCollector<Metrics>,
85
+ schemaValidator: SchemaValidator,
86
+ mapperss: {
87
+ UserDtoMapper: ResponseDtoMapperConstructor<
88
+ SchemaValidator,
89
+ Dto['UserDtoMapper'],
90
+ Entities['UserDtoMapper']
91
+ >;
92
+ CreateUserDtoMapper: RequestDtoMapperConstructor<
93
+ SchemaValidator,
94
+ Dto['CreateUserDtoMapper'],
95
+ Entities['CreateUserDtoMapper'],
96
+ (
97
+ dto: never,
98
+ passwordEncryptionPublicKeyPath: string
99
+ ) => Entities['UpdateUserDtoMapper']
100
+ >;
101
+ UpdateUserDtoMapper: RequestDtoMapperConstructor<
102
+ SchemaValidator,
103
+ Dto['UpdateUserDtoMapper'],
104
+ Entities['UpdateUserDtoMapper'],
105
+ (
106
+ dto: never,
107
+ passwordEncryptionPublicKeyPath: string
108
+ ) => Entities['UpdateUserDtoMapper']
109
+ >;
110
+ }
111
+ );
112
+ createUser(
113
+ userDto: Dto['CreateUserDtoMapper'],
114
+ em?: EntityManager
115
+ ): Promise<Dto['UserDtoMapper']>;
116
+ createBatchUsers(
117
+ userDtos: Dto['CreateUserDtoMapper'][],
118
+ em?: EntityManager
119
+ ): Promise<Dto['UserDtoMapper'][]>;
120
+ getUser(idDto: IdDto, em?: EntityManager): Promise<Dto['UserDtoMapper']>;
121
+ getBatchUsers(
122
+ idsDto: IdsDto,
123
+ em?: EntityManager
124
+ ): Promise<Dto['UserDtoMapper'][]>;
125
+ updateUser(
126
+ userDto: Dto['UpdateUserDtoMapper'],
127
+ em?: EntityManager
128
+ ): Promise<Dto['UserDtoMapper']>;
129
+ updateBatchUsers(
130
+ userDtos: UpdateUserDto[],
131
+ em?: EntityManager
132
+ ): Promise<Dto['UserDtoMapper'][]>;
133
+ deleteUser(idDto: IdDto, em?: EntityManager): Promise<void>;
134
+ deleteBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<void>;
135
+ verifyHasRole(idDto: IdDto, roleId: string): Promise<void>;
136
+ verifyHasPermission(idDto: IdDto, permissionId: string): Promise<void>;
53
137
  }
54
- //# sourceMappingURL=user.service.d.ts.map
138
+ //# sourceMappingURL=user.service.d.ts.map