| /// <reference types="node" /> |
| /// <reference types="node" /> |
| /// <reference types="node" /> |
| import { Duplex } from 'stream'; |
| import { Socket, SocketConnectOpts } from 'net'; |
| declare const DEFAULT_TIMEOUT = 30000; |
| 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; |
| }; |
| 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 |
| */ |
| interface SocksProxy { |
| 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>; |
| } |
| /** |
| * 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; |
| } |
| 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, }; |