npm.jsr.io returns 404 for URL-encoded scoped package requests
## Bug Description
The npm.jsr.io registry returns 404 when the scoped package name contains a URL-encoded slash (`%2F`), but works fine with a literal `/`. This breaks pnpm which URL-encodes the package name in registry requests.
## Reproduction
```bash
# URL-encoded slash — returns 404
curl -v "https://npm.jsr.io/@jsr%2Fstd__yaml"
# HTTP/2 404
# Literal slash — returns 200
curl -v "https://npm.jsr.io/@jsr/std__yaml"
# HTTP/2 200
```
## Impact
pnpm URL-encodes the scoped package name when fetching from the registry, so any project using `@jsr/*` packages via pnpm hits this error:
```
ERR_PNPM_FETCH_404 GET https://npm.jsr.io/@jsr%2Fstd__yaml: Not Found - 404
@jsr/std__yaml is not in the npm registry, or you have no permission to fetch it.
```
This affects `pnpm install`, `pnpm dedupe --check`, and other pnpm commands that resolve packages.
## Expected Behavior
Both `https://npm.jsr.io/@jsr%2Fstd__yaml` and `https://npm.jsr.io/@jsr/std__yaml` should return the same 200 response, since `%2F` is the URL-encoded form of `/`.
## Environment
- pnpm v10.28.0
- Tested on macOS (Darwin 25.2.0)
0 条评论