diff --git a/Cargo.lock b/Cargo.lock
index 28548ab84c..eeac8bdfc7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -284,6 +284,17 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "async-recursion"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.87",
+]
+
[[package]]
name = "async-stream"
version = "0.3.5"
@@ -806,6 +817,7 @@ dependencies = [
"file_test_runner",
"flaky_test",
"hickory-client",
+ "hickory-proto",
"hickory-server",
"http 1.1.0",
"http-body-util",
@@ -1293,7 +1305,7 @@ dependencies = [
"test_server",
"text-size",
"text_lines",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tokio-util",
"tracing",
@@ -1380,7 +1392,7 @@ version = "0.174.0"
dependencies = [
"async-trait",
"deno_core",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"uuid",
]
@@ -1394,7 +1406,7 @@ dependencies = [
"rusqlite",
"serde",
"sha2",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
]
@@ -1426,7 +1438,7 @@ dependencies = [
"deno_webgpu",
"image",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
]
[[package]]
@@ -1510,7 +1522,7 @@ dependencies = [
"chrono",
"deno_core",
"saffron",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
]
@@ -1545,7 +1557,7 @@ dependencies = [
"sha2",
"signature",
"spki",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"uuid",
"x25519-dalek",
@@ -1627,7 +1639,7 @@ dependencies = [
"rustls-webpki",
"serde",
"serde_json",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tokio-rustls",
"tokio-socks",
@@ -1652,7 +1664,7 @@ dependencies = [
"serde",
"serde-value",
"serde_json",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"winapi",
]
@@ -1675,9 +1687,9 @@ dependencies = [
"rand",
"rayon",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"winapi",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -1744,7 +1756,7 @@ dependencies = [
"scopeguard",
"serde",
"smallvec",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tokio-util",
]
@@ -1767,7 +1779,7 @@ dependencies = [
"tokio",
"uuid",
"winapi",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -1798,7 +1810,7 @@ dependencies = [
"rand",
"rusqlite",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"url",
]
@@ -1854,8 +1866,8 @@ dependencies = [
"libuv-sys-lite",
"log",
"napi_sym",
- "thiserror 1.0.64",
- "windows-sys 0.52.0",
+ "thiserror 2.0.3",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -1884,7 +1896,7 @@ dependencies = [
"rustls-tokio-stream",
"serde",
"socket2",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
]
@@ -1929,7 +1941,7 @@ dependencies = [
"http-body-util",
"hyper 1.4.1",
"hyper-util",
- "idna 1.0.3",
+ "idna",
"indexmap 2.3.0",
"ipnetwork",
"k256",
@@ -1968,13 +1980,13 @@ dependencies = [
"sm3",
"spki",
"stable_deref_trait",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tokio-eld",
"url",
"webpki-root-certs",
"winapi",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
"x25519-dalek",
"x509-parser",
"yoke",
@@ -2024,7 +2036,7 @@ dependencies = [
"serde_json",
"tar",
"tempfile",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"url",
]
@@ -2084,7 +2096,7 @@ dependencies = [
"once_cell",
"percent-encoding",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"which 4.4.2",
"winapi",
]
@@ -2104,7 +2116,7 @@ dependencies = [
"deno_semver",
"node_resolver",
"test_server",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"url",
]
@@ -2167,14 +2179,14 @@ dependencies = [
"signal-hook-registry",
"tempfile",
"test_server",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tokio-metrics",
"twox-hash",
"uuid",
"which 4.4.2",
"winapi",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2193,9 +2205,9 @@ dependencies = [
[[package]]
name = "deno_task_shell"
-version = "0.20.1"
+version = "0.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01e09966ce29f8d26b652a43355397e1df43b85759e7824196bf0ceaeaa9a2f4"
+checksum = "fa3763bc068e17b6d488fb73ecda463c13ef792b0a5288b6018bc2119becd635"
dependencies = [
"anyhow",
"futures",
@@ -2206,6 +2218,7 @@ dependencies = [
"path-dedot",
"thiserror 1.0.64",
"tokio",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -2260,7 +2273,7 @@ dependencies = [
"rustls-tokio-stream",
"rustls-webpki",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"webpki-roots",
]
@@ -2307,7 +2320,7 @@ dependencies = [
"deno_console",
"deno_core",
"deno_webidl",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"urlpattern",
]
@@ -2328,7 +2341,7 @@ dependencies = [
"flate2",
"futures",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"uuid",
]
@@ -2340,7 +2353,7 @@ dependencies = [
"deno_core",
"raw-window-handle",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"wgpu-core",
"wgpu-types",
@@ -2372,7 +2385,7 @@ dependencies = [
"once_cell",
"rustls-tokio-stream",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
]
@@ -2383,7 +2396,7 @@ dependencies = [
"deno_core",
"deno_web",
"rusqlite",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
]
[[package]]
@@ -3697,9 +3710,9 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
[[package]]
name = "hickory-client"
-version = "0.24.1"
+version = "0.25.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab9683b08d8f8957a857b0236455d80e1886eaa8c6178af556aa7871fb61b55"
+checksum = "83536dab9a159b2b5cf2c20c47ecf188cee35316f96be028e63e8e1340d2724d"
dependencies = [
"cfg-if",
"data-encoding",
@@ -3709,17 +3722,18 @@ dependencies = [
"once_cell",
"radix_trie",
"rand",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tracing",
]
[[package]]
name = "hickory-proto"
-version = "0.24.1"
+version = "0.25.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512"
+checksum = "d063c0692ee669aa6d261988aa19ca5510f1cc40e4f211024f50c888499a35d7"
dependencies = [
+ "async-recursion",
"async-trait",
"cfg-if",
"data-encoding",
@@ -3727,12 +3741,12 @@ dependencies = [
"futures-channel",
"futures-io",
"futures-util",
- "idna 0.4.0",
+ "idna",
"ipnet",
"once_cell",
"rand",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tinyvec",
"tokio",
"tracing",
@@ -3741,40 +3755,43 @@ dependencies = [
[[package]]
name = "hickory-resolver"
-version = "0.24.1"
+version = "0.25.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
+checksum = "42bc352e4412fb657e795f79b4efcf2bd60b59ee5ca0187f3554194cd1107a27"
dependencies = [
"cfg-if",
"futures-util",
"hickory-proto",
"ipconfig",
- "lru-cache",
+ "moka",
"once_cell",
"parking_lot",
"rand",
"resolv-conf",
"serde",
"smallvec",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"tracing",
]
[[package]]
name = "hickory-server"
-version = "0.24.1"
+version = "0.25.0-alpha.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be0e43c556b9b3fdb6c7c71a9a32153a2275d02419e3de809e520bfcfe40c37"
+checksum = "aa7154e905d5c8a79c15427881e479b2ba749c55412804f0dc87723a531e45bd"
dependencies = [
"async-trait",
"bytes",
"cfg-if",
+ "data-encoding",
"enum-as-inner",
"futures-util",
"hickory-proto",
+ "ipnet",
+ "prefix-trie",
"serde",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"time",
"tokio",
"tokio-util",
@@ -4136,16 +4153,6 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-[[package]]
-name = "idna"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
[[package]]
name = "idna"
version = "1.0.3"
@@ -4286,6 +4293,9 @@ name = "ipnet"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+dependencies = [
+ "serde",
+]
[[package]]
name = "ipnetwork"
@@ -4558,7 +4568,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
dependencies = [
"cfg-if",
- "windows-targets 0.52.4",
+ "windows-targets 0.48.5",
]
[[package]]
@@ -4624,12 +4634,6 @@ dependencies = [
"vcpkg",
]
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
[[package]]
name = "linux-raw-sys"
version = "0.4.13"
@@ -4667,15 +4671,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "lru-cache"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
-dependencies = [
- "linked-hash-map",
-]
-
[[package]]
name = "lsp-types"
version = "0.97.0"
@@ -4840,6 +4835,26 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "moka"
+version = "0.12.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e0d88686dc561d743b40de8269b26eaf0dc58781bde087b0984646602021d08"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "once_cell",
+ "parking_lot",
+ "quanta",
+ "rustc_version 0.4.0",
+ "smallvec",
+ "tagptr",
+ "thiserror 1.0.64",
+ "triomphe",
+ "uuid",
+]
+
[[package]]
name = "monch"
version = "0.5.0"
@@ -4960,7 +4975,7 @@ dependencies = [
"path-clean",
"regex",
"serde_json",
- "thiserror 1.0.64",
+ "thiserror 2.0.3",
"tokio",
"url",
]
@@ -5119,9 +5134,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "opaque-debug"
@@ -5616,6 +5631,16 @@ version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+[[package]]
+name = "prefix-trie"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4defc8f5ac7522968431b7592a34432215d80cceb1cf7e0c06287087bca4f046"
+dependencies = [
+ "ipnet",
+ "num-traits",
+]
+
[[package]]
name = "pretty_assertions"
version = "1.4.0"
@@ -5811,6 +5836,21 @@ dependencies = [
"unicase",
]
+[[package]]
+name = "quanta"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "once_cell",
+ "raw-cpuid",
+ "wasi",
+ "web-sys",
+ "winapi",
+]
+
[[package]]
name = "quick-error"
version = "1.2.3"
@@ -5975,6 +6015,15 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
+[[package]]
+name = "raw-cpuid"
+version = "11.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0"
+dependencies = [
+ "bitflags 2.6.0",
+]
+
[[package]]
name = "raw-window-handle"
version = "0.6.1"
@@ -7508,6 +7557,12 @@ dependencies = [
"syn 2.0.87",
]
+[[package]]
+name = "tagptr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417"
+
[[package]]
name = "tap"
version = "1.0.1"
@@ -8082,12 +8137,6 @@ dependencies = [
"version_check",
]
-[[package]]
-name = "unicode-bidi"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
-
[[package]]
name = "unicode-id"
version = "0.3.4"
@@ -8162,7 +8211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada"
dependencies = [
"form_urlencoded",
- "idna 1.0.3",
+ "idna",
"percent-encoding",
"serde",
]
@@ -8623,7 +8672,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
dependencies = [
"windows-core",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -8632,7 +8681,7 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -8650,7 +8699,16 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
]
[[package]]
@@ -8670,17 +8728,18 @@ dependencies = [
[[package]]
name = "windows-targets"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
]
[[package]]
@@ -8691,9 +8750,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
@@ -8703,9 +8762,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
@@ -8715,9 +8774,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
@@ -8727,9 +8792,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
@@ -8739,9 +8804,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
@@ -8751,9 +8816,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
@@ -8763,9 +8828,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winnow"
diff --git a/Cargo.toml b/Cargo.toml
index 23670beec3..5d60eb0d7e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -133,7 +133,7 @@ fs3 = "0.5.0"
futures = "0.3.21"
glob = "0.3.1"
h2 = "0.4.4"
-hickory-resolver = { version = "0.24", features = ["tokio-runtime", "serde-config"] }
+hickory-resolver = { version = "0.25.0-alpha.4", features = ["tokio-runtime", "serde"] }
http = "1.0"
http-body = "1.0"
http-body-util = "0.1.2"
@@ -194,7 +194,7 @@ spki = "0.7.2"
tar = "=0.4.40"
tempfile = "3.4.0"
termcolor = "1.1.3"
-thiserror = "1.0.61"
+thiserror = "2.0.3"
tokio = { version = "1.36.0", features = ["full"] }
tokio-metrics = { version = "0.3.0", features = ["rt"] }
tokio-rustls = { version = "0.26.0", default-features = false, features = ["ring", "tls12"] }
@@ -239,7 +239,7 @@ nix = "=0.27.1"
# windows deps
junction = "=0.2.0"
winapi = "=0.3.9"
-windows-sys = { version = "0.52.0", features = ["Win32_Foundation", "Win32_Media", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_WindowsProgramming", "Wdk", "Wdk_System", "Wdk_System_SystemInformation", "Win32_Security", "Win32_System_Pipes", "Wdk_Storage_FileSystem", "Win32_System_Registry", "Win32_System_Kernel"] }
+windows-sys = { version = "0.59.0", features = ["Win32_Foundation", "Win32_Media", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_WindowsProgramming", "Wdk", "Wdk_System", "Wdk_System_SystemInformation", "Win32_Security", "Win32_System_Pipes", "Wdk_Storage_FileSystem", "Win32_System_Registry", "Win32_System_Kernel", "Win32_System_Threading", "Win32_UI", "Win32_UI_Shell"] }
winres = "=0.1.12"
[profile.release]
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index 4a343ce747..d8e59b5e35 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -83,7 +83,7 @@ deno_path_util.workspace = true
deno_resolver.workspace = true
deno_runtime = { workspace = true, features = ["include_js_files_for_snapshotting"] }
deno_semver.workspace = true
-deno_task_shell = "=0.20.1"
+deno_task_shell = "=0.20.2"
deno_telemetry.workspace = true
deno_terminal.workspace = true
libsui = "0.5.0"
diff --git a/cli/args/flags.rs b/cli/args/flags.rs
index 5ea28bfec1..c08d81abb0 100644
--- a/cli/args/flags.rs
+++ b/cli/args/flags.rs
@@ -2664,10 +2664,10 @@ Display outdated dependencies:
deno outdated>
deno outdated --compatible>
-Update dependencies:
+Update dependencies to latest semver compatible versions:
deno outdated --update>
+Update dependencies to latest versions, ignoring semver requirements:
deno outdated --update --latest>
-
deno outdated --update>
Filters can be used to select which packages to act on. Filters can include wildcards (*) to match multiple packages.
deno outdated --update --latest \"@std/*\">
@@ -2703,7 +2703,6 @@ Specific version requirements to update to can be specified:
.help(
"Update to the latest version, regardless of semver constraints",
)
- .requires("update")
.conflicts_with("compatible"),
)
.arg(
@@ -11687,6 +11686,14 @@ Usage: deno repl [OPTIONS] [-- [ARGS]...]\n"
recursive: false,
},
),
+ (
+ svec!["--latest"],
+ OutdatedFlags {
+ filters: svec![],
+ kind: OutdatedKind::PrintOutdated { compatible: false },
+ recursive: false,
+ },
+ ),
];
for (input, expected) in cases {
let mut args = svec!["deno", "outdated"];
diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs
index f0adc60e3b..29f9c6ba3f 100644
--- a/cli/file_fetcher.rs
+++ b/cli/file_fetcher.rs
@@ -59,8 +59,7 @@ impl FileOrRedirect {
cache_entry: deno_cache_dir::CacheEntry,
) -> Result {
if let Some(redirect_to) = cache_entry.metadata.headers.get("location") {
- let redirect =
- deno_core::resolve_import(redirect_to, specifier.as_str())?;
+ let redirect = specifier.join(redirect_to)?;
Ok(FileOrRedirect::Redirect(redirect))
} else {
Ok(FileOrRedirect::File(File {
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 65ce330dfc..853708221f 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -353,7 +353,12 @@ impl<'a> TsResponseImportMapper<'a> {
let pkg_reqs = npm_resolver.resolve_pkg_reqs_from_pkg_id(&pkg_id);
// check if any pkg reqs match what is found in an import map
if !pkg_reqs.is_empty() {
- let sub_path = self.resolve_package_path(specifier);
+ let sub_path = npm_resolver
+ .resolve_pkg_folder_from_pkg_id(&pkg_id)
+ .ok()
+ .and_then(|pkg_folder| {
+ self.resolve_package_path(specifier, &pkg_folder)
+ });
if let Some(import_map) = self.maybe_import_map {
let pkg_reqs = pkg_reqs.iter().collect::>();
let mut matches = Vec::new();
@@ -368,8 +373,13 @@ impl<'a> TsResponseImportMapper<'a> {
if let Some(key_sub_path) =
sub_path.strip_prefix(value_sub_path)
{
- matches
- .push(format!("{}{}", entry.raw_key, key_sub_path));
+ // keys that don't end in a slash can't be mapped to a subpath
+ if entry.raw_key.ends_with('/')
+ || key_sub_path.is_empty()
+ {
+ matches
+ .push(format!("{}{}", entry.raw_key, key_sub_path));
+ }
}
}
}
@@ -413,10 +423,16 @@ impl<'a> TsResponseImportMapper<'a> {
fn resolve_package_path(
&self,
specifier: &ModuleSpecifier,
+ package_root_folder: &Path,
) -> Option {
let package_json = self
.resolver
- .get_closest_package_json(specifier)
+ .pkg_json_resolver(specifier)
+ // the specifier might have a closer package.json, but we
+ // want the root of the package's package.json
+ .get_closest_package_json_from_file_path(
+ &package_root_folder.join("package.json"),
+ )
.ok()
.flatten()?;
let root_folder = package_json.path.parent()?;
diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs
index 1b72953c1b..ac4d8c01e4 100644
--- a/cli/lsp/diagnostics.rs
+++ b/cli/lsp/diagnostics.rs
@@ -1262,7 +1262,7 @@ impl DenoDiagnostic {
Self::NoAttributeType => (lsp::DiagnosticSeverity::ERROR, "The module is a JSON module and not being imported with an import attribute. Consider adding `with { type: \"json\" }` to the import statement.".to_string(), None),
Self::NoCache(specifier) => (lsp::DiagnosticSeverity::ERROR, format!("Uncached or missing remote URL: {specifier}"), Some(json!({ "specifier": specifier }))),
Self::NotInstalledJsr(pkg_req, specifier) => (lsp::DiagnosticSeverity::ERROR, format!("JSR package \"{pkg_req}\" is not installed or doesn't exist."), Some(json!({ "specifier": specifier }))),
- Self::NotInstalledNpm(pkg_req, specifier) => (lsp::DiagnosticSeverity::ERROR, format!("NPM package \"{pkg_req}\" is not installed or doesn't exist."), Some(json!({ "specifier": specifier }))),
+ Self::NotInstalledNpm(pkg_req, specifier) => (lsp::DiagnosticSeverity::ERROR, format!("npm package \"{pkg_req}\" is not installed or doesn't exist."), Some(json!({ "specifier": specifier }))),
Self::NoLocal(specifier) => {
let maybe_sloppy_resolution = CliSloppyImportsResolver::new(
SloppyImportsCachedFs::new(Arc::new(deno_fs::RealFs))
diff --git a/cli/lsp/resolver.rs b/cli/lsp/resolver.rs
index c705511f30..363ad43700 100644
--- a/cli/lsp/resolver.rs
+++ b/cli/lsp/resolver.rs
@@ -20,14 +20,12 @@ use deno_resolver::DenoResolverOptions;
use deno_resolver::NodeAndNpmReqResolver;
use deno_runtime::deno_fs;
use deno_runtime::deno_node::NodeResolver;
-use deno_runtime::deno_node::PackageJson;
use deno_runtime::deno_node::PackageJsonResolver;
use deno_semver::jsr::JsrPackageReqReference;
use deno_semver::npm::NpmPackageReqReference;
use deno_semver::package::PackageNv;
use deno_semver::package::PackageReq;
use indexmap::IndexMap;
-use node_resolver::errors::ClosestPkgJsonError;
use node_resolver::InNpmPackageChecker;
use node_resolver::NodeResolutionKind;
use node_resolver::ResolutionMode;
@@ -380,6 +378,14 @@ impl LspResolver {
resolver.npm_resolver.as_ref().and_then(|r| r.as_managed())
}
+ pub fn pkg_json_resolver(
+ &self,
+ referrer: &ModuleSpecifier,
+ ) -> &Arc {
+ let resolver = self.get_scope_resolver(Some(referrer));
+ &resolver.pkg_json_resolver
+ }
+
pub fn graph_imports_by_referrer(
&self,
file_referrer: &ModuleSpecifier,
@@ -522,16 +528,6 @@ impl LspResolver {
.is_some()
}
- pub fn get_closest_package_json(
- &self,
- referrer: &ModuleSpecifier,
- ) -> Result