650 lines
31 KiB
Markdown
650 lines
31 KiB
Markdown
# 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
|