Skip to content

Releases: apify/proxy-chain

v2.0.1

02 May 09:03
ff8ea53
Compare
Choose a tag to compare
  • Simplify code, fix tests, move to TypeScript #162
  • Bugfix: Memory leak in createTunnel #160
  • Bugfix: Proxy fails to handle non-standard HTTP response in HTTP forwarding mode, on certain websites #107
  • Pass proxyChainId to tunnelConnectResponded #173
  • feat: accept custom port for proxy anonymization #214
  • fix: socket close race condition
  • feat: closeConnection by id #176
  • feat: custom dns lookup #175

v1.0.4

24 Aug 09:05
0043ac9
Compare
Choose a tag to compare
  • fix: invalid CONNECT responses (#151)

v1.0.3

18 Aug 07:56
cdfbb20
Compare
Choose a tag to compare

1.0.3 / 2021-08-17

  • Fixed EventEmitter memory leak (see issue #81)
  • Added automated tests for Node 16
  • Updated dev dependencies

v1.0.2

15 Apr 08:07
d34c9e0
Compare
Choose a tag to compare
  • Bugfix: closeTunnel() function didn't work because of runningServers[port].connections.forEach is not a function error (see issue #127)

v1.0.1

09 Apr 16:15
43e8c9d
Compare
Choose a tag to compare
  • Bugfix: parseUrl() result now always includes port for http(s), ftp and ws(s) (even if explicitly specified port is the default one) This fixes #123.

v1.0.0

17 Mar 12:10
6037956
Compare
Choose a tag to compare
  • BREAKING: The parseUrl() function slightly changed its behavior (see README for details):
    • it no longer returns an object on invalid URLs and throws an exception instead
    • it URI-decodes username and password if possible
      (if not, the function keeps the username and password as is)
    • it adds back auth property for better backwards compatibility
  • The above change should make it possible to pass upstream proxy URLs containing
    special characters, such as http://user:pass:wrd@proxy.example.com
    or http://us%35er:passwrd@proxy.example.com. The parsing is done on a best-effort basis.
    The safest way is to always URI-encode username and password before constructing
    the URL, according to RFC 3986.
    This change should finally fix issues: #89, #67, and #108
  • BREAKING: Improved error handling in createTunnel() and prepareRequestFunction() functions and provided better error messages. Both functions now fail if the upstream proxy URL contains colon (:) character in the username, in order to comply with RFC 7617. The functions now fail fast with a reasonable error, rather later and with cryptic errors.
  • BREAKING: The createTunnel() function now lets the system assign potentially random listening TCP port, instead of the previous selection from range from 20000 to 60000.
  • BREAKING: The undocumented findFreePort() function was moved from tools.js to test/tools.js
  • Added the ability to access proxy CONNECT headers for proxy tunneling.
  • Removed dependency on Node.js internal modules, hopefully allowing usage of this library in Electron.
  • Got rid of the "portastic" NPM package and thus reduced bundle size by ~50%
  • Various code improvements and better tests.
  • Updated packages.