@punks/backend-entity-manager 0.0.1 → 0.0.3

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 (151) hide show
  1. package/dist/cjs/index.js +41374 -7749
  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 +3 -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 +2 -0
  63. package/dist/cjs/types/platforms/nest/ioc/registry/index.d.ts +18 -0
  64. package/dist/cjs/types/platforms/nest/module.d.ts +1 -4
  65. package/dist/cjs/types/platforms/nest/processors/index.d.ts +2 -0
  66. package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +16 -0
  67. package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -0
  68. package/dist/cjs/types/providers/services.d.ts +20 -31
  69. package/dist/cjs/types/symbols/ioc.d.ts +2 -6
  70. package/dist/cjs/types/templates/index.d.ts +1 -0
  71. package/dist/cjs/types/templates/queryBuilder.d.ts +11 -0
  72. package/dist/cjs/types/testing/mocks/repository.d.ts +1 -0
  73. package/dist/esm/index.js +41357 -7743
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/types/__test__/entity/foo.d.ts +9 -9
  76. package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +9 -10
  77. package/dist/esm/types/abstractions/actions.d.ts +12 -12
  78. package/dist/esm/types/abstractions/adapters.d.ts +8 -0
  79. package/dist/esm/types/abstractions/commands.d.ts +2 -2
  80. package/dist/esm/types/abstractions/configuration.d.ts +7 -1
  81. package/dist/esm/types/abstractions/converters.d.ts +7 -15
  82. package/dist/esm/types/abstractions/index.d.ts +3 -1
  83. package/dist/esm/types/abstractions/manager.d.ts +5 -5
  84. package/dist/esm/types/abstractions/repository.d.ts +1 -0
  85. package/dist/esm/types/abstractions/searchParameters.d.ts +1 -1
  86. package/dist/esm/types/actions/create.d.ts +2 -2
  87. package/dist/esm/types/actions/upsert.d.ts +2 -2
  88. package/dist/esm/types/commands/create.d.ts +2 -2
  89. package/dist/esm/types/commands/update.d.ts +2 -2
  90. package/dist/esm/types/concrete/index.d.ts +13 -13
  91. package/dist/esm/types/index.d.ts +1 -0
  92. package/dist/esm/types/integrations/index.d.ts +1 -0
  93. package/dist/esm/types/integrations/repository/index.d.ts +1 -0
  94. package/dist/esm/types/integrations/repository/typeorm/index.d.ts +2 -1
  95. package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +22 -0
  96. package/dist/esm/types/integrations/repository/typeorm/repository.d.ts +2 -1
  97. package/dist/esm/types/ioc/index.d.ts +3 -0
  98. package/dist/esm/types/models/search.d.ts +1 -0
  99. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/actions.d.ts +8 -0
  100. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +11 -0
  101. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/converter.d.ts +9 -0
  102. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +20 -0
  103. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/entity.d.ts +6 -0
  104. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/index.d.ts +8 -0
  105. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/manager.d.ts +7 -0
  106. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/models.d.ts +19 -0
  107. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/query.d.ts +11 -0
  108. package/dist/esm/types/platforms/nest/__test__/server/entities/foo/repository.d.ts +6 -0
  109. package/dist/esm/types/platforms/nest/__test__/server/entities/index.d.ts +6 -0
  110. package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +4 -0
  111. package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_actions.test.d.ts +1 -0
  112. package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_api.test.d.ts +1 -0
  113. package/dist/esm/types/platforms/nest/__test__/tests/base/test_crud_operations.test.d.ts +1 -0
  114. package/dist/esm/types/platforms/nest/base/entityActions.d.ts +9 -0
  115. package/dist/esm/types/platforms/nest/base/entityManager.d.ts +9 -0
  116. package/dist/esm/types/platforms/nest/base/index.d.ts +1 -0
  117. package/dist/esm/types/platforms/nest/decorators/actions.d.ts +4 -0
  118. package/dist/esm/types/platforms/nest/decorators/adapter.d.ts +4 -0
  119. package/dist/esm/types/platforms/nest/decorators/authorization.d.ts +4 -0
  120. package/dist/esm/types/platforms/nest/decorators/connector.d.ts +4 -0
  121. package/dist/esm/types/platforms/nest/decorators/converter.d.ts +4 -0
  122. package/dist/esm/types/platforms/nest/decorators/entity.d.ts +4 -0
  123. package/dist/esm/types/platforms/nest/decorators/index.d.ts +9 -0
  124. package/dist/esm/types/platforms/nest/decorators/manager.d.ts +4 -0
  125. package/dist/esm/types/platforms/nest/decorators/queryBuilder.d.ts +4 -0
  126. package/dist/esm/types/platforms/nest/decorators/repository.d.ts +4 -0
  127. package/dist/esm/types/platforms/nest/decorators/symbols.d.ts +11 -0
  128. package/dist/esm/types/platforms/nest/index.d.ts +3 -0
  129. package/dist/esm/types/platforms/nest/integrations/index.d.ts +1 -0
  130. package/dist/esm/types/platforms/nest/integrations/typeorm/index.d.ts +2 -0
  131. package/dist/esm/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +7 -0
  132. package/dist/esm/types/platforms/nest/integrations/typeorm/repository.d.ts +5 -0
  133. package/dist/esm/types/platforms/nest/ioc/discovery/index.d.ts +102 -0
  134. package/dist/esm/types/platforms/nest/ioc/index.d.ts +2 -0
  135. package/dist/esm/types/platforms/nest/ioc/registry/index.d.ts +18 -0
  136. package/dist/esm/types/platforms/nest/module.d.ts +1 -4
  137. package/dist/esm/types/platforms/nest/processors/index.d.ts +2 -0
  138. package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +16 -0
  139. package/dist/esm/types/platforms/nest/services/index.d.ts +1 -0
  140. package/dist/esm/types/providers/services.d.ts +20 -31
  141. package/dist/esm/types/symbols/ioc.d.ts +2 -6
  142. package/dist/esm/types/templates/index.d.ts +1 -0
  143. package/dist/esm/types/templates/queryBuilder.d.ts +11 -0
  144. package/dist/esm/types/testing/mocks/repository.d.ts +1 -0
  145. package/dist/index.d.ts +237 -94
  146. package/package.json +14 -5
  147. package/readme.md +10 -1
  148. package/dist/cjs/types/platforms/nest/ioc/container/index.d.ts +0 -3
  149. package/dist/cjs/types/platforms/nest/services/manager/index.d.ts +0 -2
  150. package/dist/esm/types/platforms/nest/ioc/container/index.d.ts +0 -3
  151. package/dist/esm/types/platforms/nest/services/manager/index.d.ts +0 -2
@@ -0,0 +1,9 @@
1
+ import { IEntityManager, IEntitySearchParameters, SortingType } from "../../../abstractions";
2
+ import { EntityServiceLocator } from "../../../providers/services";
3
+ import { EntityManagerRegistry } from "../ioc/registry";
4
+ export declare abstract class NestEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
5
+ protected readonly services: EntityServiceLocator<TEntity, TEntityId>;
6
+ private managerInstance;
7
+ constructor(entityName: string, registry: EntityManagerRegistry);
8
+ get provider(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters, TSorting, TCursor, TFacets>;
9
+ }
@@ -0,0 +1 @@
1
+ export { NestEntityManager } from "./entityManager";
@@ -0,0 +1,4 @@
1
+ export interface EntityActionsProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,4 @@
1
+ export interface EntityAdapterProps {
2
+ entityName: string;
3
+ }
4
+ export declare const WpEntityAdapter: (entityName: string, props?: Omit<EntityAdapterProps, "entityName">) => <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol | undefined, descriptor?: TypedPropertyDescriptor<Y> | undefined) => void;
@@ -0,0 +1,4 @@
1
+ export interface EntityAuthMiddlewareProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,4 @@
1
+ export interface EntityConnectorProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,4 @@
1
+ export interface EntityConverterProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,4 @@
1
+ export interface EntityProps {
2
+ name: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,9 @@
1
+ export { WpEntityAuthMiddleware, EntityAuthMiddlewareProps, } from "./authorization";
2
+ export { WpEntityActions, EntityActionsProps } from "./actions";
3
+ export { WpEntityConnector, EntityConnectorProps } from "./connector";
4
+ export { WpEntityConverter, EntityConverterProps } from "./converter";
5
+ export { WpEntity, EntityProps } from "./entity";
6
+ export { WpEntityRepository, EntityRepositoryProps } from "./repository";
7
+ export { WpEntityManager, EntityManagerProps } from "./manager";
8
+ export { WpEntityQueryBuilder, EntityQueryBuilderProps } from "./queryBuilder";
9
+ export { EntityManagerSymbols } from "./symbols";
@@ -0,0 +1,4 @@
1
+ export interface EntityManagerProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,4 @@
1
+ export interface EntityQueryBuilderProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,4 @@
1
+ export interface EntityRepositoryProps {
2
+ entityName: string;
3
+ }
4
+ export 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;
@@ -0,0 +1,11 @@
1
+ export declare const EntityManagerSymbols: {
2
+ Entity: symbol;
3
+ EntityActions: symbol;
4
+ EntityAdapter: symbol;
5
+ EntityAuthMiddleware: symbol;
6
+ EntityRepository: symbol;
7
+ EntityConnector: symbol;
8
+ EntityConverter: symbol;
9
+ EntityManager: symbol;
10
+ EntityQueryBuilder: symbol;
11
+ };
@@ -1 +1,4 @@
1
+ export * from "./base";
2
+ export * from "./decorators";
3
+ export * from "./integrations";
1
4
  export { EntityManagerModule } from "./module";
@@ -0,0 +1 @@
1
+ export * from "./typeorm";
@@ -0,0 +1,2 @@
1
+ export { NestTypeOrmQueryBuilder } from "./queryBuilder";
2
+ export { NestTypeOrmRepository } from "./repository";
@@ -0,0 +1,7 @@
1
+ import { ObjectLiteral } from "typeorm";
2
+ import { TypeOrmQueryBuilder } from "../../../../integrations";
3
+ import { IEntitySearchParameters, SortingType } from "../../../../abstractions";
4
+ import { EntityManagerRegistry } from "../../ioc/registry";
5
+ export declare abstract class NestTypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets> extends TypeOrmQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TFacets> {
6
+ constructor(entityName: string, registry: EntityManagerRegistry);
7
+ }
@@ -0,0 +1,5 @@
1
+ import { ObjectLiteral, Repository } from "typeorm";
2
+ import { TypeOrmRepository } from "../../../../integrations";
3
+ export declare class NestTypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> extends TypeOrmRepository<TEntity, TEntityId> {
4
+ constructor(repository: Repository<TEntity>);
5
+ }
@@ -0,0 +1,102 @@
1
+ import { Type } from "@nestjs/common";
2
+ import { ModulesContainer } from "@nestjs/core/injector/modules-container";
3
+ import { MetadataScanner } from "@nestjs/core/metadata-scanner";
4
+ export interface DiscoveredModule<T = object> {
5
+ name: string;
6
+ instance: T;
7
+ injectType?: Function | Type<any>;
8
+ dependencyType: Type<T>;
9
+ }
10
+ export interface DiscoveredClass extends DiscoveredModule {
11
+ parentModule: DiscoveredModule;
12
+ }
13
+ export interface DiscoveredMethod {
14
+ handler: (...args: any[]) => any;
15
+ methodName: string;
16
+ parentClass: DiscoveredClass;
17
+ }
18
+ export interface DiscoveredMethodWithMeta<T> {
19
+ discoveredMethod: DiscoveredMethod;
20
+ meta: T;
21
+ }
22
+ export interface DiscoveredClassWithMeta<T> {
23
+ discoveredClass: DiscoveredClass;
24
+ meta: T;
25
+ }
26
+ export type MetaKey = string | number | symbol;
27
+ export type Filter<T> = (item: T) => boolean;
28
+ /**
29
+ * Attempts to retrieve meta information from a Nest DiscoveredClass component
30
+ * @param key The meta key to retrieve data from
31
+ * @param component The discovered component to retrieve meta from
32
+ */
33
+ export declare function getComponentMetaAtKey<T>(key: MetaKey, component: DiscoveredClass): T | undefined;
34
+ /**
35
+ * A filter that can be used to search for DiscoveredClasses in an App that contain meta attached to a
36
+ * certain key
37
+ * @param key The meta key to search for
38
+ */
39
+ export declare const withMetaAtKey: (key: MetaKey) => Filter<DiscoveredClass>;
40
+ export declare class DiscoveryService {
41
+ private readonly modulesContainer;
42
+ private readonly metadataScanner;
43
+ private discoveredControllers?;
44
+ private discoveredProviders?;
45
+ constructor(modulesContainer: ModulesContainer, metadataScanner: MetadataScanner);
46
+ /**
47
+ * Discovers all providers in a Nest App that match a filter
48
+ * @param filter
49
+ */
50
+ providers(filter: Filter<DiscoveredClass>): Promise<DiscoveredClass[]>;
51
+ /**
52
+ * Discovers all controller methods that either directly have a certain meta key attached to them
53
+ * or belong to a controller that has the same meta key attached to them
54
+ * @param metaKey The meta key to scan for
55
+ * @param metaFilter An optional filter for the contents of the meta object
56
+ */
57
+ methodsAndControllerMethodsWithMetaAtKey<T>(metaKey: MetaKey, metaFilter?: Filter<T>): Promise<DiscoveredMethodWithMeta<T>[]>;
58
+ /**
59
+ * Discovers all providers in an App that have meta at a specific key and returns the provider(s) and associated meta
60
+ * @param metaKey The metakey to scan for
61
+ */
62
+ providersWithMetaAtKey<T>(metaKey: MetaKey): Promise<DiscoveredClassWithMeta<T>[]>;
63
+ /**
64
+ * Discovers all controllers in a Nest App that match a filter
65
+ * @param filter
66
+ */
67
+ controllers(filter: Filter<DiscoveredClass>): Promise<DiscoveredClass[]>;
68
+ /**
69
+ * Discovers all controllers in an App that have meta at a specific key and returns the controller(s) and associated meta
70
+ * @param metaKey The metakey to scan for
71
+ */
72
+ controllersWithMetaAtKey<T>(metaKey: MetaKey): Promise<DiscoveredClassWithMeta<T>[]>;
73
+ /**
74
+ * Discovers all method handlers matching a particular metakey from a Provider or Controller
75
+ * @param component
76
+ * @param metaKey
77
+ */
78
+ classMethodsWithMetaAtKey<T>(component: DiscoveredClass, metaKey: MetaKey): DiscoveredMethodWithMeta<T>[];
79
+ /**
80
+ * Discovers all the methods that exist on providers in a Nest App that contain metadata under a specific key
81
+ * @param metaKey The metakey to scan for
82
+ * @param providerFilter A predicate used to limit the providers being scanned. Defaults to all providers in the app module
83
+ */
84
+ providerMethodsWithMetaAtKey<T>(metaKey: MetaKey, providerFilter?: Filter<DiscoveredClass>): Promise<DiscoveredMethodWithMeta<T>[]>;
85
+ /**
86
+ * Discovers all the methods that exist on controllers in a Nest App that contain metadata under a specific key
87
+ * @param metaKey The metakey to scan for
88
+ * @param controllerFilter A predicate used to limit the controllers being scanned. Defaults to all providers in the app module
89
+ */
90
+ controllerMethodsWithMetaAtKey<T>(metaKey: MetaKey, controllerFilter?: Filter<DiscoveredClass>): Promise<DiscoveredMethodWithMeta<T>[]>;
91
+ private toDiscoveredClass;
92
+ private extractMethodMetaAtKey;
93
+ private discover;
94
+ }
95
+ /**
96
+ * Exposes a query API over top of the NestJS Module container
97
+ *
98
+ * @export
99
+ * @class DiscoveryModule
100
+ */
101
+ export declare class DiscoveryModule {
102
+ }
@@ -0,0 +1,2 @@
1
+ import { EntityManagerRegistry } from "./registry";
2
+ export declare const IoC: (typeof EntityManagerRegistry)[];
@@ -0,0 +1,18 @@
1
+ import { INestApplicationContext } from "@nestjs/common";
2
+ import { EntityAuthMiddlewareProps, EntityConverterProps, EntityQueryBuilderProps, EntityRepositoryProps } from "../../decorators";
3
+ import { EntityServiceLocator } from "../../../../providers/services";
4
+ import { DiscoveredClassWithMeta } from "../discovery";
5
+ import { EntityAdapterProps } from "../../decorators/adapter";
6
+ export declare class EntityManagerRegistry {
7
+ private readonly container;
8
+ getContainer(): import("../../../../abstractions").IEntityManagerServiceRoot;
9
+ registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, }: {
10
+ entityName: string;
11
+ repository: DiscoveredClassWithMeta<EntityRepositoryProps>;
12
+ converter: DiscoveredClassWithMeta<EntityConverterProps>;
13
+ adapter: DiscoveredClassWithMeta<EntityAdapterProps>;
14
+ queryBuilder: DiscoveredClassWithMeta<EntityQueryBuilderProps>;
15
+ authMiddleware?: DiscoveredClassWithMeta<EntityAuthMiddlewareProps>;
16
+ }): Promise<void>;
17
+ resolveEntityServicesCollection<TEntity>(entityName: string): EntityServiceLocator<TEntity, unknown>;
18
+ }
@@ -1,5 +1,2 @@
1
- import { OnModuleInit } from "@nestjs/common";
2
- export declare class EntityManagerModule implements OnModuleInit {
3
- private readonly logger;
4
- onModuleInit(): void;
1
+ export declare class EntityManagerModule {
5
2
  }
@@ -0,0 +1,2 @@
1
+ import { EntityManagerInitializer } from "./initializer";
2
+ export declare const Processors: (typeof EntityManagerInitializer)[];
@@ -0,0 +1,16 @@
1
+ import { INestApplicationContext } from "@nestjs/common";
2
+ import { EntityManagerRegistry } from "../../ioc/registry";
3
+ import { DiscoveryService } from "../../ioc/discovery";
4
+ export declare class EntityManagerInitializer {
5
+ private readonly discover;
6
+ private readonly registry;
7
+ private readonly logger;
8
+ constructor(discover: DiscoveryService, registry: EntityManagerRegistry);
9
+ initialize(app: INestApplicationContext): Promise<void>;
10
+ private discoverEntities;
11
+ private discoverRepositories;
12
+ private discoverQueryBuilders;
13
+ private discoverConverters;
14
+ private discoverAdapters;
15
+ private discoverAuthMiddlewares;
16
+ }
@@ -0,0 +1 @@
1
+ export declare const Services: never[];
@@ -1,9 +1,10 @@
1
1
  import { IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
2
+ import { IEntityAdapter } from "../abstractions/adapters";
2
3
  import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
3
4
  import { IEntityCreateCommand, IEntityDeleteCommand, IEntityUpdateCommand, IEntityUpsertCommand } from "../abstractions/commands";
4
5
  import { SortingType } from "../abstractions/common";
5
6
  import { IConnectorsConfiguration, IEntityConnectorDeleteManager, IEntityConnectorSyncManager } from "../abstractions/connectors";
6
- import { IEntitiesSearchConverter, IEntityCreateCommandConverter, IEntityCreateConverter, IEntityGetConverter, IEntityUpdateActionConverter, IEntityUpdateCommandConverter } from "../abstractions/converters";
7
+ import { IEntityConverter } from "../abstractions/converters";
7
8
  import { IEntityEventsManager } from "../abstractions/events";
8
9
  import { IEntityManager } from "../abstractions/manager";
9
10
  import { IEntitiesQueryBuilder, IEntitiesSearchQuery, IEntityGetQuery } from "../abstractions/queries";
@@ -15,22 +16,18 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
15
16
  private readonly services;
16
17
  private readonly entityName;
17
18
  constructor(services: EntitiesServiceLocator, entityName: string);
18
- resolveEntityManager(): IEntityManager<TEntity, TEntityId>;
19
- resolveEntityActions(): IEntityActions<TEntity, TEntityId>;
19
+ resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
20
+ resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
20
21
  resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
21
22
  resolveEventsManager(): IEntityEventsManager<TEntity, TEntityId>;
22
- resolveReplicaSyncManager<TEntity>(): IEntityReplicaSyncManager<TEntity>;
23
- resolveReplicaConfiguration<TEntity>(): IReplicasConfiguration<TEntity, TEntityId>;
24
- resolveReplicaDeleteManager<TEntity, TEntityId>(): IEntityReplicaDeleteManager<TEntity, TEntityId>;
25
- resolveConnectorSyncManager<TEntity>(): IEntityConnectorSyncManager<TEntity>;
26
- resolveConnectorDeleteManager<TEntity, TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
27
- resolveConnectorsConfiguration<TEntity>(): IConnectorsConfiguration<TEntity>;
28
- resolveCreateCommandConverter<TEntityCreateData>(): IEntityCreateCommandConverter<TEntity, TEntityCreateData> | undefined;
29
- resolveUpdateCommandConverter<TEntityUpdateData>(): IEntityUpdateCommandConverter<TEntity, TEntityUpdateData>;
30
- resolveSearchConverter<TListItemDto>(): IEntitiesSearchConverter<TEntity, TListItemDto> | undefined;
31
- resolveGetConverter<TEntityDto>(): IEntityGetConverter<TEntity, TEntityDto> | undefined;
32
- resolveCreateConverter<TEntityCreateData, TEntityDto>(): IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto> | undefined;
33
- resolveUpdateActionConverter<TEntityDto>(): IEntityUpdateActionConverter<TEntity, TEntityDto> | undefined;
23
+ resolveReplicaSyncManager(): IEntityReplicaSyncManager<TEntity>;
24
+ resolveReplicaConfiguration(): IReplicasConfiguration<TEntity, TEntityId>;
25
+ resolveReplicaDeleteManager<TEntityId>(): IEntityReplicaDeleteManager<TEntity, TEntityId>;
26
+ resolveConnectorSyncManager(): IEntityConnectorSyncManager<TEntity>;
27
+ resolveConnectorDeleteManager<TEntityId>(): IEntityConnectorDeleteManager<TEntity, TEntityId>;
28
+ resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
29
+ resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
30
+ resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
34
31
  resolveAuthorizationMiddleware(): IEntityAuthorizationMiddleware<TEntity> | undefined;
35
32
  resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
36
33
  resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
@@ -51,10 +48,10 @@ export declare class EntitiesServiceLocator {
51
48
  private readonly provider;
52
49
  constructor(provider: ServiceLocator);
53
50
  getProvider(): ServiceLocator;
54
- resolveEntityManager<TEntity, TEntityId>(entityName: string): IEntityManager<TEntity, TEntityId>;
55
- registerEntityManager<TEntity, TEntityId>(entityName: string, instance: IEntityManager<TEntity, TEntityId>): void;
56
- resolveEntityActions<TEntity, TEntityId>(entityName: string): IEntityActions<TEntity, TEntityId>;
57
- registerEntityActions<TEntity, TEntityId>(entityName: string, instance: IEntityActions<TEntity, TEntityId>): void;
51
+ resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
52
+ registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
53
+ resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
54
+ registerEntityActions<TEntity>(entityName: string, instance: IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>): void;
58
55
  resolveRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
59
56
  registerRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(entityName: string, instance: IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>): void;
60
57
  resolveEventsManager<TEntity, TEntityId>(entityName: string): IEntityEventsManager<TEntity, TEntityId>;
@@ -71,18 +68,10 @@ export declare class EntitiesServiceLocator {
71
68
  registerConnectorDeleteManager<TEntity, TEntityId>(entityName: string, instance: IEntityConnectorDeleteManager<TEntity, TEntityId>): void;
72
69
  resolveConnectorsConfiguration<TEntity>(entityName: string): IConnectorsConfiguration<TEntity>;
73
70
  registerConnectorsConfiguration<TEntity>(entityName: string, instance: IConnectorsConfiguration<TEntity>): void;
74
- resolveCreateCommandConverter<TEntity, TEntityCreateData>(entityName: string): IEntityCreateCommandConverter<TEntity, TEntityCreateData> | undefined;
75
- registerCreateCommandConverter<TEntity, TEntityCreateData>(entityName: string, instance: IEntityCreateCommandConverter<TEntity, TEntityCreateData>): void;
76
- resolveUpdateCommandConverter<TEntity, TEntityUpdateData>(entityName: string): IEntityUpdateCommandConverter<TEntity, TEntityUpdateData>;
77
- registerUpdateCommandConverter<TEntity, TEntityUpdateData>(entityName: string, instance: IEntityUpdateCommandConverter<TEntity, TEntityUpdateData>): void;
78
- resolveSearchConverter<TEntity, TListItemDto>(entityName: string): IEntitiesSearchConverter<TEntity, TListItemDto> | undefined;
79
- registerSearchConverter<TEntity, TListItemDto>(entityName: string, instance: IEntitiesSearchConverter<TEntity, TListItemDto>): void;
80
- resolveGetConverter<TEntity, TEntityDto>(entityName: string): IEntityGetConverter<TEntity, TEntityDto> | undefined;
81
- registerGetConverter<TEntity, TEntityDto>(entityName: string, instance: IEntityGetConverter<TEntity, TEntityDto>): void;
82
- resolveCreateConverter<TEntity, TEntityCreateData, TEntityDto>(entityName: string): IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto> | undefined;
83
- registerCreateActionConverter<TEntity, TEntityCreateData, TEntityDto>(entityName: string, instance: IEntityCreateConverter<TEntity, TEntityCreateData, TEntityDto>): void;
84
- resolveUpdateActionConverter<TEntity, TEntityDto>(entityName: string): IEntityUpdateActionConverter<TEntity, TEntityDto> | undefined;
85
- registerUpdateActionConverter<TEntity, TEntityDto>(entityName: string, instance: IEntityUpdateActionConverter<TEntity, TEntityDto>): void;
71
+ registerAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string, instance: IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>): void;
72
+ resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
73
+ registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
74
+ resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
86
75
  resolveAuthorizationMiddleware<TEntity>(entityName: string): IEntityAuthorizationMiddleware<TEntity> | undefined;
87
76
  registerAuthorizationMiddleware<TEntity>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity>): void;
88
77
  resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
@@ -19,12 +19,8 @@ export declare const Services: {
19
19
  IEntityDeleteCommand: string;
20
20
  };
21
21
  Converters: {
22
- IEntityCreateCommandConverter: string;
23
- IEntityUpdateCommandConverter: string;
24
- IEntitiesSearchConverter: string;
25
- IEntityGetConverter: string;
26
- IEntityCreateActionConverter: string;
27
- IEntityUpdateActionConverter: string;
22
+ IEntityAdapter: string;
23
+ IEntityConverter: string;
28
24
  };
29
25
  Connectors: {
30
26
  IConnectorsConfiguration: string;
@@ -0,0 +1 @@
1
+ export { QueryBuilderBase } from "./queryBuilder";
@@ -0,0 +1,11 @@
1
+ import { IEntitiesQueryBuilder, IEntitySearchParameters, ISearchRequestPaging } from "../abstractions";
2
+ import { SortingType } from "../abstractions/common";
3
+ import { EntitiesSearchResults, EntitiesSearchResultsPaging } from "../models";
4
+ export declare abstract class QueryBuilderBase<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> implements IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets> {
5
+ abstract search(request: TEntitySearchParameters): Promise<EntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
6
+ protected getIndexBasedPagingResult({ paging, totResults, currentPageResults, }: {
7
+ paging?: ISearchRequestPaging<number>;
8
+ totResults: number;
9
+ currentPageResults: number;
10
+ }): EntitiesSearchResultsPaging<number> | undefined;
11
+ }
@@ -8,6 +8,7 @@ export declare class InMemoryRepository<TEntity> implements IEntityRepository<TE
8
8
  getBy(condition: FilterExpression<TEntity>): Promise<TEntity | undefined>;
9
9
  all(): Promise<TEntity[]>;
10
10
  find(condition: FilterExpression<TEntity>): Promise<TEntity[]>;
11
+ count(condition: FilterExpression<TEntity>): Promise<number>;
11
12
  findById(id: string[]): Promise<TEntity[]>;
12
13
  delete(id: string): Promise<void>;
13
14
  deleteBy(condition: FilterExpression<TEntity>): Promise<void>;