OPENSUSE-SU-2025-20115-1

Vulnerability from csaf_opensuse - Published: 2025-11-27 12:28 - Updated: 2025-11-27 12:28
Summary
Security update for pnpm

Notes

Title of the patch
Security update for pnpm
Description of the patch
This update for pnpm fixes the following issues: Changes in pnpm: - update to 10.22.0: * 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: trustPolicy: no-downgrade trustPolicyExclude: - chokidar@4.0.3 - webpack@4.47.0 || 5.102.1 - Allow to override the engines field on publish by the publishConfig.engines field. * Patch Changes - Don't crash when two processes of pnpm are hardlinking the contents of a directory to the same destination simultaneously #10179. - update to 10.21.0: * 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 postinstall script, 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 globalconfig to retrieve the global config file path #9977. * Patch Changes - When a user runs pnpm update on a dependency that is not directly listed in package.json, none of the direct dependencies should be updated #10155. - Don't crash when two processes of pnpm are hardlinking the contents of a directory to the same destination simultaneously #10160. - Setting gitBranchLockfile and related settings via pnpm-workspace.yaml should work #9651. - update to 10.20.0: * Minor Changes - Support --all option in pnpm --help to list all commands #8628. * Patch Changes - When the latest version doesn't satisfy the maturity requirement configured by minimumReleaseAge, pick the highest version that is mature enough, even if it has a different major version #10100. - create command should not verify patch info. - Set managePackageManagerVersions to false, when switching to a different version of pnpm CLI, in order to avoid subsequent switches #10063. - update to 10.19.0: * Minor Changes - You can now allow specific versions of dependencies to run postinstall scripts. onlyBuiltDependencies now accepts package names with lists of trusted versions. For example: Related PR: #10104. onlyBuiltDependencies: - nx@21.6.4 || 21.6.5 - esbuild@0.25.1 - Added support for exact versions in minimumReleaseAgeExclude #9985. You can now list one or more specific versions that pnpm should allow to install, even if those versions don’t satisfy the maturity requirement set by minimumReleaseAge. For example: minimumReleaseAge: 1440 minimumReleaseAgeExclude: - nx@21.6.5 - webpack@4.47.0 || 5.102.1 - update to 10.18.3: * Patch Changes - Fix a bug where pnpm would infinitely recurse when using verifyDepsBeforeInstall: install and pre/post install scripts that called other pnpm scripts #10060. - Fixed scoped registry keys (e.g., @scope:registry) being parsed as property paths in pnpm config get when --location=project is used #9362. - Remove pnpm-specific CLI options before passing to npm publish to prevent "Unknown cli config" warnings #9646. - Fixed EISDIR error when bin field points to a directory #9441. - Preserve version and hasBin for variations packages #10022. - Fixed pnpm config set --location=project incorrectly handling keys with slashes (auth tokens, registry settings) #9884. - When both pnpm-workspace.yaml and .npmrc exist, pnpm config set --location=project now writes to pnpm-workspace.yaml (matching read priority) #10072. - Prevent a table width error in pnpm outdated --long #10040. - Sync bin links after injected dependencies are updated by build scripts. This ensures that binaries created during build processes are properly linked and accessible to consuming projects #10057. - update to 10.18.2: * Patch Changes - pnpm outdated --long should work #10040. - Replace ndjson with split2. Reduce the bundle size of pnpm CLI #10054. - pnpm dlx should request the full metadata of packages, when minimumReleaseAge is set #9963. - pnpm version switching should work when the pnpm home directory is in a symlinked directory #9715. - Fix EPIPE errors when piping output to other commands #10027. - update to 10.18.1: * Patch Changes - Don't print a warning, when --lockfile-only is used #8320. - pnpm setup creates a command shim to the pnpm executable. This is needed to be able to run pnpm self-update on Windows #5700. - When using pnpm catalogs and running a normal pnpm install, pnpm produced false positive warnings for "skip adding to the default catalog because it already exists". This warning now only prints when using pnpm add --save-catalog as originally intended. - update to 10.18.0: * Minor Changes - Added network performance monitoring to pnpm by implementing warnings for slow network requests, including both metadata fetches and tarball downloads. Added configuration options for warning thresholds: fetchWarnTimeoutMs and fetchMinSpeedKiBps. Warning messages are displayed when requests exceed time thresholds or fall below speed minimums Related PR: #10025. * Patch Changes - Retry filesystem operations on EAGAIN errors #9959. - Outdated command respects minimumReleaseAge configuration #10030. - Correctly apply the cleanupUnusedCatalogs configuration when removing dependent packages. - Don't fail with a meaningless error when scriptShell is set to false #8748. - pnpm dlx should not fail when minimumReleaseAge is set #10037. - update to 10.17.1: * Patch Changes - When a version specifier cannot be resolved because the versions don't satisfy the minimumReleaseAge setting, print this information out in the error message #9974. - Fix state.json creation path when executing pnpm patch in a workspace project #9733. - When minimumReleaseAge is set and the latest tag is not mature enough, prefer a non-deprecated version as the new latest #9987. - update to 10.17: * Minor Changes - The minimumReleaseAgeExclude setting now supports patterns. For instance: minimumReleaseAge: 1440 minimumReleaseAgeExclude: - "@eslint/*" * Patch Changes - Don't ignore the minimumReleaseAge check, when the package is requested by exact version and the packument is loaded from cache #9978. - When minimumReleaseAge is set and the active version under a dist-tag is not mature enough, do not downgrade to a prerelease version in case the original version wasn't a prerelease one #9979. - update to 10.16.1: * Patch Changes - The full metadata cache should be stored not at the same location as the abbreviated metadata. This fixes a bug where pnpm was loading the abbreviated metadata from cache and couldn't find the "time" field as a result #9963. - Forcibly disable ANSI color codes when generating patch diff #9914. - update to 10.16: * Minor Changes - There have been several incidents recently where popular packages were successfully attacked. To reduce the risk of installing a compromised version, we are introducing a new setting that delays the installation of newly released dependencies. In most cases, such attacks are discovered quickly and the malicious versions are removed from the registry within an hour. - The new setting is called minimumReleaseAge. It specifies the number of minutes that must pass after a version is published before pnpm will install it. For example, setting minimumReleaseAge: 1440 ensures that only packages released at least one day ago can be installed. - If you set minimumReleaseAge but need to disable this restriction for certain dependencies, you can list them under the minimumReleaseAgeExclude setting. For instance, with the following configuration pnpm will always install the latest version of webpack, regardless of its release time: minimumReleaseAgeExclude: - webpack - Added support for finders #9946. In the past, pnpm list and pnpm why could only search for dependencies by name (and optionally version). For example: pnpm why minimist prints the chain of dependencies to any installed instance of minimist: verdaccio 5.20.1 ├─┬ handlebars 4.7.7 │ └── minimist 1.2.8 └─┬ mv 2.1.1 └─┬ mkdirp 0.5.6 └── minimist 1.2.8 What if we want to search by other properties of a dependency, not just its name? For instance, find all packages that have react@17 in their peer dependencies? This is now possible with "finder functions". Finder functions can be declared in .pnpmfile.cjs and invoked with the --find-by=<function name> flag when running pnpm list or pnpm why. Let's say we want to find any dependencies that have React 17 in peer dependencies. We can add this finder to our .pnpmfile.cjs: module.exports = { finders: { react17: (ctx) => { return ctx.readManifest().peerDependencies?.react === "^17.0.0"; }, }, }; Now we can use this finder function by running: pnpm why --find-by=react17 pnpm will find all dependencies that have this React in peer dependencies and print their exact locations in the dependency graph. @apollo/client 4.0.4 ├── @graphql-typed-document-node/core 3.2.0 └── graphql-tag 2.12.6 It is also possible to print out some additional information in the output by returning a string from the finder. For example, with the following finder: module.exports = { finders: { react17: (ctx) => { const manifest = ctx.readManifest(); if (manifest.peerDependencies?.react === "^17.0.0") { return `license: ${manifest.license}`; } return false; }, }, }; Every matched package will also print out the license from its package.json: @apollo/client 4.0.4 ├── @graphql-typed-document-node/core 3.2.0 │ license: MIT └── graphql-tag 2.12.6 license: MIT * Patch Changes - Fix deprecation warning printed when executing pnpm with Node.js 24 #9529. - Throw an error if nodeVersion is not set to an exact semver version #9934. - pnpm publish should be able to publish a .tar.gz file #9927. - Canceling a running process with Ctrl-C should make pnpm run return a non-zero exit code #9626. - update to 10.15.1: * Patch Changes - Fix .pnp.cjs crash when importing subpath #9904. - When resolving peer dependencies, pnpm looks whether the peer dependency is present in the root workspace project's dependencies. This change makes it so that the peer dependency is correctly resolved even from aliased npm-hosted dependencies or other types of dependencies #9913. - update to 10.15.0: * Minor Changes - Added the cleanupUnusedCatalogs configuration. When set to true, pnpm will remove unused catalog entries during installation #9793. - Automatically load pnpmfiles from config dependencies that are named @*/pnpm-plugin-* #9780. - pnpm config get now prints an INI string for an object value #9797. - pnpm config get now accepts property paths (e.g. pnpm config get catalog.react, pnpm config get .catalog.react, pnpm config get 'packageExtensions["@babel/parser"].peerDependencies["@babel/types"]'), and pnpm config set now accepts dot-leading or subscripted keys (e.g. pnpm config set .ignoreScripts true). - pnpm config get --json now prints a JSON serialization of config value, and pnpm config set --json now parses the input value as JSON. * Patch Changes - Semi-breaking. When automatically installing missing peer dependencies, prefer versions that are already present in the direct dependencies of the root workspace package #9835. - When executing the pnpm create command, must verify whether the node version is supported even if a cache already exists #9775. - When making requests for the non-abbreviated packument, add */* to the Accept header to avoid getting a 406 error on AWS CodeArtifact #9862. - The standalone exe version of pnpm works with glibc 2.26 again #9734. - Fix a regression in which pnpm dlx pkg --help doesn't pass --help to pkg #9823. - update to 10.14.0: * Minor Changes - Added support for JavaScript runtime installation (Related PR: #9755.) Declare Node.js, Deno, or Bun in devEngines.runtime (inside package.json) and let pnpm download and pin it automatically. Usage example: { "devEngines": { "runtime": { "name": "node", "version": "^24.4.0", "onFail": "download" // we only support the "download" value for now } } } How it works: - pnpm install resolves your specified range to the latest matching runtime version. - The exact version (and checksum) is saved in the lockfile. - Scripts use the local runtime, ensuring consistency across environments. Why this is better: - This new setting supports also Deno and Bun (vs. our Node-only settings useNodeVersion and executionEnv.nodeVersion) - Supports version ranges (not just a fixed version). - The resolved version is stored in the pnpm lockfile, along with an integrity checksum for future validation of the Node.js content's validity. - It can be used on any workspace project (like executionEnv.nodeVersion). So, different projects in a workspace can use different runtimes. - For now devEngines.runtime setting will install the runtime locally, which we will improve in future versions of pnpm by using a shared location on the computer. - Add --cpu, --libc, and --os to pnpm install, pnpm add, and pnpm dlx to customize supportedArchitectures via the CLI #7510. * Patch Changes - Fix a bug in which pnpm add downloads packages whose libc differ from pnpm.supportedArchitectures.libc. - The integrities of the downloaded Node.js artifacts are verified #9750. - Allow dlx to parse CLI flags and options between the dlx command and the command to run or between the dlx command and -- #9719. - pnpm install --prod should removing hoisted dev dependencies #9782. - Fix an edge case bug causing local tarballs to not re-link into the virtual store. This bug would happen when changing the contents of the tarball without renaming the file and running a filtered install. - Fix a bug causing pnpm install to incorrectly assume the lockfile is up to date after changing a local tarball that has peers dependencies. - update to 10.13.1: * Patch Changes - Run user defined pnpmfiles after pnpmfiles of plugins. - update to 10.13.0: * Minor Changes - Added the possibility to load multiple pnpmfiles. The pnpmfile setting can now accept a list of pnpmfile locations #9702. - pnpm will now automatically load the pnpmfile.cjs file from any config dependency named @pnpm/plugin-* or pnpm-plugin-* #9729. - The order in which config dependencies are initialized should not matter — they are initialized in alphabetical order. If a specific order is needed, the paths to the pnpmfile.cjs files in the config dependencies can be explicitly listed using the pnpmfile setting in pnpm-workspace.yaml. * Patch Changes - When patching dependencies installed via pkg.pr.new, treat them as Git tarball URLs #9694. - Prevent conflicts between local projects' config and the global config in dangerouslyAllowAllBuilds, onlyBuiltDependencies, onlyBuiltDependenciesFile, and neverBuiltDependencies #9628. - Sort keys in pnpm-workspace.yaml with deep #9701. - The pnpm rebuild command should not add pkgs included in ignoredBuiltDependencies to ignoredBuilds in node_modules/.modules.yaml #9338. - Replaced shell-quote with shlex for quoting command arguments #9381. - update to 10.12.4: * Patch Changes - Fix pnpm licenses command for local dependencies #9583. - Fix a bug in which pnpm ls --filter=not-exist --json prints nothing instead of an empty array #9672. - Fix a deadlock that sometimes happens during peer dependency resolution #9673. - Running pnpm install after pnpm fetch should hoist all dependencies that need to be hoisted. - Fixes a regression introduced in v10.12.2 by #9648; resolves #9689. - update to 10.12.3: * Patch Changes - Restore hoisting of optional peer dependencies when installing with an outdated lockfile. Regression introduced in v10.12.2 by #9648; resolves #9685. - update to 10.12.2: * Patch Changes - Fixed hoisting with enableGlobalVirtualStore set to true #9648. - Fix the --help and -h flags not working as expected for the pnpm create command. - The dependency package path output by the pnpm licenses list --json command is incorrect. - Fix a bug in which pnpm deploy fails due to overridden dependencies having peer dependencies causing ERR_PNPM_OUTDATED_LOCKFILE #9595. - update to 10.12.1 (10.2.0 was yanked): * Minor Changes - Experimental. Added support for global virtual stores. When enabled, node_modules contains only symlinks to a central virtual store, rather to node_modules/.pnpm. By default, this central store is located at <store-path>/links (you can find the store path by running pnpm store path). In the central virtual store, each package is hard linked into a directory whose name is the hash of its dependency graph. This allows multiple projects on the system to symlink shared dependencies from this central location, significantly improving installation speed when a warm cache is available. This is conceptually similar to how NixOS manages packages, using dependency graph hashes to create isolated and reusable package directories. To enable the global virtual store, set enableGlobalVirtualStore: true in your root pnpm-workspace.yaml, or globally via: pnpm config -g set enable-global-virtual-store true NOTE: In CI environments, where caches are typically cold, this setting may slow down installation. pnpm automatically disables the global virtual store when running in CI. Related PR: #8190 - The pnpm update command now supports updating catalog: protocol dependencies and writes new specifiers to pnpm-workspace.yaml. - A new catalogMode setting is available for controlling if and how dependencies are added to the default catalog. It can be configured to several modes: - strict: Only allows dependency versions from the catalog. Adding a dependency outside the catalog's version range will cause an error. - prefer: Prefers catalog versions, but will fall back to direct dependencies if no compatible version is found. - manual (default): Does not automatically add dependencies to the catalog. - Added two new CLI options (--save-catalog and --save-catalog-name=<name>) to pnpm add to save new dependencies as catalog entries. catalog: or catalog:<name> will be added to package.json and the package specifier will be added to the catalogs or catalog[<name>] object in pnpm-workspace.yaml #9425. - Semi-breaking. The keys used for side-effects caches have changed. If you have a side-effects cache generated by a previous version of pnpm, the new version will not use it and will create a new cache instead #9605. - Added a new setting called ci for explicitly telling pnpm if the current environment is a CI or not. * Patch Changes - Sort versions printed by pnpm patch using semantic versioning rules. - Improve the way the error message displays mismatched specifiers. Show differences instead of 2 whole objects #9598. - Revert #9574 to fix a regression #9596. - update to 10.11.1: * Patch Changes - Fix an issue in which pnpm deploy --legacy creates unexpected directories when the root package.json has a workspace package as a peer dependency #9550. - Dependencies specified via a URL that redirects will only be locked to the target if it is immutable, fixing a regression when installing from GitHub releases. (#9531) - Installation should not exit with an error if strictPeerDependencies is true but all issues are ignored by peerDependencyRules #9505. - Use pnpm_config_ env variables instead of npm_config_ #9571. - Fix a regression (in v10.9.0) causing the --lockfile-only flag on pnpm update to produce a different pnpm-lock.yaml than an update without the flag. - Let pnpm deploy work in repos with overrides when inject-workspace-packages=true #9283. - Fixed the problem of path loss caused by parsing URL address. Fixes a regression shipped in pnpm v10.11 via #9502. - pnpm -r --silent run should not print out section #9563. - update to 10.11.0: * Minor Changes - A new setting added for pnpm init to create a package.json with type=module, when init-type is module. Works as a flag for the init command too #9463. - Added support for Nushell to pnpm setup #6476. - Added two new flags to the pnpm audit command, --ignore and --ignore-unfixable #8474. Ignore all vulnerabilities that have no solution: > pnpm audit --ignore-unfixable Provide a list of CVE's to ignore those specifically, even if they have a resolution. > pnpm audit --ignore=CVE-2021-1234 --ignore=CVE-2021-5678 - Added support for recursively running pack in every project of a workspace #4351. Now you can run pnpm -r pack to pack all packages in the workspace. * Patch Changes - pnpm version management should work, when dangerouslyAllowAllBuilds is set to true #9472. - pnpm link should work from inside a workspace #9506. - Set the default workspaceConcurrency to Math.min(os.availableParallelism(), 4) #9493. - Installation should not exit with an error if strictPeerDependencies is true but all issues are ignored by peerDependencyRules #9505. - Read updateConfig from pnpm-workspace.yaml #9500. - Add support for recursive pack - Remove url.parse usage to fix warning on Node.js 24 #9492. - pnpm run should be able to run commands from the workspace root, if ignoreScripts is set tot true #4858. - update to 10.10.0: * Allow loading the preResolution, importPackage, and fetchers hooks from local pnpmfile. * Fix cd command, when shellEmulator is true #7838. * Sort keys in pnpm-workspace.yaml #9453. * Pass the npm_package_json environment variable to the executed scripts #9452. * Fixed a mistake in the description of the --reporter=silent option. - update to 10.9.0: * Minor Changes - Added support for installing JSR packages. You can now install JSR packages using the following syntax: add jsr:<pkg_name> or with a version range: pnpm add jsr:<pkg_name>@<range> For example, running: pnpm add jsr:@foo/bar will add the following entry to your package.json: { "dependencies": { "@foo/bar": "jsr:^0.1.2" } } When publishing, this entry will be transformed into a format compatible with npm, older versions of Yarn, and previous pnpm versions: { "dependencies": { "@foo/bar": "npm:@jsr/foo__bar@^0.1.2" } } Related issue: #8941. Note: The @jsr scope defaults to https://npm.jsr.io/ if the @jsr:registry setting is not defined. - Added a new setting, dangerouslyAllowAllBuilds, for automatically running any scripts of dependencies without the need to approve any builds. It was already possible to allow all builds by adding this to pnpm-workspace.yaml: neverBuiltDependencies: [] dangerouslyAllowAllBuilds has the same effect but also allows to be set globally via: pnpm config set dangerouslyAllowAllBuilds true It can also be set when running a command: pnpm install --dangerously-allow-all-builds * Patch Changes - Fix a false negative in verifyDepsBeforeRun when nodeLinker is hoisted and there is a workspace package without dependencies and node_modules directory #9424. - Explicitly drop verifyDepsBeforeRun support for nodeLinker: pnp. Combining verifyDepsBeforeRun and nodeLinker: pnp will now print a warning. - udate to 10.8.1: * Patch Changes - Removed bright white highlighting, which didn't look good on some light themes #9389. - If there is no pnpm related configuration in package.json, onlyBuiltDependencies will be written to pnpm-workspace.yaml file #9404. - The patch file path saved by the pnpm patch-commit and patch-remove commands should be a relative path #9403. - update to 10.8: * Minor Changes Experimental. A new hook is supported for updating configuration settings. The hook can be provided via .pnpmfile.cjs. For example: module.exports = { hooks: { updateConfig: (config) => ({ ...config, nodeLinker: "hoisted", }), }, }; Now you can use the pnpm add command with the --config flag to install new configurational dependencies #9377. * Patch Changes - Do not hang indefinitely, when there is a glob that starts with !/ in pnpm-workspace.yaml. This fixes a regression introduced by #9169. - pnpm audit --fix should update the overrides in pnpm-workspace.yaml. - pnpm link should update overrides in pnpm-workspace.yaml, not in package.json #9365. - update to 10.7.1: * Patch Changes - pnpm config set should convert the settings to their correct type before adding them to pnpm-workspace.yaml #9355. - pnpm config get should read auth related settings via npm CLI #9345. - Replace leading ~/ in a path in .npmrc with the home directory #9217. - update to 10.7: * Minor Changes - pnpm config get and list also show settings set in pnpm-workspace.yaml files #9316. - It should be possible to use env variables in pnpm-workspace.yaml setting names and value. - Add an ability to patch dependencies by version ranges. Exact versions override version ranges, which in turn override name-only patches. Version range * is the same as name-only, except that patch application failure will not be ignored. For example: patchedDependencies: foo: patches/foo-1.patch foo@^2.0.0: patches/foo-2.patch foo@2.1.0: patches/foo-3.patch The above configuration would apply patches/foo-3.patch to foo@2.1.0, patches/foo-2.patch to all foo versions which satisfy ^2.0.0 except 2.1.0, and patches/foo-1.patch to the remaining foo versions. [!WARNING] The version ranges should not overlap. If you want to specialize a sub range, make sure to exclude it from the other keys. For example: # pnpm-workspace.yaml patchedDependencies: # the specialized sub range 'foo@2.2.0-2.8.0': patches/foo.2.2.0-2.8.0.patch # the more general patch, excluding the sub range above 'foo@>=2.0.0 <2.2.0 || >2.8.0': 'patches/foo.gte2.patch In most cases, however, it's sufficient to just define an exact version to override the range. - pnpm config set --location=project saves the setting to a pnpm-workspace.yaml file if no .npmrc file is present in the directory #9316. - Rename pnpm.allowNonAppliedPatches to pnpm.allowUnusedPatches. The old name is still supported but it would print a deprecation warning message. - Add pnpm.ignorePatchFailures to manage whether pnpm would ignore patch application failures. - If ignorePatchFailures is not set, pnpm would throw an error when patches with exact versions or version ranges fail to apply, and it would ignore failures from name-only patches. - If ignorePatchFailures is explicitly set to false, pnpm would throw an error when any type of patch fails to apply. - If ignorePatchFailures is explicitly set to true, pnpm would print a warning when any type of patch fails to apply. * Patch Changes - Remove dependency paths from audit output to prevent out-of-memory errors #9280. - update to 10.6.5: * Patch Changes - Remove warnings after having explicitly approved no builds #9296. - When installing different dependency packages, should retain the ignoredBuilds field in the .modules.yaml file #9240. - Fix usages of the catalog: protocol in injected local workspace packages. This previously errored with ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER. #8715 - Setting workspace-concurrency to less than or equal to 0 should work #9297. - update to 10.6.4: * Patch Changes - Fix pnpm dlx with --allow-build flag #9263. - Invalid Node.js version in use-node-version should not cause pnpm itself to break #9276. - The max amount of workers running for linking packages from the store has been reduced to 4 to achieve optimal results #9286. The workers are performing many file system operations, so increasing the number of CPUs doesn't help performance after some point. - update to 10.6.3: * Patch Changes - pnpm install --prod=false should not crash, when executed in a project with a pnpm-workspace.yaml file #9233. This fixes regression introduced via #9211. - Add the missing node-options config to recursive run #9180. - Removed a branching code path that only executed when dedupe-peer-dependents=false. We believe this internal refactor will not result in behavior changes, but we expect it to make future pnpm versions behave more consistently for projects that override dedupe-peer-dependents to false. There should be less unique bugs from turning off dedupe-peer-dependents. See details in #9259. - update to 10.6.2: * Patch Changes - pnpm self-update should always update the version in the packageManager field of package.json. - Fix running pnpm CLI from pnpm CLI on Windows when the CLI is bundled to an executable #8971. - pnpm patch-commit will now use the same filesystem as the store directory to compare and create patch files. - Don't show info output when --loglevel=error is used. - peerDependencyRules should be set in pnpm-workspace.yaml to take effect. - update to 10.6.1: * Patch Changes - The pnpm CLI process should not stay hanging, when --silent reporting is used. - When --loglevel is set to error, don't show installation summary, execution time, and big tarball download progress. - Don't ignore pnpm.patchedDependencies from package.json #9226. - When executing the approve-builds command, if package.json contains onlyBuiltDependencies or ignoredBuiltDependencies, the selected dependency package will continue to be written into package.json. - When a package version cannot be found in the package metadata, print the registry from which the package was fetched. - update to 10.6.0: * Minor Changes - pnpm-workspace.yaml can now hold all the settings that .npmrc accepts. The settings should use camelCase #9211. pnpm-workspace.yaml example: verifyDepsBeforeRun: install optimisticRepeatInstall: true publicHoistPattern: - "*types*" - "!@types/react" - Projects using a file: dependency on a local tarball file (i.e. .tgz, .tar.gz, .tar) will see a performance improvement during installation. Previously, using a file: dependency on a tarball caused the lockfile resolution step to always run. The lockfile will now be considered up-to-date if the tarball is unchanged. * Patch Changes - pnpm self-update should not leave a directory with a broken pnpm installation if the installation fails. - fast-glob replace with tinyglobby to reduce the size of the pnpm CLI dependencies #9169. - pnpm deploy should not remove fields from the deployed package's package.json file #9215. - pnpm self-update should not read the pnpm settings from the package.json file in the current working directory. - Fix pnpm deploy creating a package.json without the imports and license field #9193. - pnpm update -i should list only packages that have newer versions #9206. - Fix a bug causing entries in the catalogs section of the pnpm-lock.yaml file to be removed when dedupe-peer-dependents=false on a filtered install. #9112 - update to 10.5.2: * The pnpm config set command should change the global .npmrc file by default. This was a regression introduced by #9151 and shipped in pnpm v10.5.0. - update to 10.5.1: * Throw an error message if a pnpm-workspaces.yaml or pnpm-workspaces.yml file is found instead of a pnpm-workspace.yaml #9170. * Fix the update of pnpm-workspace.yaml by the pnpm approve-builds command #9168. * Normalize generated link paths in package.json #9163 * Specifying overrides in pnpm-workspace.yaml should work. * pnpm dlx should ignore settings from the package.json file in the current working directory #9178. - update to 10.5.0: * The pnpm.* settings from package.json can now be specified in the pnpm-workspace.yaml file instead #9121. * Added support for automatically syncing files of injected workspace packages after pnpm run #9081. Use the sync-injected -deps-after-scripts setting to specify which scripts build the workspace package. This tells pnpm when syncing is needed. The setting should be defined in a .npmrc file at the root of the workspace. * The packages field in pnpm-workspace.yaml became optional. * pnpm link with no parameters should work as if --global is specified #9151 * Allow scope registry CLI option without --config. prefix such as --@scope:registry=https://scope.example.com/npm #9089 * pnpm link <path> should calculate relative path from the root of the workspace directory #9132 * Fix a bug causing catalog snapshots to be removed from the pnpm-lock.yaml file when using --fix-lockfile and --filter. #8639 * Fix a bug causing catalog protocol dependencies to not re- resolve on a filtered install #8638 - update to 10.4.1: * Throws an error when the value provided by the --allow-build option overlaps with the pnpm.ignoredBuildDependencies list #9105. * Print pnpm's version after the execution time at the end of the console output. * Print warning about ignored builds of dependencies on repeat install #9106. * Setting init-package-manager should work. - includes 10.4.0: * pnpm approve-builds --global works now for allowing dependencies of globally installed packages to run postinstall scripts. * The pnpm add command now supports a new flag, --allow-build, which allows building the specified dependencies. * pnpm approve-builds should work after two consecutive pnpm install runs #9083. * Fix instruction for updating pnpm with corepack #9101. * The pnpm version specified by packageManager cannot start with v. - update to 10.3.0: * Added a new setting called strict-dep-builds. When enabled, the installation will exit with a non-zero exit code if any dependencies have unreviewed build scripts (aka postinstall scripts) #9071. * Fix a false negative of verify-deps-before-run after pnpm install --production|--no-optional #9019. * Print the warning about blocked installation scripts at the end of the installation output and make it more prominent. - update to 10.2.1: * Don't read a package from side-effects cache if it isn't allowed to be built #9042. * pnpm approve-builds should work, when executed from a subdirectory of a workspace #9042. * pnpm deploy --legacy should work without injected dependencies * Add information about how to deploy without "injected dependencies" to the "pnpm deploy" error message. - includes 10.2.0: * Packages executed via pnpm dlx and pnpm create are allowed to be built (run postinstall scripts) by default. * Quote args for scripts with shell-quote to support new lines (on POSIX only) #8980. * Fix a bug in which pnpm deploy fails to read the correct projectId when the deploy source is the same as the workspace directory #9001. * Proxy settings should be respected, when resolving Git-hosted dependencies #6530. * Prevent overrides from adding invalid version ranges to peerDependencies by keeping the peerDependencies and overriding them with prod dependencies #8978. * Sort the package names in the "pnpm.onlyBuiltDependencies" list saved by pnpm approve-builds. - update to 10.1.0: * Added a new command for printing the list of dependencies with ignored build scripts: pnpm ignored-builds #8963. * Added a new command for approving dependencies for running scripts during installation: pnpm approve-builds #8963. * Added a new setting called optimistic-repeat-install. When enabled, a fast check will be performed before proceeding to installation. This way a repeat install or an install on a project with everything up-to-date becomes a lot faster. But some edge cases might arise, so we keep it disabled by default for now #8977. * Added a new field "pnpm.ignoredBuiltDependencies" for explicitly listing packages that should not be built. When a package is in the list, pnpm will not print an info message about that package not being built #8935. * Verify that the package name is valid when executing the publish command. * When running pnpm install, the preprepare and postprepare scripts of the project should be executed #8989. * Allow workspace: and catalog: to be part of wider version range in peerDependencies. * pnpm deploy should inherit the pnpm object from the root package.json #8991. * Make sure that the deletion of a node_modules in a sub- project of a monorepo is detected as out-of-date #8959. * Fix infinite loop caused by lifecycle scripts using pnpm to execute other scripts during pnpm install with verify-deps-before-run=install #8954. * Replace strip-ansi with the built-in util. stripVTControlCharacters #9009. * Do not print patched dependencies as ignored dependencies that require a build #8952. - update to 10.0.0: * Lifecycle scripts of dependencies are not executed during installation by default! This is a breaking change aimed at increasing security. In order to allow lifecycle scripts of specific dependencies, they should be listed in the pnpm onlyBuiltDependencies field of package.json #8897 * The pnpm link command now adds overrides to the root package.json. #8653 * Secure hashing with SHA256 * Configuration updates * Changes to the global store * The # character is now escaped in directory names within node_modules/.pnpm. #8557 * Running pnpm add --global pnpm or pnpm add --global @pnpm/exe now fails with an error message, directing you to use pnpm self-update instead. #8728 * Dependencies added via a URL now record the final resolved URL in the lockfile, ensuring that any redirects are fully captured. #8833 * The pnpm deploy command now only works in workspaces that have inject-workspace-packages=true. This limitation is introduced to allow us to create a proper lockfile for the deployed project using the workspace lockfile. * Removed conversion from lockfile v6 to v9. If you need v6-to- v9 conversion, use pnpm CLI v9. * pnpm test now passes all parameters after the test keyword directly to the underlying script. This matches the behavior of pnpm run test. Previously you needed to use the -- prefix. #8619 * node-gyp updated to version 11. * pnpm deploy now tries creating a dedicated lockfile from a shared lockfile for deployment. It will fallback to deployment without a lockfile if there is no shared lockfile or force-legacy-deploy is set to true. * Added support for a new type of dependencies called "configurational dependencies". These dependencies are installed before all the other types of dependencies (befor "dependencies", "devDependencies", "optionalDependencies"). * New verify-deps-before-run setting. This setting controls how pnpm checks node_modules before running scripts #8836 * On repeated installs, pnpm performs a quick check to ensure node_modules is up to date. #8838 * pnpm add integrates with default workspace catalog: #8640 * pnpm dlx now resolves packages to their exact versions and uses these exact versions for cache keys. This ensures pnpm dlx always installs the latest requested packages #8811 * No node_modules validation on certain commands. Commands that should not modify node_modules (e.g., pnpm install --lockfile- only) no longer validate or purge node_modules. #8657 * for full changes, see https://github.com/pnpm/pnpm/releases/tag/v10.0.0 - update to 9.15.3: * Fixed the Regex used to find the package manifest during packing #8938. * pnpm update --filter <pattern> --latest <pkg> should only change the specified package for the specified workspace, when dedupe-peer-dependents is set to true #8877. * Exclude .DS_Store file at patch-commit #8922. * Fix a bug in which pnpm patch is unable to bring back old patch without specifying @version suffix #8919. - update to 9.15.2: * Fixed publish/pack error with workspace dependencies with relative paths #8904. It was broken in v9.4.0 (398472c). * Use double quotes in the command suggestion by pnpm patch on Windows #7546. * Do not fall back to SSH, when resolving a git-hosted package if git ls-remote works via HTTPS #8906. * Improve how packages with blocked lifecycle scripts are reported during installation. Always print the list of ignored scripts at the end of the output. Include a hint about how to allow the execution of those packages. - update to version 9.15.1: * pnpm remove should not link dependencies from the workspace, when link-workspace-packages is set to false #7674 * Installation with hoisted node_modules should not fail, when a dependency has itself in its own peer dependencies #8854 - update to version 9.15.0: * Metadata directory version bumped to force fresh cache after we shipped a fix to the metadata write function. This change is backward compatible as install doesn't require a metadata cache * pnpm update --global should not crash if there are no any global packages installed #7898 * Fix an exception when running pnpm update --interactive if catalogs are used. - update to version 9.14.4: * Don't ever save mutated metadata to the metadata cache - includes 9.14.3: * Some commands should ignore the packageManager field check of package.json #7959 - update to version 9.14.2: pnpm publish --json should work #8788 - includes 9.14.1: * Added support for pnpm pack --json to print packed tarball and contents in JSON format #8765 * pnpm exec should print a meaningful error message when no command is provided #8752 * pnpm setup should remove the CLI from the target location before moving the new binary #8173 * Fix ERR_PNPM_TARBALL_EXTRACT error while installing a dependency from GitHub having a slash in branch name #7697 * Don't crash if the use-node-version setting is used and the system has no Node.js installed #8769 * Convert settings in local .npmrc files to their correct types. For instance, child-concurrency should be a number, not a string #5075 * pnpm should fail if a project requires a different package manager even if manage-package-manager-versions is set to true * pnpm init should respect the --dir option #8768 - includes 9.14.0: * chore: use verify-deps-before-run * fix(init): --dir option should be respected (#8768) * feat: support json format output in pnpm pack (#8765) * fix: pnpm exec should specify command (#8774) * fix: proper types of settings in local .npmrc files (#8775) * fix: ERR_PNPM_TARBALL_EXTRACT when the URL's hash contains a slash * fix: the CLI should fail if a different package manager is required by the project * fix: ETXTBSY error on running setup (#8780) * feat: add linux-riscv64 build (#8779) * fix: remove link to X from update notifier (#8773) * docs: update sponsors * fix: upgrade cross-sapwn (#8782) * fix: don't crash when use-node-version is set and there is no node.js * docs: update changesets - update to version 9.13.2: * Detection of circular peer dependencies should not crash with aliased dependencies #8759. Fixes a regression introduced in the previous version. * Fix race condition of symlink creations caused by multiple parallel dlx processes. - update to version 9.13.1: * Fixed some edge cases where resolving circular peer dependencies caused a dead lock #8720 - update to version 9.13.0: * The self-update now accepts a version specifier to install a specific version of pnpm. * Fix Cannot read properties of undefined (reading 'name') that is printed while trying to render the missing peer dependencies warning message #8538 - update to version 9.12.3: * Don't purge node_modules, when typing "n" in the prompt that asks whether to remove node_modules before installation #8655 * Fix a bug causing pnpm to infinitely spawn itself when manage- package-manager-versions=true is set and the .tools directory is corrupt * Use crypto.hash, when available, for improved performance #8629 * Fixed a race condition in temporary file creation in the store by including worker thread ID in filename. Previously, multiple worker threads could attempt to use the same temporary file. Temporary files now include both process ID and thread ID for uniqueness #8703 * All commands should read settings from the package.json at the root of the workspace #8667 * When manage-package-manager-versions is set to true, errors spawning a self-managed version of pnpm will now be shown (instead of being silent) * Pass the find command to npm, it is an alias for npm search - includes 9.12.2: * When checking whether a file in the store has executable permissions, the new approach checks if at least one of the executable bits (owner, group, and others) is set to 1. Previously, a file was incorrectly considered executable only when all the executable bits were set to 1. This fix ensures that files with any executable permission, regardless of the user class, are now correctly identified as executable #8546
Patchnames
openSUSE-Leap-16.0-packagehub-31
Terms of use
CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).

{
  "document": {
    "aggregate_severity": {
      "namespace": "https://www.suse.com/support/security/rating/",
      "text": "moderate"
    },
    "category": "csaf_security_advisory",
    "csaf_version": "2.0",
    "distribution": {
      "text": "Copyright 2024 SUSE LLC. All rights reserved.",
      "tlp": {
        "label": "WHITE",
        "url": "https://www.first.org/tlp/"
      }
    },
    "lang": "en",
    "notes": [
      {
        "category": "summary",
        "text": "Security update for pnpm",
        "title": "Title of the patch"
      },
      {
        "category": "description",
        "text": "This update for pnpm fixes the following issues:\n\nChanges in pnpm:\n\n- update to 10.22.0:\n  * Minor Changes\n    - Added support for trustPolicyExclude #10164.\n      You can now list one or more specific packages or versions\n      that pnpm should allow to install, even if those packages\n      don\u0027t satisfy the trust policy requirement. For example:\n\n        trustPolicy: no-downgrade\n        trustPolicyExclude:\n          - chokidar@4.0.3\n          - webpack@4.47.0 || 5.102.1\n\n    - Allow to override the engines field on publish by the\n      publishConfig.engines field.\n  * Patch Changes\n    - Don\u0027t crash when two processes of pnpm are hardlinking the\n      contents of a directory to the same destination\n      simultaneously #10179.\n\n- update to 10.21.0:\n  * Minor Changes\n    - Node.js Runtime Installation for Dependencies. Added support\n      for automatic Node.js runtime installation for dependencies.\n      pnpm will now install the Node.js version required by a\n      dependency if that dependency declares a Node.js runtime in\n      the \"engines\" field. For example:\n\n        {\n          \"engines\": {\n            \"runtime\": {\n              \"name\": \"node\",\n              \"version\": \"^24.11.0\",\n              \"onFail\": \"download\"\n            }\n          }\n        }\n\n      If the package with the Node.js runtime dependency is a CLI\n      app, pnpm will bind the CLI app to the required Node.js\n      version. This ensures that, regardless of the globally\n      installed Node.js instance, the CLI will use the compatible\n      version of Node.js.\n      If the package has a postinstall script, that script will be\n      executed using the specified Node.js version.\n      Related PR: #10141\n    - Added a new setting: trustPolicy.\n      When set to no-downgrade, pnpm will fail installation if a\n      package\u2019s trust level has decreased compared to previous\n      releases \u2014 for example, if it was previously published by a\n      trusted publisher but now only has provenance or no trust\n      evidence.\n      This helps prevent installing potentially compromised\n      versions of a package.\n      Related issue: #8889.\n    - Added support for pnpm config get globalconfig to retrieve\n      the global config file path #9977.\n  * Patch Changes\n    - When a user runs pnpm update on a dependency that is not\n      directly listed in package.json, none of the direct\n      dependencies should be updated #10155.\n    - Don\u0027t crash when two processes of pnpm are hardlinking the\n      contents of a directory to the same destination\n      simultaneously #10160.\n    - Setting gitBranchLockfile and related settings via\n      pnpm-workspace.yaml should work #9651.\n\n- update to 10.20.0:\n  * Minor Changes\n    - Support --all option in pnpm --help to list all commands\n      #8628.\n  * Patch Changes\n    - When the latest version doesn\u0027t satisfy the maturity\n      requirement configured by minimumReleaseAge, pick the highest\n      version that is mature enough, even if it has a different\n      major version #10100.\n    - create command should not verify patch info.\n    - Set managePackageManagerVersions to false, when switching to\n      a different version of pnpm CLI, in order to avoid subsequent\n      switches #10063.\n- update to 10.19.0:\n  * Minor Changes\n    - You can now allow specific versions of dependencies to run\n      postinstall scripts. onlyBuiltDependencies now accepts\n      package names with lists of trusted versions. For example:\n      Related PR: #10104.\n\n        onlyBuiltDependencies:\n          - nx@21.6.4 || 21.6.5\n          - esbuild@0.25.1\n\n    - Added support for exact versions in minimumReleaseAgeExclude\n      #9985.\n      You can now list one or more specific versions that pnpm\n      should allow to install, even if those versions don\u2019t satisfy\n      the maturity requirement set by minimumReleaseAge. For\n      example:\n\n        minimumReleaseAge: 1440\n        minimumReleaseAgeExclude:\n          - nx@21.6.5\n          - webpack@4.47.0 || 5.102.1\n\n- update to 10.18.3:\n  * Patch Changes\n    - Fix a bug where pnpm would infinitely recurse when using\n      verifyDepsBeforeInstall: install and pre/post install scripts\n      that called other pnpm scripts #10060.\n    - Fixed scoped registry keys (e.g., @scope:registry) being\n      parsed as property paths in pnpm config get when\n      --location=project is used #9362.\n    - Remove pnpm-specific CLI options before passing to npm\n      publish to prevent \"Unknown cli config\" warnings #9646.\n    - Fixed EISDIR error when bin field points to a directory\n      #9441.\n    - Preserve version and hasBin for variations packages #10022.\n    - Fixed pnpm config set --location=project incorrectly handling\n      keys with slashes (auth tokens, registry settings) #9884.\n    - When both pnpm-workspace.yaml and .npmrc exist, pnpm config\n      set --location=project now writes to pnpm-workspace.yaml\n      (matching read priority) #10072.\n    - Prevent a table width error in pnpm outdated --long #10040.\n    - Sync bin links after injected dependencies are updated by\n      build scripts. This ensures that binaries created during\n      build processes are properly linked and accessible to\n      consuming projects #10057.\n- update to 10.18.2:\n  * Patch Changes\n    - pnpm outdated --long should work #10040.\n    - Replace ndjson with split2. Reduce the bundle size of pnpm\n      CLI #10054.\n    - pnpm dlx should request the full metadata of packages, when\n      minimumReleaseAge is set #9963.\n    - pnpm version switching should work when the pnpm home\n      directory is in a symlinked directory #9715.\n    - Fix EPIPE errors when piping output to other commands #10027.\n- update to 10.18.1:\n  * Patch Changes\n    - Don\u0027t print a warning, when --lockfile-only is used #8320.\n    - pnpm setup creates a command shim to the pnpm executable.\n      This is needed to be able to run pnpm self-update on Windows\n      #5700.\n    - When using pnpm catalogs and running a normal pnpm install,\n      pnpm produced false positive warnings for \"skip adding to the\n      default catalog because it already exists\". This warning now\n      only prints when using pnpm add --save-catalog as originally\n      intended.\n- update to 10.18.0:\n  * Minor Changes\n    - Added network performance monitoring to pnpm by implementing\n      warnings for slow network requests, including both metadata\n      fetches and tarball downloads.\n      Added configuration options for warning thresholds:\n      fetchWarnTimeoutMs and fetchMinSpeedKiBps.\n      Warning messages are displayed when requests exceed time\n      thresholds or fall below speed minimums\n      Related PR: #10025.\n  * Patch Changes\n    - Retry filesystem operations on EAGAIN errors #9959.\n    - Outdated command respects minimumReleaseAge configuration\n      #10030.\n    - Correctly apply the cleanupUnusedCatalogs configuration when\n      removing dependent packages.\n    - Don\u0027t fail with a meaningless error when scriptShell is set\n      to false #8748.\n    - pnpm dlx should not fail when minimumReleaseAge is set\n      #10037.\n\n- update to 10.17.1:\n  * Patch Changes\n    - When a version specifier cannot be resolved because the versions\n      don\u0027t satisfy the minimumReleaseAge setting, print this\n      information out in the error message #9974.\n    - Fix state.json creation path when executing pnpm patch in a\n      workspace project #9733.\n    - When minimumReleaseAge is set and the latest tag is not mature\n      enough, prefer a non-deprecated version as the new latest #9987.\n\n- update to 10.17:\n  * Minor Changes\n    - The minimumReleaseAgeExclude setting now supports patterns.\n      For instance:\n\n      minimumReleaseAge: 1440\n      minimumReleaseAgeExclude:\n        - \"@eslint/*\"\n\n* Patch Changes\n    - Don\u0027t ignore the minimumReleaseAge check, when the package is\n      requested by exact version and the packument is loaded from\n      cache #9978.\n    - When minimumReleaseAge is set and the active version under a\n      dist-tag is not mature enough, do not downgrade to a\n      prerelease version in case the original version wasn\u0027t a\n      prerelease one #9979.\n- update to 10.16.1:\n  * Patch Changes\n    - The full metadata cache should be stored not at the same\n      location as the abbreviated metadata. This fixes a bug where\n      pnpm was loading the abbreviated metadata from cache and\n      couldn\u0027t find the \"time\" field as a result #9963.\n    - Forcibly disable ANSI color codes when generating patch diff\n      #9914.\n- update to 10.16:\n  * Minor Changes\n    - There have been several incidents recently where popular\n      packages were successfully attacked. To reduce the risk of\n      installing a compromised version, we are introducing a new\n      setting that delays the installation of newly released\n      dependencies. In most cases, such attacks are discovered\n      quickly and the malicious versions are removed from the\n      registry within an hour.\n    - The new setting is called minimumReleaseAge. It specifies the\n      number of minutes that must pass after a version is published\n      before pnpm will install it. For example, setting\n      minimumReleaseAge: 1440 ensures that only packages released\n      at least one day ago can be installed.\n    - If you set minimumReleaseAge but need to disable this\n      restriction for certain dependencies, you can list them under\n      the minimumReleaseAgeExclude setting. For instance, with the\n      following configuration pnpm will always install the latest\n      version of webpack, regardless of its release time:\n\n        minimumReleaseAgeExclude:\n          - webpack\n\n    - Added support for finders #9946.\n      In the past, pnpm list and pnpm why could only search for\n      dependencies by name (and optionally version). For example:\n\n        pnpm why minimist\n\n      prints the chain of dependencies to any installed instance of\n      minimist:\n\n        verdaccio 5.20.1\n        \u251c\u2500\u252c handlebars 4.7.7\n        \u2502 \u2514\u2500\u2500 minimist 1.2.8\n        \u2514\u2500\u252c mv 2.1.1\n          \u2514\u2500\u252c mkdirp 0.5.6\n            \u2514\u2500\u2500 minimist 1.2.8\n\n      What if we want to search by other properties of a\n      dependency, not just its name? For instance, find all\n      packages that have react@17 in their peer dependencies?\n      This is now possible with \"finder functions\". Finder\n      functions can be declared in .pnpmfile.cjs and invoked with\n      the --find-by=\u003cfunction name\u003e flag when running pnpm list or\n      pnpm why.\n      Let\u0027s say we want to find any dependencies that have React 17\n      in peer dependencies. We can add this finder to our\n      .pnpmfile.cjs:\n\n        module.exports = {\n          finders: {\n            react17: (ctx) =\u003e {\n              return ctx.readManifest().peerDependencies?.react === \"^17.0.0\";\n            },\n          },\n        };\n\n      Now we can use this finder function by running:\n\n        pnpm why --find-by=react17\n\n      pnpm will find all dependencies that have this React in peer\n      dependencies and print their exact locations in the\n      dependency graph.\n\n        @apollo/client 4.0.4\n        \u251c\u2500\u2500 @graphql-typed-document-node/core 3.2.0\n        \u2514\u2500\u2500 graphql-tag 2.12.6\n\n      It is also possible to print out some additional information\n      in the output by returning a string from the finder. For\n      example, with the following finder:\n\n        module.exports = {\n          finders: {\n            react17: (ctx) =\u003e {\n              const manifest = ctx.readManifest();\n              if (manifest.peerDependencies?.react === \"^17.0.0\") {\n                return `license: ${manifest.license}`;\n              }\n              return false;\n            },\n          },\n        };\n\n      Every matched package will also print out the license from\n      its package.json:\n\n        @apollo/client 4.0.4\n        \u251c\u2500\u2500 @graphql-typed-document-node/core 3.2.0\n        \u2502   license: MIT\n        \u2514\u2500\u2500 graphql-tag 2.12.6\n            license: MIT\n\n  * Patch Changes\n    - Fix deprecation warning printed when executing pnpm with\n      Node.js 24 #9529.\n    - Throw an error if nodeVersion is not set to an exact semver\n      version #9934.\n    - pnpm publish should be able to publish a .tar.gz file #9927.\n    - Canceling a running process with Ctrl-C should make pnpm run\n      return a non-zero exit code #9626.\n- update to 10.15.1:\n  * Patch Changes\n    - Fix .pnp.cjs crash when importing subpath #9904.\n    - When resolving peer dependencies, pnpm looks whether the peer\n      dependency is present in the root workspace project\u0027s\n      dependencies. This change makes it so that the peer\n      dependency is correctly resolved even from aliased npm-hosted\n      dependencies or other types of dependencies #9913.\n\n- update to 10.15.0:\n  * Minor Changes\n    - Added the cleanupUnusedCatalogs configuration. When set to\n      true, pnpm will remove unused catalog entries during\n      installation #9793.\n    - Automatically load pnpmfiles from config dependencies that\n      are named @*/pnpm-plugin-* #9780.\n    - pnpm config get now prints an INI string for an object value\n      #9797.\n    - pnpm config get now accepts property paths (e.g. pnpm config\n      get catalog.react, pnpm config get .catalog.react, pnpm\n      config get\n      \u0027packageExtensions[\"@babel/parser\"].peerDependencies[\"@babel/types\"]\u0027),\n      and pnpm config set now accepts dot-leading or subscripted\n      keys (e.g. pnpm config set .ignoreScripts true).\n    - pnpm config get --json now prints a JSON serialization of\n      config value, and pnpm config set --json now parses the input\n      value as JSON.\n  * Patch Changes\n    - Semi-breaking. When automatically installing missing peer\n      dependencies, prefer versions that are already present in the\n      direct dependencies of the root workspace package #9835.\n    - When executing the pnpm create command, must verify whether\n      the node version is supported even if a cache already exists\n      #9775.\n    - When making requests for the non-abbreviated packument, add\n      */* to the Accept header to avoid getting a 406 error on AWS\n      CodeArtifact #9862.\n    - The standalone exe version of pnpm works with glibc 2.26\n      again #9734.\n    - Fix a regression in which pnpm dlx pkg --help doesn\u0027t pass\n      --help to pkg #9823.\n\n- update to 10.14.0:\n  * Minor Changes\n    - Added support for JavaScript runtime installation\n      (Related PR: #9755.)\n      Declare Node.js, Deno, or Bun in devEngines.runtime (inside\n      package.json) and let pnpm download and pin it automatically.\n      Usage example:\n\n        {\n          \"devEngines\": {\n            \"runtime\": {\n              \"name\": \"node\",\n              \"version\": \"^24.4.0\",\n              \"onFail\": \"download\" // we only support the \"download\" value for now\n            }\n          }\n        }\n      How it works:\n      - pnpm install resolves your specified range to the latest\n        matching runtime version.\n      - The exact version (and checksum) is saved in the lockfile.\n      - Scripts use the local runtime, ensuring consistency across\n        environments.\n      Why this is better:\n      - This new setting supports also Deno and Bun (vs. our\n        Node-only settings useNodeVersion and\n        executionEnv.nodeVersion)\n      - Supports version ranges (not just a fixed version).\n      - The resolved version is stored in the pnpm lockfile, along\n        with an integrity checksum for future validation of the\n        Node.js content\u0027s validity.\n      - It can be used on any workspace project (like\n        executionEnv.nodeVersion). So, different projects in a\n        workspace can use different runtimes.\n      - For now devEngines.runtime setting will install the runtime\n        locally, which we will improve in future versions of pnpm\n        by using a shared location on the computer.\n    - Add --cpu, --libc, and --os to pnpm install, pnpm add, and\n      pnpm dlx to customize supportedArchitectures via the CLI\n      #7510.\n  * Patch Changes\n    - Fix a bug in which pnpm add downloads packages whose libc\n      differ from pnpm.supportedArchitectures.libc.\n    - The integrities of the downloaded Node.js artifacts are\n      verified #9750.\n    - Allow dlx to parse CLI flags and options between the dlx\n      command and the command to run or between the dlx command and\n      -- #9719.\n    - pnpm install --prod should removing hoisted dev dependencies\n      #9782.\n    - Fix an edge case bug causing local tarballs to not re-link\n      into the virtual store. This bug would happen when changing\n      the contents of the tarball without renaming the file and\n      running a filtered install.\n    - Fix a bug causing pnpm install to incorrectly assume the\n      lockfile is up to date after changing a local tarball that\n      has peers dependencies.\n\n- update to 10.13.1:\n  * Patch Changes\n    - Run user defined pnpmfiles after pnpmfiles of plugins.\n- update to 10.13.0:\n  * Minor Changes\n    - Added the possibility to load multiple pnpmfiles. The pnpmfile\n      setting can now accept a list of pnpmfile locations #9702.\n    - pnpm will now automatically load the pnpmfile.cjs file from any\n      config dependency named @pnpm/plugin-* or pnpm-plugin-* #9729.\n    - The order in which config dependencies are initialized should\n      not matter \u2014 they are initialized in alphabetical order. If a\n      specific order is needed, the paths to the pnpmfile.cjs files in\n      the config dependencies can be explicitly listed using the\n      pnpmfile setting in pnpm-workspace.yaml.\n  * Patch Changes\n    - When patching dependencies installed via pkg.pr.new, treat them\n      as Git tarball URLs #9694.\n    - Prevent conflicts between local projects\u0027 config and the global\n      config in dangerouslyAllowAllBuilds, onlyBuiltDependencies,\n      onlyBuiltDependenciesFile, and neverBuiltDependencies #9628.\n    - Sort keys in pnpm-workspace.yaml with deep #9701.\n    - The pnpm rebuild command should not add pkgs included in\n      ignoredBuiltDependencies to ignoredBuilds in\n      node_modules/.modules.yaml #9338.\n    - Replaced shell-quote with shlex for quoting command arguments\n      #9381.\n\n- update to 10.12.4:\n  * Patch Changes\n    - Fix pnpm licenses command for local dependencies #9583.\n    - Fix a bug in which pnpm ls --filter=not-exist --json prints\n      nothing instead of an empty array #9672.\n    - Fix a deadlock that sometimes happens during peer dependency\n      resolution #9673.\n    - Running pnpm install after pnpm fetch should hoist all\n      dependencies that need to be hoisted.\n    - Fixes a regression introduced in v10.12.2 by #9648; resolves\n      #9689.\n\n- update to 10.12.3:\n  * Patch Changes\n    - Restore hoisting of optional peer dependencies when installing\n      with an outdated lockfile.  Regression introduced in v10.12.2 by\n      #9648; resolves #9685.\n\n- update to 10.12.2:\n  * Patch Changes\n    - Fixed hoisting with enableGlobalVirtualStore set to true #9648.\n    - Fix the --help and -h flags not working as expected for the pnpm\n      create command.\n    - The dependency package path output by the pnpm licenses list\n      --json command is incorrect.\n    - Fix a bug in which pnpm deploy fails due to overridden\n      dependencies having peer dependencies causing\n      ERR_PNPM_OUTDATED_LOCKFILE #9595.\n\n- update to 10.12.1 (10.2.0 was yanked):\n  * Minor Changes\n    - Experimental. Added support for global virtual stores. When\n      enabled, node_modules contains only symlinks to a central\n      virtual store, rather to node_modules/.pnpm. By default, this\n      central store is located at \u003cstore-path\u003e/links (you can find\n      the store path by running pnpm store path).\n      In the central virtual store, each package is hard linked\n      into a directory whose name is the hash of its dependency\n      graph. This allows multiple projects on the system to symlink\n      shared dependencies from this central location, significantly\n      improving installation speed when a warm cache is available.\n        This is conceptually similar to how NixOS manages packages,\n        using dependency graph hashes to create isolated and\n        reusable package directories.\n      To enable the global virtual store, set\n      enableGlobalVirtualStore: true in your root\n      pnpm-workspace.yaml, or globally via:\n        pnpm config -g set enable-global-virtual-store true\n      NOTE: In CI environments, where caches are typically cold,\n      this setting may slow down installation. pnpm automatically\n      disables the global virtual store when running in CI.\n      Related PR: #8190\n    - The pnpm update command now supports updating catalog:\n      protocol dependencies and writes new specifiers to\n      pnpm-workspace.yaml.\n    - A new catalogMode setting is available for controlling if and\n      how dependencies are added to the default catalog. It can be\n      configured to several modes:\n      - strict: Only allows dependency versions from the catalog.\n        Adding a dependency outside the catalog\u0027s version range\n        will cause an error.\n      - prefer: Prefers catalog versions, but will fall back to\n        direct dependencies if no compatible version is found.\n      - manual (default): Does not automatically add dependencies\n        to the catalog.\n    - Added two new CLI options (--save-catalog and\n      --save-catalog-name=\u003cname\u003e) to pnpm add to save new\n      dependencies as catalog entries. catalog: or catalog:\u003cname\u003e\n      will be added to package.json and the package specifier will\n      be added to the catalogs or catalog[\u003cname\u003e] object in\n      pnpm-workspace.yaml #9425.\n    - Semi-breaking. The keys used for side-effects caches have\n      changed. If you have a side-effects cache generated by a\n      previous version of pnpm, the new version will not use it and\n      will create a new cache instead #9605.\n    - Added a new setting called ci for explicitly telling pnpm if\n      the current environment is a CI or not.\n  * Patch Changes\n    - Sort versions printed by pnpm patch using semantic versioning\n      rules.\n    - Improve the way the error message displays mismatched\n      specifiers. Show differences instead of 2 whole objects\n      #9598.\n    - Revert #9574 to fix a regression #9596.\n\n- update to 10.11.1:\n  * Patch Changes\n    - Fix an issue in which pnpm deploy --legacy creates unexpected\n      directories when the root package.json has a workspace\n      package as a peer dependency #9550.\n    - Dependencies specified via a URL that redirects will only be\n      locked to the target if it is immutable, fixing a regression\n      when installing from GitHub releases. (#9531)\n    - Installation should not exit with an error if\n      strictPeerDependencies is true but all issues are ignored by\n      peerDependencyRules #9505.\n    - Use pnpm_config_ env variables instead of npm_config_ #9571.\n    - Fix a regression (in v10.9.0) causing the --lockfile-only\n      flag on pnpm update to produce a different pnpm-lock.yaml\n      than an update without the flag.\n    - Let pnpm deploy work in repos with overrides when\n      inject-workspace-packages=true #9283.\n    - Fixed the problem of path loss caused by parsing URL address.\n      Fixes a regression shipped in pnpm v10.11 via #9502.\n    - pnpm -r --silent run should not print out section #9563.\n\n- update to 10.11.0:\n  * Minor Changes\n    - A new setting added for pnpm init to create a package.json\n      with type=module, when init-type is module. Works as a flag\n      for the init command too #9463.\n    - Added support for Nushell to pnpm setup #6476.\n    - Added two new flags to the pnpm audit command, --ignore and\n      --ignore-unfixable #8474.\n      Ignore all vulnerabilities that have no solution:\n      \u003e pnpm audit --ignore-unfixable\n      Provide a list of CVE\u0027s to ignore those specifically, even if\n      they have a resolution.\n      \u003e pnpm audit --ignore=CVE-2021-1234 --ignore=CVE-2021-5678\n    - Added support for recursively running pack in every project\n      of a workspace #4351.\n      Now you can run pnpm -r pack to pack all packages in the\n      workspace.\n  * Patch Changes\n    - pnpm version management should work, when\n      dangerouslyAllowAllBuilds is set to true #9472.\n    - pnpm link should work from inside a workspace #9506.\n    - Set the default workspaceConcurrency to\n      Math.min(os.availableParallelism(), 4) #9493.\n    - Installation should not exit with an error if\n      strictPeerDependencies is true but all issues are ignored by\n      peerDependencyRules #9505.\n    - Read updateConfig from pnpm-workspace.yaml #9500.\n    - Add support for recursive pack\n    - Remove url.parse usage to fix warning on Node.js 24 #9492.\n    - pnpm run should be able to run commands from the workspace\n      root, if ignoreScripts is set tot true #4858.\n\n- update to 10.10.0:\n  * Allow loading the preResolution, importPackage, and fetchers\n    hooks from local pnpmfile.\n  * Fix cd command, when shellEmulator is true #7838.\n  * Sort keys in pnpm-workspace.yaml #9453.\n  * Pass the npm_package_json environment variable to the\n    executed scripts #9452.\n  * Fixed a mistake in the description of the --reporter=silent\n    option.\n\n- update to 10.9.0:\n  * Minor Changes\n    - Added support for installing JSR packages. You can now\n      install JSR packages using the following syntax:\n        add jsr:\u003cpkg_name\u003e\n      or with a version range:\n        pnpm add jsr:\u003cpkg_name\u003e@\u003crange\u003e\n      For example, running:\n        pnpm add jsr:@foo/bar\n      will add the following entry to your package.json:\n        {\n          \"dependencies\": {\n            \"@foo/bar\": \"jsr:^0.1.2\"\n          }\n        }\n      When publishing, this entry will be transformed into a format\n      compatible with npm, older versions of Yarn, and previous\n      pnpm versions:\n        {\n          \"dependencies\": {\n            \"@foo/bar\": \"npm:@jsr/foo__bar@^0.1.2\"\n          }\n        }\n      Related issue: #8941.\n      Note: The @jsr scope defaults to https://npm.jsr.io/ if the\n      @jsr:registry setting is not defined.\n    - Added a new setting, dangerouslyAllowAllBuilds, for\n      automatically running any scripts of dependencies without the\n      need to approve any builds. It was already possible to allow\n      all builds by adding this to pnpm-workspace.yaml:\n        neverBuiltDependencies: []\n      dangerouslyAllowAllBuilds has the same effect but also allows\n      to be set globally via:\n        pnpm config set dangerouslyAllowAllBuilds true\n      It can also be set when running a command:\n        pnpm install --dangerously-allow-all-builds\n  * Patch Changes\n    - Fix a false negative in verifyDepsBeforeRun when nodeLinker\n      is hoisted and there is a workspace package without\n      dependencies and node_modules directory #9424.\n    - Explicitly drop verifyDepsBeforeRun support for nodeLinker:\n      pnp. Combining verifyDepsBeforeRun and nodeLinker: pnp will\n      now print a warning.\n\n- udate to 10.8.1:\n  * Patch Changes\n    - Removed bright white highlighting, which didn\u0027t look good on\n      some light themes #9389.\n    - If there is no pnpm related configuration in package.json,\n      onlyBuiltDependencies will be written to pnpm-workspace.yaml\n      file #9404.\n    - The patch file path saved by the pnpm patch-commit and\n      patch-remove commands should be a relative path #9403.\n\n- update to 10.8:\n  * Minor Changes\n      Experimental. A new hook is supported for updating\n      configuration settings. The hook can be provided via\n      .pnpmfile.cjs. For example:\n\n        module.exports = {\n          hooks: {\n            updateConfig: (config) =\u003e ({\n              ...config,\n              nodeLinker: \"hoisted\",\n            }),\n          },\n        };\n\n      Now you can use the pnpm add command with the --config flag\n      to install new configurational dependencies #9377.\n  * Patch Changes\n    - Do not hang indefinitely, when there is a glob that starts\n      with !/ in pnpm-workspace.yaml. This fixes a regression\n      introduced by #9169.\n    - pnpm audit --fix should update the overrides in\n      pnpm-workspace.yaml.\n    - pnpm link should update overrides in pnpm-workspace.yaml, not\n      in package.json #9365.\n\n- update to 10.7.1:\n  * Patch Changes\n    - pnpm config set should convert the settings to their correct\n      type before adding them to pnpm-workspace.yaml #9355.\n    - pnpm config get should read auth related settings via npm CLI\n      #9345.\n    - Replace leading ~/ in a path in .npmrc with the home directory\n      #9217.\n\n- update to 10.7:\n  * Minor Changes\n    - pnpm config get and list also show settings set in\n      pnpm-workspace.yaml files #9316.\n    - It should be possible to use env variables in\n      pnpm-workspace.yaml setting names and value.\n    - Add an ability to patch dependencies by version ranges. Exact\n      versions override version ranges, which in turn override\n      name-only patches. Version range * is the same as name-only,\n      except that patch application failure will not be ignored.\n      For example:\n\n        patchedDependencies:\n          foo: patches/foo-1.patch\n          foo@^2.0.0: patches/foo-2.patch\n          foo@2.1.0: patches/foo-3.patch\n\n      The above configuration would apply patches/foo-3.patch to\n      foo@2.1.0, patches/foo-2.patch to all foo versions which\n      satisfy ^2.0.0 except 2.1.0, and patches/foo-1.patch to the\n      remaining foo versions.\n      [!WARNING]\n      The version ranges should not overlap. If you want to\n      specialize a sub range, make sure to exclude it from the\n      other keys. For example:\n\n        # pnpm-workspace.yaml\n        patchedDependencies:\n          # the specialized sub range\n          \u0027foo@2.2.0-2.8.0\u0027: patches/foo.2.2.0-2.8.0.patch\n          # the more general patch, excluding the sub range above\n          \u0027foo@\u003e=2.0.0 \u003c2.2.0 || \u003e2.8.0\u0027: \u0027patches/foo.gte2.patch\n\n      In most cases, however, it\u0027s sufficient to just define an\n      exact version to override the range.\n    - pnpm config set --location=project saves the setting to a\n      pnpm-workspace.yaml file if no .npmrc file is present in the\n      directory #9316.\n    - Rename pnpm.allowNonAppliedPatches to\n      pnpm.allowUnusedPatches. The old name is still supported but\n      it would print a deprecation warning message.\n    - Add pnpm.ignorePatchFailures to manage whether pnpm would\n      ignore patch application failures.\n      - If ignorePatchFailures is not set, pnpm would throw an\n        error when patches with exact versions or version ranges\n        fail to apply, and it would ignore failures from name-only\n        patches.\n      - If ignorePatchFailures is explicitly set to false, pnpm\n        would throw an error when any type of patch fails to apply.\n      - If ignorePatchFailures is explicitly set to true, pnpm\n        would print a warning when any type of patch fails to\n        apply.\n  * Patch Changes\n    - Remove dependency paths from audit output to prevent\n      out-of-memory errors #9280.\n\n- update to 10.6.5:\n  * Patch Changes\n    - Remove warnings after having explicitly approved no builds\n      #9296.\n    - When installing different dependency packages, should retain\n      the ignoredBuilds field in the .modules.yaml file #9240.\n    - Fix usages of the catalog: protocol in injected local\n      workspace packages. This previously errored with\n      ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER. #8715\n    - Setting workspace-concurrency to less than or equal to 0\n      should work #9297.\n\n- update to 10.6.4:\n  * Patch Changes\n    - Fix pnpm dlx with --allow-build flag #9263.\n    - Invalid Node.js version in use-node-version should not cause\n      pnpm itself to break #9276.\n    - The max amount of workers running for linking packages from\n      the store has been reduced to 4 to achieve optimal results\n      #9286. The workers are performing many file system\n      operations, so increasing the number of CPUs doesn\u0027t help\n      performance after some point.\n\n- update to 10.6.3:\n  * Patch Changes\n    - pnpm install --prod=false should not crash, when executed in\n      a project with a pnpm-workspace.yaml file #9233. This fixes\n      regression introduced via #9211.\n    - Add the missing node-options config to recursive run #9180.\n    - Removed a branching code path that only executed when\n      dedupe-peer-dependents=false. We believe this internal\n      refactor will not result in behavior changes, but we expect\n      it to make future pnpm versions behave more consistently for\n      projects that override dedupe-peer-dependents to false. There\n      should be less unique bugs from turning off\n      dedupe-peer-dependents.\n      See details in #9259.\n\n- update to 10.6.2:\n  * Patch Changes\n    - pnpm self-update should always update the version in the\n      packageManager field of package.json.\n    - Fix running pnpm CLI from pnpm CLI on Windows when the CLI is\n      bundled to an executable #8971.\n    - pnpm patch-commit will now use the same filesystem as the\n      store directory to compare and create patch files.\n    - Don\u0027t show info output when --loglevel=error is used.\n    - peerDependencyRules should be set in pnpm-workspace.yaml to\n      take effect.\n\n- update to 10.6.1:\n  * Patch Changes\n    - The pnpm CLI process should not stay hanging, when --silent\n      reporting is used.\n    - When --loglevel is set to error, don\u0027t show installation\n      summary, execution time, and big tarball download progress.\n    - Don\u0027t ignore pnpm.patchedDependencies from package.json\n      #9226.\n    - When executing the approve-builds command, if package.json\n      contains onlyBuiltDependencies or ignoredBuiltDependencies,\n      the selected dependency package will continue to be written\n      into package.json.\n    - When a package version cannot be found in the package\n      metadata, print the registry from which the package was\n      fetched.\n\n- update to 10.6.0:\n  * Minor Changes\n    - pnpm-workspace.yaml can now hold all the settings that .npmrc\n      accepts. The settings should use camelCase #9211.\n      pnpm-workspace.yaml example:\n\n        verifyDepsBeforeRun: install\n        optimisticRepeatInstall: true\n        publicHoistPattern:\n          - \"*types*\"\n          - \"!@types/react\"\n\n    - Projects using a file: dependency on a local tarball file\n      (i.e. .tgz, .tar.gz, .tar) will see a performance improvement\n      during installation. Previously, using a file: dependency on\n      a tarball caused the lockfile resolution step to always run.\n      The lockfile will now be considered up-to-date if the tarball\n      is unchanged.\n  * Patch Changes\n    - pnpm self-update should not leave a directory with a broken\n      pnpm installation if the installation fails.\n    - fast-glob replace with tinyglobby to reduce the size of the\n      pnpm CLI dependencies #9169.\n    - pnpm deploy should not remove fields from the deployed\n      package\u0027s package.json file #9215.\n    - pnpm self-update should not read the pnpm settings from the\n      package.json file in the current working directory.\n    - Fix pnpm deploy creating a package.json without the imports\n      and license field #9193.\n    - pnpm update -i should list only packages that have newer\n      versions #9206.\n    - Fix a bug causing entries in the catalogs section of the\n      pnpm-lock.yaml file to be removed when\n      dedupe-peer-dependents=false on a filtered install. #9112\n\n- update to 10.5.2:\n  * The pnpm config set command should change the global .npmrc\n    file by default.\n    This was a regression introduced by #9151 and shipped in pnpm\n    v10.5.0.\n\n- update to 10.5.1:\n  * Throw an error message if a pnpm-workspaces.yaml or\n    pnpm-workspaces.yml file is found instead of a\n    pnpm-workspace.yaml #9170.\n  * Fix the update of pnpm-workspace.yaml by the pnpm\n    approve-builds command #9168.\n  * Normalize generated link paths in package.json #9163\n  * Specifying overrides in pnpm-workspace.yaml should work.\n  * pnpm dlx should ignore settings from the package.json file in\n    the current working directory #9178.\n\n- update to 10.5.0:\n  * The pnpm.* settings from package.json can now be specified in\n    the pnpm-workspace.yaml file instead #9121.\n  * Added support for automatically syncing files of injected\n    workspace packages after pnpm run #9081. Use the sync-injected\n    -deps-after-scripts setting to specify which scripts build\n    the workspace package. This tells pnpm when syncing is needed.\n    The setting should be defined in a .npmrc file at the root of\n    the workspace.\n  * The packages field in pnpm-workspace.yaml became optional.\n  * pnpm link with no parameters should work as if --global is\n    specified #9151\n  * Allow scope registry CLI option without --config. prefix such\n    as --@scope:registry=https://scope.example.com/npm #9089\n  * pnpm link \u003cpath\u003e should calculate relative path from the root\n    of the workspace directory #9132\n  * Fix a bug causing catalog snapshots to be removed from the\n    pnpm-lock.yaml file when using --fix-lockfile and --filter. #8639\n  * Fix a bug causing catalog protocol dependencies to not re-\n    resolve on a filtered install #8638\n\n- update to 10.4.1:\n  * Throws an error when the value provided by the --allow-build\n    option overlaps with the pnpm.ignoredBuildDependencies list #9105.\n  * Print pnpm\u0027s version after the execution time at the end of the console output.\n  * Print warning about ignored builds of dependencies on repeat install #9106.\n  * Setting init-package-manager should work.\n- includes 10.4.0:\n  * pnpm approve-builds --global works now for allowing\n    dependencies of globally installed packages to run\n    postinstall scripts.\n  * The pnpm add command now supports a new flag, --allow-build,\n    which allows building the specified dependencies.\n  * pnpm approve-builds should work after two consecutive pnpm install runs #9083.\n  * Fix instruction for updating pnpm with corepack #9101.\n  * The pnpm version specified by packageManager cannot start with v.\n\n- update to 10.3.0:\n  * Added a new setting called strict-dep-builds. When enabled,\n    the installation will exit with a non-zero exit code if any\n    dependencies have unreviewed build scripts (aka postinstall scripts) #9071.\n  * Fix a false negative of verify-deps-before-run after pnpm\n    install --production|--no-optional #9019.\n  * Print the warning about blocked installation scripts at the\n    end of the installation output and make it more prominent.\n\n- update to 10.2.1:\n  * Don\u0027t read a package from side-effects cache if it isn\u0027t\n    allowed to be built #9042.\n  * pnpm approve-builds should work, when executed from a\n    subdirectory of a workspace #9042.\n  * pnpm deploy --legacy should work without injected dependencies\n  * Add information about how to deploy without \"injected\n    dependencies\" to the \"pnpm deploy\" error message.\n- includes 10.2.0:\n  * Packages executed via pnpm dlx and pnpm create are allowed to\n    be built (run postinstall scripts) by default.\n  * Quote args for scripts with shell-quote to support new lines\n    (on POSIX only) #8980.\n  * Fix a bug in which pnpm deploy fails to read the correct\n    projectId when the deploy source is the same as the workspace directory #9001.\n  * Proxy settings should be respected, when resolving Git-hosted\n    dependencies #6530.\n  * Prevent overrides from adding invalid version ranges to\n    peerDependencies by keeping the peerDependencies and\n    overriding them with prod dependencies #8978.\n  * Sort the package names in the \"pnpm.onlyBuiltDependencies\"\n    list saved by pnpm approve-builds.\n\n- update to 10.1.0:\n  * Added a new command for printing the list of dependencies\n    with ignored build scripts: pnpm ignored-builds #8963.\n  * Added a new command for approving dependencies for running\n    scripts during installation: pnpm approve-builds #8963.\n  * Added a new setting called optimistic-repeat-install. When\n    enabled, a fast check will be performed before proceeding to\n    installation. This way a repeat install or an install on a\n    project with everything up-to-date becomes a lot faster. But\n    some edge cases might arise, so we keep it disabled by\n    default for now #8977.\n  * Added a new field \"pnpm.ignoredBuiltDependencies\" for\n    explicitly listing packages that should not be built. When a\n    package is in the list, pnpm will not print an info message\n    about that package not being built #8935.\n  * Verify that the package name is valid when executing the\n    publish command.\n  * When running pnpm install, the preprepare and postprepare\n    scripts of the project should be executed #8989.\n  * Allow workspace: and catalog: to be part of wider version\n    range in peerDependencies.\n  * pnpm deploy should inherit the pnpm object from the root\n    package.json #8991.\n  * Make sure that the deletion of a node_modules in a sub-\n    project of a monorepo is detected as out-of-date #8959.\n  * Fix infinite loop caused by lifecycle scripts using pnpm to\n    execute other scripts during pnpm install with\n    verify-deps-before-run=install #8954.\n  * Replace strip-ansi with the built-in util.\n    stripVTControlCharacters #9009.\n  * Do not print patched dependencies as ignored dependencies\n    that require a build #8952.\n\n- update to 10.0.0:\n  * Lifecycle scripts of dependencies are not executed during\n    installation by default! This is a breaking change aimed at\n    increasing security. In order to allow lifecycle scripts of\n    specific dependencies, they should be listed in the pnpm\n    onlyBuiltDependencies field of package.json #8897\n  * The pnpm link command now adds overrides to the root package.json. #8653\n  * Secure hashing with SHA256\n  * Configuration updates\n  * Changes to the global store\n  * The # character is now escaped in directory names within\n    node_modules/.pnpm. #8557\n  * Running pnpm add --global pnpm or pnpm add --global @pnpm/exe\n    now fails with an error message, directing you to use pnpm\n    self-update instead. #8728\n  * Dependencies added via a URL now record the final resolved\n    URL in the lockfile, ensuring that any redirects are fully\n    captured. #8833\n  * The pnpm deploy command now only works in workspaces that\n    have inject-workspace-packages=true. This limitation is\n    introduced to allow us to create a proper lockfile for the\n    deployed project using the workspace lockfile.\n  * Removed conversion from lockfile v6 to v9. If you need v6-to-\n    v9 conversion, use pnpm CLI v9.\n  * pnpm test now passes all parameters after the test keyword\n    directly to the underlying script. This matches the behavior\n    of pnpm run test. Previously you needed to use the -- prefix. #8619\n  * node-gyp updated to version 11.\n  * pnpm deploy now tries creating a dedicated lockfile from a\n    shared lockfile for deployment. It will fallback to\n    deployment without a lockfile if there is no shared lockfile\n    or force-legacy-deploy is set to true.\n  * Added support for a new type of dependencies called\n    \"configurational dependencies\". These dependencies are\n    installed before all the other types of dependencies (befor\n    \"dependencies\", \"devDependencies\", \"optionalDependencies\").\n  * New verify-deps-before-run setting. This setting controls how\n    pnpm checks node_modules before running scripts #8836\n  * On repeated installs, pnpm performs a quick check to ensure\n    node_modules is up to date. #8838\n  * pnpm add integrates with default workspace catalog: #8640\n  * pnpm dlx now resolves packages to their exact versions and\n    uses these exact versions for cache keys. This ensures pnpm\n    dlx always installs the latest requested packages #8811\n  * No node_modules validation on certain commands. Commands that\n    should not modify node_modules (e.g., pnpm install --lockfile-\n    only) no longer validate or purge node_modules. #8657\n  * for full changes, see https://github.com/pnpm/pnpm/releases/tag/v10.0.0\n\n- update to 9.15.3:\n  * Fixed the Regex used to find the package manifest during\n    packing #8938.\n  * pnpm update --filter \u003cpattern\u003e --latest \u003cpkg\u003e should only\n    change the specified package for the specified workspace, when\n    dedupe-peer-dependents is set to true #8877.\n  * Exclude .DS_Store file at patch-commit #8922.\n  * Fix a bug in which pnpm patch is unable to bring back old patch\n    without specifying @version suffix #8919.\n\n- update to 9.15.2:\n  * Fixed publish/pack error with workspace dependencies with\n    relative paths #8904. It was broken in v9.4.0 (398472c).\n  * Use double quotes in the command suggestion by pnpm patch on\n    Windows #7546.\n  * Do not fall back to SSH, when resolving a git-hosted package if\n    git ls-remote works via HTTPS #8906.\n  * Improve how packages with blocked lifecycle scripts are\n    reported during installation. Always print the list of ignored\n    scripts at the end of the output. Include a hint about how to\n    allow the execution of those packages.\n\n- update to version 9.15.1:\n  * pnpm remove should not link dependencies from the workspace,\n    when link-workspace-packages is set to false #7674\n  * Installation with hoisted node_modules should not fail, when\n    a dependency has itself in its own peer dependencies #8854\n\n- update to version 9.15.0:\n  * Metadata directory version bumped to force fresh cache after\n    we shipped a fix to the metadata write function. This change\n    is backward compatible as install doesn\u0027t require a metadata cache\n  * pnpm update --global should not crash if there are no any\n    global packages installed #7898\n  * Fix an exception when running pnpm update --interactive if\n    catalogs are used.\n\n- update to version 9.14.4:\n  * Don\u0027t ever save mutated metadata to the metadata cache\n- includes 9.14.3:\n  * Some commands should ignore the packageManager field check of\n    package.json #7959\n\n- update to version 9.14.2:\n    pnpm publish --json should work #8788\n- includes 9.14.1:\n  * Added support for pnpm pack --json to print packed tarball\n    and contents in JSON format #8765\n  * pnpm exec should print a meaningful error message when no\n    command is provided #8752\n  * pnpm setup should remove the CLI from the target location\n    before moving the new binary #8173\n  * Fix ERR_PNPM_TARBALL_EXTRACT error while installing a\n    dependency from GitHub having a slash in branch name #7697\n  * Don\u0027t crash if the use-node-version setting is used and the\n    system has no Node.js installed #8769\n  * Convert settings in local .npmrc files to their correct types.\n    For instance, child-concurrency should be a number, not a string #5075\n  * pnpm should fail if a project requires a different package\n    manager even if manage-package-manager-versions is set to true\n  * pnpm init should respect the --dir option #8768\n- includes 9.14.0:\n  * chore: use verify-deps-before-run\n  * fix(init): --dir option should be respected (#8768)\n  * feat: support json format output in pnpm pack (#8765)\n  * fix: pnpm exec should specify command (#8774)\n  * fix: proper types of settings in local .npmrc files (#8775)\n  * fix: ERR_PNPM_TARBALL_EXTRACT when the URL\u0027s hash contains a slash\n  * fix: the CLI should fail if a different package manager is\n    required by the project\n  * fix: ETXTBSY error on running setup (#8780)\n  * feat: add linux-riscv64 build (#8779)\n  * fix: remove link to X from update notifier (#8773)\n  * docs: update sponsors\n  * fix: upgrade cross-sapwn (#8782)\n  * fix: don\u0027t crash when use-node-version is set and there is no node.js\n  * docs: update changesets\n\n- update to version 9.13.2:\n  * Detection of circular peer dependencies should not crash with\n    aliased dependencies #8759. Fixes a regression introduced in\n    the previous version.\n  * Fix race condition of symlink creations caused by multiple\n    parallel dlx processes.\n\n- update to version 9.13.1:\n  * Fixed some edge cases where resolving circular peer\n    dependencies caused a dead lock #8720\n\n- update to version 9.13.0:\n  * The self-update now accepts a version specifier to install a\n    specific version of pnpm.\n  * Fix Cannot read properties of undefined (reading \u0027name\u0027) that\n    is printed while trying to render the missing peer\n    dependencies warning message #8538\n\n- update to version 9.12.3:\n  * Don\u0027t purge node_modules, when typing \"n\" in the prompt that\n    asks whether to remove node_modules before installation #8655\n  * Fix a bug causing pnpm to infinitely spawn itself when manage-\n    package-manager-versions=true is set and the .tools directory is corrupt\n  * Use crypto.hash, when available, for improved performance #8629\n  * Fixed a race condition in temporary file creation in the\n    store by including worker thread ID in filename. Previously,\n    multiple worker threads could attempt to use the same\n    temporary file. Temporary files now include both process ID\n    and thread ID for uniqueness #8703\n  * All commands should read settings from the package.json at\n    the root of the workspace #8667\n  * When manage-package-manager-versions is set to true, errors\n    spawning a self-managed version of pnpm will now be shown\n    (instead of being silent)\n  * Pass the find command to npm, it is an alias for npm search\n- includes 9.12.2:\n  * When checking whether a file in the store has executable\n    permissions, the new approach checks if at least one of the\n    executable bits (owner, group, and others) is set to 1.\n    Previously, a file was incorrectly considered executable only\n    when all the executable bits were set to 1. This fix ensures\n    that files with any executable permission, regardless of the\n    user class, are now correctly identified as executable #8546\n\n",
        "title": "Description of the patch"
      },
      {
        "category": "details",
        "text": "openSUSE-Leap-16.0-packagehub-31",
        "title": "Patchnames"
      },
      {
        "category": "legal_disclaimer",
        "text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
        "title": "Terms of use"
      }
    ],
    "publisher": {
      "category": "vendor",
      "contact_details": "https://www.suse.com/support/security/contact/",
      "name": "SUSE Product Security Team",
      "namespace": "https://www.suse.com/"
    },
    "references": [
      {
        "category": "external",
        "summary": "SUSE ratings",
        "url": "https://www.suse.com/support/security/rating/"
      },
      {
        "category": "self",
        "summary": "URL of this CSAF notice",
        "url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2025-20115-1.json"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2021-1234 page",
        "url": "https://www.suse.com/security/cve/CVE-2021-1234/"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2021-5678 page",
        "url": "https://www.suse.com/security/cve/CVE-2021-5678/"
      }
    ],
    "title": "Security update for pnpm",
    "tracking": {
      "current_release_date": "2025-11-27T12:28:46Z",
      "generator": {
        "date": "2025-11-27T12:28:46Z",
        "engine": {
          "name": "cve-database.git:bin/generate-csaf.pl",
          "version": "1"
        }
      },
      "id": "openSUSE-SU-2025-20115-1",
      "initial_release_date": "2025-11-27T12:28:46Z",
      "revision_history": [
        {
          "date": "2025-11-27T12:28:46Z",
          "number": "1",
          "summary": "Current version"
        }
      ],
      "status": "final",
      "version": "1"
    }
  },
  "product_tree": {
    "branches": [
      {
        "branches": [
          {
            "branches": [
              {
                "category": "product_version",
                "name": "pnpm-10.22.0-bp160.1.1.noarch",
                "product": {
                  "name": "pnpm-10.22.0-bp160.1.1.noarch",
                  "product_id": "pnpm-10.22.0-bp160.1.1.noarch"
                }
              },
              {
                "category": "product_version",
                "name": "pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
                "product": {
                  "name": "pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
                  "product_id": "pnpm-bash-completion-10.22.0-bp160.1.1.noarch"
                }
              },
              {
                "category": "product_version",
                "name": "pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
                "product": {
                  "name": "pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
                  "product_id": "pnpm-fish-completion-10.22.0-bp160.1.1.noarch"
                }
              },
              {
                "category": "product_version",
                "name": "pnpm-zsh-completion-10.22.0-bp160.1.1.noarch",
                "product": {
                  "name": "pnpm-zsh-completion-10.22.0-bp160.1.1.noarch",
                  "product_id": "pnpm-zsh-completion-10.22.0-bp160.1.1.noarch"
                }
              }
            ],
            "category": "architecture",
            "name": "noarch"
          },
          {
            "branches": [
              {
                "category": "product_name",
                "name": "openSUSE Leap 16.0",
                "product": {
                  "name": "openSUSE Leap 16.0",
                  "product_id": "openSUSE Leap 16.0"
                }
              }
            ],
            "category": "product_family",
            "name": "SUSE Linux Enterprise"
          }
        ],
        "category": "vendor",
        "name": "SUSE"
      }
    ],
    "relationships": [
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "pnpm-10.22.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:pnpm-10.22.0-bp160.1.1.noarch"
        },
        "product_reference": "pnpm-10.22.0-bp160.1.1.noarch",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      },
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "pnpm-bash-completion-10.22.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:pnpm-bash-completion-10.22.0-bp160.1.1.noarch"
        },
        "product_reference": "pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      },
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "pnpm-fish-completion-10.22.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:pnpm-fish-completion-10.22.0-bp160.1.1.noarch"
        },
        "product_reference": "pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      },
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "pnpm-zsh-completion-10.22.0-bp160.1.1.noarch as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:pnpm-zsh-completion-10.22.0-bp160.1.1.noarch"
        },
        "product_reference": "pnpm-zsh-completion-10.22.0-bp160.1.1.noarch",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      }
    ]
  },
  "vulnerabilities": [
    {
      "cve": "CVE-2021-1234",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2021-1234"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "A vulnerability in the cluster management interface of Cisco\u0026nbsp;SD-WAN vManage Software could allow an unauthenticated, remote attacker to view sensitive information on an affected system. To be affected by this vulnerability, the vManage software must be in cluster mode.\r\nThis vulnerability is due to the absence of authentication for sensitive information in the cluster management interface. An attacker could exploit this vulnerability by sending a crafted request to the cluster management interface of an affected system. A successful exploit could allow the attacker to view sensitive information on the affected system.Cisco\u0026nbsp;has released software updates that address this vulnerability. There are no workarounds that address this vulnerability.",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:pnpm-10.22.0-bp160.1.1.noarch",
          "openSUSE Leap 16.0:pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
          "openSUSE Leap 16.0:pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
          "openSUSE Leap 16.0:pnpm-zsh-completion-10.22.0-bp160.1.1.noarch"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2021-1234",
          "url": "https://www.suse.com/security/cve/CVE-2021-1234"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:pnpm-10.22.0-bp160.1.1.noarch",
            "openSUSE Leap 16.0:pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
            "openSUSE Leap 16.0:pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
            "openSUSE Leap 16.0:pnpm-zsh-completion-10.22.0-bp160.1.1.noarch"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2025-11-27T12:28:46Z",
          "details": "moderate"
        }
      ],
      "title": "CVE-2021-1234"
    },
    {
      "cve": "CVE-2021-5678",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2021-5678"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "unknown",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:pnpm-10.22.0-bp160.1.1.noarch",
          "openSUSE Leap 16.0:pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
          "openSUSE Leap 16.0:pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
          "openSUSE Leap 16.0:pnpm-zsh-completion-10.22.0-bp160.1.1.noarch"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2021-5678",
          "url": "https://www.suse.com/security/cve/CVE-2021-5678"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:pnpm-10.22.0-bp160.1.1.noarch",
            "openSUSE Leap 16.0:pnpm-bash-completion-10.22.0-bp160.1.1.noarch",
            "openSUSE Leap 16.0:pnpm-fish-completion-10.22.0-bp160.1.1.noarch",
            "openSUSE Leap 16.0:pnpm-zsh-completion-10.22.0-bp160.1.1.noarch"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2025-11-27T12:28:46Z",
          "details": "moderate"
        }
      ],
      "title": "CVE-2021-5678"
    }
  ]
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…