Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions crates/aube-lockfile/src/bun/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@ pub fn write(
if MODELED_META_KEYS.contains(&k.as_str())
|| k == crate::EXTRA_PRESERVE_TARBALL_URL
|| k == crate::EXTRA_DECLARED_DEPENDENCIES_KNOWN
|| k == crate::EXTRA_YARN_BERRY_PRESERVED_BLOCKS
{
continue;
}
Expand Down
15 changes: 15 additions & 0 deletions crates/aube-lockfile/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ pub(crate) const EXTRA_PRESERVE_TARBALL_URL: &str = "__aube_preserve_tarball_url
/// [`LockedPackage::declared_dependencies_known`]. Writers never emit it.
pub(crate) const EXTRA_DECLARED_DEPENDENCIES_KNOWN: &str = "__aube_declared_dependencies_known";

/// `LockedPackage::extra_meta` key holding yarn berry blocks the parser
/// skipped but the writer must re-emit verbatim (the `builtin<compat/…>`
/// patch entries yarn adds for `typescript`, `resolve` and `fsevents`).
pub(crate) const EXTRA_YARN_BERRY_PRESERVED_BLOCKS: &str = "__aube_yarn_berry_preserved_blocks";

use smallvec::SmallVec;
use std::collections::{BTreeMap, BTreeSet};

Expand Down Expand Up @@ -124,6 +129,11 @@ pub struct LockfileGraph {
/// (e.g. from `2` back to `1`) when bun bumps it in a future
/// release.
pub bun_config_version: Option<u32>,
/// Yarn berry `__metadata` (`version`, `cacheKey`) as parsed, so the
/// writer re-stamps what yarn wrote instead of downgrading the
/// lockfile version on a re-resolve. `None` for other formats and
/// fresh graphs; the berry writer then falls back to its defaults.
pub yarn_berry_metadata: Option<(u32, String)>,
/// Top-level `patchedDependencies:` block mirrored by bun 1.1+ and
/// pnpm 9+. Key: selector (`lodash@4.17.21`); value is the relative
/// patch path for bun/fresh resolution or pnpm's patch-content hash
Expand Down Expand Up @@ -1015,6 +1025,7 @@ impl LockfileGraph {
skipped_optional_dependencies: self.skipped_optional_dependencies.clone(),
catalogs: self.catalogs.clone(),
bun_config_version: self.bun_config_version,
yarn_berry_metadata: self.yarn_berry_metadata.clone(),
patched_dependencies: self.patched_dependencies.clone(),
trusted_dependencies: self.trusted_dependencies.clone(),
// Runtime pins are graph-wide resolution intent, same as
Expand Down Expand Up @@ -1083,6 +1094,7 @@ impl LockfileGraph {
skipped_optional_dependencies,
catalogs: self.catalogs.clone(),
bun_config_version: self.bun_config_version,
yarn_berry_metadata: self.yarn_berry_metadata.clone(),
patched_dependencies: self.patched_dependencies.clone(),
trusted_dependencies: self.trusted_dependencies.clone(),
runtimes: self.runtimes.clone(),
Expand Down Expand Up @@ -1137,6 +1149,9 @@ impl LockfileGraph {
if self.bun_config_version.is_none() {
self.bun_config_version = prior.bun_config_version;
}
if self.yarn_berry_metadata.is_none() {
self.yarn_berry_metadata = prior.yarn_berry_metadata.clone();
}
if self.patched_dependencies.is_empty() {
self.patched_dependencies = prior.patched_dependencies.clone();
}
Expand Down
1 change: 1 addition & 0 deletions crates/aube-lockfile/src/pnpm/read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1055,6 +1055,7 @@ pub fn parse_with_options(path: &Path, options: ParseOptions) -> Result<Lockfile
skipped_optional_dependencies,
catalogs,
bun_config_version: None,
yarn_berry_metadata: None,
patched_dependencies,
trusted_dependencies: Vec::new(),
runtimes,
Expand Down
Loading
Loading