@forklaunch/implementation-iam-base 0.1.6 → 0.1.8

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 (60) hide show
  1. package/lib/__test__/schemaEquality.test.js +24 -16
  2. package/lib/eject/{schemas → domain/schemas}/organization.schema.ts +8 -6
  3. package/lib/eject/{schemas → domain/schemas}/permission.schema.ts +5 -5
  4. package/lib/eject/{schemas → domain/schemas}/role.schema.ts +6 -6
  5. package/lib/eject/{schemas → domain/schemas}/user.schema.ts +6 -6
  6. package/lib/eject/services/organization.service.ts +10 -13
  7. package/lib/eject/services/permission.service.ts +14 -21
  8. package/lib/eject/services/role.service.ts +15 -18
  9. package/lib/eject/services/user.service.ts +15 -18
  10. package/lib/schemas/organization.schema.d.ts +10 -2
  11. package/lib/schemas/organization.schema.d.ts.map +1 -1
  12. package/lib/schemas/organization.schema.js +1 -1
  13. package/lib/schemas/permission.schema.d.ts +10 -2
  14. package/lib/schemas/permission.schema.d.ts.map +1 -1
  15. package/lib/schemas/permission.schema.js +1 -1
  16. package/lib/schemas/role.schema.d.ts +10 -2
  17. package/lib/schemas/role.schema.d.ts.map +1 -1
  18. package/lib/schemas/role.schema.js +1 -1
  19. package/lib/schemas/typebox/organization.schema.d.ts +9 -3
  20. package/lib/schemas/typebox/organization.schema.d.ts.map +1 -1
  21. package/lib/schemas/typebox/organization.schema.js +6 -6
  22. package/lib/schemas/typebox/permission.schema.d.ts +9 -3
  23. package/lib/schemas/typebox/permission.schema.d.ts.map +1 -1
  24. package/lib/schemas/typebox/permission.schema.js +5 -5
  25. package/lib/schemas/typebox/role.schema.d.ts +9 -3
  26. package/lib/schemas/typebox/role.schema.d.ts.map +1 -1
  27. package/lib/schemas/typebox/role.schema.js +6 -6
  28. package/lib/schemas/typebox/user.schema.d.ts +9 -3
  29. package/lib/schemas/typebox/user.schema.d.ts.map +1 -1
  30. package/lib/schemas/typebox/user.schema.js +6 -6
  31. package/lib/schemas/user.schema.d.ts +10 -2
  32. package/lib/schemas/user.schema.d.ts.map +1 -1
  33. package/lib/schemas/user.schema.js +1 -1
  34. package/lib/schemas/zod/organization.schema.d.ts +9 -3
  35. package/lib/schemas/zod/organization.schema.d.ts.map +1 -1
  36. package/lib/schemas/zod/organization.schema.js +6 -6
  37. package/lib/schemas/zod/permission.schema.d.ts +9 -3
  38. package/lib/schemas/zod/permission.schema.d.ts.map +1 -1
  39. package/lib/schemas/zod/permission.schema.js +5 -5
  40. package/lib/schemas/zod/role.schema.d.ts +9 -3
  41. package/lib/schemas/zod/role.schema.d.ts.map +1 -1
  42. package/lib/schemas/zod/role.schema.js +6 -6
  43. package/lib/schemas/zod/user.schema.d.ts +9 -3
  44. package/lib/schemas/zod/user.schema.d.ts.map +1 -1
  45. package/lib/schemas/zod/user.schema.js +6 -6
  46. package/lib/services/organization.service.d.ts +3 -3
  47. package/lib/services/organization.service.d.ts.map +1 -1
  48. package/lib/services/organization.service.js +11 -11
  49. package/lib/services/permission.service.d.ts +3 -3
  50. package/lib/services/permission.service.d.ts.map +1 -1
  51. package/lib/services/permission.service.js +15 -15
  52. package/lib/services/role.service.d.ts +3 -3
  53. package/lib/services/role.service.d.ts.map +1 -1
  54. package/lib/services/role.service.js +16 -16
  55. package/lib/services/user.service.d.ts +3 -3
  56. package/lib/services/user.service.d.ts.map +1 -1
  57. package/lib/services/user.service.js +16 -16
  58. package/lib/tsconfig.tsbuildinfo +1 -1
  59. package/package.json +6 -4
  60. /package/lib/eject/{schemas → domain/schemas}/index.ts +0 -0
@@ -8,22 +8,30 @@ import { CreateOrganizationSchema as ZodCreateOrganizationSchema, OrganizationSc
8
8
  import { CreatePermissionSchema as ZodCreatePermissionSchema, PermissionSchema as ZodPermissionSchema, UpdatePermissionSchema as ZodUpdatePermissionSchema } from '../schemas/zod/permission.schema';
9
9
  import { CreateRoleSchema as ZodCreateRoleSchema, RoleSchema as ZodRoleSchema, UpdateRoleSchema as ZodUpdateRoleSchema } from '../schemas/zod/role.schema';
10
10
  import { CreateUserSchema as ZodCreateUserSchema, UpdateUserSchema as ZodUpdateUserSchema, UserSchema as ZodUserSchema } from '../schemas/zod/user.schema';
11
- const zodUpdatePermissionSchema = ZodUpdatePermissionSchema(false);
12
- const typeboxUpdatePermissionSchema = TypeboxUpdatePermissionSchema(false);
13
- const zodPermissionSchema = ZodPermissionSchema(false);
14
- const typeboxPermissionSchema = TypeboxPermissionSchema(false);
15
- const zodUpdateRoleSchema = ZodUpdateRoleSchema(false);
16
- const typeboxUpdateRoleSchema = TypeboxUpdateRoleSchema(false);
17
- const zodRoleSchema = ZodRoleSchema(false);
18
- const typeboxRoleSchema = TypeboxRoleSchema(false);
19
- const zodUpdateUserSchema = ZodUpdateUserSchema(false);
20
- const typeboxUpdateUserSchema = TypeboxUpdateUserSchema(false);
21
- const zodUserSchema = ZodUserSchema(false);
22
- const typeboxUserSchema = TypeboxUserSchema(false);
23
- const zodUpdateOrganizationSchema = ZodUpdateOrganizationSchema(false);
24
- const typeboxUpdateOrganizationSchema = TypeboxUpdateOrganizationSchema(false);
25
- const zodOrganizationSchema = ZodOrganizationSchema(false)(DummyEnum);
26
- const typeboxOrganizationSchema = TypeboxOrganizationSchema(false)(DummyEnum);
11
+ const zodUpdatePermissionSchema = ZodUpdatePermissionSchema({
12
+ uuidId: false
13
+ });
14
+ const typeboxUpdatePermissionSchema = TypeboxUpdatePermissionSchema({
15
+ uuidId: false
16
+ });
17
+ const zodPermissionSchema = ZodPermissionSchema({ uuidId: false });
18
+ const typeboxPermissionSchema = TypeboxPermissionSchema({ uuidId: false });
19
+ const zodUpdateRoleSchema = ZodUpdateRoleSchema({ uuidId: false });
20
+ const typeboxUpdateRoleSchema = TypeboxUpdateRoleSchema({ uuidId: false });
21
+ const zodRoleSchema = ZodRoleSchema({ uuidId: false });
22
+ const typeboxRoleSchema = TypeboxRoleSchema({ uuidId: false });
23
+ const zodUpdateUserSchema = ZodUpdateUserSchema({ uuidId: false });
24
+ const typeboxUpdateUserSchema = TypeboxUpdateUserSchema({ uuidId: false });
25
+ const zodUserSchema = ZodUserSchema({ uuidId: false });
26
+ const typeboxUserSchema = TypeboxUserSchema({ uuidId: false });
27
+ const zodUpdateOrganizationSchema = ZodUpdateOrganizationSchema({
28
+ uuidId: false
29
+ });
30
+ const typeboxUpdateOrganizationSchema = TypeboxUpdateOrganizationSchema({
31
+ uuidId: false
32
+ });
33
+ const zodOrganizationSchema = ZodOrganizationSchema({ uuidId: false })(DummyEnum);
34
+ const typeboxOrganizationSchema = TypeboxOrganizationSchema({ uuidId: false })(DummyEnum);
27
35
  describe('schema equality', () => {
28
36
  it('should be equal for permission', () => {
29
37
  expect(isTrue(testSchemaEquality(ZodCreatePermissionSchema, TypeboxCreatePermissionSchema, {
@@ -18,7 +18,7 @@ export const CreateOrganizationSchema = {
18
18
  extraFields: optional(unknown)
19
19
  };
20
20
 
21
- export const UpdateOrganizationSchema = (uuidId: boolean) => ({
21
+ export const UpdateOrganizationSchema = ({ uuidId }: { uuidId: boolean }) => ({
22
22
  id: uuidId ? uuid : string,
23
23
  name: optional(string),
24
24
  domain: optional(string),
@@ -28,13 +28,13 @@ export const UpdateOrganizationSchema = (uuidId: boolean) => ({
28
28
  });
29
29
 
30
30
  export const OrganizationSchema =
31
- (uuidId: boolean) =>
31
+ ({ uuidId }: { uuidId: boolean }) =>
32
32
  <OrganizationStatus extends Record<string, LiteralSchema>>(
33
33
  organizationStatus: OrganizationStatus
34
34
  ) => ({
35
35
  id: uuidId ? uuid : string,
36
36
  name: string,
37
- users: array(UserSchema(uuidId)),
37
+ users: array(UserSchema({ uuidId })),
38
38
  domain: string,
39
39
  subscription: string,
40
40
  status: enum_(organizationStatus),
@@ -44,8 +44,10 @@ export const OrganizationSchema =
44
44
  updatedAt: optional(date)
45
45
  });
46
46
 
47
- export const BaseOrganizationServiceSchemas = (uuidId: boolean) => ({
47
+ export const BaseOrganizationServiceSchemas = (options: {
48
+ uuidId: boolean;
49
+ }) => ({
48
50
  CreateOrganizationSchema,
49
- UpdateOrganizationSchema: UpdateOrganizationSchema(uuidId),
50
- OrganizationSchema: OrganizationSchema(uuidId)
51
+ UpdateOrganizationSchema: UpdateOrganizationSchema(options),
52
+ OrganizationSchema: OrganizationSchema(options)
51
53
  });
@@ -13,7 +13,7 @@ export const CreatePermissionSchema = {
13
13
  extraFields: optional(unknown)
14
14
  };
15
15
 
16
- export const UpdatePermissionSchema = (uuidId: boolean) => ({
16
+ export const UpdatePermissionSchema = ({ uuidId }: { uuidId: boolean }) => ({
17
17
  id: uuidId ? uuid : string,
18
18
  slug: optional(string),
19
19
  extraFields: optional(unknown),
@@ -21,7 +21,7 @@ export const UpdatePermissionSchema = (uuidId: boolean) => ({
21
21
  removeFromRolesIds: optional(array(string))
22
22
  });
23
23
 
24
- export const PermissionSchema = (uuidId: boolean) => ({
24
+ export const PermissionSchema = ({ uuidId }: { uuidId: boolean }) => ({
25
25
  id: uuidId ? uuid : string,
26
26
  slug: string,
27
27
  extraFields: optional(unknown),
@@ -29,8 +29,8 @@ export const PermissionSchema = (uuidId: boolean) => ({
29
29
  updatedAt: optional(date)
30
30
  });
31
31
 
32
- export const BasePermissionServiceSchemas = (uuidId: boolean) => ({
32
+ export const BasePermissionServiceSchemas = (options: { uuidId: boolean }) => ({
33
33
  CreatePermissionSchema,
34
- UpdatePermissionSchema: UpdatePermissionSchema(uuidId),
35
- PermissionSchema: PermissionSchema(uuidId)
34
+ UpdatePermissionSchema: UpdatePermissionSchema(options),
35
+ PermissionSchema: PermissionSchema(options)
36
36
  });
@@ -14,24 +14,24 @@ export const CreateRoleSchema = {
14
14
  extraFields: optional(unknown)
15
15
  };
16
16
 
17
- export const UpdateRoleSchema = (uuidId: boolean) => ({
17
+ export const UpdateRoleSchema = ({ uuidId }: { uuidId: boolean }) => ({
18
18
  id: uuidId ? uuid : string,
19
19
  name: optional(string),
20
20
  permissionIds: optional(array(string)),
21
21
  extraFields: optional(unknown)
22
22
  });
23
23
 
24
- export const RoleSchema = (uuidId: boolean) => ({
24
+ export const RoleSchema = ({ uuidId }: { uuidId: boolean }) => ({
25
25
  id: uuidId ? uuid : string,
26
26
  name: string,
27
- permissions: array(PermissionSchema(uuidId)),
27
+ permissions: array(PermissionSchema({ uuidId })),
28
28
  extraFields: optional(unknown),
29
29
  createdAt: optional(date),
30
30
  updatedAt: optional(date)
31
31
  });
32
32
 
33
- export const BaseRoleServiceSchemas = (uuidId: boolean) => ({
33
+ export const BaseRoleServiceSchemas = (options: { uuidId: boolean }) => ({
34
34
  CreateRoleSchema,
35
- UpdateRoleSchema: UpdateRoleSchema(uuidId),
36
- RoleSchema: RoleSchema(uuidId)
35
+ UpdateRoleSchema: UpdateRoleSchema(options),
36
+ RoleSchema: RoleSchema(options)
37
37
  });
@@ -21,7 +21,7 @@ export const CreateUserSchema = {
21
21
  extraFields: optional(unknown)
22
22
  };
23
23
 
24
- export const UpdateUserSchema = (uuidId: boolean) => ({
24
+ export const UpdateUserSchema = ({ uuidId }: { uuidId: boolean }) => ({
25
25
  id: uuidId ? uuid : string,
26
26
  email: optional(email),
27
27
  password: optional(string),
@@ -33,12 +33,12 @@ export const UpdateUserSchema = (uuidId: boolean) => ({
33
33
  extraFields: optional(unknown)
34
34
  });
35
35
 
36
- export const UserSchema = (uuidId: boolean) => ({
36
+ export const UserSchema = ({ uuidId }: { uuidId: boolean }) => ({
37
37
  id: uuidId ? uuid : string,
38
38
  email: email,
39
39
  firstName: string,
40
40
  lastName: string,
41
- roles: array(RoleSchema(uuidId)),
41
+ roles: array(RoleSchema({ uuidId })),
42
42
  phoneNumber: optional(string),
43
43
  subscription: optional(string),
44
44
  extraFields: optional(unknown),
@@ -46,8 +46,8 @@ export const UserSchema = (uuidId: boolean) => ({
46
46
  updatedAt: optional(date)
47
47
  });
48
48
 
49
- export const BaseUserServiceSchemas = (uuidId: boolean) => ({
49
+ export const BaseUserServiceSchemas = (options: { uuidId: boolean }) => ({
50
50
  CreateUserSchema,
51
- UpdateUserSchema: UpdateUserSchema(uuidId),
52
- UserSchema: UserSchema(uuidId)
51
+ UpdateUserSchema: UpdateUserSchema(options),
52
+ UserSchema: UserSchema(options)
53
53
  });
@@ -4,7 +4,7 @@ import {
4
4
  RequestDtoMapperConstructor,
5
5
  ResponseDtoMapperConstructor,
6
6
  transformIntoInternalDtoMapper
7
- } from '@forklaunch/core/dtoMapper';
7
+ } from '@forklaunch/core/mappers';
8
8
  import {
9
9
  MetricsDefinition,
10
10
  OpenTelemetryCollector
@@ -61,8 +61,8 @@ export class BaseOrganizationService<
61
61
  }
62
62
  > implements OrganizationService<OrganizationStatus>
63
63
  {
64
- #dtoMappers: InternalDtoMapper<
65
- InstanceTypeRecord<typeof this.dtoMappers>,
64
+ #mapperss: InternalDtoMapper<
65
+ InstanceTypeRecord<typeof this.mapperss>,
66
66
  Entities,
67
67
  Dto
68
68
  >;
@@ -71,7 +71,7 @@ export class BaseOrganizationService<
71
71
  public em: EntityManager,
72
72
  protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
73
73
  protected schemaValidator: SchemaValidator,
74
- protected dtoMappers: {
74
+ protected mapperss: {
75
75
  OrganizationDtoMapper: ResponseDtoMapperConstructor<
76
76
  SchemaValidator,
77
77
  Dto['OrganizationDtoMapper'],
@@ -89,10 +89,7 @@ export class BaseOrganizationService<
89
89
  >;
90
90
  }
91
91
  ) {
92
- this.#dtoMappers = transformIntoInternalDtoMapper(
93
- dtoMappers,
94
- schemaValidator
95
- );
92
+ this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
96
93
  }
97
94
 
98
95
  async createOrganization(
@@ -101,14 +98,14 @@ export class BaseOrganizationService<
101
98
  ): Promise<Dto['OrganizationDtoMapper']> {
102
99
  this.openTelemetryCollector.log('info', 'Creating organization');
103
100
  const organization =
104
- this.#dtoMappers.CreateOrganizationDtoMapper.deserializeDtoToEntity(
101
+ this.#mapperss.CreateOrganizationDtoMapper.deserializeDtoToEntity(
105
102
  organizationDto
106
103
  );
107
104
  await (em ?? this.em).transactional(async (innerEm) => {
108
105
  await innerEm.persist(organization);
109
106
  });
110
107
 
111
- return this.#dtoMappers.OrganizationDtoMapper.serializeEntityToDto(
108
+ return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(
112
109
  organization
113
110
  );
114
111
  }
@@ -121,7 +118,7 @@ export class BaseOrganizationService<
121
118
  'Organization',
122
119
  idDto
123
120
  );
124
- return this.#dtoMappers.OrganizationDtoMapper.serializeEntityToDto(
121
+ return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(
125
122
  organization as Entities['OrganizationDtoMapper']
126
123
  );
127
124
  }
@@ -131,11 +128,11 @@ export class BaseOrganizationService<
131
128
  em?: EntityManager
132
129
  ): Promise<Dto['OrganizationDtoMapper']> {
133
130
  const updatedOrganization =
134
- this.#dtoMappers.UpdateOrganizationDtoMapper.deserializeDtoToEntity(
131
+ this.#mapperss.UpdateOrganizationDtoMapper.deserializeDtoToEntity(
135
132
  organizationDto
136
133
  );
137
134
  await (em ?? this.em).upsert(updatedOrganization);
138
- return this.#dtoMappers.OrganizationDtoMapper.serializeEntityToDto(
135
+ return this.#mapperss.OrganizationDtoMapper.serializeEntityToDto(
139
136
  updatedOrganization
140
137
  );
141
138
  }
@@ -9,7 +9,7 @@ import {
9
9
  RequestDtoMapperConstructor,
10
10
  ResponseDtoMapperConstructor,
11
11
  transformIntoInternalDtoMapper
12
- } from '@forklaunch/core/dtoMapper';
12
+ } from '@forklaunch/core/mappers';
13
13
  import {
14
14
  MetricsDefinition,
15
15
  OpenTelemetryCollector
@@ -51,8 +51,8 @@ export class BasePermissionService<
51
51
  }
52
52
  > implements PermissionService
53
53
  {
54
- #dtoMappers: InternalDtoMapper<
55
- InstanceTypeRecord<typeof this.dtoMappers>,
54
+ #mapperss: InternalDtoMapper<
55
+ InstanceTypeRecord<typeof this.mapperss>,
56
56
  Entities,
57
57
  Dto
58
58
  >;
@@ -62,7 +62,7 @@ export class BasePermissionService<
62
62
  protected roleServiceFactory: () => RoleService,
63
63
  protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
64
64
  protected schemaValidator: SchemaValidator,
65
- protected dtoMappers: {
65
+ protected mapperss: {
66
66
  PermissionDtoMapper: ResponseDtoMapperConstructor<
67
67
  SchemaValidator,
68
68
  Dto['PermissionDtoMapper'],
@@ -85,10 +85,7 @@ export class BasePermissionService<
85
85
  >;
86
86
  }
87
87
  ) {
88
- this.#dtoMappers = transformIntoInternalDtoMapper(
89
- dtoMappers,
90
- schemaValidator
91
- );
88
+ this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
92
89
  }
93
90
 
94
91
  // start: global helper functions
@@ -126,7 +123,7 @@ export class BasePermissionService<
126
123
  ? (await this.roleServiceFactory().getBatchRoles(roleIds, em)).map(
127
124
  (role) => {
128
125
  return (em ?? this.em).merge(
129
- this.#dtoMappers.RoleDtoMapper.deserializeDtoToEntity(role)
126
+ this.#mapperss.RoleDtoMapper.deserializeDtoToEntity(role)
130
127
  );
131
128
  }
132
129
  )
@@ -162,7 +159,7 @@ export class BasePermissionService<
162
159
  }> {
163
160
  return {
164
161
  permission: (em ?? this.em).merge(
165
- this.#dtoMappers.CreatePermissionDtoMapper.deserializeDtoToEntity(
162
+ this.#mapperss.CreatePermissionDtoMapper.deserializeDtoToEntity(
166
163
  permissionDto
167
164
  )
168
165
  ),
@@ -183,9 +180,7 @@ export class BasePermissionService<
183
180
  await (em ?? this.em).transactional(async (innerEm) => {
184
181
  await innerEm.persist([permission, ...roles]);
185
182
  });
186
- return this.#dtoMappers.PermissionDtoMapper.serializeEntityToDto(
187
- permission
188
- );
183
+ return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
189
184
  }
190
185
 
191
186
  async createBatchPermissions(
@@ -225,7 +220,7 @@ export class BasePermissionService<
225
220
  });
226
221
 
227
222
  return permissions.map((permission) =>
228
- this.#dtoMappers.PermissionDtoMapper.serializeEntityToDto(permission)
223
+ this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission)
229
224
  );
230
225
  }
231
226
 
@@ -234,7 +229,7 @@ export class BasePermissionService<
234
229
  em?: EntityManager
235
230
  ): Promise<Dto['PermissionDtoMapper']> {
236
231
  const permission = await (em ?? this.em).findOneOrFail('Permission', idDto);
237
- return this.#dtoMappers.PermissionDtoMapper.serializeEntityToDto(
232
+ return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(
238
233
  permission as Entities['PermissionDtoMapper']
239
234
  );
240
235
  }
@@ -245,7 +240,7 @@ export class BasePermissionService<
245
240
  ): Promise<Dto['PermissionDtoMapper'][]> {
246
241
  return (await (em ?? this.em).find('Permission', idsDto)).map(
247
242
  (permission) =>
248
- this.#dtoMappers.PermissionDtoMapper.serializeEntityToDto(
243
+ this.#mapperss.PermissionDtoMapper.serializeEntityToDto(
249
244
  permission as Entities['PermissionDtoMapper']
250
245
  )
251
246
  );
@@ -260,7 +255,7 @@ export class BasePermissionService<
260
255
  roles: Entities['RoleDtoMapper'][];
261
256
  }> => {
262
257
  const permission =
263
- this.#dtoMappers.UpdatePermissionDtoMapper.deserializeDtoToEntity(
258
+ this.#mapperss.UpdatePermissionDtoMapper.deserializeDtoToEntity(
264
259
  permissionDto
265
260
  );
266
261
  const addToRoles = permissionDto.addToRolesIds
@@ -295,9 +290,7 @@ export class BasePermissionService<
295
290
  if (!em) {
296
291
  this.em.flush();
297
292
  }
298
- return this.#dtoMappers.PermissionDtoMapper.serializeEntityToDto(
299
- permission
300
- );
293
+ return this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission);
301
294
  }
302
295
 
303
296
  async updateBatchPermissions(
@@ -333,7 +326,7 @@ export class BasePermissionService<
333
326
  });
334
327
 
335
328
  return permissions.map((permission) =>
336
- this.#dtoMappers.PermissionDtoMapper.serializeEntityToDto(permission)
329
+ this.#mapperss.PermissionDtoMapper.serializeEntityToDto(permission)
337
330
  );
338
331
  }
339
332
 
@@ -11,7 +11,7 @@ import {
11
11
  RequestDtoMapperConstructor,
12
12
  ResponseDtoMapperConstructor,
13
13
  transformIntoInternalDtoMapper
14
- } from '@forklaunch/core/dtoMapper';
14
+ } from '@forklaunch/core/mappers';
15
15
  import { MapNestedDtoArraysToCollections } from '@forklaunch/core/services';
16
16
  import {
17
17
  CreateRoleDto,
@@ -55,8 +55,8 @@ export class BaseRoleService<
55
55
  }
56
56
  > implements RoleService
57
57
  {
58
- #dtoMappers: InternalDtoMapper<
59
- InstanceTypeRecord<typeof this.dtoMappers>,
58
+ #mapperss: InternalDtoMapper<
59
+ InstanceTypeRecord<typeof this.mapperss>,
60
60
  Entities,
61
61
  Dto
62
62
  >;
@@ -65,7 +65,7 @@ export class BaseRoleService<
65
65
  public em: EntityManager,
66
66
  protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
67
67
  protected schemaValidator: SchemaValidator,
68
- protected dtoMappers: {
68
+ protected mapperss: {
69
69
  RoleDtoMapper: ResponseDtoMapperConstructor<
70
70
  SchemaValidator,
71
71
  Dto['RoleDtoMapper'],
@@ -83,10 +83,7 @@ export class BaseRoleService<
83
83
  >;
84
84
  }
85
85
  ) {
86
- this.#dtoMappers = transformIntoInternalDtoMapper(
87
- dtoMappers,
88
- schemaValidator
89
- );
86
+ this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
90
87
  }
91
88
 
92
89
  async createRole(
@@ -95,9 +92,9 @@ export class BaseRoleService<
95
92
  ): Promise<Dto['RoleDtoMapper']> {
96
93
  // TODO: Think about removing static method here, since we need specific args
97
94
  const role =
98
- this.#dtoMappers.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
95
+ this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto);
99
96
  await (em ?? this.em).transactional((em) => em.persist(role));
100
- return this.#dtoMappers.RoleDtoMapper.serializeEntityToDto(
97
+ return this.#mapperss.RoleDtoMapper.serializeEntityToDto(
101
98
  role as Entities['RoleDtoMapper']
102
99
  );
103
100
  }
@@ -108,12 +105,12 @@ export class BaseRoleService<
108
105
  ): Promise<Dto['RoleDtoMapper'][]> {
109
106
  const roles = await Promise.all(
110
107
  roleDtos.map(async (roleDto) =>
111
- this.#dtoMappers.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)
108
+ this.#mapperss.CreateRoleDtoMapper.deserializeDtoToEntity(roleDto)
112
109
  )
113
110
  );
114
111
  await (em ?? this.em).transactional((em) => em.persist(roles));
115
112
  return roles.map((role) =>
116
- this.#dtoMappers.RoleDtoMapper.serializeEntityToDto(
113
+ this.#mapperss.RoleDtoMapper.serializeEntityToDto(
117
114
  role as Entities['RoleDtoMapper']
118
115
  )
119
116
  );
@@ -123,7 +120,7 @@ export class BaseRoleService<
123
120
  const role = await (em ?? this.em).findOneOrFail('Role', idDto, {
124
121
  populate: ['id', '*']
125
122
  });
126
- return this.#dtoMappers.RoleDtoMapper.serializeEntityToDto(
123
+ return this.#mapperss.RoleDtoMapper.serializeEntityToDto(
127
124
  role as Entities['RoleDtoMapper']
128
125
  );
129
126
  }
@@ -134,7 +131,7 @@ export class BaseRoleService<
134
131
  populate: ['id', '*']
135
132
  })
136
133
  ).map((role) =>
137
- this.#dtoMappers.RoleDtoMapper.serializeEntityToDto(
134
+ this.#mapperss.RoleDtoMapper.serializeEntityToDto(
138
135
  role as Entities['RoleDtoMapper']
139
136
  )
140
137
  );
@@ -144,13 +141,13 @@ export class BaseRoleService<
144
141
  roleDto: Dto['UpdateRoleDtoMapper'],
145
142
  em?: EntityManager
146
143
  ): Promise<Dto['RoleDtoMapper']> {
147
- let role = this.#dtoMappers.UpdateRoleDtoMapper.deserializeDtoToEntity(
144
+ let role = this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(
148
145
  roleDto
149
146
  ) as Entities['RoleDtoMapper'];
150
147
  await (em ?? this.em).transactional(async (em) => {
151
148
  role = (await em.upsert('Role', role)) as Entities['RoleDtoMapper'];
152
149
  });
153
- return this.#dtoMappers.RoleDtoMapper.serializeEntityToDto(role);
150
+ return this.#mapperss.RoleDtoMapper.serializeEntityToDto(role);
154
151
  }
155
152
 
156
153
  async updateBatchRoles(
@@ -159,14 +156,14 @@ export class BaseRoleService<
159
156
  ): Promise<Dto['RoleDtoMapper'][]> {
160
157
  let roles = await Promise.all(
161
158
  roleDtos.map(async (roleDto) =>
162
- this.#dtoMappers.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)
159
+ this.#mapperss.UpdateRoleDtoMapper.deserializeDtoToEntity(roleDto)
163
160
  )
164
161
  );
165
162
  await (em ?? this.em).transactional(async (em) => {
166
163
  roles = await em.upsertMany('Role', roles);
167
164
  });
168
165
  return roles.map((role) =>
169
- this.#dtoMappers.RoleDtoMapper.serializeEntityToDto(
166
+ this.#mapperss.RoleDtoMapper.serializeEntityToDto(
170
167
  role as Entities['RoleDtoMapper']
171
168
  )
172
169
  );
@@ -10,7 +10,7 @@ import {
10
10
  RequestDtoMapperConstructor,
11
11
  ResponseDtoMapperConstructor,
12
12
  transformIntoInternalDtoMapper
13
- } from '@forklaunch/core/dtoMapper';
13
+ } from '@forklaunch/core/mappers';
14
14
  import {
15
15
  MetricsDefinition,
16
16
  OpenTelemetryCollector
@@ -48,8 +48,8 @@ export class BaseUserService<
48
48
  }
49
49
  > implements UserService
50
50
  {
51
- #dtoMappers: InternalDtoMapper<
52
- InstanceTypeRecord<typeof this.dtoMappers>,
51
+ #mapperss: InternalDtoMapper<
52
+ InstanceTypeRecord<typeof this.mapperss>,
53
53
  Entities,
54
54
  Dto
55
55
  >;
@@ -61,7 +61,7 @@ export class BaseUserService<
61
61
  protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
62
62
  protected openTelemetryCollector: OpenTelemetryCollector<Metrics>,
63
63
  protected schemaValidator: SchemaValidator,
64
- protected dtoMappers: {
64
+ protected mapperss: {
65
65
  UserDtoMapper: ResponseDtoMapperConstructor<
66
66
  SchemaValidator,
67
67
  Dto['UserDtoMapper'],
@@ -87,10 +87,7 @@ export class BaseUserService<
87
87
  >;
88
88
  }
89
89
  ) {
90
- this.#dtoMappers = transformIntoInternalDtoMapper(
91
- dtoMappers,
92
- schemaValidator
93
- );
90
+ this.#mapperss = transformIntoInternalDtoMapper(mapperss, schemaValidator);
94
91
  }
95
92
 
96
93
  async createUser(
@@ -98,14 +95,14 @@ export class BaseUserService<
98
95
  em?: EntityManager
99
96
  ): Promise<Dto['UserDtoMapper']> {
100
97
  const user =
101
- await this.#dtoMappers.CreateUserDtoMapper.deserializeDtoToEntity(
98
+ await this.#mapperss.CreateUserDtoMapper.deserializeDtoToEntity(
102
99
  userDto,
103
100
  this.passwordEncryptionPublicKeyPath
104
101
  );
105
102
  ((await em) ?? this.em).transactional(async (em) => {
106
103
  await em.persist(user);
107
104
  });
108
- return this.#dtoMappers.UserDtoMapper.serializeEntityToDto(user);
105
+ return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
109
106
  }
110
107
 
111
108
  async createBatchUsers(
@@ -114,7 +111,7 @@ export class BaseUserService<
114
111
  ): Promise<Dto['UserDtoMapper'][]> {
115
112
  const users = await Promise.all(
116
113
  userDtos.map(async (createUserDto) =>
117
- this.#dtoMappers.CreateUserDtoMapper.deserializeDtoToEntity(
114
+ this.#mapperss.CreateUserDtoMapper.deserializeDtoToEntity(
118
115
  createUserDto,
119
116
  this.passwordEncryptionPublicKeyPath
120
117
  )
@@ -125,7 +122,7 @@ export class BaseUserService<
125
122
  });
126
123
 
127
124
  return users.map((user) =>
128
- this.#dtoMappers.UserDtoMapper.serializeEntityToDto(user)
125
+ this.#mapperss.UserDtoMapper.serializeEntityToDto(user)
129
126
  );
130
127
  }
131
128
 
@@ -136,7 +133,7 @@ export class BaseUserService<
136
133
  const user = await (em ?? this.em).findOneOrFail('User', idDto, {
137
134
  populate: ['id', '*']
138
135
  });
139
- return this.#dtoMappers.UserDtoMapper.serializeEntityToDto(
136
+ return this.#mapperss.UserDtoMapper.serializeEntityToDto(
140
137
  user as Entities['UserDtoMapper']
141
138
  );
142
139
  }
@@ -150,7 +147,7 @@ export class BaseUserService<
150
147
  populate: ['id', '*']
151
148
  })
152
149
  ).map((user) =>
153
- this.#dtoMappers.UserDtoMapper.serializeEntityToDto(
150
+ this.#mapperss.UserDtoMapper.serializeEntityToDto(
154
151
  user as Entities['UserDtoMapper']
155
152
  )
156
153
  );
@@ -160,14 +157,14 @@ export class BaseUserService<
160
157
  userDto: Dto['UpdateUserDtoMapper'],
161
158
  em?: EntityManager
162
159
  ): Promise<Dto['UserDtoMapper']> {
163
- let user = this.#dtoMappers.UpdateUserDtoMapper.deserializeDtoToEntity(
160
+ let user = this.#mapperss.UpdateUserDtoMapper.deserializeDtoToEntity(
164
161
  userDto,
165
162
  this.passwordEncryptionPublicKeyPath
166
163
  );
167
164
  await (em ?? this.em).transactional(async (localEm) => {
168
165
  user = await localEm.upsert(user);
169
166
  });
170
- return this.#dtoMappers.UserDtoMapper.serializeEntityToDto(user);
167
+ return this.#mapperss.UserDtoMapper.serializeEntityToDto(user);
171
168
  }
172
169
 
173
170
  async updateBatchUsers(
@@ -176,7 +173,7 @@ export class BaseUserService<
176
173
  ): Promise<Dto['UserDtoMapper'][]> {
177
174
  let users = await Promise.all(
178
175
  userDtos.map(async (updateUserDto) =>
179
- this.#dtoMappers.UpdateUserDtoMapper.deserializeDtoToEntity(
176
+ this.#mapperss.UpdateUserDtoMapper.deserializeDtoToEntity(
180
177
  updateUserDto,
181
178
  this.passwordEncryptionPublicKeyPath
182
179
  )
@@ -186,7 +183,7 @@ export class BaseUserService<
186
183
  users = await localEm.upsertMany(users);
187
184
  });
188
185
  return users.map((user) =>
189
- this.#dtoMappers.UserDtoMapper.serializeEntityToDto(user)
186
+ this.#mapperss.UserDtoMapper.serializeEntityToDto(user)
190
187
  );
191
188
  }
192
189
 
@@ -1,4 +1,10 @@
1
- export declare const BaseOrganizationServiceSchemas: <SchemaValidator extends import("@forklaunch/validator").AnySchemaValidator>(schemaValidator: SchemaValidator, uuidId: boolean) => import("@forklaunch/core/dtoMapper").SchemasByValidator<SchemaValidator, (uuidId: boolean) => {
1
+ export declare const BaseOrganizationServiceSchemas: <SchemaValidator extends import("@forklaunch/validator").AnySchemaValidator>(options: {
2
+ uuidId: boolean;
3
+ } & {
4
+ validator: SchemaValidator;
5
+ }) => import("@forklaunch/core/mappers").SchemasByValidator<SchemaValidator, (options: {
6
+ uuidId: boolean;
7
+ }) => {
2
8
  CreateOrganizationSchema: {
3
9
  name: import("@sinclair/typebox").TString;
4
10
  domain: import("@sinclair/typebox").TString;
@@ -50,7 +56,9 @@ export declare const BaseOrganizationServiceSchemas: <SchemaValidator extends im
50
56
  createdAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TDate, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull]>, Date>>;
51
57
  updatedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TDate, import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull]>, Date>>;
52
58
  };
53
- }, (uuidId: boolean) => {
59
+ }, (options: {
60
+ uuidId: boolean;
61
+ }) => {
54
62
  CreateOrganizationSchema: {
55
63
  name: import("zod").ZodString;
56
64
  domain: import("zod").ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"organization.schema.d.ts","sourceRoot":"","sources":["../../schemas/organization.schema.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG1C,CAAC"}
1
+ {"version":3,"file":"organization.schema.d.ts","sourceRoot":"","sources":["../../schemas/organization.schema.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG1C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { serviceSchemaResolver } from '@forklaunch/core/dtoMapper';
1
+ import { serviceSchemaResolver } from '@forklaunch/core/mappers';
2
2
  import { BaseOrganizationServiceSchemas as TypeBoxSchemas } from './typebox/organization.schema';
3
3
  import { BaseOrganizationServiceSchemas as ZodSchemas } from './zod/organization.schema';
4
4
  export const BaseOrganizationServiceSchemas = serviceSchemaResolver(TypeBoxSchemas, ZodSchemas);