UNPKG

@shelltender/server

Version:

Server-side terminal session management for Shelltender

115 lines 3.39 kB
import express from 'express'; import { Server } from 'http'; import { SessionManager, BufferManager, SessionStore, WebSocketServer, EventManager, TerminalDataPipeline, PipelineIntegration } from './index.js'; export interface ShelltenderConfig { port?: number | 'auto'; wsPath?: string; enablePipeline?: boolean; enableSecurity?: boolean; sessionOptions?: { defaultCommand?: string; defaultCwd?: string; defaultEnv?: Record<string, string>; }; server?: Server; sessionManager?: SessionManager; sessionStore?: SessionStore; host?: string; trustProxy?: boolean; staticDir?: string; apiRoutes?: boolean; defaultDirectory?: (sessionId: string) => string; transformSessionConfig?: (config: any, sessionId: string) => Promise<any>; dataDir?: string; } export interface ShelltenderInstance { sessionManager: SessionManager; bufferManager: BufferManager; wsServer: WebSocketServer; sessionStore: SessionStore; eventManager: EventManager; pipeline?: TerminalDataPipeline; integration?: PipelineIntegration; server?: Server; port?: number; url?: string; wsUrl?: string; config: ShelltenderConfig & { isReady: boolean; }; createSession: (options?: any) => any; getSession: (sessionId: string) => any; getAllSessions: () => any[]; resizeSession: (sessionId: string, cols: number, rows: number) => boolean; killSession: (sessionId: string) => boolean; broadcast: (message: any) => void; getActiveSessionCount: () => number; getConfiguration: () => any; stop: () => Promise<void>; } /** * Create a Shelltender instance attached to an Express app */ export declare function createShelltender(app: express.Application, config?: ShelltenderConfig): Promise<ShelltenderInstance>; /** * Create a standalone Shelltender server */ export declare function createShelltenderServer(config?: ShelltenderConfig): Promise<{ server: Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>; shelltender: ShelltenderInstance; port: number; url: string; wsUrl: string; stop: () => Promise<void>; }>; /** * One-line server startup */ export declare function startShelltender(port?: number): Promise<{ server: Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>; shelltender: ShelltenderInstance; port: number; url: string; wsUrl: string; stop: () => Promise<void>; }>; /** * Detect runtime environment */ export declare function detectEnvironment(options?: { app?: express.Application; }): Promise<{ isDocker: boolean; isKubernetes: boolean; isCI: boolean; isDevelopment: boolean; isProduction: boolean; behindProxy: boolean; host: string; enableDevTools: boolean; suggestions: string[]; }>; /** * Validate configuration */ export declare function validateConfiguration(config: any): Promise<{ errors: string[]; warnings: string[]; fixes: any; migration: { from: { websocketPort: any; httpPort: any; }; to: { port: any; wsPath: string; }; }; } | { errors: string[]; warnings: string[]; fixes: any; migration?: undefined; }>; //# sourceMappingURL=createServer.d.ts.map