@clairejs/server 3.1.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +532 -528
  2. package/dist/common/FileOperation.d.ts +5 -5
  3. package/dist/common/constants.d.ts +1 -1
  4. package/dist/database/adapter/AbstractDatabaseAdapter.d.ts +19 -19
  5. package/dist/database/adapter/AbstractQuery.d.ts +52 -52
  6. package/dist/database/adapter/DefaultSqlDatabaseAdapter.d.ts +18 -18
  7. package/dist/database/adapter/IDatabaseProvider.d.ts +4 -4
  8. package/dist/database/adapter/IQuery.d.ts +75 -75
  9. package/dist/database/adapter/IQueryProvider.d.ts +9 -9
  10. package/dist/database/adapter/aggregators.d.ts +21 -21
  11. package/dist/database/adapter/providers.d.ts +8 -8
  12. package/dist/database/decorators.d.ts +2 -2
  13. package/dist/database/migrator/AbstractDatabaseMigrator.d.ts +4 -4
  14. package/dist/database/migrator/DefaultSqlDatabaseMigrator.d.ts +28 -28
  15. package/dist/database/transaction/ITransaction.d.ts +10 -10
  16. package/dist/database/transaction/ITransactionProvider.d.ts +4 -4
  17. package/dist/database/transaction/TransactionLink.d.ts +14 -14
  18. package/dist/database/transaction/TransactionObjectMetadata.d.ts +4 -4
  19. package/dist/database/transaction/TransactionState.d.ts +5 -5
  20. package/dist/database/util/transaction-provider.d.ts +1 -1
  21. package/dist/http/auth/AbstractHttpAuthorizationProvider.d.ts +7 -7
  22. package/dist/http/auth/AbstractPrincipalResolver.d.ts +5 -5
  23. package/dist/http/auth/AbstractRbacAuthProvider.d.ts +16 -16
  24. package/dist/http/auth/IPrincipal.d.ts +3 -3
  25. package/dist/http/auth/RedisRbacAuthProvider.d.ts +17 -17
  26. package/dist/http/auth/SocketRbacAuthProvider.d.ts +24 -24
  27. package/dist/http/auth/rbac.d.ts +33 -33
  28. package/dist/http/common/HttpRequest.d.ts +39 -39
  29. package/dist/http/common/HttpResponse.d.ts +25 -25
  30. package/dist/http/common/RequestOptions.d.ts +9 -9
  31. package/dist/http/common/ResponseValues.d.ts +10 -10
  32. package/dist/http/common/types.d.ts +1 -1
  33. package/dist/http/controller/AbstractHttpController.d.ts +12 -12
  34. package/dist/http/controller/AbstractHttpMiddleware.d.ts +5 -5
  35. package/dist/http/controller/AbstractHttpRequestHandler.d.ts +10 -10
  36. package/dist/http/controller/ControllerMetadata.d.ts +6 -6
  37. package/dist/http/controller/CrudHttpController.d.ts +53 -53
  38. package/dist/http/controller/DefaultHttpRequestHandler.d.ts +19 -19
  39. package/dist/http/controller/EndpointMetadata.d.ts +36 -36
  40. package/dist/http/controller/HttpEndpoint.d.ts +12 -12
  41. package/dist/http/controller/ModelRepository.d.ts +36 -36
  42. package/dist/http/controller/MountedEndpointInfo.d.ts +6 -6
  43. package/dist/http/decorators.d.ts +28 -28
  44. package/dist/http/security/AbstractAccessCondition.d.ts +7 -7
  45. package/dist/http/security/access-conditions/DtoFieldValidation.d.ts +4 -4
  46. package/dist/http/security/access-conditions/FilterModelFieldAccessCondition.d.ts +4 -4
  47. package/dist/http/security/access-conditions/MaximumQueryLimit.d.ts +8 -8
  48. package/dist/index.d.ts +48 -48
  49. package/dist/index.js +1 -1
  50. package/dist/logging/FileLogMedium.d.ts +13 -13
  51. package/dist/service/AbstractCacheService.d.ts +23 -23
  52. package/dist/service/AbstractFileService.d.ts +14 -14
  53. package/dist/service/AbstractService.d.ts +9 -9
  54. package/dist/socket/AbstractServerSocket.d.ts +39 -39
  55. package/dist/socket/AbstractServerSocketManager.d.ts +19 -19
  56. package/dist/socket/AwsSocketManager.d.ts +46 -46
  57. package/dist/socket/IServerSocket.d.ts +8 -8
  58. package/dist/socket/LocalSocketManager.d.ts +23 -23
  59. package/dist/system/AbstractFileUploadHandler.d.ts +6 -6
  60. package/dist/system/ClaireServer.d.ts +10 -10
  61. package/dist/system/ExpressWrapper.d.ts +17 -17
  62. package/dist/system/FileUploadHandler.d.ts +10 -10
  63. package/dist/system/IRequestHandler.d.ts +5 -5
  64. package/dist/system/LambdaWrapper.d.ts +17 -17
  65. package/dist/system/ServerGlobalStore.d.ts +5 -5
  66. package/package.json +59 -59
@@ -1,16 +1,16 @@
1
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
2
- import { HttpRequest } from "../common/HttpRequest";
3
- import { MountedEndpointInfo } from "../controller/MountedEndpointInfo";
4
- import { RbacCache } from "./rbac";
5
- import { AbstractHttpAuthorizationProvider } from "./AbstractHttpAuthorizationProvider";
6
- import { AbstractPrincipalResolver } from "./AbstractPrincipalResolver";
7
- import { IPrincipal } from "./IPrincipal";
8
- export declare abstract class AbstractRbacAuthProvider<T extends IPrincipal> extends AbstractHttpAuthorizationProvider<T> {
9
- readonly db: AbstractDatabaseAdapter;
10
- readonly principalResolver: AbstractPrincipalResolver<T>;
11
- constructor(db: AbstractDatabaseAdapter, principalResolver: AbstractPrincipalResolver<T>);
12
- abstract getRbacCache(): Promise<RbacCache | undefined>;
13
- abstract getRolesOfPrincipal(principal: T): Promise<number[]>;
14
- resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
15
- authorize(principal: T | undefined, request: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
16
- }
1
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
2
+ import { HttpRequest } from "../common/HttpRequest";
3
+ import { MountedEndpointInfo } from "../controller/MountedEndpointInfo";
4
+ import { RbacCache } from "./rbac";
5
+ import { AbstractHttpAuthorizationProvider } from "./AbstractHttpAuthorizationProvider";
6
+ import { AbstractPrincipalResolver } from "./AbstractPrincipalResolver";
7
+ import { IPrincipal } from "./IPrincipal";
8
+ export declare abstract class AbstractRbacAuthProvider<T extends IPrincipal> extends AbstractHttpAuthorizationProvider<T> {
9
+ readonly db: AbstractDatabaseAdapter;
10
+ readonly principalResolver: AbstractPrincipalResolver<T>;
11
+ constructor(db: AbstractDatabaseAdapter, principalResolver: AbstractPrincipalResolver<T>);
12
+ abstract getRbacCache(): Promise<RbacCache | undefined>;
13
+ abstract getRolesOfPrincipal(principal: T): Promise<number[]>;
14
+ resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
15
+ authorize(principal: T | undefined, request: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
16
+ }
@@ -1,3 +1,3 @@
1
- export interface IPrincipal {
2
- id: number;
3
- }
1
+ export interface IPrincipal {
2
+ id: number;
3
+ }
@@ -1,17 +1,17 @@
1
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
2
- import { AbstractCacheService } from "../../service/AbstractCacheService";
3
- import { AbstractPrincipalResolver } from "./AbstractPrincipalResolver";
4
- import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
5
- import { IPrincipal } from "./IPrincipal";
6
- import { RbacCache } from "./rbac";
7
- export declare class RedisRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> {
8
- readonly serviceId: string;
9
- readonly rbacChannel: string;
10
- readonly principalChannel: string;
11
- readonly db: AbstractDatabaseAdapter;
12
- readonly principalResolver: AbstractPrincipalResolver<T>;
13
- readonly cacheService: AbstractCacheService;
14
- constructor(serviceId: string, rbacChannel: string, principalChannel: string, db: AbstractDatabaseAdapter, principalResolver: AbstractPrincipalResolver<T>, cacheService: AbstractCacheService);
15
- getRbacCache(): Promise<RbacCache | undefined>;
16
- getRolesOfPrincipal(principal: T): Promise<number[]>;
17
- }
1
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
2
+ import { AbstractCacheService } from "../../service/AbstractCacheService";
3
+ import { AbstractPrincipalResolver } from "./AbstractPrincipalResolver";
4
+ import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
5
+ import { IPrincipal } from "./IPrincipal";
6
+ import { RbacCache } from "./rbac";
7
+ export declare class RedisRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> {
8
+ readonly serviceId: string;
9
+ readonly rbacChannel: string;
10
+ readonly principalChannel: string;
11
+ readonly db: AbstractDatabaseAdapter;
12
+ readonly principalResolver: AbstractPrincipalResolver<T>;
13
+ readonly cacheService: AbstractCacheService;
14
+ constructor(serviceId: string, rbacChannel: string, principalChannel: string, db: AbstractDatabaseAdapter, principalResolver: AbstractPrincipalResolver<T>, cacheService: AbstractCacheService);
15
+ getRbacCache(): Promise<RbacCache | undefined>;
16
+ getRolesOfPrincipal(principal: T): Promise<number[]>;
17
+ }
@@ -1,24 +1,24 @@
1
- import { IInit, ISocket } from "@clairejs/core";
2
- import { AbstractPrincipalResolver } from "./AbstractPrincipalResolver";
3
- import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
4
- import { RbacCache } from "./rbac";
5
- import { IPrincipal } from "./IPrincipal";
6
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
7
- export declare class SocketRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> implements IInit {
8
- readonly rbacCacheChannel: string;
9
- readonly principalCacheChannel: string;
10
- readonly db: AbstractDatabaseAdapter;
11
- readonly principalResolver: AbstractPrincipalResolver<T>;
12
- readonly socketProvider: (channels: string[]) => Promise<ISocket>;
13
- socket?: ISocket;
14
- rbacCache?: RbacCache;
15
- idResolvers: {
16
- principalId: number;
17
- resolvers: ((roleIds: number[]) => void)[];
18
- }[];
19
- constructor(rbacCacheChannel: string, principalCacheChannel: string, db: AbstractDatabaseAdapter, principalResolver: AbstractPrincipalResolver<T>, socketProvider: (channels: string[]) => Promise<ISocket>);
20
- exit(): void;
21
- init(): Promise<void>;
22
- getRbacCache(): Promise<RbacCache | undefined>;
23
- getRolesOfPrincipal(principal: T): Promise<number[]>;
24
- }
1
+ import { IInit, ISocket } from "@clairejs/core";
2
+ import { AbstractPrincipalResolver } from "./AbstractPrincipalResolver";
3
+ import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
4
+ import { RbacCache } from "./rbac";
5
+ import { IPrincipal } from "./IPrincipal";
6
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
7
+ export declare class SocketRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> implements IInit {
8
+ readonly rbacCacheChannel: string;
9
+ readonly principalCacheChannel: string;
10
+ readonly db: AbstractDatabaseAdapter;
11
+ readonly principalResolver: AbstractPrincipalResolver<T>;
12
+ readonly socketProvider: (channels: string[]) => Promise<ISocket>;
13
+ socket?: ISocket;
14
+ rbacCache?: RbacCache;
15
+ idResolvers: {
16
+ principalId: number;
17
+ resolvers: ((roleIds: number[]) => void)[];
18
+ }[];
19
+ constructor(rbacCacheChannel: string, principalCacheChannel: string, db: AbstractDatabaseAdapter, principalResolver: AbstractPrincipalResolver<T>, socketProvider: (channels: string[]) => Promise<ISocket>);
20
+ exit(): void;
21
+ init(): Promise<void>;
22
+ getRbacCache(): Promise<RbacCache | undefined>;
23
+ getRolesOfPrincipal(principal: T): Promise<number[]>;
24
+ }
@@ -1,33 +1,33 @@
1
- export interface RbacRolePolicy {
2
- roleId: number;
3
- policyId: number;
4
- }
5
- export interface RbacRole {
6
- roleId: number;
7
- isSuperRole: boolean;
8
- }
9
- export interface RbacPolicyPermissionCondition {
10
- policyPermissionId: number;
11
- conditionName: string;
12
- conditionValue: string;
13
- }
14
- export interface RbacPolicyPermission {
15
- id: number;
16
- policyId: number;
17
- permission: string;
18
- }
19
- export interface RbacPolicy {
20
- policyId: number;
21
- isUserDefined: boolean;
22
- }
23
- export interface PrincipalRole {
24
- principalId: number;
25
- roleIds: number[];
26
- }
27
- export interface RbacCache {
28
- roles?: RbacRole[];
29
- policies?: RbacPolicy[];
30
- rolePolicies?: RbacRolePolicy[];
31
- policyPermissions?: RbacPolicyPermission[];
32
- policyPermissionConditions?: RbacPolicyPermissionCondition[];
33
- }
1
+ export interface RbacRolePolicy {
2
+ roleId: number;
3
+ policyId: number;
4
+ }
5
+ export interface RbacRole {
6
+ roleId: number;
7
+ isSuperRole: boolean;
8
+ }
9
+ export interface RbacPolicyPermissionCondition {
10
+ policyPermissionId: number;
11
+ conditionName: string;
12
+ conditionValue: string;
13
+ }
14
+ export interface RbacPolicyPermission {
15
+ id: number;
16
+ policyId: number;
17
+ permission: string;
18
+ }
19
+ export interface RbacPolicy {
20
+ policyId: number;
21
+ isUserDefined: boolean;
22
+ }
23
+ export interface PrincipalRole {
24
+ principalId: number;
25
+ roleIds: number[];
26
+ }
27
+ export interface RbacCache {
28
+ roles?: RbacRole[];
29
+ policies?: RbacPolicy[];
30
+ rolePolicies?: RbacRolePolicy[];
31
+ policyPermissions?: RbacPolicyPermission[];
32
+ policyPermissionConditions?: RbacPolicyPermissionCondition[];
33
+ }
@@ -1,39 +1,39 @@
1
- import { HttpMethod, SocketMethod } from "@clairejs/core";
2
- import { EndpointMetadata } from "../controller/EndpointMetadata";
3
- import { IServerSocket } from "../../socket/IServerSocket";
4
- import { IPrincipal } from "../auth/IPrincipal";
5
- export declare class HttpRequest {
6
- private valueHolder;
7
- private method;
8
- private pathName;
9
- private headers;
10
- private params;
11
- private query;
12
- private body;
13
- private hash;
14
- private socket?;
15
- private authInfo?;
16
- constructor(options: {
17
- method: HttpMethod | SocketMethod;
18
- pathName: string;
19
- headers?: any;
20
- hash?: string;
21
- query?: any;
22
- params?: any;
23
- body?: any;
24
- socket?: IServerSocket;
25
- }, endpointMetadata?: EndpointMetadata);
26
- private jsonParsing;
27
- getAuthInfo(): IPrincipal | undefined;
28
- setAuthInfo(authInfo?: IPrincipal): void;
29
- getHeaders(): any;
30
- getMethod(): HttpMethod | SocketMethod;
31
- getHash(): string;
32
- getPathName(): string;
33
- getValue<T extends any>(key: string): T;
34
- setValue<T extends any>(key: string, value: T): void;
35
- getParams<T extends any>(): T;
36
- getQuery<T extends any>(): T;
37
- getBody<T extends any>(): T;
38
- getSocket(): IServerSocket;
39
- }
1
+ import { HttpMethod, SocketMethod } from "@clairejs/core";
2
+ import { EndpointMetadata } from "../controller/EndpointMetadata";
3
+ import { IServerSocket } from "../../socket/IServerSocket";
4
+ import { IPrincipal } from "../auth/IPrincipal";
5
+ export declare class HttpRequest {
6
+ private valueHolder;
7
+ private method;
8
+ private pathName;
9
+ private headers;
10
+ private params;
11
+ private query;
12
+ private body;
13
+ private hash;
14
+ private socket?;
15
+ private authInfo?;
16
+ constructor(options: {
17
+ method: HttpMethod | SocketMethod;
18
+ pathName: string;
19
+ headers?: any;
20
+ hash?: string;
21
+ query?: any;
22
+ params?: any;
23
+ body?: any;
24
+ socket?: IServerSocket;
25
+ }, endpointMetadata?: EndpointMetadata);
26
+ private jsonParsing;
27
+ getAuthInfo(): IPrincipal | undefined;
28
+ setAuthInfo(authInfo?: IPrincipal): void;
29
+ getHeaders(): any;
30
+ getMethod(): HttpMethod | SocketMethod;
31
+ getHash(): string;
32
+ getPathName(): string;
33
+ getValue<T extends any>(key: string): T;
34
+ setValue<T extends any>(key: string, value: T): void;
35
+ getParams<T extends any>(): T;
36
+ getQuery<T extends any>(): T;
37
+ getBody<T extends any>(): T;
38
+ getSocket(): IServerSocket;
39
+ }
@@ -1,25 +1,25 @@
1
- /// <reference types="node" />
2
- declare type Dict = {
3
- [key: string]: string;
4
- };
5
- export declare class HttpResponse<T> {
6
- value?: T;
7
- code: number;
8
- headers: Dict;
9
- cookies: Dict;
10
- }
11
- export declare class ResponseBuilder<T> {
12
- response: HttpResponse<T>;
13
- protected constructor();
14
- status(code: number): this;
15
- header(name: string, value: string): this;
16
- cookie(name: string, value: string): this;
17
- get(): HttpResponse<T>;
18
- static json<T>(jsonValue?: T): ResponseBuilder<T>;
19
- static html(htmlValue?: string): ResponseBuilder<unknown>;
20
- static binary(buffer?: Buffer): ResponseBuilder<unknown>;
21
- static success(): HttpResponse<unknown>;
22
- static notFound(data?: any): HttpResponse<unknown>;
23
- static accessDenied(data?: any): HttpResponse<unknown>;
24
- }
25
- export {};
1
+ /// <reference types="node" />
2
+ declare type Dict = {
3
+ [key: string]: string;
4
+ };
5
+ export declare class HttpResponse<T> {
6
+ value?: T;
7
+ code: number;
8
+ headers: Dict;
9
+ cookies: Dict;
10
+ }
11
+ export declare class ResponseBuilder<T> {
12
+ response: HttpResponse<T>;
13
+ protected constructor();
14
+ status(code: number): this;
15
+ header(name: string, value: string): this;
16
+ cookie(name: string, value: string): this;
17
+ get(): HttpResponse<T>;
18
+ static json<T>(jsonValue?: T): ResponseBuilder<T>;
19
+ static html(htmlValue?: string): ResponseBuilder<unknown>;
20
+ static binary(buffer?: Buffer): ResponseBuilder<unknown>;
21
+ static success(): HttpResponse<unknown>;
22
+ static notFound(data?: any): HttpResponse<unknown>;
23
+ static accessDenied(data?: any): HttpResponse<unknown>;
24
+ }
25
+ export {};
@@ -1,9 +1,9 @@
1
- import { HttpMethod, SocketMethod } from "@clairejs/core";
2
- import { IServerSocket } from "../../socket/IServerSocket";
3
- export interface RequestOptions {
4
- method: HttpMethod | SocketMethod;
5
- rawPath: string;
6
- headers?: any;
7
- body?: any;
8
- socket?: IServerSocket;
9
- }
1
+ import { HttpMethod, SocketMethod } from "@clairejs/core";
2
+ import { IServerSocket } from "../../socket/IServerSocket";
3
+ export interface RequestOptions {
4
+ method: HttpMethod | SocketMethod;
5
+ rawPath: string;
6
+ headers?: any;
7
+ body?: any;
8
+ socket?: IServerSocket;
9
+ }
@@ -1,10 +1,10 @@
1
- export interface ResponseValues {
2
- headers?: {
3
- [key: string]: string;
4
- };
5
- body?: any;
6
- code: number;
7
- cookies?: {
8
- [key: string]: string;
9
- };
10
- }
1
+ export interface ResponseValues {
2
+ headers?: {
3
+ [key: string]: string;
4
+ };
5
+ body?: any;
6
+ code: number;
7
+ cookies?: {
8
+ [key: string]: string;
9
+ };
10
+ }
@@ -1 +1 @@
1
- export declare type RequestDataSource = "body" | "params" | "queries" | "headers" | "socket" | "raw";
1
+ export declare type RequestDataSource = "body" | "params" | "queries" | "headers" | "socket" | "raw";
@@ -1,12 +1,12 @@
1
- import { EndpointMetadata } from "./EndpointMetadata";
2
- import { ITransactionProvider } from "../../database/transaction/ITransactionProvider";
3
- import { IDatabaseProvider } from "../../database/adapter/IDatabaseProvider";
4
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
5
- export declare abstract class AbstractHttpController implements ITransactionProvider, IDatabaseProvider {
6
- protected readonly databaseAdapter: AbstractDatabaseAdapter;
7
- constructor(databaseAdapter: AbstractDatabaseAdapter);
8
- private isEndpoint;
9
- getCurrentDatabaseAdapter(): Promise<AbstractDatabaseAdapter>;
10
- getCurrentTransaction(): Promise<import("../../database/transaction/ITransaction").ITransaction>;
11
- getEndpointMetadata(): Readonly<EndpointMetadata>[];
12
- }
1
+ import { EndpointMetadata } from "./EndpointMetadata";
2
+ import { ITransactionProvider } from "../../database/transaction/ITransactionProvider";
3
+ import { IDatabaseProvider } from "../../database/adapter/IDatabaseProvider";
4
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
5
+ export declare abstract class AbstractHttpController implements ITransactionProvider, IDatabaseProvider {
6
+ protected readonly databaseAdapter: AbstractDatabaseAdapter;
7
+ constructor(databaseAdapter: AbstractDatabaseAdapter);
8
+ private isEndpoint;
9
+ getCurrentDatabaseAdapter(): Promise<AbstractDatabaseAdapter>;
10
+ getCurrentTransaction(): Promise<import("../../database/transaction/ITransaction").ITransaction>;
11
+ getEndpointMetadata(): Readonly<EndpointMetadata>[];
12
+ }
@@ -1,5 +1,5 @@
1
- import { HttpRequest } from "../common/HttpRequest";
2
- import { HttpResponse } from "../common/HttpResponse";
3
- export declare abstract class AbstractHttpMiddleware {
4
- abstract intercept(request: HttpRequest): Promise<HttpResponse<any> | undefined>;
5
- }
1
+ import { HttpRequest } from "../common/HttpRequest";
2
+ import { HttpResponse } from "../common/HttpResponse";
3
+ export declare abstract class AbstractHttpMiddleware {
4
+ abstract intercept(request: HttpRequest): Promise<HttpResponse<any> | undefined>;
5
+ }
@@ -1,10 +1,10 @@
1
- import { IRequestHandler } from "../../system/IRequestHandler";
2
- import { RequestOptions } from "../common/RequestOptions";
3
- import { ResponseValues } from "../common/ResponseValues";
4
- import { AbstractHttpMiddleware } from "./AbstractHttpMiddleware";
5
- import { ControllerMetadata } from "./ControllerMetadata";
6
- export declare abstract class AbstractHttpRequestHandler implements IRequestHandler {
7
- abstract getMiddleware(): Readonly<AbstractHttpMiddleware[]>;
8
- protected resolverMountPoint(controllerMetadata: ControllerMetadata, mappingUrls: string[]): string;
9
- abstract handle(options: RequestOptions): Promise<ResponseValues>;
10
- }
1
+ import { IRequestHandler } from "../../system/IRequestHandler";
2
+ import { RequestOptions } from "../common/RequestOptions";
3
+ import { ResponseValues } from "../common/ResponseValues";
4
+ import { AbstractHttpMiddleware } from "./AbstractHttpMiddleware";
5
+ import { ControllerMetadata } from "./ControllerMetadata";
6
+ export declare abstract class AbstractHttpRequestHandler implements IRequestHandler {
7
+ abstract getMiddleware(): Readonly<AbstractHttpMiddleware[]>;
8
+ protected resolverMountPoint(controllerMetadata: ControllerMetadata, mappingUrls: string[]): string;
9
+ abstract handle(options: RequestOptions): Promise<ResponseValues>;
10
+ }
@@ -1,6 +1,6 @@
1
- import { ObjectMetadata } from "@clairejs/core";
2
- import { EndpointMetadata } from "./EndpointMetadata";
3
- export interface ControllerMetadata extends ObjectMetadata {
4
- fields: EndpointMetadata[];
5
- permissionGroup?: string;
6
- }
1
+ import { ObjectMetadata } from "@clairejs/core";
2
+ import { EndpointMetadata } from "./EndpointMetadata";
3
+ export interface ControllerMetadata extends ObjectMetadata {
4
+ fields: EndpointMetadata[];
5
+ permissionGroup?: string;
6
+ }
@@ -1,53 +1,53 @@
1
- import { ModelMetadata, AbstractModel, CreateManyResponseBody, GetManyResponseBody, UpdateManyResponse, Constructor } from "@clairejs/core";
2
- import { HttpRequest } from "../common/HttpRequest";
3
- import { AbstractHttpController } from "./AbstractHttpController";
4
- import { EndpointMetadata } from "./EndpointMetadata";
5
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
6
- import { HttpResponse } from "../common/HttpResponse";
7
- export declare class CrudHttpController<T extends AbstractModel> extends AbstractHttpController {
8
- protected readonly model: Constructor<T>;
9
- protected readonly databaseAdapter: AbstractDatabaseAdapter;
10
- protected readonly modelMetadata: ModelMetadata;
11
- private authProvider?;
12
- constructor(model: Constructor<T>, databaseAdapter: AbstractDatabaseAdapter);
13
- private getMountedUrl;
14
- private static queryFieldDto;
15
- private static projectionFieldDto;
16
- private static getBodyDtoRecordClass;
17
- private static getRequestQueryFieldFromModel;
18
- private getAuthProvider;
19
- /**
20
- * This provides endpoint metadata for mounting /POST request.
21
- */
22
- private createManyEndpoinMetadata;
23
- /**
24
- * This provides endpoint metadata for mounting /GET request.
25
- */
26
- private getManyEndpointMetadata;
27
- /**
28
- * This provides endpoint metadata for mounting /PUT request.
29
- */
30
- private updateManyEndpoinMetadata;
31
- /**
32
- * This provides endpoint metadata for mounting /DELETE request.
33
- */
34
- private deleteManyEndpoinMetadata;
35
- /**
36
- * These static function is used to provider validator class
37
- */
38
- private static getCreateManyBodyValidator;
39
- private static getCreateManyResponseValidator;
40
- private static getGetManyResponseValidator;
41
- private static getGetManyQueryValidator;
42
- private static getUpdateManyQueryValidator;
43
- private static getUpdateManyBodyValidator;
44
- private static getUpdateManyResponseValidator;
45
- /**
46
- * Handler functions
47
- */
48
- getEndpointMetadata(): Readonly<EndpointMetadata>[];
49
- protected createMany(req: HttpRequest): Promise<HttpResponse<CreateManyResponseBody<T>>>;
50
- protected getMany(req: HttpRequest): Promise<HttpResponse<GetManyResponseBody<T>>>;
51
- protected updateMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
52
- protected deleteMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
53
- }
1
+ import { ModelMetadata, AbstractModel, CreateManyResponseBody, GetManyResponseBody, UpdateManyResponse, Constructor } from "@clairejs/core";
2
+ import { HttpRequest } from "../common/HttpRequest";
3
+ import { AbstractHttpController } from "./AbstractHttpController";
4
+ import { EndpointMetadata } from "./EndpointMetadata";
5
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
6
+ import { HttpResponse } from "../common/HttpResponse";
7
+ export declare class CrudHttpController<T extends AbstractModel> extends AbstractHttpController {
8
+ protected readonly model: Constructor<T>;
9
+ protected readonly databaseAdapter: AbstractDatabaseAdapter;
10
+ protected readonly modelMetadata: ModelMetadata;
11
+ private authProvider?;
12
+ constructor(model: Constructor<T>, databaseAdapter: AbstractDatabaseAdapter);
13
+ private getMountedUrl;
14
+ private static queryFieldDto;
15
+ private static projectionFieldDto;
16
+ private static getBodyDtoRecordClass;
17
+ private static getRequestQueryFieldFromModel;
18
+ private getAuthProvider;
19
+ /**
20
+ * This provides endpoint metadata for mounting /POST request.
21
+ */
22
+ private createManyEndpoinMetadata;
23
+ /**
24
+ * This provides endpoint metadata for mounting /GET request.
25
+ */
26
+ private getManyEndpointMetadata;
27
+ /**
28
+ * This provides endpoint metadata for mounting /PUT request.
29
+ */
30
+ private updateManyEndpoinMetadata;
31
+ /**
32
+ * This provides endpoint metadata for mounting /DELETE request.
33
+ */
34
+ private deleteManyEndpoinMetadata;
35
+ /**
36
+ * These static function is used to provider validator class
37
+ */
38
+ private static getCreateManyBodyValidator;
39
+ private static getCreateManyResponseValidator;
40
+ private static getGetManyResponseValidator;
41
+ private static getGetManyQueryValidator;
42
+ private static getUpdateManyQueryValidator;
43
+ private static getUpdateManyBodyValidator;
44
+ private static getUpdateManyResponseValidator;
45
+ /**
46
+ * Handler functions
47
+ */
48
+ getEndpointMetadata(): Readonly<EndpointMetadata>[];
49
+ protected createMany(req: HttpRequest): Promise<HttpResponse<CreateManyResponseBody<T>>>;
50
+ protected getMany(req: HttpRequest): Promise<HttpResponse<GetManyResponseBody<T>>>;
51
+ protected updateMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
52
+ protected deleteMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
53
+ }
@@ -1,19 +1,19 @@
1
- import { AbstractLogger, IInit } from "@clairejs/core";
2
- import { RequestOptions } from "../common/RequestOptions";
3
- import { ResponseValues } from "../common/ResponseValues";
4
- import { AbstractHttpAuthorizationProvider } from "../auth/AbstractHttpAuthorizationProvider";
5
- import { AbstractHttpRequestHandler } from "./AbstractHttpRequestHandler";
6
- import { AbstractHttpMiddleware } from "./AbstractHttpMiddleware";
7
- export declare class DefaultHttpRequestHandler extends AbstractHttpRequestHandler implements IInit {
8
- private logger;
9
- private authorizationProvider;
10
- private readonly injector;
11
- private readonly middleware;
12
- private mountPoint?;
13
- private mountedEndpointInfo;
14
- constructor(logger: AbstractLogger, authorizationProvider: AbstractHttpAuthorizationProvider<any>);
15
- init(): Promise<void>;
16
- exit(): void;
17
- handle(options: RequestOptions): Promise<ResponseValues>;
18
- getMiddleware(): AbstractHttpMiddleware[];
19
- }
1
+ import { AbstractLogger, IInit } from "@clairejs/core";
2
+ import { RequestOptions } from "../common/RequestOptions";
3
+ import { ResponseValues } from "../common/ResponseValues";
4
+ import { AbstractHttpAuthorizationProvider } from "../auth/AbstractHttpAuthorizationProvider";
5
+ import { AbstractHttpRequestHandler } from "./AbstractHttpRequestHandler";
6
+ import { AbstractHttpMiddleware } from "./AbstractHttpMiddleware";
7
+ export declare class DefaultHttpRequestHandler extends AbstractHttpRequestHandler implements IInit {
8
+ private logger;
9
+ private authorizationProvider;
10
+ private readonly injector;
11
+ private readonly middleware;
12
+ private mountPoint?;
13
+ private mountedEndpointInfo;
14
+ constructor(logger: AbstractLogger, authorizationProvider: AbstractHttpAuthorizationProvider<any>);
15
+ init(): Promise<void>;
16
+ exit(): void;
17
+ handle(options: RequestOptions): Promise<ResponseValues>;
18
+ getMiddleware(): AbstractHttpMiddleware[];
19
+ }