@elsikora/nestjs-crud-automator
Version:
A library for automating the creation of CRUD operations in NestJS.
31 lines (30 loc) • 1.9 kB
TypeScript
import { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
import { IApiAuthorizationPolicy, IApiAuthorizationPolicyRegistry, IApiAuthorizationPolicySubscriberRegistration } from '../../../../interface/class/api/authorization';
import { IApiAuthorizationPolicyBuildOptions } from '../../../../interface/class/api/authorization/policy/build-options.interface';
import { IApiAuthorizationPolicyCacheOptions } from '../../../../interface/class/api/authorization/policy/cache-options.interface';
import { TApiAuthorizationPolicyHookResult } from '../../../../type/class/api/authorization/policy/hook';
export declare class ApiAuthorizationPolicyRegistry implements IApiAuthorizationPolicyRegistry {
private cacheOptions;
private readonly POLICY_REGISTRY;
private readonly POLICY_RULE_CACHE;
constructor();
buildAggregatedPolicy<E extends IApiBaseEntity, TAction extends string>(entity: new () => E, action: TAction, options?: IApiAuthorizationPolicyBuildOptions<E>): Promise<IApiAuthorizationPolicy<E, TApiAuthorizationPolicyHookResult<TAction, E>> | undefined>;
clear(): void;
configureCache(options?: IApiAuthorizationPolicyCacheOptions): void;
hasSubscriberForEntity(entity: new () => IApiBaseEntity): boolean;
invalidateCache(entity?: new () => IApiBaseEntity): void;
registerSubscriber<E extends IApiBaseEntity>(registration: IApiAuthorizationPolicySubscriberRegistration<E>): void;
private cacheRules;
private createPolicyCacheKey;
private getCachedRules;
private getEntityName;
private getSubscriberName;
private invalidateCacheForEntity;
private isCacheExpired;
private normalizeRule;
private resolveCacheOptions;
private resolvePolicyId;
private resolvePolicyRules;
private resolvePrincipal;
}
export declare const apiAuthorizationPolicyRegistry: ApiAuthorizationPolicyRegistry;