| 
									
										
										
										
											2024-10-07 12:29:49 +02:00
										 |  |  | # Changelog
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-22 13:22:26 +00:00
										 |  |  | ## 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 05:46:30 +00:00
										 |  |  | ## 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 05:41:29 +00:00
										 |  |  | ## 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 23:57:54 +00:00
										 |  |  | ## 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 23:33:15 +00:00
										 |  |  | ## 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 23:30:51 +00:00
										 |  |  | ## 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 23:18:17 +00:00
										 |  |  | ## 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 23:11:13 +00:00
										 |  |  | ## 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 23:05:17 +00:00
										 |  |  | ## 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 20:17:35 +00:00
										 |  |  | ## 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 19:56:28 +00:00
										 |  |  | ## 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 19:53:19 +00:00
										 |  |  | ## 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 19:44:59 +00:00
										 |  |  | ## 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 19:39:52 +00:00
										 |  |  | ## 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 19:34:11 +00:00
										 |  |  | ## 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 18:54:40 +00:00
										 |  |  | ## 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 18:48:39 +00:00
										 |  |  | ## 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 18:47:18 +00:00
										 |  |  | ## 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 18:43:08 +00:00
										 |  |  | ## 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 17:01:02 +00:00
										 |  |  | ## 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 15:17:19 +00:00
										 |  |  | ## 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 15:14:02 +00:00
										 |  |  | ## 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 01:24:37 +01:00
										 |  |  | ## 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 01:11:54 +01:00
										 |  |  | ## 2025-02-04 - 3.1.4 - fix(core)
 | 
					
						
							|  |  |  | No uncommitted changes. Preparing for potential minor improvements or bug fixes. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-04 01:10:58 +01:00
										 |  |  | ## 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 00:38:39 +01:00
										 |  |  | ## 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 23:41:13 +01:00
										 |  |  | ## 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 12:52:01 +02:00
										 |  |  | ## 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 12:29:49 +02:00
										 |  |  | ## 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 |