Implement explicit registry revision selection and revision-only updates from the current revisions RFC. Parse exact +rN selectors across npm, JSR, aliases, and named registries. Validate historical artifacts against strict integrity-addressed metadata, overlay only immutable manifest fields, and avoid metadata requests during frozen installs unless an active policy requires them. Add update --patches to refresh artifacts at the currently locked package versions while preserving explicit revision pins and manifest ranges. Mirror the behavior in the Rust CLI, force reimport when the artifact changes under the same package identity, and make pnpr expose only safe rewritten revision histories. Follow-up to https://github.com/pnpm/pnpm/pull/13475. Related to https://github.com/pnpm/rfcs/pull/19.
@pnpm/resolving.resolver-base
Types for pnpm-compatible resolvers
Installation
pnpm add @pnpm/resolving.resolver-base
Usage
Here's a template of a resolver using types from @pnpm/resolving.resolver-base:
import {
ResolveOptions,
ResolveResult,
WantedDependency,
} from '@pnpm/resolving.resolver-base'
export async function testResolver (
wantedDependency: WantedDependency,
opts: ResolveOptions,
): Promise<ResolveResult> {
// ...
return {
id,
resolution,
package,
latest,
normalizedBareSpecifier,
}
}
License
MIT