
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
pac-resolver
Advanced tools
This module accepts a JavaScript String of code, which is meant to be a
PAC proxy file, and returns a generated asynchronous
FindProxyForURL() function.
Given the PAC proxy file named proxy.pac:
function FindProxyForURL(url, host) {
if (isInNet(myIpAddress(), "10.1.10.0", "255.255.255.0")) {
return "PROXY 1.2.3.4:8080";
} else {
return "DIRECT";
}
}
You can consume this PAC file with pac-resolver like so:
import { readFileSync } from 'fs';
import { createPacResolver } from 'pac-resolver';
const FindProxyForURL = createPacResolver(readFileSync('proxy.pac'));
const res = await FindProxyForURL('http://foo.com/');
console.log(res);
// "DIRECT"
Returns an asynchronous FindProxyForURL() function based off of the given JS
string pacFileContents PAC proxy file. An optional options object may be
passed in which respects the following options:
filename - String - the filename to use in error stack traces. Defaults to proxy.pac.sandbox - Object - a map of functions to include in the sandbox of the
JavaScript environment where the JS code will be executed. i.e. if you wanted to
include the common alert function you could pass alert: console.log. For
async functions, you must set the async = true property on the function
instance, and the JS code will be able to invoke the function as if it were
synchronous.The qjs parameter is a QuickJS module instance as returned from getQuickJS() from the quickjs-emscripten module.
The proxy-agent package is similar to pac-resolver in that it provides a way to determine the correct proxy settings for HTTP requests. It supports multiple proxy protocols and can be used with PAC files. Unlike pac-resolver, which focuses solely on PAC file resolution, proxy-agent integrates with Node.js's http module to automatically apply proxy settings to HTTP requests.
The proxy-from-env package is designed to read proxy settings from environment variables. It provides a simple interface for determining the proxy for a given URL based on standard environment variables like HTTP_PROXY, HTTPS_PROXY, and NO_PROXY. While it does not execute PAC files, it serves a similar purpose in managing proxy configurations for applications.
FAQs
Generates an asynchronous resolver function from a PAC file
The npm package pac-resolver receives a total of 14,665,331 weekly downloads. As such, pac-resolver popularity was classified as popular.
We found that pac-resolver 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.