@punks/backend-entity-manager 0.0.1 → 0.0.4

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 (153) hide show
  1. package/dist/cjs/index.js +41881 -8256
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/__test__/entity/foo.d.ts +9 -9
  4. package/dist/cjs/types/__test__/providers/typeorm/entity/foo.d.ts +9 -10
  5. package/dist/cjs/types/abstractions/actions.d.ts +12 -12
  6. package/dist/cjs/types/abstractions/adapters.d.ts +8 -0
  7. package/dist/cjs/types/abstractions/commands.d.ts +2 -2
  8. package/dist/cjs/types/abstractions/configuration.d.ts +7 -1
  9. package/dist/cjs/types/abstractions/converters.d.ts +7 -15
  10. package/dist/cjs/types/abstractions/index.d.ts +3 -1
  11. package/dist/cjs/types/abstractions/manager.d.ts +5 -5
  12. package/dist/cjs/types/abstractions/repository.d.ts +1 -0
  13. package/dist/cjs/types/abstractions/searchParameters.d.ts +1 -1
  14. package/dist/cjs/types/actions/create.d.ts +2 -2
  15. package/dist/cjs/types/actions/upsert.d.ts +2 -2
  16. package/dist/cjs/types/commands/create.d.ts +2 -2
  17. package/dist/cjs/types/commands/update.d.ts +2 -2
  18. package/dist/cjs/types/concrete/index.d.ts +13 -13
  19. package/dist/cjs/types/index.d.ts +1 -0
  20. package/dist/cjs/types/integrations/index.d.ts +1 -0
  21. package/dist/cjs/types/integrations/repository/index.d.ts +1 -0
  22. package/dist/cjs/types/integrations/repository/typeorm/index.d.ts +2 -1
  23. package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +22 -0
  24. package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +2 -1
  25. package/dist/cjs/types/ioc/index.d.ts +3 -0
  26. package/dist/cjs/types/models/search.d.ts +1 -0
  27. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +8 -0
  28. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +11 -0
  29. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/converter.d.ts +9 -0
  30. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +20 -0
  31. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/entity.d.ts +6 -0
  32. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/index.d.ts +8 -0
  33. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +7 -0
  34. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/models.d.ts +19 -0
  35. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/query.d.ts +11 -0
  36. package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/repository.d.ts +6 -0
  37. package/dist/cjs/types/platforms/nest/__test__/server/entities/index.d.ts +6 -0
  38. package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +4 -0
  39. package/dist/cjs/types/platforms/nest/__test__/tests/base/test_crud_actions.test.d.ts +1 -0
  40. package/dist/cjs/types/platforms/nest/__test__/tests/base/test_crud_api.test.d.ts +1 -0
  41. package/dist/cjs/types/platforms/nest/__test__/tests/base/test_crud_operations.test.d.ts +1 -0
  42. package/dist/cjs/types/platforms/nest/base/entityActions.d.ts +9 -0
  43. package/dist/cjs/types/platforms/nest/base/entityManager.d.ts +9 -0
  44. package/dist/cjs/types/platforms/nest/base/index.d.ts +1 -0
  45. package/dist/cjs/types/platforms/nest/decorators/actions.d.ts +4 -0
  46. package/dist/cjs/types/platforms/nest/decorators/adapter.d.ts +4 -0
  47. package/dist/cjs/types/platforms/nest/decorators/authorization.d.ts +4 -0
  48. package/dist/cjs/types/platforms/nest/decorators/connector.d.ts +4 -0
  49. package/dist/cjs/types/platforms/nest/decorators/converter.d.ts +4 -0
  50. package/dist/cjs/types/platforms/nest/decorators/entity.d.ts +4 -0
  51. package/dist/cjs/types/platforms/nest/decorators/index.d.ts +9 -0
  52. package/dist/cjs/types/platforms/nest/decorators/manager.d.ts +4 -0
  53. package/dist/cjs/types/platforms/nest/decorators/queryBuilder.d.ts +4 -0
  54. package/dist/cjs/types/platforms/nest/decorators/repository.d.ts +4 -0
  55. package/dist/cjs/types/platforms/nest/decorators/symbols.d.ts +11 -0
  56. package/dist/cjs/types/platforms/nest/index.d.ts +4 -0
  57. package/dist/cjs/types/platforms/nest/integrations/index.d.ts +1 -0
  58. package/dist/cjs/types/platforms/nest/integrations/typeorm/index.d.ts +2 -0
  59. package/dist/cjs/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +7 -0
  60. package/dist/cjs/types/platforms/nest/integrations/typeorm/repository.d.ts +5 -0
  61. package/dist/cjs/types/platforms/nest/ioc/discovery/index.d.ts +102 -0
  62. package/dist/cjs/types/platforms/nest/ioc/index.d.ts +1 -0
  63. package/dist/cjs/types/platforms/nest/ioc/providers.d.ts +2 -0
  64. package/dist/cjs/types/platforms/nest/ioc/registry/index.d.ts +18 -0
  65. package/dist/cjs/types/platforms/nest/module.d.ts +1 -4
  66. package/dist/cjs/types/platforms/nest/processors/index.d.ts +2 -0
  67. package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +16 -0
  68. package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -0
  69. package/dist/cjs/types/providers/services.d.ts +20 -31
  70. package/dist/cjs/types/symbols/ioc.d.ts +2 -6
  71. package/dist/cjs/types/templates/index.d.ts +1 -0
  72. package/dist/cjs/types/templates/queryBuilder.d.ts +11 -0
  73. package/dist/cjs/types/testing/mocks/repository.d.ts +1 -0
  74. package/dist/esm/index.js +41864 -8250
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/types/__test__/entity/foo.d.ts +9 -9
  77. package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +9 -10
  78. package/dist/esm/types/abstractions/actions.d.ts +12 -12
  79. package/dist/esm/types/abstractions/adapters.d.ts +8 -0
  80. package/dist/esm/types/abstractions/commands.d.ts +2 -2
  81. package/dist/esm/types/abstractions/configuration.d.ts +7 -1
  82. package/dist/esm/types/abstractions/converters.d.ts +7 -15
  83. package/dist/esm/types/abstractions/index.d.ts +3 -1
  84. package/dist/esm/types/abstractions/manager.d.ts +5 -5
  85. package/dist/esm/types/abstractions/repository.d.ts +1 -0
  86. package/dist/esm/types/abstractions/searchParameters.d.ts +1 -1
  87. package/dist/esm/types/actions/create.d.ts +2 -2
  88. package/dist/esm/types/actions/upsert.d.ts +2 -2
  89. package/dist/esm/types/commands/create.d.ts +2 -2
  90. package/dist/esm/types/commands/update.d.ts +2 -2
  91. package/dist/esm/types/concrete/index.d.ts +13 -13
  92. package/dist/esm/types/index.d.ts +1 -0
  93. package/dist/esm/types/integrations/index.d.ts +1 -0
  94. package/dist/esm/types/integrations/repository/index.d.ts +1 -0
  95. package/dist/esm/types/integrations/repository/typeorm/index.d.ts +2 -1
  96. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +22 -0
  97. package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +2 -1
  98. package/dist/esm/types/ioc/index.d.ts +3 -0
  99. package/dist/esm/types/models/search.d.ts +1 -0
  100. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +8 -0
  101. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +11 -0
  102. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/converter.d.ts +9 -0
  103. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +20 -0
  104. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/entity.d.ts +6 -0
  105. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/index.d.ts +8 -0
  106. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +7 -0
  107. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/models.d.ts +19 -0
  108. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/query.d.ts +11 -0
  109. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/repository.d.ts +6 -0
  110. package/dist/esm/types/platforms/nest/__test__/server/entities/index.d.ts +6 -0
  111. package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +4 -0
  112. package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_actions.test.d.ts +1 -0
  113. package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_api.test.d.ts +1 -0
  114. package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_operations.test.d.ts +1 -0
  115. package/dist/esm/types/platforms/nest/base/entityActions.d.ts +9 -0
  116. package/dist/esm/types/platforms/nest/base/entityManager.d.ts +9 -0
  117. package/dist/esm/types/platforms/nest/base/index.d.ts +1 -0
  118. package/dist/esm/types/platforms/nest/decorators/actions.d.ts +4 -0
  119. package/dist/esm/types/platforms/nest/decorators/adapter.d.ts +4 -0
  120. package/dist/esm/types/platforms/nest/decorators/authorization.d.ts +4 -0
  121. package/dist/esm/types/platforms/nest/decorators/connector.d.ts +4 -0
  122. package/dist/esm/types/platforms/nest/decorators/converter.d.ts +4 -0
  123. package/dist/esm/types/platforms/nest/decorators/entity.d.ts +4 -0
  124. package/dist/esm/types/platforms/nest/decorators/index.d.ts +9 -0
  125. package/dist/esm/types/platforms/nest/decorators/manager.d.ts +4 -0
  126. package/dist/esm/types/platforms/nest/decorators/queryBuilder.d.ts +4 -0
  127. package/dist/esm/types/platforms/nest/decorators/repository.d.ts +4 -0
  128. package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +11 -0
  129. package/dist/esm/types/platforms/nest/index.d.ts +4 -0
  130. package/dist/esm/types/platforms/nest/integrations/index.d.ts +1 -0
  131. package/dist/esm/types/platforms/nest/integrations/typeorm/index.d.ts +2 -0
  132. package/dist/esm/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +7 -0
  133. package/dist/esm/types/platforms/nest/integrations/typeorm/repository.d.ts +5 -0
  134. package/dist/esm/types/platforms/nest/ioc/discovery/index.d.ts +102 -0
  135. package/dist/esm/types/platforms/nest/ioc/index.d.ts +1 -0
  136. package/dist/esm/types/platforms/nest/ioc/providers.d.ts +2 -0
  137. package/dist/esm/types/platforms/nest/ioc/registry/index.d.ts +18 -0
  138. package/dist/esm/types/platforms/nest/module.d.ts +1 -4
  139. package/dist/esm/types/platforms/nest/processors/index.d.ts +2 -0
  140. package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +16 -0
  141. package/dist/esm/types/platforms/nest/services/index.d.ts +1 -0
  142. package/dist/esm/types/providers/services.d.ts +20 -31
  143. package/dist/esm/types/symbols/ioc.d.ts +2 -6
  144. package/dist/esm/types/templates/index.d.ts +1 -0
  145. package/dist/esm/types/templates/queryBuilder.d.ts +11 -0
  146. package/dist/esm/types/testing/mocks/repository.d.ts +1 -0
  147. package/dist/index.d.ts +237 -94
  148. package/package.json +14 -5
  149. package/readme.md +10 -1
  150. package/dist/cjs/types/platforms/nest/ioc/container/index.d.ts +0 -3
  151. package/dist/cjs/types/platforms/nest/services/manager/index.d.ts +0 -2
  152. package/dist/esm/types/platforms/nest/ioc/container/index.d.ts +0 -3
  153. package/dist/esm/types/platforms/nest/services/manager/index.d.ts +0 -2
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { OnModuleInit } from '@nestjs/common';
1
+ import { Type as Type$1, INestApplicationContext } from '@nestjs/common';
2
+ import { ObjectLiteral, FindOneOptions, FindManyOptions, Repository, ObjectId, FindOptionsWhere, FindOptionsRelations } from 'typeorm';
2
3
 
3
4
  type EnumType = string | number | symbol;
4
5
  type SortingType = EnumType;
@@ -24,7 +25,7 @@ interface ISearchOptions {
24
25
  includeFacets?: boolean;
25
26
  }
26
27
  interface ISearchRequestPaging<TCursor> {
27
- cursor: TCursor;
28
+ cursor?: TCursor;
28
29
  pageSize: number;
29
30
  }
30
31
  interface ISearchSortingField<TSorting> {
@@ -42,6 +43,7 @@ declare enum SortDirection {
42
43
  type EntitiesSearchResultsPaging<TCursor> = {
43
44
  pageIndex: number;
44
45
  pageSize: number;
46
+ totPageItems: number;
45
47
  totPages: number;
46
48
  totItems: number;
47
49
  nextPageCursor?: TCursor;
@@ -55,8 +57,8 @@ type EntitiesSearchResults<TSearchParameters extends IEntitySearchParameters<TSo
55
57
  paging?: EntitiesSearchResultsPaging<TCursor>;
56
58
  };
57
59
 
58
- interface IEntityCreateAction<TEntity, TEntityCreateInput, TEntityDto> {
59
- execute(input: TEntityCreateInput): Promise<TEntityDto>;
60
+ interface IEntityCreateAction<TEntity, TEntityCreateDto, TEntityDto> {
61
+ execute(input: TEntityCreateDto): Promise<TEntityDto>;
60
62
  }
61
63
  interface IEntityDeleteAction<TEntity, TEntityId> {
62
64
  execute(id: TEntityId): Promise<void>;
@@ -64,24 +66,33 @@ interface IEntityDeleteAction<TEntity, TEntityId> {
64
66
  interface IEntityGetAction<TEntity, TEntityId, TEntityDto> {
65
67
  execute(id: TEntityId): Promise<TEntityDto | undefined>;
66
68
  }
67
- interface IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto> {
68
- execute(id: TEntityId, data: TEntityUpdateData): Promise<TEntityDto>;
69
+ interface IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateDto, TEntityDto> {
70
+ execute(id: TEntityId, data: TEntityUpdateDto): Promise<TEntityDto>;
69
71
  }
70
- interface IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto> {
71
- execute(id: TEntityId, input: TEntityUpdateData): Promise<TEntityDto>;
72
+ interface IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateDto, TEntityDto> {
73
+ execute(id: TEntityId, input: TEntityUpdateDto): Promise<TEntityDto>;
72
74
  }
73
75
  interface IEntitiesSearchAction<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets> {
74
76
  execute(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>>;
75
77
  }
76
- interface IEntityActions<TEntity, TEntityId> {
77
- get<TEntityDto>(): IEntityGetAction<TEntity, TEntityId, TEntityDto>;
78
- search<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>;
79
- create<TEntityCreateData, TEntityDto>(): IEntityCreateAction<TEntity, TEntityCreateData, TEntityDto>;
80
- update<TEntityUpdateData, TEntityDto>(): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
81
- upsert<TEntityUpdateData, TEntityDto>(): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
78
+ interface IEntityActions<TEntity, TEntityId, TEntityCreateDto, TEntityUpdateDto, TEntityDto, TEntityListItemDto, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
79
+ get(): IEntityGetAction<TEntity, TEntityId, TEntityDto>;
80
+ search(): IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>;
81
+ create(): IEntityCreateAction<TEntity, TEntityCreateDto, TEntityDto>;
82
+ update(): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateDto, TEntityDto>;
83
+ upsert(): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateDto, TEntityDto>;
82
84
  delete(): IEntityDeleteAction<TEntity, TEntityId>;
83
85
  }
84
86
 
87
+ interface IEntityCreateCommandAdapter<TEntity, TEntityCreateData> {
88
+ createDataToEntity(data: TEntityCreateData): Partial<TEntity>;
89
+ }
90
+ interface IEntityUpdateCommandAdapter<TEntity, TEntityUpdateData> {
91
+ updateDataToEntity(input: TEntityUpdateData): Partial<TEntity>;
92
+ }
93
+ interface IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> extends IEntityCreateCommandAdapter<TEntity, TEntityCreateData>, IEntityUpdateCommandAdapter<TEntity, TEntityUpdateData> {
94
+ }
95
+
85
96
  interface IAuthorizationResult {
86
97
  isAuthorized: boolean;
87
98
  }
@@ -92,8 +103,8 @@ interface IEntityAuthorizationMiddleware<TEntity> {
92
103
  canDelete(entity: Partial<TEntity>): Promise<IAuthorizationResult>;
93
104
  }
94
105
 
95
- interface IEntityCreateCommand<TEntity, TEntityCreateInput> {
96
- execute(input: TEntityCreateInput): Promise<TEntity>;
106
+ interface IEntityCreateCommand<TEntity, TEntityCreateData> {
107
+ execute(input: TEntityCreateData): Promise<TEntity>;
97
108
  }
98
109
  interface IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData> {
99
110
  execute(id: TEntityId, data: TEntityUpdateData): Promise<TEntity>;
@@ -105,6 +116,33 @@ interface IEntityDeleteCommand<TEntity, TEntityId> {
105
116
  execute(id: TEntityId): Promise<void>;
106
117
  }
107
118
 
119
+ interface IResolveServiceOptions {
120
+ optional?: boolean;
121
+ }
122
+ interface IServiceLocator {
123
+ register<T extends ClassType>(name: string, service: Type<T>): void;
124
+ registerEntityService<T>(serviceName: string, entityName: string, service: T): void;
125
+ registerEntityServiceType<T>(serviceType: Type<T>, entityName: string, service: T): void;
126
+ resolve<T extends ClassType>(name: string, options?: IResolveServiceOptions): T;
127
+ resolveEntityService<T>(serviceName: string, entityName: string, options?: IResolveServiceOptions): T;
128
+ resolveEntityServiceType<T>(serviceType: Type<T>, entityName: string, options?: IResolveServiceOptions): T;
129
+ }
130
+
131
+ declare class ServiceLocator implements IServiceLocator {
132
+ private services;
133
+ all(): {
134
+ [key: string]: any;
135
+ };
136
+ register<T>(name: string, service: T): void;
137
+ registerEntityService<T>(serviceName: string, entityName: string, service: T): void;
138
+ registerEntityServiceType<T>(serviceType: Type<T>, entityName: string, service: T): void;
139
+ resolve<T>(name: string, options?: IResolveServiceOptions): T;
140
+ resolveEntityService<T>(serviceName: string, entityName: string, options?: IResolveServiceOptions): T;
141
+ resolveEntityServiceType<T>(serviceType: Type<T>, entityName: string, options?: IResolveServiceOptions): T;
142
+ private buildServiceTypeName;
143
+ private buildServiceName;
144
+ }
145
+
108
146
  interface IEntityMapper<TEntity, TMappedEntity> {
109
147
  mapEntity(entity: TEntity): Promise<TMappedEntity>;
110
148
  }
@@ -139,29 +177,21 @@ interface IEntityConnectorDeleteManager<TEntity, TEntityId> {
139
177
  deleteEntity(entityId: TEntityId): Promise<void>;
140
178
  }
141
179
 
142
- interface IEntitiesSearchConverter<TEntity, TListItemDto> {
180
+ interface IEntitiesSearchActionConverter<TEntity, TListItemDto> {
143
181
  toListItemDto(entity: TEntity): TListItemDto;
144
182
  }
145
- interface IEntityCreateCommandConverter<TEntity, TEntityCreateInput> {
146
- createDtoToEntity(input: TEntityCreateInput): Partial<TEntity>;
147
- }
148
- interface IEntityCreateActionConverter<TEntity, TEntityDto> {
183
+ interface IEntityGetActionConverter<TEntity, TEntityDto> {
149
184
  toEntityDto(entity: TEntity): TEntityDto;
150
185
  }
151
- interface IEntityCreateConverter<TEntity, TEntityCreateInput, TEntityDto> extends IEntityCreateCommandConverter<TEntity, TEntityCreateInput>, IEntityCreateActionConverter<TEntity, TEntityDto> {
152
- }
153
- interface IEntityGetConverter<TEntity, TEntityDto> {
186
+ interface IEntityCreateActionConverter<TEntity, TEntityDto, TEntityCreateDto> {
187
+ createDtoToEntity(data: TEntityCreateDto): Partial<TEntity>;
154
188
  toEntityDto(entity: TEntity): TEntityDto;
155
189
  }
156
- interface IEntityUpdateCommandConverter<TEntity, TEntityUpdateInput> {
157
- updateDtoToEntity(input: TEntityUpdateInput): Partial<TEntity>;
158
- }
159
- interface IEntityUpdateActionConverter<TEntity, TEntityDto> {
190
+ interface IEntityUpdateActionConverter<TEntity, TEntityDto, TEntityUpdateDto> {
160
191
  toEntityDto(entity: TEntity): TEntityDto;
192
+ updateDtoToEntity(data: TEntityUpdateDto): Partial<TEntity>;
161
193
  }
162
- interface IEntityUpdateConverter<TEntity, TEntityUpdateInput, TEntityDto> extends IEntityUpdateCommandConverter<TEntity, TEntityUpdateInput>, IEntityUpdateActionConverter<TEntity, TEntityDto> {
163
- }
164
- interface IEntityConverter<TEntity, TEntityDto = TEntity, TListItemDto = TEntity, TEntityCreateInput = TEntity, TEntityUpdateInput = TEntity> extends IEntitiesSearchConverter<TEntity, TListItemDto>, IEntityCreateCommandConverter<TEntity, TEntityCreateInput>, IEntityCreateActionConverter<TEntity, TEntityDto>, IEntityCreateConverter<TEntity, TEntityCreateInput, TEntityDto>, IEntityGetConverter<TEntity, TEntityDto>, IEntityUpdateCommandConverter<TEntity, TEntityUpdateInput>, IEntityUpdateActionConverter<TEntity, TEntityDto> {
194
+ interface IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> extends IEntitiesSearchActionConverter<TEntity, TListItemDto>, IEntityGetActionConverter<TEntity, TEntityDto>, IEntityCreateActionConverter<TEntity, TEntityDto, TEntityCreateDto>, IEntityUpdateActionConverter<TEntity, TEntityDto, TEntityUpdateDto> {
165
195
  }
166
196
 
167
197
  interface IEntityEventsManager<TEntity, TEntityId> {
@@ -180,12 +210,12 @@ interface IEntitiesQueryBuilder<TEntity, TEntitySearchParameters extends IEntity
180
210
  search(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
181
211
  }
182
212
 
183
- interface IEntityManager<TEntity, TEntityId> {
213
+ interface IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
184
214
  get(): IEntityGetQuery<TEntity, TEntityId>;
185
- search<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
186
- create<TEntityCreateInput>(): IEntityCreateCommand<TEntity, TEntityCreateInput>;
187
- update<TEntityUpdateData>(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
188
- upsert<TEntityUpdateData>(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
215
+ search(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
216
+ create(): IEntityCreateCommand<TEntity, TEntityCreateData>;
217
+ update(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
218
+ upsert(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
189
219
  delete(): IEntityDeleteCommand<TEntity, TEntityId>;
190
220
  }
191
221
 
@@ -197,6 +227,7 @@ interface IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition,
197
227
  all(): Promise<TEntity[]>;
198
228
  find(condition: TFindCondition): Promise<TEntity[]>;
199
229
  findById(id: TEntityId[]): Promise<TEntity[]>;
230
+ count(condition: TFindCondition): Promise<number>;
200
231
  delete(id: TEntityId): Promise<void>;
201
232
  deleteBy(condition: TDeleteCondition): Promise<void>;
202
233
  create(entity: Partial<TEntity>): Promise<TEntity>;
@@ -230,50 +261,22 @@ interface IEntityReplicaSyncManager<TEntity> {
230
261
  syncReplicas(entity: TEntity): Promise<void>;
231
262
  }
232
263
 
233
- interface IResolveServiceOptions {
234
- optional?: boolean;
235
- }
236
- interface IServiceLocator {
237
- register<T extends ClassType>(name: string, service: Type<T>): void;
238
- registerEntityService<T>(serviceName: string, entityName: string, service: T): void;
239
- registerEntityServiceType<T>(serviceType: Type<T>, entityName: string, service: T): void;
240
- resolve<T extends ClassType>(name: string, options?: IResolveServiceOptions): T;
241
- resolveEntityService<T>(serviceName: string, entityName: string, options?: IResolveServiceOptions): T;
242
- resolveEntityServiceType<T>(serviceType: Type<T>, entityName: string, options?: IResolveServiceOptions): T;
243
- }
244
-
245
- declare class ServiceLocator implements IServiceLocator {
246
- private services;
247
- register<T>(name: string, service: T): void;
248
- registerEntityService<T>(serviceName: string, entityName: string, service: T): void;
249
- registerEntityServiceType<T>(serviceType: Type<T>, entityName: string, service: T): void;
250
- resolve<T>(name: string, options?: IResolveServiceOptions): T;
251
- resolveEntityService<T>(serviceName: string, entityName: string, options?: IResolveServiceOptions): T;
252
- resolveEntityServiceType<T>(serviceType: Type<T>, entityName: string, options?: IResolveServiceOptions): T;
253
- private buildServiceTypeName;
254
- private buildServiceName;
255
- }
256
-
257
264
  declare class EntityServiceLocator<TEntity, TEntityId> {
258
265
  private readonly services;
259
266
  private readonly entityName;
260
267
  constructor(services: EntitiesServiceLocator, entityName: string);
261
- resolveEntityManager(): IEntityManager<TEntity, TEntityId>;
262
- resolveEntityActions(): IEntityActions<TEntity, TEntityId>;
268
+ resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
269
+ resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
263
270
  resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
264
271
  resolveEventsManager(): IEntityEventsManager<TEntity, TEntityId>;
265
- resolveReplicaSyncManager<TEntity>(): IEntityReplicaSyncManager<TEntity>;
266
- resolveReplicaConfiguration<TEntity>(): IReplicasConfiguration<TEntity, TEntityId>;
267
- resolveReplicaDeleteManager<TEntity, TEntityId>(): IEntityReplicaDeleteManager<TEntity, TEntityId>;
268
- resolveConnectorSyncManager<TEntity>(): IEntityConnectorSyncManager<TEntity>;
269
- resolveConnectorDeleteManager<TEntity, TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
270
- resolveConnectorsConfiguration<TEntity>(): IConnectorsConfiguration<TEntity>;
271
- resolveCreateCommandConverter<TEntityCreateData>(): IEntityCreateCommandConverter<TEntity, TEntityCreateData> | undefined;
272
- resolveUpdateCommandConverter<TEntityUpdateData>(): IEntityUpdateCommandConverter<TEntity, TEntityUpdateData>;
273
- resolveSearchConverter<TListItemDto>(): IEntitiesSearchConverter<TEntity, TListItemDto> | undefined;
274
- resolveGetConverter<TEntityDto>(): IEntityGetConverter<TEntity, TEntityDto> | undefined;
275
- resolveCreateConverter<TEntityCreateData, TEntityDto>(): IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto> | undefined;
276
- resolveUpdateActionConverter<TEntityDto>(): IEntityUpdateActionConverter<TEntity, TEntityDto> | undefined;
272
+ resolveReplicaSyncManager(): IEntityReplicaSyncManager<TEntity>;
273
+ resolveReplicaConfiguration(): IReplicasConfiguration<TEntity, TEntityId>;
274
+ resolveReplicaDeleteManager<TEntityId>(): IEntityReplicaDeleteManager<TEntity, TEntityId>;
275
+ resolveConnectorSyncManager(): IEntityConnectorSyncManager<TEntity>;
276
+ resolveConnectorDeleteManager<TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
277
+ resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
278
+ resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
279
+ resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
277
280
  resolveAuthorizationMiddleware(): IEntityAuthorizationMiddleware<TEntity> | undefined;
278
281
  resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
279
282
  resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
@@ -294,10 +297,10 @@ declare class EntitiesServiceLocator {
294
297
  private readonly provider;
295
298
  constructor(provider: ServiceLocator);
296
299
  getProvider(): ServiceLocator;
297
- resolveEntityManager<TEntity, TEntityId>(entityName: string): IEntityManager<TEntity, TEntityId>;
298
- registerEntityManager<TEntity, TEntityId>(entityName: string, instance: IEntityManager<TEntity, TEntityId>): void;
299
- resolveEntityActions<TEntity, TEntityId>(entityName: string): IEntityActions<TEntity, TEntityId>;
300
- registerEntityActions<TEntity, TEntityId>(entityName: string, instance: IEntityActions<TEntity, TEntityId>): void;
300
+ resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
301
+ registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
302
+ resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
303
+ registerEntityActions<TEntity>(entityName: string, instance: IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>): void;
301
304
  resolveRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
302
305
  registerRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string, instance: IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>): void;
303
306
  resolveEventsManager<TEntity, TEntityId>(entityName: string): IEntityEventsManager<TEntity, TEntityId>;
@@ -314,18 +317,10 @@ declare class EntitiesServiceLocator {
314
317
  registerConnectorDeleteManager<TEntity, TEntityId>(entityName: string, instance: IEntityConnectorDeleteManager<TEntity, TEntityId>): void;
315
318
  resolveConnectorsConfiguration<TEntity>(entityName: string): IConnectorsConfiguration<TEntity>;
316
319
  registerConnectorsConfiguration<TEntity>(entityName: string, instance: IConnectorsConfiguration<TEntity>): void;
317
- resolveCreateCommandConverter<TEntity, TEntityCreateData>(entityName: string): IEntityCreateCommandConverter<TEntity, TEntityCreateData> | undefined;
318
- registerCreateCommandConverter<TEntity, TEntityCreateData>(entityName: string, instance: IEntityCreateCommandConverter<TEntity, TEntityCreateData>): void;
319
- resolveUpdateCommandConverter<TEntity, TEntityUpdateData>(entityName: string): IEntityUpdateCommandConverter<TEntity, TEntityUpdateData>;
320
- registerUpdateCommandConverter<TEntity, TEntityUpdateData>(entityName: string, instance: IEntityUpdateCommandConverter<TEntity, TEntityUpdateData>): void;
321
- resolveSearchConverter<TEntity, TListItemDto>(entityName: string): IEntitiesSearchConverter<TEntity, TListItemDto> | undefined;
322
- registerSearchConverter<TEntity, TListItemDto>(entityName: string, instance: IEntitiesSearchConverter<TEntity, TListItemDto>): void;
323
- resolveGetConverter<TEntity, TEntityDto>(entityName: string): IEntityGetConverter<TEntity, TEntityDto> | undefined;
324
- registerGetConverter<TEntity, TEntityDto>(entityName: string, instance: IEntityGetConverter<TEntity, TEntityDto>): void;
325
- resolveCreateConverter<TEntity, TEntityCreateData, TEntityDto>(entityName: string): IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto> | undefined;
326
- registerCreateActionConverter<TEntity, TEntityCreateData, TEntityDto>(entityName: string, instance: IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto>): void;
327
- resolveUpdateActionConverter<TEntity, TEntityDto>(entityName: string): IEntityUpdateActionConverter<TEntity, TEntityDto> | undefined;
328
- registerUpdateActionConverter<TEntity, TEntityDto>(entityName: string, instance: IEntityUpdateActionConverter<TEntity, TEntityDto>): void;
320
+ registerAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string, instance: IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>): void;
321
+ resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
322
+ registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
323
+ resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
329
324
  resolveAuthorizationMiddleware<TEntity>(entityName: string): IEntityAuthorizationMiddleware<TEntity> | undefined;
330
325
  registerAuthorizationMiddleware<TEntity>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity>): void;
331
326
  resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
@@ -357,6 +352,9 @@ declare class EntitiesServiceLocator {
357
352
  }
358
353
 
359
354
  interface IEntityManagerServiceRoot {
355
+ locator: ServiceLocator;
356
+ getEntitiesServicesLocator(): EntitiesServiceLocator;
357
+ getEntityServicesLocator<TEntity, TEntityId>(entityName: string): EntityServiceLocator<TEntity, TEntityId>;
360
358
  registerEntity<TEntity, TEntityId, TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>(entityName: string, repository: TRepository): IEntityManagerServiceCollection<TEntity, TEntityId>;
361
359
  }
362
360
  interface IEntityManagerServiceCollection<TEntity, TEntityId> {
@@ -365,6 +363,7 @@ interface IEntityManagerServiceCollection<TEntity, TEntityId> {
365
363
  queryBuilder: TEntitiesQueryBuilder;
366
364
  }): IEntityManagerServiceCollection<TEntity, TEntityId>;
367
365
  addConverter<TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput, TEntityConverter extends IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput>>(converter: TEntityConverter): IEntityManagerServiceCollection<TEntity, TEntityId>;
366
+ addAdapter<TEntityCreateData, TEntityUpdateData, TEntityAdapter extends IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>>(adapter: TEntityAdapter): IEntityManagerServiceCollection<TEntity, TEntityId>;
368
367
  addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity>>({ middleware, }: {
369
368
  middleware: TEntityAuthorizationMiddleware;
370
369
  }): IEntityManagerServiceCollection<TEntity, TEntityId>;
@@ -423,9 +422,153 @@ interface ISearchResultsPaging<TCursor> {
423
422
  prevPageCursor?: TCursor;
424
423
  }
425
424
 
426
- declare class EntityManagerModule implements OnModuleInit {
427
- private readonly logger;
428
- onModuleInit(): void;
425
+ interface EntityAuthMiddlewareProps {
426
+ entityName: string;
427
+ }
428
+ declare const WpEntityAuthMiddleware: (entityName: string, props?: Omit<EntityAuthMiddlewareProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
429
+
430
+ interface EntityActionsProps {
431
+ entityName: string;
432
+ }
433
+ declare const WpEntityActions: (entityName: string, props?: Omit<EntityActionsProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
434
+
435
+ interface EntityConnectorProps {
436
+ entityName: string;
437
+ }
438
+ declare const WpEntityConnector: (entityName: string, props?: Omit<EntityConnectorProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
439
+
440
+ interface EntityConverterProps {
441
+ entityName: string;
442
+ }
443
+ declare const WpEntityConverter: (entityName: string, props?: Omit<EntityConverterProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
444
+
445
+ interface EntityProps {
446
+ name: string;
447
+ }
448
+ declare const WpEntity: (name: string, props?: Omit<EntityProps, "name">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
449
+
450
+ interface EntityRepositoryProps {
451
+ entityName: string;
452
+ }
453
+ declare const WpEntityRepository: (entityName: string, props?: Omit<EntityRepositoryProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
454
+
455
+ interface EntityManagerProps {
456
+ entityName: string;
457
+ }
458
+ declare const WpEntityManager: (entityName: string, props?: Omit<EntityManagerProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
459
+
460
+ interface EntityQueryBuilderProps {
461
+ entityName: string;
462
+ }
463
+ declare const WpEntityQueryBuilder: (entityName: string, props?: Omit<EntityQueryBuilderProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
464
+
465
+ declare const EntityManagerSymbols: {
466
+ Entity: symbol;
467
+ EntityActions: symbol;
468
+ EntityAdapter: symbol;
469
+ EntityAuthMiddleware: symbol;
470
+ EntityRepository: symbol;
471
+ EntityConnector: symbol;
472
+ EntityConverter: symbol;
473
+ EntityManager: symbol;
474
+ EntityQueryBuilder: symbol;
475
+ };
476
+
477
+ interface DiscoveredModule<T = object> {
478
+ name: string;
479
+ instance: T;
480
+ injectType?: Function | Type$1<any>;
481
+ dependencyType: Type$1<T>;
482
+ }
483
+ interface DiscoveredClass extends DiscoveredModule {
484
+ parentModule: DiscoveredModule;
485
+ }
486
+ interface DiscoveredClassWithMeta<T> {
487
+ discoveredClass: DiscoveredClass;
488
+ meta: T;
489
+ }
490
+
491
+ interface EntityAdapterProps {
492
+ entityName: string;
493
+ }
494
+
495
+ declare class EntityManagerRegistry {
496
+ private readonly container;
497
+ getContainer(): IEntityManagerServiceRoot;
498
+ registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, }: {
499
+ entityName: string;
500
+ repository: DiscoveredClassWithMeta<EntityRepositoryProps>;
501
+ converter: DiscoveredClassWithMeta<EntityConverterProps>;
502
+ adapter: DiscoveredClassWithMeta<EntityAdapterProps>;
503
+ queryBuilder: DiscoveredClassWithMeta<EntityQueryBuilderProps>;
504
+ authMiddleware?: DiscoveredClassWithMeta<EntityAuthMiddlewareProps>;
505
+ }): Promise<void>;
506
+ resolveEntityServicesCollection<TEntity>(entityName: string): EntityServiceLocator<TEntity, unknown>;
507
+ }
508
+
509
+ declare abstract class NestEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
510
+ protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
511
+ private managerInstance;
512
+ constructor(entityName: string, registry: EntityManagerRegistry);
513
+ get provider(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters, TSorting, TCursor, TFacets>;
514
+ }
515
+
516
+ declare abstract class QueryBuilderBase<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> implements IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets> {
517
+ abstract search(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
518
+ protected getIndexBasedPagingResult({ paging, totResults, currentPageResults, }: {
519
+ paging?: ISearchRequestPaging<number>;
520
+ totResults: number;
521
+ currentPageResults: number;
522
+ }): EntitiesSearchResultsPaging<number> | undefined;
523
+ }
524
+
525
+ type UpdateCriteria<TEntity extends ObjectLiteral> = string | string[] | number | number[] | Date | Date[] | ObjectId | ObjectId[] | FindOptionsWhere<TEntity>;
526
+ type DeleteCriteria<TEntity extends ObjectLiteral> = string | string[] | number | number[] | Date | Date[] | ObjectId | ObjectId[] | FindOptionsWhere<TEntity>;
527
+ declare class TypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> implements IEntityRepository<TEntity, TEntityId, FindOneOptions<TEntity>, FindManyOptions<TEntity>, UpdateCriteria<TEntity>, DeleteCriteria<TEntity>> {
528
+ protected readonly innerRepository: Repository<TEntity>;
529
+ constructor(innerRepository: Repository<TEntity>);
530
+ exists(id: TEntityId): Promise<boolean>;
531
+ existsBy(condition: FindOneOptions<TEntity>): Promise<boolean>;
532
+ get(id: TEntityId): Promise<TEntity | undefined>;
533
+ getBy(condition: FindOneOptions<TEntity>): Promise<TEntity | undefined>;
534
+ all(): Promise<TEntity[]>;
535
+ count(condition: FindManyOptions<TEntity>): Promise<number>;
536
+ find(condition: FindManyOptions<TEntity>): Promise<TEntity[]>;
537
+ findById(id: TEntityId[]): Promise<TEntity[]>;
538
+ delete(id: TEntityId): Promise<void>;
539
+ deleteBy(condition: DeleteCriteria<TEntity>): Promise<void>;
540
+ create(entity: Partial<TEntity>): Promise<TEntity>;
541
+ update(id: TEntityId, entity: Partial<TEntity>): Promise<TEntity>;
542
+ updateBy(entity: Partial<TEntity>, condition: UpdateCriteria<TEntity>): Promise<TEntity[]>;
543
+ upsert(id: TEntityId, entity: Partial<TEntity>): Promise<TEntity>;
544
+ }
545
+
546
+ declare abstract class TypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets> extends QueryBuilderBase<TEntity, TEntitySearchParameters, TSorting, number, TFacets> {
547
+ private readonly services;
548
+ private repository;
549
+ constructor(services: EntityServiceLocator<TEntity, unknown>);
550
+ search(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, number, TFacets>>;
551
+ protected findPagedQueryResults(request: TEntitySearchParameters): Promise<TEntity[]>;
552
+ protected getRelationsToLoad(request: TEntitySearchParameters): FindOptionsRelations<TEntity> | undefined;
553
+ protected buildPagingParameters(request: TEntitySearchParameters): {
554
+ skip: number | undefined;
555
+ take: number | undefined;
556
+ };
557
+ protected countQueryResults(request: TEntitySearchParameters): Promise<number>;
558
+ protected abstract buildWhereClause(request: TEntitySearchParameters): FindOptionsWhere<TEntity>[] | FindOptionsWhere<TEntity>;
559
+ protected abstract calculateFacets(request: TEntitySearchParameters): Promise<TFacets | undefined>;
560
+ protected getRepository(): TypeOrmRepository<TEntity, unknown>;
561
+ }
562
+
563
+ declare abstract class NestTypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets> extends TypeOrmQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TFacets> {
564
+ constructor(entityName: string, registry: EntityManagerRegistry);
565
+ }
566
+
567
+ declare class NestTypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> extends TypeOrmRepository<TEntity, TEntityId> {
568
+ constructor(repository: Repository<TEntity>);
569
+ }
570
+
571
+ declare class EntityManagerModule {
429
572
  }
430
573
 
431
- export { EntityManagerException, EntityManagerModule, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, FilterExpression, IAuthorizationResult, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchConverter, IEntitiesSearchQuery, IEntityActions, IEntityAuthorizationMiddleware, IEntityConverter, IEntityCreateAction, IEntityCreateActionConverter, IEntityCreateCommand, IEntityCreateCommandConverter, IEntityCreateConverter, IEntityDeleteAction, IEntityDeleteCommand, IEntityEventsManager, IEntityGetAction, IEntityGetConverter, IEntityGetQuery, IEntityManager, IEntityManagerServiceCollection, IEntityManagerServiceRoot, IEntityMapper, IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IEntityRepository, IEntitySearchParameters, IEntitySearchResults, IEntityUpdateAction, IEntityUpdateActionConverter, IEntityUpdateCommand, IEntityUpdateCommandConverter, IEntityUpdateConverter, IEntityUpsertAction, IEntityUpsertCommand, IReplicasConfiguration, ISearchFilters, ISearchOptions, ISearchRequestPaging, ISearchResultsPaging, ISearchSorting, ISearchSortingField, MultipleEntitiesFoundException, ReplicaConfiguration, ReplicaOptions, ReplicationMode, SortDirection };
574
+ export { EntityActionsProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerException, EntityManagerModule, EntityManagerProps, EntityManagerRegistry, EntityManagerSymbols, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, FilterExpression, IAuthorizationResult, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchQuery, IEntityActions, IEntityAdapter, IEntityAuthorizationMiddleware, IEntityConverter, IEntityCreateAction, IEntityCreateCommand, IEntityDeleteAction, IEntityDeleteCommand, IEntityEventsManager, IEntityGetAction, IEntityGetQuery, IEntityManager, IEntityManagerServiceCollection, IEntityManagerServiceRoot, IEntityMapper, IEntityReplicaDeleteManager, IEntityReplicaSyncManager, IEntityRepository, IEntitySearchParameters, IEntitySearchResults, IEntityUpdateAction, IEntityUpdateCommand, IEntityUpsertAction, IEntityUpsertCommand, IReplicasConfiguration, ISearchFilters, ISearchOptions, ISearchRequestPaging, ISearchResultsPaging, ISearchSorting, ISearchSortingField, MultipleEntitiesFoundException, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, QueryBuilderBase, ReplicaConfiguration, ReplicaOptions, ReplicationMode, SortDirection, SortingType, WpEntity, WpEntityActions, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository };
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@punks/backend-entity-manager",
3
- "version": "0.0.1",
3
+ "version": "0.0.4",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
+ "bin": {
8
+ "punks": "dist/run.js"
9
+ },
7
10
  "files": [
8
11
  "dist"
9
12
  ],
@@ -25,12 +28,18 @@
25
28
  "@babel/core": "^7.21.0",
26
29
  "@nestjs/common": "^10.0.5",
27
30
  "@nestjs/core": "^10.0.5",
28
- "@punks/backend-core": "0.0.5",
31
+ "@nestjs/swagger": "^7.1.1",
32
+ "@nestjs/testing": "^10.0.5",
33
+ "@nestjs/typeorm": "^10.0.0",
29
34
  "@rollup/plugin-commonjs": "^21.0.1",
30
35
  "@rollup/plugin-node-resolve": "^13.0.6",
31
36
  "@rollup/plugin-typescript": "^11.0.0",
32
37
  "@types/jest": "^29.5.2",
38
+ "@types/lodash": "^4.14.195",
39
+ "class-transformer": "^0.5.1",
40
+ "class-validator": "^0.14.0",
33
41
  "jest": "^29.4.3",
42
+ "lodash": "^4.17.21",
34
43
  "pg": "^8.11.1",
35
44
  "pg-mem": "^2.6.13",
36
45
  "reflect-metadata": "^0.1.13",
@@ -44,10 +53,10 @@
44
53
  "typeorm": "^0.3.17",
45
54
  "typescript": "^5.1.6"
46
55
  },
47
- "peerDependencies": {
48
- "@punks/backend-core": "0.0.5"
56
+ "peerDependencies": {},
57
+ "dependencies": {
58
+ "@punks/backend-core": "0.0.8"
49
59
  },
50
- "dependencies": {},
51
60
  "jest": {
52
61
  "transform": {
53
62
  ".(ts|tsx)": "ts-jest"
package/readme.md CHANGED
@@ -5,7 +5,7 @@ This library contains the entity manager of the Punks backend.
5
5
  ## Installation
6
6
 
7
7
  ```bash
8
- npm install @punks/backend-entity-manager @punks/backend-core
8
+ npm install @punks/backend-entity-manager @punks/backend-core class-transformer class-validator
9
9
  ```
10
10
 
11
11
  ## Supported ORMs:
@@ -15,3 +15,12 @@ npm install @punks/backend-entity-manager @punks/backend-core
15
15
  ```bash
16
16
  npm install typeorm
17
17
  ```
18
+
19
+ ## Supported platforms:
20
+
21
+ - [NestJS](https://nestjs.com/)
22
+
23
+ ```bash
24
+ # NestJS with TypeORM
25
+ npm install @nestjs/core @nestjs/common @nestjs/typeorm @nestjs/swagger
26
+ ```
@@ -1,3 +0,0 @@
1
- export declare class EntityManagerContainerProvider {
2
- private readonly container;
3
- }
@@ -1,2 +0,0 @@
1
- export declare class EntityManagerService {
2
- }
@@ -1,3 +0,0 @@
1
- export declare class EntityManagerContainerProvider {
2
- private readonly container;
3
- }
@@ -1,2 +0,0 @@
1
- export declare class EntityManagerService {
2
- }