@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.
62 lines (61 loc) • 1.68 kB
TypeScript
/**
* Buffer manipulation utilities for protocol detection
*/
/**
* BufferAccumulator class for handling fragmented data
*/
export declare class BufferAccumulator {
private chunks;
private totalLength;
/**
* Append data to the accumulator
*/
append(data: Buffer): void;
/**
* Get the accumulated buffer
*/
getBuffer(): Buffer;
/**
* Get current buffer length
*/
length(): number;
/**
* Clear all accumulated data
*/
clear(): void;
/**
* Check if accumulator has minimum bytes
*/
hasMinimumBytes(minBytes: number): boolean;
}
/**
* Read a big-endian 16-bit integer from buffer
*/
export declare function readUInt16BE(buffer: Buffer, offset: number): number;
/**
* Read a big-endian 24-bit integer from buffer
*/
export declare function readUInt24BE(buffer: Buffer, offset: number): number;
/**
* Find a byte sequence in a buffer
*/
export declare function findSequence(buffer: Buffer, sequence: Buffer, startOffset?: number): number;
/**
* Extract a line from buffer (up to CRLF or LF)
*/
export declare function extractLine(buffer: Buffer, startOffset?: number): {
line: string;
nextOffset: number;
} | null;
/**
* Check if buffer starts with a string (case-insensitive)
*/
export declare function startsWithString(buffer: Buffer, str: string, offset?: number): boolean;
/**
* Safe buffer slice that doesn't throw on out-of-bounds
*/
export declare function safeSlice(buffer: Buffer, start: number, end?: number): Buffer;
/**
* Check if buffer contains printable ASCII
*/
export declare function isPrintableAscii(buffer: Buffer, length?: number): boolean;