From 70881be20ebedad2834566065444f76a67e7cc8c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 21 Feb 2026 12:40:07 +0900 Subject: feat(lockfile): generate lock file from resolver results Add lock file generation pipeline that converts resolved packages into a complete composer.lock structure. Extends PackagistVersion with 15 metadata fields (authors, license, autoload, etc.), implements BFS-based dev package classification, platform requirements extraction, and content-hash computation. Cleans up unused skip_serializing_if attributes on the Deserialize-only PackagistVersion struct. Co-Authored-By: Claude Opus 4.6 --- crates/mozart/src/packagist.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'crates/mozart/src/packagist.rs') diff --git a/crates/mozart/src/packagist.rs b/crates/mozart/src/packagist.rs index 7246ee6..b589a77 100644 --- a/crates/mozart/src/packagist.rs +++ b/crates/mozart/src/packagist.rs @@ -32,6 +32,41 @@ pub struct PackagistVersion { pub conflict: BTreeMap, pub dist: Option, pub source: Option, + + #[serde(rename = "require-dev", default)] + pub require_dev: BTreeMap, + + #[serde(default)] + pub suggest: Option>, + + #[serde(rename = "type")] + pub package_type: Option, + + pub autoload: Option, + + #[serde(rename = "autoload-dev")] + pub autoload_dev: Option, + + pub license: Option>, + + pub description: Option, + + pub homepage: Option, + + pub keywords: Option>, + + pub authors: Option>, + + pub support: Option, + + pub funding: Option>, + + pub time: Option, + + pub extra: Option, + + #[serde(rename = "notification-url")] + pub notification_url: Option, } /// Parse a Packagist p2 API JSON response. -- cgit v1.3.1