@forklaunch/implementation-iam-base 0.5.0 → 0.5.2

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.
@@ -31,12 +31,40 @@ export class BaseOrganizationService<
31
31
  metrics?: boolean;
32
32
  tracing?: boolean;
33
33
  };
34
+ public em: EntityManager;
35
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
36
+ protected schemaValidator: SchemaValidator;
37
+ protected mappers: {
38
+ OrganizationMapper: ResponseMapperConstructor<
39
+ SchemaValidator,
40
+ MapperDtos['OrganizationMapper'],
41
+ MapperEntities['OrganizationMapper']
42
+ >;
43
+ CreateOrganizationMapper: RequestMapperConstructor<
44
+ SchemaValidator,
45
+ MapperDtos['CreateOrganizationMapper'],
46
+ MapperEntities['CreateOrganizationMapper'],
47
+ (
48
+ dto: MapperDtos['CreateOrganizationMapper'],
49
+ em: EntityManager
50
+ ) => Promise<MapperEntities['CreateOrganizationMapper']>
51
+ >;
52
+ UpdateOrganizationMapper: RequestMapperConstructor<
53
+ SchemaValidator,
54
+ MapperDtos['UpdateOrganizationMapper'],
55
+ MapperEntities['UpdateOrganizationMapper'],
56
+ (
57
+ dto: MapperDtos['UpdateOrganizationMapper'],
58
+ em: EntityManager
59
+ ) => Promise<MapperEntities['UpdateOrganizationMapper']>
60
+ >;
61
+ };
34
62
 
35
63
  constructor(
36
- public em: EntityManager,
37
- protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
38
- protected schemaValidator: SchemaValidator,
39
- protected mappers: {
64
+ em: EntityManager,
65
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
66
+ schemaValidator: SchemaValidator,
67
+ mappers: {
40
68
  OrganizationMapper: ResponseMapperConstructor<
41
69
  SchemaValidator,
42
70
  MapperDtos['OrganizationMapper'],
@@ -65,6 +93,10 @@ export class BaseOrganizationService<
65
93
  telemetry?: TelemetryOptions;
66
94
  }
67
95
  ) {
96
+ this.em = em;
97
+ this.openTelemetryCollector = openTelemetryCollector;
98
+ this.schemaValidator = schemaValidator;
99
+ this.mappers = mappers;
68
100
  this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
69
101
  this.evaluatedTelemetryOptions = options?.telemetry
70
102
  ? evaluateTelemetryOptions(options.telemetry).enabled
@@ -111,7 +143,10 @@ export class BaseOrganizationService<
111
143
 
112
144
  const organization = await (em ?? this.em).findOneOrFail(
113
145
  'Organization',
114
- idDto
146
+ idDto,
147
+ {
148
+ populate: ['id', '*']
149
+ }
115
150
  );
116
151
 
117
152
  return this._mappers.OrganizationMapper.serializeEntityToDto(
@@ -33,13 +33,51 @@ export class BasePermissionService<
33
33
  metrics?: boolean;
34
34
  tracing?: boolean;
35
35
  };
36
+ public em: EntityManager;
37
+ protected roleServiceFactory: () => RoleService;
38
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
39
+ protected schemaValidator: SchemaValidator;
40
+ protected mappers: {
41
+ PermissionMapper: ResponseMapperConstructor<
42
+ SchemaValidator,
43
+ MapperDto['PermissionMapper'],
44
+ MapperEntities['PermissionMapper']
45
+ >;
46
+ CreatePermissionMapper: RequestMapperConstructor<
47
+ SchemaValidator,
48
+ MapperDto['CreatePermissionMapper'],
49
+ MapperEntities['CreatePermissionMapper'],
50
+ (
51
+ dto: MapperDto['CreatePermissionMapper'],
52
+ em: EntityManager
53
+ ) => Promise<MapperEntities['CreatePermissionMapper']>
54
+ >;
55
+ UpdatePermissionMapper: RequestMapperConstructor<
56
+ SchemaValidator,
57
+ MapperDto['UpdatePermissionMapper'],
58
+ MapperEntities['UpdatePermissionMapper'],
59
+ (
60
+ dto: MapperDto['UpdatePermissionMapper'],
61
+ em: EntityManager
62
+ ) => Promise<MapperEntities['UpdatePermissionMapper']>
63
+ >;
64
+ RoleEntityMapper: RequestMapperConstructor<
65
+ SchemaValidator,
66
+ MapperDto['RoleEntityMapper'],
67
+ MapperEntities['RoleEntityMapper'],
68
+ (
69
+ dto: MapperDto['RoleEntityMapper'],
70
+ em: EntityManager
71
+ ) => Promise<MapperEntities['RoleEntityMapper']>
72
+ >;
73
+ };
36
74
 
37
75
  constructor(
38
- public em: EntityManager,
39
- protected roleServiceFactory: () => RoleService,
40
- protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
41
- protected schemaValidator: SchemaValidator,
42
- protected mappers: {
76
+ em: EntityManager,
77
+ roleServiceFactory: () => RoleService,
78
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
79
+ schemaValidator: SchemaValidator,
80
+ mappers: {
43
81
  PermissionMapper: ResponseMapperConstructor<
44
82
  SchemaValidator,
45
83
  MapperDto['PermissionMapper'],
@@ -77,6 +115,11 @@ export class BasePermissionService<
77
115
  telemetry?: TelemetryOptions;
78
116
  }
79
117
  ) {
118
+ this.em = em;
119
+ this.roleServiceFactory = roleServiceFactory;
120
+ this.openTelemetryCollector = openTelemetryCollector;
121
+ this.schemaValidator = schemaValidator;
122
+ this.mappers = mappers;
80
123
  this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
81
124
  this.evaluatedTelemetryOptions = options?.telemetry
82
125
  ? evaluateTelemetryOptions(options.telemetry).enabled
@@ -31,12 +31,40 @@ export class BaseRoleService<
31
31
  metrics?: boolean;
32
32
  tracing?: boolean;
33
33
  };
34
+ public em: EntityManager;
35
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
36
+ protected schemaValidator: SchemaValidator;
37
+ protected mappers: {
38
+ RoleMapper: ResponseMapperConstructor<
39
+ SchemaValidator,
40
+ MapperDto['RoleMapper'],
41
+ MapperEntities['RoleMapper']
42
+ >;
43
+ CreateRoleMapper: RequestMapperConstructor<
44
+ SchemaValidator,
45
+ MapperDto['CreateRoleMapper'],
46
+ MapperEntities['CreateRoleMapper'],
47
+ (
48
+ dto: MapperDto['CreateRoleMapper'],
49
+ em: EntityManager
50
+ ) => Promise<MapperEntities['CreateRoleMapper']>
51
+ >;
52
+ UpdateRoleMapper: RequestMapperConstructor<
53
+ SchemaValidator,
54
+ MapperDto['UpdateRoleMapper'],
55
+ MapperEntities['UpdateRoleMapper'],
56
+ (
57
+ dto: MapperDto['UpdateRoleMapper'],
58
+ em: EntityManager
59
+ ) => Promise<MapperEntities['UpdateRoleMapper']>
60
+ >;
61
+ };
34
62
 
35
63
  constructor(
36
- public em: EntityManager,
37
- protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
38
- protected schemaValidator: SchemaValidator,
39
- protected mappers: {
64
+ em: EntityManager,
65
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
66
+ schemaValidator: SchemaValidator,
67
+ mappers: {
40
68
  RoleMapper: ResponseMapperConstructor<
41
69
  SchemaValidator,
42
70
  MapperDto['RoleMapper'],
@@ -65,6 +93,10 @@ export class BaseRoleService<
65
93
  telemetry?: TelemetryOptions;
66
94
  }
67
95
  ) {
96
+ this.em = em;
97
+ this.openTelemetryCollector = openTelemetryCollector;
98
+ this.schemaValidator = schemaValidator;
99
+ this.mappers = mappers;
68
100
  this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
69
101
  this.evaluatedTelemetryOptions = options?.telemetry
70
102
  ? evaluateTelemetryOptions(options.telemetry).enabled
@@ -36,15 +36,46 @@ export class BaseUserService<
36
36
  metrics?: boolean;
37
37
  tracing?: boolean;
38
38
  };
39
+ public em: EntityManager;
40
+ protected passwordEncryptionPublicKeyPath: string;
41
+ protected roleServiceFactory: () => RoleService;
42
+ protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>;
43
+ protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
44
+ protected schemaValidator: SchemaValidator;
45
+ protected mappers: {
46
+ UserMapper: ResponseMapperConstructor<
47
+ SchemaValidator,
48
+ Dto['UserMapper'],
49
+ Entities['UserMapper']
50
+ >;
51
+ CreateUserMapper: RequestMapperConstructor<
52
+ SchemaValidator,
53
+ Dto['CreateUserMapper'],
54
+ Entities['CreateUserMapper'],
55
+ (
56
+ dto: Dto['CreateUserMapper'],
57
+ em: EntityManager
58
+ ) => Promise<Entities['CreateUserMapper']>
59
+ >;
60
+ UpdateUserMapper: RequestMapperConstructor<
61
+ SchemaValidator,
62
+ Dto['UpdateUserMapper'],
63
+ Entities['UpdateUserMapper'],
64
+ (
65
+ dto: Dto['UpdateUserMapper'],
66
+ em: EntityManager
67
+ ) => Promise<Entities['UpdateUserMapper']>
68
+ >;
69
+ };
39
70
 
40
71
  constructor(
41
- public em: EntityManager,
42
- protected passwordEncryptionPublicKeyPath: string,
43
- protected roleServiceFactory: () => RoleService,
44
- protected organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
45
- protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
46
- protected schemaValidator: SchemaValidator,
47
- protected mappers: {
72
+ em: EntityManager,
73
+ passwordEncryptionPublicKeyPath: string,
74
+ roleServiceFactory: () => RoleService,
75
+ organizationServiceFactory: () => OrganizationService<OrganizationStatus>,
76
+ openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>,
77
+ schemaValidator: SchemaValidator,
78
+ mappers: {
48
79
  UserMapper: ResponseMapperConstructor<
49
80
  SchemaValidator,
50
81
  Dto['UserMapper'],
@@ -73,6 +104,13 @@ export class BaseUserService<
73
104
  telemetry?: TelemetryOptions;
74
105
  }
75
106
  ) {
107
+ this.em = em;
108
+ this.passwordEncryptionPublicKeyPath = passwordEncryptionPublicKeyPath;
109
+ this.roleServiceFactory = roleServiceFactory;
110
+ this.organizationServiceFactory = organizationServiceFactory;
111
+ this.openTelemetryCollector = openTelemetryCollector;
112
+ this.schemaValidator = schemaValidator;
113
+ this.mappers = mappers;
76
114
  this._mappers = transformIntoInternalMapper(mappers, schemaValidator);
77
115
  this.evaluatedTelemetryOptions = options?.telemetry
78
116
  ? evaluateTelemetryOptions(options.telemetry).enabled
@@ -1,7 +1,7 @@
1
1
  import { InstanceTypeRecord, IdDto, IdsDto } from '@forklaunch/common';
2
2
  import { OpenTelemetryCollector, MetricsDefinition, TelemetryOptions } from '@forklaunch/core/http';
3
3
  import { OrganizationService, PermissionService, RoleService, UserService } from '@forklaunch/interfaces-iam/interfaces';
4
- import { ResponseMapperConstructor, RequestMapperConstructor, InternalMapper } from '@forklaunch/internal';
4
+ import { InternalMapper, ResponseMapperConstructor, RequestMapperConstructor } from '@forklaunch/internal';
5
5
  import { AnySchemaValidator } from '@forklaunch/validator';
6
6
  import { EntityManager } from '@mikro-orm/core';
7
7
  import { OrganizationDto, CreateOrganizationDto, UpdateOrganizationDto, PermissionDto, CreatePermissionDto, UpdatePermissionDto, UpdateRoleDto, RoleDto, CreateRoleDto, UserDto, CreateUserDto, UpdateUserDto } from '@forklaunch/interfaces-iam/types';
@@ -52,6 +52,8 @@ type UserEntities = {
52
52
  };
53
53
 
54
54
  declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, MapperEntities extends OrganizationEntities<OrganizationStatus>, MapperDtos extends OrganizationDtos<OrganizationStatus> = OrganizationDtos<OrganizationStatus>> implements OrganizationService<OrganizationStatus> {
55
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
56
+ private evaluatedTelemetryOptions;
55
57
  em: EntityManager;
56
58
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
57
59
  protected schemaValidator: SchemaValidator;
@@ -60,8 +62,6 @@ declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator
60
62
  CreateOrganizationMapper: RequestMapperConstructor<SchemaValidator, MapperDtos['CreateOrganizationMapper'], MapperEntities['CreateOrganizationMapper'], (dto: MapperDtos['CreateOrganizationMapper'], em: EntityManager) => Promise<MapperEntities['CreateOrganizationMapper']>>;
61
63
  UpdateOrganizationMapper: RequestMapperConstructor<SchemaValidator, MapperDtos['UpdateOrganizationMapper'], MapperEntities['UpdateOrganizationMapper'], (dto: MapperDtos['UpdateOrganizationMapper'], em: EntityManager) => Promise<MapperEntities['UpdateOrganizationMapper']>>;
62
64
  };
63
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
64
- private evaluatedTelemetryOptions;
65
65
  constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
66
66
  OrganizationMapper: ResponseMapperConstructor<SchemaValidator, MapperDtos['OrganizationMapper'], MapperEntities['OrganizationMapper']>;
67
67
  CreateOrganizationMapper: RequestMapperConstructor<SchemaValidator, MapperDtos['CreateOrganizationMapper'], MapperEntities['CreateOrganizationMapper'], (dto: MapperDtos['CreateOrganizationMapper'], em: EntityManager) => Promise<MapperEntities['CreateOrganizationMapper']>>;
@@ -76,6 +76,8 @@ declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator
76
76
  }
77
77
 
78
78
  declare class BasePermissionService<SchemaValidator extends AnySchemaValidator, MapperEntities extends PermissionEntities, MapperDto extends PermissionDtos = PermissionDtos> implements PermissionService {
79
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
80
+ private evaluatedTelemetryOptions;
79
81
  em: EntityManager;
80
82
  protected roleServiceFactory: () => RoleService;
81
83
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
@@ -86,8 +88,6 @@ declare class BasePermissionService<SchemaValidator extends AnySchemaValidator,
86
88
  UpdatePermissionMapper: RequestMapperConstructor<SchemaValidator, MapperDto['UpdatePermissionMapper'], MapperEntities['UpdatePermissionMapper'], (dto: MapperDto['UpdatePermissionMapper'], em: EntityManager) => Promise<MapperEntities['UpdatePermissionMapper']>>;
87
89
  RoleEntityMapper: RequestMapperConstructor<SchemaValidator, MapperDto['RoleEntityMapper'], MapperEntities['RoleEntityMapper'], (dto: MapperDto['RoleEntityMapper'], em: EntityManager) => Promise<MapperEntities['RoleEntityMapper']>>;
88
90
  };
89
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
90
- private evaluatedTelemetryOptions;
91
91
  constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
92
92
  PermissionMapper: ResponseMapperConstructor<SchemaValidator, MapperDto['PermissionMapper'], MapperEntities['PermissionMapper']>;
93
93
  CreatePermissionMapper: RequestMapperConstructor<SchemaValidator, MapperDto['CreatePermissionMapper'], MapperEntities['CreatePermissionMapper'], (dto: MapperDto['CreatePermissionMapper'], em: EntityManager) => Promise<MapperEntities['CreatePermissionMapper']>>;
@@ -113,6 +113,8 @@ declare class BasePermissionService<SchemaValidator extends AnySchemaValidator,
113
113
  }
114
114
 
115
115
  declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, MapperEntities extends RoleEntities, MapperDto extends RoleDtos = RoleDtos> implements RoleService {
116
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
117
+ private evaluatedTelemetryOptions;
116
118
  em: EntityManager;
117
119
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
118
120
  protected schemaValidator: SchemaValidator;
@@ -121,8 +123,6 @@ declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Mapper
121
123
  CreateRoleMapper: RequestMapperConstructor<SchemaValidator, MapperDto['CreateRoleMapper'], MapperEntities['CreateRoleMapper'], (dto: MapperDto['CreateRoleMapper'], em: EntityManager) => Promise<MapperEntities['CreateRoleMapper']>>;
122
124
  UpdateRoleMapper: RequestMapperConstructor<SchemaValidator, MapperDto['UpdateRoleMapper'], MapperEntities['UpdateRoleMapper'], (dto: MapperDto['UpdateRoleMapper'], em: EntityManager) => Promise<MapperEntities['UpdateRoleMapper']>>;
123
125
  };
124
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
125
- private evaluatedTelemetryOptions;
126
126
  constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
127
127
  RoleMapper: ResponseMapperConstructor<SchemaValidator, MapperDto['RoleMapper'], MapperEntities['RoleMapper']>;
128
128
  CreateRoleMapper: RequestMapperConstructor<SchemaValidator, MapperDto['CreateRoleMapper'], MapperEntities['CreateRoleMapper'], (dto: MapperDto['CreateRoleMapper'], em: EntityManager) => Promise<MapperEntities['CreateRoleMapper']>>;
@@ -141,6 +141,11 @@ declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Mapper
141
141
  }
142
142
 
143
143
  declare class BaseUserService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Entities extends UserEntities, Dto extends UserDtos = UserDtos> implements UserService {
144
+ readonly options?: {
145
+ telemetry?: TelemetryOptions;
146
+ } | undefined;
147
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
148
+ private evaluatedTelemetryOptions;
144
149
  em: EntityManager;
145
150
  protected passwordEncryptionPublicKeyPath: string;
146
151
  protected roleServiceFactory: () => RoleService;
@@ -152,11 +157,6 @@ declare class BaseUserService<SchemaValidator extends AnySchemaValidator, Organi
152
157
  CreateUserMapper: RequestMapperConstructor<SchemaValidator, Dto['CreateUserMapper'], Entities['CreateUserMapper'], (dto: Dto['CreateUserMapper'], em: EntityManager) => Promise<Entities['CreateUserMapper']>>;
153
158
  UpdateUserMapper: RequestMapperConstructor<SchemaValidator, Dto['UpdateUserMapper'], Entities['UpdateUserMapper'], (dto: Dto['UpdateUserMapper'], em: EntityManager) => Promise<Entities['UpdateUserMapper']>>;
154
159
  };
155
- readonly options?: {
156
- telemetry?: TelemetryOptions;
157
- } | undefined;
158
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
159
- private evaluatedTelemetryOptions;
160
160
  constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
161
161
  UserMapper: ResponseMapperConstructor<SchemaValidator, Dto['UserMapper'], Entities['UserMapper']>;
162
162
  CreateUserMapper: RequestMapperConstructor<SchemaValidator, Dto['CreateUserMapper'], Entities['CreateUserMapper'], (dto: Dto['CreateUserMapper'], em: EntityManager) => Promise<Entities['CreateUserMapper']>>;
@@ -1,7 +1,7 @@
1
1
  import { InstanceTypeRecord, IdDto, IdsDto } from '@forklaunch/common';
2
2
  import { OpenTelemetryCollector, MetricsDefinition, TelemetryOptions } from '@forklaunch/core/http';
3
3
  import { OrganizationService, PermissionService, RoleService, UserService } from '@forklaunch/interfaces-iam/interfaces';
4
- import { ResponseMapperConstructor, RequestMapperConstructor, InternalMapper } from '@forklaunch/internal';
4
+ import { InternalMapper, ResponseMapperConstructor, RequestMapperConstructor } from '@forklaunch/internal';
5
5
  import { AnySchemaValidator } from '@forklaunch/validator';
6
6
  import { EntityManager } from '@mikro-orm/core';
7
7
  import { OrganizationDto, CreateOrganizationDto, UpdateOrganizationDto, PermissionDto, CreatePermissionDto, UpdatePermissionDto, UpdateRoleDto, RoleDto, CreateRoleDto, UserDto, CreateUserDto, UpdateUserDto } from '@forklaunch/interfaces-iam/types';
@@ -52,6 +52,8 @@ type UserEntities = {
52
52
  };
53
53
 
54
54
  declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, MapperEntities extends OrganizationEntities<OrganizationStatus>, MapperDtos extends OrganizationDtos<OrganizationStatus> = OrganizationDtos<OrganizationStatus>> implements OrganizationService<OrganizationStatus> {
55
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
56
+ private evaluatedTelemetryOptions;
55
57
  em: EntityManager;
56
58
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
57
59
  protected schemaValidator: SchemaValidator;
@@ -60,8 +62,6 @@ declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator
60
62
  CreateOrganizationMapper: RequestMapperConstructor<SchemaValidator, MapperDtos['CreateOrganizationMapper'], MapperEntities['CreateOrganizationMapper'], (dto: MapperDtos['CreateOrganizationMapper'], em: EntityManager) => Promise<MapperEntities['CreateOrganizationMapper']>>;
61
63
  UpdateOrganizationMapper: RequestMapperConstructor<SchemaValidator, MapperDtos['UpdateOrganizationMapper'], MapperEntities['UpdateOrganizationMapper'], (dto: MapperDtos['UpdateOrganizationMapper'], em: EntityManager) => Promise<MapperEntities['UpdateOrganizationMapper']>>;
62
64
  };
63
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
64
- private evaluatedTelemetryOptions;
65
65
  constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
66
66
  OrganizationMapper: ResponseMapperConstructor<SchemaValidator, MapperDtos['OrganizationMapper'], MapperEntities['OrganizationMapper']>;
67
67
  CreateOrganizationMapper: RequestMapperConstructor<SchemaValidator, MapperDtos['CreateOrganizationMapper'], MapperEntities['CreateOrganizationMapper'], (dto: MapperDtos['CreateOrganizationMapper'], em: EntityManager) => Promise<MapperEntities['CreateOrganizationMapper']>>;
@@ -76,6 +76,8 @@ declare class BaseOrganizationService<SchemaValidator extends AnySchemaValidator
76
76
  }
77
77
 
78
78
  declare class BasePermissionService<SchemaValidator extends AnySchemaValidator, MapperEntities extends PermissionEntities, MapperDto extends PermissionDtos = PermissionDtos> implements PermissionService {
79
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
80
+ private evaluatedTelemetryOptions;
79
81
  em: EntityManager;
80
82
  protected roleServiceFactory: () => RoleService;
81
83
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
@@ -86,8 +88,6 @@ declare class BasePermissionService<SchemaValidator extends AnySchemaValidator,
86
88
  UpdatePermissionMapper: RequestMapperConstructor<SchemaValidator, MapperDto['UpdatePermissionMapper'], MapperEntities['UpdatePermissionMapper'], (dto: MapperDto['UpdatePermissionMapper'], em: EntityManager) => Promise<MapperEntities['UpdatePermissionMapper']>>;
87
89
  RoleEntityMapper: RequestMapperConstructor<SchemaValidator, MapperDto['RoleEntityMapper'], MapperEntities['RoleEntityMapper'], (dto: MapperDto['RoleEntityMapper'], em: EntityManager) => Promise<MapperEntities['RoleEntityMapper']>>;
88
90
  };
89
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
90
- private evaluatedTelemetryOptions;
91
91
  constructor(em: EntityManager, roleServiceFactory: () => RoleService, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
92
92
  PermissionMapper: ResponseMapperConstructor<SchemaValidator, MapperDto['PermissionMapper'], MapperEntities['PermissionMapper']>;
93
93
  CreatePermissionMapper: RequestMapperConstructor<SchemaValidator, MapperDto['CreatePermissionMapper'], MapperEntities['CreatePermissionMapper'], (dto: MapperDto['CreatePermissionMapper'], em: EntityManager) => Promise<MapperEntities['CreatePermissionMapper']>>;
@@ -113,6 +113,8 @@ declare class BasePermissionService<SchemaValidator extends AnySchemaValidator,
113
113
  }
114
114
 
115
115
  declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, MapperEntities extends RoleEntities, MapperDto extends RoleDtos = RoleDtos> implements RoleService {
116
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
117
+ private evaluatedTelemetryOptions;
116
118
  em: EntityManager;
117
119
  protected openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>;
118
120
  protected schemaValidator: SchemaValidator;
@@ -121,8 +123,6 @@ declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Mapper
121
123
  CreateRoleMapper: RequestMapperConstructor<SchemaValidator, MapperDto['CreateRoleMapper'], MapperEntities['CreateRoleMapper'], (dto: MapperDto['CreateRoleMapper'], em: EntityManager) => Promise<MapperEntities['CreateRoleMapper']>>;
122
124
  UpdateRoleMapper: RequestMapperConstructor<SchemaValidator, MapperDto['UpdateRoleMapper'], MapperEntities['UpdateRoleMapper'], (dto: MapperDto['UpdateRoleMapper'], em: EntityManager) => Promise<MapperEntities['UpdateRoleMapper']>>;
123
125
  };
124
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
125
- private evaluatedTelemetryOptions;
126
126
  constructor(em: EntityManager, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
127
127
  RoleMapper: ResponseMapperConstructor<SchemaValidator, MapperDto['RoleMapper'], MapperEntities['RoleMapper']>;
128
128
  CreateRoleMapper: RequestMapperConstructor<SchemaValidator, MapperDto['CreateRoleMapper'], MapperEntities['CreateRoleMapper'], (dto: MapperDto['CreateRoleMapper'], em: EntityManager) => Promise<MapperEntities['CreateRoleMapper']>>;
@@ -141,6 +141,11 @@ declare class BaseRoleService<SchemaValidator extends AnySchemaValidator, Mapper
141
141
  }
142
142
 
143
143
  declare class BaseUserService<SchemaValidator extends AnySchemaValidator, OrganizationStatus, Entities extends UserEntities, Dto extends UserDtos = UserDtos> implements UserService {
144
+ readonly options?: {
145
+ telemetry?: TelemetryOptions;
146
+ } | undefined;
147
+ protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
148
+ private evaluatedTelemetryOptions;
144
149
  em: EntityManager;
145
150
  protected passwordEncryptionPublicKeyPath: string;
146
151
  protected roleServiceFactory: () => RoleService;
@@ -152,11 +157,6 @@ declare class BaseUserService<SchemaValidator extends AnySchemaValidator, Organi
152
157
  CreateUserMapper: RequestMapperConstructor<SchemaValidator, Dto['CreateUserMapper'], Entities['CreateUserMapper'], (dto: Dto['CreateUserMapper'], em: EntityManager) => Promise<Entities['CreateUserMapper']>>;
153
158
  UpdateUserMapper: RequestMapperConstructor<SchemaValidator, Dto['UpdateUserMapper'], Entities['UpdateUserMapper'], (dto: Dto['UpdateUserMapper'], em: EntityManager) => Promise<Entities['UpdateUserMapper']>>;
154
159
  };
155
- readonly options?: {
156
- telemetry?: TelemetryOptions;
157
- } | undefined;
158
- protected _mappers: InternalMapper<InstanceTypeRecord<typeof this.mappers>>;
159
- private evaluatedTelemetryOptions;
160
160
  constructor(em: EntityManager, passwordEncryptionPublicKeyPath: string, roleServiceFactory: () => RoleService, organizationServiceFactory: () => OrganizationService<OrganizationStatus>, openTelemetryCollector: OpenTelemetryCollector<MetricsDefinition>, schemaValidator: SchemaValidator, mappers: {
161
161
  UserMapper: ResponseMapperConstructor<SchemaValidator, Dto['UserMapper'], Entities['UserMapper']>;
162
162
  CreateUserMapper: RequestMapperConstructor<SchemaValidator, Dto['CreateUserMapper'], Entities['CreateUserMapper'], (dto: Dto['CreateUserMapper'], em: EntityManager) => Promise<Entities['CreateUserMapper']>>;
@@ -31,6 +31,12 @@ module.exports = __toCommonJS(services_exports);
31
31
  var import_http = require("@forklaunch/core/http");
32
32
  var import_internal = require("@forklaunch/internal");
33
33
  var BaseOrganizationService = class {
34
+ _mappers;
35
+ evaluatedTelemetryOptions;
36
+ em;
37
+ openTelemetryCollector;
38
+ schemaValidator;
39
+ mappers;
34
40
  constructor(em, openTelemetryCollector, schemaValidator, mappers, options) {
35
41
  this.em = em;
36
42
  this.openTelemetryCollector = openTelemetryCollector;
@@ -43,8 +49,6 @@ var BaseOrganizationService = class {
43
49
  tracing: false
44
50
  };
45
51
  }
46
- _mappers;
47
- evaluatedTelemetryOptions;
48
52
  async createOrganization(organizationDto, em) {
49
53
  if (this.evaluatedTelemetryOptions.logging) {
50
54
  this.openTelemetryCollector.info(
@@ -69,7 +73,10 @@ var BaseOrganizationService = class {
69
73
  }
70
74
  const organization = await (em ?? this.em).findOneOrFail(
71
75
  "Organization",
72
- idDto
76
+ idDto,
77
+ {
78
+ populate: ["id", "*"]
79
+ }
73
80
  );
74
81
  return this._mappers.OrganizationMapper.serializeEntityToDto(
75
82
  organization
@@ -111,6 +118,13 @@ var BaseOrganizationService = class {
111
118
  var import_http2 = require("@forklaunch/core/http");
112
119
  var import_internal2 = require("@forklaunch/internal");
113
120
  var BasePermissionService = class {
121
+ _mappers;
122
+ evaluatedTelemetryOptions;
123
+ em;
124
+ roleServiceFactory;
125
+ openTelemetryCollector;
126
+ schemaValidator;
127
+ mappers;
114
128
  constructor(em, roleServiceFactory, openTelemetryCollector, schemaValidator, mappers, options) {
115
129
  this.em = em;
116
130
  this.roleServiceFactory = roleServiceFactory;
@@ -124,8 +138,6 @@ var BasePermissionService = class {
124
138
  tracing: false
125
139
  };
126
140
  }
127
- _mappers;
128
- evaluatedTelemetryOptions;
129
141
  // start: global helper functions
130
142
  async updateRolesWithPermissions(roles, permissions) {
131
143
  return Promise.all(
@@ -354,6 +366,12 @@ var BasePermissionService = class {
354
366
  var import_http3 = require("@forklaunch/core/http");
355
367
  var import_internal3 = require("@forklaunch/internal");
356
368
  var BaseRoleService = class {
369
+ _mappers;
370
+ evaluatedTelemetryOptions;
371
+ em;
372
+ openTelemetryCollector;
373
+ schemaValidator;
374
+ mappers;
357
375
  constructor(em, openTelemetryCollector, schemaValidator, mappers, options) {
358
376
  this.em = em;
359
377
  this.openTelemetryCollector = openTelemetryCollector;
@@ -366,8 +384,6 @@ var BaseRoleService = class {
366
384
  tracing: false
367
385
  };
368
386
  }
369
- _mappers;
370
- evaluatedTelemetryOptions;
371
387
  async createRole(roleDto, em) {
372
388
  if (this.evaluatedTelemetryOptions.logging) {
373
389
  this.openTelemetryCollector.info("Creating role", roleDto);
@@ -494,6 +510,7 @@ var import_http4 = require("@forklaunch/core/http");
494
510
  var import_internal4 = require("@forklaunch/internal");
495
511
  var BaseUserService = class {
496
512
  constructor(em, passwordEncryptionPublicKeyPath, roleServiceFactory, organizationServiceFactory, openTelemetryCollector, schemaValidator, mappers, options) {
513
+ this.options = options;
497
514
  this.em = em;
498
515
  this.passwordEncryptionPublicKeyPath = passwordEncryptionPublicKeyPath;
499
516
  this.roleServiceFactory = roleServiceFactory;
@@ -501,7 +518,6 @@ var BaseUserService = class {
501
518
  this.openTelemetryCollector = openTelemetryCollector;
502
519
  this.schemaValidator = schemaValidator;
503
520
  this.mappers = mappers;
504
- this.options = options;
505
521
  this._mappers = (0, import_internal4.transformIntoInternalMapper)(mappers, schemaValidator);
506
522
  this.evaluatedTelemetryOptions = options?.telemetry ? (0, import_http4.evaluateTelemetryOptions)(options.telemetry).enabled : {
507
523
  logging: false,
@@ -511,6 +527,13 @@ var BaseUserService = class {
511
527
  }
512
528
  _mappers;
513
529
  evaluatedTelemetryOptions;
530
+ em;
531
+ passwordEncryptionPublicKeyPath;
532
+ roleServiceFactory;
533
+ organizationServiceFactory;
534
+ openTelemetryCollector;
535
+ schemaValidator;
536
+ mappers;
514
537
  async createUser(userDto, em) {
515
538
  if (this.evaluatedTelemetryOptions.logging) {
516
539
  this.openTelemetryCollector.info("Creating user", userDto);
@@ -6,6 +6,12 @@ import {
6
6
  transformIntoInternalMapper
7
7
  } from "@forklaunch/internal";
8
8
  var BaseOrganizationService = class {
9
+ _mappers;
10
+ evaluatedTelemetryOptions;
11
+ em;
12
+ openTelemetryCollector;
13
+ schemaValidator;
14
+ mappers;
9
15
  constructor(em, openTelemetryCollector, schemaValidator, mappers, options) {
10
16
  this.em = em;
11
17
  this.openTelemetryCollector = openTelemetryCollector;
@@ -18,8 +24,6 @@ var BaseOrganizationService = class {
18
24
  tracing: false
19
25
  };
20
26
  }
21
- _mappers;
22
- evaluatedTelemetryOptions;
23
27
  async createOrganization(organizationDto, em) {
24
28
  if (this.evaluatedTelemetryOptions.logging) {
25
29
  this.openTelemetryCollector.info(
@@ -44,7 +48,10 @@ var BaseOrganizationService = class {
44
48
  }
45
49
  const organization = await (em ?? this.em).findOneOrFail(
46
50
  "Organization",
47
- idDto
51
+ idDto,
52
+ {
53
+ populate: ["id", "*"]
54
+ }
48
55
  );
49
56
  return this._mappers.OrganizationMapper.serializeEntityToDto(
50
57
  organization
@@ -90,6 +97,13 @@ import {
90
97
  transformIntoInternalMapper as transformIntoInternalMapper2
91
98
  } from "@forklaunch/internal";
92
99
  var BasePermissionService = class {
100
+ _mappers;
101
+ evaluatedTelemetryOptions;
102
+ em;
103
+ roleServiceFactory;
104
+ openTelemetryCollector;
105
+ schemaValidator;
106
+ mappers;
93
107
  constructor(em, roleServiceFactory, openTelemetryCollector, schemaValidator, mappers, options) {
94
108
  this.em = em;
95
109
  this.roleServiceFactory = roleServiceFactory;
@@ -103,8 +117,6 @@ var BasePermissionService = class {
103
117
  tracing: false
104
118
  };
105
119
  }
106
- _mappers;
107
- evaluatedTelemetryOptions;
108
120
  // start: global helper functions
109
121
  async updateRolesWithPermissions(roles, permissions) {
110
122
  return Promise.all(
@@ -337,6 +349,12 @@ import {
337
349
  transformIntoInternalMapper as transformIntoInternalMapper3
338
350
  } from "@forklaunch/internal";
339
351
  var BaseRoleService = class {
352
+ _mappers;
353
+ evaluatedTelemetryOptions;
354
+ em;
355
+ openTelemetryCollector;
356
+ schemaValidator;
357
+ mappers;
340
358
  constructor(em, openTelemetryCollector, schemaValidator, mappers, options) {
341
359
  this.em = em;
342
360
  this.openTelemetryCollector = openTelemetryCollector;
@@ -349,8 +367,6 @@ var BaseRoleService = class {
349
367
  tracing: false
350
368
  };
351
369
  }
352
- _mappers;
353
- evaluatedTelemetryOptions;
354
370
  async createRole(roleDto, em) {
355
371
  if (this.evaluatedTelemetryOptions.logging) {
356
372
  this.openTelemetryCollector.info("Creating role", roleDto);
@@ -481,6 +497,7 @@ import {
481
497
  } from "@forklaunch/internal";
482
498
  var BaseUserService = class {
483
499
  constructor(em, passwordEncryptionPublicKeyPath, roleServiceFactory, organizationServiceFactory, openTelemetryCollector, schemaValidator, mappers, options) {
500
+ this.options = options;
484
501
  this.em = em;
485
502
  this.passwordEncryptionPublicKeyPath = passwordEncryptionPublicKeyPath;
486
503
  this.roleServiceFactory = roleServiceFactory;
@@ -488,7 +505,6 @@ var BaseUserService = class {
488
505
  this.openTelemetryCollector = openTelemetryCollector;
489
506
  this.schemaValidator = schemaValidator;
490
507
  this.mappers = mappers;
491
- this.options = options;
492
508
  this._mappers = transformIntoInternalMapper4(mappers, schemaValidator);
493
509
  this.evaluatedTelemetryOptions = options?.telemetry ? evaluateTelemetryOptions4(options.telemetry).enabled : {
494
510
  logging: false,
@@ -498,6 +514,13 @@ var BaseUserService = class {
498
514
  }
499
515
  _mappers;
500
516
  evaluatedTelemetryOptions;
517
+ em;
518
+ passwordEncryptionPublicKeyPath;
519
+ roleServiceFactory;
520
+ organizationServiceFactory;
521
+ openTelemetryCollector;
522
+ schemaValidator;
523
+ mappers;
501
524
  async createUser(userDto, em) {
502
525
  if (this.evaluatedTelemetryOptions.logging) {
503
526
  this.openTelemetryCollector.info("Creating user", userDto);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forklaunch/implementation-iam-base",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "Billing basic implementation for forklaunch",
5
5
  "homepage": "https://github.com/forklaunch/forklaunch-js#readme",
6
6
  "bugs": {
@@ -36,21 +36,21 @@
36
36
  "lib/**"
37
37
  ],
38
38
  "dependencies": {
39
- "@forklaunch/common": "^0.4.6",
40
- "@forklaunch/core": "^0.12.0",
41
- "@forklaunch/internal": "^0.1.9",
42
- "@forklaunch/validator": "^0.8.0",
39
+ "@forklaunch/common": "^0.5.0",
40
+ "@forklaunch/core": "^0.13.0",
41
+ "@forklaunch/internal": "^0.2.0",
42
+ "@forklaunch/validator": "^0.9.0",
43
43
  "@mikro-orm/core": "^6.4.16",
44
- "@sinclair/typebox": "^0.34.38",
44
+ "@sinclair/typebox": "^0.34.40",
45
45
  "ajv": "^8.17.1",
46
- "zod": "^4.0.14",
47
- "@forklaunch/interfaces-iam": "0.5.0"
46
+ "zod": "^4.0.17",
47
+ "@forklaunch/interfaces-iam": "0.5.1"
48
48
  },
49
49
  "devDependencies": {
50
- "@typescript/native-preview": "7.0.0-dev.20250803.1",
50
+ "@typescript/native-preview": "7.0.0-dev.20250820.1",
51
51
  "depcheck": "^1.4.7",
52
52
  "prettier": "^3.6.2",
53
- "typedoc": "^0.28.9"
53
+ "typedoc": "^0.28.10"
54
54
  },
55
55
  "scripts": {
56
56
  "build": "tsc --noEmit && tsup domain/schemas/index.ts services/index.ts domain/types/index.ts --format cjs,esm --no-splitting --dts --tsconfig tsconfig.json --out-dir lib --clean && if [ -f eject-package.bash ]; then pnpm package:eject; fi",