# Changelog ## 2025-03-10 - 3.30.3 - fix(classes.portproxy.ts) Simplify timeout management in PortProxy and fix chained proxy certificate refresh issues - Reduced TLS keep-alive timeout from 8 hours to 30 minutes to ensure frequent certificate refresh - Added aggressive TLS state refresh after 20 minutes of inactivity and secondary verification checks - Lowered long-lived TLS connection lifetime from 12 hours to 45 minutes to prevent stale certificates - Removed configurable timeout settings from the public API in favor of hardcoded sensible defaults - Simplified internal timeout management to reduce code complexity and improve certificate handling in chained proxies ## 2025-03-10 - 3.31.0 - fix(classes.portproxy.ts) Simplified timeout management and fixed certificate issues in chained proxy scenarios - Dramatically reduced TLS keep-alive timeout from 8 hours to 30 minutes to ensure fresh certificates - Added aggressive certificate refresh after 20 minutes of inactivity (down from 4 hours) - Added secondary verification checks for TLS refresh operations - Reduced long-lived TLS connection lifetime from 12 hours to 45 minutes - Removed configurable timeouts completely from the public API in favor of hardcoded sensible defaults - Simplified interface by removing no-longer-configurable settings while maintaining internal compatibility - Reduced overall code complexity by eliminating complex timeout management - Fixed chained proxy certificate issues by ensuring more frequent certificate refreshes in all deployment scenarios ## 2025-03-10 - 3.30.2 - fix(classes.portproxy.ts) Adjust TLS keep-alive timeout to refresh certificate context. - Modified TLS keep-alive timeout for connections to 8 hours to refresh certificate context. - Updated timeout log messages for clarity on TLS certificate refresh. ## 2025-03-10 - 3.30.1 - fix(PortProxy) Improve TLS keep-alive management and fix whitespace formatting - Implemented better handling for TLS keep-alive connections after sleep or long inactivity. - Reformatted whitespace for better readability and consistency. ## 2025-03-08 - 3.30.0 - feat(PortProxy) Add advanced TLS keep-alive handling and system sleep detection - Implemented system sleep detection to maintain keep-alive connections. - Enhanced TLS keep-alive connections with extended timeout and sleep detection mechanisms. - Introduced automatic TLS state refresh after system wake-up to prevent connection drops. ## 2025-03-07 - 3.29.3 - fix(core) Fix functional errors in the proxy setup and enhance pnpm configuration - Corrected pnpm configuration to include specific dependencies as 'onlyBuiltDependencies'. ## 2025-03-07 - 3.29.2 - fix(PortProxy) Fix test for PortProxy handling of custom IPs in Docker/CI environments. - Ensure compatibility with Docker/CI environments by standardizing on 127.0.0.1 for test server setup. - Simplify test configuration by using a unique port rather than different IPs. ## 2025-03-07 - 3.29.1 - fix(readme) Update readme for IPTablesProxy options - Add comprehensive examples for IPTablesProxy usage. - Expand IPTablesProxy settings with IPv6, logging, and advanced features. - Clarify option defaults and descriptions for IPTablesProxy. - Enhance 'Troubleshooting' section with IPTables tips. ## 2025-03-07 - 3.29.0 - feat(IPTablesProxy) Enhanced IPTablesProxy with multi-port and IPv6 support - Added support for specifying multiple ports and port ranges, allowing for more complex network proxy configurations. - Introduced IPv6 support to allow handling of IPv6 addressed networks. - Implemented more detailed logging and error handling features to improve debugging capabilities. - Enhanced integration options with NetworkProxy, allowing for a more seamless routing and termination process. - Restructured the initialization and validation process to ensure robust handling of configuration settings. ## 2025-03-07 - 3.28.6 - fix(PortProxy) Adjust default timeout settings and enhance keep-alive connection handling in PortProxy. - Updated default value for maxConnectionLifetime to 24 hours and inactivityTimeout to 4 hours. - Introduced enhanced settings for treating keep-alive connections as 'extended' or 'immortal'. - Modified logic to avoid closing keep-alive connections unnecessarily by adding inactivity warnings and grace periods. ## 2025-03-07 - 3.28.5 - fix(core) Ensure proper resource cleanup during server shutdown. - Fixed potential hanging of server shutdown due to improper cleanup in promise handling. - Corrected potential memory leaks by ensuring all pending and active connections are properly closed during shutdown. ## 2025-03-07 - 3.28.4 - fix(router) Improve path pattern matching and hostname prioritization in router - Enhance path pattern matching capabilities - Ensure hostname prioritization in routing logic ## 2025-03-06 - 3.28.3 - fix(PortProxy) Ensure timeout values are within Node.js safe limits - Implemented `ensureSafeTimeout` to keep timeout values under the maximum safe integer for Node.js. - Updated timeout configurations in `PortProxy` to include safety checks. ## 2025-03-06 - 3.28.2 - fix(portproxy) Adjust safe timeout defaults in PortProxy to prevent overflow issues. - Adjusted socketTimeout to maximum safe limit (~24.8 days) for PortProxy. - Adjusted maxConnectionLifetime to maximum safe limit (~24.8 days) for PortProxy. - Ensured enhanced default timeout settings in PortProxy. ## 2025-03-06 - 3.28.1 - fix(PortProxy) Improved code formatting and readability in PortProxy class by adjusting spacing and comments. - Adjusted comment and spacing for better code readability. - No functional changes made in the PortProxy class. ## 2025-03-06 - 3.28.0 - feat(router) Add detailed routing tests and refactor ProxyRouter for improved path matching - Implemented a comprehensive test suite for the ProxyRouter class to ensure accurate routing based on hostnames and path patterns. - Refactored the ProxyRouter to enhance path matching logic with improvements in wildcard and parameter handling. - Improved logging capabilities within the ProxyRouter for enhanced debugging and info level insights. - Optimized the data structures for storing and accessing proxy configurations to reduce overhead in routing operations. ## 2025-03-06 - 3.27.0 - feat(AcmeCertManager) Introduce AcmeCertManager for enhanced ACME certificate management - Refactored the existing Port80Handler to AcmeCertManager. - Added event-driven certificate management with CertManagerEvents. - Introduced options for configuration such as renew thresholds and production mode. - Implemented certificate renewal checks and logging improvements. ## 2025-03-05 - 3.26.0 - feat(readme) Updated README with enhanced TLS handling, connection management, and troubleshooting sections. - Added details on enhanced TLS handling and browser compatibility improvements. - Included advanced connection management features like random timeout prevention. - Provided comprehensive troubleshooting tips for browser certificate errors and connection stability. - Clarified default configuration options and optimization settings for PortProxy. ## 2025-03-05 - 3.25.4 - fix(portproxy) Improve connection timeouts and detailed logging for PortProxy - Refactored timeout management for connections to include enhanced defaults and prevent thundering herd. - Improved support for TLS handshake detection with logging capabilities in PortProxy. - Removed protocol-specific handling which is now managed generically. - Introduced enhanced logging for SNI extraction and connection management. ## 2025-03-05 - 3.25.3 - fix(core) Update dependencies and configuration improvements. - Upgrade TypeScript version to 5.8.2 for better compatibility. - Ensure all proxy and server tests pass with updated configurations. - Improve logging for better traceability in proxy operations. - Add handlers for WebSockets and HTTPS improvements. - Fix various issues related to proxy timeout and connection handling. - Update test certificates validation for better test coverage. ## 2025-03-05 - 3.25.2 - fix(PortProxy) Adjust timeout settings and handle inactivity properly in PortProxy. - Changed initialDataTimeout default to 30 seconds for better handling of initial data reception. - Adjusted keepAliveInitialDelay to 30 seconds for consistent socket optimization. - Introduced proper inactivity handling with updated timeout logic. - Parity check now accounts for a 120-second threshold for outgoing socket closure. ## 2025-03-05 - 3.25.1 - fix(PortProxy) Adjust inactivity threshold to a random value between 20 and 30 minutes for better variability - Modified inactivity threshold calculation within PortProxy to use a random value between 1.2 and 1.8 million milliseconds. ## 2025-03-05 - 3.25.0 - feat(PortProxy) Enhanced PortProxy with detailed logging, protocol detection, and rate limiting. - Added detailed logging capabilities for connection tracking in the PortProxy. - Introduced protocol detection allowing HTTP and WebSocket upgrades. - Implemented rate limiting for connections by IP. - Enhanced timeout handling for various protocol-specific scenarios. ## 2025-03-05 - 3.24.0 - feat(core) Enhance core functionalities and test coverage for NetworkProxy and PortProxy - Added maximum connections, timeout settings, log levels, and CORS support in NetworkProxy. - Improved WebSocket handling with heartbeat and metrics tracking. - Enhanced connection management in PortProxy with optimizations for socket settings. - SNI and IP validation improvements. - Updates to test cases for comprehensive coverage. ## 2025-03-05 - 3.23.1 - fix(PortProxy) Enhanced connection setup to handle pending data buffering before establishing outgoing connection - Introduced pending data buffering to address issues with data reception before outgoing connection is fully established. - Removed immediate data piping in favor of buffering to ensure complete initial data transfer. - Added temporary data handler to collect incoming data during connection setup for precise activity tracking. ## 2025-03-03 - 3.23.0 - feat(documentation) Updated documentation with architecture flow diagrams. - Added detailed architecture and flow diagrams for SmartProxy components. - Included HTTPS Reverse Proxy Flow diagram. - Integrated Port Proxy with SNI-based Routing diagram. - Added Let's Encrypt Certificate Acquisition flow. ## 2025-03-03 - 3.22.5 - fix(documentation) Refactored readme for clarity and consistency, fixed documentation typos - Updated readme to improve clarity and remove redundant information. - Fixed minor documentation issues in the code comments. - Reorganized readme structure for better readability. - Improved sample code snippets for easier understanding. ## 2025-03-03 - 3.22.4 - fix(core) Addressed minor issues in the core modules to improve stability and performance. ## 2025-03-03 - 3.22.3 - fix(core) Improve connection management and error handling in PortProxy - Refactored connection cleanup to handle errors more gracefully. - Introduced comprehensive comments for better code understanding. - Revised SNI data timeout logic for connection handling. - Enhanced logging and error reporting during connection management. - Improved inactivity checks and parity checks for existing connections. ## 2025-03-03 - 3.22.2 - fix(portproxy) Refactored connection cleanup logic in PortProxy - Simplified the connection cleanup logic by removing redundant methods. - Consolidated the cleanup initiation and execution into a single cleanup method. - Improved error handling by ensuring connections are closed appropriately. ## 2025-03-03 - 3.22.1 - fix(PortProxy) Fix connection timeout and IP validation handling for PortProxy - Adjusted initial data timeout setting for SNI-enabled connections in PortProxy. - Restored IP validation logic to original behavior, ensuring compatibility with domain configurations. ## 2025-03-03 - 3.22.0 - feat(classes.portproxy) Enhanced PortProxy to support initial data timeout and improved IP handling - Added `initialDataTimeout` to PortProxy settings for handling data flow in chained proxies. - Improved IP validation by allowing relaxed checks in chained proxy setups. - Introduced dynamic logging for connection lifecycle and proxy configurations. - Enhanced timeout handling for better proxy resilience. ## 2025-03-03 - 3.21.0 - feat(PortProxy) Enhancements to connection management in PortProxy - Introduced a unique ID for each connection record for improved tracking. - Enhanced cleanup mechanism for connections with dual states: initiated and executed. - Implemented shutdown process handling to ensure graceful connection closure. - Added logging for better tracing of connection activities and states. - Improved connection setup with explicit timeouts and data flow management. - Integrated inactivity and parity checks to monitor connection health. ## 2025-03-01 - 3.20.2 - fix(PortProxy) Enhance connection cleanup handling in PortProxy - Add checks to ensure timers are reset only if outgoing socket is active - Prevent setting outgoingActive if the connection is already closed ## 2025-03-01 - 3.20.1 - fix(PortProxy) Improve IP allowance check for forced domains - Enhanced IP allowance check logic by incorporating blocked IPs and default allowed IPs for forced domains within port proxy configurations. ## 2025-03-01 - 3.20.0 - feat(PortProxy) Enhance PortProxy with advanced connection cleanup and logging - Introduced `cleanupConnection` method for improved connection management. - Added logging for connection cleanup including special conditions. - Implemented parity check to clean up connections when outgoing side closes but incoming remains active. - Improved logging during interval checks for active connections and their durations. ## 2025-03-01 - 3.19.0 - feat(PortProxy) Enhance PortProxy with default blocked IPs - Introduced defaultBlockedIPs in IPortProxySettings to handle globally blocked IPs. - Added logic for merging domain-specific and default allowed and blocked IPs for effective IP filtering. - Refactored helper functions for IP and port range checks to improve modularity in PortProxy. ## 2025-02-27 - 3.18.2 - fix(portproxy) Fixed typographical errors in comments within PortProxy class. - Corrected typographical errors in comments within the PortProxy class. ## 2025-02-27 - 3.18.1 - fix(PortProxy) Refactor and enhance PortProxy test cases and handling - Refactored test cases in test/test.portproxy.ts for clarity and added coverage. - Improved TCP server helper functions for better flexibility. - Fixed issues with domain handling in PortProxy configuration. - Introduced round-robin logic for multi-IP domains in PortProxy. - Ensured proper cleanup and stopping of test servers in the test suite. ## 2025-02-27 - 3.18.0 - feat(PortProxy) Add SNI-based renegotiation handling in PortProxy - Introduced a new field 'lockedDomain' in IConnectionRecord to store initial SNI. - Enhanced connection management by enforcing termination if rehandshake is detected with different SNI. ## 2025-02-27 - 3.17.1 - fix(PortProxy) Fix handling of SNI re-negotiation in PortProxy - Removed connection locking to the initially negotiated SNI - Improved handling of SNI during renegotiation in PortProxy ## 2025-02-27 - 3.17.0 - feat(smartproxy) Enhance description clarity and improve SNI handling with domain locking. - Improved package description in package.json, readme.md, and npmextra.json for better clarity and keyword optimization. - Enhanced SNI handling in PortProxy by adding domain locking and extra checks to terminate connections if a different SNI is detected post-handshake. - Refactored readme.md to better explain the usage and functionalities of the proxy features including SSL redirection, WebSocket handling, and dynamic routing. ## 2025-02-27 - 3.16.9 - fix(portproxy) Extend domain input validation to support string arrays in port proxy configurations. - Modify IDomainConfig interface to allow domain specification as string array. - Update connection setup logic to handle multiple domain patterns. - Enhance domain rejection logging to include all domain patterns. ## 2025-02-27 - 3.16.8 - fix(PortProxy) Fix IP filtering for domain and global default allowed lists and improve port-based routing logic. - Improved logic to prioritize domain-specific allowed IPs over global defaults. - Fixed port-based rules application to handle global port ranges more effectively. - Enhanced rejection handling for unauthorized IP addresses in both domain-specific and default global lists. ## 2025-02-27 - 3.16.7 - fix(PortProxy) Improved IP validation logic in PortProxy to ensure correct domain matching and fallback - Refactored the setupConnection function inside PortProxy to enhance IP address validation. - Domain-specific allowed IP preference is applied before default list lookup. - Removed redundant condition checks to streamline connection rejection paths. ## 2025-02-27 - 3.16.6 - fix(PortProxy) Optimize connection cleanup logic in PortProxy by removing unnecessary delays. - Removed multiple await plugins.smartdelay.delayFor(0) calls. - Improved performance by ensuring timely resource release during connection termination. ## 2025-02-27 - 3.16.5 - fix(PortProxy) Improved connection cleanup process with added asynchronous delays - Connection cleanup now includes asynchronous delays for reliable order of operations. ## 2025-02-27 - 3.16.4 - fix(PortProxy) Fix and enhance port proxy handling - Ensure that all created proxy servers are correctly checked for listening state. - Corrected the handling of ports and domain configurations within port proxy setups. - Expanded test coverage for handling multiple concurrent and chained proxy connections. ## 2025-02-27 - 3.16.3 - fix(PortProxy) Refactored PortProxy to support multiple listening ports and improved modularity. - Updated PortProxy to allow multiple listening ports with flexible configuration. - Moved helper functions for IP and port range checks outside the class for cleaner code structure. ## 2025-02-27 - 3.16.2 - fix(PortProxy) Fix port-based routing logic in PortProxy - Optimized the handling and checking of local ports in the global port range. - Fixed the logic for rejecting or accepting connections based on predefined port ranges. - Improved handling of the default and specific domain configurations during port-based connections. ## 2025-02-27 - 3.16.1 - fix(core) Updated minor version numbers in dependencies for patch release. - No specific file changes detected. - Dependencies versioning adjusted for stability. ## 2025-02-27 - 3.16.0 - feat(PortProxy) Enhancements made to PortProxy settings and capabilities - Added 'forwardAllGlobalRanges' and 'targetIP' to IPortProxySettings. - Improved PortProxy to forward connections based on domain-specific configurations. - Added comprehensive handling for global port-range based connection forwarding. - Enabled forwarding of all connections on global port ranges directly to global target IP. ## 2025-02-27 - 3.15.0 - feat(classes.portproxy) Add support for port range-based routing with enhanced IP and port validation. - Introduced globalPortRanges in IPortProxySettings for routing based on port ranges. - Improved connection handling with port range and domain configuration validations. - Updated connection logging to include the local port information. ## 2025-02-26 - 3.14.2 - fix(PortProxy) Fix cleanup timer reset for PortProxy - Resolved an issue where the cleanup timer in the PortProxy class did not reset correctly if both incoming and outgoing data events were triggered without clearing flags. ## 2025-02-26 - 3.14.1 - fix(PortProxy) Increased default maxConnectionLifetime for PortProxy to 600000 ms - Updated PortProxy settings to extend default maxConnectionLifetime to 10 minutes. ## 2025-02-26 - 3.14.0 - feat(PortProxy) Introduce max connection lifetime feature - Added an optional maxConnectionLifetime setting for PortProxy. - Forces cleanup of long-lived connections based on inactivity or lifetime limit. ## 2025-02-25 - 3.13.0 - feat(core) Add support for tagging iptables rules with comments and cleaning them up on process exit - Extended IPTablesProxy class to include tagging rules with unique comments. - Added feature to clean up iptables rules via comments during process exit. ## 2025-02-24 - 3.12.0 - feat(IPTablesProxy) Introduce IPTablesProxy class for managing iptables NAT rules - Added IPTablesProxy class to facilitate basic port forwarding using iptables. - Introduced IIpTableProxySettings interface for configuring IPTablesProxy. - Implemented start and stop methods for managing iptables rules dynamically. ## 2025-02-24 - 3.11.0 - feat(Port80Handler) Add automatic certificate issuance with ACME client - Implemented automatic certificate issuance using 'acme-client' for Port80Handler. - Converts account key and CSR from Buffers to strings for processing. - Implemented HTTP-01 challenge handling for certificate acquisition. - New certificates are fetched and added dynamically. ## 2025-02-24 - 3.10.5 - fix(portproxy) Fix incorrect import path in test file - Change import path from '../ts/smartproxy.portproxy.js' to '../ts/classes.portproxy.js' in test/test.portproxy.ts ## 2025-02-23 - 3.10.4 - fix(PortProxy) Refactor connection tracking to utilize unified records in PortProxy - Implemented a unified record system for tracking incoming and outgoing connections. - Replaced individual connection tracking sets with a Set of IConnectionRecord. - Improved logging of connection activities and statistics. ## 2025-02-23 - 3.10.3 - fix(PortProxy) Refactor and optimize PortProxy for improved readability and maintainability - Simplified and clarified inline comments. - Optimized the extractSNI function for better readability. - Streamlined the cleanup process for connections in PortProxy. - Improved handling and logging of incoming and outgoing connections. ## 2025-02-23 - 3.10.2 - fix(PortProxy) Fix connection handling to include timeouts for SNI-enabled connections. - Added initial data timeout for SNI-enabled connections to improve connection handling. - Cleared timeout once data is received to prevent premature socket closure. ## 2025-02-22 - 3.10.1 - fix(PortProxy) Improve socket cleanup logic to prevent potential resource leaks - Updated socket cleanup in PortProxy to ensure sockets are forcefully destroyed if not already destroyed. ## 2025-02-22 - 3.10.0 - feat(smartproxy.portproxy) Enhance PortProxy with detailed connection statistics and termination tracking - Added tracking of termination statistics for incoming and outgoing connections - Enhanced logging to include detailed termination statistics - Introduced helpers to update and log termination stats - Retained detailed connection duration and active connection logging ## 2025-02-22 - 3.9.4 - fix(PortProxy) Ensure proper cleanup on connection rejection in PortProxy - Added cleanup calls after socket end in connection rejection scenarios within PortProxy ## 2025-02-21 - 3.9.3 - fix(PortProxy) Fix handling of optional outgoing socket in PortProxy - Refactored the cleanUpSockets function to correctly handle cases where the outgoing socket may be undefined. - Ensured correct handling of socket events with non-null assertions where applicable. - Improved robustness in connection establishment and cleanup processes. ## 2025-02-21 - 3.9.2 - fix(PortProxy) Improve timeout handling for port proxy connections - Added console logging for both incoming and outgoing side timeouts in the PortProxy class. - Updated the timeout event handlers to ensure proper cleanup of connections. ## 2025-02-21 - 3.9.1 - fix(dependencies) Ensure correct ordering of dependencies and improve logging format. - Reorder dependencies in package.json for better readability. - Use pretty-ms for displaying time durations in logs. ## 2025-02-21 - 3.9.0 - feat(smartproxy.portproxy) Add logging of connection durations to PortProxy - Track start times for incoming and outgoing connections. - Log duration of longest running incoming and outgoing connections every 10 seconds. ## 2025-02-21 - 3.8.1 - fix(plugins) Simplified plugin import structure across codebase - Consolidated plugin imports under a single 'plugins.ts' file. - Replaced individual plugin imports in smartproxy files with the consolidated plugin imports. - Fixed error handling for early socket errors in PortProxy setup. ## 2025-02-21 - 3.8.0 - feat(PortProxy) Add active connection tracking and logging in PortProxy - Implemented a feature to track active incoming connections in PortProxy. - Active connections are now logged every 10 seconds for monitoring purposes. - Refactored connection handling to ensure proper cleanup and logging. ## 2025-02-21 - 3.7.3 - fix(portproxy) Fix handling of connections in PortProxy to improve stability and performance. - Improved IP normalization and matching - Better SNI extraction and handling for TLS - Streamlined connection handling with robust error management ## 2025-02-21 - 3.7.2 - fix(PortProxy) Improve SNICallback and connection handling in PortProxy - Fixed SNICallback to create minimal TLS context for SNI. - Changed connection setup to use net.connect for raw passthrough. ## 2025-02-21 - 3.7.1 - fix(smartproxy.portproxy) Optimize SNI handling by simplifying context creation - Removed unnecessary SecureContext creation for SNI requests in PortProxy - Improved handling of SNI passthrough by acknowledging requests without context creation ## 2025-02-21 - 3.7.0 - feat(PortProxy) Add optional source IP preservation support in PortProxy - Added a feature to optionally preserve the client's source IP when proxying connections. - Enhanced test cases to include scenarios for source IP preservation. ## 2025-02-21 - 3.6.0 - feat(PortProxy) Add feature to preserve original client IP through chained proxies - Added support to bind local address in PortProxy to preserve original client IP. - Implemented test for chained proxies to ensure client IP is preserved. ## 2025-02-21 - 3.5.0 - feat(PortProxy) Enhance PortProxy to support domain-specific target IPs - Introduced support for domain-specific target IP configurations in PortProxy. - Updated connection handling to prioritize domain-specific target IPs if provided. - Added tests to verify forwarding based on domain-specific target IPs. ## 2025-02-21 - 3.4.4 - fix(PortProxy) Fixed handling of SNI domain connections and IP allowance checks - Improved logic for handling SNI domain checks, ensuring IPs are correctly verified. - Fixed issue where default allowed IPs were not being checked correctly for non-SNI connections. - Revised the SNICallback behavior to handle connections more gracefully when domain configurations are unavailable. ## 2025-02-21 - 3.4.3 - fix(PortProxy) Fixed indentation issue and ensured proper cleanup of sockets in PortProxy - Fixed inconsistent indentation in IP allowance check. - Ensured proper cleanup of sockets on connection end in PortProxy. ## 2025-02-21 - 3.4.2 - fix(smartproxy) Enhance SSL/TLS handling with SNI and error logging - Improved handling for SNI-enabled and non-SNI connections - Added detailed logging for connection establishment and rejections - Introduced error logging for TLS client errors and server errors ## 2025-02-21 - 3.4.1 - fix(PortProxy) Normalize IP addresses for port proxy to handle IPv4-mapped IPv6 addresses. - Improved IP normalization logic in PortProxy to support IPv4-mapped IPv6 addresses. - Updated isAllowed function to expand patterns for better matching accuracy. ## 2025-02-21 - 3.4.0 - feat(PortProxy) Enhanced PortProxy with custom target host and improved testing - PortProxy constructor now accepts 'fromPort', 'toPort', and optional 'toHost' directly from settings - Refactored test cases to cover forwarding to the custom host - Added support to handle multiple concurrent connections - Refactored internal connection handling logic to utilize default configurations ## 2025-02-21 - 3.3.1 - fix(PortProxy) fixed import usage of net and tls libraries for PortProxy - Corrected the use of plugins for importing 'tls' and 'net' libraries in the PortProxy module. - Updated the constructor of PortProxy to accept combined tls options with ProxySettings. ## 2025-02-21 - 3.3.0 - feat(PortProxy) Enhanced PortProxy with domain and IP filtering, SNI support, and minimatch integration - Added new ProxySettings interface to configure domain patterns, SNI, and default allowed IPs. - Integrated minimatch to filter allowed IPs and domains. - Enabled SNI support for PortProxy connections. - Updated port proxy test to accommodate new settings. ## 2025-02-04 - 3.2.0 - feat(testing) Added a comprehensive test suite for the PortProxy class - Set up a test environment for PortProxy using net.Server. - Test coverage includes starting and stopping the proxy, handling TCP connections, concurrent connections, and timeouts. - Ensures proper resource cleanup after tests. ## 2025-02-04 - 3.1.4 - fix(core) No uncommitted changes. Preparing for potential minor improvements or bug fixes. ## 2025-02-04 - 3.1.3 - fix(networkproxy) Refactor and improve WebSocket handling and request processing - Improved error handling in WebSocket connection and request processing. - Refactored the WebSocket handling in NetworkProxy to use a unified error logging mechanism. ## 2025-02-04 - 3.1.2 - fix(core) Refactor certificate handling across the project - Moved certificate keys and certs to the assets/certs directory. - Updated test utilities to load certificates from the central location. - Cleaned up redundant code and improved error logging regarding certificates. - Ensured correct handling of host header in ProxyRouter class. ## 2025-02-03 - 3.1.1 - fix(workflow) Update Gitea workflow paths and dependencies - Updated registry paths for npmci image and repositories in Gitea workflow files. - Fixed dependency paths in package.json. - Completed adding typescript to the list of devDependencies. ## 2024-10-07 - 3.1.0 - feat(NetworkProxy) Introduce WebSocket heartbeat to maintain active connections in NetworkProxy - Added heartbeat mechanism to WebSocket connections to ensure they remain active. - Terminating WebSocket if no pong is received for 5 minutes. - Set up heartbeat interval to run every 1 minute for connection checks. ## 2024-10-07 - 3.0.61 - fix(networkproxy) Improve error handling for proxy requests - Wrapped proxy request logic in a try-catch block to handle errors gracefully. - Improved error handling for WebSocket communication by checking errors before attempting to send messages. - Added logging for error cases to aid in debugging. ## 2024-05-29 - 3.0.60 - various updates Maintenance updates and adjustments. - Updated project description - Updated tsconfig settings - Updated npmextra.json with new githost info ## 2023-07-27 - 3.0.58 to 3.0.59 - core improvements Improvements and internal restructuring. - Switch to a new organizational scheme - Core updates and adjustments ## 2022-07-29 - 2.0.16 to 3.0.0 - major transition This release marks a major transition with several breaking changes. - BREAKING CHANGE: switched core to ESM (EcmaScript Module) - Major core updates