content: [package]
  name = "tools"
  version = "0.1.0"
  authors = ["Bill McCloskey <billm@mozilla.com>"]
  edition = "2018"
  
  [build-dependencies]
  tonic-build = "0.7.1"
  
  [dependencies]
  cssparser = "0.29"
  itertools = "0.10"
  # Note that the "rc" feature as documented at https://serde.rs/feature-flags.html
  # does not make any effort to do interning
  serde = { version = "1.0.196", features = ["derive", "rc", "std"] }
  serde_json = { version = "1.0.113", features = ["preserve_order"] }
  serde_repr = "0.1.18"
  
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
  async-stream = "0.3.2"
  async-trait = "0.1.50"
  axum = "0.6.17"
  axum-macros = "0.3.7"
  bitflags = { version = "2.4.2", features = ["serde"] }
  chrono = "0.2"
  clap = { version = "4.0", features = ["cargo", "derive", "env"] }
  dot-generator = "0.2.0"
  dot-structures = "0.1.0"
  env_logger = "0.7.1"
  fantoccini = "0.19.3"
  flate2 = { version = "1", features = ["tokio"] }
  futures-core = "0.3.17"
  getopts = "0.2.19"
  graphviz-rust = "0.2.0"
  git2 = "0.16.1"
  globset = "0.4.8"
  hyper = "0.10"
  include_dir = "0.7.2"
  insta = { version = "1.39.0", features = ["json"] }
  ipdl_parser = { path = "./ipdl_parser" }
  json-structural-diff = "0.1.0"
  lazy_static = "1.1"
  lexical-sort = "0.3"
  linkify = "0.2.0"
  liquid = "0.26.0"
  liquid-core = "0.26.0"
  log = "0.4.0"
  lol_html = "0.3.1"
  memmap = { package = "memmap2", version = "0.5.3" }
  num_cpus = "1"
  petgraph = "0.6.0"
  prost = "0.10.1"
  protobuf = "3.7.1"
  query-parser = "0.2.0"
  regex = "1"
  reqwest = "0.11.3"
  rls-analysis = "0.18.1"
  rls-data = "0.19.1"
  scip = "0.5.2"
  # NOTE: serde_json dependency is also defined above, without "std" feature.
  #       The "std" feature should be enabled only for non-wasm case.
  serde_json = { version = "1.0.113", features = ["preserve_order", "std"] }
  shell-words = "1.0.0"
  termcolor = "1.4.1"
  tokio = { version = "1.6.0", features = ["rt-multi-thread", "net", "macros", "fs", "io-util", "signal"] }
  tokio-stream = "0.1.8"
  tree-sitter = "0.23.0"
  # We previously used tree-sitter-mozcpp because it understands our XPCOM
  # macrology and doesn't freak out, but since it is only used for our WIP
  # hyperblame implementation and lags behind on updates, we are switching to
  # tree-sitter-cpp for now.
  tree-sitter-cpp = "0.23.0"
  tree-sitter-python = "0.23.2"
  tree-sitter-rust = "0.23.0"
  tree-sitter-typescript = "0.23.0"
  tree-sitter-java = "0.23.2"
  tree-sitter-kotlin-ng = "1.0.1"
  toml = "0.7.3"
  tonic = "0.7.1"
  tracing = "0.1.37"
  # We explicitly do not enable the "uuid" feature because by default it will be
  # serialized as a u128 in serde which will error out when attempting to convert
  # to a Value or via #flatten, which causes a problem.
  tracing-forest = { version = "0.1.5", features = ["smallvec", "tokio", "uuid"] }
  tracing-subscriber = { version = "0.3.16", features = ["std", "env-filter", "fmt", "local-time", "registry", "json"] }
  url = "2.2.2"
  urlencoding = "2.1.2"
  ustr = { version = "1.0", features = ["serde"] }
  uuid = { version = "1.2.1", features = ["std", "v4"] }
  walkdir = "2.3.2"
  
  [patch.crates-io]
  # Our very old version of hyper depends on traitobject but rustc does not like
  # a formulation it uses.  We are able to use the patch mechanism documented at
  # https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html to
  # replace the version hyper sees.  Honestly we would be fine with just using the
  # crates.io version of https://github.com/philip-peterson/destructure_traitobject
  # but my immediate attempts to alias that did not work out.
  #
  # We use revision
  # https://github.com/philip-peterson/destructure_traitobject/commit/d49b0af9087b3b7848d19d5baae43948ebc7fb9d
  # because that's the last revision before Cargo.toml updated the package's name
  # which causes problems.
  traitobject = { git = "https://github.com/philip-peterson/destructure_traitobject", rev = "d49b0af9087b3b7848d19d5baae43948ebc7fb9d" }
  # If we want to debug what tracing-forest is seeing, I instrumented this with
  # `println!` at some important spots.
  #tracing-forest = { git = "https://github.com/asutherland/tracing-forest.git", rev = "0fef62de683f52f7888ad83891203ac4a645bf8d" }
  
  # Build release mode with line number info for easier debugging when
  # we hit panics in production
  [profile.release]
  debug = 1
  incremental = true
  