callisto-graph 0.3.1

Dependency graph, cascade, aggregation, and config resolution for callisto.
Documentation
use serde::Deserialize;
use std::collections::BTreeMap;

#[derive(Clone, Debug, Default, Deserialize)]
pub struct RawConfig {
    pub changesets: Option<RawChangesetsConfig>,
    pub cascade: Option<RawCascadeConfig>,
    pub validation: Option<RawValidationConfig>,
    pub registries: Option<BTreeMap<String, RawRegistryConfig>>,
    pub package: Option<Vec<RawPackageConfig>>,
    #[serde(rename = "package-set")]
    pub package_set: Option<Vec<RawPackageSetConfig>>,
    #[serde(rename = "fixed-group")]
    pub fixed_group: Option<Vec<crate::config::groups::RawGroup>>,
    #[serde(rename = "linked-group")]
    pub linked_group: Option<Vec<crate::config::groups::RawGroup>>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawChangesetsConfig {
    pub dir: Option<String>,
}

#[derive(Clone, Debug, Default, Deserialize)]
pub struct RawCascadeConfig {
    pub mode: Option<String>,
    #[serde(rename = "bump-severity")]
    pub bump_severity: Option<String>,
    #[serde(rename = "peer-escalation")]
    pub peer_escalation: Option<bool>,
    #[serde(rename = "preserve-npm-ranges")]
    pub preserve_npm_ranges: Option<bool>,
}

#[derive(Clone, Debug, Default, Deserialize)]
pub struct RawValidationConfig {
    #[serde(rename = "allow-empty-changesets")]
    pub allow_empty_changesets: Option<bool>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawRegistryConfig {
    pub kind: Option<String>,
    pub url: Option<String>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawPackageConfig {
    #[serde(rename = "match")]
    pub pattern: String,
    #[serde(rename = "release-trigger")]
    pub release_trigger: Option<String>,
    #[serde(rename = "publish-to")]
    pub publish_to: Option<Vec<String>>,
    #[serde(rename = "tag-template")]
    pub tag_template: Option<String>,
    pub changelog: Option<String>,
    #[serde(rename = "pre-major-inference")]
    pub pre_major_inference: Option<String>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawPackageSetConfig {
    #[serde(rename = "match")]
    pub pattern: String,
    #[serde(rename = "release-trigger")]
    pub release_trigger: Option<String>,
    #[serde(rename = "publish-to")]
    pub publish_to: Option<Vec<String>>,
    #[serde(rename = "tag-template")]
    pub tag_template: Option<String>,
    pub changelog: Option<String>,
    #[serde(rename = "pre-major-inference")]
    pub pre_major_inference: Option<String>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawMoonYml {
    pub extensions: Option<RawMoonExtensions>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawMoonExtensions {
    pub callisto: Option<RawMoonCallistoConfig>,
}

#[derive(Clone, Debug, Deserialize)]
pub struct RawMoonCallistoConfig {
    #[serde(rename = "package-name")]
    pub package_name: Option<String>,
    #[serde(rename = "release-trigger")]
    pub release_trigger: Option<String>,
    #[serde(rename = "publish-to")]
    pub publish_to: Option<Vec<String>>,
    #[serde(rename = "tag-template")]
    pub tag_template: Option<String>,
    pub changelog: Option<String>,
    #[serde(rename = "pre-major-inference")]
    pub pre_major_inference: Option<String>,
}