openvibe-sdk/limits

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.13.0.

From types/limits.d.ts (server only). Declarations are shown verbatim.

interface WindowLimits

export interface WindowLimits { minute?: number; hour?: number; day?: number }

type ActorOf

export type ActorOf = (req: IncomingMessage & Record<string, any>) => string | null;

interface LimitedEvent

export interface LimitedEvent { actor: string; name: string; window: 'minute' | 'hour' | 'day'; limit: number }

type LimitMiddleware

export type LimitMiddleware = (req: IncomingMessage & Record<string, any>, res: ServerResponse, next: (err?: unknown) => void) => void;

interface ActorLimiter

export interface ActorLimiter {
    /** Middleware for one capability or route; its limits replace the defaults window by window. */
    (name: string, limits?: WindowLimits): LimitMiddleware;
    stats(): { allowed: number; limited: number; actors: number };
    reset(): void;
}

export export function createActorLimiter(opts?: { limits?: WindowL

export function createActorLimiter(opts?: { limits?: WindowLimits; actor?: ActorOf; maxActors?: number; now?: () => number; onLimited?: (e: LimitedEvent) => void }): ActorLimiter;

export export const defaultActor: ActorOf;

req.principal.sub, else the signed-in person (user:<subject>), else ip:<address>.

export const defaultActor: ActorOf;

export export const WINDOWS: { minute: 60; hour: 3600; day: 86400 }

export const WINDOWS: { minute: 60; hour: 3600; day: 86400 };