UNPKG

@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
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; }