UNPKG

pure-js-sftp

Version:

A pure JavaScript SFTP client with revolutionary RSA-SHA2 compatibility fixes. Zero native dependencies, built on ssh2-streams with 100% SSH key support.

90 lines 2.45 kB
/** * SFTP Client using ssh2-streams transport */ import { EventEmitter } from 'events'; import { SSH2StreamsConfig } from '../ssh/ssh2-streams-transport'; import { FileAttributes, DirectoryEntry } from '../ssh/types'; export type { DirectoryEntry, FileAttributes } from '../ssh/types'; export interface SFTPClientOptions extends SSH2StreamsConfig { } export declare class SSH2StreamsSFTPClient extends EventEmitter { private transport; private sftpChannel; private requestId; private ready; private pendingRequests; private dataBuffer; constructor(options: SFTPClientOptions); private setupTransportHandlers; /** * Connect and initialize SFTP */ connect(): Promise<void>; private setupSFTPHandlers; private initializeSFTP; private handleSFTPData; private handleSFTPPacket; private handleStatusPacket; private parseNamePacket; private parseFileAttributes; private sendSFTPRequest; /** * Open a file */ openFile(path: string, flags?: number): Promise<Buffer>; /** * Close a file */ closeFile(handle: Buffer): Promise<void>; /** * Read file data */ readFile(handle: Buffer, offset: number, length: number): Promise<Buffer>; /** * List directory contents */ listDirectory(path: string): Promise<DirectoryEntry[]>; private openDirectory; private readDirectory; /** * Get file stats */ stat(path: string): Promise<FileAttributes>; /** * Write data to a file handle */ writeFile(handle: Buffer, offset: number, data: Buffer): Promise<void>; /** * Remove a file */ removeFile(path: string): Promise<void>; /** * Rename a file */ renameFile(oldPath: string, newPath: string): Promise<void>; /** * Create a directory */ makeDirectory(path: string, attrs?: Partial<FileAttributes>): Promise<void>; /** * Remove a directory */ removeDirectory(path: string): Promise<void>; /** * Set file attributes */ setAttributes(path: string, attrs: Partial<FileAttributes>): Promise<void>; /** * Get real path (resolve symbolic links) */ realPath(path: string): Promise<string>; /** * Disconnect */ disconnect(): void; /** * Check if connected and ready */ isReady(): boolean; } //# sourceMappingURL=ssh2-streams-client.d.ts.map