UNPKG

@shelltender/server

Version:

Server-side terminal session management for Shelltender

35 lines 1.65 kB
import { EventEmitter } from 'events'; import { ProcessedDataEvent, DataProcessor, DataFilter, PipelineOptions, IPipelineSubscriber } from '@shelltender/core'; export declare class TerminalDataPipeline extends EventEmitter implements IPipelineSubscriber { readonly options: PipelineOptions; private processors; private filters; private processorOrder; constructor(options?: PipelineOptions); addProcessor(name: string, processor: DataProcessor, priority?: number): void; removeProcessor(name: string): void; addFilter(name: string, filter: DataFilter): void; removeFilter(name: string): void; processData(sessionId: string, data: string, metadata?: any): Promise<void>; onData(callback: (event: ProcessedDataEvent) => void): () => void; onSessionData(sessionId: string, callback: (event: ProcessedDataEvent) => void): () => void; private updateProcessorOrder; private handleError; getProcessorNames(): string[]; getFilterNames(): string[]; clear(): void; } export declare const CommonProcessors: { securityFilter: (patterns: RegExp[]) => DataProcessor; rateLimiter: (maxBytesPerSecond: number) => DataProcessor; ansiStripper: () => DataProcessor; lineEndingNormalizer: () => DataProcessor; creditCardRedactor: () => DataProcessor; }; export declare const CommonFilters: { noBinary: () => DataFilter; sessionAllowlist: (allowedSessions: Set<string>) => DataFilter; maxDataSize: (maxBytes: number) => DataFilter; sourceFilter: (allowedSources: Array<"pty" | "user" | "system">) => DataFilter; }; //# sourceMappingURL=TerminalDataPipeline.d.ts.map