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
TypeScript
/**
* 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