UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

39 lines (38 loc) 2.61 kB
import { IApiBaseEntity } from '../../../interface/api-base-entity.interface'; import { IApiAuthenticationRequest } from '../../../interface/api/authentication-request.interface'; import { IApiAuthorizationAuditSink, IApiAuthorizationDecision, IApiAuthorizationPolicyRegistry, IApiAuthorizationPrincipal, IApiAuthorizationPrincipalResolver, IApiAuthorizationRequestMetadata } from '../../../interface/class/api/authorization'; import { IApiControllerAuthorizationProperties } from '../../../interface/decorator/api/controller/properties'; import { IApiRouteAuthorizationProperties } from '../../../interface/decorator/api/route'; import { TApiAuthorizationRuleTransformPayload } from '../../../type/class/api/authorization/rule/transform-payload.type'; import { ApiAuthorizationEngine } from './engine.class'; import { ApiAuthorizationHookPermissionResolver } from './hook'; import { ApiAuthorizationIamAttachmentResolver, ApiAuthorizationIamDocumentResolver, ApiAuthorizationIamEngine } from './iam'; import { EApiRouteType } from '../../../enum/decorator/api/route'; export declare class ApiAuthorizationRuntime { private readonly policyRegistry; private readonly authorizationEngine; private readonly hookPermissionResolver; private readonly iamAttachmentResolver; private readonly iamDocumentResolver; private readonly iamEngine; private readonly principalResolver?; private readonly auditSink?; constructor(policyRegistry: IApiAuthorizationPolicyRegistry, authorizationEngine: ApiAuthorizationEngine, hookPermissionResolver: ApiAuthorizationHookPermissionResolver, iamAttachmentResolver: ApiAuthorizationIamAttachmentResolver, iamDocumentResolver: ApiAuthorizationIamDocumentResolver, iamEngine: ApiAuthorizationIamEngine, principalResolver?: IApiAuthorizationPrincipalResolver | undefined, auditSink?: IApiAuthorizationAuditSink | undefined); evaluate<E extends IApiBaseEntity>(options: { action: string; authenticationRequest?: IApiAuthenticationRequest; authorization: IApiControllerAuthorizationProperties<E>; entity: new () => E; principal?: IApiAuthorizationPrincipal; requestMetadata: IApiAuthorizationRequestMetadata<E>; resource?: E; routeAuthorization?: IApiRouteAuthorizationProperties; routeType?: EApiRouteType; }): Promise<IApiAuthorizationDecision<E, TApiAuthorizationRuleTransformPayload<E>>>; private createImplicitDenyHookPolicy; private evaluateHooks; private evaluateIam; private resolveIamAction; private resolveMode; private resolvePrincipal; }