use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
pub const BUILTIN_PROVIDERS: &[&str] = &[
"npm",
"yarn",
"pnpm",
"bun", "aube", "go", "pip", "poetry", "uv", "bundler", "composer", "dart", "flutter", "git-submodule", ];
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct DepsProviderConfig {
#[serde(default)]
pub auto: bool,
pub run: Option<String>,
#[serde(default)]
pub sources: Vec<String>,
#[serde(default)]
pub outputs: Vec<String>,
#[serde(default)]
pub env: BTreeMap<String, String>,
pub dir: Option<String>,
pub description: Option<String>,
#[serde(default)]
pub depends: Vec<String>,
pub timeout: Option<String>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct DepsConfig {
#[serde(default)]
pub disable: Vec<String>,
#[serde(flatten)]
pub providers: BTreeMap<String, DepsProviderConfig>,
}