facebook / react · Issue No. 37639
React DevTools standalone package: https://github.com/react/react/tree/main/packages/react-devtools-core
react-devtools-core@8.0.0
The published dist/standalone.js contains a frozen copy of ws@7.5.10.react-devtools-core declares ws as ^7, and a fresh npm installation now
resolves that external dependency to ws@7.5.13, but the standalone server
executes the copy compiled into its bundle instead.
The current repository lockfile resolves ws@^7 to 7.5.10. The lockfile entry
before #37029 also resolved both ws@^7 and ws@^7.4.6 to 7.5.10, so this was
not introduced by the Playwright update.
This is relevant because the upstream fragment-memory fix was released inws@7.5.11. The upstream advisory and fix are already public:
https://github.com/advisories/GHSA-96hv-2xvq-fx4p
Install the published package:
npm init -y
npm install react-devtools-core@8.0.0
Inspect node_modules/react-devtools-core/dist/standalone.js.map.
Compare its 13 node_modules/ws sourcesContent entries with the publishedws@7.5.10 source files. All 13 match byte-for-byte. In particular, the
following files remain in their 7.5.10 form and differ from 7.5.11:
lib/receiver.jslib/websocket-server.jslib/websocket.jsThe compiled standalone artifact also lacks theWS_ERR_TOO_MANY_BUFFERED_PARTS guard introduced by the 7.5.11 fix.
A fresh dependency resolution installs ws@7.5.13, but changing or
overriding that external package does not change dist/standalone.js.
The published standalone artifact should be built with a patched supported
7.x release of ws.
Update ws to 7.5.11 or later, regenerate dist/standalone.js, and publish a
new react-devtools-core release containing the rebuilt artifact. Updating the
lockfile alone will not change the copy already frozen in published packages.
This is separate from #37624, which concerns forwarding the host argument tohttpServer.listen(). Fixing that binding behavior does not update the frozen
dependency used when standalone DevTools is intentionally exposed through a
VM, container, port forward, or reverse proxy.
Every time
No response
No response
No response
Relay reads this issue against the repository's contribution signals: the files it is likely to touch, how the maintainers triage work this size, and what the first contribution would exercise.
The full analysis for this issue is still being assembled. Until then, the description above and the thread on GitHub are the most reliable context.