Files
pnpm/resolving/default-resolver/package.json
Zoltan Kochan 58b0019658 feat: add aqua resolver for installing binary tools from GitHub Releases
Add a new `aqua:` protocol that resolves packages using the aqua-registry,
a curated collection of 3,000+ CLI tools with cross-platform GitHub Release
asset definitions.

Usage: pnpm add aqua:owner/repo[@version]
Example: pnpm add --global aqua:junegunn/fzf@v0.57.0

The resolver fetches the tool's registry YAML from aquaproj/aqua-registry,
resolves versions via the GitHub Releases API, expands Go-style asset
templates for each supported platform, and returns a VariationsResolution
with per-platform binary download URLs.

Key advantages over the Homebrew+Scoop approach:
- Single data source covers all platforms (no merging two registries)
- Downloads from GitHub Releases (no GHCR auth or redirect dance)
- Binaries are statically linked (no native library deps or LD_LIBRARY_PATH)
- Full version history via GitHub Releases API
- Checksum verification using aqua-registry's checksum configuration

The resolver is placed before the local resolver in the resolution chain
to prevent specifiers containing "/" (e.g., aqua:owner/repo) from being
misinterpreted as local file paths.eat: aqua protocol
2026-03-28 18:34:53 +01:00

66 lines
2.1 KiB
JSON

{
"name": "@pnpm/resolving.default-resolver",
"version": "1002.2.12",
"description": "pnpm's default package resolver",
"keywords": [
"pnpm",
"pnpm11",
"npm",
"resolver"
],
"license": "MIT",
"funding": "https://opencollective.com/pnpm",
"repository": "https://github.com/pnpm/pnpm/tree/main/resolving/default-resolver",
"homepage": "https://github.com/pnpm/pnpm/tree/main/resolving/default-resolver#readme",
"bugs": {
"url": "https://github.com/pnpm/pnpm/issues"
},
"type": "module",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"exports": {
".": "./lib/index.js"
},
"files": [
"lib",
"!*.map"
],
"scripts": {
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
"test": "pn compile && pn .test",
"prepublishOnly": "pn compile",
"compile": "tsgo --build && pn lint --fix",
".test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules --disable-warning=ExperimentalWarning --disable-warning=DEP0169\" jest"
},
"dependencies": {
"@pnpm/engine.runtime.bun-resolver": "workspace:*",
"@pnpm/engine.runtime.deno-resolver": "workspace:*",
"@pnpm/engine.runtime.node-resolver": "workspace:*",
"@pnpm/error": "workspace:*",
"@pnpm/fetching.types": "workspace:*",
"@pnpm/hooks.types": "workspace:*",
"@pnpm/resolving.aqua-resolver": "workspace:*",
"@pnpm/resolving.git-resolver": "workspace:*",
"@pnpm/resolving.local-resolver": "workspace:*",
"@pnpm/resolving.npm-resolver": "workspace:*",
"@pnpm/resolving.resolver-base": "workspace:*",
"@pnpm/resolving.tarball-resolver": "workspace:*",
"@pnpm/types": "workspace:*"
},
"devDependencies": {
"@jest/globals": "catalog:",
"@pnpm/fetching.fetcher-base": "workspace:*",
"@pnpm/fetching.tarball-fetcher": "workspace:*",
"@pnpm/network.fetch": "workspace:*",
"@pnpm/resolving.default-resolver": "workspace:*",
"@pnpm/store.cafs-types": "workspace:*",
"node-fetch": "catalog:"
},
"engines": {
"node": ">=22.13"
},
"jest": {
"preset": "@pnpm/jest-config"
}
}