-
-
Notifications
You must be signed in to change notification settings - Fork 34.7k
Description
Version
v25.4.0 - v25.6.0
Platform
Linux ubuntu-24.04 6.17.0-14-generic #14~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jan 15 15:52:10 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Subsystem
url
What steps will reproduce the bug?
Run example from Legacy URL API url.resolve(from, to)
const url = require('node:url');
url.resolve('/one/two/three', 'four'); // '/one/two/four'
url.resolve('http://example.com/', '/one'); // 'http://example.com/one'
url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'How often does it reproduce? Is there a required condition?
For the above steps, it always reproduces in Node.js 25.4.0 - 25.6.0. It is a regression from Node.js 25.3.0.
If the url.resolve() call is embedded in an npm package, it depends how the corresponding module is called, whether or not a deprecation warning appears. See the additional information section below for examples.
What is the expected behavior? Why is that the expected behavior?
The example with only url.resolve() should run without producing a deprecation warning.
The history section of url.resolve(from, to) states that the deprecation was revoked in v15.13.0, v14.17.0 and there is no entry for any higher version.
DEP0169 lists url.parse() explicitly. It does not include any direct reference to url.resolve().
What do you see instead?
$ node url-resolve.js
(node:5802) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
(Use `node --trace-deprecation ...` to show where the warning was created)
Additional information
I originally noticed this with Cypress, on Ubuntu 24.04.3 LTS, Node.js 25.6.0, with steps to reproduce:
cd $(mktemp -d)
npm install cypress
npx cypress install --forcewhere the call is from /node_modules/cypress/dist/tasks/download.js.
The following steps however do NOT cause any deprecation warning, even though download is also run:
rm -rf ~/.cache/Cypress
cd $(mktemp -d)
npm install cypress