@push.rocks/smartproxy
Version:
A powerful proxy package that effectively handles high traffic, with features such as SSL/TLS support, port proxying, WebSocket handling, dynamic routing with authentication options, and automatic ACME certificate management.
58 lines (57 loc) • 1.8 kB
TypeScript
import * as plugins from './plugins.js';
import { NetworkProxy } from './networkproxy/classes.np.networkproxy.js';
import { Port80Handler } from './port80handler/classes.port80handler.js';
import type { IConnectionRecord, IPortProxySettings } from './classes.pp.interfaces.js';
/**
* Manages NetworkProxy integration for TLS termination
*/
export declare class NetworkProxyBridge {
private settings;
private networkProxy;
private port80Handler;
constructor(settings: IPortProxySettings);
/**
* Set the Port80Handler to use for certificate management
*/
setPort80Handler(handler: Port80Handler): void;
/**
* Initialize NetworkProxy instance
*/
initialize(): Promise<void>;
/**
* Handle certificate issuance or renewal events
*/
private handleCertificateEvent;
/**
* Get the NetworkProxy instance
*/
getNetworkProxy(): NetworkProxy | null;
/**
* Get the NetworkProxy port
*/
getNetworkProxyPort(): number;
/**
* Start NetworkProxy
*/
start(): Promise<void>;
/**
* Stop NetworkProxy
*/
stop(): Promise<void>;
/**
* Register domains with Port80Handler
*/
registerDomainsWithPort80Handler(domains: string[]): void;
/**
* Forwards a TLS connection to a NetworkProxy for handling
*/
forwardToNetworkProxy(connectionId: string, socket: plugins.net.Socket, record: IConnectionRecord, initialData: Buffer, customProxyPort?: number, onError?: (reason: string) => void): void;
/**
* Synchronizes domain configurations to NetworkProxy
*/
syncDomainConfigsToNetworkProxy(): Promise<void>;
/**
* Request a certificate for a specific domain
*/
requestCertificate(domain: string): Promise<boolean>;
}