2.1.5 • Published 1 year ago

newproxy v2.1.5

Weekly downloads
2
License
MIT
Repository
github
Last release
1 year ago

npm npm type definitions npm

JS Proxy library with support for request/response rewriting, optional SSL MITM (man-in-the-middle), external proxy.

Adding as dependency

npm i newproxy

Usage

import { NewProxyBuilder }  from 'newproxy';

const proxy = NewProxyBuilder.new()
  .sslMitm((req, clientSocket, head) => true)
  .requestInterceptor(async (rOptions, clientReq, clientRes, ssl) => {
    clientReq.setTimeout(10000); // Set request timeout to 10 seconds

    console.log(`URL requested:${rOptions.protocol}//${rOptions.hostname}:${rOptions.port}`);
    console.log('Cookie:', rOptions.headers.cookie);

    if (rOptions.url.includes('test')) {
      clientRes.setHeader('Content-Type', 'application/json');
      clientRes.end('Hello NewProxy!');
      // If we call clientRes.end and close client socket in request interception
      // then no other actions are performed
    }
  })
  .responseInterceptor(async (clientReq, clientRes, proxyReq, proxyRes, ssl) => {
    // proxyRes will be piped to clientRes, we can change proxyRes or write to clientRes directly here
    proxyRes.headers['test_header'] = 'test';

    if (proxyRes.statusCode === 301) {
      clientRes.setHeader('Content-Type', 'text/html');
      clientRes.statusCode = 404;
      clientRes.end('NO REDIRECTS HERE');
    }
  })
  .externalProxyNoMitm('http://127.0.0.1:8800') // Set external proxy for non-MITM SSL requests
  .externalProxy('http://127.0.0.1:8888')
  .build(); // We can set external proxy statically or by fn
  
// Start listening 
(async () => {
  await proxy.run();
})();

...

await proxy.stop();

Features

  • Optional request/response interception
  • Optional MITM for SSL requests
  • Optional external proxy
  • Written in TypeScript

Examples

Multiple example files are available in /examples folder

2.1.5

1 year ago

2.1.4

3 years ago

2.1.3

3 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

2.0.0-beta1

4 years ago

2.0.0-beta2

4 years ago

1.6.2

4 years ago

1.6.1

4 years ago

1.6.0

4 years ago

1.5.10

4 years ago

1.5.9

4 years ago

1.5.8

4 years ago

1.5.7

4 years ago

1.5.6

4 years ago

1.5.5

4 years ago

1.5.4

4 years ago

1.5.3

4 years ago

1.5.2

5 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.1

5 years ago

1.4.0

5 years ago

1.3.29

5 years ago

1.3.28

5 years ago

1.3.27

5 years ago

1.3.26

5 years ago

1.3.25

5 years ago

1.3.24

5 years ago

1.3.20

5 years ago

1.3.21

5 years ago

1.3.22

5 years ago

1.3.23

5 years ago

1.3.19

5 years ago

1.3.18

5 years ago

1.3.13

5 years ago

1.3.14

5 years ago

1.3.11

5 years ago

1.3.12

5 years ago

1.3.17

5 years ago

1.3.15

5 years ago

1.3.16

5 years ago

1.3.10

5 years ago

1.3.9

5 years ago

1.3.7

5 years ago

1.3.8

5 years ago

1.3.6

5 years ago

1.3.5

5 years ago

1.3.4

5 years ago

1.3.2

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.2

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago