# @pnpm/catalogs.resolver

> Dereferences catalog protocol specifiers into usable specifiers.

Latest version **1100.1.2** (published 2026-10-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install @pnpm/catalogs.resolver
pnpm add @pnpm/catalogs.resolver
yarn add @pnpm/catalogs.resolver
bun add @pnpm/catalogs.resolver
```

## Health

**Score 80/100 (A)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score; popular repo.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1100.1.2 |
| Published | 2026-10-06 |
| First published | 2024-06-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=22.13 |
| Dependencies | 2 |
| Unpacked size | 9.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 36788 |
| Maintainers | pnpmuser, zkochan |
| Keywords | pnpm, pnpm11, types |

## Links

- npm: https://www.npmjs.com/package/@pnpm/catalogs.resolver
- Repository: https://github.com/pnpm/pnpm/tree/main/pnpm11/catalogs/resolver
- Homepage: https://github.com/pnpm/pnpm/tree/main/pnpm11/catalogs/resolver#readme
- Issues: https://github.com/pnpm/pnpm/issues
- Funding: https://opencollective.com/pnpm
- npm.io page: https://npm.io/package/@pnpm/catalogs.resolver

## Dependencies (2)

- [@pnpm/error](https://npm.io/package/@pnpm/error.md) ^1100.2.2
- [@pnpm/catalogs.protocol-parser](https://npm.io/package/@pnpm/catalogs.protocol-parser.md) ^1100.0.1

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1100.1.2 (latest) — 2026-10-06
- 1100.1.1 — 2026-09-28
- 1100.1.0 — 2026-09-06
- 1100.0.1 — 2026-07-23
- 1100.0.0 — 2026-04-10
- 1000.0.5 — 2025-07-31
- 1000.0.4 — 2025-07-23
- 1000.0.3 — 2025-04-21
- 1000.0.2 — 2025-01-26
- 1000.0.1 — 2024-12-16
- 900.0.1 — 2024-12-06
- 1000.0.0 — 2024-11-29
- 900.0.0 — 2024-11-28
- 0.1.2 — 2024-11-28
- 0.1.1 — 2024-10-02
- … 1 more at https://npm.io/package/@pnpm/catalogs.resolver/versions

## README

# @pnpm/catalogs.resolver

> Dereferences `catalog:` protocol specifiers into usable specifiers.

## Usage

### `resolveFromCatalog`

Dereferences a wanted dependency using the catalog protocol and returns the configured specifier.

Returns one of three resolution result types:
- `found`: The catalog entry was found and resolved to a usable specifier.
- `unused`: The dependency specifier does not use the `catalog:` protocol.
- `misconfiguration`: The catalog entry is missing, uses recursive catalog definitions, or uses unsupported protocols (`link:`, `file:`).

```ts
import { resolveFromCatalog } from '@pnpm/catalogs.resolver'

const result = resolveFromCatalog(catalogs, {
  alias: 'react',
  bareSpecifier: 'catalog:',
})

if (result.type === 'found') {
  console.log(result.resolution.specifier) // e.g. '^19.0.0'
}
```

### `matchCatalogResolveResult`

Utility pattern matcher for handling the three resolution result variants.

```ts
import { matchCatalogResolveResult, resolveFromCatalog } from '@pnpm/catalogs.resolver'

const result = resolveFromCatalog(catalogs, wantedDependency)

matchCatalogResolveResult(result, {
  found: ({ resolution }) => console.log('Resolved:', resolution.specifier),
  unused: () => console.log('Not using catalog protocol'),
  misconfiguration: ({ error }) => {
    throw error
  },
})
```

---
_Source: https://npm.io/package/@pnpm/catalogs.resolver · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
