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.

56 lines (55 loc) 1.66 kB
import type { IDomainConfig, IPortProxySettings } from './classes.pp.interfaces.js'; /** * Manages domain configurations and target selection */ export declare class DomainConfigManager { private settings; private domainTargetIndices; constructor(settings: IPortProxySettings); /** * Updates the domain configurations */ updateDomainConfigs(newDomainConfigs: IDomainConfig[]): void; /** * Get all domain configurations */ getDomainConfigs(): IDomainConfig[]; /** * Find domain config matching a server name */ findDomainConfig(serverName: string): IDomainConfig | undefined; /** * Find domain config for a specific port */ findDomainConfigForPort(port: number): IDomainConfig | undefined; /** * Check if a port is within any of the given ranges */ isPortInRanges(port: number, ranges: Array<{ from: number; to: number; }>): boolean; /** * Get target IP with round-robin support */ getTargetIP(domainConfig: IDomainConfig): string; /** * Checks if a domain should use NetworkProxy */ shouldUseNetworkProxy(domainConfig: IDomainConfig): boolean; /** * Gets the NetworkProxy port for a domain */ getNetworkProxyPort(domainConfig: IDomainConfig): number | undefined; /** * Get effective allowed and blocked IPs for a domain */ getEffectiveIPRules(domainConfig: IDomainConfig): { allowedIPs: string[]; blockedIPs: string[]; }; /** * Get connection timeout for a domain */ getConnectionTimeout(domainConfig?: IDomainConfig): number; }