# Changelog ## 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