
[package]
name = "flowy-document"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
flowy-client-sync = { path = "../flowy-client-sync"}
revision-model = { path = "../../../shared-lib/revision-model"}
document-model = { path = "../../../shared-lib/document-model"}
ws-model = { path = "../../../shared-lib/ws-model"}
flowy-derive = { path = "../flowy-derive" }
lib-ot = { path = "../../../shared-lib/lib-ot" }
lib-ws = { path = "../../../shared-lib/lib-ws" }
lib-infra = { path = "../../../shared-lib/lib-infra" }

lib-dispatch = { path = "../lib-dispatch" }
flowy-sqlite = { path = "../flowy-sqlite", optional = true }
flowy-revision = { path = "../flowy-revision" }
flowy-revision-persistence = { path = "../flowy-revision-persistence" }
flowy-error = { path = "../flowy-error", features = ["adaptor_sync", "adaptor_ot", "adaptor_serde", "adaptor_database", "adaptor_dispatch"] }
flowy-notification = { path = "../flowy-notification" }

diesel = {version = "1.4.8", features = ["sqlite"]}
diesel_derives = {version = "1.4.1", features = ["sqlite"]}
protobuf = {version = "2.28.0"}
tokio = { version = "1.26", features = ["sync"]}
tracing = { version = "0.1", features = ["log"] }

bytes = { version = "1.4" }
md5 = "0.7.0"
strum = "0.21"
strum_macros = "0.21"
dashmap = "5"
url = "2.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = {version = "1.0"}
chrono = "0.4.23"
futures-util = "0.3.26"
async-stream = "0.3.4"
futures = "0.3.26"

[dev-dependencies]
flowy-test = { path = "../flowy-test" }
flowy-document = { path = "../flowy-document", features = ["flowy_unit_test"]}
derive_more = {version = "0.99", features = ["display"]}
tracing-subscriber = "0.2.25"
unicode-segmentation = "1.10"

color-eyre = { version = "0.5", default-features = false }
criterion = "0.3"
rand = "0.8.5"

[build-dependencies]
flowy-codegen = { path = "../flowy-codegen"}


[features]
default = ["rev-sqlite"]
sync = []
cloud_sync = ["sync"]
rev-sqlite = ["flowy-sqlite"]
flowy_unit_test = ["lib-ot/flowy_unit_test", "flowy-revision/flowy_unit_test"]
dart = ["flowy-codegen/dart", "flowy-notification/dart"]
ts = ["flowy-codegen/ts", "flowy-notification/ts"]
