@punks/backend-entity-manager 0.0.1

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 (135) hide show
  1. package/dist/cjs/index.js +15184 -0
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/cjs/types/__test__/base/test-actions-plain.test.d.ts +1 -0
  4. package/dist/cjs/types/__test__/base/test-actions-with-converters.test.d.ts +1 -0
  5. package/dist/cjs/types/__test__/base/test-default-entity-manager.test.d.ts +1 -0
  6. package/dist/cjs/types/__test__/entity/foo.d.ts +72 -0
  7. package/dist/cjs/types/__test__/providers/typeorm/entity/foo.d.ts +73 -0
  8. package/dist/cjs/types/__test__/providers/typeorm/mock/index.d.ts +7 -0
  9. package/dist/cjs/types/__test__/providers/typeorm/test-typeorm-actions.test.d.ts +1 -0
  10. package/dist/cjs/types/abstractions/actions.d.ts +29 -0
  11. package/dist/cjs/types/abstractions/authorization.d.ts +9 -0
  12. package/dist/cjs/types/abstractions/commands.d.ts +12 -0
  13. package/dist/cjs/types/abstractions/common.d.ts +11 -0
  14. package/dist/cjs/types/abstractions/configuration.d.ts +34 -0
  15. package/dist/cjs/types/abstractions/connectors.d.ts +30 -0
  16. package/dist/cjs/types/abstractions/converters.d.ts +24 -0
  17. package/dist/cjs/types/abstractions/errors.d.ts +24 -0
  18. package/dist/cjs/types/abstractions/events.d.ts +5 -0
  19. package/dist/cjs/types/abstractions/filters.d.ts +1 -0
  20. package/dist/cjs/types/abstractions/index.d.ts +15 -0
  21. package/dist/cjs/types/abstractions/ioc.d.ts +12 -0
  22. package/dist/cjs/types/abstractions/manager.d.ts +12 -0
  23. package/dist/cjs/types/abstractions/mappers.d.ts +3 -0
  24. package/dist/cjs/types/abstractions/queries.d.ts +12 -0
  25. package/dist/cjs/types/abstractions/replication.d.ts +25 -0
  26. package/dist/cjs/types/abstractions/repository.d.ts +15 -0
  27. package/dist/cjs/types/abstractions/searchParameters.d.ts +26 -0
  28. package/dist/cjs/types/abstractions/searchResults.d.ts +16 -0
  29. package/dist/cjs/types/actions/create.d.ts +8 -0
  30. package/dist/cjs/types/actions/delete.d.ts +7 -0
  31. package/dist/cjs/types/actions/get.d.ts +7 -0
  32. package/dist/cjs/types/actions/search.d.ts +10 -0
  33. package/dist/cjs/types/actions/update.d.ts +7 -0
  34. package/dist/cjs/types/actions/upsert.d.ts +7 -0
  35. package/dist/cjs/types/authorization/allowAll.d.ts +13 -0
  36. package/dist/cjs/types/commands/create.d.ts +9 -0
  37. package/dist/cjs/types/commands/delete.d.ts +8 -0
  38. package/dist/cjs/types/commands/update.d.ts +9 -0
  39. package/dist/cjs/types/commands/upsert.d.ts +10 -0
  40. package/dist/cjs/types/concrete/index.d.ts +27 -0
  41. package/dist/cjs/types/configuration/connectors.d.ts +8 -0
  42. package/dist/cjs/types/configuration/index.d.ts +1 -0
  43. package/dist/cjs/types/configuration/replicas.d.ts +8 -0
  44. package/dist/cjs/types/configuration/root.d.ts +2 -0
  45. package/dist/cjs/types/decorators/decorators.test.d.ts +2 -0
  46. package/dist/cjs/types/decorators/index.d.ts +3 -0
  47. package/dist/cjs/types/index.d.ts +2 -0
  48. package/dist/cjs/types/integrations/repository/typeorm/index.d.ts +1 -0
  49. package/dist/cjs/types/integrations/repository/typeorm/repository.d.ts +22 -0
  50. package/dist/cjs/types/ioc/index.d.ts +13 -0
  51. package/dist/cjs/types/models/index.d.ts +1 -0
  52. package/dist/cjs/types/models/search.d.ts +17 -0
  53. package/dist/cjs/types/platforms/index.d.ts +1 -0
  54. package/dist/cjs/types/platforms/nest/index.d.ts +1 -0
  55. package/dist/cjs/types/platforms/nest/ioc/container/index.d.ts +3 -0
  56. package/dist/cjs/types/platforms/nest/module.d.ts +5 -0
  57. package/dist/cjs/types/platforms/nest/services/manager/index.d.ts +2 -0
  58. package/dist/cjs/types/providers/services.d.ts +114 -0
  59. package/dist/cjs/types/queries/get.d.ts +8 -0
  60. package/dist/cjs/types/queries/search.d.ts +10 -0
  61. package/dist/cjs/types/reflection/index.d.ts +1 -0
  62. package/dist/cjs/types/services/connectors.d.ts +13 -0
  63. package/dist/cjs/types/services/events.d.ts +9 -0
  64. package/dist/cjs/types/services/replication.d.ts +12 -0
  65. package/dist/cjs/types/symbols/ioc.d.ts +54 -0
  66. package/dist/cjs/types/testing/mocks/repository.d.ts +20 -0
  67. package/dist/esm/index.js +15170 -0
  68. package/dist/esm/index.js.map +1 -0
  69. package/dist/esm/types/__test__/base/test-actions-plain.test.d.ts +1 -0
  70. package/dist/esm/types/__test__/base/test-actions-with-converters.test.d.ts +1 -0
  71. package/dist/esm/types/__test__/base/test-default-entity-manager.test.d.ts +1 -0
  72. package/dist/esm/types/__test__/entity/foo.d.ts +72 -0
  73. package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +73 -0
  74. package/dist/esm/types/__test__/providers/typeorm/mock/index.d.ts +7 -0
  75. package/dist/esm/types/__test__/providers/typeorm/test-typeorm-actions.test.d.ts +1 -0
  76. package/dist/esm/types/abstractions/actions.d.ts +29 -0
  77. package/dist/esm/types/abstractions/authorization.d.ts +9 -0
  78. package/dist/esm/types/abstractions/commands.d.ts +12 -0
  79. package/dist/esm/types/abstractions/common.d.ts +11 -0
  80. package/dist/esm/types/abstractions/configuration.d.ts +34 -0
  81. package/dist/esm/types/abstractions/connectors.d.ts +30 -0
  82. package/dist/esm/types/abstractions/converters.d.ts +24 -0
  83. package/dist/esm/types/abstractions/errors.d.ts +24 -0
  84. package/dist/esm/types/abstractions/events.d.ts +5 -0
  85. package/dist/esm/types/abstractions/filters.d.ts +1 -0
  86. package/dist/esm/types/abstractions/index.d.ts +15 -0
  87. package/dist/esm/types/abstractions/ioc.d.ts +12 -0
  88. package/dist/esm/types/abstractions/manager.d.ts +12 -0
  89. package/dist/esm/types/abstractions/mappers.d.ts +3 -0
  90. package/dist/esm/types/abstractions/queries.d.ts +12 -0
  91. package/dist/esm/types/abstractions/replication.d.ts +25 -0
  92. package/dist/esm/types/abstractions/repository.d.ts +15 -0
  93. package/dist/esm/types/abstractions/searchParameters.d.ts +26 -0
  94. package/dist/esm/types/abstractions/searchResults.d.ts +16 -0
  95. package/dist/esm/types/actions/create.d.ts +8 -0
  96. package/dist/esm/types/actions/delete.d.ts +7 -0
  97. package/dist/esm/types/actions/get.d.ts +7 -0
  98. package/dist/esm/types/actions/search.d.ts +10 -0
  99. package/dist/esm/types/actions/update.d.ts +7 -0
  100. package/dist/esm/types/actions/upsert.d.ts +7 -0
  101. package/dist/esm/types/authorization/allowAll.d.ts +13 -0
  102. package/dist/esm/types/commands/create.d.ts +9 -0
  103. package/dist/esm/types/commands/delete.d.ts +8 -0
  104. package/dist/esm/types/commands/update.d.ts +9 -0
  105. package/dist/esm/types/commands/upsert.d.ts +10 -0
  106. package/dist/esm/types/concrete/index.d.ts +27 -0
  107. package/dist/esm/types/configuration/connectors.d.ts +8 -0
  108. package/dist/esm/types/configuration/index.d.ts +1 -0
  109. package/dist/esm/types/configuration/replicas.d.ts +8 -0
  110. package/dist/esm/types/configuration/root.d.ts +2 -0
  111. package/dist/esm/types/decorators/decorators.test.d.ts +2 -0
  112. package/dist/esm/types/decorators/index.d.ts +3 -0
  113. package/dist/esm/types/index.d.ts +2 -0
  114. package/dist/esm/types/integrations/repository/typeorm/index.d.ts +1 -0
  115. package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +22 -0
  116. package/dist/esm/types/ioc/index.d.ts +13 -0
  117. package/dist/esm/types/models/index.d.ts +1 -0
  118. package/dist/esm/types/models/search.d.ts +17 -0
  119. package/dist/esm/types/platforms/index.d.ts +1 -0
  120. package/dist/esm/types/platforms/nest/index.d.ts +1 -0
  121. package/dist/esm/types/platforms/nest/ioc/container/index.d.ts +3 -0
  122. package/dist/esm/types/platforms/nest/module.d.ts +5 -0
  123. package/dist/esm/types/platforms/nest/services/manager/index.d.ts +2 -0
  124. package/dist/esm/types/providers/services.d.ts +114 -0
  125. package/dist/esm/types/queries/get.d.ts +8 -0
  126. package/dist/esm/types/queries/search.d.ts +10 -0
  127. package/dist/esm/types/reflection/index.d.ts +1 -0
  128. package/dist/esm/types/services/connectors.d.ts +13 -0
  129. package/dist/esm/types/services/events.d.ts +9 -0
  130. package/dist/esm/types/services/replication.d.ts +12 -0
  131. package/dist/esm/types/symbols/ioc.d.ts +54 -0
  132. package/dist/esm/types/testing/mocks/repository.d.ts +20 -0
  133. package/dist/index.d.ts +431 -0
  134. package/package.json +62 -0
  135. package/readme.md +17 -0
@@ -0,0 +1,431 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+
3
+ type EnumType = string | number | symbol;
4
+ type SortingType = EnumType;
5
+ interface ClassType {
6
+ new (...args: any[]): any;
7
+ constructor: {
8
+ name: string;
9
+ };
10
+ }
11
+ interface Type<T = any> extends Function {
12
+ new (...args: any[]): T;
13
+ }
14
+
15
+ interface IEntitySearchParameters<TSorting, TCursor> {
16
+ filters?: ISearchFilters;
17
+ sorting?: ISearchSorting<TSorting>;
18
+ paging?: ISearchRequestPaging<TCursor>;
19
+ options?: ISearchOptions;
20
+ }
21
+ interface ISearchFilters {
22
+ }
23
+ interface ISearchOptions {
24
+ includeFacets?: boolean;
25
+ }
26
+ interface ISearchRequestPaging<TCursor> {
27
+ cursor: TCursor;
28
+ pageSize: number;
29
+ }
30
+ interface ISearchSortingField<TSorting> {
31
+ field: TSorting;
32
+ direction: SortDirection;
33
+ }
34
+ interface ISearchSorting<TSorting> {
35
+ fields: ISearchSortingField<TSorting>[];
36
+ }
37
+ declare enum SortDirection {
38
+ Asc = 0,
39
+ Desc = 1
40
+ }
41
+
42
+ type EntitiesSearchResultsPaging<TCursor> = {
43
+ pageIndex: number;
44
+ pageSize: number;
45
+ totPages: number;
46
+ totItems: number;
47
+ nextPageCursor?: TCursor;
48
+ currentPageCursor?: TCursor;
49
+ prevPageCursor?: TCursor;
50
+ };
51
+ type EntitiesSearchResults<TSearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TResult, TSorting extends SortingType, TCursor, TFacets> = {
52
+ request: TSearchParameters;
53
+ items: TResult[];
54
+ facets?: TFacets;
55
+ paging?: EntitiesSearchResultsPaging<TCursor>;
56
+ };
57
+
58
+ interface IEntityCreateAction<TEntity, TEntityCreateInput, TEntityDto> {
59
+ execute(input: TEntityCreateInput): Promise<TEntityDto>;
60
+ }
61
+ interface IEntityDeleteAction<TEntity, TEntityId> {
62
+ execute(id: TEntityId): Promise<void>;
63
+ }
64
+ interface IEntityGetAction<TEntity, TEntityId, TEntityDto> {
65
+ execute(id: TEntityId): Promise<TEntityDto | undefined>;
66
+ }
67
+ interface IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto> {
68
+ execute(id: TEntityId, data: TEntityUpdateData): Promise<TEntityDto>;
69
+ }
70
+ interface IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto> {
71
+ execute(id: TEntityId, input: TEntityUpdateData): Promise<TEntityDto>;
72
+ }
73
+ interface IEntitiesSearchAction<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets> {
74
+ execute(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>>;
75
+ }
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>;
82
+ delete(): IEntityDeleteAction<TEntity, TEntityId>;
83
+ }
84
+
85
+ interface IAuthorizationResult {
86
+ isAuthorized: boolean;
87
+ }
88
+ interface IEntityAuthorizationMiddleware<TEntity> {
89
+ canRead(entity: Partial<TEntity>): Promise<IAuthorizationResult>;
90
+ canCreate(entity: Partial<TEntity>): Promise<IAuthorizationResult>;
91
+ canUpdate(entity: Partial<TEntity>): Promise<IAuthorizationResult>;
92
+ canDelete(entity: Partial<TEntity>): Promise<IAuthorizationResult>;
93
+ }
94
+
95
+ interface IEntityCreateCommand<TEntity, TEntityCreateInput> {
96
+ execute(input: TEntityCreateInput): Promise<TEntity>;
97
+ }
98
+ interface IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData> {
99
+ execute(id: TEntityId, data: TEntityUpdateData): Promise<TEntity>;
100
+ }
101
+ interface IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData> {
102
+ execute(id: TEntityId, data: TEntityUpdateData): Promise<TEntity>;
103
+ }
104
+ interface IEntityDeleteCommand<TEntity, TEntityId> {
105
+ execute(id: TEntityId): Promise<void>;
106
+ }
107
+
108
+ interface IEntityMapper<TEntity, TMappedEntity> {
109
+ mapEntity(entity: TEntity): Promise<TMappedEntity>;
110
+ }
111
+
112
+ interface IEntityConnector<TEntity, TMappedType> {
113
+ syncEntity(entity: TMappedType): Promise<void>;
114
+ deleteEntity<TEntityId>(id: TEntityId): Promise<void>;
115
+ }
116
+ interface IConnectorsConfiguration<TEntity> {
117
+ configureConnector<TEntityConnector extends IEntityConnector<TEntity, TMappedType>, TMappedType, TMapper extends IEntityMapper<TEntity, TMappedType>>(name: string, options: ConnectorOptions, connector: TEntityConnector, mapper: TMapper): void;
118
+ getConnector(name: string): ConnectorConfiguration<TEntity>;
119
+ getConnectors(): ConnectorConfiguration<TEntity>[];
120
+ }
121
+ declare enum ConnectorMode {
122
+ Sync = 0,
123
+ Async = 1
124
+ }
125
+ type ConnectorOptions = {
126
+ mode: ConnectorMode;
127
+ enabled?: boolean;
128
+ };
129
+ type ConnectorConfiguration<TEntity> = {
130
+ name: string;
131
+ options: ConnectorOptions;
132
+ connector: IEntityConnector<TEntity, unknown>;
133
+ mapper: IEntityMapper<TEntity, unknown>;
134
+ };
135
+ interface IEntityConnectorSyncManager<TEntity> {
136
+ syncEntity(entity: TEntity): Promise<void>;
137
+ }
138
+ interface IEntityConnectorDeleteManager<TEntity, TEntityId> {
139
+ deleteEntity(entityId: TEntityId): Promise<void>;
140
+ }
141
+
142
+ interface IEntitiesSearchConverter<TEntity, TListItemDto> {
143
+ toListItemDto(entity: TEntity): TListItemDto;
144
+ }
145
+ interface IEntityCreateCommandConverter<TEntity, TEntityCreateInput> {
146
+ createDtoToEntity(input: TEntityCreateInput): Partial<TEntity>;
147
+ }
148
+ interface IEntityCreateActionConverter<TEntity, TEntityDto> {
149
+ toEntityDto(entity: TEntity): TEntityDto;
150
+ }
151
+ interface IEntityCreateConverter<TEntity, TEntityCreateInput, TEntityDto> extends IEntityCreateCommandConverter<TEntity, TEntityCreateInput>, IEntityCreateActionConverter<TEntity, TEntityDto> {
152
+ }
153
+ interface IEntityGetConverter<TEntity, TEntityDto> {
154
+ toEntityDto(entity: TEntity): TEntityDto;
155
+ }
156
+ interface IEntityUpdateCommandConverter<TEntity, TEntityUpdateInput> {
157
+ updateDtoToEntity(input: TEntityUpdateInput): Partial<TEntity>;
158
+ }
159
+ interface IEntityUpdateActionConverter<TEntity, TEntityDto> {
160
+ toEntityDto(entity: TEntity): TEntityDto;
161
+ }
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> {
165
+ }
166
+
167
+ interface IEntityEventsManager<TEntity, TEntityId> {
168
+ processEntityCreatedEvent(entity: TEntity): Promise<void>;
169
+ processEntityUpdatedEvent(entity: TEntity): Promise<void>;
170
+ processEntityDeletedEvent(id: TEntityId): Promise<void>;
171
+ }
172
+
173
+ interface IEntitiesSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
174
+ execute(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
175
+ }
176
+ interface IEntityGetQuery<TEntity, TEntityId> {
177
+ execute(id: TEntityId): Promise<TEntity | undefined>;
178
+ }
179
+ interface IEntitiesQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
180
+ search(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
181
+ }
182
+
183
+ interface IEntityManager<TEntity, TEntityId> {
184
+ 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>;
189
+ delete(): IEntityDeleteCommand<TEntity, TEntityId>;
190
+ }
191
+
192
+ interface IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition> {
193
+ exists(id: TEntityId): Promise<boolean>;
194
+ existsBy(condition: TGetConditions): Promise<boolean>;
195
+ get(id: TEntityId): Promise<TEntity | undefined>;
196
+ getBy(condition: TGetConditions): Promise<TEntity | undefined>;
197
+ all(): Promise<TEntity[]>;
198
+ find(condition: TFindCondition): Promise<TEntity[]>;
199
+ findById(id: TEntityId[]): Promise<TEntity[]>;
200
+ delete(id: TEntityId): Promise<void>;
201
+ deleteBy(condition: TDeleteCondition): Promise<void>;
202
+ create(entity: Partial<TEntity>): Promise<TEntity>;
203
+ update(id: TEntityId, entity: Partial<TEntity>): Promise<TEntity>;
204
+ updateBy(entity: Partial<TEntity>, condition: TUpdateCondition): Promise<TEntity[]>;
205
+ upsert(id: TEntityId, entity: Partial<TEntity>): Promise<TEntity>;
206
+ }
207
+
208
+ interface IReplicasConfiguration<TEntity, TEntityId> {
209
+ configureReplica<TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>(name: string, options: ReplicaOptions, repository: TRepository): void;
210
+ getReplica(name: string): ReplicaConfiguration<TEntity, TEntityId>;
211
+ getReplicas(): ReplicaConfiguration<TEntity, TEntityId>[];
212
+ }
213
+ declare enum ReplicationMode {
214
+ Sync = 0,
215
+ Async = 1
216
+ }
217
+ type ReplicaOptions = {
218
+ mode: ReplicationMode;
219
+ enabled?: boolean;
220
+ };
221
+ type ReplicaConfiguration<TEntity, TEntityId> = {
222
+ name: string;
223
+ options: ReplicaOptions;
224
+ repository: IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>;
225
+ };
226
+ interface IEntityReplicaDeleteManager<TEntity, TEntityId> {
227
+ deleteReplicas(entityId: TEntityId): Promise<void>;
228
+ }
229
+ interface IEntityReplicaSyncManager<TEntity> {
230
+ syncReplicas(entity: TEntity): Promise<void>;
231
+ }
232
+
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
+ declare class EntityServiceLocator<TEntity, TEntityId> {
258
+ private readonly services;
259
+ private readonly entityName;
260
+ constructor(services: EntitiesServiceLocator, entityName: string);
261
+ resolveEntityManager(): IEntityManager<TEntity, TEntityId>;
262
+ resolveEntityActions(): IEntityActions<TEntity, TEntityId>;
263
+ resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
264
+ 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;
277
+ resolveAuthorizationMiddleware(): IEntityAuthorizationMiddleware<TEntity> | undefined;
278
+ resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
279
+ resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
280
+ resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
281
+ resolveUpdateCommand<TEntityUpdateData>(): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
282
+ resolveUpsertCommand<TEntityUpdateData>(): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
283
+ resolveDeleteCommand<TEntityId>(): IEntityDeleteCommand<TEntity, TEntityId>;
284
+ resolveGetAction<TEntityId, TEntityDto>(): IEntityGetAction<TEntity, TEntityId, TEntityDto>;
285
+ resolveSearchAction<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>;
286
+ resolveCreateAction<TEntityCreateData, TEntityDto>(): IEntityCreateAction<TEntity, TEntityCreateData, TEntityDto>;
287
+ resolveUpdateAction<TEntityUpdateData, TEntityDto>(): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
288
+ resolveUpsertAction<TEntityUpdateData, TEntityDto>(): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
289
+ resolveDeleteAction(): IEntityDeleteAction<TEntity, TEntityId>;
290
+ resolveQueryBuilder<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
291
+ getEntityName(): string;
292
+ }
293
+ declare class EntitiesServiceLocator {
294
+ private readonly provider;
295
+ constructor(provider: ServiceLocator);
296
+ 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;
301
+ resolveRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
302
+ registerRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string, instance: IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>): void;
303
+ resolveEventsManager<TEntity, TEntityId>(entityName: string): IEntityEventsManager<TEntity, TEntityId>;
304
+ registerEventsManager<TEntity, TEntityId>(entityName: string, instance: IEntityEventsManager<TEntity, TEntityId>): void;
305
+ resolveReplicaSyncManager<TEntity>(entityName: string): IEntityReplicaSyncManager<TEntity>;
306
+ registerReplicaSyncManager<TEntity>(entityName: string, instance: IEntityReplicaSyncManager<TEntity>): void;
307
+ resolveReplicaConfiguration<TEntity, TEntityId>(entityName: string): IReplicasConfiguration<TEntity, TEntityId>;
308
+ registerReplicaConfiguration<TEntity, TEntityId>(entityName: string, instance: IReplicasConfiguration<TEntity, TEntityId>): void;
309
+ resolveReplicaDeleteManager<TEntity, TEntityId>(entityName: string): IEntityReplicaDeleteManager<TEntity, TEntityId>;
310
+ registerReplicaDeleteManager<TEntity, TEntityId>(entityName: string, instance: IEntityReplicaDeleteManager<TEntity, TEntityId>): void;
311
+ resolveConnectorSyncManager<TEntity>(entityName: string): IEntityConnectorSyncManager<TEntity>;
312
+ registerConnectorSyncManager<TEntity>(entityName: string, instance: IEntityConnectorSyncManager<TEntity>): void;
313
+ resolveConnectorDeleteManager<TEntity, TEntityId>(entityName: string): IEntityConnectorDeleteManager<TEntity, TEntityId>;
314
+ registerConnectorDeleteManager<TEntity, TEntityId>(entityName: string, instance: IEntityConnectorDeleteManager<TEntity, TEntityId>): void;
315
+ resolveConnectorsConfiguration<TEntity>(entityName: string): IConnectorsConfiguration<TEntity>;
316
+ 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;
329
+ resolveAuthorizationMiddleware<TEntity>(entityName: string): IEntityAuthorizationMiddleware<TEntity> | undefined;
330
+ registerAuthorizationMiddleware<TEntity>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity>): void;
331
+ resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
332
+ registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
333
+ resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
334
+ registerSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string, instance: IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
335
+ resolveCreateCommand<TEntity, TEntityCreateData>(entityName: string): IEntityCreateCommand<TEntity, TEntityCreateData>;
336
+ registerCreateCommand<TEntity, TEntityCreateData>(entityName: string, instance: IEntityCreateCommand<TEntity, TEntityCreateData>): void;
337
+ resolveUpdateCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string): IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>;
338
+ registerUpdateCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string, instance: IEntityUpdateCommand<TEntity, TEntityId, TEntityUpdateData>): void;
339
+ resolveUpsertCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string): IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>;
340
+ registerUpsertCommand<TEntity, TEntityId, TEntityUpdateData>(entityName: string, instance: IEntityUpsertCommand<TEntity, TEntityId, TEntityUpdateData>): void;
341
+ resolveDeleteCommand<TEntity, TEntityId>(entityName: string): IEntityDeleteCommand<TEntity, TEntityId>;
342
+ registerDeleteCommand<TEntity, TEntityId>(entityName: string, instance: IEntityDeleteCommand<TEntity, TEntityId>): void;
343
+ resolveGetAction<TEntity, TEntityId, TEntityDto>(entityName: string): IEntityGetAction<TEntity, TEntityId, TEntityDto>;
344
+ registerGetAction<TEntity, TEntityId, TEntityDto>(entityName: string, instance: IEntityGetAction<TEntity, TEntityId, TEntityDto>): void;
345
+ resolveSearchAction<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>;
346
+ registerSearchAction<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TEntityListItemDto, TSorting extends SortingType, TCursor, TFacets>(entityName: string, instance: IEntitiesSearchAction<TEntity, TEntitySearchParameters, TEntityListItemDto, TSorting, TCursor, TFacets>): void;
347
+ resolveCreateAction<TEntity, TEntityCreateData, TEntityDto>(entityName: string): IEntityCreateAction<TEntity, TEntityCreateData, TEntityDto>;
348
+ registerCreateAction<TEntity, TEntityCreateData, TEntityDto>(entityName: string, instance: IEntityCreateAction<TEntity, TEntityCreateData, TEntityDto>): void;
349
+ resolveUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
350
+ registerUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string, instance: IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>): void;
351
+ resolveUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
352
+ registerUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string, instance: IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>): void;
353
+ resolveDeleteAction<TEntity, TEntityId>(entityName: string): IEntityDeleteAction<TEntity, TEntityId>;
354
+ registerDeleteAction<TEntity, TEntityId>(entityName: string, instance: IEntityDeleteAction<TEntity, TEntityId>): void;
355
+ resolveQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
356
+ registerQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string, instance: IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
357
+ }
358
+
359
+ interface IEntityManagerServiceRoot {
360
+ registerEntity<TEntity, TEntityId, TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>(entityName: string, repository: TRepository): IEntityManagerServiceCollection<TEntity, TEntityId>;
361
+ }
362
+ interface IEntityManagerServiceCollection<TEntity, TEntityId> {
363
+ getServiceLocator(): EntityServiceLocator<TEntity, TEntityId>;
364
+ mapCrudOperations<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TEntitiesQueryBuilder extends IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>>({ queryBuilder, }: {
365
+ queryBuilder: TEntitiesQueryBuilder;
366
+ }): IEntityManagerServiceCollection<TEntity, TEntityId>;
367
+ addConverter<TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput, TEntityConverter extends IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput>>(converter: TEntityConverter): IEntityManagerServiceCollection<TEntity, TEntityId>;
368
+ addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity>>({ middleware, }: {
369
+ middleware: TEntityAuthorizationMiddleware;
370
+ }): IEntityManagerServiceCollection<TEntity, TEntityId>;
371
+ withReplica<TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>({ name, options, repository, }: {
372
+ name: string;
373
+ options: ReplicaOptions;
374
+ repository: TRepository;
375
+ }): IEntityManagerServiceCollection<TEntity, TEntityId>;
376
+ withSynchronization<TMappedType, TMapper extends IEntityMapper<TEntity, TMappedType>, TEntityConnector extends IEntityConnector<TEntity, TMappedType>>({ name, options, connector, mapper, }: {
377
+ name: string;
378
+ options: ConnectorOptions;
379
+ connector: TEntityConnector;
380
+ mapper: TMapper;
381
+ }): IEntityManagerServiceCollection<TEntity, TEntityId>;
382
+ }
383
+
384
+ declare class EntityManagerException extends Error {
385
+ constructor(message: string);
386
+ }
387
+ declare enum EntityOperationType {
388
+ Create = 0,
389
+ Update = 1,
390
+ Delete = 2,
391
+ Read = 3
392
+ }
393
+ declare class EntityOperationUnauthorizedException<TEntity> extends EntityManagerException {
394
+ private readonly entity;
395
+ private readonly operation;
396
+ constructor(operationType: EntityOperationType, entity: Partial<TEntity>, entityName: string);
397
+ get getEntity(): Partial<TEntity>;
398
+ get getOperation(): EntityOperationType;
399
+ }
400
+ declare class EntityNotFoundException<TEntityId> extends EntityManagerException {
401
+ private readonly entityId;
402
+ constructor(id?: TEntityId);
403
+ getEntityId(): TEntityId | undefined;
404
+ }
405
+ declare class MultipleEntitiesFoundException extends EntityManagerException {
406
+ constructor();
407
+ }
408
+
409
+ type FilterExpression<TEntity> = (entity: TEntity) => boolean;
410
+
411
+ interface IEntitySearchResults<TSearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TResult, TSorting extends SortingType, TCursor, TFacets> {
412
+ request: TSearchParameters;
413
+ items: TResult[];
414
+ Facets?: TFacets;
415
+ paging?: ISearchResultsPaging<TCursor>;
416
+ }
417
+ interface ISearchResultsPaging<TCursor> {
418
+ pageIndex: number;
419
+ pageSize: number;
420
+ totPages: number;
421
+ nextPageCursor?: TCursor;
422
+ currentPageCursor?: TCursor;
423
+ prevPageCursor?: TCursor;
424
+ }
425
+
426
+ declare class EntityManagerModule implements OnModuleInit {
427
+ private readonly logger;
428
+ onModuleInit(): void;
429
+ }
430
+
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 };
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@punks/backend-entity-manager",
3
+ "version": "0.0.1",
4
+ "description": "",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "engines": {
11
+ "node": ">=16"
12
+ },
13
+ "types": "dist/index.d.ts",
14
+ "scripts": {
15
+ "test": "jest test --passWithNoTests",
16
+ "clean": "rimraf dist",
17
+ "build": "yarn clean && rollup -c",
18
+ "deploy:npm": "yarn build && npm publish --access public",
19
+ "type-check": "tsc --noEmit --skipLibCheck"
20
+ },
21
+ "keywords": [],
22
+ "author": "WebPunks",
23
+ "license": "ISC",
24
+ "devDependencies": {
25
+ "@babel/core": "^7.21.0",
26
+ "@nestjs/common": "^10.0.5",
27
+ "@nestjs/core": "^10.0.5",
28
+ "@punks/backend-core": "0.0.5",
29
+ "@rollup/plugin-commonjs": "^21.0.1",
30
+ "@rollup/plugin-node-resolve": "^13.0.6",
31
+ "@rollup/plugin-typescript": "^11.0.0",
32
+ "@types/jest": "^29.5.2",
33
+ "jest": "^29.4.3",
34
+ "pg": "^8.11.1",
35
+ "pg-mem": "^2.6.13",
36
+ "reflect-metadata": "^0.1.13",
37
+ "rimraf": "^3.0.2",
38
+ "rollup": "^2.60.0",
39
+ "rollup-plugin-dts": "^4.0.1",
40
+ "rollup-plugin-peer-deps-external": "^2.2.4",
41
+ "rollup-plugin-postcss": "^4.0.2",
42
+ "ts-jest": "^29.1.1",
43
+ "tslib": "^2.5.0",
44
+ "typeorm": "^0.3.17",
45
+ "typescript": "^5.1.6"
46
+ },
47
+ "peerDependencies": {
48
+ "@punks/backend-core": "0.0.5"
49
+ },
50
+ "dependencies": {},
51
+ "jest": {
52
+ "transform": {
53
+ ".(ts|tsx)": "ts-jest"
54
+ },
55
+ "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
56
+ "moduleFileExtensions": [
57
+ "ts",
58
+ "tsx",
59
+ "js"
60
+ ]
61
+ }
62
+ }
package/readme.md ADDED
@@ -0,0 +1,17 @@
1
+ # Punks Entity Manager package
2
+
3
+ This library contains the entity manager of the Punks backend.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @punks/backend-entity-manager @punks/backend-core
9
+ ```
10
+
11
+ ## Supported ORMs:
12
+
13
+ - [TypeORM](https://typeorm.io/)
14
+
15
+ ```bash
16
+ npm install typeorm
17
+ ```