@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.
65 lines (64 loc) • 1.9 kB
TypeScript
import type { IPortProxySettings, IDomainConfig } from './classes.pp.interfaces.js';
import { DomainConfigManager } from './classes.pp.domainconfigmanager.js';
/**
* SmartProxy - Main class that coordinates all components
*/
export declare class SmartProxy {
private netServers;
private connectionLogger;
private isShuttingDown;
private connectionManager;
private securityManager;
domainConfigManager: DomainConfigManager;
private tlsManager;
private networkProxyBridge;
private timeoutManager;
private portRangeManager;
private connectionHandler;
private port80Handler;
constructor(settingsArg: IPortProxySettings);
/**
* The settings for the port proxy
*/
settings: IPortProxySettings;
/**
* Initialize the Port80Handler for ACME certificate management
*/
private initializePort80Handler;
/**
* Start the proxy server
*/
start(): Promise<void>;
/**
* Stop the proxy server
*/
stop(): Promise<void>;
/**
* Updates the domain configurations for the proxy
*/
updateDomainConfigs(newDomainConfigs: IDomainConfig[]): Promise<void>;
/**
* Updates the Port80Handler configuration
*/
updatePort80HandlerConfig(config: IPortProxySettings['port80HandlerConfig']): Promise<void>;
/**
* Request a certificate for a specific domain
*/
requestCertificate(domain: string): Promise<boolean>;
/**
* Validates if a domain name is valid for certificate issuance
*/
private isValidDomain;
/**
* Get statistics about current connections
*/
getStatistics(): any;
/**
* Get a list of eligible domains for ACME certificates
*/
getEligibleDomainsForCertificates(): string[];
/**
* Get status of certificates managed by Port80Handler
*/
getCertificateStatus(): any;
}