Files
68112bada4 chore(release): 11.28.5, pacquet 12.10.0 (#16637)
* chore(release): 11.28.5, pacquet 12.10.0

* docs(release): curate the 11.28.5 and 12.10.0 release notes

Add a lead paragraph to each page and group the patch entries under
subject headings, with the security fixes first.

- Merge the unpublish path-boundary fix into the unpublish entry, the
  legacy metadata cache prune into the metadata cache entry, the two
  binary size entries, and the two 64 MiB archive limits on the v11 page.
- Drop the manifest-utils saveType entry from the CLI page: the CLI
  only passes saveType values derived from its own flags, so no CLI user
  can reach the fixed path.
- Rewrite mechanism-only entries (PAX header validation, bundled
  dependency symlinks, custom resolutions under name@version keys, proxy
  setting validation) in terms of what the user sees.
- Use one link style for pnpm/pnpm issues.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 02:00:03 +02:00
..

@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:).
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.

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
  },
})