[package]
edition = "2021"
rust-version = "1.87"
name = "foundation_auth"
version = "0.0.4"
authors = ["EweStudios Consulting Limited"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Authentication and authorization — OAuth2/OIDC flows, JWT handling, password hashing (Argon2), TOTP, and session management with Turso/SQLite and wasm-bindgen backends"
readme = false
keywords = [
"ewe_platform",
"ewestudios-platform",
"ewestudios_platform",
]
license = "Apache-2.0"
repository = "https://github.com/ewe-studios/ewe_platform"
resolver = "3"
[features]
default = ["turso"]
server = [
"dep:foundation_http",
"dep:futures-core",
"dep:futures-lite",
]
server-native = [
"server",
"dep:webauthn-rs",
"dep:url",
"dep:serde_cbor",
]
server-test = [
"server",
"foundation_core/multi",
"foundation_netio/multi",
"foundation_http/multi",
]
turso = ["foundation_db/turso"]
wasm = [
"uuid/js",
"chrono/wasmbind",
"dep:getrandom",
"getrandom/js",
]
wasm-bindgen-oauth = [
"wasm",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:js-sys",
"dep:web-sys",
]
wasm-bindgen-session = [
"wasm",
"foundation_db/wasm-bindgen-storage",
]
wasm-pbkdf2 = [
"wasm",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:js-sys",
"dep:web-sys",
]
[lib]
name = "foundation_auth"
path = "src/lib.rs"
[[test]]
name = "credential_store_tests"
path = "tests/credential_store_tests.rs"
[[test]]
name = "foundation_auth_tests"
path = "tests/lib.rs"
required-features = ["server-test"]
[[test]]
name = "jwt_tests"
path = "tests/jwt_tests.rs"
[[test]]
name = "oauth_tests"
path = "tests/oauth_tests.rs"
[[test]]
name = "two_factor_tests"
path = "tests/two_factor_tests.rs"
[dependencies.argon2]
version = "0.5"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.bytes]
version = "1.5"
[dependencies.chacha20poly1305]
version = "0.10"
[dependencies.chrono]
version = "0.4"
[dependencies.derive_more]
version = "2.0"
features = [
"from",
"error",
"display",
]
[dependencies.foundation_core]
version = "0.0.6"
[dependencies.foundation_db]
version = "0.0.4"
default-features = false
[dependencies.foundation_errstacks]
version = "0.0.3"
[dependencies.foundation_http]
version = "0.0.3"
optional = true
[dependencies.foundation_netio]
version = "0.0.4"
default-features = false
[dependencies.futures-core]
version = "0.3"
optional = true
[dependencies.futures-lite]
version = "2"
optional = true
[dependencies.getrandom]
version = "0.2"
optional = true
[dependencies.hmac]
version = "0.12"
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.jwt-simple]
version = "0.12"
[dependencies.pbkdf2]
version = "0.12"
[dependencies.rand]
version = "0.9"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_cbor]
version = "0.11"
optional = true
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.time]
version = "0.3"
[dependencies.url]
version = "2"
optional = true
[dependencies.urlencoding]
version = "2.1"
[dependencies.uuid]
version = "1.0"
features = ["v4"]
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true
[dependencies.web-sys]
version = "0.3"
features = [
"Request",
"RequestInit",
"RequestMode",
"Response",
"Headers",
"AbortController",
"ServiceWorkerGlobalScope",
"Window",
"Crypto",
"SubtleCrypto",
"CryptoKey",
]
optional = true
[dependencies.webauthn-rs]
version = "0.5"
features = ["danger-allow-state-serialisation"]
optional = true
[dependencies.zeroize]
version = "1"
[dev-dependencies.ntest]
version = "0.9"
[dev-dependencies.serial_test]
version = "3.3.1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tracing]
version = "0.1"
[target.'cfg(not(target_family = "wasm"))'.dependencies.foundation_netio]
version = "0.0.4"
features = ["multi"]
[target.'cfg(target_family = "wasm")'.dependencies.foundation_netio]
version = "0.0.4"
features = ["wasm-fetch"]
default-features = false
[lints.clippy.pedantic]
level = "warn"
priority = 0
[lints.rust.missing_debug_implementations]
level = "allow"
priority = 0
[lints.rust.missing_docs]
level = "allow"
priority = 0