Repository navigation
Conversation
Replace Yarn 1 with pnpm 9.15.9 (pinned in Volta) for installs and scripts in the monorepo, the CI workflows, the release scripts and the contributor docs. - `node-linker=hoisted` and `auto-install-peers=false` keep the flat node_modules folder and the set of installed packages of Yarn 1. - The root package.json lists every workspace package with `workspace:*`, so that pnpm links them into the root node_modules like Yarn did. - pnpm reads pnpm-workspace.yaml. The `workspaces` list in package.json stays for Deno and the repo scripts, and verify-packages-versions.js checks that both lists are the same. - `resolutions` are now `pnpm.overrides`. - pnpm-lock.yaml keeps the versions of yarn.lock. A temporary pnpmfile pinned each range to its yarn.lock version, then `pnpm dedupe` merged a few versions, for example esbuild 0.28.2 into 0.28.1. - @sentry/nitro and @sentry/nuxt declare `h3` and `unstorage`. They imported them without a declaration, and with pnpm these imports resolved to other versions. - CI installs pnpm with the install-pnpm action. E2E jobs use the root pnpm for the root scripts and the pnpm version of the app for the app. - The Lambda layer install uses a hoisted node_modules folder, and the SDK source replacement does not write through pnpm's hard links into packages/core/build. - The NODE_OPTIONS line of .yarnrc is gone. Yarn 1 never applied it. - `pnpm test` does not pass options to the script like `yarn test` did, so calls with options use `pnpm run test`. - The bundler plugin fixtures and the local E2E runner install standalone projects with the pnpm defaults. They remove the `npm_config_*` variables that `pnpm run` passes from the root .npmrc, and the fixtures set `NPM_CONFIG_WORKSPACE_DIR`, so that pnpm does not read that file. - @sentry/server-runtime-injection resolves its vendored dependencies with the `node` export condition. pnpm hoists `supports-color` 8, and without the condition the build vendored its browser build, which crashes on Node 20. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Semgrep found 2 🟡 Medium severity issue identified in your code: Risk: Affected versions of @babel/helpers, @babel/runtime, @babel/runtime-corejs2, and @babel/runtime-corejs3 are vulnerable to Inefficient Regular Expression Complexity. Babel generates a polyfill (the Fix: Upgrade this library to at least version 7.26.10 at sentry-javascript/pnpm-lock.yaml:3658. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-7806, GHSA-968p-4wvh-cqc8, CVE-2025-27789 Semgrep found 3 🟡 Medium severity issue identified in your code: Risk: Affected versions of esbuild are vulnerable to Origin Validation Error. esbuild's development server responds to every request, including Server-Sent Events connections, with Manual Review Advice: A vulnerability from this advisory is reachable if you run esbuild with the Fix: Upgrade this library to at least version 0.25.0 at sentry-javascript/pnpm-lock.yaml:11487. Reference(s): GHSA-67mh-4wv8-2f99 Semgrep found 1 🟡 Medium severity issue identified in your code: Risk: Affected versions of jsondiffpatch are vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). jsondiffpatch renders JSON object keys into HTML without escaping in its HTML formatter (HtmlFormatter / format). An attacker who controls the JSON being diffed can inject a malicious object key (e.g. a Manual Review Advice: A vulnerability from this advisory is reachable if you are uisng jsondiffpatch on the CLI Fix: Upgrade this library to at least version 0.7.2 at sentry-javascript/pnpm-lock.yaml:13255. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-27629, GHSA-33vc-wfww-vjfv, CVE-2025-9910 Semgrep found 2 🟡 Medium severity issue identified in your code: Risk: Affected versions of svelte are vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). Svelte versions before 4.2.19 improperly escape HTML during server-side rendering (SSR): attribute values only escape Manual Review Advice: A vulnerability from this advisory is reachable if you use Svelte server-side rendering with a component that places user-controlled data in an element attribute inside a Fix: Upgrade this library to at least version 4.2.19 at sentry-javascript/pnpm-lock.yaml:17282. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2024-2530, GHSA-8266-84wp-wv5c, CVE-2024-45047 Semgrep found 1 🟡 Medium severity issue identified in your code: Risk: Affected versions of webpack-dev-server are vulnerable to Exposed Dangerous Method or Function. webpack-dev-server serves bundled assets without rejecting cross-origin classic script requests. Because such Manual Review Advice: A vulnerability from this advisory is reachable if you are using Fix: Upgrade this library to at least version 5.2.1 at sentry-javascript/pnpm-lock.yaml:18704. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-16767, GHSA-4v9v-hfq4-rm2v, CVE-2025-30359 Semgrep found 1 🟡 Medium severity issue identified in your code: Risk: Affected versions of webpack-dev-server are vulnerable to Origin Validation Error. webpack-dev-server improperly validates the WebSocket connection Origin header, unconditionally accepting any IP-address-based Origin. A malicious website can perform a cross-site WebSocket hijack against a running dev server and exfiltrate the developer source code carried in Hot Module Reloading (HMR) messages. The insecure origin check is the package default and is reached on every WebSocket connection, so any project running an affected version is vulnerable. Manual Review Advice: A vulnerability from this advisory is reachable if you are using Fix: Upgrade this library to at least version 5.2.1 at sentry-javascript/pnpm-lock.yaml:18704. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-16764, GHSA-9jgg-88mc-972h, CVE-2025-30360 Semgrep found 1 🟡 Medium severity issue identified in your code: Risk: Affected versions of webpack are vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). webpack's AutoPublicPathRuntimeModule emits runtime code that derives the asset public path from document.currentScript. Because document.currentScript can be DOM-clobbered by an injected scriptless element (e.g. Manual Review Advice: A vulnerability from this advisory is reachable if you build with output.publicPath unset Fix: Upgrade this library to at least version 5.94.0 at sentry-javascript/pnpm-lock.yaml:18756. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2024-2497, GHSA-4vvj-4cpr-p986, CVE-2024-43788 Semgrep found 2 🟠 High severity issue identified in your code: Risk: Affected versions of sharp are vulnerable to Dependency on Vulnerable Third-Party Component / Use After Free. The prebuilt libvips binaries shipped with sharp bundle a vulnerable librsvg that has a use-after-free when decoding SVG images, which can lead to remote code execution when sharp processes an attacker-supplied SVG. Upgrade to sharp 0.35.5 or later, or block SVG decoding with sharp.block({ operation: ["VipsForeignLoadSvg"] }). Manual Review Advice: A vulnerability from this advisory is reachable if you decode SVG input with sharp, which is enabled by default, and have not disabled it with sharp.block({ operation: ["VipsForeignLoadSvg"] }) Fix: Upgrade this library to at least version 0.35.5 at sentry-javascript/pnpm-lock.yaml:16766. Reference(s): GHSA-wq5f-xc86-pv6w Semgrep found 2 🟠 High severity issue identified in your code: Risk: Affected versions of webpack-dev-middleware are vulnerable to Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'). When Fix: Upgrade this library to at least version 7.4.6 at sentry-javascript/pnpm-lock.yaml:18698. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-64850, GHSA-g84c-rxfj-3j2c, GHSA-wr3j-pwj9-hqq6, CVE-2026-76844 Semgrep found 2 🟠 High severity issue identified in your code: Risk: Affected versions of @angular/compiler and @angular/core are vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). Angular's compiler internationalization (i18n) pipeline does not reject static event-handler attributes that are marked for translation with the Manual Review Advice: A vulnerability from this advisory is reachable if you are using Angular's i18n pipeline and also set the matching static Fix: Upgrade this library to at least version 20.3.27 at sentry-javascript/pnpm-lock.yaml:2388. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-52369, GHSA-jj27-h5hq-8x99 Semgrep found 2 🟠 High severity issue identified in your code: Risk: Affected versions of sharp are vulnerable to Dependency on Vulnerable Third-Party Component. sharp bundles a vulnerable version of the native libvips library, inheriting four memory-safety flaws: an integer overflow leading to a heap-based buffer overflow in the VIPS loader ( Fix: Upgrade this library to at least version 0.35.0 at sentry-javascript/pnpm-lock.yaml:16766. Reference(s): GHSA-f88m-g3jw-g9cj Semgrep found 1 🟠 High severity issue identified in your code: Risk: Affected versions of vite and vite-plus are vulnerable to Exposure of Sensitive Information to an Unauthorized Actor / Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'). Vite's server.fs.deny blocklist—which protects sensitive files such as .env and certificate files from being served—can be bypassed on Windows using alternate path representations (NTFS Alternate Data Stream syntax like Manual Review Advice: A vulnerability from this advisory is reachable if you expose the Vite dev server or vite-plus to the network by configuring a non-loopback address using the --host CLI flag on Windows Fix: Upgrade this library to at least version 6.4.3 at sentry-javascript/pnpm-lock.yaml:18334. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-38303, GHSA-fx2h-pf6j-xcff, CVE-2026-53571 Semgrep found 1 🟠 High severity issue identified in your code: Risk: Affected versions of react-router and turbo-stream are vulnerable to Allocation of Resources Without Limits or Throttling. React Router Framework Mode uses turbo-stream to serialize loader/action data into Single Fetch responses. The underlying serialization algorithm becomes a bottleneck on certain data shapes, so an attacker who can influence the serialized data can cause excessive resource consumption and a Denial of Service. Manual Review Advice: A vulnerability from this advisory is reachable if you use React Router Framework Mode with Single Fetch enabled (the default in v7 Framework Mode, or opt-in via future.unstable_singleFetch in Remix v2.9.0+) and not Declarative or Data mode Fix: Upgrade this library to at least version 3.0.0 at sentry-javascript/pnpm-lock.yaml:17659. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-33994, GHSA-rxv8-25v2-qmq8, CVE-2026-34077 Semgrep found 1 🟠 High severity issue identified in your code: Risk: Affected versions of @angular/compiler are vulnerable to Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). A stored XSS vulnerability in the Angular Template Compiler arises because its internal security schema doesn't classify certain URL‐ holding attributes (e.g. xlink:href, math|href, annotation|href) or the Manual Review Advice: A vulnerability from this advisory is reachable if you allow Fix: Upgrade this library to at least version 19.2.17 at sentry-javascript/pnpm-lock.yaml:2379. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-200118, GHSA-v4hv-rgfq-gp49, CVE-2025-66412 Semgrep found 6
🔴 Critical severity issue identified in your code: Risk: Affected versions of @babel/traverse and babel-traverse are vulnerable to Incomplete List of Disallowed Inputs / Incorrect Comparison. Compiling untrusted code with Babel using plugins that invoke the internal path.evaluate() or path.evaluateTruthy() methods (for example @babel/plugin-transform-runtime, @babel/preset-env with useBuiltIns, or any polyfill‐provider plugin) allows a maliciously crafted AST to execute arbitrary code on the build machine during compilation. Manual Review Advice: A vulnerability from this advisory is reachable if you use Babel to compile untrusted JavaScript Fix: There are no safe versions of this library available for upgrade. Library included at sentry-javascript/pnpm-lock.yaml:9641. Reference(s): https://euvd.enisa.europa.eu/vulnerability/EUVD-2023-2669, GHSA-67hx-6x53-jw92, CVE-2023-45133 |
This moves the monorepo from Yarn 1 to pnpm 9.15.9 (pinned in Volta): scripts, CI workflows, the release script and the contributor docs. Most of the added lines are
pnpm-lock.yaml, which has the same versions as the currentyarn.lockexcept for a few thatpnpm dedupemerged.Changes beyond the rename:
@sentry/nitroand@sentry/nuxtdeclareh3andunstorage, which they imported without a declaration.@sentry/server-runtime-injectionvendors the Node build ofsupports-colorinstead of the browser build.packages/core/build.Install layout decisions
.npmrcsetsnode-linker=hoistedandauto-install-peers=false, so pnpm installs the same flatnode_modulesas Yarn 1. The isolated pnpm default would need every package to declare all its imports.Workspace decisions
All workspace packages are root
devDependencies(workspace:*), because some configs import workspace packages without declaring them. Theworkspaceslist stays inpackage.jsonfor Deno, andverify-packages-versions.jschecks that it matchespnpm-workspace.yaml.Known issues
VOLTA_FEATURE_PNPM=1and a fresh install (pnpm clean:deps).