You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							153 lines
						
					
					
						
							4.7 KiB
						
					
					
				
			
		
		
	
	
							153 lines
						
					
					
						
							4.7 KiB
						
					
					
				| /// <reference types="node" />
 | |
| /// <reference types="node" />
 | |
| /// <reference types="node" />
 | |
| import { Duplex } from 'stream';
 | |
| import { Socket, SocketConnectOpts } from 'net';
 | |
| import { RequireOnlyOne } from './util';
 | |
| declare const DEFAULT_TIMEOUT = 30000;
 | |
| declare type SocksProxyType = 4 | 5;
 | |
| declare const ERRORS: {
 | |
|     InvalidSocksCommand: string;
 | |
|     InvalidSocksCommandForOperation: string;
 | |
|     InvalidSocksCommandChain: string;
 | |
|     InvalidSocksClientOptionsDestination: string;
 | |
|     InvalidSocksClientOptionsExistingSocket: string;
 | |
|     InvalidSocksClientOptionsProxy: string;
 | |
|     InvalidSocksClientOptionsTimeout: string;
 | |
|     InvalidSocksClientOptionsProxiesLength: string;
 | |
|     InvalidSocksClientOptionsCustomAuthRange: string;
 | |
|     InvalidSocksClientOptionsCustomAuthOptions: string;
 | |
|     NegotiationError: string;
 | |
|     SocketClosed: string;
 | |
|     ProxyConnectionTimedOut: string;
 | |
|     InternalError: string;
 | |
|     InvalidSocks4HandshakeResponse: string;
 | |
|     Socks4ProxyRejectedConnection: string;
 | |
|     InvalidSocks4IncomingConnectionResponse: string;
 | |
|     Socks4ProxyRejectedIncomingBoundConnection: string;
 | |
|     InvalidSocks5InitialHandshakeResponse: string;
 | |
|     InvalidSocks5IntiailHandshakeSocksVersion: string;
 | |
|     InvalidSocks5InitialHandshakeNoAcceptedAuthType: string;
 | |
|     InvalidSocks5InitialHandshakeUnknownAuthType: string;
 | |
|     Socks5AuthenticationFailed: string;
 | |
|     InvalidSocks5FinalHandshake: string;
 | |
|     InvalidSocks5FinalHandshakeRejected: string;
 | |
|     InvalidSocks5IncomingConnectionResponse: string;
 | |
|     Socks5ProxyRejectedIncomingBoundConnection: string;
 | |
| };
 | |
| declare const SOCKS_INCOMING_PACKET_SIZES: {
 | |
|     Socks5InitialHandshakeResponse: number;
 | |
|     Socks5UserPassAuthenticationResponse: number;
 | |
|     Socks5ResponseHeader: number;
 | |
|     Socks5ResponseIPv4: number;
 | |
|     Socks5ResponseIPv6: number;
 | |
|     Socks5ResponseHostname: (hostNameLength: number) => number;
 | |
|     Socks4Response: number;
 | |
| };
 | |
| declare type SocksCommandOption = 'connect' | 'bind' | 'associate';
 | |
| declare enum SocksCommand {
 | |
|     connect = 1,
 | |
|     bind = 2,
 | |
|     associate = 3
 | |
| }
 | |
| declare enum Socks4Response {
 | |
|     Granted = 90,
 | |
|     Failed = 91,
 | |
|     Rejected = 92,
 | |
|     RejectedIdent = 93
 | |
| }
 | |
| declare enum Socks5Auth {
 | |
|     NoAuth = 0,
 | |
|     GSSApi = 1,
 | |
|     UserPass = 2
 | |
| }
 | |
| declare const SOCKS5_CUSTOM_AUTH_START = 128;
 | |
| declare const SOCKS5_CUSTOM_AUTH_END = 254;
 | |
| declare const SOCKS5_NO_ACCEPTABLE_AUTH = 255;
 | |
| declare enum Socks5Response {
 | |
|     Granted = 0,
 | |
|     Failure = 1,
 | |
|     NotAllowed = 2,
 | |
|     NetworkUnreachable = 3,
 | |
|     HostUnreachable = 4,
 | |
|     ConnectionRefused = 5,
 | |
|     TTLExpired = 6,
 | |
|     CommandNotSupported = 7,
 | |
|     AddressNotSupported = 8
 | |
| }
 | |
| declare enum Socks5HostType {
 | |
|     IPv4 = 1,
 | |
|     Hostname = 3,
 | |
|     IPv6 = 4
 | |
| }
 | |
| declare enum SocksClientState {
 | |
|     Created = 0,
 | |
|     Connecting = 1,
 | |
|     Connected = 2,
 | |
|     SentInitialHandshake = 3,
 | |
|     ReceivedInitialHandshakeResponse = 4,
 | |
|     SentAuthentication = 5,
 | |
|     ReceivedAuthenticationResponse = 6,
 | |
|     SentFinalHandshake = 7,
 | |
|     ReceivedFinalResponse = 8,
 | |
|     BoundWaitingForConnection = 9,
 | |
|     Established = 10,
 | |
|     Disconnected = 11,
 | |
|     Error = 99
 | |
| }
 | |
| /**
 | |
|  * Represents a SocksProxy
 | |
|  */
 | |
| declare type SocksProxy = RequireOnlyOne<{
 | |
|     ipaddress?: string;
 | |
|     host?: string;
 | |
|     port: number;
 | |
|     type: SocksProxyType;
 | |
|     userId?: string;
 | |
|     password?: string;
 | |
|     custom_auth_method?: number;
 | |
|     custom_auth_request_handler?: () => Promise<Buffer>;
 | |
|     custom_auth_response_size?: number;
 | |
|     custom_auth_response_handler?: (data: Buffer) => Promise<boolean>;
 | |
| }, 'host' | 'ipaddress'>;
 | |
| /**
 | |
|  * Represents a remote host
 | |
|  */
 | |
| interface SocksRemoteHost {
 | |
|     host: string;
 | |
|     port: number;
 | |
| }
 | |
| /**
 | |
|  * SocksClient connection options.
 | |
|  */
 | |
| interface SocksClientOptions {
 | |
|     command: SocksCommandOption;
 | |
|     destination: SocksRemoteHost;
 | |
|     proxy: SocksProxy;
 | |
|     timeout?: number;
 | |
|     existing_socket?: Duplex;
 | |
|     set_tcp_nodelay?: boolean;
 | |
|     socket_options?: SocketConnectOpts;
 | |
| }
 | |
| /**
 | |
|  * SocksClient chain connection options.
 | |
|  */
 | |
| interface SocksClientChainOptions {
 | |
|     command: 'connect';
 | |
|     destination: SocksRemoteHost;
 | |
|     proxies: SocksProxy[];
 | |
|     timeout?: number;
 | |
|     randomizeChain?: false;
 | |
| }
 | |
| interface SocksClientEstablishedEvent {
 | |
|     socket: Socket;
 | |
|     remoteHost?: SocksRemoteHost;
 | |
| }
 | |
| declare type SocksClientBoundEvent = SocksClientEstablishedEvent;
 | |
| interface SocksUDPFrameDetails {
 | |
|     frameNumber?: number;
 | |
|     remoteHost: SocksRemoteHost;
 | |
|     data: Buffer;
 | |
| }
 | |
| export { DEFAULT_TIMEOUT, ERRORS, SocksProxyType, SocksCommand, Socks4Response, Socks5Auth, Socks5HostType, Socks5Response, SocksClientState, SocksProxy, SocksRemoteHost, SocksCommandOption, SocksClientOptions, SocksClientChainOptions, SocksClientEstablishedEvent, SocksClientBoundEvent, SocksUDPFrameDetails, SOCKS_INCOMING_PACKET_SIZES, SOCKS5_CUSTOM_AUTH_START, SOCKS5_CUSTOM_AUTH_END, SOCKS5_NO_ACCEPTABLE_AUTH, };
 |