@shelltender/server
Version:
Server-side terminal session management for Shelltender
35 lines • 1.65 kB
TypeScript
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