diff --git a/node_modules/make-fetch-happen/lib/cache/policy.js b/node_modules/make-fetch-happen/lib/cache/policy.js index 82ced1b08d2a2..189dce80ee68e 100644 --- a/node_modules/make-fetch-happen/lib/cache/policy.js +++ b/node_modules/make-fetch-happen/lib/cache/policy.js @@ -2,6 +2,19 @@ const CacheSemantics = require('http-cache-semantics') const Negotiator = require('negotiator') const ssri = require('ssri') +// HACK: negotiator lazy loads several of its own modules +// as a micro optimization. we need to be sure that they're +// in memory as soon as possible at startup so that we do +// not try to lazy load them after the directory has been +// retired during a self update of the npm CLI, we do this +// by calling all of the methods that trigger a lazy load +// on a fake instance. +const preloadNegotiator = new Negotiator({ headers: {} }) +preloadNegotiator.charsets() +preloadNegotiator.encodings() +preloadNegotiator.languages() +preloadNegotiator.mediaTypes() + // options passed to http-cache-semantics constructor const policyOptions = { shared: false, diff --git a/node_modules/make-fetch-happen/package.json b/node_modules/make-fetch-happen/package.json index 5c460d77389d0..af97a161c6088 100644 --- a/node_modules/make-fetch-happen/package.json +++ b/node_modules/make-fetch-happen/package.json @@ -1,6 +1,6 @@ { "name": "make-fetch-happen", - "version": "9.0.1", + "version": "9.0.2", "description": "Opinionated, caching, retrying fetch client", "main": "lib/index.js", "files": [ diff --git a/package-lock.json b/package-lock.json index 2ed06c341efd1..89a0baf1419dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4957,9 +4957,9 @@ } }, "node_modules/make-fetch-happen": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.1.tgz", - "integrity": "sha512-c2IxuRxsPKpW9ftCUnsbbAD3rBZNGsuRNwexAbWI8Eh9jlEVPrxZYK5ffgYRAVTQBegqrqR3DlWrsvvLhi4xQA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.2.tgz", + "integrity": "sha512-UkAWAuXPXSSlVviTjH2We20mtj1NnZW2Qq/oTY2dyMbRQ5CR3Xed3akCDMnM7j6axrMY80lhgM7loNE132PfAw==", "inBundle": true, "dependencies": { "agentkeepalive": "^4.1.3", @@ -13957,9 +13957,9 @@ } }, "make-fetch-happen": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.1.tgz", - "integrity": "sha512-c2IxuRxsPKpW9ftCUnsbbAD3rBZNGsuRNwexAbWI8Eh9jlEVPrxZYK5ffgYRAVTQBegqrqR3DlWrsvvLhi4xQA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.2.tgz", + "integrity": "sha512-UkAWAuXPXSSlVviTjH2We20mtj1NnZW2Qq/oTY2dyMbRQ5CR3Xed3akCDMnM7j6axrMY80lhgM7loNE132PfAw==", "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0",