[package]
name = "okid"
version = "0.9.1"
edition = "2021"
readme = "README.md"
description = "A library for generating double clickable ids"
license = "BSD-3-Clause"
keywords = ["double-click", "double-clickable", "id", "hash"]

[dependencies]
async-graphql = { version = "7.0.15", optional = true }
blake3 = { version = "1.5.4", optional = true }
bytes = { version = "1.10.0", features = ["serde"] }
digest = "0.10.7"
enumflags2 = "0.7.10"
hex = { version = "0.4.3", features = ["serde"] }
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0.137"
sha1 = { version = "0.10.6", optional = true }
sha2 = { version = "0.10.8", optional = true }
sha3 = { version = "0.10.8", optional = true }
ts-rs = { version = "10.1.0", optional = true }
ulid = { version = "1.2.0", optional = true, features = ["uuid"] }
utoipa = { version = "^5.0.0-beta.0", optional = true }
uuid = { version = "1.13.1", optional = true, features = ["js", "v4"] }
zerocopy = "0.8.18"
zeroize = "1.8.1"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
jetstream_wireformat = "8.1.1"
[target.'cfg(target_arch = "wasm32")'.dependencies]
jetstream_wireformat = { version = "8.0.4", default-features = false, features = [
    "std",
] }

[features]
default = ["sha2", "sha3", "blake3", "uuid", "ulid", "openapi"]
macro-diagnostics = []
sha1 = ["dep:sha1"]
sha2 = ["dep:sha2"]
sha3 = ["dep:sha3"]
blake3 = ["dep:blake3"]
uuid = ["dep:uuid"]
ulid = ["dep:ulid"]
openapi = ["dep:utoipa"]
graphql = ["dep:async-graphql"]
ts = ["dep:ts-rs"]

[dev-dependencies]
insta = { version = "1.40.0", features = ["yaml"] }
