content: [package]
  name = "verification_server"
  version.workspace = true
  edition.workspace = true
  rust-version.workspace = true
  
  [lints]
  workspace = true
  
  [[bin]]
  name = "verification_server"
  
  [lib]
  doctest = false
  
  [[test]]
  name = "verifier_api"
  path = "tests/verifier_api.rs"
  required-features = ["test"]
  
  [[test]]
  name = "postgres"
  path = "tests/postgres.rs"
  required-features = ["db_test"]
  
  [[test]]
  name = "settings"
  path = "tests/settings.rs"
  required-features = ["integration_test"]
  
  [features]
  default = ["postgres"]
  # Allow the disclosure return URL and its prefix to use http://
  allow_insecure_url = ["openid4vc/allow_insecure_url", "http_utils/allow_insecure_url"]
  # Include session storage in PostgreSQL
  postgres = ["server_utils/postgres"]
  test = [
      "allow_insecure_url",
      "attestation_data/example_credential_payloads",
      "attestation_data/generate",
      "attestation_data/mock",
      "dcql/mock",
      "openid4vc/test",
      "openid4vc/mock",
      "server_utils/parsed_key_pair_conversion",
      "tokio/macros",
      "tokio/test-util",
      "utils/mock_time",
      "dep:assert_matches",
      "dep:attestation_types",
      "dep:chrono",
      "dep:itertools",
      "dep:http",
      "dep:mdoc",
      "dep:parking_lot",
      "dep:reqwest",
      "dep:rstest",
      "dep:sd_jwt",
      "dep:sd_jwt_vc_metadata",
      "dep:serde_json",
      "dep:serde_urlencoded",
      "dep:ssri",
      "dep:url",
      "dep:wscd",
  ]
  # Enable integration tests
  integration_test = ["test"]
  # Include and run integration tests that depend on an external PostgreSQL database
  db_test = ["integration_test", "postgres", "futures/async-await", "tokio/sync", "dep:serial_test"]
  
  [dependencies]
  anyhow.workspace = true
  axum = { workspace = true, features = ["form", "http1", "json", "query", "tokio", "tower-log", "tracing"] }
  config = { workspace = true, features = ["toml"] }
  derive_more = { workspace = true, features = ["as_ref", "from", "into_iterator"] }
  futures = { workspace = true, features = ["std"] }
  nutype = { workspace = true, features = ["serde"] }
  ring.workspace = true
  rustls-pki-types.workspace = true
  serde = { workspace = true, features = ["derive"] }
  serde_with = { workspace = true, features = ["base64", "hex"] }
  tokio = { workspace = true, features = ["parking_lot", "rt-multi-thread", "net"] }
  tower-http = { workspace = true, features = ["auth", "cors", "set-header", "trace"] }
  tracing.workspace = true
  
  assert_matches = { workspace = true, optional = true }
  chrono = { workspace = true, optional = true, features = ["clock", "std"] }
  http = { workspace = true, optional = true }
  itertools = { workspace = true, optional = true }
  parking_lot = { workspace = true, optional = true }
  reqwest = { workspace = true, optional = true, features = ["rustls-tls-webpki-roots"] }
  rstest = { workspace = true, optional = true }
  serde_urlencoded = { workspace = true, optional = true }
  serde_json = { workspace = true, optional = true }
  serial_test = { workspace = true, optional = true }
  ssri = { workspace = true, optional = true }
  url = { workspace = true, optional = true }
  
  attestation_data.path = "../../lib/attestation_data"
  crypto.path = "../../lib/crypto"
  dcql.path = "../../lib/dcql"
  hsm = { path = "../../lib/hsm", features = ["settings"] }
  http_utils = { path = "../../lib/http_utils", features = ["server"] }
  openid4vc = { path = "../../lib/openid4vc", features = ["axum"] }
  openid4vc_server = { path = "../../lib/openid4vc_server", features = ["disclosure"] }
  server_utils.path = "../server_utils"
  utils = { path = "../../lib/utils" }
  
  attestation_types = { path = "../../lib/attestation_types", optional = true }
  mdoc = { path = "../../lib/mdoc", optional = true, features = ["mock_example_constructors"] }
  sd_jwt = { path = "../../lib/sd_jwt", optional = true }
  sd_jwt_vc_metadata = { path = "../../lib/sd_jwt_vc_metadata", optional = true }
  wscd = { path = "../../lib/wscd", optional = true, features = ["mock", "examples"] }
  