
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
proxy-agent
Advanced tools
http.Agent implementationsThis module provides an http.Agent implementation which automatically uses
proxy servers based off of the various proxy-related environment variables
(HTTP_PROXY, HTTPS_PROXY and NO_PROXY among others).
Which proxy is used for each HTTP request is determined by the
proxy-from-env module, so
check its documentation for instructions on configuring your environment variables.
An LRU cache is used so that http.Agent instances are transparently re-used for
subsequent HTTP requests to the same proxy server.
The currently implemented protocol mappings are listed in the table below:
| Protocol | Proxy Agent for http requests | Proxy Agent for https requests | Example |
|---|---|---|---|
http | http-proxy-agent | https-proxy-agent | http://proxy-server-over-tcp.com:3128 |
https | http-proxy-agent | https-proxy-agent | https://proxy-server-over-tls.com:3129 |
socks(v5) | socks-proxy-agent | socks-proxy-agent | socks://username:password@some-socks-proxy.com:9050 (username & password are optional) |
socks5 | socks-proxy-agent | socks-proxy-agent | socks5://username:password@some-socks-proxy.com:9050 (username & password are optional) |
socks4 | socks-proxy-agent | socks-proxy-agent | socks4://some-socks-proxy.com:9050 |
pac-* | pac-proxy-agent | pac-proxy-agent | pac+http://www.example.com/proxy.pac |
import * as https from 'https';
import { ProxyAgent } from 'proxy-agent';
// The correct proxy `Agent` implementation to use will be determined
// via the `http_proxy` / `https_proxy` / `no_proxy` / etc. env vars
const agent = new ProxyAgent();
// The rest works just like any other normal HTTP request
https.get('https://jsonip.com', { agent }, (res) => {
console.log(res.statusCode, res.headers);
res.pipe(process.stdout);
});
Creates an http.Agent instance which relies on the various proxy-related
environment variables. An LRU cache is used, so the same http.Agent instance
will be returned if identical args are passed in.
This package provides an HTTP agent to proxy HTTP requests. It is similar to proxy-agent but is limited to HTTP protocol only, whereas proxy-agent supports multiple protocols.
This package provides an HTTPS agent to proxy HTTPS requests. Like http-proxy-agent, it is protocol-specific and does not offer the multi-protocol support that proxy-agent does.
This package is designed to provide an agent that proxies through a SOCKS proxy. It is specifically tailored for SOCKS protocol, unlike proxy-agent which handles SOCKS along with other protocols.
This package provides a proxy agent that can use a PAC file to determine the appropriate proxy for a given URL. It is focused on PAC file support, which is just one of the features available in proxy-agent.
FAQs
Maps proxy protocols to `http.Agent` implementations
The npm package proxy-agent receives a total of 14,846,875 weekly downloads. As such, proxy-agent popularity was classified as popular.
We found that proxy-agent demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.