From b90ec40d15bfa44c33c6700196eb6efcdddb4373 Mon Sep 17 00:00:00 2001 From: marcel Date: Thu, 10 Sep 2026 20:40:43 +0200 Subject: [PATCH] fix: respect no proxy directive (#1037) Closes #1034 --- dist/setup/index.cjs | 57 +++++++++++---------------- dist/update-known-checksums/index.cjs | 57 +++++++++++---------------- src/utils/fetch.ts | 22 +++-------- 3 files changed, 52 insertions(+), 84 deletions(-) diff --git a/dist/setup/index.cjs b/dist/setup/index.cjs index feca3b6..0df358d 100644 --- a/dist/setup/index.cjs +++ b/dist/setup/index.cjs @@ -8546,7 +8546,7 @@ var require_proxy_agent = __commonJS({ return this.#client.destroy(err); } }; - var ProxyAgent3 = class extends DispatcherBase { + var ProxyAgent2 = class extends DispatcherBase { constructor(opts) { super(); if (!opts || typeof opts === "object" && !(opts instanceof URL3) && !opts.uri) { @@ -8687,7 +8687,7 @@ var require_proxy_agent = __commonJS({ throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } } - module2.exports = ProxyAgent3; + module2.exports = ProxyAgent2; } }); @@ -8697,14 +8697,14 @@ var require_env_http_proxy_agent = __commonJS({ "use strict"; var DispatcherBase = require_dispatcher_base(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(); - var ProxyAgent3 = require_proxy_agent(); + var ProxyAgent2 = require_proxy_agent(); var Agent3 = require_agent(); var DEFAULT_PORTS = { "http:": 80, "https:": 443 }; var experimentalWarned = false; - var EnvHttpProxyAgent = class extends DispatcherBase { + var EnvHttpProxyAgent2 = class extends DispatcherBase { #noProxyValue = null; #noProxyEntries = null; #opts = null; @@ -8721,13 +8721,13 @@ var require_env_http_proxy_agent = __commonJS({ this[kNoProxyAgent] = new Agent3(agentOpts); const HTTP_PROXY2 = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; if (HTTP_PROXY2) { - this[kHttpProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTP_PROXY2 }); + this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY2 }); } else { this[kHttpProxyAgent] = this[kNoProxyAgent]; } const HTTPS_PROXY2 = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; if (HTTPS_PROXY2) { - this[kHttpsProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTPS_PROXY2 }); + this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY2 }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } @@ -8823,7 +8823,7 @@ var require_env_http_proxy_agent = __commonJS({ return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; } }; - module2.exports = EnvHttpProxyAgent; + module2.exports = EnvHttpProxyAgent2; } }); @@ -18458,8 +18458,8 @@ var require_undici = __commonJS({ var Pool = require_pool(); var BalancedPool = require_balanced_pool(); var Agent3 = require_agent(); - var ProxyAgent3 = require_proxy_agent(); - var EnvHttpProxyAgent = require_env_http_proxy_agent(); + var ProxyAgent2 = require_proxy_agent(); + var EnvHttpProxyAgent2 = require_env_http_proxy_agent(); var RetryAgent = require_retry_agent(); var errors = require_errors(); var util7 = require_util(); @@ -18481,8 +18481,8 @@ var require_undici = __commonJS({ module2.exports.Pool = Pool; module2.exports.BalancedPool = BalancedPool; module2.exports.Agent = Agent3; - module2.exports.ProxyAgent = ProxyAgent3; - module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; + module2.exports.ProxyAgent = ProxyAgent2; + module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent2; module2.exports.RetryAgent = RetryAgent; module2.exports.RetryHandler = RetryHandler; module2.exports.DecoratorHandler = DecoratorHandler; @@ -40228,7 +40228,7 @@ var require_proxy_agent2 = __commonJS({ return this.#client.destroy(err); } }; - var ProxyAgent3 = class extends DispatcherBase { + var ProxyAgent2 = class extends DispatcherBase { constructor(opts) { if (!opts || typeof opts === "object" && !(opts instanceof URL) && !opts.uri) { throw new InvalidArgumentError("Proxy uri is mandatory"); @@ -40427,7 +40427,7 @@ var require_proxy_agent2 = __commonJS({ function throwProxyAuthError() { throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } - module2.exports = ProxyAgent3; + module2.exports = ProxyAgent2; } }); @@ -40437,13 +40437,13 @@ var require_env_http_proxy_agent2 = __commonJS({ "use strict"; var DispatcherBase = require_dispatcher_base2(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols6(); - var ProxyAgent3 = require_proxy_agent2(); + var ProxyAgent2 = require_proxy_agent2(); var Agent3 = require_agent2(); var DEFAULT_PORTS = { "http:": 80, "https:": 443 }; - var EnvHttpProxyAgent = class extends DispatcherBase { + var EnvHttpProxyAgent2 = class extends DispatcherBase { #noProxyValue = null; #noProxyEntries = null; #opts = null; @@ -40454,13 +40454,13 @@ var require_env_http_proxy_agent2 = __commonJS({ this[kNoProxyAgent] = new Agent3(agentOpts); const HTTP_PROXY2 = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; if (HTTP_PROXY2) { - this[kHttpProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTP_PROXY2 }); + this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY2 }); } else { this[kHttpProxyAgent] = this[kNoProxyAgent]; } const HTTPS_PROXY2 = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; if (HTTPS_PROXY2) { - this[kHttpsProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTPS_PROXY2 }); + this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY2 }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } @@ -40561,7 +40561,7 @@ var require_env_http_proxy_agent2 = __commonJS({ return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; } }; - module2.exports = EnvHttpProxyAgent; + module2.exports = EnvHttpProxyAgent2; } }); @@ -55691,9 +55691,9 @@ var require_undici2 = __commonJS({ var RoundRobinPool = require_round_robin_pool(); var Agent3 = require_agent2(); var Dispatcher1Wrapper = require_dispatcher1_wrapper(); - var ProxyAgent3 = require_proxy_agent2(); + var ProxyAgent2 = require_proxy_agent2(); var Socks5ProxyAgent = require_socks5_proxy_agent(); - var EnvHttpProxyAgent = require_env_http_proxy_agent2(); + var EnvHttpProxyAgent2 = require_env_http_proxy_agent2(); var RetryAgent = require_retry_agent2(); var H2CClient = require_h2c_client(); var errors = require_errors2(); @@ -55719,9 +55719,9 @@ var require_undici2 = __commonJS({ module2.exports.RoundRobinPool = RoundRobinPool; module2.exports.Agent = Agent3; module2.exports.Dispatcher1Wrapper = Dispatcher1Wrapper; - module2.exports.ProxyAgent = ProxyAgent3; + module2.exports.ProxyAgent = ProxyAgent2; module2.exports.Socks5ProxyAgent = Socks5ProxyAgent; - module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; + module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent2; module2.exports.RetryAgent = RetryAgent; module2.exports.H2CClient = H2CClient; module2.exports.RetryHandler = RetryHandler; @@ -99844,23 +99844,12 @@ var import_node_stream5 = require("node:stream"); // src/utils/fetch.ts var import_undici2 = __toESM(require_undici2(), 1); -function getProxyAgent() { - const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy; - if (httpProxy) { - return new import_undici2.ProxyAgent(httpProxy); - } - const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy; - if (httpsProxy) { - return new import_undici2.ProxyAgent(httpsProxy); - } - return void 0; -} var fetch = async (url2, opts) => { const timeoutSignal = AbortSignal.timeout(5e3); const existingSignal = opts.signal; const mergedSignal = existingSignal ? AbortSignal.any([timeoutSignal, existingSignal]) : timeoutSignal; return await (0, import_undici2.fetch)(url2, { - dispatcher: getProxyAgent(), + dispatcher: new import_undici2.EnvHttpProxyAgent(), ...opts, signal: mergedSignal }); diff --git a/dist/update-known-checksums/index.cjs b/dist/update-known-checksums/index.cjs index f181756..fae2672 100644 --- a/dist/update-known-checksums/index.cjs +++ b/dist/update-known-checksums/index.cjs @@ -8542,7 +8542,7 @@ var require_proxy_agent = __commonJS({ return this.#client.destroy(err); } }; - var ProxyAgent3 = class extends DispatcherBase { + var ProxyAgent2 = class extends DispatcherBase { constructor(opts) { super(); if (!opts || typeof opts === "object" && !(opts instanceof URL2) && !opts.uri) { @@ -8683,7 +8683,7 @@ var require_proxy_agent = __commonJS({ throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } } - module2.exports = ProxyAgent3; + module2.exports = ProxyAgent2; } }); @@ -8693,14 +8693,14 @@ var require_env_http_proxy_agent = __commonJS({ "use strict"; var DispatcherBase = require_dispatcher_base(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(); - var ProxyAgent3 = require_proxy_agent(); + var ProxyAgent2 = require_proxy_agent(); var Agent = require_agent(); var DEFAULT_PORTS = { "http:": 80, "https:": 443 }; var experimentalWarned = false; - var EnvHttpProxyAgent = class extends DispatcherBase { + var EnvHttpProxyAgent2 = class extends DispatcherBase { #noProxyValue = null; #noProxyEntries = null; #opts = null; @@ -8717,13 +8717,13 @@ var require_env_http_proxy_agent = __commonJS({ this[kNoProxyAgent] = new Agent(agentOpts); const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; if (HTTP_PROXY) { - this[kHttpProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTP_PROXY }); + this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY }); } else { this[kHttpProxyAgent] = this[kNoProxyAgent]; } const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; if (HTTPS_PROXY) { - this[kHttpsProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTPS_PROXY }); + this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } @@ -8819,7 +8819,7 @@ var require_env_http_proxy_agent = __commonJS({ return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; } }; - module2.exports = EnvHttpProxyAgent; + module2.exports = EnvHttpProxyAgent2; } }); @@ -18454,8 +18454,8 @@ var require_undici = __commonJS({ var Pool = require_pool(); var BalancedPool = require_balanced_pool(); var Agent = require_agent(); - var ProxyAgent3 = require_proxy_agent(); - var EnvHttpProxyAgent = require_env_http_proxy_agent(); + var ProxyAgent2 = require_proxy_agent(); + var EnvHttpProxyAgent2 = require_env_http_proxy_agent(); var RetryAgent = require_retry_agent(); var errors = require_errors(); var util = require_util(); @@ -18477,8 +18477,8 @@ var require_undici = __commonJS({ module2.exports.Pool = Pool; module2.exports.BalancedPool = BalancedPool; module2.exports.Agent = Agent; - module2.exports.ProxyAgent = ProxyAgent3; - module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; + module2.exports.ProxyAgent = ProxyAgent2; + module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent2; module2.exports.RetryAgent = RetryAgent; module2.exports.RetryHandler = RetryHandler; module2.exports.DecoratorHandler = DecoratorHandler; @@ -31050,7 +31050,7 @@ var require_proxy_agent2 = __commonJS({ return this.#client.destroy(err); } }; - var ProxyAgent3 = class extends DispatcherBase { + var ProxyAgent2 = class extends DispatcherBase { constructor(opts) { if (!opts || typeof opts === "object" && !(opts instanceof URL) && !opts.uri) { throw new InvalidArgumentError("Proxy uri is mandatory"); @@ -31249,7 +31249,7 @@ var require_proxy_agent2 = __commonJS({ function throwProxyAuthError() { throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } - module2.exports = ProxyAgent3; + module2.exports = ProxyAgent2; } }); @@ -31259,13 +31259,13 @@ var require_env_http_proxy_agent2 = __commonJS({ "use strict"; var DispatcherBase = require_dispatcher_base2(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols6(); - var ProxyAgent3 = require_proxy_agent2(); + var ProxyAgent2 = require_proxy_agent2(); var Agent = require_agent2(); var DEFAULT_PORTS = { "http:": 80, "https:": 443 }; - var EnvHttpProxyAgent = class extends DispatcherBase { + var EnvHttpProxyAgent2 = class extends DispatcherBase { #noProxyValue = null; #noProxyEntries = null; #opts = null; @@ -31276,13 +31276,13 @@ var require_env_http_proxy_agent2 = __commonJS({ this[kNoProxyAgent] = new Agent(agentOpts); const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; if (HTTP_PROXY) { - this[kHttpProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTP_PROXY }); + this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY }); } else { this[kHttpProxyAgent] = this[kNoProxyAgent]; } const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; if (HTTPS_PROXY) { - this[kHttpsProxyAgent] = new ProxyAgent3({ ...agentOpts, uri: HTTPS_PROXY }); + this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } @@ -31383,7 +31383,7 @@ var require_env_http_proxy_agent2 = __commonJS({ return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; } }; - module2.exports = EnvHttpProxyAgent; + module2.exports = EnvHttpProxyAgent2; } }); @@ -46513,9 +46513,9 @@ var require_undici2 = __commonJS({ var RoundRobinPool = require_round_robin_pool(); var Agent = require_agent2(); var Dispatcher1Wrapper = require_dispatcher1_wrapper(); - var ProxyAgent3 = require_proxy_agent2(); + var ProxyAgent2 = require_proxy_agent2(); var Socks5ProxyAgent = require_socks5_proxy_agent(); - var EnvHttpProxyAgent = require_env_http_proxy_agent2(); + var EnvHttpProxyAgent2 = require_env_http_proxy_agent2(); var RetryAgent = require_retry_agent2(); var H2CClient = require_h2c_client(); var errors = require_errors2(); @@ -46541,9 +46541,9 @@ var require_undici2 = __commonJS({ module2.exports.RoundRobinPool = RoundRobinPool; module2.exports.Agent = Agent; module2.exports.Dispatcher1Wrapper = Dispatcher1Wrapper; - module2.exports.ProxyAgent = ProxyAgent3; + module2.exports.ProxyAgent = ProxyAgent2; module2.exports.Socks5ProxyAgent = Socks5ProxyAgent; - module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; + module2.exports.EnvHttpProxyAgent = EnvHttpProxyAgent2; module2.exports.RetryAgent = RetryAgent; module2.exports.H2CClient = H2CClient; module2.exports.RetryHandler = RetryHandler; @@ -52516,23 +52516,12 @@ var VERSIONS_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/version // src/utils/fetch.ts var import_undici2 = __toESM(require_undici2(), 1); -function getProxyAgent() { - const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy; - if (httpProxy) { - return new import_undici2.ProxyAgent(httpProxy); - } - const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy; - if (httpsProxy) { - return new import_undici2.ProxyAgent(httpsProxy); - } - return void 0; -} var fetch = async (url, opts) => { const timeoutSignal = AbortSignal.timeout(5e3); const existingSignal = opts.signal; const mergedSignal = existingSignal ? AbortSignal.any([timeoutSignal, existingSignal]) : timeoutSignal; return await (0, import_undici2.fetch)(url, { - dispatcher: getProxyAgent(), + dispatcher: new import_undici2.EnvHttpProxyAgent(), ...opts, signal: mergedSignal }); diff --git a/src/utils/fetch.ts b/src/utils/fetch.ts index 71167be..487c1ed 100644 --- a/src/utils/fetch.ts +++ b/src/utils/fetch.ts @@ -1,18 +1,8 @@ -import { ProxyAgent, type RequestInit, fetch as undiciFetch } from "undici"; - -export function getProxyAgent() { - const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy; - if (httpProxy) { - return new ProxyAgent(httpProxy); - } - - const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy; - if (httpsProxy) { - return new ProxyAgent(httpsProxy); - } - - return undefined; -} +import { + EnvHttpProxyAgent, + type RequestInit, + fetch as undiciFetch, +} from "undici"; export const fetch = async (url: string, opts: RequestInit) => { // Merge timeout signal with any existing signal from opts @@ -23,7 +13,7 @@ export const fetch = async (url: string, opts: RequestInit) => { : timeoutSignal; return await undiciFetch(url, { - dispatcher: getProxyAgent(), + dispatcher: new EnvHttpProxyAgent(), ...opts, signal: mergedSignal, });