use crate::sbom_generation::domain::Package;
use crate::shared::Result;
use std::collections::HashMap;
use std::path::Path;
pub type DependencyMap = HashMap<String, Vec<String>>;
pub type LockfileParseResult = (Vec<Package>, DependencyMap);
pub trait LockfileReader {
fn read_lockfile(&self, project_path: &Path) -> Result<String>;
fn read_and_parse_lockfile(&self, project_path: &Path) -> Result<LockfileParseResult>;
fn read_and_parse_lockfile_for_member(
&self,
project_path: &Path,
member_name: &str,
) -> Result<LockfileParseResult>;
}