[package]
name = "recorder"
version = "0.1.0"
edition = "2024"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "recorder"
path = "src/lib.rs"

[[bin]]
name = "recorder_cli"
path = "src/bin/main.rs"
required-features = []

[features]
default = []
testcontainers = [
    "dep:testcontainers",
    "dep:testcontainers-modules",
    "dep:testcontainers-ext",
]

[dependencies]
serde = { workspace = true }
tokio = { workspace = true }
serde_json = { workspace = true }
async-trait = { workspace = true }
testcontainers = { workspace = true, optional = true }
testcontainers-modules = { workspace = true, optional = true }
testcontainers-ext = { workspace = true, optional = true, features = [
    "tracing",
] }
tracing = { workspace = true }
axum = { workspace = true }
axum-extra = { workspace = true }
snafu = { workspace = true }
itertools = { workspace = true }
url = { workspace = true }
regex = { workspace = true }
lazy_static = { workspace = true }
quirks_path = { workspace = true }
futures = { workspace = true }
bytes = { workspace = true }
serde_with = { workspace = true }
moka = { workspace = true }
chrono = { workspace = true }
tracing-subscriber = { workspace = true }


sea-orm = { version = "1.1", features = [
    "sqlx-sqlite",
    "sqlx-postgres",
    "runtime-tokio-rustls",
    "macros",
    "debug-print",
] }
figment = { version = "0.10", features = ["toml", "json", "env", "yaml"] }
uuid = { version = "1.6.0", features = ["v4"] }
sea-orm-migration = { version = "1.1", features = ["runtime-tokio-rustls"] }
rss = "2"
fancy-regex = "0.14"
maplit = "1.0.2"
lightningcss = "1.0.0-alpha.65"
html-escape = "0.2.13"
opendal = { version = "0.53", features = ["default", "services-fs"] }
zune-image = "0.4.15"
once_cell = "1.20.2"
scraper = "0.23"

jwt-authorizer = "0.15.0"
log = "0.4"
async-graphql = { version = "7", features = [] }
async-graphql-axum = "7"
seaography = { version = "1.1" }
base64 = "0.22.1"
tower = "0.5.2"
tower-http = { version = "0.6", features = [
    "trace",
    "catch-panic",
    "timeout",
    "add-extension",
    "cors",
    "fs",
    "set-header",
    "compression-full",
] }
tera = "1.20.0"
openidconnect = { version = "4", features = ["rustls-tls"] }
dotenv = "0.15.0"
http = "1.2.0"
async-stream = "0.3.6"
serde_variant = "0.1.3"
tracing-appender = "0.2.3"
clap = "4.5.31"
ipnetwork = "0.21.1"
typed-builder = "0.21.0"
serde_yaml = "0.9.34"

downloader = { workspace = true }
util = { workspace = true }
fetch = { workspace = true }
string-interner = "0.19.0"

[dev-dependencies]
serial_test = "3"
insta = { version = "1", features = ["redactions", "yaml", "filters"] }
mockito = "1.6.1"
rstest = "0.25"
ctor = "0.4.0"
