@opentui/ssh
Every export of @opentui/ssh in the 0.6.0 release, from its type declarations. A version names the release that added an export after the module's first release.
Functions#
function createServer(config?: Omit<ServerConfig, "auth"> & { auth?: "open"; }): ServerBuilder<IdentityFor<"open">>function createServer<A extends AuthConfig>(config: ServerConfig<A>): ServerBuilder<IdentityFor<A | "open">>function createServer<A extends AuthMethods>(config: Omit<ServerConfig, "auth"> & { auth: A; }): ServerBuilder<IdentityFor<A>>function logging<Id extends Identity = Identity>(options?: LoggingOptions<Id>): Middleware<Id>
Classes#
class ConfigError extends SshErrorconstructor ConfigError(message: string)class DenyError extends Errorconstructor DenyError(reason?: string)readonly property DenyError.reason: string | undefined
class OutputPressureError extends SshErrorconstructor OutputPressureError()class SshError extends Errorconstructor SshError(code: string, message: string)readonly property SshError.code: string
Interfaces#
interface AuthMethods extends CredentialMethodsproperty AuthMethods.none?: never
interface Handoff<Add extends object = object>readonly property Handoff.[HANDOFF]: Add
interface ListenInfoproperty ListenInfo.fingerprints: string[]property ListenInfo.host: stringproperty ListenInfo.port: number
interface LoggingOptions<Id extends Identity = Identity>property LoggingOptions.log?: (event: LogEvent<Id>) => void
interface MiddlewareSession<Id extends Identity = Identity, Ctx extends object = object> extends SessionCommon<Id>method MiddlewareSession.deny(reason?: string): neverreadonly property MiddlewareSession.context: Ctx
interface PublicKeyPolicyproperty PublicKeyPolicy.allow?: (ctx: { username: string; fingerprint: string; publicKey: PublicKey; }) => boolean | Promise<boolean>property PublicKeyPolicy.authorizedKeys?: string | string[]
interface RemoteAddressreadonly property RemoteAddress.address: stringreadonly property RemoteAddress.port?: number
interface Servermethod Server.close(): Promise<void>method Server.listen(port?: number, host?: string): Promise<ListenInfo>
interface ServerBuilder<Id extends Identity = Identity, Ctx extends object = {}>method ServerBuilder.serve(handler: SessionHandler<Id, Ctx>): Servermethod ServerBuilder.use<Add extends object>(mw: MiddlewareFunction<Id, Ctx, Add>): ServerBuilder<Id, Ctx & Add>
interface ServerConfig<A extends AuthConfig = "open">property ServerConfig.auth?: Aproperty ServerConfig.hostKey?: { path: string; } | { pem: string | Buffer | (string | Buffer)[]; }property ServerConfig.idleTimeout?: string | numberproperty ServerConfig.limits?: { session?: { perConnection?: number; global?: number; }; }property ServerConfig.maxTimeout?: string | numberproperty ServerConfig.onError?: (err: unknown) => voidproperty ServerConfig.startupBanner?: boolean
interface Session<Id extends Identity = Identity, Ctx extends object = {}> extends SessionCommon<Id>readonly property Session.context: Ctxreadonly property Session.renderer: CliRenderer
Types#
type AuthConfig = "open" | AuthMethodstype Identity = { method: "none"; username: string; } | { method: "password"; username: string; } | { method: "keyboard-interactive"; username: string; } | { method: "publickey"; username: string; fingerprint: string; publicKey: PublicKey; }type IdentityFor<A extends AuthConfig = "open"> = A extends "open" ? Extract<Identity, { method: "none"; }> : A extends AuthMethods ? CredentialVariant[ConfiguredCredentialKeys<A> & keyof CredentialVariant] : nevertype LogEvent<Id extends Identity = Identity> = (LogEventCommon<Id> & { type: "connect"; durationMs?: never; }) | (LogEventCommon<Id> & { type: "disconnect"; durationMs: number; })type Middleware<Id extends Identity = Identity, Add extends object = object> = (session: MiddlewareSession<Id>, next: Next) => Handoff<Add> | Promise<Handoff<Add>>type MiddlewareFunction<Id extends Identity = Identity, Ctx extends object = object, Add extends object = object> = (session: MiddlewareSession<Id, Ctx>, next: Next) => Handoff<Add> | Promise<Handoff<Add>>type PublicKey = { algorithm: string; blob: Buffer; }type SessionHandler<Id extends Identity = Identity, Ctx extends object = {}> = (session: Session<Id, Ctx>) => void | Promise<void>
Namespaces and re-exports#
call Next(): Promise<Handoff>call Next<Add extends object>(add: Add): Promise<Handoff<Add>>interface Next