diff --git a/changelog.md b/changelog.md index 34d35da..dfbdea6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +## 2025-05-04 - 10.0.7 - fix(core) +refactor: Rename IPortProxySettings to ISmartProxyOptions in internal modules + +- Replaced IPortProxySettings with ISmartProxyOptions in connection handler, connection manager, domain config manager, security manager, timeout manager, TLS manager, and network proxy bridge. +- Updated type imports and constructors accordingly while preserving backward compatibility via export alias. + ## 2025-05-04 - 10.0.6 - fix(smartproxy) No changes detected in project files. This commit updates commit info without modifying any functionality. diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 96512c2..741244e 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartproxy', - version: '10.0.6', + version: '10.0.7', description: '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.' } diff --git a/ts/smartproxy/classes.pp.connectionhandler.ts b/ts/smartproxy/classes.pp.connectionhandler.ts index 3ebf124..507f715 100644 --- a/ts/smartproxy/classes.pp.connectionhandler.ts +++ b/ts/smartproxy/classes.pp.connectionhandler.ts @@ -2,7 +2,7 @@ import * as plugins from '../plugins.js'; import type { IConnectionRecord, IDomainConfig, - IPortProxySettings, + ISmartProxyOptions, } from './classes.pp.interfaces.js'; import { ConnectionManager } from './classes.pp.connectionmanager.js'; import { SecurityManager } from './classes.pp.securitymanager.js'; @@ -17,7 +17,7 @@ import { PortRangeManager } from './classes.pp.portrangemanager.js'; */ export class ConnectionHandler { constructor( - private settings: IPortProxySettings, + private settings: ISmartProxyOptions, private connectionManager: ConnectionManager, private securityManager: SecurityManager, private domainConfigManager: DomainConfigManager, diff --git a/ts/smartproxy/classes.pp.connectionmanager.ts b/ts/smartproxy/classes.pp.connectionmanager.ts index 031cbe1..d8aa82b 100644 --- a/ts/smartproxy/classes.pp.connectionmanager.ts +++ b/ts/smartproxy/classes.pp.connectionmanager.ts @@ -1,5 +1,5 @@ import * as plugins from '../plugins.js'; -import type { IConnectionRecord, IPortProxySettings } from './classes.pp.interfaces.js'; +import type { IConnectionRecord, ISmartProxyOptions } from './classes.pp.interfaces.js'; import { SecurityManager } from './classes.pp.securitymanager.js'; import { TimeoutManager } from './classes.pp.timeoutmanager.js'; @@ -14,7 +14,7 @@ export class ConnectionManager { } = { incoming: {}, outgoing: {} }; constructor( - private settings: IPortProxySettings, + private settings: ISmartProxyOptions, private securityManager: SecurityManager, private timeoutManager: TimeoutManager ) {} diff --git a/ts/smartproxy/classes.pp.domainconfigmanager.ts b/ts/smartproxy/classes.pp.domainconfigmanager.ts index 0d0ae21..09546e7 100644 --- a/ts/smartproxy/classes.pp.domainconfigmanager.ts +++ b/ts/smartproxy/classes.pp.domainconfigmanager.ts @@ -1,5 +1,5 @@ import * as plugins from '../plugins.js'; -import type { IDomainConfig, IPortProxySettings } from './classes.pp.interfaces.js'; +import type { IDomainConfig, ISmartProxyOptions } from './classes.pp.interfaces.js'; /** * Manages domain configurations and target selection @@ -8,7 +8,7 @@ export class DomainConfigManager { // Track round-robin indices for domain configs private domainTargetIndices: Map = new Map(); - constructor(private settings: IPortProxySettings) {} + constructor(private settings: ISmartProxyOptions) {} /** * Updates the domain configurations diff --git a/ts/smartproxy/classes.pp.interfaces.ts b/ts/smartproxy/classes.pp.interfaces.ts index 3575f84..41bde1f 100644 --- a/ts/smartproxy/classes.pp.interfaces.ts +++ b/ts/smartproxy/classes.pp.interfaces.ts @@ -22,7 +22,7 @@ export interface IDomainConfig { /** Port proxy settings including global allowed port ranges */ import type { IAcmeOptions } from '../common/types.js'; -export interface IPortProxySettings { +export interface ISmartProxyOptions { fromPort: number; toPort: number; targetIP?: string; // Global target host to proxy to, defaults to 'localhost' diff --git a/ts/smartproxy/classes.pp.networkproxybridge.ts b/ts/smartproxy/classes.pp.networkproxybridge.ts index 59c0514..973e6d6 100644 --- a/ts/smartproxy/classes.pp.networkproxybridge.ts +++ b/ts/smartproxy/classes.pp.networkproxybridge.ts @@ -4,7 +4,7 @@ import { Port80Handler } from '../port80handler/classes.port80handler.js'; import { Port80HandlerEvents } from '../common/types.js'; import { subscribeToPort80Handler } from '../common/eventUtils.js'; import type { ICertificateData } from '../common/types.js'; -import type { IConnectionRecord, IPortProxySettings, IDomainConfig } from './classes.pp.interfaces.js'; +import type { IConnectionRecord, ISmartProxyOptions, IDomainConfig } from './classes.pp.interfaces.js'; /** * Manages NetworkProxy integration for TLS termination @@ -13,7 +13,7 @@ export class NetworkProxyBridge { private networkProxy: NetworkProxy | null = null; private port80Handler: Port80Handler | null = null; - constructor(private settings: IPortProxySettings) {} + constructor(private settings: ISmartProxyOptions) {} /** * Set the Port80Handler to use for certificate management diff --git a/ts/smartproxy/classes.pp.portrangemanager.ts b/ts/smartproxy/classes.pp.portrangemanager.ts index 4cc8a88..79ec139 100644 --- a/ts/smartproxy/classes.pp.portrangemanager.ts +++ b/ts/smartproxy/classes.pp.portrangemanager.ts @@ -1,10 +1,10 @@ -import type{ IPortProxySettings } from './classes.pp.interfaces.js'; +import type{ ISmartProxyOptions } from './classes.pp.interfaces.js'; /** * Manages port ranges and port-based configuration */ export class PortRangeManager { - constructor(private settings: IPortProxySettings) {} + constructor(private settings: ISmartProxyOptions) {} /** * Get all ports that should be listened on diff --git a/ts/smartproxy/classes.pp.securitymanager.ts b/ts/smartproxy/classes.pp.securitymanager.ts index 1ad8e4a..3848b8c 100644 --- a/ts/smartproxy/classes.pp.securitymanager.ts +++ b/ts/smartproxy/classes.pp.securitymanager.ts @@ -1,5 +1,5 @@ import * as plugins from '../plugins.js'; -import type { IPortProxySettings } from './classes.pp.interfaces.js'; +import type { ISmartProxyOptions } from './classes.pp.interfaces.js'; /** * Handles security aspects like IP tracking, rate limiting, and authorization @@ -8,7 +8,7 @@ export class SecurityManager { private connectionsByIP: Map> = new Map(); private connectionRateByIP: Map = new Map(); - constructor(private settings: IPortProxySettings) {} + constructor(private settings: ISmartProxyOptions) {} /** * Get connections count by IP diff --git a/ts/smartproxy/classes.pp.timeoutmanager.ts b/ts/smartproxy/classes.pp.timeoutmanager.ts index 3bc71a3..962da9a 100644 --- a/ts/smartproxy/classes.pp.timeoutmanager.ts +++ b/ts/smartproxy/classes.pp.timeoutmanager.ts @@ -1,10 +1,10 @@ -import type { IConnectionRecord, IPortProxySettings } from './classes.pp.interfaces.js'; +import type { IConnectionRecord, ISmartProxyOptions } from './classes.pp.interfaces.js'; /** * Manages timeouts and inactivity tracking for connections */ export class TimeoutManager { - constructor(private settings: IPortProxySettings) {} + constructor(private settings: ISmartProxyOptions) {} /** * Ensure timeout values don't exceed Node.js max safe integer diff --git a/ts/smartproxy/classes.pp.tlsmanager.ts b/ts/smartproxy/classes.pp.tlsmanager.ts index 251fcfc..98a3bc4 100644 --- a/ts/smartproxy/classes.pp.tlsmanager.ts +++ b/ts/smartproxy/classes.pp.tlsmanager.ts @@ -1,5 +1,5 @@ import * as plugins from '../plugins.js'; -import type { IPortProxySettings } from './classes.pp.interfaces.js'; +import type { ISmartProxyOptions } from './classes.pp.interfaces.js'; import { SniHandler } from './classes.pp.snihandler.js'; /** @@ -16,7 +16,7 @@ interface IConnectionInfo { * Manages TLS-related operations including SNI extraction and validation */ export class TlsManager { - constructor(private settings: IPortProxySettings) {} + constructor(private settings: ISmartProxyOptions) {} /** * Check if a data chunk appears to be a TLS handshake diff --git a/ts/smartproxy/classes.smartproxy.ts b/ts/smartproxy/classes.smartproxy.ts index b100051..888a4e7 100644 --- a/ts/smartproxy/classes.smartproxy.ts +++ b/ts/smartproxy/classes.smartproxy.ts @@ -13,8 +13,8 @@ import { CertProvisioner } from './classes.pp.certprovisioner.js'; import type { ICertificateData } from '../common/types.js'; import { buildPort80Handler } from '../common/acmeFactory.js'; -import type { IPortProxySettings, IDomainConfig } from './classes.pp.interfaces.js'; -export type { IPortProxySettings, IDomainConfig }; +import type { ISmartProxyOptions, IDomainConfig } from './classes.pp.interfaces.js'; +export type { ISmartProxyOptions as IPortProxySettings, IDomainConfig }; /** * SmartProxy - Main class that coordinates all components @@ -39,7 +39,7 @@ export class SmartProxy extends plugins.EventEmitter { // CertProvisioner for unified certificate workflows private certProvisioner?: CertProvisioner; - constructor(settingsArg: IPortProxySettings) { + constructor(settingsArg: ISmartProxyOptions) { super(); // Set reasonable defaults for all settings this.settings = { @@ -119,7 +119,7 @@ export class SmartProxy extends plugins.EventEmitter { /** * The settings for the port proxy */ - public settings: IPortProxySettings; + public settings: ISmartProxyOptions; /** * Initialize the Port80Handler for ACME certificate management