# 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 = "2021"
name = "bashrs"
version = "6.40.0"
authors = ["Pragmatic AI Labs"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Rust-to-Shell transpiler for deterministic bootstrap scripts"
homepage = "https://github.com/paiml/bashrs"
documentation = "https://docs.rs/bashrs"
readme = "README.md"
keywords = [
    "shell",
    "bash",
    "transpiler",
    "rust",
    "scripting",
]
categories = [
    "command-line-utilities",
    "development-tools",
    "compilers",
]
license = "MIT"
repository = "https://github.com/paiml/bashrs"

[package.metadata.wasm-pack.profile.release]
wasm-opt = false

[features]
basic = []
compile = [
    "tokio",
    "zstd",
    "tar",
    "flate2",
    "base64",
]
completions = []
default = [
    "validation",
    "pretty-errors",
    "basic",
    "compile",
    "clap",
    "tokio",
    "tracing-subscriber",
]
full = [
    "pattern-matching",
    "loops",
    "verification",
    "optimization",
    "lsp",
    "completions",
    "watch",
    "compile",
    "clap",
    "tokio",
    "tracing-subscriber",
]
loops = []
lsp = []
minimal = []
optimization = []
pattern-matching = []
pretty-errors = []
validation = []
verification = []
wasm = [
    "wasm-bindgen",
    "wasm-bindgen-futures",
    "js-sys",
    "web-sys",
    "console_error_panic_hook",
    "getrandom",
]
watch = []

[lib]
name = "bashrs"
crate-type = [
    "cdylib",
    "rlib",
]
path = "src/lib.rs"

[[bin]]
name = "bashrs"
path = "src/bin/bashrs.rs"

[[bin]]
name = "quality-dashboard"
path = "src/bin/quality-dashboard.rs"

[[bin]]
name = "quality-gate"
path = "src/bin/quality-gate.rs"

[[bin]]
name = "rash-metrics"
path = "src/bin/rash-metrics.rs"

[[example]]
name = "makefile_purify_with_tests"
path = "examples/makefile_purify_with_tests.rs"

[[example]]
name = "optimizer_benchmark"
path = "examples/optimizer_benchmark.rs"

[[example]]
name = "quality_tools_demo"
path = "examples/quality_tools_demo.rs"

[[example]]
name = "xtask_custom_build"
path = "examples/xtask_custom_build.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "bash_purification_benchmarks"
path = "benches/bash_purification_benchmarks.rs"
harness = false

[[bench]]
name = "fix_safety_bench"
path = "benches/fix_safety_bench.rs"
harness = false

[[bench]]
name = "lint_performance"
path = "benches/lint_performance.rs"
harness = false

[[bench]]
name = "make_parsing_bench"
path = "benches/make_parsing_bench.rs"
harness = false

[[bench]]
name = "make_purify_bench"
path = "benches/make_purify_bench.rs"
harness = false

[[bench]]
name = "makefile_benchmarks"
path = "benches/makefile_benchmarks.rs"
harness = false

[[bench]]
name = "tracing_overhead"
path = "benches/tracing_overhead.rs"
harness = false

[[bench]]
name = "transpilation"
path = "benches/transpilation.rs"
harness = false

[[bench]]
name = "validation"
path = "benches/validation.rs"

[[bench]]
name = "verification"
path = "benches/verification.rs"
harness = false

[dependencies.anyhow]
version = "1.0.98"

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

[dependencies.blake3]
version = "1.8.2"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.clap]
version = "4.5.39"
features = ["derive"]
optional = true

[dependencies.console_error_panic_hook]
version = "0.1"
optional = true

[dependencies.flate2]
version = "1.1"
optional = true

[dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]
optional = true

[dependencies.glob]
version = "0.3"

[dependencies.js-sys]
version = "0.3"
optional = true

[dependencies.lazy_static]
version = "1.5"

[dependencies.once_cell]
version = "1.21.3"

[dependencies.phf]
version = "0.13"
features = ["macros"]

[dependencies.proc-macro2]
version = "1.0.95"

[dependencies.quote]
version = "1.0.40"

[dependencies.rand]
version = "0.9"

[dependencies.regex]
version = "1.10"

[dependencies.rustyline]
version = "17.0"

[dependencies.schemars]
version = "0.8"

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

[dependencies.serde_json]
version = "1.0.140"

[dependencies.static_assertions]
version = "1.1"

[dependencies.syn]
version = "2.0"
features = [
    "full",
    "extra-traits",
]

[dependencies.sysinfo]
version = "0.31"

[dependencies.tar]
version = "0.4"
optional = true

[dependencies.thiserror]
version = "2.0.12"

[dependencies.tokio]
version = "1.45.1"
features = ["full"]
optional = true

[dependencies.toml]
version = "0.8"

[dependencies.tracing]
version = "0.1.41"

[dependencies.tracing-subscriber]
version = "0.3.19"
optional = true

[dependencies.wasm-bindgen]
version = "0.2"
optional = true

[dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true

[dependencies.web-sys]
version = "0.3"
features = ["console"]
optional = true

[dependencies.zstd]
version = "0.13"
optional = true

[dev-dependencies.assert_cmd]
version = "2.0"

[dev-dependencies.criterion]
version = "0.6"

[dev-dependencies.predicates]
version = "3.1"

[dev-dependencies.proptest]
version = "1.6"

[dev-dependencies.renacer]
version = "0.6"

[dev-dependencies.rstest]
version = "0.25"

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

[lints.clippy]
checked_conversions = "warn"
dbg_macro = "warn"
module_name_repetitions = "allow"
must_use_candidate = "allow"
todo = "warn"
unimplemented = "warn"

[lints.clippy.expect_used]
level = "warn"
priority = 1

[lints.clippy.unwrap_used]
level = "deny"
priority = 1

[lints.rust]
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "deny"

[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
