├── .gitignore ├── src ├── versioning │ ├── mod.rs │ ├── package_json.rs │ └── cargo.rs ├── main.rs ├── lib.rs ├── cargo_command.rs ├── config.rs ├── publish.rs └── update.rs ├── .taplo.toml ├── rust-toolchain.toml ├── .github ├── renovate.json └── workflows │ ├── release.yml │ ├── ci.yml │ └── release-binaries.yml ├── .rustfmt.toml ├── justfile ├── README.md ├── Cargo.toml ├── CHANGELOG.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /src/versioning/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod cargo; 2 | pub mod package_json; 3 | -------------------------------------------------------------------------------- /.taplo.toml: -------------------------------------------------------------------------------- 1 | [formatting] 2 | align_entries = true 3 | column_width = 120 4 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.92.0" 3 | profile = "default" 4 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["github>Boshen/renovate"] 4 | } 5 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- 1 | style_edition = "2024" 2 | use_small_heuristics = "Max" 3 | use_field_init_shorthand = true 4 | reorder_modules = true 5 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | permissions: {} 4 | 5 | on: 6 | push: 7 | branches: 8 | - main 9 | 10 | jobs: 11 | release-plz: 12 | name: Release-plz 13 | runs-on: ubuntu-latest 14 | permissions: 15 | pull-requests: write 16 | contents: write 17 | id-token: write 18 | steps: 19 | - uses: oxc-project/release-plz@44b98e8dda1a7783d4ec2ef66e2f37a3e8c1c759 # v1.0.4 20 | with: 21 | PAT: ${{ secrets.OXC_BOT_PAT }} 22 | -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env -S just --justfile 2 | 3 | _default: 4 | @just --list -u 5 | 6 | alias r := ready 7 | 8 | init: 9 | cargo binstall watchexec-cli taplo-cli 10 | 11 | watch *args='': 12 | watchexec {{args}} 13 | 14 | build-release: 15 | cargo build --release 16 | 17 | run-release command: 18 | ./target/release/cargo-release-oxc {{command}} 19 | 20 | fmt: 21 | cargo fmt 22 | taplo format 23 | 24 | lint: 25 | cargo clippy 26 | 27 | ready: 28 | typos 29 | just fmt 30 | cargo check 31 | just lint 32 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | permissions: {} 4 | 5 | on: 6 | workflow_dispatch: 7 | pull_request: 8 | types: [opened, synchronize] 9 | push: 10 | branches: 11 | - main 12 | 13 | concurrency: 14 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} 15 | cancel-in-progress: ${{ github.ref_name != 'main' }} 16 | 17 | jobs: 18 | test: 19 | name: Test 20 | runs-on: ubuntu-latest 21 | steps: 22 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 23 | 24 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 25 | with: 26 | save-cache: ${{ github.ref_name == 'main' }} 27 | components: clippy rustfmt 28 | 29 | - run: | 30 | cargo test 31 | cargo clippy -- -D warnings 32 | cargo fmt --all -- --check 33 | 34 | typos: 35 | name: Typos 36 | runs-on: ubuntu-latest 37 | steps: 38 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 39 | - uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06 # v1.40.0 40 | with: 41 | files: . 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Release management for the oxc project 2 | 3 | ## `cargo release-oxc` 4 | 5 | ``` 6 | Usage: cargo-release-oxc COMMAND ... 7 | 8 | Available options: 9 | -h, --help Prints help information 10 | 11 | Available commands: 12 | update Generate CHANGELOG.md and bump versions for all published packages. 13 | changelog Generate changelog summary. 14 | regenerate-changelogs Regenerate CHANGELOG.md for all published packages. 15 | publish Publish all `versioned_files` specified in `oxc_release.toml`. 16 | 17 | Available options: 18 | --release=NAME Select the release specified in `oxc_release.toml`. 19 | --dry-run Run `cargo publish` with `--dry-run` 20 | ``` 21 | 22 | ## Specify `oxc_release.toml` 23 | 24 | ```toml 25 | [[releases]] 26 | name = "crates" 27 | versioned_files = [ 28 | "Cargo.toml", 29 | "npm/oxc-parser/package.json", 30 | "npm/oxc-transform/package.json", 31 | "wasm/parser/package.json", 32 | ] 33 | 34 | [[releases]] 35 | name = "oxlint" 36 | versioned_files = [ 37 | "apps/oxlint/Cargo.toml", 38 | "crates/oxc_linter/Cargo.toml", 39 | "editors/vscode/package.json", 40 | "npm/oxlint/package.json", 41 | ] 42 | ``` 43 | 44 | ## Output 45 | 46 | Saves two files to `./target`: 47 | 48 | * version: `./target/${name}_VERSION` 49 | * changelog: `./target/${name}_CHANGELOG` 50 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use anyhow::Result; 2 | 3 | use cargo_release_oxc::{ 4 | Options, Publish, ReleaseCommand, Update, check_git_clean, release_command, 5 | }; 6 | 7 | fn main() -> Result<()> { 8 | let command = release_command().fallback_to_usage().run(); 9 | match command { 10 | ReleaseCommand::Update(options) => update(&options), 11 | ReleaseCommand::Changelog(options) => changelog(&options), 12 | ReleaseCommand::RegenerateChangelogs(options) => regenerate_changelogs(&options), 13 | ReleaseCommand::Publish(options) => publish(&options), 14 | } 15 | } 16 | 17 | fn update(options: &Options) -> Result<()> { 18 | let cwd = &options.path; 19 | check_git_clean(cwd)?; 20 | for release_name in &options.release { 21 | Update::new(cwd, release_name)?.run()?; 22 | } 23 | Ok(()) 24 | } 25 | 26 | fn changelog(options: &Options) -> Result<()> { 27 | for release_name in &options.release { 28 | Update::new(&options.path, release_name)?.changelog_for_release()?; 29 | } 30 | Ok(()) 31 | } 32 | 33 | fn regenerate_changelogs(options: &Options) -> Result<()> { 34 | for release_name in &options.release { 35 | Update::new(&options.path, release_name)?.regenerate_changelogs()?; 36 | } 37 | Ok(()) 38 | } 39 | 40 | fn publish(options: &Options) -> Result<()> { 41 | let cwd = &options.path; 42 | check_git_clean(cwd)?; 43 | for release_name in &options.release { 44 | Publish::new(cwd, release_name, options.dry_run)?.run()?; 45 | } 46 | Ok(()) 47 | } 48 | -------------------------------------------------------------------------------- /src/versioning/package_json.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | cell::RefCell, 3 | fs, 4 | path::{Path, PathBuf}, 5 | }; 6 | 7 | use anyhow::{Context, Result}; 8 | use serde_json::Value; 9 | 10 | use crate::config::VersionedPackage; 11 | 12 | type RawJson = serde_json::Map; 13 | 14 | #[derive(Debug)] 15 | pub struct PackageJson { 16 | path: PathBuf, 17 | 18 | raw: RefCell, 19 | } 20 | 21 | impl PackageJson { 22 | pub fn new(path: &Path) -> Result { 23 | let content = fs::read_to_string(path) 24 | .with_context(|| format!("failed to read {}", path.display()))?; 25 | let raw: RawJson = serde_json::from_str(&content) 26 | .with_context(|| format!("failed to parse {}", path.display()))?; 27 | Ok(Self { path: path.to_path_buf(), raw: RefCell::new(raw) }) 28 | } 29 | 30 | pub fn packages(&self) -> Vec { 31 | vec![VersionedPackage { 32 | name: self.raw.borrow().get("name").unwrap().as_str().unwrap().to_string(), 33 | dir: self.path.parent().unwrap().to_path_buf(), 34 | path: self.path.clone(), 35 | }] 36 | } 37 | 38 | pub fn update_version(&self, version: &str) -> Result<()> { 39 | self.raw.borrow_mut().insert("version".to_string(), Value::String(version.to_string())); 40 | let mut json = serde_json::to_string_pretty(&self.raw).context("failed to write json")?; 41 | json.push('\n'); 42 | fs::write(&self.path, json).context("failed to write json")?; 43 | Ok(()) 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cargo-release-oxc" 3 | version = "0.0.37" 4 | edition = "2024" 5 | description = "Oxc release management" 6 | authors = ["Boshen "] 7 | repository = "https://github.com/oxc-project/cargo-release-oxc" 8 | keywords = [] 9 | categories = [] 10 | license = "MIT" 11 | readme = "README.md" 12 | 13 | [lints.clippy] 14 | all = { level = "warn", priority = -1 } 15 | pedantic = { level = "warn", priority = -1 } 16 | nursery = { level = "warn", priority = -1 } 17 | dbg_macro = "warn" 18 | empty_drop = "warn" 19 | exit = "warn" 20 | empty_structs_with_brackets = "warn" 21 | rc_buffer = "warn" 22 | rc_mutex = "warn" 23 | same_name_method = "warn" 24 | missing_errors_doc = "allow" 25 | missing_panics_doc = "allow" 26 | module_name_repetitions = "allow" 27 | 28 | [lib] 29 | test = false 30 | doctest = false 31 | 32 | [[bin]] 33 | name = "cargo-release-oxc" 34 | path = "src/main.rs" 35 | test = false 36 | 37 | [dependencies] 38 | anyhow = "1.0.100" 39 | bpaf = { version = "0.9.20", features = ["derive", "batteries"] } 40 | cargo_metadata = "0.23.0" 41 | git-cliff-core = { version = "2.10.1", default-features = false, features = ["repo"] } 42 | glob = "0.3.3" 43 | toml_edit = { version = "0.23.7", features = ["parse"] } 44 | crates_io_api = { version = "0.12.0", default-features = false, features = ["rustls"] } 45 | toml = "0.9.8" 46 | serde = "1.0.228" 47 | serde_json = { version = "1.0.145", features = ["preserve_order"] } 48 | regex = "1.12.2" 49 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | mod cargo_command; 2 | mod config; 3 | mod publish; 4 | mod update; 5 | mod versioning; 6 | 7 | use std::{ 8 | path::{Path, PathBuf}, 9 | process::{Command, Stdio}, 10 | }; 11 | 12 | use anyhow::Result; 13 | use bpaf::Bpaf; 14 | 15 | pub use self::{publish::Publish, update::Update}; 16 | 17 | #[derive(Debug, Clone, Bpaf)] 18 | pub struct Options { 19 | /// Select the release specified in `oxc_release.toml`. 20 | pub release: Vec, 21 | 22 | /// Run `cargo publish` with `--dry-run` 23 | #[bpaf(switch, fallback(false))] 24 | pub dry_run: bool, 25 | 26 | /// Optional path to directory, defaults to current working directory. 27 | #[bpaf(positional("PATH"), fallback_with(crate::current_dir))] 28 | pub path: PathBuf, 29 | } 30 | 31 | #[derive(Debug, Clone, Bpaf)] 32 | #[bpaf(options("release-oxc"))] 33 | pub enum ReleaseCommand { 34 | /// Generate CHANGELOG.md and bump versions for all published packages. 35 | #[bpaf(command)] 36 | Update(#[bpaf(external(options))] Options), 37 | 38 | /// Generate changelog summary. 39 | #[bpaf(command)] 40 | Changelog(#[bpaf(external(options))] Options), 41 | 42 | /// Regenerate CHANGELOG.md for all published packages. 43 | #[bpaf(command)] 44 | RegenerateChangelogs(#[bpaf(external(options))] Options), 45 | 46 | /// Publish all `versioned_files` specified in `oxc_release.toml`. 47 | #[bpaf(command)] 48 | Publish(#[bpaf(external(options))] Options), 49 | } 50 | 51 | fn current_dir() -> Result { 52 | std::env::current_dir().map_err(|err| format!("{err:?}")) 53 | } 54 | 55 | pub fn check_git_clean(path: &Path) -> Result<()> { 56 | let git_status = Command::new("git") 57 | .current_dir(path) 58 | .stdout(Stdio::null()) 59 | .args(["diff", "--exit-code"]) 60 | .status(); 61 | if !git_status.is_ok_and(|s| s.success()) { 62 | anyhow::bail!("Uncommitted changes found, please check `git status`.") 63 | } 64 | Ok(()) 65 | } 66 | -------------------------------------------------------------------------------- /.github/workflows/release-binaries.yml: -------------------------------------------------------------------------------- 1 | name: Release Binaries 2 | 3 | on: 4 | workflow_dispatch: 5 | release: 6 | types: [published] 7 | 8 | defaults: 9 | run: 10 | shell: bash 11 | 12 | permissions: 13 | contents: write 14 | 15 | jobs: 16 | upload-assets: 17 | name: ${{ matrix.target }} 18 | if: github.repository_owner == 'oxc-project' 19 | strategy: 20 | matrix: 21 | include: 22 | - target: aarch64-unknown-linux-gnu 23 | - target: aarch64-unknown-linux-musl 24 | - target: aarch64-apple-darwin 25 | os: macos-latest 26 | - target: aarch64-pc-windows-msvc 27 | os: windows-latest 28 | - target: x86_64-unknown-linux-gnu 29 | - target: x86_64-unknown-linux-musl 30 | - target: x86_64-apple-darwin 31 | os: macos-latest 32 | - target: x86_64-pc-windows-msvc 33 | os: windows-latest 34 | - target: x86_64-unknown-freebsd 35 | - target: universal-apple-darwin 36 | os: macos-latest 37 | runs-on: ${{ matrix.os || 'ubuntu-latest' }} 38 | timeout-minutes: 60 39 | steps: 40 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 41 | 42 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 43 | with: 44 | save-cache: ${{ github.ref_name == 'main' }} 45 | 46 | - uses: taiki-e/setup-cross-toolchain-action@84e58a47fc2bcd3821a2aa8c153595bbffb0e10f # v1.32.1 47 | with: 48 | target: ${{ matrix.target }} 49 | 50 | - run: echo "RUSTFLAGS=${RUSTFLAGS} -C target-feature=+crt-static" >>"${GITHUB_ENV}" 51 | if: contains(matrix.target, '-windows-msvc') 52 | 53 | - run: echo "RUSTFLAGS=${RUSTFLAGS} -C target-feature=+crt-static -C link-self-contained=yes" >>"${GITHUB_ENV}" 54 | if: contains(matrix.target, '-linux-musl') 55 | 56 | - uses: taiki-e/upload-rust-binary-action@3962470d6e7f1993108411bc3f75a135ec67fc8c # v1.27.0 57 | with: 58 | bin: cargo-release-oxc 59 | target: ${{ matrix.target }} 60 | tar: all 61 | zip: windows 62 | token: ${{ secrets.GITHUB_TOKEN }} 63 | -------------------------------------------------------------------------------- /src/cargo_command.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | env, 3 | io::{BufRead, BufReader}, 4 | path::PathBuf, 5 | process::{Command, ExitStatus, Stdio}, 6 | }; 7 | 8 | use anyhow::{Context, Result}; 9 | 10 | const CARGO_REGISTRY_TOKEN: &str = "CARGO_REGISTRY_TOKEN"; 11 | 12 | pub struct CmdOutput { 13 | pub status: ExitStatus, 14 | // pub stdout: String, 15 | pub stderr: String, 16 | } 17 | 18 | pub struct CargoCommand { 19 | current_dir: PathBuf, 20 | } 21 | 22 | impl CargoCommand { 23 | pub const fn new(current_dir: PathBuf) -> Self { 24 | Self { current_dir } 25 | } 26 | 27 | pub fn check(&self, package_name: &str) -> Result<()> { 28 | let output = self.run(&["check", "-p", package_name])?; 29 | if !output.status.success() { 30 | anyhow::bail!("failed to check {}: {}", package_name, output.stderr); 31 | } 32 | Ok(()) 33 | } 34 | 35 | pub fn publish(&self, package_name: &str, dry_run: bool) -> Result<()> { 36 | let mut args = vec!["publish", "-p", package_name]; 37 | if dry_run { 38 | args.push("--dry-run"); 39 | } 40 | let output = self.run(&args)?; 41 | if !output.status.success() 42 | || !output.stderr.contains("Uploading") 43 | || output.stderr.contains("error:") 44 | { 45 | anyhow::bail!("failed to publish {}: {}", package_name, output.stderr); 46 | } 47 | Ok(()) 48 | } 49 | 50 | pub fn run(&self, args: &[&str]) -> Result { 51 | fn cargo_cmd() -> Command { 52 | let cargo = env::var("CARGO").unwrap_or_else(|_| "cargo".to_owned()); 53 | Command::new(cargo) 54 | } 55 | 56 | let mut args = args.to_vec(); 57 | args.extend(["--color", "always"]); 58 | 59 | let mut stderr_lines = vec![]; 60 | let mut command = cargo_cmd(); 61 | if let Ok(token) = env::var(CARGO_REGISTRY_TOKEN) { 62 | command.env(CARGO_REGISTRY_TOKEN, token); 63 | } 64 | let mut child = command 65 | .current_dir(&self.current_dir) 66 | .args(args) 67 | .stdout(Stdio::piped()) 68 | .stderr(Stdio::piped()) 69 | .spawn() 70 | .context("cannot run cargo")?; 71 | 72 | { 73 | let stderr = child.stderr.as_mut().expect("cannot get child stderr"); 74 | 75 | for line in BufReader::new(stderr).lines() { 76 | let line = line?; 77 | 78 | eprintln!("{line}"); 79 | stderr_lines.push(line); 80 | } 81 | } 82 | 83 | let output = child.wait_with_output()?; 84 | 85 | // let output_stdout = String::from_utf8(output.stdout)?; 86 | let output_stderr = stderr_lines.join("\n"); 87 | 88 | Ok(CmdOutput { status: output.status, stderr: output_stderr }) 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | fs, 3 | path::{Path, PathBuf}, 4 | }; 5 | 6 | use anyhow::{Context, Result}; 7 | use serde::Deserialize; 8 | 9 | use crate::versioning::{cargo::CargoToml, package_json::PackageJson}; 10 | 11 | const RELEASE_CONFIG: &str = "oxc_release.toml"; 12 | 13 | #[derive(Debug, Deserialize)] 14 | #[serde(deny_unknown_fields)] 15 | pub struct ReleaseConfig { 16 | #[serde(rename = "releases")] 17 | release_sets: Vec, 18 | } 19 | 20 | impl ReleaseConfig { 21 | pub fn new(cwd: &Path) -> Result { 22 | let s = 23 | fs::read_to_string(cwd.join(RELEASE_CONFIG)).context("failed to read release.toml")?; 24 | let mut config: Self = toml::from_str(&s).context("failed to parse release.toml")?; 25 | for release_set in &mut config.release_sets { 26 | for versioned_file in &mut release_set.versioned_files { 27 | versioned_file.content = VersionedContent::read(&cwd.join(&versioned_file.path))?; 28 | } 29 | } 30 | Ok(config) 31 | } 32 | 33 | pub fn get_release(self, release_name: &str) -> Result { 34 | match self.release_sets.into_iter().find(|r| r.name == release_name) { 35 | Some(release_set) => Ok(release_set), 36 | _ => { 37 | anyhow::bail!("release {release_name} not found"); 38 | } 39 | } 40 | } 41 | } 42 | 43 | #[derive(Debug, Deserialize)] 44 | #[serde(deny_unknown_fields)] 45 | pub struct ReleaseSet { 46 | pub name: String, 47 | 48 | pub root_crate: Option, 49 | 50 | pub scopes_for_breaking_change: Option>, 51 | 52 | versioned_files: Vec, 53 | } 54 | 55 | impl ReleaseSet { 56 | #[must_use] 57 | pub fn versioned_packages(&self) -> Vec { 58 | let mut packages = self 59 | .versioned_files 60 | .iter() 61 | .flat_map(|v| v.content.versioned_packages()) 62 | .collect::>(); 63 | packages.sort_by(|a, b| a.dir.cmp(&b.dir)); 64 | packages.dedup_by(|a, b| a.dir == b.dir); 65 | packages 66 | } 67 | 68 | pub fn update_version(&self, version: &str) -> Result<()> { 69 | for versioned_file in &self.versioned_files { 70 | versioned_file.content.update_version(version)?; 71 | } 72 | Ok(()) 73 | } 74 | 75 | pub fn commits_range(&self, version: &str) -> String { 76 | format!("{}_v{version}..HEAD", &self.name) 77 | } 78 | } 79 | 80 | #[derive(Debug, Deserialize)] 81 | #[serde(transparent)] 82 | pub struct VersionedFile { 83 | path: PathBuf, 84 | 85 | #[serde(skip)] 86 | content: VersionedContent, 87 | } 88 | 89 | #[derive(Debug, Default)] 90 | pub enum VersionedContent { 91 | #[default] 92 | None, 93 | Cargo(CargoToml), 94 | PackageJson(PackageJson), 95 | } 96 | 97 | #[derive(Debug, Clone)] 98 | pub struct VersionedPackage { 99 | pub name: String, 100 | pub dir: PathBuf, 101 | pub path: PathBuf, 102 | } 103 | 104 | impl VersionedContent { 105 | fn read(path: &Path) -> Result { 106 | let file_name = path 107 | .file_name() 108 | .with_context(|| format!("{} does not have a filename.", path.display()))?; 109 | let content = match file_name.to_string_lossy().as_ref() { 110 | "Cargo.toml" => Self::Cargo(CargoToml::new(path)?), 111 | "package.json" => Self::PackageJson(PackageJson::new(path)?), 112 | _ => anyhow::bail!("{} is not recognized", path.display()), 113 | }; 114 | Ok(content) 115 | } 116 | 117 | #[must_use] 118 | pub fn versioned_packages(&self) -> Vec { 119 | match self { 120 | Self::None => vec![], 121 | Self::Cargo(cargo) => cargo.packages(), 122 | Self::PackageJson(package_json) => package_json.packages(), 123 | } 124 | } 125 | 126 | pub fn update_version(&self, version: &str) -> Result<()> { 127 | match self { 128 | Self::None => Ok(()), 129 | Self::Cargo(cargo) => cargo.update_version(version), 130 | Self::PackageJson(package_json) => package_json.update_version(version), 131 | } 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /src/versioning/cargo.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | fs, 3 | path::{Path, PathBuf}, 4 | str::FromStr, 5 | }; 6 | 7 | use anyhow::{Context, Result}; 8 | use cargo_metadata::MetadataCommand; 9 | use toml_edit::{DocumentMut, Formatted, Value}; 10 | 11 | use crate::config::VersionedPackage; 12 | 13 | #[derive(Debug)] 14 | pub struct CargoToml { 15 | path: PathBuf, 16 | 17 | is_workspace: bool, 18 | 19 | packages: Vec, 20 | } 21 | 22 | impl CargoToml { 23 | pub fn new(path: &Path) -> Result { 24 | let dir = path.parent().unwrap(); 25 | 26 | let toml = DocumentMut::from_str(&fs::read_to_string(path)?)?; 27 | let is_workspace = toml.contains_key("workspace"); 28 | 29 | let packages = if is_workspace { 30 | let metadata = MetadataCommand::new().current_dir(dir).no_deps().exec()?; 31 | metadata 32 | .workspace_packages() 33 | .into_iter() 34 | // `publish.is_none()` means `publish = true`. 35 | .filter(|p| p.publish.is_none()) 36 | .map(|p| VersionedPackage { 37 | name: p.name.to_string(), 38 | dir: p.manifest_path.parent().unwrap().as_std_path().to_path_buf(), 39 | path: p.manifest_path.as_std_path().to_path_buf(), 40 | }) 41 | .collect::>() 42 | } else { 43 | vec![VersionedPackage { 44 | name: toml 45 | .get("package") 46 | .and_then(|item| item.as_table()) 47 | .and_then(|table| table.get("name")) 48 | .and_then(|value| value.as_str()) 49 | .context("expect package name")? 50 | .to_string(), 51 | dir: path.parent().unwrap().to_path_buf(), 52 | path: path.to_path_buf(), 53 | }] 54 | }; 55 | 56 | Ok(Self { path: path.to_path_buf(), is_workspace, packages }) 57 | } 58 | 59 | pub fn packages(&self) -> Vec { 60 | self.packages.clone() 61 | } 62 | 63 | pub fn update_version(&self, version: &str) -> Result<()> { 64 | if self.is_workspace { 65 | let mut workspace_toml = CargoTomlFile::new(&self.path)?; 66 | for package in &self.packages { 67 | workspace_toml.set_workspace_dependency_version(&package.name, version)?; 68 | } 69 | workspace_toml.save()?; 70 | } 71 | for package in &self.packages { 72 | let mut package_toml = CargoTomlFile::new(&package.path)?; 73 | package_toml.set_package_version(version)?; 74 | package_toml.save()?; 75 | } 76 | Ok(()) 77 | } 78 | } 79 | 80 | struct CargoTomlFile { 81 | path: PathBuf, 82 | toml: DocumentMut, 83 | } 84 | 85 | impl CargoTomlFile { 86 | fn new(path: &Path) -> Result { 87 | let toml = DocumentMut::from_str(&fs::read_to_string(path)?)?; 88 | Ok(Self { path: path.to_path_buf(), toml }) 89 | } 90 | 91 | fn save(self) -> Result<()> { 92 | let serialized = self.toml.to_string(); 93 | fs::write(self.path, serialized)?; 94 | Ok(()) 95 | } 96 | 97 | fn set_workspace_dependency_version(&mut self, crate_name: &str, version: &str) -> Result<()> { 98 | let Some(table) = self 99 | .toml 100 | .get_mut("workspace") 101 | .and_then(|item| item.as_table_mut()) 102 | .and_then(|table| table.get_mut("dependencies")) 103 | .and_then(|item| item.as_table_mut()) 104 | else { 105 | anyhow::bail!("`workspace.dependencies` field not found: {}", self.path.display()); 106 | }; 107 | let Some(version_field) = table 108 | .get_mut(crate_name) 109 | .and_then(|item| item.as_inline_table_mut()) 110 | .and_then(|item| item.get_mut("version")) 111 | else { 112 | anyhow::bail!("dependency `{}` not found: {}", crate_name, self.path.display()); 113 | }; 114 | *version_field = Value::String(Formatted::new(version.to_string())); 115 | Ok(()) 116 | } 117 | 118 | fn set_package_version(&mut self, version: &str) -> Result<()> { 119 | let Some(version_field) = self 120 | .toml 121 | .get_mut("package") 122 | .and_then(|item| item.as_table_mut()) 123 | .and_then(|table| table.get_mut("version")) 124 | .and_then(|item| item.as_value_mut()) 125 | else { 126 | anyhow::bail!("No `package.version` field found: {}", self.path.display()); 127 | }; 128 | *version_field = Value::String(Formatted::new(version.to_string())); 129 | Ok(()) 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /src/publish.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | fs, 3 | path::{Path, PathBuf}, 4 | time::Duration, 5 | }; 6 | 7 | use anyhow::{Context, Result}; 8 | use cargo_metadata::{Metadata, MetadataCommand, Package}; 9 | use crates_io_api::SyncClient; 10 | 11 | use crate::{ 12 | cargo_command::CargoCommand, 13 | config::{ReleaseConfig, ReleaseSet}, 14 | }; 15 | 16 | pub struct Publish { 17 | release_set: ReleaseSet, 18 | metadata: Metadata, 19 | cargo: CargoCommand, 20 | client: SyncClient, 21 | dry_run: bool, 22 | } 23 | 24 | impl Publish { 25 | pub fn new(cwd: &PathBuf, release_name: &str, dry_run: bool) -> Result { 26 | let release_set = ReleaseConfig::new(cwd)?.get_release(release_name)?; 27 | 28 | let metadata = MetadataCommand::new().current_dir(cwd).no_deps().exec()?; 29 | let cargo = CargoCommand::new(metadata.workspace_root.clone().into_std_path_buf()); 30 | let client = 31 | SyncClient::new("Boshen@users.noreply.github.com", Duration::from_millis(1000)) 32 | .context("failed to get client")?; 33 | Ok(Self { release_set, metadata, cargo, client, dry_run }) 34 | } 35 | 36 | pub fn run(self) -> Result<()> { 37 | let packages = self.get_packages(); 38 | 39 | let Some(root_crate) = &self.release_set.root_crate else { 40 | anyhow::bail!("root_crate must be specified in the [[releases]] config"); 41 | }; 42 | 43 | let Some(root_package) = 44 | &packages.iter().find(|package| package.name.as_str() == root_crate) 45 | else { 46 | anyhow::bail!("root package '{root_crate}' not found."); 47 | }; 48 | 49 | let root_version = root_package.version.to_string(); 50 | 51 | let packages = release_order::release_order(&packages)?; 52 | let packages = packages.into_iter().map(|package| &package.name).collect::>(); 53 | 54 | eprintln!("Publishing packages:"); 55 | for package in &packages { 56 | eprintln!("{}", package.as_str()); 57 | } 58 | for package in &packages { 59 | if self.dry_run { 60 | // check each crate individually to prevent feature unification. 61 | self.cargo.check(package)?; 62 | } 63 | if self.skip_published(package, &root_version) { 64 | continue; 65 | } 66 | self.cargo.publish(package, self.dry_run)?; 67 | eprintln!("Published: {}", package.as_str()); 68 | } 69 | 70 | let release_name = &self.release_set.name; 71 | let version = format!("{release_name}_v{root_version}"); 72 | let var = format!("{}_VERSION", release_name.to_uppercase()); 73 | let file = Path::new("./target").join(var); 74 | fs::write(file, version)?; 75 | Ok(()) 76 | } 77 | 78 | fn skip_published(&self, package: &str, root_version: &str) -> bool { 79 | let Ok(krate) = self.client.get_crate(package) else { 80 | eprintln!("Cannot get {package}"); 81 | return false; 82 | }; 83 | let versions = krate.versions.into_iter().map(|version| version.num).collect::>(); 84 | let is_already_published = versions.iter().any(|v| v == root_version); 85 | if is_already_published { 86 | eprintln!("Already published {package} {root_version}"); 87 | } 88 | is_already_published 89 | } 90 | 91 | fn get_packages(&self) -> Vec<&Package> { 92 | // `publish.is_none()` means `publish = true`. 93 | self.metadata.workspace_packages().into_iter().filter(|p| p.publish.is_none()).collect() 94 | } 95 | } 96 | 97 | mod release_order { 98 | use anyhow::Result; 99 | use cargo_metadata::Package; 100 | 101 | /// Return packages in an order they can be released. 102 | /// In the result, the packages are placed after all their dependencies. 103 | /// Return an error if a circular dependency is detected. 104 | pub fn release_order<'a>(packages: &'a [&Package]) -> Result> { 105 | let mut order = vec![]; 106 | let mut passed = vec![]; 107 | for p in packages { 108 | release_order_inner(packages, p, &mut order, &mut passed)?; 109 | } 110 | Ok(order) 111 | } 112 | 113 | /// The `passed` argument is used to track packages that you already visited to 114 | /// detect circular dependencies. 115 | fn release_order_inner<'a>( 116 | packages: &[&'a Package], 117 | pkg: &'a Package, 118 | order: &mut Vec<&'a Package>, 119 | passed: &mut Vec<&'a Package>, 120 | ) -> Result<()> { 121 | if is_package_in(pkg, order) { 122 | return Ok(()); 123 | } 124 | passed.push(pkg); 125 | 126 | for d in &pkg.dependencies { 127 | // Check if the dependency is part of the packages we are releasing. 128 | if let Some(dep) = packages.iter().find(|p| { 129 | d.name == p.name.as_str() 130 | // Exclude the current package. 131 | && p.name != pkg.name 132 | }) { 133 | anyhow::ensure!( 134 | !is_package_in(dep, passed), 135 | "Circular dependency detected: {} -> {}", 136 | dep.name, 137 | pkg.name, 138 | ); 139 | release_order_inner(packages, dep, order, passed)?; 140 | } 141 | } 142 | 143 | order.push(pkg); 144 | passed.clear(); 145 | Ok(()) 146 | } 147 | 148 | /// Return true if the package is part of a packages array. 149 | /// This function exists because `package.contains(pkg)` is expensive, 150 | /// because it compares the whole package struct. 151 | fn is_package_in(pkg: &Package, packages: &[&Package]) -> bool { 152 | packages.iter().any(|p| p.name == pkg.name) 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /src/update.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | fs::{self, File}, 3 | path::{Path, PathBuf}, 4 | time::{SystemTime, UNIX_EPOCH}, 5 | }; 6 | 7 | use anyhow::{Context, Result}; 8 | use git_cliff_core::{ 9 | DEFAULT_CONFIG, changelog::Changelog, commit::Commit, config::Config, release::Release, 10 | repo::Repository, 11 | }; 12 | 13 | use crate::config::{ReleaseConfig, ReleaseSet, VersionedPackage}; 14 | 15 | const CHANGELOG_NAME: &str = "CHANGELOG.md"; 16 | 17 | #[derive(Debug, Clone)] 18 | struct GitTag { 19 | version: String, 20 | sha: String, 21 | } 22 | 23 | impl GitTag { 24 | fn new(sha: String, tag: String) -> Result { 25 | let version = if tag.contains('v') { 26 | tag.split_once('v') 27 | .with_context(|| format!("tag {tag} does not have a `v`"))? 28 | .1 29 | .to_string() 30 | } else { 31 | tag 32 | }; 33 | Ok(Self { version, sha }) 34 | } 35 | } 36 | 37 | pub struct Update { 38 | cwd: PathBuf, 39 | release_set: ReleaseSet, 40 | git_cliff_repo: Repository, 41 | git_cliff_config: Config, 42 | tags: Vec, 43 | current_version: String, 44 | } 45 | 46 | impl Update { 47 | pub fn new(cwd: &Path, release_name: &str) -> Result { 48 | let cwd = cwd.to_path_buf(); 49 | 50 | let release_set = ReleaseConfig::new(&cwd)?.get_release(release_name)?; 51 | 52 | let git_cliff_repo = Repository::init(cwd.clone())?; 53 | let git_cliff_config = Config::load(&cwd.join(DEFAULT_CONFIG))?; 54 | let tag_pattern = regex::Regex::new(&format!("^{release_name}_v[0-9]*")) 55 | .context("failed to make regex")?; 56 | let tags = git_cliff_repo 57 | .tags( 58 | &Some(tag_pattern.clone()), 59 | /* topo_order */ false, 60 | /* include only the tags that belong to the current branch. */ false, 61 | )? 62 | .into_iter() 63 | .map(|(sha, tag)| GitTag::new(sha, tag.name)) 64 | .collect::>>()?; 65 | let current_tag = tags 66 | .last() 67 | .ok_or_else(|| anyhow::anyhow!("Tags should not be empty for {tag_pattern:?}"))?; 68 | let current_version = current_tag.version.clone(); 69 | Ok(Self { cwd, release_set, git_cliff_repo, git_cliff_config, tags, current_version }) 70 | } 71 | 72 | pub fn run(&self) -> Result<()> { 73 | let next_version = self.changelog_for_release()?; 74 | for package in self.release_set.versioned_packages() { 75 | self.generate_changelog_for_package(&package, &next_version)?; 76 | } 77 | self.release_set.update_version(&next_version)?; 78 | Ok(()) 79 | } 80 | 81 | pub fn changelog_for_release(&self) -> Result { 82 | let next_version = self.calculate_next_version()?; 83 | self.print_changelog_for_release(&next_version)?; 84 | let var = format!("{}_VERSION", self.release_set.name.to_uppercase()); 85 | let file = Path::new("./target").join(var); 86 | fs::write(file, &next_version)?; 87 | Ok(next_version) 88 | } 89 | 90 | fn calculate_next_version(&self) -> Result { 91 | let mut commits = self 92 | .get_commits_for_release()? 93 | .into_iter() 94 | .filter_map(|c| c.into_conventional().ok()) 95 | .collect::>(); 96 | // Only matching scopes can participate in braking change detection. 97 | if let Some(scopes) = &self.release_set.scopes_for_breaking_change { 98 | commits = commits 99 | .into_iter() 100 | .filter(|commit| { 101 | let Some(commit) = commit.conv.as_ref() else { return false }; 102 | let Some(scope) = commit.scope() else { return false }; 103 | scopes.iter().any(|s| scope.contains(s)) 104 | }) 105 | .collect::>(); 106 | } 107 | 108 | let previous = 109 | Release { version: Some(self.current_version.clone()), ..Release::default() }; 110 | let release = Release { commits, previous: Some(Box::new(previous)), ..Release::default() }; 111 | let mut changelog = Changelog::new(vec![release], &self.git_cliff_config, None)?; 112 | let next_version = 113 | changelog.bump_version().context("bump failed")?.context("bump failed")?; 114 | Ok(next_version) 115 | } 116 | 117 | fn get_commits_for_package( 118 | &self, 119 | package: &VersionedPackage, 120 | commits_range: &str, 121 | ) -> Result>> { 122 | let include_path = self.get_include_pattern(package)?; 123 | let commits = self 124 | .git_cliff_repo 125 | .commits(Some(commits_range), Some(vec![include_path]), None, true)? 126 | .iter() 127 | .map(Commit::from) 128 | .collect::>(); 129 | Ok(commits) 130 | } 131 | 132 | fn get_include_pattern(&self, package: &VersionedPackage) -> Result { 133 | let path = &package.dir; 134 | let include_path = path.strip_prefix(&self.cwd)?.to_string_lossy(); 135 | glob::Pattern::new(&format!("{include_path}/**")).context("pattern failed") 136 | } 137 | 138 | #[allow(clippy::cast_possible_wrap)] 139 | fn get_git_cliff_release<'a>( 140 | &self, 141 | commits: Vec>, 142 | next_version: &str, 143 | sha: Option<&str>, 144 | ) -> Result> { 145 | let timestamp = match sha { 146 | None => SystemTime::now().duration_since(UNIX_EPOCH)?.as_secs() as i64, 147 | Some(sha) => self 148 | .git_cliff_repo 149 | .find_commit(sha) 150 | .ok_or_else(|| anyhow::anyhow!("Cannot find commit {sha}"))? 151 | .time() 152 | .seconds(), 153 | }; 154 | Ok(Release { 155 | version: Some(next_version.to_string()), 156 | commits, 157 | timestamp: Some(timestamp), 158 | ..Release::default() 159 | }) 160 | } 161 | 162 | fn save_changelog(package_path: &Path, changelog: &Changelog) -> Result<()> { 163 | if changelog.releases.is_empty() { 164 | return Ok(()); 165 | } 166 | let changelog_path = package_path.join(CHANGELOG_NAME); 167 | let prev_changelog_string = fs::read_to_string(&changelog_path).unwrap_or_default(); 168 | let mut out = File::create(&changelog_path)?; 169 | changelog.prepend(prev_changelog_string, &mut out)?; 170 | Ok(()) 171 | } 172 | 173 | fn generate_changelog_for_package( 174 | &self, 175 | package: &VersionedPackage, 176 | next_version: &str, 177 | ) -> Result<()> { 178 | let commits_range = self.release_set.commits_range(&self.current_version); 179 | let commits = self.get_commits_for_package(package, &commits_range)?; 180 | let release = self.get_git_cliff_release(commits, next_version, None)?; 181 | let mut config = self.git_cliff_config.clone(); 182 | config.changelog.footer = None; 183 | let changelog = Changelog::new(vec![release], &config, None)?; 184 | Self::save_changelog(&package.dir, &changelog)?; 185 | Ok(()) 186 | } 187 | 188 | fn get_commits_for_release(&self) -> Result>> { 189 | let release_set = &self.release_set; 190 | let commits_range = release_set.commits_range(&self.current_version); 191 | let include_paths = release_set 192 | .versioned_packages() 193 | .iter() 194 | .map(|package| self.get_include_pattern(package)) 195 | .collect::>>()?; 196 | let commits = self 197 | .git_cliff_repo 198 | .commits(Some(&commits_range), Some(include_paths), None, true)? 199 | .iter() 200 | .map(Commit::from) 201 | .collect::>(); 202 | Ok(commits) 203 | } 204 | 205 | fn print_changelog_for_release(&self, next_version: &str) -> Result<()> { 206 | let commits = self.get_commits_for_release()?; 207 | let release = self.get_git_cliff_release(commits, next_version, None)?; 208 | let mut git_cliff_config = self.git_cliff_config.clone(); 209 | git_cliff_config.changelog.header = None; 210 | git_cliff_config.changelog.footer = None; 211 | let changelog = Changelog::new(vec![release], &git_cliff_config, None)?; 212 | let mut s = vec![]; 213 | changelog.generate(&mut s).context("failed to generate changelog")?; 214 | let var = format!("{}_CHANGELOG", self.release_set.name.to_uppercase()); 215 | let file = Path::new("./target").join(var); 216 | let output = String::from_utf8(s).unwrap(); 217 | // remove the header date 218 | let output = output.split_once("\n\n").map_or_else(|| output.as_str(), |s| s.1).trim(); 219 | fs::write(file, output)?; 220 | Ok(()) 221 | } 222 | 223 | pub fn regenerate_changelogs(&self) -> Result<()> { 224 | for package in self.release_set.versioned_packages() { 225 | let mut releases = vec![]; 226 | for pair in self.tags.windows(2) { 227 | let from = &pair[0]; 228 | let to = &pair[1]; 229 | let commits_range = format!("{}..{}", from.sha, to.sha); 230 | let commits = self.get_commits_for_package(&package, &commits_range)?; 231 | let release = 232 | self.get_git_cliff_release(commits, &to.version.clone(), Some(&to.sha))?; 233 | releases.push(release); 234 | } 235 | let changelog = Changelog::new(releases, &self.git_cliff_config, None)?; 236 | let changelog_path = package.dir.join(CHANGELOG_NAME); 237 | let mut out = File::create(&changelog_path)?; 238 | changelog.generate(&mut out)?; 239 | } 240 | Ok(()) 241 | } 242 | } 243 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 | 8 | ## [Unreleased] 9 | 10 | ## [0.0.31](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.30...v0.0.31) - 2025-08-26 11 | 12 | ### Other 13 | 14 | - *(deps)* bump 15 | - *(deps)* lock file maintenance rust crates ([#119](https://github.com/oxc-project/cargo-release-oxc/pull/119)) 16 | - *(deps)* lock file maintenance rust crates ([#118](https://github.com/oxc-project/cargo-release-oxc/pull/118)) 17 | - *(deps)* pin dependencies ([#116](https://github.com/oxc-project/cargo-release-oxc/pull/116)) 18 | - *(deps)* lock file maintenance rust crates ([#117](https://github.com/oxc-project/cargo-release-oxc/pull/117)) 19 | - *(deps)* update dependency rust to v1.89.0 ([#114](https://github.com/oxc-project/cargo-release-oxc/pull/114)) 20 | 21 | ## [0.0.30](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.29...v0.0.30) - 2025-07-28 22 | 23 | ### Other 24 | 25 | - update release.yml 26 | - *(deps)* lock file maintenance rust crates ([#113](https://github.com/oxc-project/cargo-release-oxc/pull/113)) 27 | - *(deps)* update marcoieni/release-plz-action action to v0.5.109 ([#109](https://github.com/oxc-project/cargo-release-oxc/pull/109)) 28 | - *(deps)* lock file maintenance ([#111](https://github.com/oxc-project/cargo-release-oxc/pull/111)) 29 | - *(deps)* lock file maintenance rust crates ([#110](https://github.com/oxc-project/cargo-release-oxc/pull/110)) 30 | - *(deps)* lock file maintenance rust crates ([#108](https://github.com/oxc-project/cargo-release-oxc/pull/108)) 31 | # Changelog 32 | All notable changes to this project will be documented in this file. 33 | 34 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 35 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 36 | 37 | ## [Unreleased] 38 | 39 | ## [0.0.37](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.36...v0.0.37) - 2025-11-11 40 | 41 | ### Fixed 42 | 43 | - fix publish version file name 44 | 45 | ### Other 46 | 47 | - better publish log 48 | - *(deps)* update dependency rust to v1.91.1 ([#160](https://github.com/oxc-project/cargo-release-oxc/pull/160)) 49 | 50 | ## [0.0.36](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.35...v0.0.36) - 2025-11-06 51 | 52 | ### Other 53 | 54 | - improve changelog 55 | 56 | ## [0.0.35](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.34...v0.0.35) - 2025-11-06 57 | 58 | ### Added 59 | 60 | - support multiple releases `--release oxlint --release oxfmt` ([#156](https://github.com/oxc-project/cargo-release-oxc/pull/156)) 61 | 62 | ### Other 63 | 64 | - there are no tests 65 | - *(deps)* lock file maintenance ([#155](https://github.com/oxc-project/cargo-release-oxc/pull/155)) 66 | - *(deps)* update oxc-project/setup-rust action to v1.0.8 ([#154](https://github.com/oxc-project/cargo-release-oxc/pull/154)) 67 | - *(deps)* update crate-ci/typos action to v1.39.0 ([#153](https://github.com/oxc-project/cargo-release-oxc/pull/153)) 68 | - *(deps)* update dependency rust to v1.91.0 ([#151](https://github.com/oxc-project/cargo-release-oxc/pull/151)) 69 | 70 | ## [0.0.34](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.33...v0.0.34) - 2025-10-21 71 | 72 | ### Other 73 | 74 | - use latest 75 | - bump to latest 76 | 77 | ## [0.0.33](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.32...v0.0.33) - 2025-10-20 78 | 79 | ### Added 80 | 81 | - add configurable root_crate to release config ([#143](https://github.com/oxc-project/cargo-release-oxc/pull/143)) 82 | 83 | ### Other 84 | 85 | - *(deps)* lock file maintenance ([#146](https://github.com/oxc-project/cargo-release-oxc/pull/146)) 86 | - *(deps)* lock file maintenance rust crates ([#145](https://github.com/oxc-project/cargo-release-oxc/pull/145)) 87 | 88 | ## [0.0.32](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.31...v0.0.32) - 2025-10-13 89 | 90 | ### Fixed 91 | 92 | - de-duplicate packages to avoid duplicate changelog entries ([#142](https://github.com/oxc-project/cargo-release-oxc/pull/142)) 93 | 94 | ### Other 95 | 96 | - *(deps)* lock file maintenance ([#141](https://github.com/oxc-project/cargo-release-oxc/pull/141)) 97 | - *(deps)* lock file maintenance rust crates ([#140](https://github.com/oxc-project/cargo-release-oxc/pull/140)) 98 | - *(deps)* update crate-ci/typos action to v1.38.1 ([#139](https://github.com/oxc-project/cargo-release-oxc/pull/139)) 99 | - *(deps)* update crate-ci/typos action to v1.38.0 ([#138](https://github.com/oxc-project/cargo-release-oxc/pull/138)) 100 | - *(deps)* lock file maintenance rust crates ([#137](https://github.com/oxc-project/cargo-release-oxc/pull/137)) 101 | - *(deps)* update oxc-project/setup-rust action to v1.0.7 ([#136](https://github.com/oxc-project/cargo-release-oxc/pull/136)) 102 | - *(deps)* update crate-ci/typos action to v1.37.2 ([#135](https://github.com/oxc-project/cargo-release-oxc/pull/135)) 103 | - *(deps)* update crate-ci/typos action to v1.37.1 ([#134](https://github.com/oxc-project/cargo-release-oxc/pull/134)) 104 | - *(deps)* update crate-ci/typos action to v1.37.0 ([#133](https://github.com/oxc-project/cargo-release-oxc/pull/133)) 105 | - *(deps)* update oxc-project/setup-rust action to v1.0.6 ([#132](https://github.com/oxc-project/cargo-release-oxc/pull/132)) 106 | - *(deps)* update crate-ci/typos action to v1.36.3 ([#131](https://github.com/oxc-project/cargo-release-oxc/pull/131)) 107 | - *(deps)* lock file maintenance rust crates ([#130](https://github.com/oxc-project/cargo-release-oxc/pull/130)) 108 | - *(deps)* update dependency rust to v1.90.0 ([#128](https://github.com/oxc-project/cargo-release-oxc/pull/128)) 109 | - fix typos 110 | - *(deps)* update github-actions ([#129](https://github.com/oxc-project/cargo-release-oxc/pull/129)) 111 | - *(deps)* update taiki-e/setup-cross-toolchain-action action to v1.32.1 ([#124](https://github.com/oxc-project/cargo-release-oxc/pull/124)) 112 | - remove paths-ignore 113 | - *(deps)* lock file maintenance ([#127](https://github.com/oxc-project/cargo-release-oxc/pull/127)) 114 | - *(deps)* lock file maintenance rust crates ([#126](https://github.com/oxc-project/cargo-release-oxc/pull/126)) 115 | - *(deps)* lock file maintenance rust crates ([#125](https://github.com/oxc-project/cargo-release-oxc/pull/125)) 116 | - *(deps)* lock file maintenance ([#123](https://github.com/oxc-project/cargo-release-oxc/pull/123)) 117 | - *(deps)* update taiki-e/setup-cross-toolchain-action action to v1.31.1 ([#120](https://github.com/oxc-project/cargo-release-oxc/pull/120)) 118 | 119 | ## [0.0.29](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.28...v0.0.29) - 2025-06-30 120 | 121 | ### Fixed 122 | 123 | - fix errors 124 | 125 | ### Other 126 | 127 | - *(deps)* lock file maintenance ([#105](https://github.com/oxc-project/cargo-release-oxc/pull/105)) 128 | - *(deps)* update dependency rust to v1.88.0 ([#104](https://github.com/oxc-project/cargo-release-oxc/pull/104)) 129 | - *(deps)* lock file maintenance ([#103](https://github.com/oxc-project/cargo-release-oxc/pull/103)) 130 | - *(deps)* update marcoieni/release-plz-action action to v0.5.108 ([#102](https://github.com/oxc-project/cargo-release-oxc/pull/102)) 131 | - *(deps)* lock file maintenance ([#101](https://github.com/oxc-project/cargo-release-oxc/pull/101)) 132 | - *(deps)* update taiki-e/upload-rust-binary-action action to v1.27.0 ([#100](https://github.com/oxc-project/cargo-release-oxc/pull/100)) 133 | - *(deps)* lock file maintenance rust crates ([#99](https://github.com/oxc-project/cargo-release-oxc/pull/99)) 134 | - *(deps)* lock file maintenance rust crates ([#98](https://github.com/oxc-project/cargo-release-oxc/pull/98)) 135 | - *(deps)* lock file maintenance rust crates ([#97](https://github.com/oxc-project/cargo-release-oxc/pull/97)) 136 | - *(deps)* update marcoieni/release-plz-action action to v0.5.107 ([#95](https://github.com/oxc-project/cargo-release-oxc/pull/95)) 137 | - *(deps)* lock file maintenance ([#96](https://github.com/oxc-project/cargo-release-oxc/pull/96)) 138 | - *(deps)* update dependency rust to v1.87.0 ([#94](https://github.com/oxc-project/cargo-release-oxc/pull/94)) 139 | - *(deps)* update github-actions ([#91](https://github.com/oxc-project/cargo-release-oxc/pull/91)) 140 | - *(deps)* lock file maintenance ([#93](https://github.com/oxc-project/cargo-release-oxc/pull/93)) 141 | - *(deps)* lock file maintenance rust crates ([#92](https://github.com/oxc-project/cargo-release-oxc/pull/92)) 142 | - *(deps)* update taiki-e/upload-rust-binary-action action to v1.25.0 ([#90](https://github.com/oxc-project/cargo-release-oxc/pull/90)) 143 | - *(deps)* update marcoieni/release-plz-action action to v0.5.105 ([#89](https://github.com/oxc-project/cargo-release-oxc/pull/89)) 144 | - *(deps)* update github-actions ([#87](https://github.com/oxc-project/cargo-release-oxc/pull/87)) 145 | - *(deps)* lock file maintenance ([#88](https://github.com/oxc-project/cargo-release-oxc/pull/88)) 146 | - *(deps)* update dependency rust to v1.86.0 ([#86](https://github.com/oxc-project/cargo-release-oxc/pull/86)) 147 | - *(deps)* update marcoieni/release-plz-action digest to 8e91c71 ([#84](https://github.com/oxc-project/cargo-release-oxc/pull/84)) 148 | - *(deps)* lock file maintenance ([#85](https://github.com/oxc-project/cargo-release-oxc/pull/85)) 149 | - *(deps)* lock file maintenance ([#83](https://github.com/oxc-project/cargo-release-oxc/pull/83)) 150 | - *(deps)* lock file maintenance ([#82](https://github.com/oxc-project/cargo-release-oxc/pull/82)) 151 | - *(deps)* update dependency rust to v1.85.1 ([#80](https://github.com/oxc-project/cargo-release-oxc/pull/80)) 152 | - remove 'renovate/**' trigger 153 | - update release-plz.yml 154 | 155 | ## [0.0.28](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.27...v0.0.28) - 2025-03-16 156 | 157 | ### Other 158 | 159 | - *(deps)* lock file maintenance rust crates ([#78](https://github.com/oxc-project/cargo-release-oxc/pull/78)) 160 | - *(deps)* update marcoieni/release-plz-action digest to 4cd77ee ([#77](https://github.com/oxc-project/cargo-release-oxc/pull/77)) 161 | - *(deps)* lock file maintenance rust crates ([#75](https://github.com/oxc-project/cargo-release-oxc/pull/75)) 162 | - *(deps)* update marcoieni/release-plz-action digest to 476794e ([#74](https://github.com/oxc-project/cargo-release-oxc/pull/74)) 163 | - use OXC_BOT_PAT 164 | - *(deps)* lock file maintenance rust crates ([#72](https://github.com/oxc-project/cargo-release-oxc/pull/72)) 165 | - *(deps)* update marcoieni/release-plz-action digest to 7049379 ([#71](https://github.com/oxc-project/cargo-release-oxc/pull/71)) 166 | - *(deps)* lock file maintenance ([#69](https://github.com/oxc-project/cargo-release-oxc/pull/69)) 167 | - *(deps)* update github-actions ([#68](https://github.com/oxc-project/cargo-release-oxc/pull/68)) 168 | 169 | ## [0.0.27](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.26...v0.0.27) - 2025-02-22 170 | 171 | ### Other 172 | 173 | - Rust Edition 2024 174 | - *(deps)* update dependency rust to v1.85.0 (#66) 175 | - *(deps)* pin dependencies (#65) 176 | - pinGitHubActionDigestsToSemver 177 | - use macos-13 178 | 179 | ## [0.0.26](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.25...v0.0.26) - 2025-02-09 180 | 181 | ### Other 182 | 183 | - *(deps)* update rust crate toml to 0.8.20 (#63) 184 | - *(deps)* update rust crates (#62) 185 | - *(deps)* update dependency rust to v1.84.1 (#61) 186 | - *(deps)* update rust crates (#60) 187 | - *(deps)* update rust crate serde_json to 1.0.137 (#59) 188 | - *(deps)* update rust crate serde_json to 1.0.136 (#58) 189 | - *(deps)* update rust crate serde_json to 1.0.135 (#57) 190 | - *(deps)* update dependency rust to v1.84.0 (#56) 191 | - *(deps)* update rust crates 192 | - *(deps)* update rust crates 193 | - *(deps)* update rust crate serde to 1.0.216 194 | - *(deps)* update rust crates 195 | - *(deps)* update dependency rust to v1.83.0 (#55) 196 | - *(deps)* update rust crates 197 | - *(deps)* update rust crates 198 | - *(deps)* update rust crate anyhow to 1.0.93 199 | 200 | ## [0.0.25](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.24...v0.0.25) - 2024-11-04 201 | 202 | ### Other 203 | 204 | - add newline to end of package.json 205 | - *(deps)* update rust crates 206 | - *(deps)* update rust crates 207 | - *(deps)* update rust crates 208 | - *(deps)* update dependency rust to v1.82.0 ([#52](https://github.com/oxc-project/cargo-release-oxc/pull/52)) 209 | 210 | ## [0.0.24](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.23...v0.0.24) - 2024-10-09 211 | 212 | ### Other 213 | 214 | - *(deps)* update rust crates ([#51](https://github.com/oxc-project/cargo-release-oxc/pull/51)) 215 | - *(deps)* update rust crates ([#50](https://github.com/oxc-project/cargo-release-oxc/pull/50)) 216 | - *(renovate)* bump 217 | - *(deps)* update dependency rust to v1.81.0 ([#48](https://github.com/oxc-project/cargo-release-oxc/pull/48)) 218 | 219 | ## [0.0.23](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.22...v0.0.23) - 2024-08-29 220 | 221 | ### Added 222 | - only matching scopes can participate in braking change detection. 223 | 224 | ### Other 225 | - bump rust 226 | - bump deps 227 | - *(deps)* update rust crates 228 | - *(deps)* update rust crates 229 | - trigger release-binaries manually 230 | 231 | ## [0.0.22](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.21...v0.0.22) - 2024-08-07 232 | 233 | ### Other 234 | - check before publish 235 | 236 | ## [0.0.21](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.20...v0.0.21) - 2024-07-27 237 | 238 | ### Other 239 | - macos-12 240 | 241 | ## [0.0.20](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.19...v0.0.20) - 2024-07-25 242 | 243 | ### Other 244 | - *(deps)* update dependency rust to v1.80.0 ([#42](https://github.com/oxc-project/cargo-release-oxc/pull/42)) 245 | - *(deps)* update rust crates 246 | - *(deps)* update rust crate toml_edit to v0.22.15 247 | - *(deps)* update rust crates 248 | - *(deps)* update rust crates ([#40](https://github.com/oxc-project/cargo-release-oxc/pull/40)) 249 | 250 | ## [0.0.19](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.18...v0.0.19) - 2024-06-27 251 | 252 | ### Fixed 253 | - Need to publish if it's a new package 254 | 255 | ### Other 256 | - update help and README 257 | 258 | ## [0.0.18](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.17...v0.0.18) - 2024-06-19 259 | 260 | ### Other 261 | - skip not found packages 262 | 263 | ## [0.0.17](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.16...v0.0.17) - 2024-06-14 264 | 265 | ### Other 266 | - remove cargo check from publish 267 | - add dry-run 268 | - print to file instead of to terminal 269 | 270 | ## [0.0.16](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.15...v0.0.16) - 2024-06-14 271 | 272 | ### Other 273 | - *(deps)* update dependency rust to v1.79.0 ([#34](https://github.com/oxc-project/cargo-release-oxc/pull/34)) 274 | - *(deps)* update rust crates 275 | 276 | ## [0.0.15](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.14...v0.0.15) - 2024-06-07 277 | 278 | ### Added 279 | - add `changelog` command 280 | 281 | ### Other 282 | - clean up some code 283 | - unify options 284 | 285 | ## [0.0.14](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.13...v0.0.14) - 2024-06-06 286 | 287 | ### Added 288 | - remove change log header from the printed out version 289 | 290 | ## [0.0.13](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.12...v0.0.13) - 2024-06-05 291 | 292 | ### Added 293 | - support versioning non-workspace cargo toml 294 | 295 | ### Other 296 | - update 297 | - update git cliff 298 | - add rust cache 299 | 300 | ## [0.0.12](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.11...v0.0.12) - 2024-06-04 301 | 302 | ### Fixed 303 | - fallback to current_dir 304 | 305 | ## [0.0.11](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.10...v0.0.11) - 2024-06-04 306 | 307 | ### Added 308 | - print tag version in publish 309 | 310 | ## [0.0.10](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.9...v0.0.10) - 2024-06-04 311 | 312 | ### Added 313 | - check git status before running anything 314 | - add `--release name` 315 | - update package.json versions 316 | - add configuration 317 | - calculate next version from changelog 318 | - `update` print version 319 | - remove cargo check in update command 320 | - customize tag prefix 321 | 322 | ### Other 323 | - add release manual trigger 324 | - remove `semver` 325 | - unwrap parent 326 | - refactor out versioning crates 327 | - alias r in justfile 328 | 329 | ## [0.0.9](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.8...v0.0.9) - 2024-06-02 330 | 331 | ### Added 332 | - remove git operations 333 | 334 | ### Fixed 335 | - skip package publish if the package is already published 336 | 337 | ## [0.0.8](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.7...v0.0.8) - 2024-05-20 338 | 339 | ### Fixed 340 | - use rustls 341 | 342 | ### Other 343 | - allow branch `renovate/**` 344 | - *(deps)* lock file maintenance rust crates ([#17](https://github.com/oxc-project/cargo-release-oxc/pull/17)) 345 | - release ([#9](https://github.com/oxc-project/cargo-release-oxc/pull/9)) 346 | 347 | ## [0.0.7](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.6...v0.0.7) - 2024-05-07 348 | 349 | ### Added 350 | - check version and return if version is already published before publish 351 | 352 | ### Other 353 | - format toml 354 | - update renovate.json 355 | - *(deps)* lock file maintenance rust crates ([#14](https://github.com/oxc-project/cargo-release-oxc/pull/14)) 356 | - update renovate 357 | - *(deps)* update rust crate anyhow to v1.0.83 ([#13](https://github.com/oxc-project/cargo-release-oxc/pull/13)) 358 | - *(deps)* update rust crate git_cmd to v0.6.5 ([#12](https://github.com/oxc-project/cargo-release-oxc/pull/12)) 359 | - *(deps)* update dependency rust to v1.78.0 ([#11](https://github.com/oxc-project/cargo-release-oxc/pull/11)) 360 | - *(deps)* update rust crates ([#10](https://github.com/oxc-project/cargo-release-oxc/pull/10)) 361 | - *(renovate)* add rust-toolchain 362 | 363 | ## [0.0.6](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.5...v0.0.6) - 2024-04-08 364 | 365 | ### Added 366 | - run `cargo check` when Cargo.toml is update 367 | 368 | ## [0.0.5](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.4...v0.0.5) - 2024-04-03 369 | 370 | ### Added 371 | - switch to new branch and commit changes 372 | 373 | ### Fixed 374 | - reset lower version (minor, patch) numbers to 0 when bump versions 375 | 376 | ### Other 377 | - fix clippy warnings 378 | - add [workspace.lints.clippy] 379 | 380 | ## [0.0.4](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.3...v0.0.4) - 2024-04-03 381 | 382 | ### Fixed 383 | - check before publish and also fix publishing order 384 | 385 | ## [0.0.3](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.2...v0.0.3) - 2024-04-03 386 | 387 | ### Added 388 | - use `--bump` for version update 389 | - add publish command 390 | - add `regenerate_changelogs` command 391 | 392 | ### Other 393 | - improve `regenerate_changelogs` 394 | 395 | ## [0.0.2](https://github.com/oxc-project/cargo-release-oxc/compare/v0.0.1...v0.0.2) - 2024-04-01 396 | 397 | ### Fixed 398 | - fix repository link in Cargo.toml 399 | 400 | ## [0.0.1](https://github.com/oxc-project/release-oxc/compare/v0.0.0...v0.0.1) - 2024-03-31 401 | 402 | ### Other 403 | - add release-binaries 404 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "adler32" 7 | version = "1.2.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" 10 | 11 | [[package]] 12 | name = "aho-corasick" 13 | version = "1.1.4" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 16 | dependencies = [ 17 | "memchr", 18 | ] 19 | 20 | [[package]] 21 | name = "allocator-api2" 22 | version = "0.2.21" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 25 | 26 | [[package]] 27 | name = "android_system_properties" 28 | version = "0.1.5" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 31 | dependencies = [ 32 | "libc", 33 | ] 34 | 35 | [[package]] 36 | name = "anyhow" 37 | version = "1.0.100" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 40 | 41 | [[package]] 42 | name = "arraydeque" 43 | version = "0.5.1" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" 46 | 47 | [[package]] 48 | name = "atomic-waker" 49 | version = "1.1.2" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 52 | 53 | [[package]] 54 | name = "autocfg" 55 | version = "1.5.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 58 | 59 | [[package]] 60 | name = "base64" 61 | version = "0.21.7" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 64 | 65 | [[package]] 66 | name = "base64" 67 | version = "0.22.1" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 70 | 71 | [[package]] 72 | name = "bincode" 73 | version = "2.0.1" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" 76 | dependencies = [ 77 | "bincode_derive", 78 | "serde", 79 | "unty", 80 | ] 81 | 82 | [[package]] 83 | name = "bincode_derive" 84 | version = "2.0.1" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" 87 | dependencies = [ 88 | "virtue", 89 | ] 90 | 91 | [[package]] 92 | name = "bitflags" 93 | version = "2.10.0" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 96 | 97 | [[package]] 98 | name = "block-buffer" 99 | version = "0.10.4" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 102 | dependencies = [ 103 | "generic-array", 104 | ] 105 | 106 | [[package]] 107 | name = "bpaf" 108 | version = "0.9.20" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "473976d7a8620bb1e06dcdd184407c2363fe4fec8e983ee03ed9197222634a31" 111 | dependencies = [ 112 | "bpaf_derive", 113 | ] 114 | 115 | [[package]] 116 | name = "bpaf_derive" 117 | version = "0.5.17" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "fefb4feeec9a091705938922f26081aad77c64cd2e76cd1c4a9ece8e42e1618a" 120 | dependencies = [ 121 | "proc-macro2", 122 | "quote", 123 | "syn 2.0.109", 124 | ] 125 | 126 | [[package]] 127 | name = "bstr" 128 | version = "1.12.1" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" 131 | dependencies = [ 132 | "memchr", 133 | "serde", 134 | ] 135 | 136 | [[package]] 137 | name = "bumpalo" 138 | version = "3.19.0" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 141 | 142 | [[package]] 143 | name = "bytes" 144 | version = "1.10.1" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 147 | 148 | [[package]] 149 | name = "cacache" 150 | version = "13.0.0" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "a61ff12b19d89c752c213316b87fdb4a587f073d219b893cc56974b8c9f39bf7" 153 | dependencies = [ 154 | "digest", 155 | "either", 156 | "hex", 157 | "libc", 158 | "memmap2", 159 | "miette", 160 | "reflink-copy", 161 | "serde", 162 | "serde_derive", 163 | "serde_json", 164 | "sha1", 165 | "sha2", 166 | "ssri", 167 | "tempfile", 168 | "thiserror 1.0.69", 169 | "walkdir", 170 | ] 171 | 172 | [[package]] 173 | name = "camino" 174 | version = "1.2.1" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" 177 | dependencies = [ 178 | "serde_core", 179 | ] 180 | 181 | [[package]] 182 | name = "cargo-platform" 183 | version = "0.3.1" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "122ec45a44b270afd1402f351b782c676b173e3c3fb28d86ff7ebfb4d86a4ee4" 186 | dependencies = [ 187 | "serde", 188 | ] 189 | 190 | [[package]] 191 | name = "cargo-release-oxc" 192 | version = "0.0.37" 193 | dependencies = [ 194 | "anyhow", 195 | "bpaf", 196 | "cargo_metadata", 197 | "crates_io_api", 198 | "git-cliff-core", 199 | "glob", 200 | "regex", 201 | "serde", 202 | "serde_json", 203 | "toml", 204 | "toml_edit", 205 | ] 206 | 207 | [[package]] 208 | name = "cargo_metadata" 209 | version = "0.23.1" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" 212 | dependencies = [ 213 | "camino", 214 | "cargo-platform", 215 | "semver", 216 | "serde", 217 | "serde_json", 218 | "thiserror 2.0.17", 219 | ] 220 | 221 | [[package]] 222 | name = "cc" 223 | version = "1.2.45" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" 226 | dependencies = [ 227 | "find-msvc-tools", 228 | "jobserver", 229 | "libc", 230 | "shlex", 231 | ] 232 | 233 | [[package]] 234 | name = "cfg-if" 235 | version = "1.0.4" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 238 | 239 | [[package]] 240 | name = "cfg_aliases" 241 | version = "0.2.1" 242 | source = "registry+https://github.com/rust-lang/crates.io-index" 243 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 244 | 245 | [[package]] 246 | name = "chrono" 247 | version = "0.4.42" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 250 | dependencies = [ 251 | "iana-time-zone", 252 | "js-sys", 253 | "num-traits", 254 | "serde", 255 | "wasm-bindgen", 256 | "windows-link", 257 | ] 258 | 259 | [[package]] 260 | name = "chrono-tz" 261 | version = "0.9.0" 262 | source = "registry+https://github.com/rust-lang/crates.io-index" 263 | checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" 264 | dependencies = [ 265 | "chrono", 266 | "chrono-tz-build", 267 | "phf", 268 | ] 269 | 270 | [[package]] 271 | name = "chrono-tz-build" 272 | version = "0.3.0" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" 275 | dependencies = [ 276 | "parse-zoneinfo", 277 | "phf", 278 | "phf_codegen", 279 | ] 280 | 281 | [[package]] 282 | name = "config" 283 | version = "0.15.18" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "180e549344080374f9b32ed41bf3b6b57885ff6a289367b3dbc10eea8acc1918" 286 | dependencies = [ 287 | "pathdiff", 288 | "serde_core", 289 | "toml", 290 | "winnow", 291 | "yaml-rust2", 292 | ] 293 | 294 | [[package]] 295 | name = "core-foundation-sys" 296 | version = "0.8.7" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 299 | 300 | [[package]] 301 | name = "core2" 302 | version = "0.4.0" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" 305 | dependencies = [ 306 | "memchr", 307 | ] 308 | 309 | [[package]] 310 | name = "cpufeatures" 311 | version = "0.2.17" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 314 | dependencies = [ 315 | "libc", 316 | ] 317 | 318 | [[package]] 319 | name = "crates_io_api" 320 | version = "0.12.0" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "b9d129ea9f4e6581cdda525c0b939e4b1753a9873543e4b409971b473f5c27db" 323 | dependencies = [ 324 | "chrono", 325 | "futures", 326 | "reqwest", 327 | "serde", 328 | "serde_derive", 329 | "serde_json", 330 | "serde_path_to_error", 331 | "tokio", 332 | "url", 333 | ] 334 | 335 | [[package]] 336 | name = "crc32fast" 337 | version = "1.5.0" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 340 | dependencies = [ 341 | "cfg-if", 342 | ] 343 | 344 | [[package]] 345 | name = "crossbeam-deque" 346 | version = "0.8.6" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 349 | dependencies = [ 350 | "crossbeam-epoch", 351 | "crossbeam-utils", 352 | ] 353 | 354 | [[package]] 355 | name = "crossbeam-epoch" 356 | version = "0.9.18" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 359 | dependencies = [ 360 | "crossbeam-utils", 361 | ] 362 | 363 | [[package]] 364 | name = "crossbeam-utils" 365 | version = "0.8.21" 366 | source = "registry+https://github.com/rust-lang/crates.io-index" 367 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 368 | 369 | [[package]] 370 | name = "crypto-common" 371 | version = "0.1.6" 372 | source = "registry+https://github.com/rust-lang/crates.io-index" 373 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 374 | dependencies = [ 375 | "generic-array", 376 | "typenum", 377 | ] 378 | 379 | [[package]] 380 | name = "dary_heap" 381 | version = "0.3.8" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "06d2e3287df1c007e74221c49ca10a95d557349e54b3a75dc2fb14712c751f04" 384 | 385 | [[package]] 386 | name = "deranged" 387 | version = "0.5.5" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 390 | dependencies = [ 391 | "powerfmt", 392 | ] 393 | 394 | [[package]] 395 | name = "deunicode" 396 | version = "1.6.2" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "abd57806937c9cc163efc8ea3910e00a62e2aeb0b8119f1793a978088f8f6b04" 399 | 400 | [[package]] 401 | name = "digest" 402 | version = "0.10.7" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 405 | dependencies = [ 406 | "block-buffer", 407 | "crypto-common", 408 | ] 409 | 410 | [[package]] 411 | name = "dirs" 412 | version = "6.0.0" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 415 | dependencies = [ 416 | "dirs-sys", 417 | ] 418 | 419 | [[package]] 420 | name = "dirs-sys" 421 | version = "0.5.0" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 424 | dependencies = [ 425 | "libc", 426 | "option-ext", 427 | "redox_users", 428 | "windows-sys 0.61.2", 429 | ] 430 | 431 | [[package]] 432 | name = "displaydoc" 433 | version = "0.2.5" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 436 | dependencies = [ 437 | "proc-macro2", 438 | "quote", 439 | "syn 2.0.109", 440 | ] 441 | 442 | [[package]] 443 | name = "dyn-clone" 444 | version = "1.0.20" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 447 | 448 | [[package]] 449 | name = "either" 450 | version = "1.15.0" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 453 | 454 | [[package]] 455 | name = "encoding_rs" 456 | version = "0.8.35" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 459 | dependencies = [ 460 | "cfg-if", 461 | ] 462 | 463 | [[package]] 464 | name = "equivalent" 465 | version = "1.0.2" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 468 | 469 | [[package]] 470 | name = "errno" 471 | version = "0.3.14" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 474 | dependencies = [ 475 | "libc", 476 | "windows-sys 0.61.2", 477 | ] 478 | 479 | [[package]] 480 | name = "fastrand" 481 | version = "2.3.0" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 484 | 485 | [[package]] 486 | name = "find-msvc-tools" 487 | version = "0.1.4" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 490 | 491 | [[package]] 492 | name = "fnv" 493 | version = "1.0.7" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 496 | 497 | [[package]] 498 | name = "foldhash" 499 | version = "0.1.5" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 502 | 503 | [[package]] 504 | name = "foldhash" 505 | version = "0.2.0" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 508 | 509 | [[package]] 510 | name = "form_urlencoded" 511 | version = "1.2.2" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 514 | dependencies = [ 515 | "percent-encoding", 516 | ] 517 | 518 | [[package]] 519 | name = "futures" 520 | version = "0.3.31" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 523 | dependencies = [ 524 | "futures-channel", 525 | "futures-core", 526 | "futures-executor", 527 | "futures-io", 528 | "futures-sink", 529 | "futures-task", 530 | "futures-util", 531 | ] 532 | 533 | [[package]] 534 | name = "futures-channel" 535 | version = "0.3.31" 536 | source = "registry+https://github.com/rust-lang/crates.io-index" 537 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 538 | dependencies = [ 539 | "futures-core", 540 | "futures-sink", 541 | ] 542 | 543 | [[package]] 544 | name = "futures-core" 545 | version = "0.3.31" 546 | source = "registry+https://github.com/rust-lang/crates.io-index" 547 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 548 | 549 | [[package]] 550 | name = "futures-executor" 551 | version = "0.3.31" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 554 | dependencies = [ 555 | "futures-core", 556 | "futures-task", 557 | "futures-util", 558 | ] 559 | 560 | [[package]] 561 | name = "futures-io" 562 | version = "0.3.31" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 565 | 566 | [[package]] 567 | name = "futures-macro" 568 | version = "0.3.31" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 571 | dependencies = [ 572 | "proc-macro2", 573 | "quote", 574 | "syn 2.0.109", 575 | ] 576 | 577 | [[package]] 578 | name = "futures-sink" 579 | version = "0.3.31" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 582 | 583 | [[package]] 584 | name = "futures-task" 585 | version = "0.3.31" 586 | source = "registry+https://github.com/rust-lang/crates.io-index" 587 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 588 | 589 | [[package]] 590 | name = "futures-util" 591 | version = "0.3.31" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 594 | dependencies = [ 595 | "futures-channel", 596 | "futures-core", 597 | "futures-io", 598 | "futures-macro", 599 | "futures-sink", 600 | "futures-task", 601 | "memchr", 602 | "pin-project-lite", 603 | "pin-utils", 604 | "slab", 605 | ] 606 | 607 | [[package]] 608 | name = "generic-array" 609 | version = "0.14.9" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 612 | dependencies = [ 613 | "typenum", 614 | "version_check", 615 | ] 616 | 617 | [[package]] 618 | name = "getrandom" 619 | version = "0.2.16" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 622 | dependencies = [ 623 | "cfg-if", 624 | "js-sys", 625 | "libc", 626 | "wasi", 627 | "wasm-bindgen", 628 | ] 629 | 630 | [[package]] 631 | name = "getrandom" 632 | version = "0.3.4" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 635 | dependencies = [ 636 | "cfg-if", 637 | "js-sys", 638 | "libc", 639 | "r-efi", 640 | "wasip2", 641 | "wasm-bindgen", 642 | ] 643 | 644 | [[package]] 645 | name = "git-cliff-core" 646 | version = "2.10.1" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "c6434f59a70c587c9d900dacebddd3fd9bc12afc7445f991f5ee420f30ba071a" 649 | dependencies = [ 650 | "bincode", 651 | "cacache", 652 | "chrono", 653 | "config", 654 | "dirs", 655 | "dyn-clone", 656 | "git-conventional", 657 | "git2", 658 | "glob", 659 | "indexmap", 660 | "lazy-regex", 661 | "lazy_static", 662 | "log", 663 | "next_version", 664 | "regex", 665 | "rust-embed", 666 | "secrecy", 667 | "semver", 668 | "serde", 669 | "serde_json", 670 | "serde_regex", 671 | "tera", 672 | "thiserror 2.0.17", 673 | "time", 674 | "toml", 675 | "url", 676 | "urlencoding", 677 | ] 678 | 679 | [[package]] 680 | name = "git-conventional" 681 | version = "0.12.9" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "f6a949b7fcc81df22526032dcddb006e78c8575e47b0e7ba57d9960570a57bc4" 684 | dependencies = [ 685 | "serde", 686 | "unicase", 687 | "winnow", 688 | ] 689 | 690 | [[package]] 691 | name = "git2" 692 | version = "0.20.2" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" 695 | dependencies = [ 696 | "bitflags", 697 | "libc", 698 | "libgit2-sys", 699 | "log", 700 | "url", 701 | ] 702 | 703 | [[package]] 704 | name = "glob" 705 | version = "0.3.3" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 708 | 709 | [[package]] 710 | name = "globset" 711 | version = "0.4.18" 712 | source = "registry+https://github.com/rust-lang/crates.io-index" 713 | checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" 714 | dependencies = [ 715 | "aho-corasick", 716 | "bstr", 717 | "log", 718 | "regex-automata", 719 | "regex-syntax", 720 | ] 721 | 722 | [[package]] 723 | name = "globwalk" 724 | version = "0.9.1" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" 727 | dependencies = [ 728 | "bitflags", 729 | "ignore", 730 | "walkdir", 731 | ] 732 | 733 | [[package]] 734 | name = "hashbrown" 735 | version = "0.15.5" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 738 | dependencies = [ 739 | "foldhash 0.1.5", 740 | ] 741 | 742 | [[package]] 743 | name = "hashbrown" 744 | version = "0.16.0" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 747 | dependencies = [ 748 | "allocator-api2", 749 | "equivalent", 750 | "foldhash 0.2.0", 751 | ] 752 | 753 | [[package]] 754 | name = "hashlink" 755 | version = "0.10.0" 756 | source = "registry+https://github.com/rust-lang/crates.io-index" 757 | checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" 758 | dependencies = [ 759 | "hashbrown 0.15.5", 760 | ] 761 | 762 | [[package]] 763 | name = "hex" 764 | version = "0.4.3" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 767 | 768 | [[package]] 769 | name = "http" 770 | version = "1.3.1" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 773 | dependencies = [ 774 | "bytes", 775 | "fnv", 776 | "itoa", 777 | ] 778 | 779 | [[package]] 780 | name = "http-body" 781 | version = "1.0.1" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 784 | dependencies = [ 785 | "bytes", 786 | "http", 787 | ] 788 | 789 | [[package]] 790 | name = "http-body-util" 791 | version = "0.1.3" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 794 | dependencies = [ 795 | "bytes", 796 | "futures-core", 797 | "http", 798 | "http-body", 799 | "pin-project-lite", 800 | ] 801 | 802 | [[package]] 803 | name = "httparse" 804 | version = "1.10.1" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 807 | 808 | [[package]] 809 | name = "humansize" 810 | version = "2.1.3" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" 813 | dependencies = [ 814 | "libm", 815 | ] 816 | 817 | [[package]] 818 | name = "hyper" 819 | version = "1.7.0" 820 | source = "registry+https://github.com/rust-lang/crates.io-index" 821 | checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" 822 | dependencies = [ 823 | "atomic-waker", 824 | "bytes", 825 | "futures-channel", 826 | "futures-core", 827 | "http", 828 | "http-body", 829 | "httparse", 830 | "itoa", 831 | "pin-project-lite", 832 | "pin-utils", 833 | "smallvec", 834 | "tokio", 835 | "want", 836 | ] 837 | 838 | [[package]] 839 | name = "hyper-rustls" 840 | version = "0.27.7" 841 | source = "registry+https://github.com/rust-lang/crates.io-index" 842 | checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" 843 | dependencies = [ 844 | "http", 845 | "hyper", 846 | "hyper-util", 847 | "rustls", 848 | "rustls-pki-types", 849 | "tokio", 850 | "tokio-rustls", 851 | "tower-service", 852 | "webpki-roots", 853 | ] 854 | 855 | [[package]] 856 | name = "hyper-util" 857 | version = "0.1.17" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" 860 | dependencies = [ 861 | "base64 0.22.1", 862 | "bytes", 863 | "futures-channel", 864 | "futures-core", 865 | "futures-util", 866 | "http", 867 | "http-body", 868 | "hyper", 869 | "ipnet", 870 | "libc", 871 | "percent-encoding", 872 | "pin-project-lite", 873 | "socket2", 874 | "tokio", 875 | "tower-service", 876 | "tracing", 877 | ] 878 | 879 | [[package]] 880 | name = "iana-time-zone" 881 | version = "0.1.64" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 884 | dependencies = [ 885 | "android_system_properties", 886 | "core-foundation-sys", 887 | "iana-time-zone-haiku", 888 | "js-sys", 889 | "log", 890 | "wasm-bindgen", 891 | "windows-core", 892 | ] 893 | 894 | [[package]] 895 | name = "iana-time-zone-haiku" 896 | version = "0.1.2" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 899 | dependencies = [ 900 | "cc", 901 | ] 902 | 903 | [[package]] 904 | name = "icu_collections" 905 | version = "2.1.1" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 908 | dependencies = [ 909 | "displaydoc", 910 | "potential_utf", 911 | "yoke", 912 | "zerofrom", 913 | "zerovec", 914 | ] 915 | 916 | [[package]] 917 | name = "icu_locale_core" 918 | version = "2.1.1" 919 | source = "registry+https://github.com/rust-lang/crates.io-index" 920 | checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 921 | dependencies = [ 922 | "displaydoc", 923 | "litemap", 924 | "tinystr", 925 | "writeable", 926 | "zerovec", 927 | ] 928 | 929 | [[package]] 930 | name = "icu_normalizer" 931 | version = "2.1.1" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 934 | dependencies = [ 935 | "icu_collections", 936 | "icu_normalizer_data", 937 | "icu_properties", 938 | "icu_provider", 939 | "smallvec", 940 | "zerovec", 941 | ] 942 | 943 | [[package]] 944 | name = "icu_normalizer_data" 945 | version = "2.1.1" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 948 | 949 | [[package]] 950 | name = "icu_properties" 951 | version = "2.1.1" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" 954 | dependencies = [ 955 | "icu_collections", 956 | "icu_locale_core", 957 | "icu_properties_data", 958 | "icu_provider", 959 | "zerotrie", 960 | "zerovec", 961 | ] 962 | 963 | [[package]] 964 | name = "icu_properties_data" 965 | version = "2.1.1" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" 968 | 969 | [[package]] 970 | name = "icu_provider" 971 | version = "2.1.1" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 974 | dependencies = [ 975 | "displaydoc", 976 | "icu_locale_core", 977 | "writeable", 978 | "yoke", 979 | "zerofrom", 980 | "zerotrie", 981 | "zerovec", 982 | ] 983 | 984 | [[package]] 985 | name = "idna" 986 | version = "1.1.0" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 989 | dependencies = [ 990 | "idna_adapter", 991 | "smallvec", 992 | "utf8_iter", 993 | ] 994 | 995 | [[package]] 996 | name = "idna_adapter" 997 | version = "1.2.1" 998 | source = "registry+https://github.com/rust-lang/crates.io-index" 999 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1000 | dependencies = [ 1001 | "icu_normalizer", 1002 | "icu_properties", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "ignore" 1007 | version = "0.4.25" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" 1010 | dependencies = [ 1011 | "crossbeam-deque", 1012 | "globset", 1013 | "log", 1014 | "memchr", 1015 | "regex-automata", 1016 | "same-file", 1017 | "walkdir", 1018 | "winapi-util", 1019 | ] 1020 | 1021 | [[package]] 1022 | name = "include-flate" 1023 | version = "0.3.1" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "e01b7cb6ca682a621e7cda1c358c9724b53a7b4409be9be1dd443b7f3a26f998" 1026 | dependencies = [ 1027 | "include-flate-codegen", 1028 | "include-flate-compress", 1029 | "libflate", 1030 | "zstd", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "include-flate-codegen" 1035 | version = "0.3.1" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "4f49bf5274aebe468d6e6eba14a977eaf1efa481dc173f361020de70c1c48050" 1038 | dependencies = [ 1039 | "include-flate-compress", 1040 | "libflate", 1041 | "proc-macro-error", 1042 | "proc-macro2", 1043 | "quote", 1044 | "syn 2.0.109", 1045 | "zstd", 1046 | ] 1047 | 1048 | [[package]] 1049 | name = "include-flate-compress" 1050 | version = "0.3.1" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | checksum = "eae6a40e716bcd5931f5dbb79cd921512a4f647e2e9413fded3171fca3824dbc" 1053 | dependencies = [ 1054 | "libflate", 1055 | "zstd", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "indexmap" 1060 | version = "2.12.0" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 1063 | dependencies = [ 1064 | "equivalent", 1065 | "hashbrown 0.16.0", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "ipnet" 1070 | version = "2.11.0" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 1073 | 1074 | [[package]] 1075 | name = "iri-string" 1076 | version = "0.7.9" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" 1079 | dependencies = [ 1080 | "memchr", 1081 | "serde", 1082 | ] 1083 | 1084 | [[package]] 1085 | name = "itoa" 1086 | version = "1.0.15" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1089 | 1090 | [[package]] 1091 | name = "jobserver" 1092 | version = "0.1.34" 1093 | source = "registry+https://github.com/rust-lang/crates.io-index" 1094 | checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 1095 | dependencies = [ 1096 | "getrandom 0.3.4", 1097 | "libc", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "js-sys" 1102 | version = "0.3.82" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" 1105 | dependencies = [ 1106 | "once_cell", 1107 | "wasm-bindgen", 1108 | ] 1109 | 1110 | [[package]] 1111 | name = "lazy-regex" 1112 | version = "3.4.2" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "191898e17ddee19e60bccb3945aa02339e81edd4a8c50e21fd4d48cdecda7b29" 1115 | dependencies = [ 1116 | "lazy-regex-proc_macros", 1117 | "once_cell", 1118 | "regex", 1119 | ] 1120 | 1121 | [[package]] 1122 | name = "lazy-regex-proc_macros" 1123 | version = "3.4.2" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "c35dc8b0da83d1a9507e12122c80dea71a9c7c613014347392483a83ea593e04" 1126 | dependencies = [ 1127 | "proc-macro2", 1128 | "quote", 1129 | "regex", 1130 | "syn 2.0.109", 1131 | ] 1132 | 1133 | [[package]] 1134 | name = "lazy_static" 1135 | version = "1.5.0" 1136 | source = "registry+https://github.com/rust-lang/crates.io-index" 1137 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1138 | 1139 | [[package]] 1140 | name = "libc" 1141 | version = "0.2.177" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 1144 | 1145 | [[package]] 1146 | name = "libflate" 1147 | version = "2.2.0" 1148 | source = "registry+https://github.com/rust-lang/crates.io-index" 1149 | checksum = "249fa21ba2b59e8cbd69e722f5b31e1b466db96c937ae3de23e8b99ead0d1383" 1150 | dependencies = [ 1151 | "adler32", 1152 | "core2", 1153 | "crc32fast", 1154 | "dary_heap", 1155 | "libflate_lz77", 1156 | ] 1157 | 1158 | [[package]] 1159 | name = "libflate_lz77" 1160 | version = "2.2.0" 1161 | source = "registry+https://github.com/rust-lang/crates.io-index" 1162 | checksum = "a599cb10a9cd92b1300debcef28da8f70b935ec937f44fcd1b70a7c986a11c5c" 1163 | dependencies = [ 1164 | "core2", 1165 | "hashbrown 0.16.0", 1166 | "rle-decode-fast", 1167 | ] 1168 | 1169 | [[package]] 1170 | name = "libgit2-sys" 1171 | version = "0.18.2+1.9.1" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" 1174 | dependencies = [ 1175 | "cc", 1176 | "libc", 1177 | "libz-sys", 1178 | "pkg-config", 1179 | ] 1180 | 1181 | [[package]] 1182 | name = "libm" 1183 | version = "0.2.15" 1184 | source = "registry+https://github.com/rust-lang/crates.io-index" 1185 | checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" 1186 | 1187 | [[package]] 1188 | name = "libredox" 1189 | version = "0.1.10" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 1192 | dependencies = [ 1193 | "bitflags", 1194 | "libc", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "libz-sys" 1199 | version = "1.1.22" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" 1202 | dependencies = [ 1203 | "cc", 1204 | "libc", 1205 | "pkg-config", 1206 | "vcpkg", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "linux-raw-sys" 1211 | version = "0.11.0" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 1214 | 1215 | [[package]] 1216 | name = "litemap" 1217 | version = "0.8.1" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 1220 | 1221 | [[package]] 1222 | name = "log" 1223 | version = "0.4.28" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 1226 | 1227 | [[package]] 1228 | name = "lru-slab" 1229 | version = "0.1.2" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 1232 | 1233 | [[package]] 1234 | name = "memchr" 1235 | version = "2.7.6" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 1238 | 1239 | [[package]] 1240 | name = "memmap2" 1241 | version = "0.5.10" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1244 | dependencies = [ 1245 | "libc", 1246 | ] 1247 | 1248 | [[package]] 1249 | name = "miette" 1250 | version = "5.10.0" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" 1253 | dependencies = [ 1254 | "miette-derive", 1255 | "once_cell", 1256 | "thiserror 1.0.69", 1257 | "unicode-width", 1258 | ] 1259 | 1260 | [[package]] 1261 | name = "miette-derive" 1262 | version = "5.10.0" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" 1265 | dependencies = [ 1266 | "proc-macro2", 1267 | "quote", 1268 | "syn 2.0.109", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "mio" 1273 | version = "1.1.0" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 1276 | dependencies = [ 1277 | "libc", 1278 | "wasi", 1279 | "windows-sys 0.61.2", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "next_version" 1284 | version = "0.2.25" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "2af0742157c04cea78f8643de0d0785a29d53c4dd08d985bc542cdd4d2ec9830" 1287 | dependencies = [ 1288 | "git-conventional", 1289 | "regex", 1290 | "semver", 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "num-conv" 1295 | version = "0.1.0" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1298 | 1299 | [[package]] 1300 | name = "num-traits" 1301 | version = "0.2.19" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1304 | dependencies = [ 1305 | "autocfg", 1306 | ] 1307 | 1308 | [[package]] 1309 | name = "once_cell" 1310 | version = "1.21.3" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1313 | 1314 | [[package]] 1315 | name = "option-ext" 1316 | version = "0.2.0" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1319 | 1320 | [[package]] 1321 | name = "parse-zoneinfo" 1322 | version = "0.3.1" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" 1325 | dependencies = [ 1326 | "regex", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "pathdiff" 1331 | version = "0.2.3" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 1334 | 1335 | [[package]] 1336 | name = "percent-encoding" 1337 | version = "2.3.2" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 1340 | 1341 | [[package]] 1342 | name = "pest" 1343 | version = "2.8.3" 1344 | source = "registry+https://github.com/rust-lang/crates.io-index" 1345 | checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" 1346 | dependencies = [ 1347 | "memchr", 1348 | "ucd-trie", 1349 | ] 1350 | 1351 | [[package]] 1352 | name = "pest_derive" 1353 | version = "2.8.3" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" 1356 | dependencies = [ 1357 | "pest", 1358 | "pest_generator", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "pest_generator" 1363 | version = "2.8.3" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" 1366 | dependencies = [ 1367 | "pest", 1368 | "pest_meta", 1369 | "proc-macro2", 1370 | "quote", 1371 | "syn 2.0.109", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "pest_meta" 1376 | version = "2.8.3" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" 1379 | dependencies = [ 1380 | "pest", 1381 | "sha2", 1382 | ] 1383 | 1384 | [[package]] 1385 | name = "phf" 1386 | version = "0.11.3" 1387 | source = "registry+https://github.com/rust-lang/crates.io-index" 1388 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 1389 | dependencies = [ 1390 | "phf_shared", 1391 | ] 1392 | 1393 | [[package]] 1394 | name = "phf_codegen" 1395 | version = "0.11.3" 1396 | source = "registry+https://github.com/rust-lang/crates.io-index" 1397 | checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 1398 | dependencies = [ 1399 | "phf_generator", 1400 | "phf_shared", 1401 | ] 1402 | 1403 | [[package]] 1404 | name = "phf_generator" 1405 | version = "0.11.3" 1406 | source = "registry+https://github.com/rust-lang/crates.io-index" 1407 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 1408 | dependencies = [ 1409 | "phf_shared", 1410 | "rand 0.8.5", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "phf_shared" 1415 | version = "0.11.3" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 1418 | dependencies = [ 1419 | "siphasher", 1420 | ] 1421 | 1422 | [[package]] 1423 | name = "pin-project-lite" 1424 | version = "0.2.16" 1425 | source = "registry+https://github.com/rust-lang/crates.io-index" 1426 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1427 | 1428 | [[package]] 1429 | name = "pin-utils" 1430 | version = "0.1.0" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1433 | 1434 | [[package]] 1435 | name = "pkg-config" 1436 | version = "0.3.32" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1439 | 1440 | [[package]] 1441 | name = "potential_utf" 1442 | version = "0.1.4" 1443 | source = "registry+https://github.com/rust-lang/crates.io-index" 1444 | checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 1445 | dependencies = [ 1446 | "zerovec", 1447 | ] 1448 | 1449 | [[package]] 1450 | name = "powerfmt" 1451 | version = "0.2.0" 1452 | source = "registry+https://github.com/rust-lang/crates.io-index" 1453 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1454 | 1455 | [[package]] 1456 | name = "ppv-lite86" 1457 | version = "0.2.21" 1458 | source = "registry+https://github.com/rust-lang/crates.io-index" 1459 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1460 | dependencies = [ 1461 | "zerocopy", 1462 | ] 1463 | 1464 | [[package]] 1465 | name = "proc-macro-error" 1466 | version = "1.0.4" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1469 | dependencies = [ 1470 | "proc-macro-error-attr", 1471 | "proc-macro2", 1472 | "quote", 1473 | "syn 1.0.109", 1474 | "version_check", 1475 | ] 1476 | 1477 | [[package]] 1478 | name = "proc-macro-error-attr" 1479 | version = "1.0.4" 1480 | source = "registry+https://github.com/rust-lang/crates.io-index" 1481 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1482 | dependencies = [ 1483 | "proc-macro2", 1484 | "quote", 1485 | "version_check", 1486 | ] 1487 | 1488 | [[package]] 1489 | name = "proc-macro2" 1490 | version = "1.0.103" 1491 | source = "registry+https://github.com/rust-lang/crates.io-index" 1492 | checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 1493 | dependencies = [ 1494 | "unicode-ident", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "quinn" 1499 | version = "0.11.9" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" 1502 | dependencies = [ 1503 | "bytes", 1504 | "cfg_aliases", 1505 | "pin-project-lite", 1506 | "quinn-proto", 1507 | "quinn-udp", 1508 | "rustc-hash", 1509 | "rustls", 1510 | "socket2", 1511 | "thiserror 2.0.17", 1512 | "tokio", 1513 | "tracing", 1514 | "web-time", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "quinn-proto" 1519 | version = "0.11.13" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" 1522 | dependencies = [ 1523 | "bytes", 1524 | "getrandom 0.3.4", 1525 | "lru-slab", 1526 | "rand 0.9.2", 1527 | "ring", 1528 | "rustc-hash", 1529 | "rustls", 1530 | "rustls-pki-types", 1531 | "slab", 1532 | "thiserror 2.0.17", 1533 | "tinyvec", 1534 | "tracing", 1535 | "web-time", 1536 | ] 1537 | 1538 | [[package]] 1539 | name = "quinn-udp" 1540 | version = "0.5.14" 1541 | source = "registry+https://github.com/rust-lang/crates.io-index" 1542 | checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" 1543 | dependencies = [ 1544 | "cfg_aliases", 1545 | "libc", 1546 | "once_cell", 1547 | "socket2", 1548 | "tracing", 1549 | "windows-sys 0.60.2", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "quote" 1554 | version = "1.0.42" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 1557 | dependencies = [ 1558 | "proc-macro2", 1559 | ] 1560 | 1561 | [[package]] 1562 | name = "r-efi" 1563 | version = "5.3.0" 1564 | source = "registry+https://github.com/rust-lang/crates.io-index" 1565 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1566 | 1567 | [[package]] 1568 | name = "rand" 1569 | version = "0.8.5" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1572 | dependencies = [ 1573 | "libc", 1574 | "rand_chacha 0.3.1", 1575 | "rand_core 0.6.4", 1576 | ] 1577 | 1578 | [[package]] 1579 | name = "rand" 1580 | version = "0.9.2" 1581 | source = "registry+https://github.com/rust-lang/crates.io-index" 1582 | checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 1583 | dependencies = [ 1584 | "rand_chacha 0.9.0", 1585 | "rand_core 0.9.3", 1586 | ] 1587 | 1588 | [[package]] 1589 | name = "rand_chacha" 1590 | version = "0.3.1" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1593 | dependencies = [ 1594 | "ppv-lite86", 1595 | "rand_core 0.6.4", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "rand_chacha" 1600 | version = "0.9.0" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1603 | dependencies = [ 1604 | "ppv-lite86", 1605 | "rand_core 0.9.3", 1606 | ] 1607 | 1608 | [[package]] 1609 | name = "rand_core" 1610 | version = "0.6.4" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1613 | dependencies = [ 1614 | "getrandom 0.2.16", 1615 | ] 1616 | 1617 | [[package]] 1618 | name = "rand_core" 1619 | version = "0.9.3" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 1622 | dependencies = [ 1623 | "getrandom 0.3.4", 1624 | ] 1625 | 1626 | [[package]] 1627 | name = "redox_users" 1628 | version = "0.5.2" 1629 | source = "registry+https://github.com/rust-lang/crates.io-index" 1630 | checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 1631 | dependencies = [ 1632 | "getrandom 0.2.16", 1633 | "libredox", 1634 | "thiserror 2.0.17", 1635 | ] 1636 | 1637 | [[package]] 1638 | name = "reflink-copy" 1639 | version = "0.1.28" 1640 | source = "registry+https://github.com/rust-lang/crates.io-index" 1641 | checksum = "23bbed272e39c47a095a5242218a67412a220006842558b03fe2935e8f3d7b92" 1642 | dependencies = [ 1643 | "cfg-if", 1644 | "libc", 1645 | "rustix", 1646 | "windows", 1647 | ] 1648 | 1649 | [[package]] 1650 | name = "regex" 1651 | version = "1.12.2" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 1654 | dependencies = [ 1655 | "aho-corasick", 1656 | "memchr", 1657 | "regex-automata", 1658 | "regex-syntax", 1659 | ] 1660 | 1661 | [[package]] 1662 | name = "regex-automata" 1663 | version = "0.4.13" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 1666 | dependencies = [ 1667 | "aho-corasick", 1668 | "memchr", 1669 | "regex-syntax", 1670 | ] 1671 | 1672 | [[package]] 1673 | name = "regex-syntax" 1674 | version = "0.8.8" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 1677 | 1678 | [[package]] 1679 | name = "reqwest" 1680 | version = "0.12.24" 1681 | source = "registry+https://github.com/rust-lang/crates.io-index" 1682 | checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" 1683 | dependencies = [ 1684 | "base64 0.22.1", 1685 | "bytes", 1686 | "futures-channel", 1687 | "futures-core", 1688 | "futures-util", 1689 | "http", 1690 | "http-body", 1691 | "http-body-util", 1692 | "hyper", 1693 | "hyper-rustls", 1694 | "hyper-util", 1695 | "js-sys", 1696 | "log", 1697 | "percent-encoding", 1698 | "pin-project-lite", 1699 | "quinn", 1700 | "rustls", 1701 | "rustls-pki-types", 1702 | "serde", 1703 | "serde_json", 1704 | "serde_urlencoded", 1705 | "sync_wrapper", 1706 | "tokio", 1707 | "tokio-rustls", 1708 | "tower", 1709 | "tower-http", 1710 | "tower-service", 1711 | "url", 1712 | "wasm-bindgen", 1713 | "wasm-bindgen-futures", 1714 | "web-sys", 1715 | "webpki-roots", 1716 | ] 1717 | 1718 | [[package]] 1719 | name = "ring" 1720 | version = "0.17.14" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 1723 | dependencies = [ 1724 | "cc", 1725 | "cfg-if", 1726 | "getrandom 0.2.16", 1727 | "libc", 1728 | "untrusted", 1729 | "windows-sys 0.52.0", 1730 | ] 1731 | 1732 | [[package]] 1733 | name = "rle-decode-fast" 1734 | version = "1.0.3" 1735 | source = "registry+https://github.com/rust-lang/crates.io-index" 1736 | checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" 1737 | 1738 | [[package]] 1739 | name = "rust-embed" 1740 | version = "8.9.0" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "947d7f3fad52b283d261c4c99a084937e2fe492248cb9a68a8435a861b8798ca" 1743 | dependencies = [ 1744 | "include-flate", 1745 | "rust-embed-impl", 1746 | "rust-embed-utils", 1747 | "walkdir", 1748 | ] 1749 | 1750 | [[package]] 1751 | name = "rust-embed-impl" 1752 | version = "8.9.0" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "5fa2c8c9e8711e10f9c4fd2d64317ef13feaab820a4c51541f1a8c8e2e851ab2" 1755 | dependencies = [ 1756 | "proc-macro2", 1757 | "quote", 1758 | "rust-embed-utils", 1759 | "syn 2.0.109", 1760 | "walkdir", 1761 | ] 1762 | 1763 | [[package]] 1764 | name = "rust-embed-utils" 1765 | version = "8.9.0" 1766 | source = "registry+https://github.com/rust-lang/crates.io-index" 1767 | checksum = "60b161f275cb337fe0a44d924a5f4df0ed69c2c39519858f931ce61c779d3475" 1768 | dependencies = [ 1769 | "sha2", 1770 | "walkdir", 1771 | ] 1772 | 1773 | [[package]] 1774 | name = "rustc-hash" 1775 | version = "2.1.1" 1776 | source = "registry+https://github.com/rust-lang/crates.io-index" 1777 | checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1778 | 1779 | [[package]] 1780 | name = "rustix" 1781 | version = "1.1.2" 1782 | source = "registry+https://github.com/rust-lang/crates.io-index" 1783 | checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 1784 | dependencies = [ 1785 | "bitflags", 1786 | "errno", 1787 | "libc", 1788 | "linux-raw-sys", 1789 | "windows-sys 0.61.2", 1790 | ] 1791 | 1792 | [[package]] 1793 | name = "rustls" 1794 | version = "0.23.35" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" 1797 | dependencies = [ 1798 | "once_cell", 1799 | "ring", 1800 | "rustls-pki-types", 1801 | "rustls-webpki", 1802 | "subtle", 1803 | "zeroize", 1804 | ] 1805 | 1806 | [[package]] 1807 | name = "rustls-pki-types" 1808 | version = "1.13.0" 1809 | source = "registry+https://github.com/rust-lang/crates.io-index" 1810 | checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" 1811 | dependencies = [ 1812 | "web-time", 1813 | "zeroize", 1814 | ] 1815 | 1816 | [[package]] 1817 | name = "rustls-webpki" 1818 | version = "0.103.8" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" 1821 | dependencies = [ 1822 | "ring", 1823 | "rustls-pki-types", 1824 | "untrusted", 1825 | ] 1826 | 1827 | [[package]] 1828 | name = "rustversion" 1829 | version = "1.0.22" 1830 | source = "registry+https://github.com/rust-lang/crates.io-index" 1831 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1832 | 1833 | [[package]] 1834 | name = "ryu" 1835 | version = "1.0.20" 1836 | source = "registry+https://github.com/rust-lang/crates.io-index" 1837 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1838 | 1839 | [[package]] 1840 | name = "same-file" 1841 | version = "1.0.6" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1844 | dependencies = [ 1845 | "winapi-util", 1846 | ] 1847 | 1848 | [[package]] 1849 | name = "secrecy" 1850 | version = "0.8.0" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" 1853 | dependencies = [ 1854 | "serde", 1855 | "zeroize", 1856 | ] 1857 | 1858 | [[package]] 1859 | name = "semver" 1860 | version = "1.0.27" 1861 | source = "registry+https://github.com/rust-lang/crates.io-index" 1862 | checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1863 | dependencies = [ 1864 | "serde", 1865 | "serde_core", 1866 | ] 1867 | 1868 | [[package]] 1869 | name = "serde" 1870 | version = "1.0.228" 1871 | source = "registry+https://github.com/rust-lang/crates.io-index" 1872 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1873 | dependencies = [ 1874 | "serde_core", 1875 | "serde_derive", 1876 | ] 1877 | 1878 | [[package]] 1879 | name = "serde_core" 1880 | version = "1.0.228" 1881 | source = "registry+https://github.com/rust-lang/crates.io-index" 1882 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1883 | dependencies = [ 1884 | "serde_derive", 1885 | ] 1886 | 1887 | [[package]] 1888 | name = "serde_derive" 1889 | version = "1.0.228" 1890 | source = "registry+https://github.com/rust-lang/crates.io-index" 1891 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 1892 | dependencies = [ 1893 | "proc-macro2", 1894 | "quote", 1895 | "syn 2.0.109", 1896 | ] 1897 | 1898 | [[package]] 1899 | name = "serde_json" 1900 | version = "1.0.145" 1901 | source = "registry+https://github.com/rust-lang/crates.io-index" 1902 | checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 1903 | dependencies = [ 1904 | "indexmap", 1905 | "itoa", 1906 | "memchr", 1907 | "ryu", 1908 | "serde", 1909 | "serde_core", 1910 | ] 1911 | 1912 | [[package]] 1913 | name = "serde_path_to_error" 1914 | version = "0.1.20" 1915 | source = "registry+https://github.com/rust-lang/crates.io-index" 1916 | checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" 1917 | dependencies = [ 1918 | "itoa", 1919 | "serde", 1920 | "serde_core", 1921 | ] 1922 | 1923 | [[package]] 1924 | name = "serde_regex" 1925 | version = "1.1.0" 1926 | source = "registry+https://github.com/rust-lang/crates.io-index" 1927 | checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf" 1928 | dependencies = [ 1929 | "regex", 1930 | "serde", 1931 | ] 1932 | 1933 | [[package]] 1934 | name = "serde_spanned" 1935 | version = "1.0.3" 1936 | source = "registry+https://github.com/rust-lang/crates.io-index" 1937 | checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" 1938 | dependencies = [ 1939 | "serde_core", 1940 | ] 1941 | 1942 | [[package]] 1943 | name = "serde_urlencoded" 1944 | version = "0.7.1" 1945 | source = "registry+https://github.com/rust-lang/crates.io-index" 1946 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1947 | dependencies = [ 1948 | "form_urlencoded", 1949 | "itoa", 1950 | "ryu", 1951 | "serde", 1952 | ] 1953 | 1954 | [[package]] 1955 | name = "sha-1" 1956 | version = "0.10.1" 1957 | source = "registry+https://github.com/rust-lang/crates.io-index" 1958 | checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" 1959 | dependencies = [ 1960 | "cfg-if", 1961 | "cpufeatures", 1962 | "digest", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "sha1" 1967 | version = "0.10.6" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1970 | dependencies = [ 1971 | "cfg-if", 1972 | "cpufeatures", 1973 | "digest", 1974 | ] 1975 | 1976 | [[package]] 1977 | name = "sha2" 1978 | version = "0.10.9" 1979 | source = "registry+https://github.com/rust-lang/crates.io-index" 1980 | checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 1981 | dependencies = [ 1982 | "cfg-if", 1983 | "cpufeatures", 1984 | "digest", 1985 | ] 1986 | 1987 | [[package]] 1988 | name = "shlex" 1989 | version = "1.3.0" 1990 | source = "registry+https://github.com/rust-lang/crates.io-index" 1991 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1992 | 1993 | [[package]] 1994 | name = "siphasher" 1995 | version = "1.0.1" 1996 | source = "registry+https://github.com/rust-lang/crates.io-index" 1997 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1998 | 1999 | [[package]] 2000 | name = "slab" 2001 | version = "0.4.11" 2002 | source = "registry+https://github.com/rust-lang/crates.io-index" 2003 | checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 2004 | 2005 | [[package]] 2006 | name = "slug" 2007 | version = "0.1.6" 2008 | source = "registry+https://github.com/rust-lang/crates.io-index" 2009 | checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" 2010 | dependencies = [ 2011 | "deunicode", 2012 | "wasm-bindgen", 2013 | ] 2014 | 2015 | [[package]] 2016 | name = "smallvec" 2017 | version = "1.15.1" 2018 | source = "registry+https://github.com/rust-lang/crates.io-index" 2019 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 2020 | 2021 | [[package]] 2022 | name = "socket2" 2023 | version = "0.6.1" 2024 | source = "registry+https://github.com/rust-lang/crates.io-index" 2025 | checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 2026 | dependencies = [ 2027 | "libc", 2028 | "windows-sys 0.60.2", 2029 | ] 2030 | 2031 | [[package]] 2032 | name = "ssri" 2033 | version = "9.2.0" 2034 | source = "registry+https://github.com/rust-lang/crates.io-index" 2035 | checksum = "da7a2b3c2bc9693bcb40870c4e9b5bf0d79f9cb46273321bf855ec513e919082" 2036 | dependencies = [ 2037 | "base64 0.21.7", 2038 | "digest", 2039 | "hex", 2040 | "miette", 2041 | "serde", 2042 | "sha-1", 2043 | "sha2", 2044 | "thiserror 1.0.69", 2045 | "xxhash-rust", 2046 | ] 2047 | 2048 | [[package]] 2049 | name = "stable_deref_trait" 2050 | version = "1.2.1" 2051 | source = "registry+https://github.com/rust-lang/crates.io-index" 2052 | checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 2053 | 2054 | [[package]] 2055 | name = "subtle" 2056 | version = "2.6.1" 2057 | source = "registry+https://github.com/rust-lang/crates.io-index" 2058 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 2059 | 2060 | [[package]] 2061 | name = "syn" 2062 | version = "1.0.109" 2063 | source = "registry+https://github.com/rust-lang/crates.io-index" 2064 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2065 | dependencies = [ 2066 | "proc-macro2", 2067 | "unicode-ident", 2068 | ] 2069 | 2070 | [[package]] 2071 | name = "syn" 2072 | version = "2.0.109" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" 2075 | dependencies = [ 2076 | "proc-macro2", 2077 | "quote", 2078 | "unicode-ident", 2079 | ] 2080 | 2081 | [[package]] 2082 | name = "sync_wrapper" 2083 | version = "1.0.2" 2084 | source = "registry+https://github.com/rust-lang/crates.io-index" 2085 | checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 2086 | dependencies = [ 2087 | "futures-core", 2088 | ] 2089 | 2090 | [[package]] 2091 | name = "synstructure" 2092 | version = "0.13.2" 2093 | source = "registry+https://github.com/rust-lang/crates.io-index" 2094 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 2095 | dependencies = [ 2096 | "proc-macro2", 2097 | "quote", 2098 | "syn 2.0.109", 2099 | ] 2100 | 2101 | [[package]] 2102 | name = "tempfile" 2103 | version = "3.23.0" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 2106 | dependencies = [ 2107 | "fastrand", 2108 | "getrandom 0.3.4", 2109 | "once_cell", 2110 | "rustix", 2111 | "windows-sys 0.61.2", 2112 | ] 2113 | 2114 | [[package]] 2115 | name = "tera" 2116 | version = "1.20.1" 2117 | source = "registry+https://github.com/rust-lang/crates.io-index" 2118 | checksum = "e8004bca281f2d32df3bacd59bc67b312cb4c70cea46cbd79dbe8ac5ed206722" 2119 | dependencies = [ 2120 | "chrono", 2121 | "chrono-tz", 2122 | "globwalk", 2123 | "humansize", 2124 | "lazy_static", 2125 | "percent-encoding", 2126 | "pest", 2127 | "pest_derive", 2128 | "rand 0.8.5", 2129 | "regex", 2130 | "serde", 2131 | "serde_json", 2132 | "slug", 2133 | "unicode-segmentation", 2134 | ] 2135 | 2136 | [[package]] 2137 | name = "thiserror" 2138 | version = "1.0.69" 2139 | source = "registry+https://github.com/rust-lang/crates.io-index" 2140 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 2141 | dependencies = [ 2142 | "thiserror-impl 1.0.69", 2143 | ] 2144 | 2145 | [[package]] 2146 | name = "thiserror" 2147 | version = "2.0.17" 2148 | source = "registry+https://github.com/rust-lang/crates.io-index" 2149 | checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 2150 | dependencies = [ 2151 | "thiserror-impl 2.0.17", 2152 | ] 2153 | 2154 | [[package]] 2155 | name = "thiserror-impl" 2156 | version = "1.0.69" 2157 | source = "registry+https://github.com/rust-lang/crates.io-index" 2158 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 2159 | dependencies = [ 2160 | "proc-macro2", 2161 | "quote", 2162 | "syn 2.0.109", 2163 | ] 2164 | 2165 | [[package]] 2166 | name = "thiserror-impl" 2167 | version = "2.0.17" 2168 | source = "registry+https://github.com/rust-lang/crates.io-index" 2169 | checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 2170 | dependencies = [ 2171 | "proc-macro2", 2172 | "quote", 2173 | "syn 2.0.109", 2174 | ] 2175 | 2176 | [[package]] 2177 | name = "time" 2178 | version = "0.3.44" 2179 | source = "registry+https://github.com/rust-lang/crates.io-index" 2180 | checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" 2181 | dependencies = [ 2182 | "deranged", 2183 | "num-conv", 2184 | "powerfmt", 2185 | "serde", 2186 | "time-core", 2187 | ] 2188 | 2189 | [[package]] 2190 | name = "time-core" 2191 | version = "0.1.6" 2192 | source = "registry+https://github.com/rust-lang/crates.io-index" 2193 | checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 2194 | 2195 | [[package]] 2196 | name = "tinystr" 2197 | version = "0.8.2" 2198 | source = "registry+https://github.com/rust-lang/crates.io-index" 2199 | checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 2200 | dependencies = [ 2201 | "displaydoc", 2202 | "zerovec", 2203 | ] 2204 | 2205 | [[package]] 2206 | name = "tinyvec" 2207 | version = "1.10.0" 2208 | source = "registry+https://github.com/rust-lang/crates.io-index" 2209 | checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 2210 | dependencies = [ 2211 | "tinyvec_macros", 2212 | ] 2213 | 2214 | [[package]] 2215 | name = "tinyvec_macros" 2216 | version = "0.1.1" 2217 | source = "registry+https://github.com/rust-lang/crates.io-index" 2218 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2219 | 2220 | [[package]] 2221 | name = "tokio" 2222 | version = "1.48.0" 2223 | source = "registry+https://github.com/rust-lang/crates.io-index" 2224 | checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 2225 | dependencies = [ 2226 | "bytes", 2227 | "libc", 2228 | "mio", 2229 | "pin-project-lite", 2230 | "socket2", 2231 | "windows-sys 0.61.2", 2232 | ] 2233 | 2234 | [[package]] 2235 | name = "tokio-rustls" 2236 | version = "0.26.4" 2237 | source = "registry+https://github.com/rust-lang/crates.io-index" 2238 | checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" 2239 | dependencies = [ 2240 | "rustls", 2241 | "tokio", 2242 | ] 2243 | 2244 | [[package]] 2245 | name = "toml" 2246 | version = "0.9.8" 2247 | source = "registry+https://github.com/rust-lang/crates.io-index" 2248 | checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 2249 | dependencies = [ 2250 | "indexmap", 2251 | "serde_core", 2252 | "serde_spanned", 2253 | "toml_datetime", 2254 | "toml_parser", 2255 | "toml_writer", 2256 | "winnow", 2257 | ] 2258 | 2259 | [[package]] 2260 | name = "toml_datetime" 2261 | version = "0.7.3" 2262 | source = "registry+https://github.com/rust-lang/crates.io-index" 2263 | checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" 2264 | dependencies = [ 2265 | "serde_core", 2266 | ] 2267 | 2268 | [[package]] 2269 | name = "toml_edit" 2270 | version = "0.23.9" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832" 2273 | dependencies = [ 2274 | "indexmap", 2275 | "toml_datetime", 2276 | "toml_parser", 2277 | "toml_writer", 2278 | "winnow", 2279 | ] 2280 | 2281 | [[package]] 2282 | name = "toml_parser" 2283 | version = "1.0.4" 2284 | source = "registry+https://github.com/rust-lang/crates.io-index" 2285 | checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 2286 | dependencies = [ 2287 | "winnow", 2288 | ] 2289 | 2290 | [[package]] 2291 | name = "toml_writer" 2292 | version = "1.0.4" 2293 | source = "registry+https://github.com/rust-lang/crates.io-index" 2294 | checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" 2295 | 2296 | [[package]] 2297 | name = "tower" 2298 | version = "0.5.2" 2299 | source = "registry+https://github.com/rust-lang/crates.io-index" 2300 | checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 2301 | dependencies = [ 2302 | "futures-core", 2303 | "futures-util", 2304 | "pin-project-lite", 2305 | "sync_wrapper", 2306 | "tokio", 2307 | "tower-layer", 2308 | "tower-service", 2309 | ] 2310 | 2311 | [[package]] 2312 | name = "tower-http" 2313 | version = "0.6.6" 2314 | source = "registry+https://github.com/rust-lang/crates.io-index" 2315 | checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 2316 | dependencies = [ 2317 | "bitflags", 2318 | "bytes", 2319 | "futures-util", 2320 | "http", 2321 | "http-body", 2322 | "iri-string", 2323 | "pin-project-lite", 2324 | "tower", 2325 | "tower-layer", 2326 | "tower-service", 2327 | ] 2328 | 2329 | [[package]] 2330 | name = "tower-layer" 2331 | version = "0.3.3" 2332 | source = "registry+https://github.com/rust-lang/crates.io-index" 2333 | checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 2334 | 2335 | [[package]] 2336 | name = "tower-service" 2337 | version = "0.3.3" 2338 | source = "registry+https://github.com/rust-lang/crates.io-index" 2339 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 2340 | 2341 | [[package]] 2342 | name = "tracing" 2343 | version = "0.1.41" 2344 | source = "registry+https://github.com/rust-lang/crates.io-index" 2345 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 2346 | dependencies = [ 2347 | "pin-project-lite", 2348 | "tracing-core", 2349 | ] 2350 | 2351 | [[package]] 2352 | name = "tracing-core" 2353 | version = "0.1.34" 2354 | source = "registry+https://github.com/rust-lang/crates.io-index" 2355 | checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 2356 | dependencies = [ 2357 | "once_cell", 2358 | ] 2359 | 2360 | [[package]] 2361 | name = "try-lock" 2362 | version = "0.2.5" 2363 | source = "registry+https://github.com/rust-lang/crates.io-index" 2364 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2365 | 2366 | [[package]] 2367 | name = "typenum" 2368 | version = "1.19.0" 2369 | source = "registry+https://github.com/rust-lang/crates.io-index" 2370 | checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 2371 | 2372 | [[package]] 2373 | name = "ucd-trie" 2374 | version = "0.1.7" 2375 | source = "registry+https://github.com/rust-lang/crates.io-index" 2376 | checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 2377 | 2378 | [[package]] 2379 | name = "unicase" 2380 | version = "2.8.1" 2381 | source = "registry+https://github.com/rust-lang/crates.io-index" 2382 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 2383 | 2384 | [[package]] 2385 | name = "unicode-ident" 2386 | version = "1.0.22" 2387 | source = "registry+https://github.com/rust-lang/crates.io-index" 2388 | checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 2389 | 2390 | [[package]] 2391 | name = "unicode-segmentation" 2392 | version = "1.12.0" 2393 | source = "registry+https://github.com/rust-lang/crates.io-index" 2394 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2395 | 2396 | [[package]] 2397 | name = "unicode-width" 2398 | version = "0.1.14" 2399 | source = "registry+https://github.com/rust-lang/crates.io-index" 2400 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 2401 | 2402 | [[package]] 2403 | name = "untrusted" 2404 | version = "0.9.0" 2405 | source = "registry+https://github.com/rust-lang/crates.io-index" 2406 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 2407 | 2408 | [[package]] 2409 | name = "unty" 2410 | version = "0.0.4" 2411 | source = "registry+https://github.com/rust-lang/crates.io-index" 2412 | checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" 2413 | 2414 | [[package]] 2415 | name = "url" 2416 | version = "2.5.7" 2417 | source = "registry+https://github.com/rust-lang/crates.io-index" 2418 | checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 2419 | dependencies = [ 2420 | "form_urlencoded", 2421 | "idna", 2422 | "percent-encoding", 2423 | "serde", 2424 | ] 2425 | 2426 | [[package]] 2427 | name = "urlencoding" 2428 | version = "2.1.3" 2429 | source = "registry+https://github.com/rust-lang/crates.io-index" 2430 | checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" 2431 | 2432 | [[package]] 2433 | name = "utf8_iter" 2434 | version = "1.0.4" 2435 | source = "registry+https://github.com/rust-lang/crates.io-index" 2436 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2437 | 2438 | [[package]] 2439 | name = "vcpkg" 2440 | version = "0.2.15" 2441 | source = "registry+https://github.com/rust-lang/crates.io-index" 2442 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2443 | 2444 | [[package]] 2445 | name = "version_check" 2446 | version = "0.9.5" 2447 | source = "registry+https://github.com/rust-lang/crates.io-index" 2448 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2449 | 2450 | [[package]] 2451 | name = "virtue" 2452 | version = "0.0.18" 2453 | source = "registry+https://github.com/rust-lang/crates.io-index" 2454 | checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" 2455 | 2456 | [[package]] 2457 | name = "walkdir" 2458 | version = "2.5.0" 2459 | source = "registry+https://github.com/rust-lang/crates.io-index" 2460 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 2461 | dependencies = [ 2462 | "same-file", 2463 | "winapi-util", 2464 | ] 2465 | 2466 | [[package]] 2467 | name = "want" 2468 | version = "0.3.1" 2469 | source = "registry+https://github.com/rust-lang/crates.io-index" 2470 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 2471 | dependencies = [ 2472 | "try-lock", 2473 | ] 2474 | 2475 | [[package]] 2476 | name = "wasi" 2477 | version = "0.11.1+wasi-snapshot-preview1" 2478 | source = "registry+https://github.com/rust-lang/crates.io-index" 2479 | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 2480 | 2481 | [[package]] 2482 | name = "wasip2" 2483 | version = "1.0.1+wasi-0.2.4" 2484 | source = "registry+https://github.com/rust-lang/crates.io-index" 2485 | checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 2486 | dependencies = [ 2487 | "wit-bindgen", 2488 | ] 2489 | 2490 | [[package]] 2491 | name = "wasm-bindgen" 2492 | version = "0.2.105" 2493 | source = "registry+https://github.com/rust-lang/crates.io-index" 2494 | checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" 2495 | dependencies = [ 2496 | "cfg-if", 2497 | "once_cell", 2498 | "rustversion", 2499 | "wasm-bindgen-macro", 2500 | "wasm-bindgen-shared", 2501 | ] 2502 | 2503 | [[package]] 2504 | name = "wasm-bindgen-futures" 2505 | version = "0.4.55" 2506 | source = "registry+https://github.com/rust-lang/crates.io-index" 2507 | checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" 2508 | dependencies = [ 2509 | "cfg-if", 2510 | "js-sys", 2511 | "once_cell", 2512 | "wasm-bindgen", 2513 | "web-sys", 2514 | ] 2515 | 2516 | [[package]] 2517 | name = "wasm-bindgen-macro" 2518 | version = "0.2.105" 2519 | source = "registry+https://github.com/rust-lang/crates.io-index" 2520 | checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" 2521 | dependencies = [ 2522 | "quote", 2523 | "wasm-bindgen-macro-support", 2524 | ] 2525 | 2526 | [[package]] 2527 | name = "wasm-bindgen-macro-support" 2528 | version = "0.2.105" 2529 | source = "registry+https://github.com/rust-lang/crates.io-index" 2530 | checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" 2531 | dependencies = [ 2532 | "bumpalo", 2533 | "proc-macro2", 2534 | "quote", 2535 | "syn 2.0.109", 2536 | "wasm-bindgen-shared", 2537 | ] 2538 | 2539 | [[package]] 2540 | name = "wasm-bindgen-shared" 2541 | version = "0.2.105" 2542 | source = "registry+https://github.com/rust-lang/crates.io-index" 2543 | checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" 2544 | dependencies = [ 2545 | "unicode-ident", 2546 | ] 2547 | 2548 | [[package]] 2549 | name = "web-sys" 2550 | version = "0.3.82" 2551 | source = "registry+https://github.com/rust-lang/crates.io-index" 2552 | checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" 2553 | dependencies = [ 2554 | "js-sys", 2555 | "wasm-bindgen", 2556 | ] 2557 | 2558 | [[package]] 2559 | name = "web-time" 2560 | version = "1.1.0" 2561 | source = "registry+https://github.com/rust-lang/crates.io-index" 2562 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 2563 | dependencies = [ 2564 | "js-sys", 2565 | "wasm-bindgen", 2566 | ] 2567 | 2568 | [[package]] 2569 | name = "webpki-roots" 2570 | version = "1.0.4" 2571 | source = "registry+https://github.com/rust-lang/crates.io-index" 2572 | checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" 2573 | dependencies = [ 2574 | "rustls-pki-types", 2575 | ] 2576 | 2577 | [[package]] 2578 | name = "winapi-util" 2579 | version = "0.1.11" 2580 | source = "registry+https://github.com/rust-lang/crates.io-index" 2581 | checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 2582 | dependencies = [ 2583 | "windows-sys 0.61.2", 2584 | ] 2585 | 2586 | [[package]] 2587 | name = "windows" 2588 | version = "0.62.2" 2589 | source = "registry+https://github.com/rust-lang/crates.io-index" 2590 | checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" 2591 | dependencies = [ 2592 | "windows-collections", 2593 | "windows-core", 2594 | "windows-future", 2595 | "windows-numerics", 2596 | ] 2597 | 2598 | [[package]] 2599 | name = "windows-collections" 2600 | version = "0.3.2" 2601 | source = "registry+https://github.com/rust-lang/crates.io-index" 2602 | checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" 2603 | dependencies = [ 2604 | "windows-core", 2605 | ] 2606 | 2607 | [[package]] 2608 | name = "windows-core" 2609 | version = "0.62.2" 2610 | source = "registry+https://github.com/rust-lang/crates.io-index" 2611 | checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 2612 | dependencies = [ 2613 | "windows-implement", 2614 | "windows-interface", 2615 | "windows-link", 2616 | "windows-result", 2617 | "windows-strings", 2618 | ] 2619 | 2620 | [[package]] 2621 | name = "windows-future" 2622 | version = "0.3.2" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" 2625 | dependencies = [ 2626 | "windows-core", 2627 | "windows-link", 2628 | "windows-threading", 2629 | ] 2630 | 2631 | [[package]] 2632 | name = "windows-implement" 2633 | version = "0.60.2" 2634 | source = "registry+https://github.com/rust-lang/crates.io-index" 2635 | checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 2636 | dependencies = [ 2637 | "proc-macro2", 2638 | "quote", 2639 | "syn 2.0.109", 2640 | ] 2641 | 2642 | [[package]] 2643 | name = "windows-interface" 2644 | version = "0.59.3" 2645 | source = "registry+https://github.com/rust-lang/crates.io-index" 2646 | checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 2647 | dependencies = [ 2648 | "proc-macro2", 2649 | "quote", 2650 | "syn 2.0.109", 2651 | ] 2652 | 2653 | [[package]] 2654 | name = "windows-link" 2655 | version = "0.2.1" 2656 | source = "registry+https://github.com/rust-lang/crates.io-index" 2657 | checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 2658 | 2659 | [[package]] 2660 | name = "windows-numerics" 2661 | version = "0.3.1" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" 2664 | dependencies = [ 2665 | "windows-core", 2666 | "windows-link", 2667 | ] 2668 | 2669 | [[package]] 2670 | name = "windows-result" 2671 | version = "0.4.1" 2672 | source = "registry+https://github.com/rust-lang/crates.io-index" 2673 | checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 2674 | dependencies = [ 2675 | "windows-link", 2676 | ] 2677 | 2678 | [[package]] 2679 | name = "windows-strings" 2680 | version = "0.5.1" 2681 | source = "registry+https://github.com/rust-lang/crates.io-index" 2682 | checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 2683 | dependencies = [ 2684 | "windows-link", 2685 | ] 2686 | 2687 | [[package]] 2688 | name = "windows-sys" 2689 | version = "0.52.0" 2690 | source = "registry+https://github.com/rust-lang/crates.io-index" 2691 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2692 | dependencies = [ 2693 | "windows-targets 0.52.6", 2694 | ] 2695 | 2696 | [[package]] 2697 | name = "windows-sys" 2698 | version = "0.60.2" 2699 | source = "registry+https://github.com/rust-lang/crates.io-index" 2700 | checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 2701 | dependencies = [ 2702 | "windows-targets 0.53.5", 2703 | ] 2704 | 2705 | [[package]] 2706 | name = "windows-sys" 2707 | version = "0.61.2" 2708 | source = "registry+https://github.com/rust-lang/crates.io-index" 2709 | checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 2710 | dependencies = [ 2711 | "windows-link", 2712 | ] 2713 | 2714 | [[package]] 2715 | name = "windows-targets" 2716 | version = "0.52.6" 2717 | source = "registry+https://github.com/rust-lang/crates.io-index" 2718 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2719 | dependencies = [ 2720 | "windows_aarch64_gnullvm 0.52.6", 2721 | "windows_aarch64_msvc 0.52.6", 2722 | "windows_i686_gnu 0.52.6", 2723 | "windows_i686_gnullvm 0.52.6", 2724 | "windows_i686_msvc 0.52.6", 2725 | "windows_x86_64_gnu 0.52.6", 2726 | "windows_x86_64_gnullvm 0.52.6", 2727 | "windows_x86_64_msvc 0.52.6", 2728 | ] 2729 | 2730 | [[package]] 2731 | name = "windows-targets" 2732 | version = "0.53.5" 2733 | source = "registry+https://github.com/rust-lang/crates.io-index" 2734 | checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 2735 | dependencies = [ 2736 | "windows-link", 2737 | "windows_aarch64_gnullvm 0.53.1", 2738 | "windows_aarch64_msvc 0.53.1", 2739 | "windows_i686_gnu 0.53.1", 2740 | "windows_i686_gnullvm 0.53.1", 2741 | "windows_i686_msvc 0.53.1", 2742 | "windows_x86_64_gnu 0.53.1", 2743 | "windows_x86_64_gnullvm 0.53.1", 2744 | "windows_x86_64_msvc 0.53.1", 2745 | ] 2746 | 2747 | [[package]] 2748 | name = "windows-threading" 2749 | version = "0.2.1" 2750 | source = "registry+https://github.com/rust-lang/crates.io-index" 2751 | checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" 2752 | dependencies = [ 2753 | "windows-link", 2754 | ] 2755 | 2756 | [[package]] 2757 | name = "windows_aarch64_gnullvm" 2758 | version = "0.52.6" 2759 | source = "registry+https://github.com/rust-lang/crates.io-index" 2760 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2761 | 2762 | [[package]] 2763 | name = "windows_aarch64_gnullvm" 2764 | version = "0.53.1" 2765 | source = "registry+https://github.com/rust-lang/crates.io-index" 2766 | checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 2767 | 2768 | [[package]] 2769 | name = "windows_aarch64_msvc" 2770 | version = "0.52.6" 2771 | source = "registry+https://github.com/rust-lang/crates.io-index" 2772 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2773 | 2774 | [[package]] 2775 | name = "windows_aarch64_msvc" 2776 | version = "0.53.1" 2777 | source = "registry+https://github.com/rust-lang/crates.io-index" 2778 | checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 2779 | 2780 | [[package]] 2781 | name = "windows_i686_gnu" 2782 | version = "0.52.6" 2783 | source = "registry+https://github.com/rust-lang/crates.io-index" 2784 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2785 | 2786 | [[package]] 2787 | name = "windows_i686_gnu" 2788 | version = "0.53.1" 2789 | source = "registry+https://github.com/rust-lang/crates.io-index" 2790 | checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 2791 | 2792 | [[package]] 2793 | name = "windows_i686_gnullvm" 2794 | version = "0.52.6" 2795 | source = "registry+https://github.com/rust-lang/crates.io-index" 2796 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2797 | 2798 | [[package]] 2799 | name = "windows_i686_gnullvm" 2800 | version = "0.53.1" 2801 | source = "registry+https://github.com/rust-lang/crates.io-index" 2802 | checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 2803 | 2804 | [[package]] 2805 | name = "windows_i686_msvc" 2806 | version = "0.52.6" 2807 | source = "registry+https://github.com/rust-lang/crates.io-index" 2808 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2809 | 2810 | [[package]] 2811 | name = "windows_i686_msvc" 2812 | version = "0.53.1" 2813 | source = "registry+https://github.com/rust-lang/crates.io-index" 2814 | checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 2815 | 2816 | [[package]] 2817 | name = "windows_x86_64_gnu" 2818 | version = "0.52.6" 2819 | source = "registry+https://github.com/rust-lang/crates.io-index" 2820 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2821 | 2822 | [[package]] 2823 | name = "windows_x86_64_gnu" 2824 | version = "0.53.1" 2825 | source = "registry+https://github.com/rust-lang/crates.io-index" 2826 | checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 2827 | 2828 | [[package]] 2829 | name = "windows_x86_64_gnullvm" 2830 | version = "0.52.6" 2831 | source = "registry+https://github.com/rust-lang/crates.io-index" 2832 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2833 | 2834 | [[package]] 2835 | name = "windows_x86_64_gnullvm" 2836 | version = "0.53.1" 2837 | source = "registry+https://github.com/rust-lang/crates.io-index" 2838 | checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 2839 | 2840 | [[package]] 2841 | name = "windows_x86_64_msvc" 2842 | version = "0.52.6" 2843 | source = "registry+https://github.com/rust-lang/crates.io-index" 2844 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2845 | 2846 | [[package]] 2847 | name = "windows_x86_64_msvc" 2848 | version = "0.53.1" 2849 | source = "registry+https://github.com/rust-lang/crates.io-index" 2850 | checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 2851 | 2852 | [[package]] 2853 | name = "winnow" 2854 | version = "0.7.13" 2855 | source = "registry+https://github.com/rust-lang/crates.io-index" 2856 | checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 2857 | dependencies = [ 2858 | "memchr", 2859 | ] 2860 | 2861 | [[package]] 2862 | name = "wit-bindgen" 2863 | version = "0.46.0" 2864 | source = "registry+https://github.com/rust-lang/crates.io-index" 2865 | checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 2866 | 2867 | [[package]] 2868 | name = "writeable" 2869 | version = "0.6.2" 2870 | source = "registry+https://github.com/rust-lang/crates.io-index" 2871 | checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 2872 | 2873 | [[package]] 2874 | name = "xxhash-rust" 2875 | version = "0.8.15" 2876 | source = "registry+https://github.com/rust-lang/crates.io-index" 2877 | checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" 2878 | 2879 | [[package]] 2880 | name = "yaml-rust2" 2881 | version = "0.10.4" 2882 | source = "registry+https://github.com/rust-lang/crates.io-index" 2883 | checksum = "2462ea039c445496d8793d052e13787f2b90e750b833afee748e601c17621ed9" 2884 | dependencies = [ 2885 | "arraydeque", 2886 | "encoding_rs", 2887 | "hashlink", 2888 | ] 2889 | 2890 | [[package]] 2891 | name = "yoke" 2892 | version = "0.8.1" 2893 | source = "registry+https://github.com/rust-lang/crates.io-index" 2894 | checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 2895 | dependencies = [ 2896 | "stable_deref_trait", 2897 | "yoke-derive", 2898 | "zerofrom", 2899 | ] 2900 | 2901 | [[package]] 2902 | name = "yoke-derive" 2903 | version = "0.8.1" 2904 | source = "registry+https://github.com/rust-lang/crates.io-index" 2905 | checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 2906 | dependencies = [ 2907 | "proc-macro2", 2908 | "quote", 2909 | "syn 2.0.109", 2910 | "synstructure", 2911 | ] 2912 | 2913 | [[package]] 2914 | name = "zerocopy" 2915 | version = "0.8.27" 2916 | source = "registry+https://github.com/rust-lang/crates.io-index" 2917 | checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 2918 | dependencies = [ 2919 | "zerocopy-derive", 2920 | ] 2921 | 2922 | [[package]] 2923 | name = "zerocopy-derive" 2924 | version = "0.8.27" 2925 | source = "registry+https://github.com/rust-lang/crates.io-index" 2926 | checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 2927 | dependencies = [ 2928 | "proc-macro2", 2929 | "quote", 2930 | "syn 2.0.109", 2931 | ] 2932 | 2933 | [[package]] 2934 | name = "zerofrom" 2935 | version = "0.1.6" 2936 | source = "registry+https://github.com/rust-lang/crates.io-index" 2937 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 2938 | dependencies = [ 2939 | "zerofrom-derive", 2940 | ] 2941 | 2942 | [[package]] 2943 | name = "zerofrom-derive" 2944 | version = "0.1.6" 2945 | source = "registry+https://github.com/rust-lang/crates.io-index" 2946 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 2947 | dependencies = [ 2948 | "proc-macro2", 2949 | "quote", 2950 | "syn 2.0.109", 2951 | "synstructure", 2952 | ] 2953 | 2954 | [[package]] 2955 | name = "zeroize" 2956 | version = "1.8.2" 2957 | source = "registry+https://github.com/rust-lang/crates.io-index" 2958 | checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" 2959 | 2960 | [[package]] 2961 | name = "zerotrie" 2962 | version = "0.2.3" 2963 | source = "registry+https://github.com/rust-lang/crates.io-index" 2964 | checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 2965 | dependencies = [ 2966 | "displaydoc", 2967 | "yoke", 2968 | "zerofrom", 2969 | ] 2970 | 2971 | [[package]] 2972 | name = "zerovec" 2973 | version = "0.11.5" 2974 | source = "registry+https://github.com/rust-lang/crates.io-index" 2975 | checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 2976 | dependencies = [ 2977 | "yoke", 2978 | "zerofrom", 2979 | "zerovec-derive", 2980 | ] 2981 | 2982 | [[package]] 2983 | name = "zerovec-derive" 2984 | version = "0.11.2" 2985 | source = "registry+https://github.com/rust-lang/crates.io-index" 2986 | checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 2987 | dependencies = [ 2988 | "proc-macro2", 2989 | "quote", 2990 | "syn 2.0.109", 2991 | ] 2992 | 2993 | [[package]] 2994 | name = "zstd" 2995 | version = "0.13.3" 2996 | source = "registry+https://github.com/rust-lang/crates.io-index" 2997 | checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" 2998 | dependencies = [ 2999 | "zstd-safe", 3000 | ] 3001 | 3002 | [[package]] 3003 | name = "zstd-safe" 3004 | version = "7.2.4" 3005 | source = "registry+https://github.com/rust-lang/crates.io-index" 3006 | checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" 3007 | dependencies = [ 3008 | "zstd-sys", 3009 | ] 3010 | 3011 | [[package]] 3012 | name = "zstd-sys" 3013 | version = "2.0.16+zstd.1.5.7" 3014 | source = "registry+https://github.com/rust-lang/crates.io-index" 3015 | checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" 3016 | dependencies = [ 3017 | "cc", 3018 | "pkg-config", 3019 | ] 3020 | --------------------------------------------------------------------------------