diff --git a/packages/safe-chain/src/registryProxy/interceptors/pip/modifyPipInfo.spec.js b/packages/safe-chain/src/registryProxy/interceptors/pip/modifyPipInfo.spec.js index ef1fc86..46a872f 100644 --- a/packages/safe-chain/src/registryProxy/interceptors/pip/modifyPipInfo.spec.js +++ b/packages/safe-chain/src/registryProxy/interceptors/pip/modifyPipInfo.spec.js @@ -76,7 +76,7 @@ describe("modifyPipInfo", async () => { }) ); - const modified = modifyPipInfoResponse( + modifyPipInfoResponse( body, headers, "https://pypi.org/pypi/requests/json", diff --git a/packages/safe-chain/src/registryProxy/mitmRequestHandler.js b/packages/safe-chain/src/registryProxy/mitmRequestHandler.js index 1b76c81..b2d82e9 100644 --- a/packages/safe-chain/src/registryProxy/mitmRequestHandler.js +++ b/packages/safe-chain/src/registryProxy/mitmRequestHandler.js @@ -109,9 +109,12 @@ function getRequestPathAndQuery(url) { /** * @param {NodeJS.Dict} headers - * @returns {void} + * @returns {NodeJS.Dict} */ function normalizeRewrittenResponseHeaders(headers) { + /** @type {NodeJS.Dict} */ + const normalizedHeaders = { ...headers }; + for (const headerName of Object.keys(headers)) { const lowerHeaderName = headerName.toLowerCase(); if ( @@ -119,9 +122,11 @@ function normalizeRewrittenResponseHeaders(headers) { lowerHeaderName === "transfer-encoding" || lowerHeaderName === "content-encoding" ) { - delete headers[headerName]; + delete normalizedHeaders[headerName]; } } + + return normalizedHeaders; } /** @@ -235,9 +240,9 @@ function createProxyRequest(hostname, port, req, res, requestHandler) { // For rewritten responses, send the final body uncompressed. // This avoids mismatches between upstream compression metadata and the // rewritten payload on the wire. - normalizeRewrittenResponseHeaders(headers); - headers["content-length"] = String(buffer.byteLength); - res.writeHead(statusCode, headers); + const rewrittenHeaders = normalizeRewrittenResponseHeaders(headers); + rewrittenHeaders["content-length"] = String(buffer.byteLength); + res.writeHead(statusCode, rewrittenHeaders); res.end(buffer); }); } else {