/
usr
/
local
/
lib
/
node_modules
/
pm2
/
node_modules
/
proxy-agent
/
dist
/
/usr/local/lib/node_modules/pm2/node_modules/proxy-agent/dist
mkdir
upload
Name
Size
Mode
Actions
index.d.ts
2402
0644
edit
dl
rm
index.d.ts.map
1400
0644
edit
dl
rm
index.js
5736
0644
edit
dl
rm
index.js.map
3215
0644
edit
dl
rm
Edit:
/usr/local/lib/node_modules/pm2/node_modules/proxy-agent/dist/index.js
(5736B)
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProxyAgent = exports.proxies = void 0; const http = __importStar(require("http")); const https = __importStar(require("https")); const url_1 = require("url"); const lru_cache_1 = __importDefault(require("lru-cache")); const agent_base_1 = require("agent-base"); const debug_1 = __importDefault(require("debug")); const proxy_from_env_1 = require("proxy-from-env"); const pac_proxy_agent_1 = require("pac-proxy-agent"); const http_proxy_agent_1 = require("http-proxy-agent"); const https_proxy_agent_1 = require("https-proxy-agent"); const socks_proxy_agent_1 = require("socks-proxy-agent"); const debug = (0, debug_1.default)('proxy-agent'); const PROTOCOLS = [ ...http_proxy_agent_1.HttpProxyAgent.protocols, ...socks_proxy_agent_1.SocksProxyAgent.protocols, ...pac_proxy_agent_1.PacProxyAgent.protocols, ]; /** * Supported proxy types. */ exports.proxies = { http: [http_proxy_agent_1.HttpProxyAgent, https_proxy_agent_1.HttpsProxyAgent], https: [http_proxy_agent_1.HttpProxyAgent, https_proxy_agent_1.HttpsProxyAgent], socks: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent], socks4: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent], socks4a: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent], socks5: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent], socks5h: [socks_proxy_agent_1.SocksProxyAgent, socks_proxy_agent_1.SocksProxyAgent], 'pac+data': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent], 'pac+file': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent], 'pac+ftp': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent], 'pac+http': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent], 'pac+https': [pac_proxy_agent_1.PacProxyAgent, pac_proxy_agent_1.PacProxyAgent], }; function isValidProtocol(v) { return PROTOCOLS.includes(v); } /** * Uses the appropriate `Agent` subclass based off of the "proxy" * environment variables that are currently set. * * An LRU cache is used, to prevent unnecessary creation of proxy * `http.Agent` instances. */ class ProxyAgent extends agent_base_1.Agent { constructor(opts) { super(opts); /** * Cache for `Agent` instances. */ this.cache = new lru_cache_1.default({ max: 20 }); debug('Creating new ProxyAgent instance: %o', opts); this.connectOpts = opts; this.httpAgent = opts?.httpAgent || new http.Agent(opts); this.httpsAgent = opts?.httpsAgent || new https.Agent(opts); this.getProxyForUrl = opts?.getProxyForUrl || proxy_from_env_1.getProxyForUrl; } async connect(req, opts) { const { secureEndpoint } = opts; const isWebSocket = req.getHeader('upgrade') === 'websocket'; const protocol = secureEndpoint ? isWebSocket ? 'wss:' : 'https:' : isWebSocket ? 'ws:' : 'http:'; const host = req.getHeader('host'); const url = new url_1.URL(req.path, `${protocol}//${host}`).href; const proxy = await this.getProxyForUrl(url); if (!proxy) { debug('Proxy not enabled for URL: %o', url); return secureEndpoint ? this.httpsAgent : this.httpAgent; } debug('Request URL: %o', url); debug('Proxy URL: %o', proxy); // attempt to get a cached `http.Agent` instance first const cacheKey = `${protocol}+${proxy}`; let agent = this.cache.get(cacheKey); if (!agent) { const proxyUrl = new url_1.URL(proxy); const proxyProto = proxyUrl.protocol.replace(':', ''); if (!isValidProtocol(proxyProto)) { throw new Error(`Unsupported protocol for proxy URL: ${proxy}`); } const ctor = exports.proxies[proxyProto][secureEndpoint || isWebSocket ? 1 : 0]; // @ts-expect-error meh… agent = new ctor(proxy, this.connectOpts); this.cache.set(cacheKey, agent); } else { debug('Cache hit for proxy URL: %o', proxy); } return agent; } destroy() { for (const agent of this.cache.values()) { agent.destroy(); } super.destroy(); } } exports.ProxyAgent = ProxyAgent; //# sourceMappingURL=index.js.map
Save
cmd:
run