@push.rocks/smartproxy
Version:
A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.
45 lines (44 loc) • 1.29 kB
TypeScript
/**
* PROXY Protocol Parser
* Implementation of HAProxy PROXY protocol v1 (text format)
* Spec: https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
*/
import type { IProxyInfo, IProxyParseResult, TProxyProtocol } from './types.js';
/**
* PROXY protocol parser
*/
export declare class ProxyProtocolParser {
static readonly PROXY_V1_SIGNATURE = "PROXY ";
static readonly MAX_HEADER_LENGTH = 107;
static readonly HEADER_TERMINATOR = "\r\n";
/**
* Parse PROXY protocol v1 header from buffer
* Returns proxy info and remaining data after header
*/
static parse(data: Buffer): IProxyParseResult;
/**
* Generate PROXY protocol v1 header
*/
static generate(info: IProxyInfo): Buffer;
/**
* Validate IP address format
*/
static isValidIP(ip: string, protocol: TProxyProtocol): boolean;
/**
* Check if string is valid IPv4
*/
static isIPv4(ip: string): boolean;
/**
* Check if string is valid IPv6
*/
static isIPv6(ip: string): boolean;
/**
* Create a connection ID string for tracking
*/
static createConnectionId(connectionInfo: {
sourceIp?: string;
sourcePort?: number;
destIp?: string;
destPort?: number;
}): string;
}