mirror of
https://github.com/pnpm/pnpm.git
synced 2026-04-06 00:06:06 -04:00
Split the single-blob metadata storage into two tables: - metadata_index: dist-tags, version keys (with deprecated), time, and cache headers — one row per package, ~10KB - metadata_manifests: per-version manifest objects, keyed by (name, version, type) — ~2KB each During resolution, only the lightweight index is parsed to pick a version. The full manifest for the resolved version is loaded separately. For a package like typescript with 200+ versions, this avoids parsing ~400KB of unused manifest JSON. The index is shared across abbreviated/full metadata types — only the per-version manifests differ. This eliminates the type column from the index and simplifies the abbreviated→full fallback to the manifest level.