webssh2-server
Version:
A Websocket to SSH2 gateway using xterm.js, socket.io, ssh2
35 lines (34 loc) • 1.36 kB
TypeScript
import { EventEmitter } from 'events';
import type { Server as IOServer } from 'socket.io';
import type { Config } from './types/config.js';
import type { ClientToServerEvents, ServerToClientEvents, InterServerEvents, SocketData } from './types/contracts/v1/socket.js';
export type SSHCtor = new (config: Config) => {
connect: (creds: Record<string, unknown>) => Promise<unknown>;
shell: (options: {
term?: string | null;
rows?: number;
cols?: number;
width?: number;
height?: number;
}, env?: Record<string, string> | null) => Promise<EventEmitter & {
write?: (d: unknown) => void;
end?: () => void;
stderr?: EventEmitter;
}>;
exec: (command: string, options: {
pty?: boolean;
term?: string;
rows?: number;
cols?: number;
width?: number;
height?: number;
}, env?: Record<string, string>) => Promise<EventEmitter & {
write?: (d: unknown) => void;
stderr?: EventEmitter;
signal?: (s: string) => void;
close?: () => void;
}>;
resizeTerminal?: (rows: number | null, cols: number | null) => void;
end?: () => void;
};
export default function init(io: IOServer<ClientToServerEvents, ServerToClientEvents, InterServerEvents, SocketData>, config: Config, SSHConnectionClass: SSHCtor): void;