Files
pnpm/.gitignore
T
Zoltan Kochan 82e9ae5eb0 refactor(pnpr): extract pnpr-storage (#14210)
## Summary

Continues the crate split from pnpm/pnpm#14191, after pnpm/pnpm#14202,
pnpm/pnpm#14204 and pnpm/pnpm#14207.

`storage`, `s3`, `streaming`, `journal` and `publish` move together as **one**
crate. That is not a shortcut — the graph says they are one subsystem:

```
storage → journal → publish → streaming → storage      (a 4-cycle)
s3 ↔ storage                                            (another)
```

Splitting them further would mean inventing seams the code does not have. The
crate they form is coherent on its own terms: where packages live, how bytes
get into that store, and the journal that makes a publish survive a crash.

The two thin edges are `Storage::publish_journal()` (a convenience constructor)
and `streaming`'s use of `TarballWrite` — either could be cut, but doing so to
manufacture crate boundaries would make the code worse, not better.

### What the boundary caught

Fifteen items become `pub`, plus the `HostedPackumentForUpdate` fields the
server reads — I had initially guessed that type was crate-internal and the
compiler corrected me.

`HostedBackend` deliberately stays `pub(crate)`: the trait is implemented and
dispatched only inside this crate, so it is the one part of the backend
contract that is nobody else's business. The re-export is split by visibility to
say so.

One over-publish caught on review of my own diff: `revision_ref_owner` exists
twice — a method and a free function — and the compiler only needed the method.
The free function is back to private.

Four doc links pointed at `crate::serve`, `crate::s3` or private items that no
longer resolve from the new crate root; those are plain code spans now.

`just test-pnpr` covers eleven crates at **733 tests**, unchanged. All feature
combinations build and `cargo deny check` passes.
2026-08-27 02:05:02 +02:00

87 lines
1.8 KiB
Plaintext

# Logs
logs
*.log
npm-debug.log*
# Dependency directory
**/node_modules/**
_node_modules
.pnp.cjs
# Coverage directory used by tools like istanbul
coverage
.tmp
_docpress
.DS_Store
lib
dist
tsconfig.tsbuildinfo
tsconfig.lint.tsbuildinfo
test.lib/
# Generated by `pnpm --filter pnpm run compile` (tsgo typecheck).
# The root `/pnpm/` entry that used to sit here (build detritus in the
# pre-pnpm11 package location) is gone: `pnpm/` is the Rust source tree
# now, so it must not be ignored. Delete any stale generated `pnpm/`
# dir left over from before the pnpm11 relocation.
__typecheck__/
# Visual Studio Code configs
.vscode/
# JetBrains IDEs
.idea/
# pnpm uses npm for publishing a new version with
# dependencies bundled but the npm lockfile is not needed
# because pnpm use pnpm for installation
package-lock.json
__package_previews__
.store
privatePackages/store
## Verdaccio storage
storage
# ...but not pnpr's `storage` crate. The bare rule above is unanchored, so it
# matches a directory of that name at any depth and would otherwise swallow
# this source tree — silently, since `git add` skips ignored paths without
# saying so. Keep this negation in step if the crate ever moves.
!/pnpr/crates/storage/
!/pnpr/crates/storage/**
yarn.lock
RELEASE.md
.jest-cache
.verdaccio-cache
.turbo
.eslintcache
.claude
.local-settings
.pnpm-typecheck.json
## custom modules-dir fixture
pnpm11/__fixtures__/custom-modules-dir/**/fake_modules/
pnpm11/__fixtures__/custom-modules-dir/cache/
pnpm11/__fixtures__/custom-modules-dir/patches/
## pacquet (Rust) artifacts
/target
/bench-work-env
.pacquet
## test registry auth state (written by pnpr when serving with auth)
htpasswd
tokens.db
pnpm/npm/napi/*.node
# Generated NAPI addon platform packages + cross-compiled artifacts
pnpm/npm/napi.*/
/pnpm-napi.*.node
pnpr-bins-*