content: [workspace]
  resolver = "2"
  members = [
    "examples/typegraphs/metagen/rs",
    "src/meta-cli",
    "src/metagen",
    "src/metagen-client-rs",
    # "src/metagen/src/client_rs/static",
    "src/metagen/src/fdk_rs/static",
    "src/mt_deno",
    "src/substantial",
    "src/typegate/engine",
    "src/typegate/standalone",
    "src/typegate_api",
    "src/typegraph/core",
    "src/typegraph/graph",
    "src/typegraph/schema",
    "src/utils/archive",
    "src/utils/grpc",
    "src/xtask",
    "tests/metagen/typegraphs/identities/rs",
    "tests/metagen/typegraphs/sample/rs",
    "tests/metagen/typegraphs/sample/rs_upload",
    "tests/runtimes/wasm_reflected/rust",
    "tests/runtimes/wasm_wire/rust",
  ]
  
  exclude = [
    "src/pyrt_wit_wire",
  ]
  
  [workspace.package]
  version = "0.5.1-rc.6"
  edition = "2021"
  
  [workspace.dependencies]
  # internal crates
  mt_deno = { path = "src/mt_deno/" }
  tg_schema = { path = "src/typegraph/schema" }
  typegraph_core = { path = "src/typegraph/core" }
  substantial = { path = "src/substantial/" }
  metagen = { path = "src/metagen/" }
  metagen-client = { path = "src/metagen-client-rs", default-features = false }
  typegate_engine = { path = "src/typegate/engine" }
  typegate_api = { path = "src/typegate_api" }
  grpc_utils = { path = "src/utils/grpc" }
  archive_utils = { path = "src/utils/archive" }
  typegraph = { path = "src/typegraph/graph" }
  
  # cli
  clap = "=4.5.30"
  clap_complete = "=4.5.45"
  clap-verbosity-flag = "2.2.2"
  colored = "3"
  dialoguer = "0.11.0"
  self_update = "0.41.0"
  tabled = "0.15.0"
  lade-sdk = { git = "https://github.com/zifeo/lade", branch = "main" }
  git2 = { version = "0.19.0", default-features = false }
  
  # http
  reqwest = "0.12"
  url = "2.5"
  
  # build
  shadow-rs = "0.35.1"
  
  # encoding
  serde = { version = "1.0.210", features = ["derive"] }
  serde_json = "1.0.128"
  serde_yaml = "0.9.34"  # FIXME: deprecated, be on the lookout for alternatives
  serde_with = "3.11.0"
  flate2 = "1.0.34"
  tar = "0.4"
  base64 = "0.22.1"
  zstd = "0.13"
  convert_case = "0.6.0"
  strip-ansi-escapes = "0.2.0"
  heck = "0.5.0"
  sha2 = "0.10.8"
  seahash = "4.1.0"
  
  # patterns
  anyhow = "1.0.89"                                    # FIXME: replace anyhow with eyre
  color-eyre = "0.6.3"
  eyre = "0.6.12"                                      # NOTE: keep in sync with verison used by color-eyre
  thiserror = "1.0.64"
  indoc = "2.0.5"
  unindent = "0.2.3"
  itertools = "0.13.0"
  lazy_static = "1.5.0"                                # FIXME: replace with Lazy Cell
  crossbeam-channel = "0.5.13"
  enum_dispatch = "0.3.13"
  tap = "1.0.1"
  derive_more = { version = "1", features = ["from", "debug"] }
  cached = "0.53.1"                                    # FIXME: replace usage with a Lazy Cell + dashmap
  garde = "0.20"
  paste = "1.0.15"
  
  # os
  ctrlc = "3.4.5"
  signal-hook = "0.3.17"
  rand = "0.8.5"
  # FIXME: go back to published crate when deno move to 1.37
  process-wrap = { git = "https://github.com/metatypedev/process-wrap", branch = "fix/decrement-tokio-version" }
  nix = "0.29.0"
  
  # fs
  tempfile = "3.13.0"
  num_cpus = "1.16.0"
  normpath = "1.3.0"
  directories = "5.0.1"
  include_dir = "0.7.4"
  grep = "0.3.2"
  filetime = "0.2.25"
  notify-debouncer-mini = { version = "0.4.1", default-features = false }
  ignore = "0.4.20"
  glob = "0.3.1"
  globset = "0.4.15"
  pathdiff = "0.2.1"
  textwrap = "0.16.1"
  project-root = "0.2.2"
  
  # data structures
  regex = "1.11.0"
  once_cell = "1.20.2"
  indexmap = { version = "2.6.0", features = ["serde"] }
  semver = "1.0.23"
  dashmap = "6.1.0"
  connection-string = "0.2.0"
  chrono = { version = "0.4.38", features = ["serde"] }
  tera = { version = "1.20", default-features = false }
  ordered-float = "4.3.0"
  graphql-parser = "0.4.0"
  uuid = "1.10.0"
  rustpython-parser = "0.4.0"
  
  # wasm
  wasmtime = "25.0.2"
  wasmtime-wasi = "25.0.2"
  wit-bindgen = "0.34"
  
  # deno
  # deno = { path =  "../deno/cli" }
  deno = { git = "https://github.com/metatypedev/deno", branch = "v2.2.4-embeddable" }
  deno_core = "=0.340.0"
  deno_error = "=0.5.6"
  
  # logging
  env_logger = "=0.11.0"
  log = "0.4.22"         # FIXME: replace with tracing
  tracing = "0.1"
  # tracing core helper
  tracing-subscriber = { version = "0.3.19", features = [
    "env-filter",
    "parking_lot",
    "tracing-log",
  ] }
  # backtrace for async frames
  tracing-error = "0.2"
  # `unwrap` that also logs
  tracing-unwrap = { version = "1.0.1", features = ["log-location"] }
  
  # async
  futures = "=0.3.30"                                   # pinned due to bug with .31 with zeromq (deno)
  futures-concurrency = "7.6"
  futures-lite = "2.3"
  tokio = { version = "1", features = ["parking_lot"] }
  async-trait = "0.1.83"
  actix = "0.13.5"
  
  # temporal
  temporal-client = { git = "https://github.com/temporalio/sdk-core", rev = "7f9755b" }
  temporal-sdk-core-protos = { git = "https://github.com/temporalio/sdk-core", rev = "7f9755b" }
  
  # prisma
  query-core = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  query-connector = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  request-handlers = { git = "https://github.com/metatypedev/prisma-engines", features = [
    "all",
  ], branch = "fix/version-compat" }
  datamodel-renderer = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  user-facing-errors = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  query-engine-metrics = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  schema-core = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  psl = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  schema-connector = { git = "https://github.com/metatypedev/prisma-engines", branch = "fix/version-compat" }
  
  # query-core = { path = "../prisma-engines/query-engine/core" }
  # query-connector = { path = "../prisma-engines/query-engine/connectors/query-connector" }
  # request-handlers = { path = "../prisma-engines/query-engine/request-handlers", features = ["all"] }
  # ## prisma-models = { git = "https://github.com/prisma/prisma-engines", tag = "5.20.0" }
  # datamodel-renderer = { path = "../prisma-engines/schema-engine/datamodel-renderer" }
  # user-facing-errors = { path = "../prisma-engines/libs/user-facing-errors" }
  # query-engine-metrics = { path = "../prisma-engines/query-engine/metrics" }
  # schema-core = { path = "../prisma-engines/schema-engine/core" }
  # psl = { path = "../prisma-engines/psl/psl" }
  # schema-connector = { path = "../prisma-engines/schema-engine/connectors/schema-connector" }
  
  # grpc
  tonic = "0.12.3"
  bytes = "1.7.2"
  protobuf = "3.6.0"
  protobuf-json-mapping = "3.6.0"
  proto-parser = { git = "https://github.com/metatypedev/proto-parser", branch = "main" }
  
  # test
  assert_cmd = "2.0.16"
  pretty_assertions = "1.4.1"
  insta = "1.40.0"
  ptree = "0.5.0"
  