@forklaunch/implementation-iam-base 0.2.3 → 0.3.0

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 (69) hide show
  1. package/lib/schemas/index.d.mts +474 -0
  2. package/lib/schemas/index.d.ts +474 -5
  3. package/lib/schemas/index.js +339 -4
  4. package/lib/schemas/index.mjs +369 -0
  5. package/lib/services/index.d.mts +203 -0
  6. package/lib/services/index.d.ts +203 -5
  7. package/lib/services/index.js +666 -4
  8. package/lib/services/index.mjs +652 -0
  9. package/package.json +6 -5
  10. package/lib/__test__/schemaEquality.test.d.ts +0 -2
  11. package/lib/__test__/schemaEquality.test.d.ts.map +0 -1
  12. package/lib/__test__/schemaEquality.test.js +0 -283
  13. package/lib/jest.config.d.ts +0 -4
  14. package/lib/jest.config.d.ts.map +0 -1
  15. package/lib/jest.config.js +0 -19
  16. package/lib/schemas/index.d.ts.map +0 -1
  17. package/lib/schemas/organization.schema.d.ts +0 -423
  18. package/lib/schemas/organization.schema.d.ts.map +0 -1
  19. package/lib/schemas/organization.schema.js +0 -7
  20. package/lib/schemas/permission.schema.d.ts +0 -104
  21. package/lib/schemas/permission.schema.d.ts.map +0 -1
  22. package/lib/schemas/permission.schema.js +0 -7
  23. package/lib/schemas/role.schema.d.ts +0 -163
  24. package/lib/schemas/role.schema.d.ts.map +0 -1
  25. package/lib/schemas/role.schema.js +0 -7
  26. package/lib/schemas/typebox/organization.schema.d.ts +0 -382
  27. package/lib/schemas/typebox/organization.schema.d.ts.map +0 -1
  28. package/lib/schemas/typebox/organization.schema.js +0 -44
  29. package/lib/schemas/typebox/permission.schema.d.ts +0 -123
  30. package/lib/schemas/typebox/permission.schema.d.ts.map +0 -1
  31. package/lib/schemas/typebox/permission.schema.js +0 -32
  32. package/lib/schemas/typebox/role.schema.d.ts +0 -183
  33. package/lib/schemas/typebox/role.schema.d.ts.map +0 -1
  34. package/lib/schemas/typebox/role.schema.js +0 -33
  35. package/lib/schemas/typebox/user.schema.d.ts +0 -315
  36. package/lib/schemas/typebox/user.schema.d.ts.map +0 -1
  37. package/lib/schemas/typebox/user.schema.js +0 -49
  38. package/lib/schemas/user.schema.d.ts +0 -298
  39. package/lib/schemas/user.schema.d.ts.map +0 -1
  40. package/lib/schemas/user.schema.js +0 -7
  41. package/lib/schemas/zod/organization.schema.d.ts +0 -418
  42. package/lib/schemas/zod/organization.schema.d.ts.map +0 -1
  43. package/lib/schemas/zod/organization.schema.js +0 -44
  44. package/lib/schemas/zod/permission.schema.d.ts +0 -71
  45. package/lib/schemas/zod/permission.schema.d.ts.map +0 -1
  46. package/lib/schemas/zod/permission.schema.js +0 -32
  47. package/lib/schemas/zod/role.schema.d.ts +0 -129
  48. package/lib/schemas/zod/role.schema.d.ts.map +0 -1
  49. package/lib/schemas/zod/role.schema.js +0 -33
  50. package/lib/schemas/zod/user.schema.d.ts +0 -249
  51. package/lib/schemas/zod/user.schema.d.ts.map +0 -1
  52. package/lib/schemas/zod/user.schema.js +0 -49
  53. package/lib/services/index.d.ts.map +0 -1
  54. package/lib/services/organization.service.d.ts +0 -123
  55. package/lib/services/organization.service.d.ts.map +0 -1
  56. package/lib/services/organization.service.js +0 -88
  57. package/lib/services/permission.service.d.ts +0 -149
  58. package/lib/services/permission.service.d.ts.map +0 -1
  59. package/lib/services/permission.service.js +0 -264
  60. package/lib/services/role.service.d.ts +0 -123
  61. package/lib/services/role.service.d.ts.map +0 -1
  62. package/lib/services/role.service.js +0 -139
  63. package/lib/services/user.service.d.ts +0 -134
  64. package/lib/services/user.service.d.ts.map +0 -1
  65. package/lib/services/user.service.js +0 -185
  66. package/lib/tsconfig.tsbuildinfo +0 -1
  67. package/lib/vitest.config.d.ts +0 -3
  68. package/lib/vitest.config.d.ts.map +0 -1
  69. package/lib/vitest.config.js +0 -7
@@ -0,0 +1,203 @@
1
+ import { IdDto, IdsDto } from '@forklaunch/common';
2
+ import { MetricsDefinition, OpenTelemetryCollector, TelemetryOptions } from '@forklaunch/core/http';
3
+ import { ResponseDtoMapperConstructor, RequestDtoMapperConstructor } from '@forklaunch/core/mappers';
4
+ import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
5
+ import { OrganizationService, PermissionService, RoleService, UserService } from '@forklaunch/interfaces-iam/interfaces';
6
+ import { OrganizationDto, CreateOrganizationDto, UpdateOrganizationDto, PermissionDto, CreatePermissionDto, UpdatePermissionDto, UpdateRoleDto, RoleDto, CreateRoleDto, UserDto, CreateUserDto, UpdateUserDto } from '@forklaunch/interfaces-iam/types';
7
+ import { AnySchemaValidator } from '@forklaunch/validator';
8
+ import { EntityManager } from '@mikro-orm/core';
9
+
10
+ declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
11
+ OrganizationDtoMapper: OrganizationDto<OrganizationStatus>;
12
+ CreateOrganizationDtoMapper: CreateOrganizationDto;
13
+ UpdateOrganizationDtoMapper: UpdateOrganizationDto;
14
+ } = {
15
+ OrganizationDtoMapper: OrganizationDto<OrganizationStatus>;
16
+ CreateOrganizationDtoMapper: CreateOrganizationDto;
17
+ UpdateOrganizationDtoMapper: UpdateOrganizationDto;
18
+ }, Entities extends {
19
+ OrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
20
+ CreateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
21
+ UpdateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
22
+ } = {
23
+ OrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
24
+ CreateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
25
+ UpdateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
26
+ }> implements OrganizationService<OrganizationStatus> {
27
+ #private;
28
+ em: EntityManager;
29
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
30
+ protected schemaValidator: SchemaValidator;
31
+ protected mappers: {
32
+ OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
33
+ CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
34
+ UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
35
+ };
36
+ private evaluatedTelemetryOptions;
37
+ constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
38
+ OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
39
+ CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
40
+ UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
41
+ }, options?: {
42
+ telemetry?: TelemetryOptions;
43
+ });
44
+ createOrganization(organizationDto: Dto['CreateOrganizationDtoMapper'], em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
45
+ getOrganization(idDto: IdDto, em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
46
+ updateOrganization(organizationDto: Dto['UpdateOrganizationDtoMapper'], em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
47
+ deleteOrganization(idDto: IdDto, em?: EntityManager): Promise<void>;
48
+ }
49
+
50
+ declare class BasePermissionService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
51
+ PermissionDtoMapper: PermissionDto;
52
+ CreatePermissionDtoMapper: CreatePermissionDto;
53
+ UpdatePermissionDtoMapper: UpdatePermissionDto;
54
+ RoleEntityMapper: UpdateRoleDto;
55
+ } = {
56
+ PermissionDtoMapper: PermissionDto;
57
+ CreatePermissionDtoMapper: CreatePermissionDto;
58
+ UpdatePermissionDtoMapper: UpdatePermissionDto;
59
+ RoleEntityMapper: UpdateRoleDto;
60
+ }, Entities extends {
61
+ PermissionDtoMapper: PermissionDto;
62
+ CreatePermissionDtoMapper: PermissionDto;
63
+ UpdatePermissionDtoMapper: PermissionDto;
64
+ RoleEntityMapper: MapNestedDtoArraysToCollections<UpdateRoleDto, 'permissions'>;
65
+ } = {
66
+ PermissionDtoMapper: PermissionDto;
67
+ CreatePermissionDtoMapper: PermissionDto;
68
+ UpdatePermissionDtoMapper: PermissionDto;
69
+ RoleEntityMapper: MapNestedDtoArraysToCollections<UpdateRoleDto, 'permissions'>;
70
+ }> implements PermissionService {
71
+ #private;
72
+ em: EntityManager;
73
+ protected roleServiceFactory: () => RoleService;
74
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
75
+ protected schemaValidator: SchemaValidator;
76
+ protected mappers: {
77
+ PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
78
+ CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
79
+ UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
80
+ RoleEntityMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleEntityMapper'], Entities['RoleEntityMapper']>;
81
+ };
82
+ private evaluatedTelemetryOptions;
83
+ constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
84
+ PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
85
+ CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
86
+ UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
87
+ RoleEntityMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleEntityMapper'], Entities['RoleEntityMapper']>;
88
+ }, options?: {
89
+ telemetry?: TelemetryOptions;
90
+ });
91
+ private updateRolesWithPermissions;
92
+ private removePermissionsFromRoles;
93
+ private getBatchRoles;
94
+ private createPermissionDto;
95
+ private extractCreatePermissionDtoToEntityData;
96
+ createPermission(createPermissionDto: Dto['CreatePermissionDtoMapper'], em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
97
+ createBatchPermissions(permissionDtos: Dto['CreatePermissionDtoMapper'][], em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
98
+ getPermission(idDto: IdDto, em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
99
+ getBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
100
+ private updatePermissionDto;
101
+ updatePermission(permissionDto: Dto['UpdatePermissionDtoMapper'], em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
102
+ updateBatchPermissions(permissionDtos: Dto['UpdatePermissionDtoMapper'][], em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
103
+ deletePermission(idDto: IdDto, em?: EntityManager): Promise<void>;
104
+ deleteBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<void>;
105
+ }
106
+
107
+ declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
108
+ RoleDtoMapper: RoleDto;
109
+ CreateRoleDtoMapper: CreateRoleDto;
110
+ UpdateRoleDtoMapper: UpdateRoleDto;
111
+ } = {
112
+ RoleDtoMapper: RoleDto;
113
+ CreateRoleDtoMapper: CreateRoleDto;
114
+ UpdateRoleDtoMapper: UpdateRoleDto;
115
+ }, Entities extends {
116
+ RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
117
+ CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
118
+ UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
119
+ } = {
120
+ RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
121
+ CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
122
+ UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
123
+ }> implements RoleService {
124
+ #private;
125
+ em: EntityManager;
126
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
127
+ protected schemaValidator: SchemaValidator;
128
+ protected mappers: {
129
+ RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
130
+ CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
131
+ UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
132
+ };
133
+ private evaluatedTelemetryOptions;
134
+ constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
135
+ RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
136
+ CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
137
+ UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
138
+ }, options?: {
139
+ telemetry?: TelemetryOptions;
140
+ });
141
+ createRole(roleDto: Dto['CreateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
142
+ createBatchRoles(roleDtos: Dto['CreateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
143
+ getRole({ id }: IdDto, em?: EntityManager): Promise<RoleDto>;
144
+ getBatchRoles({ ids }: IdsDto, em?: EntityManager): Promise<RoleDto[]>;
145
+ updateRole(roleDto: Dto['UpdateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
146
+ updateBatchRoles(roleDtos: Dto['UpdateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
147
+ deleteRole(idDto: IdDto, em?: EntityManager): Promise<void>;
148
+ deleteBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<void>;
149
+ }
150
+
151
+ declare class BaseUserService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
152
+ UserDtoMapper: UserDto;
153
+ CreateUserDtoMapper: CreateUserDto;
154
+ UpdateUserDtoMapper: UpdateUserDto;
155
+ } = {
156
+ UserDtoMapper: UserDto;
157
+ CreateUserDtoMapper: CreateUserDto;
158
+ UpdateUserDtoMapper: UpdateUserDto;
159
+ }, Entities extends {
160
+ UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
161
+ CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
162
+ UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
163
+ } = {
164
+ UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
165
+ CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
166
+ UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
167
+ }> implements UserService {
168
+ #private;
169
+ em: EntityManager;
170
+ protected passwordEncryptionPublicKeyPath: string;
171
+ protected roleServiceFactory: () => RoleService;
172
+ protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
173
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
174
+ protected schemaValidator: SchemaValidator;
175
+ protected mappers: {
176
+ UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
177
+ CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper']>;
178
+ UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper']>;
179
+ };
180
+ readonly options?: {
181
+ telemetry?: TelemetryOptions;
182
+ } | undefined;
183
+ private evaluatedTelemetryOptions;
184
+ constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
185
+ UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
186
+ CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper']>;
187
+ UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper']>;
188
+ }, options?: {
189
+ telemetry?: TelemetryOptions;
190
+ } | undefined);
191
+ createUser(userDto: Dto['CreateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
192
+ createBatchUsers(userDtos: Dto['CreateUserDtoMapper'][], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
193
+ getUser(idDto: IdDto, em?: EntityManager): Promise<Dto['UserDtoMapper']>;
194
+ getBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
195
+ updateUser(userDto: Dto['UpdateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
196
+ updateBatchUsers(userDtos: UpdateUserDto[], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
197
+ deleteUser(idDto: IdDto, em?: EntityManager): Promise<void>;
198
+ deleteBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<void>;
199
+ verifyHasRole(idDto: IdDto, roleId: string): Promise<void>;
200
+ verifyHasPermission(idDto: IdDto, permissionId: string): Promise<void>;
201
+ }
202
+
203
+ export { BaseOrganizationService, BasePermissionService, BaseRoleService, BaseUserService };
@@ -1,5 +1,203 @@
1
- export * from './organization.service';
2
- export * from './permission.service';
3
- export * from './role.service';
4
- export * from './user.service';
5
- //# sourceMappingURL=index.d.ts.map
1
+ import { IdDto, IdsDto } from '@forklaunch/common';
2
+ import { MetricsDefinition, OpenTelemetryCollector, TelemetryOptions } from '@forklaunch/core/http';
3
+ import { ResponseDtoMapperConstructor, RequestDtoMapperConstructor } from '@forklaunch/core/mappers';
4
+ import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
5
+ import { OrganizationService, PermissionService, RoleService, UserService } from '@forklaunch/interfaces-iam/interfaces';
6
+ import { OrganizationDto, CreateOrganizationDto, UpdateOrganizationDto, PermissionDto, CreatePermissionDto, UpdatePermissionDto, UpdateRoleDto, RoleDto, CreateRoleDto, UserDto, CreateUserDto, UpdateUserDto } from '@forklaunch/interfaces-iam/types';
7
+ import { AnySchemaValidator } from '@forklaunch/validator';
8
+ import { EntityManager } from '@mikro-orm/core';
9
+
10
+ declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
11
+ OrganizationDtoMapper: OrganizationDto<OrganizationStatus>;
12
+ CreateOrganizationDtoMapper: CreateOrganizationDto;
13
+ UpdateOrganizationDtoMapper: UpdateOrganizationDto;
14
+ } = {
15
+ OrganizationDtoMapper: OrganizationDto<OrganizationStatus>;
16
+ CreateOrganizationDtoMapper: CreateOrganizationDto;
17
+ UpdateOrganizationDtoMapper: UpdateOrganizationDto;
18
+ }, Entities extends {
19
+ OrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
20
+ CreateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
21
+ UpdateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
22
+ } = {
23
+ OrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
24
+ CreateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
25
+ UpdateOrganizationDtoMapper: MapNestedDtoArraysToCollections<OrganizationDto<OrganizationStatus>, 'users'>;
26
+ }> implements OrganizationService<OrganizationStatus> {
27
+ #private;
28
+ em: EntityManager;
29
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
30
+ protected schemaValidator: SchemaValidator;
31
+ protected mappers: {
32
+ OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
33
+ CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
34
+ UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
35
+ };
36
+ private evaluatedTelemetryOptions;
37
+ constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
38
+ OrganizationDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['OrganizationDtoMapper'], Entities['OrganizationDtoMapper']>;
39
+ CreateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateOrganizationDtoMapper'], Entities['CreateOrganizationDtoMapper']>;
40
+ UpdateOrganizationDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateOrganizationDtoMapper'], Entities['UpdateOrganizationDtoMapper']>;
41
+ }, options?: {
42
+ telemetry?: TelemetryOptions;
43
+ });
44
+ createOrganization(organizationDto: Dto['CreateOrganizationDtoMapper'], em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
45
+ getOrganization(idDto: IdDto, em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
46
+ updateOrganization(organizationDto: Dto['UpdateOrganizationDtoMapper'], em?: EntityManager): Promise<Dto['OrganizationDtoMapper']>;
47
+ deleteOrganization(idDto: IdDto, em?: EntityManager): Promise<void>;
48
+ }
49
+
50
+ declare class BasePermissionService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
51
+ PermissionDtoMapper: PermissionDto;
52
+ CreatePermissionDtoMapper: CreatePermissionDto;
53
+ UpdatePermissionDtoMapper: UpdatePermissionDto;
54
+ RoleEntityMapper: UpdateRoleDto;
55
+ } = {
56
+ PermissionDtoMapper: PermissionDto;
57
+ CreatePermissionDtoMapper: CreatePermissionDto;
58
+ UpdatePermissionDtoMapper: UpdatePermissionDto;
59
+ RoleEntityMapper: UpdateRoleDto;
60
+ }, Entities extends {
61
+ PermissionDtoMapper: PermissionDto;
62
+ CreatePermissionDtoMapper: PermissionDto;
63
+ UpdatePermissionDtoMapper: PermissionDto;
64
+ RoleEntityMapper: MapNestedDtoArraysToCollections<UpdateRoleDto, 'permissions'>;
65
+ } = {
66
+ PermissionDtoMapper: PermissionDto;
67
+ CreatePermissionDtoMapper: PermissionDto;
68
+ UpdatePermissionDtoMapper: PermissionDto;
69
+ RoleEntityMapper: MapNestedDtoArraysToCollections<UpdateRoleDto, 'permissions'>;
70
+ }> implements PermissionService {
71
+ #private;
72
+ em: EntityManager;
73
+ protected roleServiceFactory: () => RoleService;
74
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
75
+ protected schemaValidator: SchemaValidator;
76
+ protected mappers: {
77
+ PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
78
+ CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
79
+ UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
80
+ RoleEntityMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleEntityMapper'], Entities['RoleEntityMapper']>;
81
+ };
82
+ private evaluatedTelemetryOptions;
83
+ constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
84
+ PermissionDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['PermissionDtoMapper'], Entities['PermissionDtoMapper']>;
85
+ CreatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreatePermissionDtoMapper'], Entities['CreatePermissionDtoMapper']>;
86
+ UpdatePermissionDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdatePermissionDtoMapper'], Entities['UpdatePermissionDtoMapper']>;
87
+ RoleEntityMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['RoleEntityMapper'], Entities['RoleEntityMapper']>;
88
+ }, options?: {
89
+ telemetry?: TelemetryOptions;
90
+ });
91
+ private updateRolesWithPermissions;
92
+ private removePermissionsFromRoles;
93
+ private getBatchRoles;
94
+ private createPermissionDto;
95
+ private extractCreatePermissionDtoToEntityData;
96
+ createPermission(createPermissionDto: Dto['CreatePermissionDtoMapper'], em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
97
+ createBatchPermissions(permissionDtos: Dto['CreatePermissionDtoMapper'][], em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
98
+ getPermission(idDto: IdDto, em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
99
+ getBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
100
+ private updatePermissionDto;
101
+ updatePermission(permissionDto: Dto['UpdatePermissionDtoMapper'], em?: EntityManager): Promise<Dto['PermissionDtoMapper']>;
102
+ updateBatchPermissions(permissionDtos: Dto['UpdatePermissionDtoMapper'][], em?: EntityManager): Promise<Dto['PermissionDtoMapper'][]>;
103
+ deletePermission(idDto: IdDto, em?: EntityManager): Promise<void>;
104
+ deleteBatchPermissions(idsDto: IdsDto, em?: EntityManager): Promise<void>;
105
+ }
106
+
107
+ declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
108
+ RoleDtoMapper: RoleDto;
109
+ CreateRoleDtoMapper: CreateRoleDto;
110
+ UpdateRoleDtoMapper: UpdateRoleDto;
111
+ } = {
112
+ RoleDtoMapper: RoleDto;
113
+ CreateRoleDtoMapper: CreateRoleDto;
114
+ UpdateRoleDtoMapper: UpdateRoleDto;
115
+ }, Entities extends {
116
+ RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
117
+ CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
118
+ UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
119
+ } = {
120
+ RoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
121
+ CreateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
122
+ UpdateRoleDtoMapper: MapNestedDtoArraysToCollections<RoleDto, 'permissions'>;
123
+ }> implements RoleService {
124
+ #private;
125
+ em: EntityManager;
126
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
127
+ protected schemaValidator: SchemaValidator;
128
+ protected mappers: {
129
+ RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
130
+ CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
131
+ UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
132
+ };
133
+ private evaluatedTelemetryOptions;
134
+ constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
135
+ RoleDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['RoleDtoMapper'], Entities['RoleDtoMapper']>;
136
+ CreateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateRoleDtoMapper'], Entities['CreateRoleDtoMapper']>;
137
+ UpdateRoleDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateRoleDtoMapper'], Entities['UpdateRoleDtoMapper']>;
138
+ }, options?: {
139
+ telemetry?: TelemetryOptions;
140
+ });
141
+ createRole(roleDto: Dto['CreateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
142
+ createBatchRoles(roleDtos: Dto['CreateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
143
+ getRole({ id }: IdDto, em?: EntityManager): Promise<RoleDto>;
144
+ getBatchRoles({ ids }: IdsDto, em?: EntityManager): Promise<RoleDto[]>;
145
+ updateRole(roleDto: Dto['UpdateRoleDtoMapper'], em?: EntityManager): Promise<Dto['RoleDtoMapper']>;
146
+ updateBatchRoles(roleDtos: Dto['UpdateRoleDtoMapper'][], em?: EntityManager): Promise<Dto['RoleDtoMapper'][]>;
147
+ deleteRole(idDto: IdDto, em?: EntityManager): Promise<void>;
148
+ deleteBatchRoles(idsDto: IdsDto, em?: EntityManager): Promise<void>;
149
+ }
150
+
151
+ declare class BaseUserService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Metrics extends MetricsDefinition = MetricsDefinition, Dto extends {
152
+ UserDtoMapper: UserDto;
153
+ CreateUserDtoMapper: CreateUserDto;
154
+ UpdateUserDtoMapper: UpdateUserDto;
155
+ } = {
156
+ UserDtoMapper: UserDto;
157
+ CreateUserDtoMapper: CreateUserDto;
158
+ UpdateUserDtoMapper: UpdateUserDto;
159
+ }, Entities extends {
160
+ UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
161
+ CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
162
+ UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
163
+ } = {
164
+ UserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
165
+ CreateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
166
+ UpdateUserDtoMapper: MapNestedDtoArraysToCollections<UserDto, 'roles'>;
167
+ }> implements UserService {
168
+ #private;
169
+ em: EntityManager;
170
+ protected passwordEncryptionPublicKeyPath: string;
171
+ protected roleServiceFactory: () => RoleService;
172
+ protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
173
+ protected openTelemetryCollector: OpenTelemetryCollector<Metrics>;
174
+ protected schemaValidator: SchemaValidator;
175
+ protected mappers: {
176
+ UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
177
+ CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper']>;
178
+ UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper']>;
179
+ };
180
+ readonly options?: {
181
+ telemetry?: TelemetryOptions;
182
+ } | undefined;
183
+ private evaluatedTelemetryOptions;
184
+ constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<Metrics>, schemaValidator: SchemaValidator, mappers: {
185
+ UserDtoMapper: ResponseDtoMapperConstructor<SchemaValidator, Dto['UserDtoMapper'], Entities['UserDtoMapper']>;
186
+ CreateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['CreateUserDtoMapper'], Entities['CreateUserDtoMapper']>;
187
+ UpdateUserDtoMapper: RequestDtoMapperConstructor<SchemaValidator, Dto['UpdateUserDtoMapper'], Entities['UpdateUserDtoMapper']>;
188
+ }, options?: {
189
+ telemetry?: TelemetryOptions;
190
+ } | undefined);
191
+ createUser(userDto: Dto['CreateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
192
+ createBatchUsers(userDtos: Dto['CreateUserDtoMapper'][], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
193
+ getUser(idDto: IdDto, em?: EntityManager): Promise<Dto['UserDtoMapper']>;
194
+ getBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
195
+ updateUser(userDto: Dto['UpdateUserDtoMapper'], em?: EntityManager): Promise<Dto['UserDtoMapper']>;
196
+ updateBatchUsers(userDtos: UpdateUserDto[], em?: EntityManager): Promise<Dto['UserDtoMapper'][]>;
197
+ deleteUser(idDto: IdDto, em?: EntityManager): Promise<void>;
198
+ deleteBatchUsers(idsDto: IdsDto, em?: EntityManager): Promise<void>;
199
+ verifyHasRole(idDto: IdDto, roleId: string): Promise<void>;
200
+ verifyHasPermission(idDto: IdDto, permissionId: string): Promise<void>;
201
+ }
202
+
203
+ export { BaseOrganizationService, BasePermissionService, BaseRoleService, BaseUserService };