# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "cuenv-workspaces"
version = "0.15.7"
authors = ["cuenv Contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Workspace and dependency resolution for cuenv across multiple package managers"
homepage = "https://github.com/cuenv/cuenv"
readme = "readme.md"
keywords = [
    "cue",
    "configuration",
    "validation",
    "ffi",
]
categories = [
    "config",
    "development-tools",
    "parsing",
]
license = "AGPL-3.0-or-later"
repository = "https://github.com/cuenv/cuenv"
resolver = "2"

[features]
default = [
    "detection",
    "parsers-javascript",
    "discovery-javascript",
]
detection = [
    "toml",
    "serde_yaml",
]
discovery-cargo = [
    "dep:glob",
    "toml",
    "dep:walkdir",
]
discovery-javascript = [
    "discovery-package-json",
    "discovery-pnpm",
]
discovery-package-json = [
    "dep:glob",
    "dep:walkdir",
]
discovery-pnpm = [
    "dep:glob",
    "serde_yaml",
    "dep:walkdir",
]
discovery-rust = ["discovery-cargo"]
parser-bun = ["jsonc-parser"]
parser-cargo = [
    "dep:cargo-lock",
    "dep:cargo_toml",
    "toml",
    "dep:glob",
]
parser-npm = []
parser-pnpm = ["serde_yaml"]
parser-yarn-classic = ["dep:yarn_lock_parser"]
parser-yarn-modern = ["serde_yaml"]
parsers-javascript = [
    "parser-npm",
    "parser-bun",
    "parser-pnpm",
    "parser-yarn-classic",
    "parser-yarn-modern",
]
parsers-rust = ["parser-cargo"]

[lib]
name = "cuenv_workspaces"
path = "src/lib.rs"

[[test]]
name = "cargo_parser"
path = "tests/cargo_parser.rs"

[[test]]
name = "discovery_tests"
path = "tests/discovery_tests.rs"

[[test]]
name = "javascript_parsers"
path = "tests/javascript_parsers.rs"

[dependencies.cargo-lock]
version = "11.0"
optional = true

[dependencies.cargo_toml]
version = "0.22"
optional = true

[dependencies.glob]
version = "0.3"
optional = true

[dependencies.jsonc-parser]
version = "0.28"
optional = true

[dependencies.miette]
version = "7.0"
features = ["fancy"]

[dependencies.petgraph]
version = "0.8.3"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"
features = ["raw_value"]

[dependencies.serde_yaml]
version = "0.9"
optional = true

[dependencies.thiserror]
version = "2.0"

[dependencies.toml]
version = "0.9"
optional = true

[dependencies.tracing]
version = "0.1"

[dependencies.walkdir]
version = "2.5"
optional = true

[dependencies.yarn_lock_parser]
version = "0.12.0"
optional = true
package = "yarn-lock-parser"

[dev-dependencies.tempfile]
version = "3.0"

[lints.clippy]
all = "warn"
pedantic = "warn"
print_stderr = "warn"
print_stdout = "warn"

[lints.rust]
missing_docs = "warn"
unsafe_code = "warn"
