UNPKG

@prostojs/wf

Version:

Generic workflow framework

116 lines (115 loc) 3.71 kB
import { l as TStepOutput, s as TFlowState } from "../types-DQ7U9zZ5.mjs"; //#region src/outlets/types.d.ts type WfState = TFlowState<unknown>; interface WfOutletRequest<P = unknown> { outlet: string; payload?: P; target?: string; template?: string; context?: Record<string, unknown>; } interface WfOutletResult { response?: unknown; status?: number; headers?: Record<string, string>; cookies?: Record<string, WfCookieValue>; } interface WfCookieValue { value: string; options?: { httpOnly?: boolean; secure?: boolean; sameSite?: 'strict' | 'lax' | 'none'; path?: string; domain?: string; maxAge?: number; expires?: Date; }; } //#endregion //#region src/outlets/outlet.d.ts interface WfOutlet { readonly name: string; deliver(request: WfOutletRequest, token: string): Promise<WfOutletResult | void>; } //#endregion //#region src/outlets/helpers.d.ts type WfOutletSignal<P> = NonNullable<TStepOutput<WfOutletRequest<P>>>; declare function outlet<P = unknown>(name: string, data?: Omit<WfOutletRequest<P>, 'outlet'>): WfOutletSignal<P>; declare function outletHttp<P = unknown>(payload: P, context?: Record<string, unknown>): WfOutletSignal<P>; declare function outletEmail(target: string, template: string, context?: Record<string, unknown>): WfOutletSignal<unknown>; //#endregion //#region src/outlets/state/strategy.d.ts interface WfStateStrategy { persist(state: WfState, options?: { ttl?: number; }): Promise<string>; retrieve(token: string): Promise<WfState | null>; consume(token: string): Promise<WfState | null>; } //#endregion //#region src/outlets/state/encapsulated.d.ts interface EncapsulatedStateConfig { secret: string | Buffer; defaultTtl?: number; } declare class EncapsulatedStateStrategy implements WfStateStrategy { private config; private key; constructor(config: EncapsulatedStateConfig); persist(state: WfState, options?: { ttl?: number; }): Promise<string>; retrieve(token: string): Promise<WfState | null>; consume(token: string): Promise<WfState | null>; private decrypt; } //#endregion //#region src/outlets/state/store.d.ts interface WfStateStore { set(handle: string, state: WfState, expiresAt?: number): Promise<void>; get(handle: string): Promise<{ state: WfState; expiresAt?: number; } | null>; delete(handle: string): Promise<void>; getAndDelete(handle: string): Promise<{ state: WfState; expiresAt?: number; } | null>; cleanup?(): Promise<number>; } //#endregion //#region src/outlets/state/handle.d.ts interface HandleStateConfig { store: WfStateStore; defaultTtl?: number; generateHandle?: () => string; } declare class HandleStateStrategy implements WfStateStrategy { private config; constructor(config: HandleStateConfig); persist(state: WfState, options?: { ttl?: number; }): Promise<string>; retrieve(token: string): Promise<WfState | null>; consume(token: string): Promise<WfState | null>; } //#endregion //#region src/outlets/state/memory.d.ts declare class WfStateStoreMemory implements WfStateStore { private store; set(handle: string, state: WfState, expiresAt?: number): Promise<void>; get(handle: string): Promise<{ state: WfState; expiresAt?: number; } | null>; delete(handle: string): Promise<void>; getAndDelete(handle: string): Promise<{ state: WfState; expiresAt?: number; } | null>; cleanup(): Promise<number>; } //#endregion export { EncapsulatedStateConfig, EncapsulatedStateStrategy, HandleStateConfig, HandleStateStrategy, WfCookieValue, WfOutlet, WfOutletRequest, WfOutletResult, WfState, WfStateStore, WfStateStoreMemory, WfStateStrategy, outlet, outletEmail, outletHttp };