@punks/backend-entity-manager 0.0.22 → 0.0.24
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.
- package/dist/cjs/index.js +52296 -1181
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/__test__/entity/foo.d.ts +3 -3
- package/dist/cjs/types/__test__/providers/typeorm/entity/foo.d.ts +3 -2
- package/dist/cjs/types/abstractions/actions.d.ts +2 -2
- package/dist/cjs/types/abstractions/authentication.d.ts +9 -0
- package/dist/cjs/types/abstractions/authorization.d.ts +6 -5
- package/dist/cjs/types/abstractions/configuration.d.ts +6 -2
- package/dist/cjs/types/abstractions/index.d.ts +2 -1
- package/dist/cjs/types/abstractions/queries.d.ts +5 -4
- package/dist/cjs/types/actions/search.d.ts +2 -2
- package/dist/cjs/types/authorization/allowAll.d.ts +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/integrations/repository/typeorm/queryBuilder.d.ts +9 -8
- package/dist/cjs/types/models/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/__test__/server/authentication/index.d.ts +13 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/authentication.d.ts +10 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +2 -1
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/models.d.ts +17 -0
- package/dist/cjs/types/platforms/nest/__test__/server/entities/foo/query.d.ts +5 -2
- package/dist/cjs/types/platforms/nest/__test__/server/index.d.ts +10 -2
- package/dist/cjs/types/platforms/nest/__test__/server/middlewares/index.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/__test__/server/session/session.controller.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/__test__/tests/base/test_server_session.test.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/authentication/entityAuthorizationMiddleware.d.ts +7 -0
- package/dist/cjs/types/platforms/nest/authentication/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/module.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +3 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/services/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/authentication/services/providers.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +39 -0
- package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/extensions/multi-tenancy/module.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/index.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/ioc/registry/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/middlewares/errors-handler/index.d.ts +12 -0
- package/dist/cjs/types/platforms/nest/middlewares/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/plugins/email/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/plugins/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/processors/initializer/index.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/services/index.d.ts +1 -1
- package/dist/cjs/types/platforms/nest/services/providers.d.ts +2 -0
- package/dist/cjs/types/platforms/nest/services/session/index.d.ts +9 -0
- package/dist/cjs/types/platforms/nest/session/index.d.ts +1 -0
- package/dist/cjs/types/platforms/nest/session/middleware.d.ts +6 -0
- package/dist/cjs/types/platforms/nest/session/session.d.ts +12 -0
- package/dist/cjs/types/platforms/nest/session/storage.d.ts +6 -0
- package/dist/cjs/types/providers/services.d.ts +10 -6
- package/dist/cjs/types/queries/search.d.ts +5 -3
- package/dist/cjs/types/symbols/ioc.d.ts +3 -0
- package/dist/cjs/types/templates/queryBuilder.d.ts +5 -5
- package/dist/esm/index.js +52284 -1182
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/__test__/entity/foo.d.ts +3 -3
- package/dist/esm/types/__test__/providers/typeorm/entity/foo.d.ts +3 -2
- package/dist/esm/types/abstractions/actions.d.ts +2 -2
- package/dist/esm/types/abstractions/authentication.d.ts +9 -0
- package/dist/esm/types/abstractions/authorization.d.ts +6 -5
- package/dist/esm/types/abstractions/configuration.d.ts +6 -2
- package/dist/esm/types/abstractions/index.d.ts +2 -1
- package/dist/esm/types/abstractions/queries.d.ts +5 -4
- package/dist/esm/types/actions/search.d.ts +2 -2
- package/dist/esm/types/authorization/allowAll.d.ts +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/integrations/repository/typeorm/queryBuilder.d.ts +9 -8
- package/dist/esm/types/models/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/__test__/server/authentication/index.d.ts +13 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/authentication.d.ts +10 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/controller.d.ts +2 -1
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/dto.d.ts +7 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/models.d.ts +17 -0
- package/dist/esm/types/platforms/nest/__test__/server/entities/foo/query.d.ts +5 -2
- package/dist/esm/types/platforms/nest/__test__/server/index.d.ts +10 -2
- package/dist/esm/types/platforms/nest/__test__/server/middlewares/index.d.ts +6 -0
- package/dist/esm/types/platforms/nest/__test__/server/session/session.controller.d.ts +9 -0
- package/dist/esm/types/platforms/nest/__test__/tests/base/test_server_session.test.d.ts +1 -0
- package/dist/esm/types/platforms/nest/authentication/entityAuthorizationMiddleware.d.ts +7 -0
- package/dist/esm/types/platforms/nest/authentication/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/abstractions/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/module.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/services/authentication/index.d.ts +3 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/services/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/authentication/services/providers.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/extensions/multi-tenancy/abstractions/index.d.ts +39 -0
- package/dist/esm/types/platforms/nest/extensions/multi-tenancy/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/extensions/multi-tenancy/module.d.ts +2 -0
- package/dist/esm/types/platforms/nest/index.d.ts +6 -0
- package/dist/esm/types/platforms/nest/integrations/typeorm/queryBuilder.d.ts +1 -1
- package/dist/esm/types/platforms/nest/ioc/registry/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/middlewares/errors-handler/index.d.ts +12 -0
- package/dist/esm/types/platforms/nest/middlewares/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/plugins/email/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/plugins/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/processors/initializer/index.d.ts +2 -0
- package/dist/esm/types/platforms/nest/services/index.d.ts +1 -1
- package/dist/esm/types/platforms/nest/services/providers.d.ts +2 -0
- package/dist/esm/types/platforms/nest/services/session/index.d.ts +9 -0
- package/dist/esm/types/platforms/nest/session/index.d.ts +1 -0
- package/dist/esm/types/platforms/nest/session/middleware.d.ts +6 -0
- package/dist/esm/types/platforms/nest/session/session.d.ts +12 -0
- package/dist/esm/types/platforms/nest/session/storage.d.ts +6 -0
- package/dist/esm/types/providers/services.d.ts +10 -6
- package/dist/esm/types/queries/search.d.ts +5 -3
- package/dist/esm/types/symbols/ioc.d.ts +3 -0
- package/dist/esm/types/templates/queryBuilder.d.ts +5 -5
- package/dist/index.d.ts +88 -27
- package/package.json +15 -8
- package/readme.md +30 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IAuthenticationContext, IAuthenticationContextProvider } from "../abstractions";
|
|
1
2
|
import { IEntitiesSearchAction, IEntityActions, IEntityCreateAction, IEntityDeleteAction, IEntityGetAction, IEntityUpdateAction, IEntityUpsertAction } from "../abstractions/actions";
|
|
2
3
|
import { IEntityAdapter } from "../abstractions/adapters";
|
|
3
4
|
import { IEntityAuthorizationMiddleware } from "../abstractions/authorization";
|
|
@@ -17,6 +18,7 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
17
18
|
private readonly entityName;
|
|
18
19
|
constructor(services: EntitiesServiceLocator, entityName: string);
|
|
19
20
|
getRootServices(): EntitiesServiceLocator;
|
|
21
|
+
resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
|
|
20
22
|
resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
21
23
|
resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
22
24
|
resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
|
|
@@ -29,7 +31,7 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
29
31
|
resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
|
|
30
32
|
resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
|
|
31
33
|
resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
|
|
32
|
-
resolveAuthorizationMiddleware(): IEntityAuthorizationMiddleware<TEntity> | undefined;
|
|
34
|
+
resolveAuthorizationMiddleware<TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
|
|
33
35
|
resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
|
|
34
36
|
resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
35
37
|
resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
|
|
@@ -42,7 +44,7 @@ export declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
42
44
|
resolveUpdateAction<TEntityUpdateData, TEntityDto>(): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
|
|
43
45
|
resolveUpsertAction<TEntityUpdateData, TEntityDto>(): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
|
|
44
46
|
resolveDeleteAction(): IEntityDeleteAction<TEntity, TEntityId>;
|
|
45
|
-
resolveQueryBuilder<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
47
|
+
resolveQueryBuilder<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext>(): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>;
|
|
46
48
|
getEntityName(): string;
|
|
47
49
|
}
|
|
48
50
|
export declare class EntitiesServiceLocator {
|
|
@@ -51,6 +53,8 @@ export declare class EntitiesServiceLocator {
|
|
|
51
53
|
getProvider(): ServiceLocator;
|
|
52
54
|
resolveEventEmitter<TEventEmitter extends IEventEmitter>(): TEventEmitter;
|
|
53
55
|
registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
|
|
56
|
+
resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
|
|
57
|
+
registerAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(instance: TAuthenticationContextProvider): void;
|
|
54
58
|
resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
55
59
|
registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
|
|
56
60
|
resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
@@ -75,8 +79,8 @@ export declare class EntitiesServiceLocator {
|
|
|
75
79
|
resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
|
|
76
80
|
registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
|
|
77
81
|
resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
|
|
78
|
-
resolveAuthorizationMiddleware<TEntity>(entityName: string): IEntityAuthorizationMiddleware<TEntity> | undefined;
|
|
79
|
-
registerAuthorizationMiddleware<TEntity>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity>): void;
|
|
82
|
+
resolveAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
|
|
83
|
+
registerAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>): void;
|
|
80
84
|
resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
|
|
81
85
|
registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
|
|
82
86
|
resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
@@ -101,6 +105,6 @@ export declare class EntitiesServiceLocator {
|
|
|
101
105
|
registerUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string, instance: IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>): void;
|
|
102
106
|
resolveDeleteAction<TEntity, TEntityId>(entityName: string): IEntityDeleteAction<TEntity, TEntityId>;
|
|
103
107
|
registerDeleteAction<TEntity, TEntityId>(entityName: string, instance: IEntityDeleteAction<TEntity, TEntityId>): void;
|
|
104
|
-
resolveQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
105
|
-
registerQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string, instance: IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
|
|
108
|
+
resolveQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext>(entityName: string): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>;
|
|
109
|
+
registerQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext>(entityName: string, instance: IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>): void;
|
|
106
110
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { SortingType } from "../abstractions/common";
|
|
2
2
|
import { IEntitiesSearchQuery } from "../abstractions/queries";
|
|
3
3
|
import { IEntitySearchParameters } from "../abstractions/searchParameters";
|
|
4
|
-
import {
|
|
4
|
+
import { IEntitiesSearchResults } from "../models";
|
|
5
5
|
import { EntityServiceLocator } from "../providers/services";
|
|
6
|
-
export declare class EntitiesSearchQuery<TEntity, TEntityId, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> implements IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets> {
|
|
6
|
+
export declare class EntitiesSearchQuery<TEntity, TEntityId, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext> implements IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets> {
|
|
7
7
|
private readonly services;
|
|
8
8
|
constructor(services: EntityServiceLocator<TEntity, TEntityId>);
|
|
9
|
-
execute(request: TEntitySearchParameters): Promise<
|
|
9
|
+
execute(request: TEntitySearchParameters): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
|
|
10
|
+
private getContext;
|
|
11
|
+
private filterAllowedEntities;
|
|
10
12
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { IEntitiesQueryBuilder, IEntitySearchParameters, ISearchRequestPaging } from "../abstractions";
|
|
1
|
+
import { IAuthenticationContext, IEntitiesQueryBuilder, IEntitySearchParameters, ISearchRequestPaging } from "../abstractions";
|
|
2
2
|
import { SortingType } from "../abstractions/common";
|
|
3
|
-
import {
|
|
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<
|
|
3
|
+
import { IEntitiesSearchResults, IEntitiesSearchResultsPaging } from "../models";
|
|
4
|
+
export declare abstract class QueryBuilderBase<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext> implements IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext> {
|
|
5
|
+
abstract search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
|
|
6
6
|
protected getIndexBasedPagingResult({ paging, totResults, currentPageResults, }: {
|
|
7
7
|
paging?: ISearchRequestPaging<number>;
|
|
8
8
|
totResults: number;
|
|
9
9
|
currentPageResults: number;
|
|
10
|
-
}):
|
|
10
|
+
}): IEntitiesSearchResultsPaging<number> | undefined;
|
|
11
11
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="qs" />
|
|
2
|
+
/// <reference types="express" />
|
|
3
|
+
import { Type as Type$1, INestApplicationContext, ExceptionFilter, ArgumentsHost, NestMiddleware } from '@nestjs/common';
|
|
2
4
|
import { Module } from '@nestjs/core/injector/module';
|
|
3
5
|
import { ModulesContainer } from '@nestjs/core/injector/modules-container';
|
|
4
6
|
import { MetadataScanner } from '@nestjs/core/metadata-scanner';
|
|
5
7
|
import { ObjectLiteral, FindOneOptions, FindManyOptions, Repository, ObjectId, FindOptionsWhere, FindOptionsRelations } from 'typeorm';
|
|
6
8
|
import { EventEmitter2 } from '@nestjs/event-emitter';
|
|
7
9
|
import { ModulesContainer as ModulesContainer$1 } from '@nestjs/core';
|
|
10
|
+
import * as express from 'express';
|
|
11
|
+
import { Request, Response, NextFunction } from 'express';
|
|
12
|
+
import * as qs from 'qs';
|
|
13
|
+
import * as express_serve_static_core from 'express-serve-static-core';
|
|
8
14
|
|
|
9
15
|
type EnumType = string | number | symbol;
|
|
10
16
|
type SortingType = EnumType;
|
|
@@ -98,14 +104,24 @@ interface IEntityUpdateCommandAdapter<TEntity, TEntityUpdateData> {
|
|
|
98
104
|
interface IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> extends IEntityCreateCommandAdapter<TEntity, TEntityCreateData>, IEntityUpdateCommandAdapter<TEntity, TEntityUpdateData> {
|
|
99
105
|
}
|
|
100
106
|
|
|
107
|
+
interface IAuthenticationContext<TUserContext> {
|
|
108
|
+
isAuthenticated: boolean;
|
|
109
|
+
isAnonymous: boolean;
|
|
110
|
+
userId?: string;
|
|
111
|
+
userContext?: TUserContext;
|
|
112
|
+
}
|
|
113
|
+
interface IAuthenticationContextProvider<TUserContext> {
|
|
114
|
+
getContext(): Promise<IAuthenticationContext<TUserContext>>;
|
|
115
|
+
}
|
|
116
|
+
|
|
101
117
|
interface IAuthorizationResult {
|
|
102
118
|
isAuthorized: boolean;
|
|
103
119
|
}
|
|
104
|
-
interface IEntityAuthorizationMiddleware<TEntity> {
|
|
105
|
-
canRead(entity: Partial<TEntity
|
|
106
|
-
canCreate(entity: Partial<TEntity
|
|
107
|
-
canUpdate(entity: Partial<TEntity
|
|
108
|
-
canDelete(entity: Partial<TEntity
|
|
120
|
+
interface IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext> {
|
|
121
|
+
canRead(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
122
|
+
canCreate(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
123
|
+
canUpdate(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
124
|
+
canDelete(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
109
125
|
}
|
|
110
126
|
|
|
111
127
|
interface IEntityCreateCommand<TEntity, TEntityCreateData> {
|
|
@@ -214,8 +230,8 @@ interface IEntitiesSearchQuery<TEntity, TEntitySearchParameters extends IEntityS
|
|
|
214
230
|
interface IEntityGetQuery<TEntity, TEntityId> {
|
|
215
231
|
execute(id: TEntityId): Promise<TEntity | undefined>;
|
|
216
232
|
}
|
|
217
|
-
interface IEntitiesQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
|
|
218
|
-
search(request: TEntitySearchParameters): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
|
|
233
|
+
interface IEntitiesQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext> {
|
|
234
|
+
search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
|
|
219
235
|
}
|
|
220
236
|
|
|
221
237
|
interface IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets> {
|
|
@@ -274,6 +290,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
274
290
|
private readonly entityName;
|
|
275
291
|
constructor(services: EntitiesServiceLocator, entityName: string);
|
|
276
292
|
getRootServices(): EntitiesServiceLocator;
|
|
293
|
+
resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
|
|
277
294
|
resolveEntityManager(): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
278
295
|
resolveEntityActions(): IEntityActions<TEntity, TEntityId, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
279
296
|
resolveRepository<TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>(): IEntityRepository<TEntity, TEntityId, TGetConditions, TFindCondition, TUpdateCondition, TDeleteCondition>;
|
|
@@ -286,7 +303,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
286
303
|
resolveConnectorsConfiguration(): IConnectorsConfiguration<TEntity>;
|
|
287
304
|
resolveConverter<TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
|
|
288
305
|
resolveAdapter<TEntityCreateData, TEntityUpdateData>(): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
|
|
289
|
-
resolveAuthorizationMiddleware(): IEntityAuthorizationMiddleware<TEntity> | undefined;
|
|
306
|
+
resolveAuthorizationMiddleware<TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
|
|
290
307
|
resolveGetQuery<TEntityId>(): IEntityGetQuery<TEntity, TEntityId>;
|
|
291
308
|
resolveSearchQuery<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
292
309
|
resolveCreateCommand<TEntityCreateData>(): IEntityCreateCommand<TEntity, TEntityCreateData>;
|
|
@@ -299,7 +316,7 @@ declare class EntityServiceLocator<TEntity, TEntityId> {
|
|
|
299
316
|
resolveUpdateAction<TEntityUpdateData, TEntityDto>(): IEntityUpdateAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
|
|
300
317
|
resolveUpsertAction<TEntityUpdateData, TEntityDto>(): IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>;
|
|
301
318
|
resolveDeleteAction(): IEntityDeleteAction<TEntity, TEntityId>;
|
|
302
|
-
resolveQueryBuilder<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
319
|
+
resolveQueryBuilder<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext>(): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>;
|
|
303
320
|
getEntityName(): string;
|
|
304
321
|
}
|
|
305
322
|
declare class EntitiesServiceLocator {
|
|
@@ -308,6 +325,8 @@ declare class EntitiesServiceLocator {
|
|
|
308
325
|
getProvider(): ServiceLocator;
|
|
309
326
|
resolveEventEmitter<TEventEmitter extends IEventEmitter>(): TEventEmitter;
|
|
310
327
|
registerEventEmitter<TEventEmitter extends IEventEmitter>(instance: TEventEmitter): void;
|
|
328
|
+
resolveAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(): TAuthenticationContextProvider;
|
|
329
|
+
registerAuthenticationContextProvider<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>(instance: TAuthenticationContextProvider): void;
|
|
311
330
|
resolveEntityManager<TEntity>(entityName: string): IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
312
331
|
registerEntityManager<TEntity>(entityName: string, instance: IEntityManager<TEntity, unknown, unknown, unknown, any, any, unknown, unknown>): void;
|
|
313
332
|
resolveEntityActions<TEntity>(entityName: string): IEntityActions<TEntity, unknown, unknown, unknown, unknown, unknown, any, any, unknown, unknown>;
|
|
@@ -332,8 +351,8 @@ declare class EntitiesServiceLocator {
|
|
|
332
351
|
resolveAdapter<TEntity, TEntityCreateData, TEntityUpdateData>(entityName: string): IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData> | undefined;
|
|
333
352
|
registerConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string, instance: IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>): void;
|
|
334
353
|
resolveConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto>(entityName: string): IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateDto, TEntityUpdateDto> | undefined;
|
|
335
|
-
resolveAuthorizationMiddleware<TEntity>(entityName: string): IEntityAuthorizationMiddleware<TEntity> | undefined;
|
|
336
|
-
registerAuthorizationMiddleware<TEntity>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity>): void;
|
|
354
|
+
resolveAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string): IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> | undefined;
|
|
355
|
+
registerAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>(entityName: string, instance: IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>): void;
|
|
337
356
|
resolveGetQuery<TEntity, TEntityId>(entityName: string): IEntityGetQuery<TEntity, TEntityId>;
|
|
338
357
|
registerGetQuery<TEntity, TEntityId>(entityName: string, instance: IEntityGetQuery<TEntity, TEntityId>): void;
|
|
339
358
|
resolveSearchQuery<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesSearchQuery<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
@@ -358,24 +377,27 @@ declare class EntitiesServiceLocator {
|
|
|
358
377
|
registerUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>(entityName: string, instance: IEntityUpsertAction<TEntity, TEntityId, TEntityUpdateData, TEntityDto>): void;
|
|
359
378
|
resolveDeleteAction<TEntity, TEntityId>(entityName: string): IEntityDeleteAction<TEntity, TEntityId>;
|
|
360
379
|
registerDeleteAction<TEntity, TEntityId>(entityName: string, instance: IEntityDeleteAction<TEntity, TEntityId>): void;
|
|
361
|
-
resolveQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
362
|
-
registerQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets>(entityName: string, instance: IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>): void;
|
|
380
|
+
resolveQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext>(entityName: string): IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>;
|
|
381
|
+
registerQueryBuilder<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext>(entityName: string, instance: IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext>): void;
|
|
363
382
|
}
|
|
364
383
|
|
|
365
384
|
interface IEntityManagerServiceRoot {
|
|
366
385
|
locator: ServiceLocator;
|
|
367
386
|
getEntitiesServicesLocator(): EntitiesServiceLocator;
|
|
368
387
|
getEntityServicesLocator<TEntity, TEntityId>(entityName: string): EntityServiceLocator<TEntity, TEntityId>;
|
|
388
|
+
addAuthentication<TAuthenticationContextProvider extends IAuthenticationContextProvider<TUserContext>, TUserContext>({ provider, }: {
|
|
389
|
+
provider: TAuthenticationContextProvider;
|
|
390
|
+
}): void;
|
|
369
391
|
registerEntity<TEntity, TEntityId, TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>(entityName: string, repository: TRepository): IEntityManagerServiceCollection<TEntity, TEntityId>;
|
|
370
392
|
}
|
|
371
393
|
interface IEntityManagerServiceCollection<TEntity, TEntityId> {
|
|
372
394
|
getServiceLocator(): EntityServiceLocator<TEntity, TEntityId>;
|
|
373
|
-
mapCrudOperations<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TEntitiesQueryBuilder extends IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets>>({ queryBuilder, }: {
|
|
395
|
+
mapCrudOperations<TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TEntitiesQueryBuilder extends IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, unknown>>({ queryBuilder, }: {
|
|
374
396
|
queryBuilder: TEntitiesQueryBuilder;
|
|
375
397
|
}): IEntityManagerServiceCollection<TEntity, TEntityId>;
|
|
376
398
|
addConverter<TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput, TEntityConverter extends IEntityConverter<TEntity, TEntityDto, TListItemDto, TEntityCreateInput, TEntityUpdateInput>>(converter: TEntityConverter): IEntityManagerServiceCollection<TEntity, TEntityId>;
|
|
377
399
|
addAdapter<TEntityCreateData, TEntityUpdateData, TEntityAdapter extends IEntityAdapter<TEntity, TEntityCreateData, TEntityUpdateData>>(adapter: TEntityAdapter): IEntityManagerServiceCollection<TEntity, TEntityId>;
|
|
378
|
-
addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity
|
|
400
|
+
addAuthorization<TEntityAuthorizationMiddleware extends IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext>, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext>({ middleware, }: {
|
|
379
401
|
middleware: TEntityAuthorizationMiddleware;
|
|
380
402
|
}): IEntityManagerServiceCollection<TEntity, TEntityId>;
|
|
381
403
|
withReplica<TRepository extends IEntityRepository<TEntity, TEntityId, unknown, unknown, unknown, unknown>>({ name, options, repository, }: {
|
|
@@ -433,6 +455,13 @@ interface ISearchResultsPaging<TCursor> {
|
|
|
433
455
|
prevPageCursor?: TCursor;
|
|
434
456
|
}
|
|
435
457
|
|
|
458
|
+
declare abstract class NestEntityAuthorizationMiddleware<TEntity, TAuthenticationContext extends IAuthenticationContext<TUserContext>, TUserContext> implements IEntityAuthorizationMiddleware<TEntity, TAuthenticationContext, TUserContext> {
|
|
459
|
+
abstract canRead(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
460
|
+
abstract canCreate(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
461
|
+
abstract canUpdate(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
462
|
+
abstract canDelete(entity: Partial<TEntity>, context: TAuthenticationContext): Promise<IAuthorizationResult>;
|
|
463
|
+
}
|
|
464
|
+
|
|
436
465
|
interface EntityAuthMiddlewareProps {
|
|
437
466
|
entityName: string;
|
|
438
467
|
}
|
|
@@ -579,7 +608,7 @@ declare class CustomDiscoveryService {
|
|
|
579
608
|
declare class EntityManagerRegistry {
|
|
580
609
|
private readonly container;
|
|
581
610
|
getContainer(): IEntityManagerServiceRoot;
|
|
582
|
-
|
|
611
|
+
registerGlobalServices({ eventEmitter, }: {
|
|
583
612
|
eventEmitter?: IEventEmitter;
|
|
584
613
|
}): Promise<void>;
|
|
585
614
|
registerDiscoveredEntity(app: INestApplicationContext, { adapter, entityName, converter, queryBuilder, repository, authMiddleware, }: {
|
|
@@ -607,8 +636,14 @@ declare abstract class NestEntityManager<TEntity, TEntityId, TEntityCreateData,
|
|
|
607
636
|
get provider(): IEntityManager<TEntity, TEntityId, TEntityCreateData, TEntityUpdateData, TEntitySearchParameters, TSorting, TCursor, TFacets>;
|
|
608
637
|
}
|
|
609
638
|
|
|
610
|
-
declare
|
|
611
|
-
|
|
639
|
+
declare class AuthenticationModule {
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
declare class MultiTenancyModule {
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
declare abstract class QueryBuilderBase<TEntity, TEntitySearchParameters extends IEntitySearchParameters<TSorting, TCursor>, TSorting extends SortingType, TCursor, TFacets, TUserContext> implements IEntitiesQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TCursor, TFacets, TUserContext> {
|
|
646
|
+
abstract search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, TCursor, TFacets>>;
|
|
612
647
|
protected getIndexBasedPagingResult({ paging, totResults, currentPageResults, }: {
|
|
613
648
|
paging?: ISearchRequestPaging<number>;
|
|
614
649
|
totResults: number;
|
|
@@ -637,24 +672,25 @@ declare class TypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> implem
|
|
|
637
672
|
upsert(id: TEntityId, entity: Partial<TEntity>): Promise<TEntity>;
|
|
638
673
|
}
|
|
639
674
|
|
|
640
|
-
declare abstract class TypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets> extends QueryBuilderBase<TEntity, TEntitySearchParameters, TSorting, number, TFacets> {
|
|
675
|
+
declare abstract class TypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets, TUserContext> extends QueryBuilderBase<TEntity, TEntitySearchParameters, TSorting, number, TFacets, TUserContext> {
|
|
641
676
|
private readonly services;
|
|
642
677
|
private repository;
|
|
643
678
|
constructor(services: EntityServiceLocator<TEntity, unknown>);
|
|
644
|
-
search(request: TEntitySearchParameters): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, number, TFacets>>;
|
|
645
|
-
protected findPagedQueryResults(request: TEntitySearchParameters): Promise<TEntity[]>;
|
|
646
|
-
protected getRelationsToLoad(request: TEntitySearchParameters): FindOptionsRelations<TEntity> | undefined;
|
|
679
|
+
search(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<IEntitiesSearchResults<TEntitySearchParameters, TEntity, TSorting, number, TFacets>>;
|
|
680
|
+
protected findPagedQueryResults(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<TEntity[]>;
|
|
681
|
+
protected getRelationsToLoad(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): FindOptionsRelations<TEntity> | undefined;
|
|
647
682
|
protected buildPagingParameters(request: TEntitySearchParameters): {
|
|
648
683
|
skip: number | undefined;
|
|
649
684
|
take: number | undefined;
|
|
650
685
|
};
|
|
651
|
-
protected countQueryResults(request: TEntitySearchParameters): Promise<number>;
|
|
686
|
+
protected countQueryResults(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<number>;
|
|
652
687
|
protected abstract buildWhereClause(request: TEntitySearchParameters): FindOptionsWhere<TEntity>[] | FindOptionsWhere<TEntity>;
|
|
653
|
-
protected abstract
|
|
688
|
+
protected abstract buildContextFilter(context?: IAuthenticationContext<TUserContext>): FindOptionsWhere<TEntity>[] | FindOptionsWhere<TEntity>;
|
|
689
|
+
protected abstract calculateFacets(request: TEntitySearchParameters, context?: IAuthenticationContext<TUserContext>): Promise<TFacets | undefined>;
|
|
654
690
|
protected getRepository(): TypeOrmRepository<TEntity, unknown>;
|
|
655
691
|
}
|
|
656
692
|
|
|
657
|
-
declare abstract class NestTypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets> extends TypeOrmQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TFacets> {
|
|
693
|
+
declare abstract class NestTypeOrmQueryBuilder<TEntity extends ObjectLiteral, TEntitySearchParameters extends IEntitySearchParameters<TSorting, number>, TSorting extends SortingType, TFacets, TUserContext> extends TypeOrmQueryBuilder<TEntity, TEntitySearchParameters, TSorting, TFacets, TUserContext> {
|
|
658
694
|
constructor(entityName: string, registry: EntityManagerRegistry);
|
|
659
695
|
}
|
|
660
696
|
|
|
@@ -662,6 +698,18 @@ declare class NestTypeOrmRepository<TEntity extends ObjectLiteral, TEntityId> ex
|
|
|
662
698
|
constructor(repository: Repository<TEntity>);
|
|
663
699
|
}
|
|
664
700
|
|
|
701
|
+
interface RuntimeErrorInformation {
|
|
702
|
+
exception: any;
|
|
703
|
+
request: any;
|
|
704
|
+
response: any;
|
|
705
|
+
}
|
|
706
|
+
declare abstract class AppExceptionsFilterBase implements ExceptionFilter {
|
|
707
|
+
catch(exception: unknown, host: ArgumentsHost): void;
|
|
708
|
+
protected getErrorStatusCode(exception: any): number;
|
|
709
|
+
protected abstract logError(info: RuntimeErrorInformation): Promise<void>;
|
|
710
|
+
protected abstract getCustomErrorStatusCode(exception: any): number | undefined;
|
|
711
|
+
}
|
|
712
|
+
|
|
665
713
|
declare class NestEventEmitter implements IEventEmitter {
|
|
666
714
|
private eventEmitter;
|
|
667
715
|
constructor();
|
|
@@ -672,6 +720,7 @@ declare class NestEventEmitter implements IEventEmitter {
|
|
|
672
720
|
interface EntityManagerStaticProviders {
|
|
673
721
|
eventEmitter: EventEmitter2;
|
|
674
722
|
modulesContainer: ModulesContainer$1;
|
|
723
|
+
authenticationProvider?: IAuthenticationContextProvider<unknown>;
|
|
675
724
|
}
|
|
676
725
|
declare class EntityManagerInitializer {
|
|
677
726
|
private readonly discover;
|
|
@@ -689,9 +738,21 @@ declare class EntityManagerInitializer {
|
|
|
689
738
|
private discoverAuthMiddlewares;
|
|
690
739
|
}
|
|
691
740
|
|
|
741
|
+
declare class AppSessionMiddleware implements NestMiddleware {
|
|
742
|
+
use(req: Request, res: Response, next: NextFunction): void;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
declare class AppSessionService {
|
|
746
|
+
getValue<T>(key: string): T;
|
|
747
|
+
setValue<T>(key: string, value: T): void;
|
|
748
|
+
clearValue(key: string): void;
|
|
749
|
+
getRequest(): express.Request<express_serve_static_core.ParamsDictionary, any, any, qs.ParsedQs, Record<string, any>>;
|
|
750
|
+
private getSession;
|
|
751
|
+
}
|
|
752
|
+
|
|
692
753
|
declare class EntityManagerModule {
|
|
693
754
|
}
|
|
694
755
|
|
|
695
756
|
declare const newUuid: () => string;
|
|
696
757
|
|
|
697
|
-
export { EntityActionsProps, EntityAdapterProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerException, EntityManagerInitializer, 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, ModulesContainerProvider, MultipleEntitiesFoundException, NestEntityActions, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, QueryBuilderBase, ReplicaConfiguration, ReplicaOptions, ReplicationMode, SortDirection, SortingType, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, newUuid };
|
|
758
|
+
export { AppExceptionsFilterBase, AppSessionMiddleware, AppSessionService, AuthenticationModule, EntityActionsProps, EntityAdapterProps, EntityAuthMiddlewareProps, EntityConnectorProps, EntityConverterProps, EntityManagerException, EntityManagerInitializer, EntityManagerModule, EntityManagerProps, EntityManagerRegistry, EntityManagerSymbols, EntityNotFoundException, EntityOperationType, EntityOperationUnauthorizedException, EntityProps, EntityQueryBuilderProps, EntityRepositoryProps, FilterExpression, IAuthenticationContext, IAuthenticationContextProvider, IAuthorizationResult, IEntitiesQueryBuilder, IEntitiesSearchAction, IEntitiesSearchQuery, IEntitiesSearchResults, IEntitiesSearchResultsPaging, 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, ModulesContainerProvider, MultiTenancyModule, MultipleEntitiesFoundException, NestEntityActions, NestEntityAuthorizationMiddleware, NestEntityManager, NestTypeOrmQueryBuilder, NestTypeOrmRepository, QueryBuilderBase, ReplicaConfiguration, ReplicaOptions, ReplicationMode, SortDirection, SortingType, WpEntity, WpEntityActions, WpEntityAdapter, WpEntityAuthMiddleware, WpEntityConnector, WpEntityConverter, WpEntityManager, WpEntityQueryBuilder, WpEntityRepository, newUuid };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@punks/backend-entity-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.24",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"types": "dist/index.d.ts",
|
|
17
17
|
"scripts": {
|
|
18
|
-
"test": "jest
|
|
18
|
+
"test": "jest --passWithNoTests",
|
|
19
19
|
"clean": "rimraf dist",
|
|
20
20
|
"build": "yarn clean && rollup -c",
|
|
21
21
|
"deploy:npm": "yarn build && npm publish --access public",
|
|
@@ -26,20 +26,26 @@
|
|
|
26
26
|
"license": "ISC",
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@babel/core": "^7.21.0",
|
|
29
|
-
"@nestjs/common": "^10.0
|
|
30
|
-
"@nestjs/core": "^10.0
|
|
29
|
+
"@nestjs/common": "^10.1.0",
|
|
30
|
+
"@nestjs/core": "^10.1.0",
|
|
31
31
|
"@nestjs/event-emitter": "^2.0.0",
|
|
32
|
-
"@nestjs/
|
|
33
|
-
"@nestjs/
|
|
32
|
+
"@nestjs/platform-express": "^10.1.0",
|
|
33
|
+
"@nestjs/swagger": "^7.1.2",
|
|
34
|
+
"@nestjs/testing": "^10.1.0",
|
|
34
35
|
"@nestjs/typeorm": "^10.0.0",
|
|
35
36
|
"@rollup/plugin-commonjs": "^21.0.1",
|
|
37
|
+
"@rollup/plugin-json": "^6.0.0",
|
|
36
38
|
"@rollup/plugin-node-resolve": "^13.0.6",
|
|
37
39
|
"@rollup/plugin-typescript": "^11.0.0",
|
|
40
|
+
"@types/express": "^4.17.17",
|
|
38
41
|
"@types/jest": "^29.5.2",
|
|
39
42
|
"@types/lodash": "^4.14.195",
|
|
43
|
+
"@types/supertest": "^2.0.12",
|
|
44
|
+
"async_hooks": "^1.0.0",
|
|
40
45
|
"class-transformer": "^0.5.1",
|
|
41
46
|
"class-validator": "^0.14.0",
|
|
42
|
-
"
|
|
47
|
+
"express": "^4.18.2",
|
|
48
|
+
"jest": "^29.6.1",
|
|
43
49
|
"lodash": "^4.17.21",
|
|
44
50
|
"pg": "^8.11.1",
|
|
45
51
|
"pg-mem": "^2.6.13",
|
|
@@ -49,6 +55,7 @@
|
|
|
49
55
|
"rollup-plugin-dts": "^4.0.1",
|
|
50
56
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
51
57
|
"rollup-plugin-postcss": "^4.0.2",
|
|
58
|
+
"supertest": "^6.3.3",
|
|
52
59
|
"ts-jest": "^29.1.1",
|
|
53
60
|
"tslib": "^2.5.0",
|
|
54
61
|
"typeorm": "^0.3.17",
|
|
@@ -56,7 +63,7 @@
|
|
|
56
63
|
},
|
|
57
64
|
"peerDependencies": {},
|
|
58
65
|
"dependencies": {
|
|
59
|
-
"@punks/backend-core": "0.0.
|
|
66
|
+
"@punks/backend-core": "0.0.12"
|
|
60
67
|
},
|
|
61
68
|
"jest": {
|
|
62
69
|
"transform": {
|
package/readme.md
CHANGED
|
@@ -8,6 +8,12 @@ This library contains the entity manager of the Punks backend.
|
|
|
8
8
|
npm install @punks/backend-entity-manager @punks/backend-core class-transformer class-validator
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Add authentication
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install express async_hooks @nestjs/platform-express
|
|
15
|
+
```
|
|
16
|
+
|
|
11
17
|
## Supported ORMs:
|
|
12
18
|
|
|
13
19
|
- [TypeORM](https://typeorm.io/)
|
|
@@ -24,3 +30,27 @@ npm install typeorm
|
|
|
24
30
|
# NestJS with TypeORM
|
|
25
31
|
npm install @nestjs/core @nestjs/common @nestjs/event-emitter @nestjs/typeorm @nestjs/swagger
|
|
26
32
|
```
|
|
33
|
+
|
|
34
|
+
## Library structure
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
├─ extensions
|
|
38
|
+
| |
|
|
39
|
+
| └─ plugins
|
|
40
|
+
| |
|
|
41
|
+
| └─ email: email plugin
|
|
42
|
+
|
|
|
43
|
+
├─ platforms
|
|
44
|
+
| |
|
|
45
|
+
| └─ nestjs: nestjs core module
|
|
46
|
+
|
|
|
47
|
+
├─ actions: entity manager actions
|
|
48
|
+
| |
|
|
49
|
+
| ├── commands
|
|
50
|
+
| |
|
|
51
|
+
| └── queries
|
|
52
|
+
|
|
|
53
|
+
├─ ioc: dependency injection
|
|
54
|
+
|
|
|
55
|
+
└─ abstractions: common abstractions
|
|
56
|
+
```
|