# 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"
rust-version = "1.70"
name = "iron_token_manager"
version = "0.5.0"
authors = ["iron_cage contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "API token lifecycle management and usage tracking"
readme = "readme.md"
keywords = [
    "tokens",
    "api-keys",
    "usage-tracking",
    "limits",
]
categories = ["authentication"]
license = "MIT"
repository = "https://github.com/.../iron_runtime"

[features]
default = ["enabled"]
enabled = []
full = ["enabled"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.async-trait]
version = "0.1"

[dependencies.base64]
version = "0.22"

[dependencies.bcrypt]
version = "0.15"

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

[dependencies.dashmap]
version = "5.5"

[dependencies.error_tools]
version = "0.35"

[dependencies.governor]
version = "0.7"

[dependencies.hex]
version = "0.4"

[dependencies.iron_config_loader]
version = "0.4.0"

[dependencies.iron_cost]
version = "0.3.0"

[dependencies.iron_runtime_state]
version = "0.3.0"

[dependencies.iron_telemetry]
version = "0.4.0"

[dependencies.iron_types]
version = "0.3.0"

[dependencies.mod_interface]
version = "0.54"

[dependencies.nonzero_ext]
version = "0.3"

[dependencies.rand]
version = "0.8"

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

[dependencies.serde_json]
version = "1.0"

[dependencies.sha2]
version = "0.10"

[dependencies.sqlx]
version = "0.8"
features = [
    "sqlite",
    "runtime-tokio-rustls",
]

[dependencies.subtle]
version = "2.6"

[dependencies.tokio]
version = "1.48"
features = ["full"]

[dependencies.tracing]
version = "=0.1.41"

[dependencies.uuid]
version = "1.18"
features = [
    "v4",
    "serde",
]

[dependencies.workspace_tools]
version = "0.11"
features = [
    "serde",
    "secrets",
    "secure",
    "testing",
]

[dev-dependencies.iron_types]
version = "0.3.0"
features = ["test-helpers"]

[dev-dependencies.regex]
version = "1.12"

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

[dev-dependencies.tokio-test]
version = "0.4"

[lints.clippy]
absolute_paths = "allow"
arbitrary_source_item_ordering = "allow"
cast_precision_loss = "allow"
doc_include_without_cfg = "warn"
implicit_return = "allow"
inline_always = "allow"
items_after_statements = "allow"
missing_docs_in_private_items = "allow"
missing_inline_in_public_items = "allow"
mod_module_files = "allow"
module_name_repetitions = "allow"
pub_use = "allow"
question_mark_used = "allow"
single_call_fn = "allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "warn"
undocumented_unsafe_blocks = "deny"
wildcard_imports = "allow"

[lints.clippy.pedantic]
level = "warn"
priority = -1

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

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

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