From cedeafb8a413efa75b0b5846949aa8d5848c6d55 Mon Sep 17 00:00:00 2001 From: Thomas Scholtes Date: Sun, 8 Jun 2025 20:29:02 +0200 Subject: [PATCH 1/8] docs: Explain workaround for ES module namespace imports (#2811) Under certain circumstances, `nock` fails to intercept requests made by ES modules (e.g. #2461). We explain the issue and provide a workaround in the readme. Co-authored-by: Michael Solomon --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index cdce3fff9..01d5f4a5a 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ For instance, if a module performs HTTP requests to a CouchDB server or makes HT - [Verifying recorded fixtures](#verifying-recorded-fixtures) - [Example](#example-1) - [Common issues](#common-issues) + - [Requests made by ES Modules are not intercepted](#requests-made-by-es-modules-are-not-intercepted) - [Axios](#axios) - [Memory issues with Jest](#memory-issues-with-jest) - [Debugging](#debugging) @@ -1549,6 +1550,14 @@ This is how it's handled in Nock itself (see [#1523][]). [got]: https://github.com/sindresorhus/got [#1523]: https://github.com/nock/nock/issues/1523 +### Requests made by ES Modules are not intercepted + +When an ES module imports `request` with a namespaced import like `import * as +http from "node:http"`, and the module is imported before `nock`, requests made +by this module are not intercepted. You can fix this by telling Node to preload +`nock` using the `--import=nock` [CLI option](https://nodejs.org/api/cli.html#--importmodule) +or setting the `NODE_OPTIONS=--import=nock` environment variable. + ### Axios To use Nock with [Axios][], you may need to configure Axios to use the Node From cc0466cd8e061b0e7ed4f748f97b8d2369d02e82 Mon Sep 17 00:00:00 2001 From: Evan Kohilas Date: Thu, 17 Jul 2025 02:51:11 +1000 Subject: [PATCH 2/8] update contributing for new test runner (#2886) --- CONTRIBUTING.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e224f83b7..f20f24f0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -102,18 +102,20 @@ $ npm test ### Running only a single test -When you're writing a test for a specific purpose, it may be useful to only run that test. In order to do this, you can pass a `only` option as the second argument to the [`tap`](https://www.node-tap.org/) testrunner. For instance in `tests/example.js`, like so: +When you're writing a test for a specific purpose, it may be useful to only run that test. To do so, add `.only` on that test function, like so: ```js -test('description', { only: true }, t => { +test.only('description', t => { // ... }) ``` -And then: +Then when that test file is run, only that test will trigger. + +If you only want to run a single test file, specify the file name into the test runner: ```sh -$ tap --only tests/example_file.js +$ npx mocha tests/example_file.js ``` ## Release Process From 2bcaf0fe277221c8a7028695828ef686bcca96c4 Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Sat, 19 Jul 2025 00:21:44 +0300 Subject: [PATCH 3/8] fix: upgrade interceptors --- package-lock.json | 464 ++++++++++++++++++------------------ package.json | 2 +- tests/got/test_intercept.js | 39 +++ tests/test_unix_socket.js | 76 ++++++ 4 files changed, 346 insertions(+), 235 deletions(-) create mode 100644 tests/test_unix_socket.js diff --git a/package-lock.json b/package-lock.json index b7d755e8e..262225e20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0-development", "license": "MIT", "dependencies": { - "@mswjs/interceptors": "^0.38.7", + "@mswjs/interceptors": "^0.39.3", "json-stringify-safe": "^5.0.1", "propagate": "^2.0.0" }, @@ -1457,9 +1457,9 @@ } }, "node_modules/@mswjs/interceptors": { - "version": "0.38.7", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.38.7.tgz", - "integrity": "sha512-Jkb27iSn7JPdkqlTqKfhncFfnEZsIJVYxsFbUSWEkxdIPdsyngrhoDBk0/BGD2FQcRH99vlRrkHpNTyKqI+0/w==", + "version": "0.39.3", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.39.3.tgz", + "integrity": "sha512-9bw/wBL7pblsnOCIqvn1788S9o4h+cC5HWXg0Xhh0dOzsZ53IyfmBM+FYqpDDPbm0xjCqEqvCITloF3Dm4TXRQ==", "license": "MIT", "dependencies": { "@open-draft/deferred-promise": "^2.2.0", @@ -9851,7 +9851,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -9868,7 +9868,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { "version": "6.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -9880,13 +9880,13 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -9903,7 +9903,7 @@ }, "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -9918,7 +9918,7 @@ }, "node_modules/npm/node_modules/@isaacs/fs-minipass": { "version": "4.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -9930,13 +9930,13 @@ }, "node_modules/npm/node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -9952,7 +9952,7 @@ }, "node_modules/npm/node_modules/@npmcli/arborist": { "version": "8.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10001,7 +10001,7 @@ }, "node_modules/npm/node_modules/@npmcli/config": { "version": "9.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10020,7 +10020,7 @@ }, "node_modules/npm/node_modules/@npmcli/fs": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10032,7 +10032,7 @@ }, "node_modules/npm/node_modules/@npmcli/git": { "version": "6.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10052,7 +10052,7 @@ }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10068,7 +10068,7 @@ }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { "version": "4.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10083,7 +10083,7 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { "version": "8.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10099,7 +10099,7 @@ }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator/node_modules/pacote": { "version": "20.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10130,7 +10130,7 @@ }, "node_modules/npm/node_modules/@npmcli/name-from-folder": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10139,7 +10139,7 @@ }, "node_modules/npm/node_modules/@npmcli/node-gyp": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10148,7 +10148,7 @@ }, "node_modules/npm/node_modules/@npmcli/package-json": { "version": "6.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10166,7 +10166,7 @@ }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { "version": "8.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10178,7 +10178,7 @@ }, "node_modules/npm/node_modules/@npmcli/query": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10190,7 +10190,7 @@ }, "node_modules/npm/node_modules/@npmcli/redact": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10199,7 +10199,7 @@ }, "node_modules/npm/node_modules/@npmcli/run-script": { "version": "9.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10216,17 +10216,16 @@ }, "node_modules/npm/node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", - "optional": true, "engines": { "node": ">=14" } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { "version": "0.3.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -10235,7 +10234,7 @@ }, "node_modules/npm/node_modules/@sigstore/tuf": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -10248,7 +10247,7 @@ }, "node_modules/npm/node_modules/@tufjs/canonical-json": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10257,7 +10256,7 @@ }, "node_modules/npm/node_modules/abbrev": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10266,7 +10265,7 @@ }, "node_modules/npm/node_modules/agent-base": { "version": "7.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10278,7 +10277,7 @@ }, "node_modules/npm/node_modules/aggregate-error": { "version": "3.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10291,7 +10290,7 @@ }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10300,7 +10299,7 @@ }, "node_modules/npm/node_modules/ansi-styles": { "version": "6.2.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10312,25 +10311,25 @@ }, "node_modules/npm/node_modules/aproba": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/archy": { "version": "1.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/bin-links": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10346,7 +10345,7 @@ }, "node_modules/npm/node_modules/binary-extensions": { "version": "2.3.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10358,7 +10357,7 @@ }, "node_modules/npm/node_modules/brace-expansion": { "version": "2.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10367,7 +10366,7 @@ }, "node_modules/npm/node_modules/cacache": { "version": "19.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10390,7 +10389,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/chownr": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BlueOak-1.0.0", "engines": { @@ -10399,7 +10398,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/minizlib": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10412,7 +10411,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "bin": { @@ -10427,7 +10426,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/p-map": { "version": "7.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10439,7 +10438,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/tar": { "version": "7.4.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10456,7 +10455,7 @@ }, "node_modules/npm/node_modules/cacache/node_modules/yallist": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BlueOak-1.0.0", "engines": { @@ -10465,7 +10464,7 @@ }, "node_modules/npm/node_modules/chalk": { "version": "5.3.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10477,7 +10476,7 @@ }, "node_modules/npm/node_modules/chownr": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10486,7 +10485,7 @@ }, "node_modules/npm/node_modules/ci-info": { "version": "4.1.0", - "dev": true, + "extraneous": true, "funding": [ { "type": "github", @@ -10501,7 +10500,7 @@ }, "node_modules/npm/node_modules/cidr-regex": { "version": "4.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -10513,7 +10512,7 @@ }, "node_modules/npm/node_modules/clean-stack": { "version": "2.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10522,7 +10521,7 @@ }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10535,7 +10534,7 @@ }, "node_modules/npm/node_modules/cmd-shim": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10544,7 +10543,7 @@ }, "node_modules/npm/node_modules/color-convert": { "version": "2.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10556,19 +10555,19 @@ }, "node_modules/npm/node_modules/color-name": { "version": "1.1.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10582,7 +10581,7 @@ }, "node_modules/npm/node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10597,7 +10596,7 @@ }, "node_modules/npm/node_modules/cssesc": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "bin": { @@ -10609,7 +10608,7 @@ }, "node_modules/npm/node_modules/debug": { "version": "4.3.7", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10626,7 +10625,7 @@ }, "node_modules/npm/node_modules/diff": { "version": "5.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-3-Clause", "engines": { @@ -10635,29 +10634,28 @@ }, "node_modules/npm/node_modules/eastasianwidth": { "version": "0.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/emoji-regex": { "version": "8.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/encoding": { "version": "0.1.13", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", - "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/npm/node_modules/env-paths": { "version": "2.2.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10666,19 +10664,19 @@ }, "node_modules/npm/node_modules/err-code": { "version": "2.0.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0" }, "node_modules/npm/node_modules/fastest-levenshtein": { "version": "1.0.16", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10687,7 +10685,7 @@ }, "node_modules/npm/node_modules/foreground-child": { "version": "3.3.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10703,7 +10701,7 @@ }, "node_modules/npm/node_modules/fs-minipass": { "version": "3.0.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10715,7 +10713,7 @@ }, "node_modules/npm/node_modules/glob": { "version": "10.4.5", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10735,13 +10733,13 @@ }, "node_modules/npm/node_modules/graceful-fs": { "version": "4.2.11", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { "version": "8.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10753,13 +10751,13 @@ }, "node_modules/npm/node_modules/http-cache-semantics": { "version": "4.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { "version": "7.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10772,7 +10770,7 @@ }, "node_modules/npm/node_modules/https-proxy-agent": { "version": "7.0.5", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10785,10 +10783,9 @@ }, "node_modules/npm/node_modules/iconv-lite": { "version": "0.6.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", - "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -10798,7 +10795,7 @@ }, "node_modules/npm/node_modules/ignore-walk": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10810,7 +10807,7 @@ }, "node_modules/npm/node_modules/imurmurhash": { "version": "0.1.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10819,7 +10816,7 @@ }, "node_modules/npm/node_modules/indent-string": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10828,7 +10825,7 @@ }, "node_modules/npm/node_modules/ini": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -10837,7 +10834,7 @@ }, "node_modules/npm/node_modules/init-package-json": { "version": "7.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10855,7 +10852,7 @@ }, "node_modules/npm/node_modules/ip-address": { "version": "9.0.5", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -10868,7 +10865,7 @@ }, "node_modules/npm/node_modules/ip-regex": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10880,7 +10877,7 @@ }, "node_modules/npm/node_modules/is-cidr": { "version": "5.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -10892,7 +10889,7 @@ }, "node_modules/npm/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10901,19 +10898,19 @@ }, "node_modules/npm/node_modules/is-lambda": { "version": "1.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/isexe": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { "version": "3.4.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -10928,13 +10925,13 @@ }, "node_modules/npm/node_modules/jsbn": { "version": "1.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/json-parse-even-better-errors": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -10943,7 +10940,7 @@ }, "node_modules/npm/node_modules/json-stringify-nice": { "version": "1.1.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "funding": { @@ -10952,28 +10949,28 @@ }, "node_modules/npm/node_modules/jsonparse": { "version": "1.3.1", - "dev": true, "engines": [ "node >= 0.2.0" ], + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff": { "version": "6.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/just-diff-apply": { "version": "5.5.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { "version": "9.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -10986,7 +10983,7 @@ }, "node_modules/npm/node_modules/libnpmdiff": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11005,7 +11002,7 @@ }, "node_modules/npm/node_modules/libnpmexec": { "version": "9.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11026,7 +11023,7 @@ }, "node_modules/npm/node_modules/libnpmfund": { "version": "6.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11038,7 +11035,7 @@ }, "node_modules/npm/node_modules/libnpmhook": { "version": "11.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11051,7 +11048,7 @@ }, "node_modules/npm/node_modules/libnpmorg": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11064,7 +11061,7 @@ }, "node_modules/npm/node_modules/libnpmpack": { "version": "8.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11079,7 +11076,7 @@ }, "node_modules/npm/node_modules/libnpmpublish": { "version": "10.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11098,7 +11095,7 @@ }, "node_modules/npm/node_modules/libnpmsearch": { "version": "8.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11110,7 +11107,7 @@ }, "node_modules/npm/node_modules/libnpmteam": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11123,7 +11120,7 @@ }, "node_modules/npm/node_modules/libnpmversion": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11139,13 +11136,13 @@ }, "node_modules/npm/node_modules/lru-cache": { "version": "10.4.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/make-fetch-happen": { "version": "14.0.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11167,7 +11164,7 @@ }, "node_modules/npm/node_modules/make-fetch-happen/node_modules/negotiator": { "version": "1.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -11176,7 +11173,7 @@ }, "node_modules/npm/node_modules/minimatch": { "version": "9.0.5", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11191,7 +11188,7 @@ }, "node_modules/npm/node_modules/minipass": { "version": "7.1.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11200,7 +11197,7 @@ }, "node_modules/npm/node_modules/minipass-collect": { "version": "2.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11212,7 +11209,7 @@ }, "node_modules/npm/node_modules/minipass-fetch": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11229,7 +11226,7 @@ }, "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11242,7 +11239,7 @@ }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11254,7 +11251,7 @@ }, "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11266,7 +11263,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline": { "version": "1.2.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11278,7 +11275,7 @@ }, "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11290,7 +11287,7 @@ }, "node_modules/npm/node_modules/minipass-sized": { "version": "1.0.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11302,7 +11299,7 @@ }, "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11314,7 +11311,7 @@ }, "node_modules/npm/node_modules/minizlib": { "version": "2.1.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11327,7 +11324,7 @@ }, "node_modules/npm/node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11339,7 +11336,7 @@ }, "node_modules/npm/node_modules/mkdirp": { "version": "1.0.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "bin": { @@ -11351,13 +11348,13 @@ }, "node_modules/npm/node_modules/ms": { "version": "2.1.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/mute-stream": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11366,7 +11363,7 @@ }, "node_modules/npm/node_modules/negotiator": { "version": "0.6.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -11375,7 +11372,7 @@ }, "node_modules/npm/node_modules/node-gyp": { "version": "10.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11399,7 +11396,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/agent": { "version": "2.2.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11415,7 +11412,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": { "version": "3.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11427,7 +11424,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11436,7 +11433,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { "version": "18.0.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11459,7 +11456,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/isexe": { "version": "3.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11468,7 +11465,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { "version": "13.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11491,7 +11488,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": { "version": "3.0.5", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11508,7 +11505,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { "version": "7.2.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11523,7 +11520,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { "version": "4.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11532,7 +11529,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/ssri": { "version": "10.0.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11544,7 +11541,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11556,7 +11553,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11568,7 +11565,7 @@ }, "node_modules/npm/node_modules/node-gyp/node_modules/which": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11583,7 +11580,7 @@ }, "node_modules/npm/node_modules/nopt": { "version": "8.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11598,7 +11595,7 @@ }, "node_modules/npm/node_modules/nopt/node_modules/abbrev": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11607,7 +11604,7 @@ }, "node_modules/npm/node_modules/normalize-package-data": { "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -11621,7 +11618,7 @@ }, "node_modules/npm/node_modules/npm-audit-report": { "version": "6.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11630,7 +11627,7 @@ }, "node_modules/npm/node_modules/npm-bundled": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11642,7 +11639,7 @@ }, "node_modules/npm/node_modules/npm-install-checks": { "version": "7.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { @@ -11654,7 +11651,7 @@ }, "node_modules/npm/node_modules/npm-normalize-package-bin": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11663,7 +11660,7 @@ }, "node_modules/npm/node_modules/npm-package-arg": { "version": "12.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11678,7 +11675,7 @@ }, "node_modules/npm/node_modules/npm-packlist": { "version": "9.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11690,7 +11687,7 @@ }, "node_modules/npm/node_modules/npm-pick-manifest": { "version": "10.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11705,7 +11702,7 @@ }, "node_modules/npm/node_modules/npm-profile": { "version": "11.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11718,7 +11715,7 @@ }, "node_modules/npm/node_modules/npm-registry-fetch": { "version": "18.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11737,7 +11734,7 @@ }, "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11750,7 +11747,7 @@ }, "node_modules/npm/node_modules/npm-user-validate": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-2-Clause", "engines": { @@ -11759,7 +11756,7 @@ }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11774,13 +11771,13 @@ }, "node_modules/npm/node_modules/package-json-from-dist": { "version": "1.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BlueOak-1.0.0" }, "node_modules/npm/node_modules/pacote": { "version": "19.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11811,7 +11808,7 @@ }, "node_modules/npm/node_modules/parse-conflict-json": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11825,7 +11822,7 @@ }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -11834,7 +11831,7 @@ }, "node_modules/npm/node_modules/path-scurry": { "version": "1.11.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -11850,7 +11847,7 @@ }, "node_modules/npm/node_modules/postcss-selector-parser": { "version": "6.1.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11863,7 +11860,7 @@ }, "node_modules/npm/node_modules/proc-log": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11872,7 +11869,7 @@ }, "node_modules/npm/node_modules/proggy": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11881,7 +11878,7 @@ }, "node_modules/npm/node_modules/promise-all-reject-late": { "version": "1.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "funding": { @@ -11890,7 +11887,7 @@ }, "node_modules/npm/node_modules/promise-call-limit": { "version": "3.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "funding": { @@ -11899,13 +11896,13 @@ }, "node_modules/npm/node_modules/promise-inflight": { "version": "1.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -11918,7 +11915,7 @@ }, "node_modules/npm/node_modules/promzard": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11930,7 +11927,7 @@ }, "node_modules/npm/node_modules/qrcode-terminal": { "version": "0.12.0", - "dev": true, + "extraneous": true, "inBundle": true, "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" @@ -11938,7 +11935,7 @@ }, "node_modules/npm/node_modules/read": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11950,7 +11947,7 @@ }, "node_modules/npm/node_modules/read-cmd-shim": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -11959,7 +11956,7 @@ }, "node_modules/npm/node_modules/read-package-json-fast": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11972,7 +11969,7 @@ }, "node_modules/npm/node_modules/retry": { "version": "0.12.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -11981,7 +11978,7 @@ }, "node_modules/npm/node_modules/rimraf": { "version": "5.0.10", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -11996,14 +11993,13 @@ }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", - "dev": true, + "extraneous": true, "inBundle": true, - "license": "MIT", - "optional": true + "license": "MIT" }, "node_modules/npm/node_modules/semver": { "version": "7.6.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "bin": { @@ -12015,7 +12011,7 @@ }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12027,7 +12023,7 @@ }, "node_modules/npm/node_modules/shebang-regex": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -12036,7 +12032,7 @@ }, "node_modules/npm/node_modules/signal-exit": { "version": "4.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -12048,7 +12044,7 @@ }, "node_modules/npm/node_modules/sigstore": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12065,7 +12061,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12077,7 +12073,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/core": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "engines": { @@ -12086,7 +12082,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12103,7 +12099,7 @@ }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { "version": "2.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12117,7 +12113,7 @@ }, "node_modules/npm/node_modules/smart-buffer": { "version": "4.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -12127,7 +12123,7 @@ }, "node_modules/npm/node_modules/socks": { "version": "2.8.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12141,7 +12137,7 @@ }, "node_modules/npm/node_modules/socks-proxy-agent": { "version": "8.0.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12155,7 +12151,7 @@ }, "node_modules/npm/node_modules/spdx-correct": { "version": "3.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12165,7 +12161,7 @@ }, "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12175,13 +12171,13 @@ }, "node_modules/npm/node_modules/spdx-exceptions": { "version": "2.5.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12191,19 +12187,19 @@ }, "node_modules/npm/node_modules/spdx-license-ids": { "version": "3.0.20", - "dev": true, + "extraneous": true, "inBundle": true, "license": "CC0-1.0" }, "node_modules/npm/node_modules/sprintf-js": { "version": "1.1.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/npm/node_modules/ssri": { "version": "12.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12215,7 +12211,7 @@ }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12230,7 +12226,7 @@ "node_modules/npm/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12244,7 +12240,7 @@ }, "node_modules/npm/node_modules/strip-ansi": { "version": "6.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12257,7 +12253,7 @@ "node_modules/npm/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12269,7 +12265,7 @@ }, "node_modules/npm/node_modules/supports-color": { "version": "9.4.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -12281,7 +12277,7 @@ }, "node_modules/npm/node_modules/tar": { "version": "6.2.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12298,7 +12294,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12310,7 +12306,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12322,7 +12318,7 @@ }, "node_modules/npm/node_modules/tar/node_modules/minipass": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -12331,19 +12327,19 @@ }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/tiny-relative-date": { "version": "1.3.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -12352,7 +12348,7 @@ }, "node_modules/npm/node_modules/tuf-js": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12366,7 +12362,7 @@ }, "node_modules/npm/node_modules/tuf-js/node_modules/@tufjs/models": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12379,7 +12375,7 @@ }, "node_modules/npm/node_modules/unique-filename": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12391,7 +12387,7 @@ }, "node_modules/npm/node_modules/unique-slug": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12403,13 +12399,13 @@ }, "node_modules/npm/node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/validate-npm-package-license": { "version": "3.0.4", - "dev": true, + "extraneous": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { @@ -12419,7 +12415,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12429,7 +12425,7 @@ }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "6.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -12438,13 +12434,13 @@ }, "node_modules/npm/node_modules/walk-up-path": { "version": "3.0.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, "node_modules/npm/node_modules/which": { "version": "5.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12459,7 +12455,7 @@ }, "node_modules/npm/node_modules/which/node_modules/isexe": { "version": "3.1.1", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "engines": { @@ -12468,7 +12464,7 @@ }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12486,7 +12482,7 @@ "node_modules/npm/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12503,7 +12499,7 @@ }, "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12518,7 +12514,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "engines": { @@ -12530,13 +12526,13 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "9.2.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT" }, "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { "version": "5.1.2", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12553,7 +12549,7 @@ }, "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "MIT", "dependencies": { @@ -12568,7 +12564,7 @@ }, "node_modules/npm/node_modules/write-file-atomic": { "version": "6.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC", "dependencies": { @@ -12581,7 +12577,7 @@ }, "node_modules/npm/node_modules/yallist": { "version": "4.0.0", - "dev": true, + "extraneous": true, "inBundle": true, "license": "ISC" }, diff --git a/package.json b/package.json index 168c6d3d8..f3399cfce 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "main": "./index.js", "types": "types", "dependencies": { - "@mswjs/interceptors": "^0.38.7", + "@mswjs/interceptors": "^0.39.3", "json-stringify-safe": "^5.0.1", "propagate": "^2.0.0" }, diff --git a/tests/got/test_intercept.js b/tests/got/test_intercept.js index fcfde1d35..654020a9e 100644 --- a/tests/got/test_intercept.js +++ b/tests/got/test_intercept.js @@ -1156,4 +1156,43 @@ describe('Intercept', () => { done() }) }) + + it('supports requests with more than default maximum header fields count', done => { + let reqHeaders + + nock('http://localhost') + .get('/irrelevant') + .reply(function () { + reqHeaders = this.req.headers + return [200] + }) + + /** + * By default, Node.js HTTP parser defines 32 as the maximum header fields count. + * Each request also has "connection" and "host" headers added automatically. + * @see https://github.com/nodejs/node/blob/229cc3be28eab3153c16bc55bc67d1e81c4a7067/src/node_http_parser.cc#L83-L84 + */ + const headersPairs = Object.fromEntries( + Array.from({ length: 60 }) + .map((_, index) => { + return [`x-header-${index}`, index.toString()] + }) + .sort(), + ) + + http.get( + 'http://localhost/irrelevant', + { + headers: headersPairs, + }, + () => { + expect(reqHeaders).to.deep.equal({ + connection: 'close', + host: 'localhost', + ...headersPairs, + }) + done() + }, + ) + }) }) diff --git a/tests/test_unix_socket.js b/tests/test_unix_socket.js new file mode 100644 index 000000000..0d8960be9 --- /dev/null +++ b/tests/test_unix_socket.js @@ -0,0 +1,76 @@ +const http = require('node:http'); +const { tmpdir } = require('node:os'); +const nock = require('..'); +const { expect } = require('chai') +const fs = require('node:fs'); + +const socketPath = tmpdir() + '/socket.sock'; +let server; + +before(async () => { + server = http.createServer((req, res) => { + res.end('hello world'); + }); + + await new Promise((resolve, reject) => { + server.listen(socketPath, (err) => { + if (err) reject(err); + else resolve(); + }); + }); +}); + +after(async () => { + await new Promise((resolve, reject) => { + server.close((err) => { + if (err) reject(err); + else resolve(); + }); + }); + + try { + fs.unlinkSync(socketPath); + } catch (err) { + if (err.code !== 'ENOENT') throw err; + } +}); + +describe('Unix socket', () => { + it('dispatches a GET request to a Unix socket', async () => { + const response = await new Promise((resolve, reject) => { + const request = http.get({ + socketPath, + path: '/test-get', + }, (res) => { + let data = ''; + res.on('data', chunk => data += chunk); + res.on('end', () => resolve(data)); + }); + + request.on('error', reject); + }); + + expect(response).to.equal('hello world'); + }); + + it('intercepts a GET request to a Unix socket', async () => { + nock('http://unix:') + .get('/test-get') + .reply(200, 'hello world'); + + const response = await new Promise((resolve, reject) => { + const request = http.get({ + socketPath, + path: '/test-get', + }, (res) => { + let data = ''; + res.on('data', chunk => data += chunk); + res.on('end', () => resolve(data)); + }); + + request.on('error', reject); + }); + + expect(response).to.equal('hello world'); + }); +}); \ No newline at end of file From 07647fbd760ecd97a05dcae45ee23eb33acf8b62 Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Sat, 19 Jul 2025 00:25:32 +0300 Subject: [PATCH 4/8] fix --- tests/got/test_intercept.js | 4 +- tests/test_unix_socket.js | 106 +++++++++++++++++++----------------- 2 files changed, 57 insertions(+), 53 deletions(-) diff --git a/tests/got/test_intercept.js b/tests/got/test_intercept.js index 654020a9e..f08f32f16 100644 --- a/tests/got/test_intercept.js +++ b/tests/got/test_intercept.js @@ -1174,9 +1174,7 @@ describe('Intercept', () => { */ const headersPairs = Object.fromEntries( Array.from({ length: 60 }) - .map((_, index) => { - return [`x-header-${index}`, index.toString()] - }) + .map((_, index) => [`x-header-${index}`, index.toString()]) .sort(), ) diff --git a/tests/test_unix_socket.js b/tests/test_unix_socket.js index 0d8960be9..f4a10c9df 100644 --- a/tests/test_unix_socket.js +++ b/tests/test_unix_socket.js @@ -1,76 +1,82 @@ -const http = require('node:http'); -const { tmpdir } = require('node:os'); -const nock = require('..'); +'use strict' + +const http = require('node:http') +const { tmpdir } = require('node:os') +const nock = require('..') const { expect } = require('chai') -const fs = require('node:fs'); +const fs = require('node:fs') -const socketPath = tmpdir() + '/socket.sock'; -let server; +const socketPath = `${tmpdir()}/socket.sock` +let server before(async () => { server = http.createServer((req, res) => { - res.end('hello world'); - }); + res.end('hello world') + }) await new Promise((resolve, reject) => { - server.listen(socketPath, (err) => { - if (err) reject(err); - else resolve(); - }); - }); -}); + server.listen(socketPath, err => { + if (err) reject(err) + else resolve() + }) + }) +}) after(async () => { await new Promise((resolve, reject) => { - server.close((err) => { - if (err) reject(err); - else resolve(); - }); - }); + server.close(err => { + if (err) reject(err) + else resolve() + }) + }) try { - fs.unlinkSync(socketPath); + fs.unlinkSync(socketPath) } catch (err) { - if (err.code !== 'ENOENT') throw err; + if (err.code !== 'ENOENT') throw err } -}); +}) describe('Unix socket', () => { it('dispatches a GET request to a Unix socket', async () => { const response = await new Promise((resolve, reject) => { - const request = http.get({ - socketPath, - path: '/test-get', - }, (res) => { - let data = ''; - res.on('data', chunk => data += chunk); - res.on('end', () => resolve(data)); - }); + const request = http.get( + { + socketPath, + path: '/test-get', + }, + res => { + let data = '' + res.on('data', chunk => (data += chunk)) + res.on('end', () => resolve(data)) + }, + ) - request.on('error', reject); - }); + request.on('error', reject) + }) - expect(response).to.equal('hello world'); - }); + expect(response).to.equal('hello world') + }) it('intercepts a GET request to a Unix socket', async () => { - nock('http://unix:') - .get('/test-get') - .reply(200, 'hello world'); + nock('http://unix:').get('/test-get').reply(200, 'hello world') const response = await new Promise((resolve, reject) => { - const request = http.get({ - socketPath, - path: '/test-get', - }, (res) => { - let data = ''; - res.on('data', chunk => data += chunk); - res.on('end', () => resolve(data)); - }); + const request = http.get( + { + socketPath, + path: '/test-get', + }, + res => { + let data = '' + res.on('data', chunk => (data += chunk)) + res.on('end', () => resolve(data)) + }, + ) - request.on('error', reject); - }); + request.on('error', reject) + }) - expect(response).to.equal('hello world'); - }); -}); \ No newline at end of file + expect(response).to.equal('hello world') + }) +}) From b4514ca5855edd40dbbeeec8ddf0538d86bf9469 Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Sat, 19 Jul 2025 02:02:15 +0300 Subject: [PATCH 5/8] fix --- tests/test_unix_socket.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_unix_socket.js b/tests/test_unix_socket.js index f4a10c9df..b73d3fa5a 100644 --- a/tests/test_unix_socket.js +++ b/tests/test_unix_socket.js @@ -5,8 +5,9 @@ const { tmpdir } = require('node:os') const nock = require('..') const { expect } = require('chai') const fs = require('node:fs') +const path = require('node:path') -const socketPath = `${tmpdir()}/socket.sock` +const socketPath = path.join(tmpdir(), 'socket.sock') let server before(async () => { From b77f8650b76ab54df00eb90de1a896871073ab73 Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Sat, 19 Jul 2025 02:09:22 +0300 Subject: [PATCH 6/8] test --- tests/test_unix_socket.js | 44 +++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/test_unix_socket.js b/tests/test_unix_socket.js index b73d3fa5a..c0adf8b54 100644 --- a/tests/test_unix_socket.js +++ b/tests/test_unix_socket.js @@ -10,35 +10,35 @@ const path = require('node:path') const socketPath = path.join(tmpdir(), 'socket.sock') let server -before(async () => { - server = http.createServer((req, res) => { - res.end('hello world') - }) +describe('Unix socket', () => { + before(async () => { + server = http.createServer((req, res) => { + res.end('hello world') + }) - await new Promise((resolve, reject) => { - server.listen(socketPath, err => { - if (err) reject(err) - else resolve() + await new Promise((resolve, reject) => { + server.listen(socketPath, err => { + if (err) reject(err) + else resolve() + }) }) }) -}) -after(async () => { - await new Promise((resolve, reject) => { - server.close(err => { - if (err) reject(err) - else resolve() + after(async () => { + await new Promise((resolve, reject) => { + server.close(err => { + if (err) reject(err) + else resolve() + }) }) - }) - try { - fs.unlinkSync(socketPath) - } catch (err) { - if (err.code !== 'ENOENT') throw err - } -}) + try { + fs.unlinkSync(socketPath) + } catch (err) { + if (err.code !== 'ENOENT') throw err + } + }) -describe('Unix socket', () => { it('dispatches a GET request to a Unix socket', async () => { const response = await new Promise((resolve, reject) => { const request = http.get( From eeb09247bd5c2f576d65ce553a735862cd520407 Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Sat, 19 Jul 2025 02:13:36 +0300 Subject: [PATCH 7/8] fix --- tests/test_unix_socket.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/test_unix_socket.js b/tests/test_unix_socket.js index c0adf8b54..ff5bdc75e 100644 --- a/tests/test_unix_socket.js +++ b/tests/test_unix_socket.js @@ -6,10 +6,16 @@ const nock = require('..') const { expect } = require('chai') const fs = require('node:fs') const path = require('node:path') +const os = require('node:os') const socketPath = path.join(tmpdir(), 'socket.sock') let server +if (os.platform() === 'win32') { + console.log('Skipping Unix socket tests on Windows') + return +} + describe('Unix socket', () => { before(async () => { server = http.createServer((req, res) => { From 0db794b7b73ed152c99a4aa8e217ab4f843f7980 Mon Sep 17 00:00:00 2001 From: Michael Solomon Date: Sat, 19 Jul 2025 02:32:45 +0300 Subject: [PATCH 8/8] fix --- tests/test_unix_socket.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_unix_socket.js b/tests/test_unix_socket.js index ff5bdc75e..f12c39b3f 100644 --- a/tests/test_unix_socket.js +++ b/tests/test_unix_socket.js @@ -12,7 +12,7 @@ const socketPath = path.join(tmpdir(), 'socket.sock') let server if (os.platform() === 'win32') { - console.log('Skipping Unix socket tests on Windows') + // Skipping Unix socket tests on Windows return }