Server IP : 85.214.239.14 / Your IP : 3.138.169.46 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/task/3/root/proc/3/root/lib/node_modules/pm2/node_modules/basic-ftp/dist/ |
Upload File : |
/// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> import { Socket } from "net"; import { ConnectionOptions as TLSConnectionOptions, TLSSocket } from "tls"; import { StringEncoding } from "./StringEncoding"; interface Task { /** Handles a response for a task. */ readonly responseHandler: ResponseHandler; /** Resolves or rejects a task. */ readonly resolver: TaskResolver; /** Call stack when task was run. */ readonly stack: string; } export interface TaskResolver { resolve(args: any): void; reject(err: Error): void; } export interface FTPResponse { /** FTP response code */ readonly code: number; /** Whole response including response code */ readonly message: string; } export type ResponseHandler = (response: Error | FTPResponse, task: TaskResolver) => void; /** * Describes an FTP server error response including the FTP response code. */ export declare class FTPError extends Error { /** FTP response code */ readonly code: number; constructor(res: FTPResponse); } /** * FTPContext holds the control and data sockets of an FTP connection and provides a * simplified way to interact with an FTP server, handle responses, errors and timeouts. * * It doesn't implement or use any FTP commands. It's only a foundation to make writing an FTP * client as easy as possible. You won't usually instantiate this, but use `Client`. */ export declare class FTPContext { readonly timeout: number; /** Debug-level logging of all socket communication. */ verbose: boolean; /** IP version to prefer (4: IPv4, 6: IPv6, undefined: automatic). */ ipFamily: number | undefined; /** Options for TLS connections. */ tlsOptions: TLSConnectionOptions; /** Current task to be resolved or rejected. */ protected _task: Task | undefined; /** A multiline response might be received as multiple chunks. */ protected _partialResponse: string; /** The reason why a context has been closed. */ protected _closingError: NodeJS.ErrnoException | undefined; /** Encoding supported by Node applied to commands, responses and directory listing data. */ protected _encoding: StringEncoding; /** FTP control connection */ protected _socket: Socket | TLSSocket; /** FTP data connection */ protected _dataSocket: Socket | TLSSocket | undefined; /** * Instantiate an FTP context. * * @param timeout - Timeout in milliseconds to apply to control and data connections. Use 0 for no timeout. * @param encoding - Encoding to use for control connection. UTF-8 by default. Use "latin1" for older servers. */ constructor(timeout?: number, encoding?: StringEncoding); /** * Close the context. */ close(): void; /** * Close the context with an error. */ closeWithError(err: Error): void; /** * Returns true if this context has been closed or hasn't been connected yet. You can reopen it with `access`. */ get closed(): boolean; /** * Reset this contex and all of its state. */ reset(): void; /** * Get the FTP control socket. */ get socket(): Socket | TLSSocket; /** * Set the socket for the control connection. This will only close the current control socket * if the new one is not an upgrade to the current one. */ set socket(socket: Socket | TLSSocket); /** * Get the current FTP data connection if present. */ get dataSocket(): Socket | TLSSocket | undefined; /** * Set the socket for the data connection. This will automatically close the former data socket. */ set dataSocket(socket: Socket | TLSSocket | undefined); /** * Get the currently used encoding. */ get encoding(): StringEncoding; /** * Set the encoding used for the control socket. * * See https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings for what encodings * are supported by Node. */ set encoding(encoding: StringEncoding); /** * Send an FTP command without waiting for or handling the result. */ send(command: string): void; /** * Send an FTP command and handle the first response. Use this if you have a simple * request-response situation. */ request(command: string): Promise<FTPResponse>; /** * Send an FTP command and handle any response until you resolve/reject. Use this if you expect multiple responses * to a request. This returns a Promise that will hold whatever the response handler passed on when resolving/rejecting its task. */ handle(command: string | undefined, responseHandler: ResponseHandler): Promise<any>; /** * Log message if set to be verbose. */ log(message: string): void; /** * Return true if the control socket is using TLS. This does not mean that a session * has already been negotiated. */ get hasTLS(): boolean; /** * Removes reference to current task and handler. This won't resolve or reject the task. * @protected */ protected _stopTrackingTask(): void; /** * Handle incoming data on the control socket. The chunk is going to be of type `string` * because we let `socket` handle encoding with `setEncoding`. * @protected */ protected _onControlSocketData(chunk: string): void; /** * Send the current handler a response. This is usually a control socket response * or a socket event, like an error or timeout. * @protected */ protected _passToHandler(response: Error | FTPResponse): void; /** * Setup all error handlers for a socket. * @protected */ protected _setupDefaultErrorHandlers(socket: Socket, identifier: string): void; /** * Close the control socket. Sends QUIT, then FIN, and ignores any response or error. */ protected _closeControlSocket(): void; /** * Close a socket, ignores any error. * @protected */ protected _closeSocket(socket: Socket | undefined): void; /** * Remove all default listeners for socket. * @protected */ protected _removeSocketListeners(socket: Socket): void; /** * Provide a new socket instance. * * Internal use only, replaced for unit tests. */ _newSocket(): Socket; } export {};