diff --git a/package-lock.json b/package-lock.json index 001ba45..2523b32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@vscode/proxy-agent", - "version": "0.39.1", + "version": "0.40.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@vscode/proxy-agent", - "version": "0.39.1", + "version": "0.40.0", "license": "MIT", "dependencies": { "@tootallnate/once": "^3.0.0", @@ -271,9 +271,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", + "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", "dev": true, "license": "MIT", "dependencies": { @@ -1745,9 +1745,9 @@ "dev": true }, "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", + "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", "dev": true, "requires": { "balanced-match": "^1.0.0" diff --git a/src/index.ts b/src/index.ts index 3a5405a..40e3582 100644 --- a/src/index.ts +++ b/src/index.ts @@ -634,13 +634,13 @@ export function createFetchPatch(params: ProxyAgentParams, originalFetch: typeof } let previousAddCertsAgent: boolean | undefined = undefined; -let defaultAgent: undici.Agent | undefined = undefined; -let agentCache = new WeakMap(); -function getAgent(originalDispatcher: undici.Dispatcher | undefined, allowH2: boolean | undefined, requestCA: string | Buffer | (string | Buffer)[] | undefined, currentAddCerts: boolean): undici.Agent | undefined { +let defaultAgent: undici.Dispatcher.ComposedDispatcher | undefined = undefined; +let agentCache = new WeakMap(); +function getAgent(originalDispatcher: undici.Dispatcher | undefined, allowH2: boolean | undefined, requestCA: string | Buffer | (string | Buffer)[] | undefined, currentAddCerts: boolean): undici.Dispatcher.ComposedDispatcher | undefined { if (previousAddCertsAgent !== currentAddCerts) { previousAddCertsAgent = currentAddCerts; defaultAgent = undefined; - agentCache = new WeakMap(); + agentCache = new WeakMap(); } if (!originalDispatcher) { if (!defaultAgent) { @@ -659,13 +659,13 @@ function createAgent(allowH2: boolean | undefined, requestCA: string | Buffer | return new undici.Agent({ allowH2, connect: { ca: requestCA }, - }); + }).compose(undici.interceptors.cache({ type: 'private' })); } let previousAddCertsProxyAgent: boolean | undefined = undefined; let previousLookupProxyAuthorization: LookupProxyAuthorization | undefined = undefined; -let defaultProxyAgents = new Map(); -let proxyAgentCache = new WeakMap>(); +let defaultProxyAgents = new Map(); +let proxyAgentCache = new WeakMap>(); function getProxyAgent( params: ProxyAgentParams, originalDispatcher: undici.Dispatcher | undefined, @@ -674,13 +674,13 @@ function getProxyAgent( requestCA: string | Buffer | (string | Buffer)[] | undefined, proxyCA: string | Buffer | (string | Buffer)[] | undefined, currentAddCerts: boolean, -): undici.ProxyAgent { +): undici.Dispatcher.ComposedDispatcher { const shouldClearCache = previousAddCertsProxyAgent !== currentAddCerts || previousLookupProxyAuthorization !== params.lookupProxyAuthorization; if (shouldClearCache) { previousAddCertsProxyAgent = currentAddCerts; previousLookupProxyAuthorization = params.lookupProxyAuthorization; - defaultProxyAgents = new Map(); - proxyAgentCache = new WeakMap>(); + defaultProxyAgents = new Map(); + proxyAgentCache = new WeakMap>(); } if (!originalDispatcher) { @@ -692,7 +692,7 @@ function getProxyAgent( let dispatcherCache = proxyAgentCache.get(originalDispatcher); if (!dispatcherCache) { - dispatcherCache = new Map(); + dispatcherCache = new Map(); proxyAgentCache.set(originalDispatcher, dispatcherCache); } @@ -708,7 +708,7 @@ function createProxyAgent( allowH2: boolean | undefined, requestCA: string | Buffer | (string | Buffer)[] | undefined, proxyCA: string | Buffer | (string | Buffer)[] | undefined, -): undici.ProxyAgent { +): undici.Dispatcher.ComposedDispatcher { return new undici.ProxyAgent({ uri: proxyURL, allowH2, @@ -783,7 +783,7 @@ function createProxyAgent( })(); }; }), - }); + }).compose(undici.interceptors.cache({ type: 'private' })); } export function createWebSocketPatch(params: ProxyAgentParams, originalWebSocket: typeof globalThis.WebSocket, resolveProxyURL: (url: string) => Promise) {