diff --git a/Cargo.lock b/Cargo.lock index db5b0bfe41..2be3830438 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -416,6 +416,25 @@ dependencies = [ "mime", ] +[[package]] +name = "axum-extra" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75330529f6b27544cedc6089108602a056d016df6aa4f2cb24408d840392ef2d" +dependencies = [ + "axum", + "bytes", + "http", + "mime", + "pin-project-lite 0.2.9", + "serde", + "serde_json", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.64" @@ -593,9 +612,9 @@ checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" [[package]] name = "bytes" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" [[package]] name = "cache-padded" @@ -841,6 +860,7 @@ dependencies = [ "async-trait", "async-tungstenite", "axum", + "axum-extra", "base64 0.13.0", "clap 3.1.12", "client", @@ -4237,12 +4257,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" dependencies = [ "indexmap", - "itoa 0.4.7", + "itoa 1.0.1", "ryu", "serde", ] diff --git a/crates/auto_update/Cargo.toml b/crates/auto_update/Cargo.toml index 7a00b1d0b1..8809eff683 100644 --- a/crates/auto_update/Cargo.toml +++ b/crates/auto_update/Cargo.toml @@ -18,6 +18,6 @@ isahc = "1.7" lazy_static = "1.4" log = "0.4" serde = { version = "1", features = ["derive"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } smol = "1.2.5" tempdir = "0.3.7" diff --git a/crates/collab/Cargo.toml b/crates/collab/Cargo.toml index 5ebde4a37d..9b40b318c4 100644 --- a/crates/collab/Cargo.toml +++ b/crates/collab/Cargo.toml @@ -21,6 +21,7 @@ anyhow = "1.0.40" async-trait = "0.1.50" async-tungstenite = "0.16" axum = { version = "0.5", features = ["json", "headers", "ws"] } +axum-extra = { version = "0.3", features = ["erased-json"] } base64 = "0.13" clap = { version = "3.1", features = ["derive"], optional = true } envy = "0.4.2" @@ -70,7 +71,7 @@ ctor = "0.1" env_logger = "0.8" util = { path = "../util" } lazy_static = "1.4" -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } [features] seed-support = ["clap", "lipsum", "reqwest"] diff --git a/crates/collab/src/api.rs b/crates/collab/src/api.rs index 2b22ca1c16..a3bc9f8dee 100644 --- a/crates/collab/src/api.rs +++ b/crates/collab/src/api.rs @@ -14,8 +14,8 @@ use axum::{ routing::{get, post, put}, Extension, Json, Router, }; +use axum_extra::response::ErasedJson; use serde::{Deserialize, Serialize}; -use serde_json::Value; use std::sync::Arc; use tower::ServiceBuilder; use tracing::instrument; @@ -179,10 +179,10 @@ async fn trace_panic(panic: Json) -> Result<()> { Ok(()) } -async fn get_rpc_server_snapshot<'a>( +async fn get_rpc_server_snapshot( Extension(rpc_server): Extension>, -) -> Result> { - Ok(Json(serde_json::to_value(rpc_server.snapshot().await)?)) +) -> Result { + Ok(ErasedJson::pretty(rpc_server.snapshot().await)) } #[derive(Deserialize)] diff --git a/crates/command_palette/Cargo.toml b/crates/command_palette/Cargo.toml index 2a4d27570f..52fd8bbdc7 100644 --- a/crates/command_palette/Cargo.toml +++ b/crates/command_palette/Cargo.toml @@ -22,7 +22,7 @@ workspace = { path = "../workspace" } gpui = { path = "../gpui", features = ["test-support"] } editor = { path = "../editor", features = ["test-support"] } project = { path = "../project", features = ["test-support"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } workspace = { path = "../workspace", features = ["test-support"] } ctor = "0.1" env_logger = "0.8" diff --git a/crates/file_finder/Cargo.toml b/crates/file_finder/Cargo.toml index cb85183ef0..ca3eb6b429 100644 --- a/crates/file_finder/Cargo.toml +++ b/crates/file_finder/Cargo.toml @@ -21,7 +21,7 @@ postage = { version = "0.4.1", features = ["futures-traits"] } [dev-dependencies] gpui = { path = "../gpui", features = ["test-support"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } workspace = { path = "../workspace", features = ["test-support"] } ctor = "0.1" env_logger = "0.8" diff --git a/crates/gpui/Cargo.toml b/crates/gpui/Cargo.toml index c426ad869a..18d7766453 100644 --- a/crates/gpui/Cargo.toml +++ b/crates/gpui/Cargo.toml @@ -37,7 +37,7 @@ rand = "0.8.3" resvg = "0.14" seahash = "4.1" serde = { version = "1.0.125", features = ["derive"] } -serde_json = "1.0.64" +serde_json = "1.0" smallvec = { version = "1.6", features = ["union"] } smol = "1.2" time = { version = "0.3" } diff --git a/crates/picker/Cargo.toml b/crates/picker/Cargo.toml index 86e657ecad..4528f00687 100644 --- a/crates/picker/Cargo.toml +++ b/crates/picker/Cargo.toml @@ -17,7 +17,7 @@ workspace = { path = "../workspace" } [dev-dependencies] gpui = { path = "../gpui", features = ["test-support"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } workspace = { path = "../workspace", features = ["test-support"] } ctor = "0.1" env_logger = "0.8" diff --git a/crates/project/Cargo.toml b/crates/project/Cargo.toml index 7a3c7c5367..d57bb8d671 100644 --- a/crates/project/Cargo.toml +++ b/crates/project/Cargo.toml @@ -41,7 +41,7 @@ postage = { version = "0.4.1", features = ["futures-traits"] } rand = "0.8.3" regex = "1.5" serde = { version = "1", features = ["derive"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } sha2 = "0.10" similar = "1.3" smol = "1.2.5" diff --git a/crates/project_panel/Cargo.toml b/crates/project_panel/Cargo.toml index e431db45dd..257bac21d9 100644 --- a/crates/project_panel/Cargo.toml +++ b/crates/project_panel/Cargo.toml @@ -23,4 +23,4 @@ unicase = "2.6" editor = { path = "../editor", features = ["test-support"] } gpui = { path = "../gpui", features = ["test-support"] } workspace = { path = "../workspace", features = ["test-support"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } diff --git a/crates/search/Cargo.toml b/crates/search/Cargo.toml index 40cf85d30a..56c4fff651 100644 --- a/crates/search/Cargo.toml +++ b/crates/search/Cargo.toml @@ -26,6 +26,6 @@ smallvec = { version = "1.6", features = ["union"] } [dev-dependencies] editor = { path = "../editor", features = ["test-support"] } gpui = { path = "../gpui", features = ["test-support"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } workspace = { path = "../workspace", features = ["test-support"] } unindent = "0.1" diff --git a/crates/settings/Cargo.toml b/crates/settings/Cargo.toml index c26a469b9f..cd361fc90f 100644 --- a/crates/settings/Cargo.toml +++ b/crates/settings/Cargo.toml @@ -20,6 +20,6 @@ anyhow = "1.0.38" json_comments = "0.2" schemars = "0.8" serde = { version = "1", features = ["derive", "rc"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } serde_path_to_error = "0.1.4" toml = "0.5" diff --git a/crates/theme/Cargo.toml b/crates/theme/Cargo.toml index bf319e4749..af4c15b8a0 100644 --- a/crates/theme/Cargo.toml +++ b/crates/theme/Cargo.toml @@ -13,6 +13,6 @@ anyhow = "1.0.38" indexmap = "1.6.2" parking_lot = "0.11.1" serde = { version = "1", features = ["derive", "rc"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } serde_path_to_error = "0.1.4" toml = "0.5" diff --git a/crates/util/Cargo.toml b/crates/util/Cargo.toml index a2475f2cdc..87ec77d2df 100644 --- a/crates/util/Cargo.toml +++ b/crates/util/Cargo.toml @@ -15,6 +15,6 @@ futures = "0.3" log = { version = "0.4.16", features = ["kv_unstable_serde"] } rand = { version = "0.8", optional = true } tempdir = { version = "0.3.7", optional = true } -serde_json = { version = "1.0.64", features = [ +serde_json = { version = "1.0", features = [ "preserve_order", ], optional = true } diff --git a/crates/workspace/Cargo.toml b/crates/workspace/Cargo.toml index 4260174644..106a8c32a7 100644 --- a/crates/workspace/Cargo.toml +++ b/crates/workspace/Cargo.toml @@ -26,7 +26,7 @@ log = { version = "0.4.16", features = ["kv_unstable_serde"] } parking_lot = "0.11.1" postage = { version = "0.4.1", features = ["futures-traits"] } serde = { version = "1", features = ["derive", "rc"] } -serde_json = { version = "1", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } smallvec = { version = "1.6", features = ["union"] } [dev-dependencies] diff --git a/crates/zed/Cargo.toml b/crates/zed/Cargo.toml index c934b41e0d..525569b869 100644 --- a/crates/zed/Cargo.toml +++ b/crates/zed/Cargo.toml @@ -76,7 +76,7 @@ regex = "1.5" rsa = "0.4" rust-embed = { version = "6.3", features = ["include-exclude"] } serde = { version = "1", features = ["derive"] } -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } serde_path_to_error = "0.1.4" simplelog = "0.9" smallvec = { version = "1.6", features = ["union"] } @@ -107,7 +107,7 @@ settings = { path = "../settings", features = ["test-support"] } util = { path = "../util", features = ["test-support"] } workspace = { path = "../workspace", features = ["test-support"] } env_logger = "0.8" -serde_json = { version = "1.0.64", features = ["preserve_order"] } +serde_json = { version = "1.0", features = ["preserve_order"] } unindent = "0.1.7" [package.metadata.bundle]