build(deps): update pnpm to v12.14.0 (#13487)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm/npm/pnpm))
| [`12.11.2` →
`12.14.0`](https://renovatebot.com/diffs/npm/pnpm/12.11.2/12.14.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/12.14.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/12.11.2/12.14.0?slim=true)
|

---

### Release Notes

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v12.14.0`](https://redirect.github.com/pnpm/pnpm/releases/tag/v12.14.0):
pnpm 12.14.0

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v12.13.0...v12.14.0)

This release adds the `sideEffectsCache.exclude` setting, stops `pnpm
install` from waiting on the daily update check, and keeps pnpm from
aborting with a core dump when the reader of its output exits.

##### Minor Changes

- Added the `sideEffectsCache.exclude` setting for packages whose build
depends on something pnpm cannot include in the cache key, such as the
system libraries a native addon links against. pnpm builds the listed
packages in every project and never restores or saves their builds
through the side-effects cache, locally or on a `remoteCache` server.
Under the global virtual store, each project gets its own copy of these
packages and of the packages that depend on them. Entries use the same
`name`, `@scope/*`, and `name@version` patterns as
`minimumReleaseAgeExclude`
[#&#8203;5271](https://redirect.github.com/pnpm/pnpm/issues/5271).

- `pnpm login` now prints the `npm-notice` response header during
web-based login. Registries use it to show the verification code that
completes the sign-in in the browser.

##### Patch Changes

##### Installing packages

- `pnpm install` and `pnpm add` no longer wait for the daily update
check. If the command finishes first, pnpm skips the update notice and
checks again next time. On a registry that accepted the connection but
never answered, an install that had nothing to do used to take minutes
[#&#8203;16839](https://redirect.github.com/pnpm/pnpm/issues/16839).

- `pnpm install`, `pnpm add` and `pnpm update` now reuse
`pnpm-lock.yaml` when the workspace configures a catalog entry that no
dependency references, such as an unused entry or one whose package an
`overrides` entry replaces. Before, every resolution in such a workspace
resolved all dependencies again from the registry
[#&#8203;16923](https://redirect.github.com/pnpm/pnpm/issues/16923).

- `pnpm install` now looks up a git dependency's branch or tag once per
install, even when many workspace projects depend on it. With
`linkWorkspacePackages` enabled, it used to run `git ls-remote` once per
project
[#&#8203;16899](https://redirect.github.com/pnpm/pnpm/issues/16899).

- A filtered install, such as `pnpm install --filter <pkg>`, now keeps
the `pnpm-lock.yaml` entries of workspace projects that are missing from
disk, as in a sparse checkout. Their importers, packages, and catalog
entries stay even when the filter matches every project on disk
[#&#8203;16931](https://redirect.github.com/pnpm/pnpm/issues/16931).

- pnpm now decides whether a dependency that a package also declares as
an optional peer is linked as a dependency or as a peer from the
shallowest path that reaches the package. When an existing lockfile
records such a dependency as a regular dependency and a newly added
dependency now provides the peer, pnpm records it as a peer, as a fresh
install does. The lockfile entry of such a package can change on the
next install
[#&#8203;16901](https://redirect.github.com/pnpm/pnpm/issues/16901).

- An install that adds nothing to the store no longer changes the
modification time of the store directory. CI caches that check
modification times, such as GitLab's, no longer re-upload an unchanged
store
[#&#8203;16929](https://redirect.github.com/pnpm/pnpm/issues/16929).

##### Running commands and scripts

- pnpm no longer aborts with a core dump when the reader of its output
has exited, as in `pnpm list | head -1` or `pnpm start 2>&1 | head -1`.
The command finishes with its usual exit code, and a failing script's
exit code is kept. A write to stdout that fails for another reason, such
as a full disk, ends the command with exit code 1
[#&#8203;16904](https://redirect.github.com/pnpm/pnpm/issues/16904)
[pnpm/tasks#132](https://redirect.github.com/pnpm/tasks/issues/132).

- On Windows, `pnpm exec`, `pnpm run`, and commands such as `pnpm nx`
now return when the command they run exits, even if it left a detached
process running and pnpm's output is redirected or piped. Previously a
shell reading that output waited until the detached process, such as the
Nx daemon, exited
[#&#8203;16930](https://redirect.github.com/pnpm/pnpm/issues/16930).

- Commands that do not write the project manifest now leave a missing
`package.json` absent. This covers queries such as `pnpm why` and `pnpm
outdated`, `pnpm fetch`, `pnpm dedupe --check`, and commands that exit
with an error, such as `pnpm rt ls`. These commands used to create one
from the initialization template. `pnpm sbom` run from a lockfile alone
now reports the root component as `unknown` with version `0.0.0`
[#&#8203;16907](https://redirect.github.com/pnpm/pnpm/issues/16907).

- `pnpm run` now reports a failed script as a JSON record under
`--reporter=ndjson`. It printed a plain `[ELIFECYCLE]` line to stderr.

- `pnpm run` no longer prints `[ELIFECYCLE] Command failed with exit
code N.` to stderr when a script fails under `--reporter=silent`,
`--silent`, or `--loglevel=silent`.

- `pnpm pipeline --dry-run` no longer writes a run report when no
projects are selected. With `--json` it prints `{"tasks": []}`
[pnpm/tasks#126](https://redirect.github.com/pnpm/tasks/issues/126).

##### Packing and publishing

- `pnpm pack` and `pnpm publish` now ship the whole gitignored directory
that `main`, `browser`, or `bin` points into, as npm does. Previously
only the `main` and `bin` files themselves were packed, and a gitignored
`browser` file was left out
[#&#8203;16908](https://redirect.github.com/pnpm/pnpm/issues/16908).

- `pnpm pack` and `pnpm publish` now honor a `.npmignore` or
`.gitignore` inside a subdirectory when `package.json` has a `files`
field. The package root's ignore files and those inherited from the
workspace are still skipped
[#&#8203;16909](https://redirect.github.com/pnpm/pnpm/issues/16909).

##### Setting up pnpm and toolchains

- `--registry`, `--https-proxy`, `--http-proxy`, and `--no-proxy` now
apply when pnpm resolves and downloads the pnpm version a project pins
in `packageManager`. Before, these lookups went to
`https://registry.npmjs.org/`, which a firewall that only allows a
private registry blocks
[#&#8203;16911](https://redirect.github.com/pnpm/pnpm/discussions/16911).

- On Windows, `pnpm install` now installs the Rust toolchain for
rustup's default host, so a machine set up with `rustup set default-host
x86_64-pc-windows-gnu` gets the MinGW toolchain. Without a default host,
pnpm installs the MSVC toolchain for the machine's architecture, as
rustup does. This includes a pnpm built for MinGW, such as the MSYS2
package, which has installed the MinGW toolchain since 12.13.0. An x64
pnpm on ARM64 Windows now installs the ARM64 toolchain
[#&#8203;16854](https://redirect.github.com/pnpm/pnpm/issues/16854).

<!-- sponsors -->

##### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/openai_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/openai_light.svg" />
<img src="https://pnpm.io/img/users/openai_dark.svg" width="160"
alt="OpenAI" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220"
alt="CodeRabbit" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

##### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/sanity.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/sanity_light.svg" />
<img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity"
/>
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220"
alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/serpapi_light.svg" />
<img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160"
alt="SerpApi" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a
href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/stackblitz.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
<img src="https://pnpm.io/img/users/stackblitz.svg" width="190"
alt="Stackblitz" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/workleap.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/workleap_light.svg" />
<img src="https://pnpm.io/img/users/workleap.svg" width="190"
alt="Workleap" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg" />
<img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/latitude.svg" width="160"
alt="Latitude"></a>
      </td>
    </tr>
  </tbody>
</table>

<!-- sponsors end -->

###
[`v12.13.0`](https://redirect.github.com/pnpm/pnpm/releases/tag/v12.13.0):
pnpm 12.13.0

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v12.12.1...v12.13.0)

This release adds the `pnpm profile` and `pnpm token` commands, the
`storeIndexFormat: files` setting for stores shared over a network
filesystem, and faster Python dependency resolution.

##### Minor Changes

- Added the `pnpm profile` command to view and update registry user
profile settings.

- Added `pnpm token` to list, create, and revoke authentication tokens
on the registry.

- Added the `storeIndexFormat` setting. Set it to `files` to keep a
store's package index as one file per package instead of the SQLite
`index.db`, for a store on a network filesystem that several machines
use at once. SQLite's locking does not work across machines, so
concurrent installs on such a store could corrupt `index.db`.

- Added the `nodePackageMap` setting, which groups the package-map
settings. `nodePackageMap.mode: write-only` writes
`node_modules/.package-map.json` for other tools without making Node.js
load it. `mode: load` also makes Node.js load the map, like
`nodeExperimentalPackageMap: true`. `nodePackageMap.type` replaces
`nodePackageMapType`. The old settings still work
[#&#8203;14937](https://redirect.github.com/pnpm/pnpm/issues/14937).

  ```yaml
  nodePackageMap:
    mode: write-only
    type: loose
  ```

##### Patch Changes

##### Setting up pnpm

- `pnpm setup` now works when pnpm was installed with npm on macOS. It
installed pnpm from npm's `bin` directory and left a
`$PNPM_HOME/bin/pnpm` that could not run
[#&#8203;16855](https://redirect.github.com/pnpm/pnpm/issues/16855).

- pnpm runs again after `pnpm setup` when `globalShims` enables pnpm.
Every command failed with "the global target of the pnpm shim points
back at the shim"
[#&#8203;16874](https://redirect.github.com/pnpm/pnpm/issues/16874).

- A pnpm built for the MinGW target on Windows, such as the MSYS2
package, now installs the MinGW Rust toolchain that
`rust-toolchain.toml` names. It used to install the MSVC toolchain.

##### Installing packages

- On macOS, `pnpm install` no longer fails with
`ERR_PNPM_LOCKFILE_WRITE_FILE` when the project is on a virtiofs or SMB
share. pnpm now falls back to a regular `fsync` when the file system
rejects a full sync
[#&#8203;16846](https://redirect.github.com/pnpm/pnpm/issues/16846).

- On macOS, `pnpm install`, `pnpm patch-commit`, and other commands that
load a pnpmfile no longer hang at random.

- `pnpm install` now puts the executables of a Python build backend's
requirements on the `PATH` while the backend runs. Projects built with
`uv_build` now install. Before, they failed with "uv-build was not
properly installed".

- Removing a `link:` dependency now also removes its symlink from
`node_modules` when `nodeLinker` is `hoisted`
[#&#8203;16884](https://redirect.github.com/pnpm/pnpm/issues/16884).

- `pnpm-lock.yaml` no longer records the tarball URL of a package
installed from a scoped registry, such as one set by `@types:registry=`,
when pnpm can rebuild the URL from that registry
[#&#8203;16866](https://redirect.github.com/pnpm/pnpm/issues/16866).

##### Packing, auditing, and pipelines

- `pnpm pack` and `pnpm publish` now pack only `package.json`, the
README, the license, and the files named in `main` and `bin` when
`files` is an empty array. They used to pack every file in the package
[#&#8203;16889](https://redirect.github.com/pnpm/pnpm/issues/16889).

- `pnpm audit` and `pnpm audit signatures` no longer check runtimes
installed through `devEngines.runtime`, such as `node@runtime:24.21.0`,
against the npm package of the same name. `pnpm audit signatures`
reported these runtimes as having an invalid registry signature
[#&#8203;16869](https://redirect.github.com/pnpm/pnpm/issues/16869).

- `pnpm pipeline` now runs the root's tasks when `pnpm-workspace.yaml`
lists only the root in `packages` or omits `packages`, as `pnpm -r run`
does. A change to a root file in such a workspace no longer triggers a
full-run warning. When a full run has no projects to run, `pnpm
pipeline` now reports that no projects are selected
[#&#8203;16849](https://redirect.github.com/pnpm/pnpm/issues/16849).

##### Performance

- `pnpm install` resolves Python dependencies faster. With
`--lockfile-only`, a project with 10 dependencies now resolves in about
4 seconds, down from about 40. When the index publishes a metadata file
beside each wheel (PEP 658), as PyPI does, pnpm downloads only the
wheels of the releases it selects.

- A repeat install against an existing lockfile no longer reads registry
metadata for the dependencies it takes from that lockfile. On a warm
store this removes thousands of metadata lookups from a repeat install
of a large workspace.

- `pnpm install` with `enableModulesDir: false` now verifies the
packages already in the store while the dependencies resolve, and checks
a package's files in parallel. On a 5,100-package install with the store
on a network filesystem, this removed a 19-second pause between
resolution and fetching.

<!-- sponsors -->

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/openai_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/openai_light.svg" />
<img src="https://pnpm.io/img/users/openai_dark.svg" width="160"
alt="OpenAI" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220"
alt="CodeRabbit" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/sanity.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/sanity_light.svg" />
<img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity"
/>
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220"
alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/serpapi_light.svg" />
<img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160"
alt="SerpApi" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a
href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/stackblitz.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
<img src="https://pnpm.io/img/users/stackblitz.svg" width="190"
alt="Stackblitz" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/workleap.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/workleap_light.svg" />
<img src="https://pnpm.io/img/users/workleap.svg" width="190"
alt="Workleap" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg" />
<img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/latitude.svg" width="160"
alt="Latitude"></a>
      </td>
    </tr>
  </tbody>
</table>

<!-- sponsors end -->

###
[`v12.12.1`](https://redirect.github.com/pnpm/pnpm/releases/tag/v12.12.1):
pnpm 12.12.1

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v12.12.0...v12.12.1)

This release adds OIDC authentication to `pnpm dist-tag` and the `tool:`
protocol. `pnpm publish` now checks which registry an `NPM_ID_TOKEN` was
issued for before using it.

##### Patch Changes

- `pnpm publish` now uses an `NPM_ID_TOKEN` only if its `aud` claim
matches the selected registry, such as `npm:registry.npmjs.org`. A token
for another registry is skipped with a warning, and pnpm falls back to
the configured credentials.

- `pnpm dist-tag add`, `rm`, and `ls` now support OIDC authentication in
CI. Enable "Allow npm dist-tag" in the package's trusted publishing
settings to manage tags without a stored npm token.

- Added the `tool:` protocol for the tools pnpm downloads itself:
Node.js, Bun, Deno, and Yarn. `pnpm add bun@tool:1.3.0`, `pnx
node@tool:22`, and `pnx yarn@tool:4` work like the `runtime:` spelling,
which stays supported as an alias. A lockfile written for `runtime:`
stays up to date when `package.json` switches to `tool:`, and the other
way around.

  A named registry can no longer be called `tool`.

<!-- sponsors -->

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/openai_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/openai_light.svg" />
<img src="https://pnpm.io/img/users/openai_dark.svg" width="160"
alt="OpenAI" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220"
alt="CodeRabbit" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/sanity.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/sanity_light.svg" />
<img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity"
/>
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220"
alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/serpapi_light.svg" />
<img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160"
alt="SerpApi" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a
href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/stackblitz.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
<img src="https://pnpm.io/img/users/stackblitz.svg" width="190"
alt="Stackblitz" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/workleap.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/workleap_light.svg" />
<img src="https://pnpm.io/img/users/workleap.svg" width="190"
alt="Workleap" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg" />
<img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/latitude.svg" width="160"
alt="Latitude"></a>
      </td>
    </tr>
  </tbody>
</table>

<!-- sponsors end -->

###
[`v12.12.0`](https://redirect.github.com/pnpm/pnpm/releases/tag/v12.12.0):
pnpm 12.12.0

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v12.11.2...v12.12.0)

This release shares task results and dependency builds through a remote
cache, adds the `addMissingPeerTypes` setting, and lets `pnpm add
--config` and `pnpm update` manage configuration dependencies. It also
fixes `dangerouslyAllowAllBuilds` running the build scripts of packages
that `allowBuilds` denies.

##### Minor Changes

- `pnpm pipeline` can share task results between machines. A result is a
signed artifact stored on a pnpr server or on a server that speaks the
Turborepo Remote Cache API, such as Vercel Remote Cache.

The remote side-effects cache can also store dependency builds on a
Turborepo Remote Cache server. Both caches read the new `remoteCache`
setting, which names the server and holds the signing keys. `pnpm
pipeline --report` records the run under the organization
`remoteCache.org` names.

- Added the `addMissingPeerTypes` setting, which links the `@types`
package of a peer dependency next to every package that peer-depends on
it. For example, a package that peer-depends on `react` gets the
project's `@types/react` linked next to it. This lets TypeScript find
the types of a peer dependency when the global virtual store is on
[#&#8203;15689](https://redirect.github.com/pnpm/pnpm/discussions/15689).

- `pnpm add --config` and `pnpm update` now handle configuration
dependencies the way they handle other dependencies
[#&#8203;16814](https://redirect.github.com/pnpm/pnpm/issues/16814).

`pnpm add --config` saves a version range in `pnpm-workspace.yaml` by
the same rules as `pnpm add`, so `pnpm add --config my-config@latest`
saves a range such as `^1.2.0`. It also resolves the package again when
`pnpm-lock.yaml` already locks an older version.

`pnpm update` updates configuration dependencies within their ranges,
and `pnpm update --latest` moves them to their latest version. A
selector such as `pnpm update my-config` updates only the configuration
dependencies it names.

##### Patch Changes

- A package set to `false` in `allowBuilds` no longer runs its build
scripts when `dangerouslyAllowAllBuilds` is `true`. The two settings
together now allow every build except the denied ones. Previously,
`dangerouslyAllowAllBuilds` ignored the denials.

- pnpm now switches to the pnpm version a project pins even when it
cannot read its configuration. Previously, a setting it rejected in the
global config file, an `.npmrc` file, or `_auth`, or a
`pnpm-workspace.yaml` it could not parse, stopped every command, `pnpm
--version` included.

- `pnpm update` and `pnpm why` accept `--depth Infinity` again. They
failed with `invalid value 'Infinity' for '--depth <DEPTH>'`
[#&#8203;16817](https://redirect.github.com/pnpm/pnpm/issues/16817).

- `pnpm deploy` without `injectWorkspacePackages` now binds a peer
dependency of a linked workspace package to the version its parent
provides, as an injected install does. Previously the deploy failed with
`ERR_PNPM_DEPLOY_AMBIGUOUS_PEER` whenever other packages in the deployed
graph depended on different versions of that peer
[#&#8203;16807](https://redirect.github.com/pnpm/pnpm/issues/16807).

- `pnpm deploy --legacy` no longer fails with
`ERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER` when a workspace
dependency of the deployed project declares a `workspace:` peer
dependency that the project does not depend on itself. pnpm now copies
that peer from the workspace into the deploy directory.

An auto-installed peer declared with `workspace:` now always resolves to
the workspace project. Previously, `workspace:*` and `workspace:^1.0.0`
peers could be installed from the registry
[#&#8203;16806](https://redirect.github.com/pnpm/pnpm/issues/16806).

- Repeat installs no longer resolve again when an injected workspace
package lists a dependency also as a peer dependency.

- Sped up frozen installs of unchanged injected workspace packages that
use hardlinks.

- Sped up workspace discovery with subtree exclusions such as
`!generated/**`.

- A key under a registry URL in the `_auth` setting that does not start
with `@` is now skipped with a warning, so a field a later pnpm version
adds there no longer breaks this one. A key that holds an `authToken`
object but lacks its `@`, such as `org` for `@org`, is still an error.

<!-- sponsors -->

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.cloud/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/bit.svg" width="80" alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://openai.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/openai_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/openai_light.svg" />
<img src="https://pnpm.io/img/users/openai_dark.svg" width="160"
alt="OpenAI" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://notion.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220"
alt="CodeRabbit" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/sanity.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/sanity_light.svg" />
<img src="https://pnpm.io/img/users/sanity.svg" width="120" alt="Sanity"
/>
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220"
alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://vite.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/vitejs.svg" width="42" alt="Vite"></a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://serpapi.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/serpapi_dark.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/serpapi_light.svg" />
<img src="https://pnpm.io/img/users/serpapi_dark.svg" width="160"
alt="SerpApi" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a
href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/stackblitz.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
<img src="https://pnpm.io/img/users/stackblitz.svg" width="190"
alt="Stackblitz" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/workleap.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/workleap_light.svg" />
<img src="https://pnpm.io/img/users/workleap.svg" width="190"
alt="Workleap" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg" />
<img src="https://pnpm.io/img/users/nx.svg" width="50" alt="Nx" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://latitude.so/?utm_source=pnpm&utm_medium=release_notes"
target="_blank" rel="noopener noreferrer"><img
src="https://pnpm.io/img/users/latitude.svg" width="160"
alt="Latitude"></a>
      </td>
    </tr>
  </tbody>
</table>

<!-- sponsors end -->

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/authelia/authelia).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyIsImphdmFzY3JpcHQiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This commit is contained in:
renovate[bot] authored and GitHub committed 2026-10-16 20:20:51 +00:00
1 parent 0a907bbe91
commit 7f3aad82ca
2 files changed
+62 -62

No files matched your search

+1 -1
View File
@@ -53,7 +53,7 @@
"node": ">=24.13.0",
"pnpm": "12"
},
"packageManager": "pnpm@12.11.2",
"packageManager": "pnpm@12.14.0",
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
+61 -61
View File
@@ -7,153 +7,153 @@ importers:
configDependencies: {}
packageManagerDependencies:
pnpm:
specifier: 12.11.2
version: 12.11.2
specifier: 12.14.0
version: 12.14.0
packages:
'@pnpm/exe.android-arm64@12.11.2':
resolution: {integrity: sha512-owLw13OfPkEoY+hLBNeeG+dCFhywr7q2d/EHPz4mNL2RhKnv8gNwMARkjkiDQu234aItVwFNDeGnmQXm+ikkAg==}
'@pnpm/exe.android-arm64@12.14.0':
resolution: {integrity: sha512-+iSh7x21C3A2hqc+Z0ZmbKTcn6YNlzrXM142PsnQH/dLj0DYxFzoBvc6XAnL/yfQ5nnH2ebBiRj/zVxr61fZbQ==}
cpu: [arm64]
os: [android]
'@pnpm/exe.android-x64@12.11.2':
resolution: {integrity: sha512-GYPkVebl4iokOA/4MPSpGoUVfFlsth7uqOCe1XiaiM23LAdvUOMJBObqHJijr89ZqjwHm9pO6vO45GRwJ2U2qA==}
'@pnpm/exe.android-x64@12.14.0':
resolution: {integrity: sha512-qT+0LqEr2wBVaxcG2T8cX/R8SSRz2Rvpp8nRR4fh8tnGUZRch87gFmsHUAoSQh7w6j1h0qTjrA384j4xi8frvw==}
cpu: [x64]
os: [android]
'@pnpm/exe.darwin-arm64@12.11.2':
resolution: {integrity: sha512-n9M4On66y8FDxUAKgMO1FXt0qihyG4e+56p3/F0uo8Bx9KplW8BwKVnXigzCJ8aNM6sVVPkOE6M9XXbeVIxnZA==}
'@pnpm/exe.darwin-arm64@12.14.0':
resolution: {integrity: sha512-tnrdUB8ecJoehuKKqi1YHCBVl61xtJ9XVGcx5EviC6fWO4DeGI8GtXrjvJxDBM3nuVjJeWistgsUp/N142x4sw==}
cpu: [arm64]
os: [darwin]
'@pnpm/exe.darwin-x64@12.11.2':
resolution: {integrity: sha512-oSW7n3sBT0c0cyk4kj10T2Y6Mpm+OFEiCAWozgX039tdoI6yqJF1uaFD3sw7ugLdu6VV3+uY0pa1TUZIPdxDWA==}
'@pnpm/exe.darwin-x64@12.14.0':
resolution: {integrity: sha512-vlBfGkruqQRsEHTW43cPwpYd7QlbIJ//cvpAdb3bVXkI8SgTPoXhCnc05m+ZNiPrrEkBsX/t7KHw9aXpkzPm3Q==}
cpu: [x64]
os: [darwin]
'@pnpm/exe.freebsd-x64@12.11.2':
resolution: {integrity: sha512-qbzc3KoDpa/Lkf8vs3jnDe6dUUbso+6eLIyssYFMiliLpYNxn8dirk11YoNnOQcdHVB50v5RFls1Yid6ttT5pg==}
'@pnpm/exe.freebsd-x64@12.14.0':
resolution: {integrity: sha512-Qg5rxBrGYl6Tfso+EyygPf84fY1Fzy55E/0or+iuYKtnf0vc0MlHJfVIlT7pBukMRntQHRik7hUi0Z4s7AlJsw==}
cpu: [x64]
os: [freebsd]
'@pnpm/exe.linux-arm64-musl@12.11.2':
resolution: {integrity: sha512-uMEYDwKRktGwANubQ+kYCwmhNwg3Ik6qK89ahsbQ5cP30R/5FVJb/T99vr9XRUBC/A7mZI6eeT92oyVas9ACyg==}
'@pnpm/exe.linux-arm64-musl@12.14.0':
resolution: {integrity: sha512-DRIe4yQkXBGA/PhVJdzlbnllxBdAtnMMvTVLLcGpsK5FvJz9kxD2Hyxtn68ovmNkVX06f6p45cQwfm3wx2jn1A==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@pnpm/exe.linux-arm64@12.11.2':
resolution: {integrity: sha512-6e8ZAQUwFXAWHHHv5FesWqf/kEK04wuitBv5f/gxzkC0DiBfaixr+f+6JQede8SF4Ji5LcMwVFJbzAtffpWxEg==}
'@pnpm/exe.linux-arm64@12.14.0':
resolution: {integrity: sha512-7joGShZ44Nk3WpNU+60JoOPjCXlgxhJAq11S2UiVtwCUDgTer1yTPPfxGW8pxaD6046actYLIYDbZNlubHWs0A==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@pnpm/exe.linux-ppc64@12.11.2':
resolution: {integrity: sha512-Ui8A4nepkVupx2VpuFfysEluMvWK6gTB5rgVts7Ss/+8dj0RD28x3F/seNeH/zSypgC6yKdV6qsKVQh/uffTuQ==}
'@pnpm/exe.linux-ppc64@12.14.0':
resolution: {integrity: sha512-gSoryn7ySdXd//gjgf3MvvA8ZerJayaSbuMZMtAWq4vb2/wlVEgpl0Kvqt54y58TRj533Qjq2txKgnxd4JyoAQ==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@pnpm/exe.linux-riscv64@12.11.2':
resolution: {integrity: sha512-i1yLdQ5bu+wjQ+srtFoJAaY2gN/+oXHFdjul4llCeoDxHE0rTIG3R41NhHfCjyFPW4+CpbBT58933CL9sMOCnA==}
'@pnpm/exe.linux-riscv64@12.14.0':
resolution: {integrity: sha512-EMjew1H9WqQ7pL+tYqCPwiuB+0PeCiJRV7fyWeuFw0wwYUajFBjcaPO3IGAVu9sdmJDU+e+HYv/Zey6aKae0Vw==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@pnpm/exe.linux-s390x@12.11.2':
resolution: {integrity: sha512-YS1/lhPjjTsN4QL50VaFZKRa3Uc/bDnhE8eKbJMFvuX06UuFS5YaiDg04APoZdfVSGqTfX27QAg7rfLMSWaqxA==}
'@pnpm/exe.linux-s390x@12.14.0':
resolution: {integrity: sha512-shYOj/SFoXD35fHe0pWr2JofwSXulC0BnEIXLj2QokDi0EF//AfKsui35yKIkTEl+s2VJybc3PO4iJNhKIj5Qw==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@pnpm/exe.linux-x64-musl@12.11.2':
resolution: {integrity: sha512-7eIxQR05fvJxCujUSKp5KTtehJ7QqrgqP/HD1+BcB/SaV2Be4XI1PEHiOgA1zxsiMIeMvTF6E4G4dYHrFjeXRg==}
'@pnpm/exe.linux-x64-musl@12.14.0':
resolution: {integrity: sha512-btZiZ2Ot0llKK1ndSfA5i3IRX7/S0VrmzseNH/BJ4c+Cady+S81H6vvU1zByggHMyqQhC8OgxO5PiIY7D9bH0Q==}
cpu: [x64]
os: [linux]
libc: [musl]
'@pnpm/exe.linux-x64@12.11.2':
resolution: {integrity: sha512-FK7QKe24AYgppJwO3mpooYptduuvIGqKJPi5ac7MdnWkjUy46JBfYhCW0grnkWKC8YOf0x+vGviuQqJEj3SpQQ==}
'@pnpm/exe.linux-x64@12.14.0':
resolution: {integrity: sha512-F6K8e/jWxiuEYJaQtRRUG9ynBSTEHa+t7Lf86MKuOO5UA7WVVMbi+oB8nY6iKW++ncWS2yG6T9faXZGxqNsfoQ==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@pnpm/exe.win32-arm64@12.11.2':
resolution: {integrity: sha512-PCTjVDdJb6VvraZxrEeFv6EqEA0hhIsAySx28e95J2Tqpi88hLpgOXgNqV0vpxq9A+b8GLQfyk/D+1UlJPv/YQ==}
'@pnpm/exe.win32-arm64@12.14.0':
resolution: {integrity: sha512-DOjlkVB6TtTKeAAe0hNZXn5S7YqESmo1Z6SGbR4BZNQ4isRg31XVHjX2RFTbY8gnZq68IwzyLmPqlEjMmYxofg==}
cpu: [arm64]
os: [win32]
'@pnpm/exe.win32-x64@12.11.2':
resolution: {integrity: sha512-8sgX86OvRjJ3yZs/TvGR2L31wH9ScPZ+f+geKI3ikuB0RRiK3i4LlTRO8OXN6pdRqj8epMde4312MCjj7JsJdA==}
'@pnpm/exe.win32-x64@12.14.0':
resolution: {integrity: sha512-/LSX6mew/sLf08XqcjemuklNKf1K/Ftpgj4//hK/HKzI2dKbmxDB27a/2OaQ5a0O3/3OFzlssXDziZsi+yVBwQ==}
cpu: [x64]
os: [win32]
pnpm@12.11.2:
resolution: {integrity: sha512-JaUWUqGWeFr18ovabf6NxYLr76SsHRgCIc4TkCMcX7dmN4IupLbkYzznSs3LCnf3Ja8RutOBd/3t2u6BipVcuQ==}
pnpm@12.14.0:
resolution: {integrity: sha512-wYum2HmT09Fky16JSPMrLAbuhUSH4GzY2GeBNC+z5btGNDZwNHEehoArqpw3vqkGzhkprQjXCITJfYAd8TOJpg==}
engines: {node: '>=18.*'}
hasBin: true
snapshots:
'@pnpm/exe.android-arm64@12.11.2':
'@pnpm/exe.android-arm64@12.14.0':
optional: true
'@pnpm/exe.android-x64@12.11.2':
'@pnpm/exe.android-x64@12.14.0':
optional: true
'@pnpm/exe.darwin-arm64@12.11.2':
'@pnpm/exe.darwin-arm64@12.14.0':
optional: true
'@pnpm/exe.darwin-x64@12.11.2':
'@pnpm/exe.darwin-x64@12.14.0':
optional: true
'@pnpm/exe.freebsd-x64@12.11.2':
'@pnpm/exe.freebsd-x64@12.14.0':
optional: true
'@pnpm/exe.linux-arm64-musl@12.11.2':
'@pnpm/exe.linux-arm64-musl@12.14.0':
optional: true
'@pnpm/exe.linux-arm64@12.11.2':
'@pnpm/exe.linux-arm64@12.14.0':
optional: true
'@pnpm/exe.linux-ppc64@12.11.2':
'@pnpm/exe.linux-ppc64@12.14.0':
optional: true
'@pnpm/exe.linux-riscv64@12.11.2':
'@pnpm/exe.linux-riscv64@12.14.0':
optional: true
'@pnpm/exe.linux-s390x@12.11.2':
'@pnpm/exe.linux-s390x@12.14.0':
optional: true
'@pnpm/exe.linux-x64-musl@12.11.2':
'@pnpm/exe.linux-x64-musl@12.14.0':
optional: true
'@pnpm/exe.linux-x64@12.11.2':
'@pnpm/exe.linux-x64@12.14.0':
optional: true
'@pnpm/exe.win32-arm64@12.11.2':
'@pnpm/exe.win32-arm64@12.14.0':
optional: true
'@pnpm/exe.win32-x64@12.11.2':
'@pnpm/exe.win32-x64@12.14.0':
optional: true
pnpm@12.11.2:
pnpm@12.14.0:
optionalDependencies:
'@pnpm/exe.android-arm64': 12.11.2
'@pnpm/exe.android-x64': 12.11.2
'@pnpm/exe.darwin-arm64': 12.11.2
'@pnpm/exe.darwin-x64': 12.11.2
'@pnpm/exe.freebsd-x64': 12.11.2
'@pnpm/exe.linux-arm64': 12.11.2
'@pnpm/exe.linux-arm64-musl': 12.11.2
'@pnpm/exe.linux-ppc64': 12.11.2
'@pnpm/exe.linux-riscv64': 12.11.2
'@pnpm/exe.linux-s390x': 12.11.2
'@pnpm/exe.linux-x64': 12.11.2
'@pnpm/exe.linux-x64-musl': 12.11.2
'@pnpm/exe.win32-arm64': 12.11.2
'@pnpm/exe.win32-x64': 12.11.2
'@pnpm/exe.android-arm64': 12.14.0
'@pnpm/exe.android-x64': 12.14.0
'@pnpm/exe.darwin-arm64': 12.14.0
'@pnpm/exe.darwin-x64': 12.14.0
'@pnpm/exe.freebsd-x64': 12.14.0
'@pnpm/exe.linux-arm64': 12.14.0
'@pnpm/exe.linux-arm64-musl': 12.14.0
'@pnpm/exe.linux-ppc64': 12.14.0
'@pnpm/exe.linux-riscv64': 12.14.0
'@pnpm/exe.linux-s390x': 12.14.0
'@pnpm/exe.linux-x64': 12.14.0
'@pnpm/exe.linux-x64-musl': 12.14.0
'@pnpm/exe.win32-arm64': 12.14.0
'@pnpm/exe.win32-x64': 12.14.0
---
lockfileVersion: '9.0'