[workspace]
members = [
  "lib-dispatch",
  "lib-log",
  "flowy-core",
  "dart-ffi",
  "flowy-user",
  "flowy-user-pub",
  "event-integration",
  "flowy-sqlite",
  "flowy-folder",
  "flowy-folder-pub",
  "flowy-notification",
  "flowy-document",
  "flowy-document-pub",
  "flowy-error",
  "flowy-database2",
  "flowy-database-pub",
  "flowy-server",
  "flowy-server-pub",
  "flowy-config",
  "flowy-encrypt",
  "flowy-storage",
  "collab-integrate",
  "flowy-ai",
  "flowy-date",
  "lib-infra",
  "build-tool/flowy-ast",
  "build-tool/flowy-codegen",
  "build-tool/flowy-derive",
]
resolver = "2"

[workspace.dependencies]
lib-dispatch = { workspace = true, path = "lib-dispatch" }
lib-log = { workspace = true, path = "lib-log" }
lib-infra = { workspace = true, path = "lib-infra" }
flowy-ast = { workspace = true, path = "build-tool/flowy-ast" }
flowy-codegen = { workspace = true, path = "build-tool/flowy-codegen" }
flowy-derive = { workspace = true, path = "build-tool/flowy-derive" }
flowy-core = { workspace = true, path = "flowy-core" }
dart-ffi = { workspace = true, path = "dart-ffi" }
flowy-user = { workspace = true, path = "flowy-user" }
flowy-user-pub = { workspace = true, path = "flowy-user-pub" }
flowy-sqlite = { workspace = true, path = "flowy-sqlite" }
flowy-folder = { workspace = true, path = "flowy-folder" }
flowy-folder-pub = { workspace = true, path = "flowy-folder-pub" }
flowy-notification = { workspace = true, path = "flowy-notification" }
flowy-document = { workspace = true, path = "flowy-document" }
flowy-document-pub = { workspace = true, path = "flowy-document-pub" }
flowy-error = { workspace = true, path = "flowy-error" }
flowy-database2 = { workspace = true, path = "flowy-database2" }
flowy-database-pub = { workspace = true, path = "flowy-database-pub" }
flowy-server = { workspace = true, path = "flowy-server" }
flowy-server-pub = { workspace = true, path = "flowy-server-pub" }
flowy-config = { workspace = true, path = "flowy-config" }
flowy-encrypt = { workspace = true, path = "flowy-encrypt" }
flowy-storage = { workspace = true, path = "flowy-storage" }
collab-integrate = { workspace = true, path = "collab-integrate" }
flowy-ai = { workspace = true, path = "flowy-ai" }
flowy-date = { workspace = true, path = "flowy-date" }
anyhow = "1.0"
tracing = "0.1.40"
bytes = "1.5.0"
serde_json = "1.0.108"
serde = "1.0.194"
protobuf = { version = "2.28.0" }
diesel = { version = "2.1.0", features = ["sqlite", "chrono", "r2d2"] }
uuid = { version = "1.5.0", features = ["serde", "v4", "v5"] }
serde_repr = "0.1"
parking_lot = "0.12"
futures = "0.3.29"
tokio = "1.34.0"
tokio-stream = "0.1.14"
async-trait = "0.1.74"
chrono = { version = "0.4.31", default-features = false, features = ["clock"] }
lru = "0.12.0"

[profile.dev]
opt-level = 0
lto = false
codegen-units = 16

[profile.release]
lto = true
opt-level = 3
codegen-units = 1

[profile.profiling]
inherits = "release"
debug = true
codegen-units = 16
lto = false

## debuginfo — it makes ./target much bigger, which again harms caching. Depending on your preferred workflow,
## you might consider disabling debuginfo unconditionally, this brings some benefits for local builds as well.
#strip = "debuginfo"
## For from-scratch builds, incremental adds an extra dependency-tracking overhead. It also significantly increases
## the amount of IO and the size of ./target, which make caching less effective.
incremental = false

[patch.crates-io]
# Please using the following command to update the revision id
# Current directory: frontend
# Run the script:
# scripts/tool/update_client_api_rev.sh  new_rev_id
# ⚠️⚠️⚠️️
client-api = { git = "https://github.com/AppFlowy-IO/AppFlowy-Cloud", rev = "40fc18a49997bb445c312f725b6850850b5f4db3" }
# Please use the following script to update collab.
# Working directory: frontend
#
# To update the commit ID, run:
# scripts/tool/update_collab_rev.sh new_rev_id
#
# To switch to the local path, run:
# scripts/tool/update_collab_source.sh
# ⚠️⚠️⚠️️
collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }
collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }
collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }
collab-database = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }
collab-plugins = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }
collab-user = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }
collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "8f6dba45acbd42b4611ed94add13872706cda6e7" }