chore(deps): update pnpm to v10.28.2 #784
Open
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
10.20.0→10.28.2Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
pnpm/pnpm (pnpm)
v10.28.2: pnpm 10.28.2Compare Source
Patch Changes
Security fix: prevent path traversal in
directories.binfield.When pnpm installs a
file:orgit:dependency, it now validates that symlinks point within the package directory. Symlinks to paths outside the package root are skipped to prevent local data from being leaked intonode_modules.This fixes a security issue where a malicious package could create symlinks to sensitive files (e.g.,
/etc/passwd,~/.ssh/id_rsa) and have their contents copied when the package is installed.Note: This only affects
file:andgit:dependencies. Registry packages (npm) have symlinks stripped during publish and are not affected.Fixed optional dependencies to request full metadata from the registry to get the
libcfield, which is required for proper platform compatibility checks #9950.Platinum Sponsors
Gold Sponsors
v10.28.1: pnpm 10.28.1Compare Source
Patch Changes
Fixed installation of config dependencies from private registries.
Added support for object type in
configDependencieswhen the tarball URL returned from package metadata differs from the computed URL #10431.Fix path traversal vulnerability in binary fetcher ZIP extraction
ERR_PNPM_PATH_TRAVERSALerrorSupport plain
http://andhttps://URLs ending with.gitas git repository dependencies.Previously, URLs like
https://gitea.example.org/user/repo.git#commitwere not recognized as git repositories because they lacked thegit+prefix (e.g.,git+https://). This caused issues when installing dependencies from self-hosted git servers like Gitea or Forgejo that don't provide tarball downloads.Changes:
http://andhttps://URLs ending in.gitas git repositoriesisRepositorycheck from the tarball resolver since it's no longer needed with the new resolver orderFixes #10468
pnpm run -randpnpm run --filternow fail with a non-zero exit code when no packages have the specified script. Previously, this only failed when all packages were selected. Use--if-presentto suppress this error #6844.Fixed a path traversal vulnerability in tarball extraction on Windows. The path normalization was only checking for
./but not.\. Since backslashes are directory separators on Windows, malicious packages could use paths likefoo\..\..\.npmrcto write files outside the package directory.When running "pnpm exec" from a subdirectory of a project, don't change the current working directory to the root of the project #5759.
Fixed a path traversal vulnerability in pnpm's bin linking. Bin names starting with
@bypassed validation, and after scope normalization, path traversal sequences like../../remained intact.Revert Try to avoid making network calls with preferOffline #10334.
Fix
--save-peerto write valid semver ranges topeerDependenciesfor protocol-based installs (e.g.jsr:) by deriving from resolved versions when available and falling back to*if none is available #10417.Do not exclude the root workspace project, when it is explicitly selected via a filter #10465.
Platinum Sponsors
Gold Sponsors
v10.28.0: pnpm 10.28Compare Source
Minor Changes
beforePackingthat can be used to customize thepackage.jsoncontents at publish time #3816.pnpm install --filter ...) was slower than runningpnpm installwithout any filter arguments. This performance regression is now fixed. Filtered installs should be as fast or faster than a full install #10408.Patch Changes
requiredScriptssetting inpnpm-workspace.yaml#10261.Platinum Sponsors
Gold Sponsors
v10.27.0: pnpm 10.27Compare Source
Minor Changes
Adding
trustPolicyIgnoreAfterallows you to ignore trust policy checks for packages published more than a specified time ago#10352.Added project registry for global virtual store prune support.
Projects using the store are now registered via symlinks in
{storeDir}/v10/projects/. This enablespnpm store pruneto track which packages are still in use by active projects and safely remove unused packages from the global virtual store.Semi-breaking. Changed the location of unscoped packages in the virtual global store. They will now be stored under a directory named
@to maintain a uniform 4-level directory depth.Added mark-and-sweep garbage collection for global virtual store.
pnpm store prunenow removes unused packages from the global virtual store'slinks/directory. The algorithm:This includes support for workspace monorepos - all
node_modulesdirectories within a project (including those in workspace packages) are scanned.Patch Changes
tokenHelperor<url>:tokenHelpersetting contains an environment variable.dangerouslyAllowAllBuildssettings #10376.pnpm store pruneshould not fail if the dlx cache directory has files, not only directories #10384pnpm addwould incorrectly modify a catalog entry inpnpm-workspace.yamlto its exact version.Platinum Sponsors
Gold Sponsors
v10.26.2: pnpm 10.26.2Compare Source
Patch Changes
Improve error message when a package version exists but does not meet the
minimumReleaseAgeconstraint. The error now clearly states that the version exists and shows a human-readable time since release (e.g., "released 6 hours ago") #10307.Fix installation of Git dependencies using annotated tags #10335.
Previously, pnpm would store the annotated tag object's SHA in the lockfile instead of the actual commit SHA. This caused
ERR_PNPM_GIT_CHECKOUT_FAILEDerrors because the checked-out commit hash didn't match the stored tag object hash.Binaries of runtime engines (Node.js, Deno, Bun) are written to
node_modules/.binbefore lifecycle scripts (install, postinstall, prepare) are executed #10244.Try to avoid making network calls with preferOffline #10334.
Platinum Sponsors
Gold Sponsors
v10.26.1: pnpm 10.26.1Compare Source
Patch Changes
pnpm add, whenblockExoticSubdepsis set totrue#10324.HEADpoints to the commit after checkout #10310.Platinum Sponsors
Gold Sponsors
v10.26.0: pnpm 10.26Compare Source
Minor Changes
Semi-breaking. Block git-hosted dependencies from running prepare scripts unless explicitly allowed in
onlyBuiltDependencies#10288.Semi-breaking. Compute integrity hash for HTTP tarball dependencies when fetching, storing it in the lockfile to prevent servers from serving altered content on subsequent installs #10287.
Added a new setting
blockExoticSubdepsthat prevents the resolution of exotic protocols in transitive dependencies.When set to
true, direct dependencies (those listed in your rootpackage.json) may still use exotic sources, but all transitive dependencies must be resolved from a trusted source. Trusted sources include the configured registry, local file paths, workspace links, trusted GitHub repositories (node, bun, deno), and custom resolvers.This helps to secure the dependency supply chain. Packages from trusted sources are considered safer, as they are typically subject to more reliable verification and scanning for malware and vulnerabilities.
Exotic sources are dependency locations that bypass the usual trusted resolution process. These protocols are specifically targeted and blocked: Git repositories (
git+ssh://...) and direct URL links to tarballs (https://.../package.tgz).Related PR: #10265.
Added support for
allowBuilds, which is a new field that can be used instead ofonlyBuiltDependenciesandignoredBuiltDependencies. The newallowBuildsfield in yourpnpm-workspace.yamluses a map of package matchers to explicitly allow (true) or disallow (false) script execution. This allows for a single, easy-to-manage source of truth for your build permissions.Example Usage. To explicitly allow all versions of
esbuildto run scripts and preventcore-jsfrom running them:The example above achieves the same result as the previous configuration:
Related PR: #10311
Added support for
--dry-runto thepackcommand #10301.Patch Changes
injectWorkspacePackagessetting from the lockfile on thedeploycommand #10294.package.json#10197.Platinum Sponsors
Gold Sponsors
v10.25.0: pnpm 10.25Compare Source
Minor Changes
Allow loading certificates from
cert,ca, andkeyfor specific registry URLs. E.g.,//registry.example.com/:ca=-----BEGIN CERTIFICATE-----.... Previously this was only working viacertfile,cafile, andkeyfile.These properties are supported in
.npmrc, but were ignored by pnpm, this will make pnpm read and use them as well.Related PR: #10230.
Added a new flag called
--baretopnpm initfor creating a package.json with the bare minimum of required fields #10226.Patch Changes
pnpm installshould build any dependencies that were added toonlyBuiltDependenciesand were not built yet #10256.pnpm publish -r --forceshould allow to run publish over already existing versions in the registry #10272.ERR_PNPM_MISSING_TIMEerror if a package that is excluded from trust policy checks is missing the time field in the metadata.Platinum Sponsors
Gold Sponsors
v10.24.0: pnpm 10.24Compare Source
Minor Changes
Patch Changes
trustPolicyshould ignore the trust evidences of prerelease versions, when installing a non-prerelease version.fs.linkSync(), which can occur in containerized environments (OverlayFS) instead of EXDEV. The operation now gracefully falls back tofs.copyFileSync()in these cases #10217.pnpm self-updateshould download pnpm from the configured npm registry #10205.package.jsonfile (like Node.js) should not be reimported from the store on every install. Another file from the package should be checked in order to verify its presence innode_modules.Platinum Sponsors
Gold Sponsors
v10.23.0: pnpm 10.23Compare Source
Minor Changes
--lockfile-onlyoption topnpm list#10020.Patch Changes
pnpm self-updateshould download pnpm from the configured npm registry #10205.pnpm self-updateshould always install the non-executable pnpm package (pnpm in the registry) and never the@pnpm/exepackage, when installing v11 or newer. We currently cannot ship@pnpm/exeaspkgdoesn't work with ESM #10190.pnpm add, if there's aengines.runtimesetting declared inpackage.json#10209.pnpm listandpnpm whynow display npm: protocol for aliased packages (e.g.,foo npm:is-odd@3.0.1) #8660.pnpm store pruneshould not fail if the store contains Node.js packages #10131.Platinum Sponsors
Gold Sponsors
v10.22.0: pnpm 10.22Compare Source
Minor Changes
Added support for
trustPolicyExclude#10164.You can now list one or more specific packages or versions that pnpm should allow to install, even if those packages don't satisfy the trust policy requirement. For example:
Allow to override the
enginesfield on publish by thepublishConfig.enginesfield.Patch Changes
Platinum Sponsors
Gold Sponsors
v10.21.0: pnpm 10.21Compare Source
Minor Changes
Node.js Runtime Installation for Dependencies. Added support for automatic Node.js runtime installation for dependencies. pnpm will now install the Node.js version required by a dependency if that dependency declares a Node.js runtime in the "engines" field. For example:
{ "engines": { "runtime": { "name": "node", "version": "^24.11.0", "onFail": "download" } } }If the package with the Node.js runtime dependency is a CLI app, pnpm will bind the CLI app to the required Node.js version. This ensures that, regardless of the globally installed Node.js instance, the CLI will use the compatible version of Node.js.
If the package has a
postinstallscript, that script will be executed using the specified Node.js version.Related PR: #10141
Added a new setting:
trustPolicy.When set to
no-downgrade, pnpm will fail installation if a package’s trust level has decreased compared to previous releases — for example, if it was previously published by a trusted publisher but now only has provenance or no trust evidence.This helps prevent installing potentially compromised versions of a package.
Related issue: #8889.
Added support for
pnpm config get globalconfigto retrieve the global config file path #9977.Patch Changes
pnpm updateon a dependency that is not directly listed inpackage.json, none of the direct dependencies should be updated #10155.gitBranchLockfileand related settings viapnpm-workspace.yamlshould work #9651.Platinum Sponsors
Gold Sponsors
Configuration
📅 Schedule: Branch creation - Only on Tuesday ( * * * * 2 ) (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.