@clairejs/server 3.0.2 → 3.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 (55) hide show
  1. package/README.md +448 -443
  2. package/dist/common/constants.d.ts +1 -1
  3. package/dist/database/adapter/AbstractDatabaseAdapter.d.ts +19 -19
  4. package/dist/database/adapter/AbstractQuery.d.ts +43 -43
  5. package/dist/database/adapter/DefaultSqlDatabaseAdapter.d.ts +18 -18
  6. package/dist/database/adapter/IQuery.d.ts +40 -40
  7. package/dist/database/adapter/IQueryProvider.d.ts +9 -9
  8. package/dist/database/adapter/providers.d.ts +8 -8
  9. package/dist/database/decorators.d.ts +2 -2
  10. package/dist/database/migrator/AbstractDatabaseMigrator.d.ts +4 -4
  11. package/dist/database/migrator/DefaultSqlDatabaseMigrator.d.ts +26 -26
  12. package/dist/database/transaction/ITransaction.d.ts +10 -10
  13. package/dist/database/transaction/ITransactionProvider.d.ts +4 -4
  14. package/dist/database/transaction/TransactionLink.d.ts +14 -14
  15. package/dist/database/transaction/TransactionObjectMetadata.d.ts +4 -4
  16. package/dist/database/transaction/TransactionState.d.ts +5 -5
  17. package/dist/database/util/transaction-provider.d.ts +1 -1
  18. package/dist/http/common/HttpRequest.d.ts +39 -39
  19. package/dist/http/common/HttpResponse.d.ts +25 -25
  20. package/dist/http/common/RequestOptions.d.ts +9 -9
  21. package/dist/http/common/ResponseValues.d.ts +10 -10
  22. package/dist/http/common/types.d.ts +1 -1
  23. package/dist/http/controller/AbstractHttpController.d.ts +8 -8
  24. package/dist/http/controller/AbstractHttpMiddleware.d.ts +5 -5
  25. package/dist/http/controller/AbstractHttpRequestHandler.d.ts +10 -10
  26. package/dist/http/controller/ControllerMetadata.d.ts +6 -6
  27. package/dist/http/controller/CrudHttpController.d.ts +58 -63
  28. package/dist/http/controller/CrudService.d.ts +36 -36
  29. package/dist/http/controller/DefaultHttpRequestHandler.d.ts +19 -19
  30. package/dist/http/controller/EndpointMetadata.d.ts +36 -35
  31. package/dist/http/controller/HttpEndpoint.d.ts +12 -12
  32. package/dist/http/controller/MountedEndpointInfo.d.ts +6 -6
  33. package/dist/http/decorators.d.ts +26 -22
  34. package/dist/http/security/AbstractAccessCondition.d.ts +8 -8
  35. package/dist/http/security/AbstractHttpAuthorizationProvider.d.ts +7 -7
  36. package/dist/http/security/FilterModelFieldAccessCondition.d.ts +4 -4
  37. package/dist/http/security/IPrincipal.d.ts +3 -3
  38. package/dist/http/security/OwnedResourceAccessCondition.d.ts +5 -5
  39. package/dist/index.d.ts +38 -38
  40. package/dist/index.js +1 -1
  41. package/dist/logging/FileLogMedium.d.ts +13 -13
  42. package/dist/service/AbstractService.d.ts +5 -5
  43. package/dist/socket/AbstractServerSocket.d.ts +36 -36
  44. package/dist/socket/AbstractServerSocketManager.d.ts +19 -19
  45. package/dist/socket/AwsSocketManager.d.ts +46 -46
  46. package/dist/socket/IServerSocket.d.ts +9 -9
  47. package/dist/socket/LocalSocketManager.d.ts +23 -23
  48. package/dist/socket/ServerSocket.d.ts +14 -14
  49. package/dist/system/AbstractFileUploadHandler.d.ts +6 -6
  50. package/dist/system/ClaireServer.d.ts +10 -10
  51. package/dist/system/ExpressWrapper.d.ts +17 -17
  52. package/dist/system/IRequestHandler.d.ts +5 -5
  53. package/dist/system/LambdaWrapper.d.ts +17 -17
  54. package/dist/system/ServerGlobalStore.d.ts +7 -7
  55. package/package.json +58 -58
@@ -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,63 +1,58 @@
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
- readonly model: Constructor<T>;
9
- 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 queryOpsDto;
16
- private static projectionFieldDto;
17
- private static getBodyDtoRecordClass;
18
- private static getRequestQueryFieldFromModel;
19
- private getAuthProvider;
20
- /**
21
- * This provides endpoint metadata for mounting /POST request.
22
- */
23
- private createManyEndpoinMetadata;
24
- /**
25
- * This provides endpoint metadata for mounting /GET request.
26
- */
27
- private getManyEndpointMetadata;
28
- /**
29
- * This provides endpoint metadata for mounting /PUT request.
30
- */
31
- private updateManyEndpoinMetadata;
32
- /**
33
- * This provides endpoint metadata for mounting /DELETE request.
34
- */
35
- private deleteManyEndpoinMetadata;
36
- /**
37
- * These static function is used to provider validator class
38
- */
39
- private static getCreateManyBodyValidator;
40
- private static getGetManyQueryValidator;
41
- private static getUpdateManyQueryValidator;
42
- private static getUpdateManyBodyValidator;
43
- static createManyBodyValidator(model: {
44
- new (): AbstractModel;
45
- }): Function;
46
- static getManyQueryValidator(model: {
47
- new (): AbstractModel;
48
- }): Function;
49
- static updateManyQueryValidator(model: {
50
- new (): AbstractModel;
51
- }): Function;
52
- static updateManyBodyValidator(model: {
53
- new (): AbstractModel;
54
- }): Function;
55
- /**
56
- * Handler functions
57
- */
58
- getEndpointMetadata(): Readonly<EndpointMetadata>[];
59
- protected createMany(req: HttpRequest): Promise<HttpResponse<CreateManyResponseBody<T>>>;
60
- protected getMany(req: HttpRequest): Promise<HttpResponse<GetManyResponseBody<T>>>;
61
- protected updateMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
62
- protected deleteMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
63
- }
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
+ readonly model: Constructor<T>;
9
+ 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 queryOpsDto;
16
+ private static projectionFieldDto;
17
+ private static getBodyDtoRecordClass;
18
+ private static getRequestQueryFieldFromModel;
19
+ private getAuthProvider;
20
+ /**
21
+ * This provides endpoint metadata for mounting /POST request.
22
+ */
23
+ private createManyEndpoinMetadata;
24
+ /**
25
+ * This provides endpoint metadata for mounting /GET request.
26
+ */
27
+ private getManyEndpointMetadata;
28
+ /**
29
+ * This provides endpoint metadata for mounting /PUT request.
30
+ */
31
+ private updateManyEndpoinMetadata;
32
+ /**
33
+ * This provides endpoint metadata for mounting /DELETE request.
34
+ */
35
+ private deleteManyEndpoinMetadata;
36
+ /**
37
+ * These static function is used to provider validator class
38
+ */
39
+ private static getCreateManyBodyValidator;
40
+ private static getCreateManyResponseValidator;
41
+ private static getGetManyResponseValidator;
42
+ private static getGetManyQueryValidator;
43
+ private static getUpdateManyQueryValidator;
44
+ private static getUpdateManyBodyValidator;
45
+ private static getUpdateManyResponseValidator;
46
+ static createManyBodyValidator(model: Constructor<AbstractModel>): Function;
47
+ static getManyQueryValidator(model: Constructor<AbstractModel>): Function;
48
+ static updateManyQueryValidator(model: Constructor<AbstractModel>): Function;
49
+ static updateManyBodyValidator(model: Constructor<AbstractModel>): Function;
50
+ /**
51
+ * Handler functions
52
+ */
53
+ getEndpointMetadata(): Readonly<EndpointMetadata>[];
54
+ protected createMany(req: HttpRequest): Promise<HttpResponse<CreateManyResponseBody<T>>>;
55
+ protected getMany(req: HttpRequest): Promise<HttpResponse<GetManyResponseBody<T>>>;
56
+ protected updateMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
57
+ protected deleteMany(req: HttpRequest): Promise<HttpResponse<UpdateManyResponse<T>>>;
58
+ }
@@ -1,36 +1,36 @@
1
- import { AbstractModel, Constructor, CreateManyRequestBody, CreateManyResponseBody, GetManyQueries, GetManyResponseBody, UpdateManyBody, UpdateManyQueries, UpdateManyResponse } from "@clairejs/core";
2
- import { IQueryProvider } from "../../database/adapter/IQueryProvider";
3
- import { ITransaction } from "../../database/transaction/ITransaction";
4
- import { IPrincipal } from "../security/IPrincipal";
5
- export declare class CrudService<T extends AbstractModel> {
6
- readonly model: Constructor<T>;
7
- private fileUploadHandler?;
8
- private readonly modelMetadata;
9
- constructor(model: Constructor<T>);
10
- private getNestedQueries;
11
- private getUploadHandler;
12
- private getRequestQueryConditionFromQuery;
13
- protected beforeCreating(principal: IPrincipal | undefined, records: Partial<T>[]): Promise<void>;
14
- protected uriHandling(records: Partial<T>[], tx: ITransaction): Promise<void>;
15
- protected beforeReturning(records: Partial<T>[]): Promise<void>;
16
- protected project(records: Partial<T>[], projection?: (keyof T)[]): any[];
17
- createMany({ principal, body, tx, }: {
18
- principal?: IPrincipal;
19
- body: CreateManyRequestBody<T>;
20
- tx: ITransaction;
21
- }): Promise<CreateManyResponseBody<T>>;
22
- updateMany({ principal, queries, body, tx, }: {
23
- principal?: IPrincipal;
24
- queries: UpdateManyQueries<T>;
25
- body: UpdateManyBody<T>;
26
- tx: ITransaction;
27
- }): Promise<UpdateManyResponse<T>>;
28
- getMany({ queries, queryProvider, }: {
29
- queries: GetManyQueries<T>;
30
- queryProvider: IQueryProvider;
31
- }): Promise<GetManyResponseBody<T>>;
32
- deleteMany({ queries, tx, }: {
33
- queries: UpdateManyQueries<T>;
34
- tx: ITransaction;
35
- }): Promise<UpdateManyResponse<T>>;
36
- }
1
+ import { AbstractModel, Constructor, CreateManyRequestBody, CreateManyResponseBody, GetManyQueries, GetManyResponseBody, UpdateManyBody, UpdateManyQueries, UpdateManyResponse } from "@clairejs/core";
2
+ import { IQueryProvider } from "../../database/adapter/IQueryProvider";
3
+ import { ITransaction } from "../../database/transaction/ITransaction";
4
+ import { IPrincipal } from "../security/IPrincipal";
5
+ export declare class CrudService<T extends AbstractModel> {
6
+ readonly model: Constructor<T>;
7
+ private fileUploadHandler?;
8
+ private readonly modelMetadata;
9
+ constructor(model: Constructor<T>);
10
+ private getNestedQueries;
11
+ private getUploadHandler;
12
+ private getRequestQueryConditionFromQuery;
13
+ protected beforeCreating(principal: IPrincipal | undefined, records: Partial<T>[]): Promise<void>;
14
+ protected uriHandling(records: Partial<T>[], tx: ITransaction): Promise<void>;
15
+ protected beforeReturning(records: Partial<T>[]): Promise<void>;
16
+ protected project(records: Partial<T>[], projection?: (keyof T)[]): any[];
17
+ createMany({ principal, body, tx, }: {
18
+ principal?: IPrincipal;
19
+ body: CreateManyRequestBody<T>;
20
+ tx: ITransaction;
21
+ }): Promise<CreateManyResponseBody<T>>;
22
+ updateMany({ principal, queries, body, tx, }: {
23
+ principal?: IPrincipal;
24
+ queries: UpdateManyQueries<T>;
25
+ body: UpdateManyBody<T>;
26
+ tx: ITransaction;
27
+ }): Promise<UpdateManyResponse<T>>;
28
+ getMany({ queries, queryProvider, }: {
29
+ queries: GetManyQueries<T>;
30
+ queryProvider: IQueryProvider;
31
+ }): Promise<GetManyResponseBody<T>>;
32
+ deleteMany({ queries, tx, }: {
33
+ queries: UpdateManyQueries<T>;
34
+ tx: ITransaction;
35
+ }): Promise<UpdateManyResponse<T>>;
36
+ }
@@ -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 "../security/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 "../security/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,35 +1,36 @@
1
- import { Constructor, DtoMetadata, HttpMethod, SocketMethod, ObjectFieldMetadata } from "@clairejs/core";
2
- import { RequestDataSource } from "../common/types";
3
- import { AbstractAccessCondition } from "../security/AbstractAccessCondition";
4
- export interface EndpointMetadata extends ObjectFieldMetadata {
5
- /**
6
- * Basic HTTP information, name property is handler function name.
7
- */
8
- httpMethod: HttpMethod | SocketMethod;
9
- url: string;
10
- /**
11
- * User-friendly display name of endpoint.
12
- */
13
- displayName?: string;
14
- bodyValidationDto?: DtoMetadata;
15
- queriesValidationDto?: DtoMetadata;
16
- paramsValidationDto?: DtoMetadata;
17
- params?: {
18
- [index: number]: {
19
- source?: RequestDataSource;
20
- diClass: Constructor<any>;
21
- };
22
- };
23
- /**
24
- * Allow public access to this endpoint.
25
- */
26
- openAccess?: boolean;
27
- /**
28
- * Metadata of access condition to allow a conditional access to the endpoint.
29
- */
30
- accessConditions?: Constructor<AbstractAccessCondition>[];
31
- /**
32
- * Group of permission of this endpoint.
33
- */
34
- permissionGroup?: string;
35
- }
1
+ import { Constructor, DtoMetadata, HttpMethod, SocketMethod, ObjectFieldMetadata } from "@clairejs/core";
2
+ import { RequestDataSource } from "../common/types";
3
+ import { AbstractAccessCondition } from "../security/AbstractAccessCondition";
4
+ export interface EndpointMetadata extends ObjectFieldMetadata {
5
+ /**
6
+ * Basic HTTP information, name property is handler function name.
7
+ */
8
+ httpMethod: HttpMethod | SocketMethod;
9
+ url: string;
10
+ /**
11
+ * User-friendly display name of endpoint.
12
+ */
13
+ displayName?: string;
14
+ bodyValidationDto?: DtoMetadata;
15
+ queriesValidationDto?: DtoMetadata;
16
+ paramsValidationDto?: DtoMetadata;
17
+ responseValidationDto?: DtoMetadata;
18
+ params?: {
19
+ [index: number]: {
20
+ source?: RequestDataSource;
21
+ diClass: Constructor<any>;
22
+ };
23
+ };
24
+ /**
25
+ * Allow public access to this endpoint.
26
+ */
27
+ openAccess?: boolean;
28
+ /**
29
+ * Metadata of access condition to allow a conditional access to the endpoint.
30
+ */
31
+ accessConditions?: Constructor<AbstractAccessCondition>[];
32
+ /**
33
+ * Group of permission of this endpoint.
34
+ */
35
+ permissionGroup?: string;
36
+ }
@@ -1,12 +1,12 @@
1
- import { HttpMethod, SocketMethod } from "@clairejs/core";
2
- import { HttpRequest } from "../common/HttpRequest";
3
- import { HttpResponse } from "../common/HttpResponse";
4
- import { AbstractHttpController } from "./AbstractHttpController";
5
- export declare class HttpEndpoint {
6
- mount?: string;
7
- httpMethod?: HttpMethod | SocketMethod;
8
- handler?: (req: HttpRequest) => Promise<HttpResponse<any>>;
9
- controller?: AbstractHttpController;
10
- handlerFunctionName?: string;
11
- getEndpointId(): string;
12
- }
1
+ import { HttpMethod, SocketMethod } from "@clairejs/core";
2
+ import { HttpRequest } from "../common/HttpRequest";
3
+ import { HttpResponse } from "../common/HttpResponse";
4
+ import { AbstractHttpController } from "./AbstractHttpController";
5
+ export declare class HttpEndpoint {
6
+ mount?: string;
7
+ httpMethod?: HttpMethod | SocketMethod;
8
+ handler?: (req: HttpRequest) => Promise<HttpResponse<any>>;
9
+ controller?: AbstractHttpController;
10
+ handlerFunctionName?: string;
11
+ getEndpointId(): string;
12
+ }
@@ -1,6 +1,6 @@
1
- import { EndpointMetadata } from "./EndpointMetadata";
2
- import { HttpEndpoint } from "./HttpEndpoint";
3
- export interface MountedEndpointInfo {
4
- endpointMetadata: EndpointMetadata;
5
- endpoint: HttpEndpoint;
6
- }
1
+ import { EndpointMetadata } from "./EndpointMetadata";
2
+ import { HttpEndpoint } from "./HttpEndpoint";
3
+ export interface MountedEndpointInfo {
4
+ endpointMetadata: EndpointMetadata;
5
+ endpoint: HttpEndpoint;
6
+ }
@@ -1,22 +1,26 @@
1
- import { HttpMethod, Constructor, SocketMethod } from "@clairejs/core";
2
- import { AbstractHttpController } from "./controller/AbstractHttpController";
3
- import { AbstractAccessCondition } from "./security/AbstractAccessCondition";
4
- export declare const Controller: (config?: {
5
- permissionGroup?: string | undefined;
6
- } | undefined) => <T extends AbstractHttpController>(constructor: Constructor<T>) => void;
7
- export declare const Endpoint: (config: {
8
- method: HttpMethod | SocketMethod;
9
- url: string;
10
- }) => (prototype: AbstractHttpController, propertyKey: string) => void;
11
- export declare const Socket: (channel: string) => (prototype: AbstractHttpController, propertyKey: string) => void;
12
- export declare const Post: (url: string) => (prototype: AbstractHttpController, propertyKey: string) => void;
13
- export declare const Put: (url: string) => (prototype: AbstractHttpController, propertyKey: string) => void;
14
- export declare const Del: (url: string) => (prototype: AbstractHttpController, propertyKey: string) => void;
15
- export declare const Get: (url: string) => (prototype: AbstractHttpController, propertyKey: string) => void;
16
- export declare const OpenAccess: () => (prototype: AbstractHttpController, propertyKey: string) => void;
17
- export declare const AccessCondition: (conditions: Constructor<AbstractAccessCondition>[]) => (prototype: AbstractHttpController, propertyKey: string) => void;
18
- export declare const Body: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
19
- export declare const Params: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
20
- export declare const Queries: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
21
- export declare const Headers: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
22
- export declare const Raw: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
1
+ import { HttpMethod, Constructor, SocketMethod } from "@clairejs/core";
2
+ import { AbstractHttpController } from "./controller/AbstractHttpController";
3
+ import { AbstractAccessCondition } from "./security/AbstractAccessCondition";
4
+ import { HttpResponse } from "./common/HttpResponse";
5
+ declare type HttpFunctionMethod<T> = (...args: any[]) => Promise<HttpResponse<T>>;
6
+ export declare const Controller: (config?: {
7
+ permissionGroup?: string | undefined;
8
+ } | undefined) => <T extends AbstractHttpController>(constructor: Constructor<T>) => void;
9
+ export declare const Endpoint: (config: {
10
+ method: HttpMethod | SocketMethod;
11
+ url: string;
12
+ }) => (prototype: AbstractHttpController, propertyKey: string) => void;
13
+ export declare const Socket: (channel: string) => (prototype: AbstractHttpController, propertyKey: string, _descriptor: TypedPropertyDescriptor<HttpFunctionMethod<any>>) => void;
14
+ export declare const Post: (url: string) => (prototype: AbstractHttpController, propertyKey: string, _descriptor: TypedPropertyDescriptor<HttpFunctionMethod<any>>) => void;
15
+ export declare const Put: (url: string) => (prototype: AbstractHttpController, propertyKey: string, _descriptor: TypedPropertyDescriptor<HttpFunctionMethod<any>>) => void;
16
+ export declare const Del: (url: string) => (prototype: AbstractHttpController, propertyKey: string, _descriptor: TypedPropertyDescriptor<HttpFunctionMethod<any>>) => void;
17
+ export declare const Get: (url: string) => (prototype: AbstractHttpController, propertyKey: string, _descriptor: TypedPropertyDescriptor<HttpFunctionMethod<any>>) => void;
18
+ export declare const ApiResponse: <T>(responseClass: Constructor<T>) => (prototype: AbstractHttpController, propertyKey: string, _descriptor: TypedPropertyDescriptor<HttpFunctionMethod<T>>) => void;
19
+ export declare const OpenAccess: () => (prototype: AbstractHttpController, propertyKey: string) => void;
20
+ export declare const AccessCondition: (conditions: Constructor<AbstractAccessCondition>[]) => (prototype: AbstractHttpController, propertyKey: string) => void;
21
+ export declare const Body: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
22
+ export declare const Params: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
23
+ export declare const Queries: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
24
+ export declare const Headers: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
25
+ export declare const Raw: () => (prototype: AbstractHttpController, propertyKey: string, paramIndex: number) => void;
26
+ export {};
@@ -1,8 +1,8 @@
1
- import { AccessConditionMetadata } from "@clairejs/core";
2
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
3
- import { HttpRequest } from "../common/HttpRequest";
4
- export declare abstract class AbstractAccessCondition {
5
- abstract resolveRequestedConditionValue(request: HttpRequest, databaseAdapter: AbstractDatabaseAdapter): Promise<any>;
6
- abstract validate(requestedConditionValue: any, permittedConditionValue: any): Promise<boolean>;
7
- abstract getConditionMetadata(): AccessConditionMetadata;
8
- }
1
+ import { AccessConditionMetadata } from "@clairejs/core";
2
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
3
+ import { HttpRequest } from "../common/HttpRequest";
4
+ export declare abstract class AbstractAccessCondition {
5
+ abstract resolveRequestedConditionValue(request: HttpRequest, databaseAdapter: AbstractDatabaseAdapter): Promise<any>;
6
+ abstract validate(requestedConditionValue: any, permittedConditionValue: any): Promise<boolean>;
7
+ abstract getConditionMetadata(): AccessConditionMetadata;
8
+ }
@@ -1,7 +1,7 @@
1
- import { HttpRequest } from "../common/HttpRequest";
2
- import { MountedEndpointInfo } from "../controller/MountedEndpointInfo";
3
- import { IPrincipal } from "./IPrincipal";
4
- export declare abstract class AbstractHttpAuthorizationProvider<T extends IPrincipal> {
5
- abstract resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
6
- abstract authorize(principal: T | undefined, req: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
7
- }
1
+ import { HttpRequest } from "../common/HttpRequest";
2
+ import { MountedEndpointInfo } from "../controller/MountedEndpointInfo";
3
+ import { IPrincipal } from "./IPrincipal";
4
+ export declare abstract class AbstractHttpAuthorizationProvider<T extends IPrincipal> {
5
+ abstract resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
6
+ abstract authorize(principal: T | undefined, req: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
7
+ }
@@ -1,4 +1,4 @@
1
- import { AbstractModel, Constructor } from "@clairejs/core";
2
- import { AbstractAccessCondition } from "./AbstractAccessCondition";
3
- import { HttpRequest } from "../common/HttpRequest";
4
- export declare const FilterModelFieldAccessCondition: <T extends AbstractModel>(model: Constructor<T>, requestedConditionValueResolver: (request: HttpRequest) => string[] | undefined) => Constructor<AbstractAccessCondition>;
1
+ import { AbstractModel, Constructor } from "@clairejs/core";
2
+ import { AbstractAccessCondition } from "./AbstractAccessCondition";
3
+ import { HttpRequest } from "../common/HttpRequest";
4
+ export declare const FilterModelFieldAccessCondition: <T extends AbstractModel>(model: Constructor<T>, requestedConditionValueResolver: (request: HttpRequest) => string[] | undefined) => Constructor<AbstractAccessCondition>;
@@ -1,3 +1,3 @@
1
- export interface IPrincipal {
2
- id: number;
3
- }
1
+ export interface IPrincipal {
2
+ id: number;
3
+ }
@@ -1,5 +1,5 @@
1
- import { Constructor } from "@clairejs/core";
2
- import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
3
- import { HttpRequest } from "../common/HttpRequest";
4
- import { AbstractAccessCondition } from "./AbstractAccessCondition";
5
- export declare const OwnedResourceAccessCondition: (ownedResourceChecker: (request: HttpRequest, databaseAdapter: AbstractDatabaseAdapter) => Promise<boolean>) => Constructor<AbstractAccessCondition>;
1
+ import { Constructor } from "@clairejs/core";
2
+ import { AbstractDatabaseAdapter } from "../../database/adapter/AbstractDatabaseAdapter";
3
+ import { HttpRequest } from "../common/HttpRequest";
4
+ import { AbstractAccessCondition } from "./AbstractAccessCondition";
5
+ export declare const OwnedResourceAccessCondition: (ownedResourceChecker: (request: HttpRequest, databaseAdapter: AbstractDatabaseAdapter) => Promise<boolean>) => Constructor<AbstractAccessCondition>;
package/dist/index.d.ts CHANGED
@@ -1,38 +1,38 @@
1
- import { FileLogMedium } from "./logging/FileLogMedium";
2
- import { Controller, Endpoint, AccessCondition, OpenAccess, Get, Del, Put, Post, Socket, Body, Params, Raw, Queries } from "./http/decorators";
3
- import { HttpRequest } from "./http/common/HttpRequest";
4
- import { AbstractHttpController } from "./http/controller/AbstractHttpController";
5
- import { CrudHttpController } from "./http/controller/CrudHttpController";
6
- import { ClaireServer } from "./system/ClaireServer";
7
- import { Transactional } from "./database/decorators";
8
- import { TransactionLink } from "./database/transaction/TransactionLink";
9
- import { DefaultSqlDatabaseAdapter } from "./database/adapter/DefaultSqlDatabaseAdapter";
10
- import { DefaultSqlDatabaseMigrator } from "./database/migrator/DefaultSqlDatabaseMigrator";
11
- import { SqlProvider } from "./database/adapter/providers";
12
- import { DefaultHttpRequestHandler } from "./http/controller/DefaultHttpRequestHandler";
13
- import { AbstractDatabaseAdapter } from "./database/adapter/AbstractDatabaseAdapter";
14
- import { AbstractService } from "./service/AbstractService";
15
- import { AbstractAccessCondition } from "./http/security/AbstractAccessCondition";
16
- import { AbstractHttpAuthorizationProvider } from "./http/security/AbstractHttpAuthorizationProvider";
17
- import { MountedEndpointInfo } from "./http/controller/MountedEndpointInfo";
18
- import { EndpointMetadata } from "./http/controller/EndpointMetadata";
19
- import { FilterModelFieldAccessCondition } from "./http/security/FilterModelFieldAccessCondition";
20
- import { AbstractHttpRequestHandler } from "./http/controller/AbstractHttpRequestHandler";
21
- import { AbstractHttpMiddleware } from "./http/controller/AbstractHttpMiddleware";
22
- import { RequestOptions } from "./http/common/RequestOptions";
23
- import { ResponseValues } from "./http/common/ResponseValues";
24
- import { HttpResponse, ResponseBuilder } from "./http/common/HttpResponse";
25
- import { ExpressWrapper } from "./system/ExpressWrapper";
26
- import { LambdaWrapper } from "./system/LambdaWrapper";
27
- import { AbstractDatabaseMigrator } from "./database/migrator/AbstractDatabaseMigrator";
28
- import { AbstractServerSocketManager } from "./socket/AbstractServerSocketManager";
29
- import { LocalSocketManager } from "./socket/LocalSocketManager";
30
- import { AwsSocketManager } from "./socket/AwsSocketManager";
31
- import { OwnedResourceAccessCondition } from "./http/security/OwnedResourceAccessCondition";
32
- import { IPrincipal } from "./http/security/IPrincipal";
33
- import { IServerSocket } from "./socket/IServerSocket";
34
- import { ServerGlobalStore } from "./system/ServerGlobalStore";
35
- import { AbstractFileUploadHandler } from "./system/AbstractFileUploadHandler";
36
- import { CrudService } from "./http/controller/CrudService";
37
- import { QueryTypes } from "sequelize";
38
- export { FileLogMedium, Body, Queries, Params, Raw, Controller, Endpoint, Socket, Get, Del, Put, Post, Transactional, HttpRequest, HttpResponse, ResponseBuilder, AbstractHttpController, AbstractHttpRequestHandler, CrudHttpController, DefaultHttpRequestHandler, MountedEndpointInfo, EndpointMetadata, AbstractHttpMiddleware, RequestOptions, ResponseValues, AbstractServerSocketManager, LocalSocketManager, AwsSocketManager, IServerSocket, OpenAccess, AccessCondition, IPrincipal, AbstractAccessCondition, AbstractHttpAuthorizationProvider, FilterModelFieldAccessCondition, OwnedResourceAccessCondition, AbstractDatabaseAdapter, AbstractDatabaseMigrator, TransactionLink, DefaultSqlDatabaseAdapter, DefaultSqlDatabaseMigrator, SqlProvider, CrudService, QueryTypes, AbstractFileUploadHandler, ServerGlobalStore, ClaireServer, AbstractService, ExpressWrapper, LambdaWrapper, };
1
+ import { FileLogMedium } from "./logging/FileLogMedium";
2
+ import { Controller, Endpoint, AccessCondition, OpenAccess, Get, Del, Put, Post, Socket, Body, Params, Raw, Queries, ApiResponse } from "./http/decorators";
3
+ import { HttpRequest } from "./http/common/HttpRequest";
4
+ import { AbstractHttpController } from "./http/controller/AbstractHttpController";
5
+ import { CrudHttpController } from "./http/controller/CrudHttpController";
6
+ import { ClaireServer } from "./system/ClaireServer";
7
+ import { Transactional } from "./database/decorators";
8
+ import { TransactionLink } from "./database/transaction/TransactionLink";
9
+ import { DefaultSqlDatabaseAdapter } from "./database/adapter/DefaultSqlDatabaseAdapter";
10
+ import { DefaultSqlDatabaseMigrator } from "./database/migrator/DefaultSqlDatabaseMigrator";
11
+ import { SqlProvider } from "./database/adapter/providers";
12
+ import { DefaultHttpRequestHandler } from "./http/controller/DefaultHttpRequestHandler";
13
+ import { AbstractDatabaseAdapter } from "./database/adapter/AbstractDatabaseAdapter";
14
+ import { AbstractService } from "./service/AbstractService";
15
+ import { AbstractAccessCondition } from "./http/security/AbstractAccessCondition";
16
+ import { AbstractHttpAuthorizationProvider } from "./http/security/AbstractHttpAuthorizationProvider";
17
+ import { MountedEndpointInfo } from "./http/controller/MountedEndpointInfo";
18
+ import { EndpointMetadata } from "./http/controller/EndpointMetadata";
19
+ import { FilterModelFieldAccessCondition } from "./http/security/FilterModelFieldAccessCondition";
20
+ import { AbstractHttpRequestHandler } from "./http/controller/AbstractHttpRequestHandler";
21
+ import { AbstractHttpMiddleware } from "./http/controller/AbstractHttpMiddleware";
22
+ import { RequestOptions } from "./http/common/RequestOptions";
23
+ import { ResponseValues } from "./http/common/ResponseValues";
24
+ import { HttpResponse, ResponseBuilder } from "./http/common/HttpResponse";
25
+ import { ExpressWrapper } from "./system/ExpressWrapper";
26
+ import { LambdaWrapper } from "./system/LambdaWrapper";
27
+ import { AbstractDatabaseMigrator } from "./database/migrator/AbstractDatabaseMigrator";
28
+ import { AbstractServerSocketManager } from "./socket/AbstractServerSocketManager";
29
+ import { LocalSocketManager } from "./socket/LocalSocketManager";
30
+ import { AwsSocketManager } from "./socket/AwsSocketManager";
31
+ import { OwnedResourceAccessCondition } from "./http/security/OwnedResourceAccessCondition";
32
+ import { IPrincipal } from "./http/security/IPrincipal";
33
+ import { IServerSocket } from "./socket/IServerSocket";
34
+ import { ServerGlobalStore } from "./system/ServerGlobalStore";
35
+ import { AbstractFileUploadHandler } from "./system/AbstractFileUploadHandler";
36
+ import { CrudService } from "./http/controller/CrudService";
37
+ import { QueryTypes } from "sequelize";
38
+ export { FileLogMedium, Body, Queries, Params, Raw, Controller, Endpoint, Socket, Get, Del, Put, Post, Transactional, HttpRequest, HttpResponse, ResponseBuilder, AbstractHttpController, AbstractHttpRequestHandler, CrudHttpController, DefaultHttpRequestHandler, MountedEndpointInfo, EndpointMetadata, AbstractHttpMiddleware, RequestOptions, ResponseValues, ApiResponse, AbstractServerSocketManager, LocalSocketManager, AwsSocketManager, IServerSocket, OpenAccess, AccessCondition, IPrincipal, AbstractAccessCondition, AbstractHttpAuthorizationProvider, FilterModelFieldAccessCondition, OwnedResourceAccessCondition, AbstractDatabaseAdapter, AbstractDatabaseMigrator, TransactionLink, DefaultSqlDatabaseAdapter, DefaultSqlDatabaseMigrator, SqlProvider, CrudService, QueryTypes, AbstractFileUploadHandler, ServerGlobalStore, ClaireServer, AbstractService, ExpressWrapper, LambdaWrapper, };