UNPKG

durabull

Version:

A durable workflow engine built on top of BullMQ and Redis

47 lines (46 loc) 1.6 kB
import { Workflow } from '../Workflow'; type WorkflowConstructor = new () => Workflow<unknown[], unknown>; export interface AuthStrategy { authenticate(request: WebhookRequest): Promise<boolean>; } export interface WebhookRequest { method: string; path: string; headers: Record<string, string>; body: unknown; } export interface WebhookResponse { statusCode: number; body: unknown; headers?: Record<string, string>; } export declare class NoneAuthStrategy implements AuthStrategy { authenticate(_request: WebhookRequest): Promise<boolean>; } export declare class TokenAuthStrategy implements AuthStrategy { private token; private header; constructor(token: string, header?: string); authenticate(request: WebhookRequest): Promise<boolean>; } export declare class SignatureAuthStrategy implements AuthStrategy { private secret; private header; constructor(secret: string, header?: string); authenticate(request: WebhookRequest): Promise<boolean>; } export interface WebhookRouterConfig { authStrategy?: AuthStrategy; workflowRegistry?: Map<string, WorkflowConstructor>; } export declare function registerWebhookWorkflow(name: string, WorkflowClass: WorkflowConstructor): void; export declare class WebhookRouter { private authStrategy; private registry; constructor(config?: WebhookRouterConfig); handle(request: WebhookRequest): Promise<WebhookResponse>; private handleStart; private handleSignal; } export declare function createWebhookRouter(config?: WebhookRouterConfig): WebhookRouter; export {};