@clairejs/server 3.11.8 → 3.11.9

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 (84) hide show
  1. package/.prettierrc +8 -8
  2. package/README.md +768 -767
  3. package/dist/common/FileOperation.d.ts +5 -5
  4. package/dist/common/ServerModelMetadata.d.ts +10 -10
  5. package/dist/common/auth/AbstractPrincipalResolver.d.ts +4 -4
  6. package/dist/common/auth/IPrincipal.d.ts +4 -4
  7. package/dist/common/constants.d.ts +1 -1
  8. package/dist/common/request/EndpointMetadata.d.ts +40 -40
  9. package/dist/common/request/HttpData.d.ts +1 -1
  10. package/dist/common/request/HttpEndpoint.d.ts +8 -8
  11. package/dist/common/request/JobData.d.ts +1 -1
  12. package/dist/common/request/MountedEndpointInfo.d.ts +6 -6
  13. package/dist/common/request/RequestOptions.d.ts +8 -8
  14. package/dist/common/request/SocketData.d.ts +1 -1
  15. package/dist/common/request/types.d.ts +1 -1
  16. package/dist/controllers/FileManageController.d.ts +13 -13
  17. package/dist/controllers/FileUploadController.d.ts +13 -13
  18. package/dist/controllers/dto/permissions.d.ts +20 -20
  19. package/dist/controllers/dto/system.d.ts +12 -12
  20. package/dist/controllers/dto/upload.d.ts +40 -40
  21. package/dist/controllers/models/SystemSetting.d.ts +5 -5
  22. package/dist/http/auth/AbstractHttpAuthorizationProvider.d.ts +9 -9
  23. package/dist/http/auth/AbstractRbacAuthProvider.d.ts +18 -18
  24. package/dist/http/auth/RedisRbacAuthProvider.d.ts +24 -24
  25. package/dist/http/auth/SocketRbacAuthProvider.d.ts +25 -25
  26. package/dist/http/auth/rbac.d.ts +34 -34
  27. package/dist/http/common/HttpRequest.d.ts +40 -40
  28. package/dist/http/common/HttpResponse.d.ts +34 -34
  29. package/dist/http/controller/AbstractHttpController.d.ts +9 -9
  30. package/dist/http/controller/AbstractHttpMiddleware.d.ts +10 -10
  31. package/dist/http/controller/AbstractHttpRequestHandler.d.ts +18 -18
  32. package/dist/http/controller/ControllerMetadata.d.ts +6 -6
  33. package/dist/http/controller/CrudHttpController.d.ts +41 -41
  34. package/dist/http/controller/DefaultHttpRequestHandler.d.ts +21 -21
  35. package/dist/http/decorators.d.ts +35 -35
  36. package/dist/http/file-upload/AbstractFileUploadHandler.d.ts +6 -6
  37. package/dist/http/file-upload/FileUploadHandler.d.ts +10 -10
  38. package/dist/http/file-upload/types.d.ts +3 -3
  39. package/dist/http/repository/AbstractRepository.d.ts +10 -10
  40. package/dist/http/repository/DtoRepository.d.ts +58 -58
  41. package/dist/http/repository/ICrudRepository.d.ts +27 -27
  42. package/dist/http/repository/ModelRepository.d.ts +37 -37
  43. package/dist/http/security/AbstractAccessCondition.d.ts +7 -7
  44. package/dist/http/security/access-conditions/DtoFieldValidation.d.ts +4 -4
  45. package/dist/http/security/access-conditions/FilterModelFieldAccessCondition.d.ts +4 -4
  46. package/dist/http/security/access-conditions/MaximumQueryLimit.d.ts +8 -8
  47. package/dist/http/security/cors.d.ts +6 -6
  48. package/dist/index.d.ts +71 -71
  49. package/dist/index.js +1 -1
  50. package/dist/job/AbstractJobController.d.ts +4 -4
  51. package/dist/job/AbstractJobRepository.d.ts +17 -17
  52. package/dist/job/AbstractJobScheduler.d.ts +38 -38
  53. package/dist/job/AwsJobScheduler.d.ts +48 -48
  54. package/dist/job/LocalJobScheduler.d.ts +88 -88
  55. package/dist/job/decorators.d.ts +5 -5
  56. package/dist/job/interfaces.d.ts +50 -50
  57. package/dist/logging/FileLogMedium.d.ts +13 -13
  58. package/dist/services/AbstractCacheService.d.ts +22 -22
  59. package/dist/services/AbstractFileService.d.ts +11 -11
  60. package/dist/services/AbstractMailService.d.ts +31 -31
  61. package/dist/services/AbstractService.d.ts +7 -7
  62. package/dist/services/AbstractSmsService.d.ts +25 -25
  63. package/dist/services/LocalFileService.d.ts +17 -17
  64. package/dist/services/ProxyFileService.d.ts +16 -16
  65. package/dist/services/RedisCacheService.d.ts +25 -25
  66. package/dist/services/S3FileService.d.ts +31 -31
  67. package/dist/services/SystemService.d.ts +15 -15
  68. package/dist/socket/AbstractServerSocket.d.ts +18 -18
  69. package/dist/socket/AbstractServerSocketManager.d.ts +46 -46
  70. package/dist/socket/AbstractSocketConnectionHandler.d.ts +6 -6
  71. package/dist/socket/AbstractSocketController.d.ts +14 -14
  72. package/dist/socket/AwsSocketManager.d.ts +30 -30
  73. package/dist/socket/IServerSocket.d.ts +16 -16
  74. package/dist/socket/LocalSocketManager.d.ts +47 -47
  75. package/dist/system/ClaireServer.d.ts +13 -13
  76. package/dist/system/ExpressWrapper.d.ts +19 -19
  77. package/dist/system/LambdaWrapper.d.ts +25 -25
  78. package/dist/system/ServerGlobalStore.d.ts +8 -8
  79. package/dist/system/errors.d.ts +14 -14
  80. package/dist/system/lamba-request-mapper.d.ts +2 -2
  81. package/dist/system/locale/LocaleEntry.d.ts +3 -3
  82. package/dist/system/locale/LocaleTranslation.d.ts +6 -6
  83. package/dist/system/locale/decorators.d.ts +2 -2
  84. package/package.json +66 -66
@@ -1,5 +1,5 @@
1
- export declare enum FileOperation {
2
- GET = "getObject",
3
- PUT = "putObject",
4
- DELETE = "deleteObject"
5
- }
1
+ export declare enum FileOperation {
2
+ GET = "getObject",
3
+ PUT = "putObject",
4
+ DELETE = "deleteObject"
5
+ }
@@ -1,10 +1,10 @@
1
- import { ModelFieldMetadata, ModelMetadata } from "@clairejs/core";
2
- import { IPrincipal } from "./auth/IPrincipal";
3
- import { UriMapperHandler } from "../http/file-upload/types";
4
- export interface ServerModelFieldMetadata extends ModelFieldMetadata {
5
- uriMapper?: UriMapperHandler<any>;
6
- userResolver?: (principal: IPrincipal) => any;
7
- }
8
- export interface ServerModelMetadata extends ModelMetadata {
9
- fields: ServerModelFieldMetadata[];
10
- }
1
+ import { ModelFieldMetadata, ModelMetadata } from "@clairejs/core";
2
+ import { IPrincipal } from "./auth/IPrincipal";
3
+ import { UriMapperHandler } from "../http/file-upload/types";
4
+ export interface ServerModelFieldMetadata extends ModelFieldMetadata {
5
+ uriMapper?: UriMapperHandler<any>;
6
+ userResolver?: (principal: IPrincipal) => any;
7
+ }
8
+ export interface ServerModelMetadata extends ModelMetadata {
9
+ fields: ServerModelFieldMetadata[];
10
+ }
@@ -1,4 +1,4 @@
1
- import { IPrincipal } from "./IPrincipal";
2
- export declare abstract class AbstractPrincipalResolver<T extends IPrincipal = IPrincipal> {
3
- abstract resolvePrincipal(authData?: any): Promise<T | undefined>;
4
- }
1
+ import { IPrincipal } from "./IPrincipal";
2
+ export declare abstract class AbstractPrincipalResolver<T extends IPrincipal = IPrincipal> {
3
+ abstract resolvePrincipal(authData?: any): Promise<T | undefined>;
4
+ }
@@ -1,4 +1,4 @@
1
- export interface IPrincipal {
2
- id: any;
3
- hasTfa?: boolean;
4
- }
1
+ export interface IPrincipal {
2
+ id: any;
3
+ hasTfa?: boolean;
4
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,40 +1,40 @@
1
- import { Constructor, DtoMetadata, HttpMethod, SocketMethod, ObjectFieldMetadata } from "@clairejs/core";
2
- import { RequestDataSource } from "./types";
3
- import { AbstractAccessCondition } from "../../http/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
- * This endpoint requires tfa
26
- */
27
- tfaRequired?: boolean;
28
- /**
29
- * Allow public access to this endpoint.
30
- */
31
- openAccess?: boolean;
32
- /**
33
- * Metadata of access condition to allow a conditional access to the endpoint.
34
- */
35
- accessConditions?: Constructor<AbstractAccessCondition>[];
36
- /**
37
- * Group of permission of this endpoint.
38
- */
39
- permissionGroup?: string;
40
- }
1
+ import { Constructor, DtoMetadata, HttpMethod, SocketMethod, ObjectFieldMetadata } from "@clairejs/core";
2
+ import { RequestDataSource } from "./types";
3
+ import { AbstractAccessCondition } from "../../http/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
+ * This endpoint requires tfa
26
+ */
27
+ tfaRequired?: boolean;
28
+ /**
29
+ * Allow public access to this endpoint.
30
+ */
31
+ openAccess?: boolean;
32
+ /**
33
+ * Metadata of access condition to allow a conditional access to the endpoint.
34
+ */
35
+ accessConditions?: Constructor<AbstractAccessCondition>[];
36
+ /**
37
+ * Group of permission of this endpoint.
38
+ */
39
+ permissionGroup?: string;
40
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,8 +1,8 @@
1
- import { HttpMethod, SocketMethod } from "@clairejs/core";
2
- export declare const getEndpointId: (endpoint: HttpEndpoint) => string;
3
- export interface HttpEndpoint {
4
- mount?: string;
5
- httpMethod?: HttpMethod | SocketMethod;
6
- controller: any;
7
- handlerFunctionName: string;
8
- }
1
+ import { HttpMethod, SocketMethod } from "@clairejs/core";
2
+ export declare const getEndpointId: (endpoint: HttpEndpoint) => string;
3
+ export interface HttpEndpoint {
4
+ mount?: string;
5
+ httpMethod?: HttpMethod | SocketMethod;
6
+ controller: any;
7
+ handlerFunctionName: string;
8
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -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,8 +1,8 @@
1
- export interface RequestOptions {
2
- method: string;
3
- rawPath: string;
4
- headers?: Record<string, string>;
5
- queries?: Record<string, string>;
6
- cookies?: Record<string, string>;
7
- body?: any;
8
- }
1
+ export interface RequestOptions {
2
+ method: string;
3
+ rawPath: string;
4
+ headers?: Record<string, string>;
5
+ queries?: Record<string, string>;
6
+ cookies?: Record<string, string>;
7
+ body?: any;
8
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -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,13 +1,13 @@
1
- import { AbstractHttpController } from "../http/controller/AbstractHttpController";
2
- import { AbstractFileService } from "../services/AbstractFileService";
3
- import { GetFileAccessUrlRequest, GetFileInfoRequest, GetFileInfoResponse, MoveFileRequest, RemoveFileRequest } from "./dto/upload";
4
- export declare class FileManageController extends AbstractHttpController {
5
- readonly fileService: AbstractFileService;
6
- constructor(fileService: AbstractFileService);
7
- moveFile(body: MoveFileRequest): Promise<import("../http/common/HttpResponse").HttpResponse<unknown>>;
8
- removeFile(body: RemoveFileRequest): Promise<import("../http/common/HttpResponse").HttpResponse<unknown>>;
9
- getFileAccessUrl(queries: GetFileAccessUrlRequest): Promise<import("../http/common/HttpResponse").HttpResponse<{
10
- urls: string[];
11
- }>>;
12
- getFileInfo(queries: GetFileInfoRequest): Promise<import("../http/common/HttpResponse").HttpResponse<GetFileInfoResponse>>;
13
- }
1
+ import { AbstractHttpController } from "../http/controller/AbstractHttpController";
2
+ import { AbstractFileService } from "../services/AbstractFileService";
3
+ import { GetFileAccessUrlRequest, GetFileInfoRequest, GetFileInfoResponse, MoveFileRequest, RemoveFileRequest } from "./dto/upload";
4
+ export declare class FileManageController extends AbstractHttpController {
5
+ readonly fileService: AbstractFileService;
6
+ constructor(fileService: AbstractFileService);
7
+ moveFile(body: MoveFileRequest): Promise<import("../http/common/HttpResponse").HttpResponse<unknown>>;
8
+ removeFile(body: RemoveFileRequest): Promise<import("../http/common/HttpResponse").HttpResponse<unknown>>;
9
+ getFileAccessUrl(queries: GetFileAccessUrlRequest): Promise<import("../http/common/HttpResponse").HttpResponse<{
10
+ urls: string[];
11
+ }>>;
12
+ getFileInfo(queries: GetFileInfoRequest): Promise<import("../http/common/HttpResponse").HttpResponse<GetFileInfoResponse>>;
13
+ }
@@ -1,13 +1,13 @@
1
- import { AbstractHttpController } from "../http/controller/AbstractHttpController";
2
- import { AbstractFileService } from "../services/AbstractFileService";
3
- import { GetMultipleUploadUrlsQueries, GetUploadUrlQueries, GetUploadUrlResponseBody } from "./dto/upload";
4
- export declare class FileUploadController extends AbstractHttpController {
5
- readonly fileService: AbstractFileService;
6
- readonly allowedUploadExtensions: string[];
7
- constructor(fileService: AbstractFileService, allowedUploadExtensions: string[]);
8
- private getUploadUrlForTempUri;
9
- getUploadUrl(queries: GetUploadUrlQueries): Promise<import("../http/common/HttpResponse").HttpResponse<GetUploadUrlResponseBody>>;
10
- getMultipleUploadUrls(queries: GetMultipleUploadUrlsQueries): Promise<import("../http/common/HttpResponse").HttpResponse<{
11
- files: GetUploadUrlResponseBody[];
12
- }>>;
13
- }
1
+ import { AbstractHttpController } from "../http/controller/AbstractHttpController";
2
+ import { AbstractFileService } from "../services/AbstractFileService";
3
+ import { GetMultipleUploadUrlsQueries, GetUploadUrlQueries, GetUploadUrlResponseBody } from "./dto/upload";
4
+ export declare class FileUploadController extends AbstractHttpController {
5
+ readonly fileService: AbstractFileService;
6
+ readonly allowedUploadExtensions: string[];
7
+ constructor(fileService: AbstractFileService, allowedUploadExtensions: string[]);
8
+ private getUploadUrlForTempUri;
9
+ getUploadUrl(queries: GetUploadUrlQueries): Promise<import("../http/common/HttpResponse").HttpResponse<GetUploadUrlResponseBody>>;
10
+ getMultipleUploadUrls(queries: GetMultipleUploadUrlsQueries): Promise<import("../http/common/HttpResponse").HttpResponse<{
11
+ files: GetUploadUrlResponseBody[];
12
+ }>>;
13
+ }
@@ -1,20 +1,20 @@
1
- import { AccessConditionMetadata, DtoMetadata, HttpMethod, SocketMethod } from "@clairejs/core";
2
- export declare class Permission {
3
- id: string;
4
- description?: string;
5
- name: string;
6
- openAccess: boolean;
7
- tfaRequired: boolean;
8
- permissionGroup: string;
9
- accessConditions: AccessConditionMetadata[];
10
- readOnly: boolean;
11
- method: HttpMethod | SocketMethod;
12
- mount: string;
13
- paramDto?: DtoMetadata;
14
- queryDto?: DtoMetadata;
15
- bodyDto?: DtoMetadata;
16
- responseDto?: DtoMetadata;
17
- }
18
- export declare class ApiInfoResponse {
19
- permissions: Permission[];
20
- }
1
+ import { AccessConditionMetadata, DtoMetadata, HttpMethod, SocketMethod } from "@clairejs/core";
2
+ export declare class Permission {
3
+ id: string;
4
+ description?: string;
5
+ name: string;
6
+ openAccess: boolean;
7
+ tfaRequired: boolean;
8
+ permissionGroup: string;
9
+ accessConditions: AccessConditionMetadata[];
10
+ readOnly: boolean;
11
+ method: HttpMethod | SocketMethod;
12
+ mount: string;
13
+ paramDto?: DtoMetadata;
14
+ queryDto?: DtoMetadata;
15
+ bodyDto?: DtoMetadata;
16
+ responseDto?: DtoMetadata;
17
+ }
18
+ export declare class ApiInfoResponse {
19
+ permissions: Permission[];
20
+ }
@@ -1,12 +1,12 @@
1
- export declare enum CacheOperation {
2
- GET = "get",
3
- KEYS = "keys",
4
- HGET = "hget",
5
- HKEYS = "hkeys",
6
- FLUSH = "flush"
7
- }
8
- export declare enum UserVerificationMethod {
9
- SMS_OTP = "SMS",
10
- VOICE_OTP = "VOICE",
11
- MANUAL_OTP = "MANUAL"
12
- }
1
+ export declare enum CacheOperation {
2
+ GET = "get",
3
+ KEYS = "keys",
4
+ HGET = "hget",
5
+ HKEYS = "hkeys",
6
+ FLUSH = "flush"
7
+ }
8
+ export declare enum UserVerificationMethod {
9
+ SMS_OTP = "SMS",
10
+ VOICE_OTP = "VOICE",
11
+ MANUAL_OTP = "MANUAL"
12
+ }
@@ -1,40 +1,40 @@
1
- export declare class GetUploadUrlQueries {
2
- extension?: string;
3
- }
4
- export declare class GetUploadUrlResponseBody {
5
- objectKey: string;
6
- putPresignedUrl: string;
7
- deletePresignedUrl: string;
8
- }
9
- export declare class GetMultipleUploadUrlsQueries {
10
- extensions: string[];
11
- }
12
- export declare class GetMultipleUploadResponseBody {
13
- files: GetUploadUrlResponseBody[];
14
- }
15
- export declare class MoveOperation {
16
- fromURI: string;
17
- toURI: string;
18
- }
19
- export declare class MoveFileRequest {
20
- operations: MoveOperation[];
21
- }
22
- export declare class RemoveFileRequest {
23
- uris: string[];
24
- }
25
- export declare class GetFileAccessUrlRequest {
26
- uris: string[];
27
- public: boolean;
28
- }
29
- export declare class GetFileAccessUrlResponse {
30
- urls: string[];
31
- }
32
- export declare class GetFileInfoRequest {
33
- uris: string[];
34
- }
35
- export declare class FileInfo {
36
- fileSizeBytes: number;
37
- }
38
- export declare class GetFileInfoResponse {
39
- fileInfos: FileInfo[];
40
- }
1
+ export declare class GetUploadUrlQueries {
2
+ extension?: string;
3
+ }
4
+ export declare class GetUploadUrlResponseBody {
5
+ objectKey: string;
6
+ putPresignedUrl: string;
7
+ deletePresignedUrl: string;
8
+ }
9
+ export declare class GetMultipleUploadUrlsQueries {
10
+ extensions: string[];
11
+ }
12
+ export declare class GetMultipleUploadResponseBody {
13
+ files: GetUploadUrlResponseBody[];
14
+ }
15
+ export declare class MoveOperation {
16
+ fromURI: string;
17
+ toURI: string;
18
+ }
19
+ export declare class MoveFileRequest {
20
+ operations: MoveOperation[];
21
+ }
22
+ export declare class RemoveFileRequest {
23
+ uris: string[];
24
+ }
25
+ export declare class GetFileAccessUrlRequest {
26
+ uris: string[];
27
+ public: boolean;
28
+ }
29
+ export declare class GetFileAccessUrlResponse {
30
+ urls: string[];
31
+ }
32
+ export declare class GetFileInfoRequest {
33
+ uris: string[];
34
+ }
35
+ export declare class FileInfo {
36
+ fileSizeBytes: number;
37
+ }
38
+ export declare class GetFileInfoResponse {
39
+ fileInfos: FileInfo[];
40
+ }
@@ -1,5 +1,5 @@
1
- import { AbstractModel } from "@clairejs/core";
2
- export declare class SystemSetting extends AbstractModel {
3
- key: string;
4
- value: string;
5
- }
1
+ import { AbstractModel } from "@clairejs/core";
2
+ export declare class SystemSetting extends AbstractModel {
3
+ key: string;
4
+ value: string;
5
+ }
@@ -1,9 +1,9 @@
1
- import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
2
- import { IPrincipal } from "../../common/auth/IPrincipal";
3
- import { MountedEndpointInfo } from "../../common/request/MountedEndpointInfo";
4
- import { HttpRequest } from "../common/HttpRequest";
5
- export declare abstract class AbstractHttpAuthorizationProvider<T extends IPrincipal = IPrincipal> {
6
- abstract getPrincipalResolver(): AbstractPrincipalResolver<T>;
7
- abstract resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
8
- abstract authorize(principal: T | undefined, req: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
9
- }
1
+ import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
2
+ import { IPrincipal } from "../../common/auth/IPrincipal";
3
+ import { MountedEndpointInfo } from "../../common/request/MountedEndpointInfo";
4
+ import { HttpRequest } from "../common/HttpRequest";
5
+ export declare abstract class AbstractHttpAuthorizationProvider<T extends IPrincipal = IPrincipal> {
6
+ abstract getPrincipalResolver(): AbstractPrincipalResolver<T>;
7
+ abstract resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
8
+ abstract authorize(principal: T | undefined, req: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
9
+ }
@@ -1,18 +1,18 @@
1
- import { AbstractLogger } from "@clairejs/core";
2
- import { HttpRequest } from "../common/HttpRequest";
3
- import { MountedEndpointInfo } from "../../common/request/MountedEndpointInfo";
4
- import { RbacCache } from "./rbac";
5
- import { AbstractHttpAuthorizationProvider } from "./AbstractHttpAuthorizationProvider";
6
- import { IPrincipal } from "../../common/auth/IPrincipal";
7
- import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
8
- export declare abstract class AbstractRbacAuthProvider<T extends IPrincipal> extends AbstractHttpAuthorizationProvider<T> {
9
- readonly authDataResolver: (req: HttpRequest) => string;
10
- readonly principalResolver: AbstractPrincipalResolver<T>;
11
- readonly logger: AbstractLogger;
12
- constructor(authDataResolver: (req: HttpRequest) => string, principalResolver: AbstractPrincipalResolver<T>, logger: AbstractLogger);
13
- getPrincipalResolver(): AbstractPrincipalResolver<T>;
14
- abstract getRbacCache(): Promise<RbacCache | undefined>;
15
- abstract getRolesOfPrincipal(principal: T): Promise<number[]>;
16
- resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
17
- authorize(principal: T | undefined, request: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
18
- }
1
+ import { AbstractLogger } from "@clairejs/core";
2
+ import { HttpRequest } from "../common/HttpRequest";
3
+ import { MountedEndpointInfo } from "../../common/request/MountedEndpointInfo";
4
+ import { RbacCache } from "./rbac";
5
+ import { AbstractHttpAuthorizationProvider } from "./AbstractHttpAuthorizationProvider";
6
+ import { IPrincipal } from "../../common/auth/IPrincipal";
7
+ import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
8
+ export declare abstract class AbstractRbacAuthProvider<T extends IPrincipal> extends AbstractHttpAuthorizationProvider<T> {
9
+ readonly authDataResolver: (req: HttpRequest) => string;
10
+ readonly principalResolver: AbstractPrincipalResolver<T>;
11
+ readonly logger: AbstractLogger;
12
+ constructor(authDataResolver: (req: HttpRequest) => string, principalResolver: AbstractPrincipalResolver<T>, logger: AbstractLogger);
13
+ getPrincipalResolver(): AbstractPrincipalResolver<T>;
14
+ abstract getRbacCache(): Promise<RbacCache | undefined>;
15
+ abstract getRolesOfPrincipal(principal: T): Promise<number[]>;
16
+ resolvePrincipal(req: HttpRequest): Promise<T | undefined>;
17
+ authorize(principal: T | undefined, request: HttpRequest, endpoint: MountedEndpointInfo): Promise<void>;
18
+ }
@@ -1,24 +1,24 @@
1
- import { AbstractLogger } from "@clairejs/core";
2
- import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
3
- import { IPrincipal } from "../../common/auth/IPrincipal";
4
- import { AbstractCacheService } from "../../services/AbstractCacheService";
5
- import { HttpRequest } from "../common/HttpRequest";
6
- import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
7
- import { RbacCache } from "./rbac";
8
- export declare class RedisRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> {
9
- readonly serviceIdResolver: () => Promise<string>;
10
- readonly rbacChannel: string;
11
- readonly principalChannel: string;
12
- readonly authDataResolver: (req: HttpRequest) => any;
13
- readonly principalResolver: AbstractPrincipalResolver<T>;
14
- readonly cacheService: AbstractCacheService;
15
- readonly logger: AbstractLogger;
16
- readonly redisDataRetentionDurationMs: number;
17
- private lastRbacFetchTimestamp;
18
- private principalCache;
19
- private rbacCache?;
20
- private serviceId;
21
- constructor(serviceIdResolver: () => Promise<string>, rbacChannel: string, principalChannel: string, authDataResolver: (req: HttpRequest) => any, principalResolver: AbstractPrincipalResolver<T>, cacheService: AbstractCacheService, logger: AbstractLogger, redisDataRetentionDurationMs?: number);
22
- getRbacCache(): Promise<RbacCache | undefined>;
23
- getRolesOfPrincipal(principal: T): Promise<number[]>;
24
- }
1
+ import { AbstractLogger } from "@clairejs/core";
2
+ import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
3
+ import { IPrincipal } from "../../common/auth/IPrincipal";
4
+ import { AbstractCacheService } from "../../services/AbstractCacheService";
5
+ import { HttpRequest } from "../common/HttpRequest";
6
+ import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
7
+ import { RbacCache } from "./rbac";
8
+ export declare class RedisRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> {
9
+ readonly serviceIdResolver: () => Promise<string>;
10
+ readonly rbacChannel: string;
11
+ readonly principalChannel: string;
12
+ readonly authDataResolver: (req: HttpRequest) => any;
13
+ readonly principalResolver: AbstractPrincipalResolver<T>;
14
+ readonly cacheService: AbstractCacheService;
15
+ readonly logger: AbstractLogger;
16
+ readonly redisDataRetentionDurationMs: number;
17
+ private lastRbacFetchTimestamp;
18
+ private principalCache;
19
+ private rbacCache?;
20
+ private serviceId;
21
+ constructor(serviceIdResolver: () => Promise<string>, rbacChannel: string, principalChannel: string, authDataResolver: (req: HttpRequest) => any, principalResolver: AbstractPrincipalResolver<T>, cacheService: AbstractCacheService, logger: AbstractLogger, redisDataRetentionDurationMs?: number);
22
+ getRbacCache(): Promise<RbacCache | undefined>;
23
+ getRolesOfPrincipal(principal: T): Promise<number[]>;
24
+ }
@@ -1,25 +1,25 @@
1
- import { AbstractLogger, IInit, IClientSocket } from "@clairejs/core";
2
- import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
3
- import { RbacCache } from "./rbac";
4
- import { HttpRequest } from "../common/HttpRequest";
5
- import { IPrincipal } from "../../common/auth/IPrincipal";
6
- import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
7
- export declare class SocketRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> implements IInit {
8
- readonly rbacCacheChannel: string;
9
- readonly principalCacheChannel: string;
10
- readonly authDataResolver: (req: HttpRequest) => any;
11
- readonly principalResolver: AbstractPrincipalResolver<T>;
12
- readonly logger: AbstractLogger;
13
- readonly socketProvider: () => Promise<IClientSocket>;
14
- socket?: IClientSocket;
15
- rbacCache?: RbacCache;
16
- idResolvers: {
17
- principalId: number;
18
- resolvers: ((roleIds: number[]) => void)[];
19
- }[];
20
- constructor(rbacCacheChannel: string, principalCacheChannel: string, authDataResolver: (req: HttpRequest) => any, principalResolver: AbstractPrincipalResolver<T>, logger: AbstractLogger, socketProvider: () => Promise<IClientSocket>);
21
- exit(): void;
22
- init(): Promise<void>;
23
- getRbacCache(): Promise<RbacCache | undefined>;
24
- getRolesOfPrincipal(principal: T): Promise<number[]>;
25
- }
1
+ import { AbstractLogger, IInit, IClientSocket } from "@clairejs/core";
2
+ import { AbstractRbacAuthProvider } from "./AbstractRbacAuthProvider";
3
+ import { RbacCache } from "./rbac";
4
+ import { HttpRequest } from "../common/HttpRequest";
5
+ import { IPrincipal } from "../../common/auth/IPrincipal";
6
+ import { AbstractPrincipalResolver } from "../../common/auth/AbstractPrincipalResolver";
7
+ export declare class SocketRbacAuthProvider<T extends IPrincipal> extends AbstractRbacAuthProvider<T> implements IInit {
8
+ readonly rbacCacheChannel: string;
9
+ readonly principalCacheChannel: string;
10
+ readonly authDataResolver: (req: HttpRequest) => any;
11
+ readonly principalResolver: AbstractPrincipalResolver<T>;
12
+ readonly logger: AbstractLogger;
13
+ readonly socketProvider: () => Promise<IClientSocket>;
14
+ socket?: IClientSocket;
15
+ rbacCache?: RbacCache;
16
+ idResolvers: {
17
+ principalId: number;
18
+ resolvers: ((roleIds: number[]) => void)[];
19
+ }[];
20
+ constructor(rbacCacheChannel: string, principalCacheChannel: string, authDataResolver: (req: HttpRequest) => any, principalResolver: AbstractPrincipalResolver<T>, logger: AbstractLogger, socketProvider: () => Promise<IClientSocket>);
21
+ exit(): void;
22
+ init(): Promise<void>;
23
+ getRbacCache(): Promise<RbacCache | undefined>;
24
+ getRolesOfPrincipal(principal: T): Promise<number[]>;
25
+ }