summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-01-10 00:20:52 +0100
committerGitHub <noreply@github.com>2024-01-09 23:20:52 +0000
commit69959aa01fab8ccc482cb3ee218af4e65d3fbc6e (patch)
tree1221798cf514662cd0e52b3feaa0d16b58aa6697
parent741afc4b94427588c628925fef464623d373430f (diff)
fix: update deno_lint and swc (#21718)
Co-authored-by: David Sherret <dsherret@gmail.com>
-rw-r--r--.dprint.json2
-rwxr-xr-x.github/workflows/ci.generate.ts2
-rw-r--r--.github/workflows/ci.yml1
-rw-r--r--Cargo.lock355
-rw-r--r--Cargo.toml2
-rw-r--r--cli/Cargo.toml20
-rw-r--r--cli/cache/module_info.rs11
-rw-r--r--cli/cache/parsed_source.rs30
-rw-r--r--cli/graph_util.rs130
-rw-r--r--cli/lsp/analysis.rs2
-rw-r--r--cli/module_loader.rs6
-rw-r--r--cli/tools/doc.rs31
-rw-r--r--cli/tools/lint.rs26
-rw-r--r--cli/tools/repl/session.rs2
14 files changed, 320 insertions, 300 deletions
diff --git a/.dprint.json b/.dprint.json
index d2c80e684..dca5dc634 100644
--- a/.dprint.json
+++ b/.dprint.json
@@ -56,7 +56,7 @@
"ext/websocket/autobahn/reports"
],
"plugins": [
- "https://plugins.dprint.dev/typescript-0.88.7.wasm",
+ "https://plugins.dprint.dev/typescript-0.88.8.wasm",
"https://plugins.dprint.dev/json-0.19.1.wasm",
"https://plugins.dprint.dev/markdown-0.16.3.wasm",
"https://plugins.dprint.dev/toml-0.5.4.wasm",
diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts
index 6d80b8ff8..b6b64a27e 100755
--- a/.github/workflows/ci.generate.ts
+++ b/.github/workflows/ci.generate.ts
@@ -426,6 +426,8 @@ const ci = {
env: {
CARGO_TERM_COLOR: "always",
RUST_BACKTRACE: "full",
+ // disable anyhow's library backtrace
+ RUST_LIB_BACKTRACE: 0,
},
steps: skipJobsIfPrAndMarkedSkip([
reconfigureWindowsStorage,
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 80d336b3b..7b00bf3d1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -113,6 +113,7 @@ jobs:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
+ RUST_LIB_BACKTRACE: 0
steps:
- name: Reconfigure Windows Storage
if: '!(matrix.skip) && (startsWith(matrix.os, ''windows'') && !endsWith(matrix.os, ''-xl''))'
diff --git a/Cargo.lock b/Cargo.lock
index d6575584e..ee50dcf5c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -187,9 +187,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.75"
+version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
[[package]]
name = "arrayvec"
@@ -250,15 +250,14 @@ dependencies = [
[[package]]
name = "ast_node"
-version = "0.9.5"
+version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24"
+checksum = "c3e3e06ec6ac7d893a0db7127d91063ad7d9da8988f8a1a256f03729e6eec026"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -294,7 +293,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -305,7 +304,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -368,15 +367,9 @@ checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
[[package]]
name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.5"
+version = "0.21.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9"
[[package]]
name = "base64-simd"
@@ -854,7 +847,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -944,7 +937,7 @@ version = "1.39.2"
dependencies = [
"async-trait",
"base32",
- "base64 0.21.5",
+ "base64",
"bincode",
"bytes",
"cache_control",
@@ -993,7 +986,7 @@ dependencies = [
"hyper 1.1.0",
"hyper-util",
"import_map",
- "indexmap 2.1.0",
+ "indexmap",
"jsonc-parser",
"junction",
"lazy-regex",
@@ -1044,12 +1037,12 @@ dependencies = [
[[package]]
name = "deno_ast"
-version = "0.31.6"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da7b09db895527a94de1305455338926cd2a7003231ba589b7b7b57e8da344f2"
+checksum = "1d87c67f73e749f78096f517cbb57967d98a8c713b39cf88b1f0b8750a84aa29"
dependencies = [
"anyhow",
- "base64 0.13.1",
+ "base64",
"deno_media_type",
"dprint-swc-ext",
"serde",
@@ -1122,7 +1115,7 @@ checksum = "2bbb245d9a3719b5eb2b5195aaaa25108c3c93d1762b181a20fb1af1c7703eaf"
dependencies = [
"anyhow",
"deno_media_type",
- "indexmap 2.1.0",
+ "indexmap",
"log",
"once_cell",
"parking_lot 0.12.1",
@@ -1140,7 +1133,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97979f94af93f388822233278ede930414efa273d6eb495de7680f2a6862a4d3"
dependencies = [
"anyhow",
- "indexmap 2.1.0",
+ "indexmap",
"jsonc-parser",
"log",
"percent-encoding",
@@ -1206,7 +1199,7 @@ dependencies = [
"aes",
"aes-gcm",
"aes-kw",
- "base64 0.21.5",
+ "base64",
"cbc",
"const-oid",
"ctr",
@@ -1235,9 +1228,9 @@ dependencies = [
[[package]]
name = "deno_doc"
-version = "0.85.0"
+version = "0.89.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83b6320fb6467aa87c64e9ab09d07186f771f80f74b110e35e9063a9d6a27a30"
+checksum = "00f16c99bcba738fce91decb9ac44213aa0d6b6a03dfd40af2ff2bca0d687fc6"
dependencies = [
"anyhow",
"cfg-if",
@@ -1248,7 +1241,7 @@ dependencies = [
"handlebars",
"html-escape",
"import_map",
- "indexmap 2.1.0",
+ "indexmap",
"lazy_static",
"regex",
"serde",
@@ -1259,12 +1252,12 @@ dependencies = [
[[package]]
name = "deno_emit"
-version = "0.32.0"
+version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bba6c66922c3953ba465fac215e42c637cc91119618911c0cd84cb994b25d5b7"
+checksum = "480cde74f7e7937e74e43f71c0fa9af7c629387b3847eb4697505741842f0d02"
dependencies = [
"anyhow",
- "base64 0.13.1",
+ "base64",
"deno_ast",
"deno_graph",
"escape8259",
@@ -1329,9 +1322,9 @@ dependencies = [
[[package]]
name = "deno_graph"
-version = "0.62.2"
+version = "0.63.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde6dca752e0bdcf908082ff6852be911e72edf013c126fa2ce78e0420bc5838"
+checksum = "c9a7517284a929f0f2f4db8b241c840bccd4debd6635ea0bc7a906c0254a0231"
dependencies = [
"anyhow",
"async-trait",
@@ -1340,7 +1333,7 @@ dependencies = [
"deno_semver",
"futures",
"import_map",
- "indexmap 2.1.0",
+ "indexmap",
"log",
"monch",
"once_cell",
@@ -1358,7 +1351,7 @@ version = "0.127.0"
dependencies = [
"async-compression",
"async-trait",
- "base64 0.21.5",
+ "base64",
"bencher",
"brotli",
"bytes",
@@ -1410,7 +1403,7 @@ version = "0.38.0"
dependencies = [
"anyhow",
"async-trait",
- "base64 0.21.5",
+ "base64",
"chrono",
"deno_core",
"deno_fetch",
@@ -1438,9 +1431,9 @@ dependencies = [
[[package]]
name = "deno_lint"
-version = "0.52.2"
+version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3f51b48abcf1d7946d1a099ac8d58fe3e84023c37820fbb409eccfd30406f56"
+checksum = "c6c91f26393905a81d960cf9473729660e5b5b889fa2712ba5405ac5a7598014"
dependencies = [
"anyhow",
"deno_ast",
@@ -1541,7 +1534,7 @@ dependencies = [
"hkdf",
"http 0.2.11",
"idna 0.3.0",
- "indexmap 2.1.0",
+ "indexmap",
"k256",
"lazy-regex",
"libc",
@@ -1609,7 +1602,7 @@ dependencies = [
"quote",
"strum",
"strum_macros",
- "syn 2.0.39",
+ "syn 2.0.48",
"thiserror",
]
@@ -2005,7 +1998,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -2034,7 +2027,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -2051,7 +2044,7 @@ checksum = "7227b28d24aafee21ff72512336c797fa00bb3ea803186b1b105a68abc97660b"
dependencies = [
"anyhow",
"bumpalo",
- "indexmap 2.1.0",
+ "indexmap",
"rustc-hash",
"serde",
"unicode-width",
@@ -2099,9 +2092,9 @@ dependencies = [
[[package]]
name = "dprint-plugin-typescript"
-version = "0.88.7"
+version = "0.88.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f75fc11fffe73e21ebea5bc1dabb647ef88189bbac91749fbe22ea8c8e660bf3"
+checksum = "4b16993dd982116fc2c429a1cce62e927fd4856708666c9cbd86cdbefd79dd97"
dependencies = [
"anyhow",
"deno_ast",
@@ -2324,12 +2317,12 @@ dependencies = [
[[package]]
name = "eszip"
-version = "0.56.0"
+version = "0.57.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f50abfc246ed6d7a5e34c9658cac93f959788058c8455c528d69471ef72d8ebf"
+checksum = "e081e749cb42d7e52b9a066564b86c70e586614d5de684080a2be861f35a0721"
dependencies = [
"anyhow",
- "base64 0.21.5",
+ "base64",
"deno_ast",
"deno_graph",
"deno_npm",
@@ -2377,7 +2370,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f63dd7b57f9b33b1741fa631c9522eb35d43e96dcca4a6a91d5e4ca7c93acdc1"
dependencies = [
- "base64 0.21.5",
+ "base64",
"http-body-util",
"hyper 1.1.0",
"hyper-util",
@@ -2490,7 +2483,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -2510,14 +2503,13 @@ dependencies = [
[[package]]
name = "from_variant"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f"
+checksum = "3a0b11eeb173ce52f84ebd943d42e58813a2ebb78a6a3ff0a243b71c5199cd7b"
dependencies = [
- "pmutil",
"proc-macro2",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -2606,7 +2598,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -2812,7 +2804,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http 0.2.11",
- "indexmap 2.1.0",
+ "indexmap",
"slab",
"tokio",
"tokio-util",
@@ -2831,7 +2823,7 @@ dependencies = [
"futures-sink",
"futures-util",
"http 1.0.0",
- "indexmap 2.1.0",
+ "indexmap",
"slab",
"tokio",
"tokio-util",
@@ -2850,9 +2842,9 @@ dependencies = [
[[package]]
name = "handlebars"
-version = "4.5.0"
+version = "5.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225"
+checksum = "94eae21d01d20dabef65d8eda734d83df6e2dea8166788804be9bd6bc92448fa"
dependencies = [
"heck",
"log",
@@ -2865,12 +2857,6 @@ dependencies = [
[[package]]
name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
@@ -3176,11 +3162,11 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
[[package]]
name = "import_map"
-version = "0.18.0"
+version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ecd467768fe83c2860e70e5de5297a7366a230ff53e1da2158bdac2384cd39d"
+checksum = "1624c269d2ca7427d79471c8ba799abe9215e706cc0182d7b86fc856a35d565b"
dependencies = [
- "indexmap 1.9.3",
+ "indexmap",
"log",
"serde",
"serde_json",
@@ -3189,17 +3175,6 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
- "serde",
-]
-
-[[package]]
-name = "indexmap"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
@@ -3276,7 +3251,7 @@ dependencies = [
"pmutil",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -3413,7 +3388,7 @@ dependencies = [
"proc-macro2",
"quote",
"regex",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -3766,7 +3741,7 @@ dependencies = [
"bitflags 2.4.1",
"codespan-reporting",
"hexf-parse",
- "indexmap 2.1.0",
+ "indexmap",
"log",
"num-traits",
"rustc-hash",
@@ -3800,7 +3775,7 @@ dependencies = [
"quote",
"serde",
"serde_json",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4272,7 +4247,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4293,7 +4268,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
dependencies = [
"fixedbitset",
- "indexmap 2.1.0",
+ "indexmap",
]
[[package]]
@@ -4326,7 +4301,7 @@ dependencies = [
"phf_shared",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4355,7 +4330,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4411,7 +4386,7 @@ checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4505,7 +4480,7 @@ checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f"
dependencies = [
"proc-macro-rules-macros",
"proc-macro2",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4517,14 +4492,14 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
dependencies = [
"unicode-ident",
]
@@ -4622,7 +4597,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b9599bffc2cd7511355996e0cfd979266b2cfa3f3ff5247d07a3a6e1ded6158"
dependencies = [
"chrono",
- "indexmap 2.1.0",
+ "indexmap",
"nextest-workspace-hack",
"quick-xml",
"strip-ansi-escapes",
@@ -4641,9 +4616,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.33"
+version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
dependencies = [
"proc-macro2",
]
@@ -4761,7 +4736,7 @@ checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -4812,7 +4787,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
dependencies = [
"async-compression",
- "base64 0.21.5",
+ "base64",
"bytes",
"encoding_rs",
"futures-core",
@@ -4897,7 +4872,7 @@ version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
dependencies = [
- "base64 0.21.5",
+ "base64",
"bitflags 2.4.1",
"serde",
"serde_derive",
@@ -5019,7 +4994,7 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
dependencies = [
- "base64 0.21.5",
+ "base64",
]
[[package]]
@@ -5225,9 +5200,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "serde"
-version = "1.0.193"
+version = "1.0.195"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
dependencies = [
"serde_derive",
]
@@ -5253,22 +5228,22 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.193"
+version = "1.0.195"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
name = "serde_json"
-version = "1.0.108"
+version = "1.0.111"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
dependencies = [
- "indexmap 2.1.0",
+ "indexmap",
"itoa",
"ryu",
"serde",
@@ -5282,7 +5257,7 @@ checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -5548,15 +5523,14 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "string_enum"
-version = "0.4.1"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252"
+checksum = "1b650ea2087d32854a0f20b837fc56ec987a1cb4f758c9757e1171ee9812da63"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -5593,7 +5567,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -5604,9 +5578,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]]
name = "swc_atoms"
-version = "0.6.4"
+version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8a9e1b6d97f27b6abe5571f8fe3bdbd2fa987299fc2126450c7cde6214896ef"
+checksum = "7d538eaaa6f085161d088a04cf0a3a5a52c5a7f2b3bd9b83f73f058b0ed357c0"
dependencies = [
"hstr",
"once_cell",
@@ -5616,13 +5590,13 @@ dependencies = [
[[package]]
name = "swc_bundler"
-version = "0.222.62"
+version = "0.223.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dc457de4306480ef5f2b54aa23f8d93ff476991de6e1db453bc94c56af732b0"
+checksum = "e912d8387fc8592465c081b2e6b8df89443117ae4ca5160f21e08d47d7d58d7a"
dependencies = [
"anyhow",
"crc",
- "indexmap 1.9.3",
+ "indexmap",
"is-macro",
"once_cell",
"parking_lot 0.12.1",
@@ -5646,9 +5620,9 @@ dependencies = [
[[package]]
name = "swc_common"
-version = "0.33.9"
+version = "0.33.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ccb656cd57c93614e4e8b33a60e75ca095383565c1a8d2bbe6a1103942831e0"
+checksum = "9b3ae36feceded27f0178dc9dabb49399830847ffb7f866af01798844de8f973"
dependencies = [
"ast_node",
"better_scoped_tls",
@@ -5672,11 +5646,11 @@ dependencies = [
[[package]]
name = "swc_config"
-version = "0.1.7"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba1c7a40d38f9dd4e9a046975d3faf95af42937b34b2b963be4d8f01239584b"
+checksum = "112884e66b60e614c0f416138b91b8b82b7fea6ed0ecc5e26bad4726c57a6c99"
dependencies = [
- "indexmap 1.9.3",
+ "indexmap",
"serde",
"serde_json",
"swc_config_macro",
@@ -5684,22 +5658,21 @@ dependencies = [
[[package]]
name = "swc_config_macro"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5b5aaca9a0082be4515f0fbbecc191bf5829cd25b5b9c0a2810f6a2bb0d6829"
+checksum = "8b2574f75082322a27d990116cd2a24de52945fc94172b24ca0b3e9e2a6ceb6b"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
name = "swc_ecma_ast"
-version = "0.110.10"
+version = "0.110.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c3d416121da2d56bcbd1b1623725a68890af4552fef0c6d1e4bfa92776ccd6a"
+checksum = "79401a45da704f4fb2552c5bf86ee2198e8636b121cb81f8036848a300edd53b"
dependencies = [
"bitflags 2.4.1",
"is-macro",
@@ -5715,9 +5688,9 @@ dependencies = [
[[package]]
name = "swc_ecma_codegen"
-version = "0.146.32"
+version = "0.146.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b7b37ef40385cc2e294ece3d42048dcda6392838724dd5f02ff8da3fa105271"
+checksum = "99b61ca275e3663238b71c4b5da8e6fb745bde9989ef37d94984dfc81fc6d009"
dependencies = [
"memchr",
"num-bigint",
@@ -5734,15 +5707,14 @@ dependencies = [
[[package]]
name = "swc_ecma_codegen_macros"
-version = "0.7.3"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcdff076dccca6cc6a0e0b2a2c8acfb066014382bc6df98ec99e755484814384"
+checksum = "394b8239424b339a12012ceb18726ed0244fce6bf6345053cb9320b2791dcaa5"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -5759,9 +5731,9 @@ dependencies = [
[[package]]
name = "swc_ecma_loader"
-version = "0.45.10"
+version = "0.45.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31cf7549feec3698d0110a0a71ae547f31ae272dc92db3285ce126d6dcbdadf3"
+checksum = "c5713ab3429530c10bdf167170ebbde75b046c8003558459e4de5aaec62ce0f1"
dependencies = [
"anyhow",
"pathdiff",
@@ -5772,9 +5744,9 @@ dependencies = [
[[package]]
name = "swc_ecma_parser"
-version = "0.141.26"
+version = "0.141.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9590deff1b29aafbff8901b9d38d00211393f6b17b5cab878562db89a8966d88"
+checksum = "c4d17401dd95048a6a62b777d533c0999dabdd531ef9d667e22f8ae2a2a0d294"
dependencies = [
"either",
"new_debug_unreachable",
@@ -5794,13 +5766,13 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_base"
-version = "0.134.42"
+version = "0.135.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d74ca42a400257d8563624122813c1849c3d87e7abe3b9b2ed7514c76f64ad2f"
+checksum = "6d4ab26ec124b03e47f54d4daade8e9a9dcd66d3a4ca3cd47045f138d267a60e"
dependencies = [
"better_scoped_tls",
"bitflags 2.4.1",
- "indexmap 1.9.3",
+ "indexmap",
"once_cell",
"phf",
"rustc-hash",
@@ -5817,9 +5789,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_classes"
-version = "0.123.43"
+version = "0.124.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e68880cf7d65b93e0446b3ee079f33d94e0eddac922f75b736a6ea7669517c0"
+checksum = "9fe4376c024fa04394cafb8faecafb4623722b92dbbe46532258cc0a6b569d9c"
dependencies = [
"swc_atoms",
"swc_common",
@@ -5831,25 +5803,24 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_macros"
-version = "0.5.3"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8188eab297da773836ef5cf2af03ee5cca7a563e1be4b146f8141452c28cc690"
+checksum = "17e309b88f337da54ef7fe4c5b99c2c522927071f797ee6c9fb8b6bf2d100481"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
name = "swc_ecma_transforms_optimization"
-version = "0.195.54"
+version = "0.196.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808ae9b4a291d73adf36d543f07d5a64a5c121a72c5d5f66898415d1b396b1d1"
+checksum = "eefef9f5a80afdbd4b517401dc053825d1ac0d95bb63f3ae92d2b335d8d7d4f8"
dependencies = [
"dashmap",
- "indexmap 1.9.3",
+ "indexmap",
"once_cell",
"petgraph",
"rustc-hash",
@@ -5868,9 +5839,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_proposal"
-version = "0.168.52"
+version = "0.169.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e1f409e026be953fabb327923ebc5fdc7c664bcac036b76107834798640ed"
+checksum = "86de99757fc31d8977f47c02a26e5c9a243cb63b03fe8aa8b36d79924b8fa29c"
dependencies = [
"either",
"rustc-hash",
@@ -5888,13 +5859,13 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_react"
-version = "0.180.52"
+version = "0.181.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fa7f368a80f28eeaa0f529cff6fb5d7578ef10a60be25bfd2582cb3f8ff5c9e"
+checksum = "9918e22caf1ea4a71085f5d818d6c0bf5c19d669cfb9d38f9fdc3da0496abdc7"
dependencies = [
- "base64 0.13.1",
+ "base64",
"dashmap",
- "indexmap 1.9.3",
+ "indexmap",
"once_cell",
"serde",
"sha-1",
@@ -5912,9 +5883,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_typescript"
-version = "0.185.52"
+version = "0.186.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "daa2950c85abb4d555e092503ad2fa4f6dec0ee36a719273fb7a7bb29ead9ab6"
+checksum = "e1d1495c969ffdc224384f1fb73646b9c1b170779f20fdb984518deb054aa522"
dependencies = [
"ryu-js",
"serde",
@@ -5929,11 +5900,11 @@ dependencies = [
[[package]]
name = "swc_ecma_utils"
-version = "0.124.32"
+version = "0.125.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a4a0baf6cfa490666a9fe23a17490273f843d19ebc1d6ec89d64c3f8ccdb80"
+checksum = "7cead1083e46b0f072a82938f16d366014468f7510350957765bb4d013496890"
dependencies = [
- "indexmap 1.9.3",
+ "indexmap",
"num_cpus",
"once_cell",
"rustc-hash",
@@ -5947,9 +5918,9 @@ dependencies = [
[[package]]
name = "swc_ecma_visit"
-version = "0.96.10"
+version = "0.96.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba962f0becf83bab12a17365dface5a4f636c9e1743d479e292b96910a753743"
+checksum = "a1d0100c383fb08b6f34911ab6f925950416a5d14404c1cd520d59fb8dfbb3bf"
dependencies = [
"num-bigint",
"swc_atoms",
@@ -5961,23 +5932,22 @@ dependencies = [
[[package]]
name = "swc_eq_ignore_macros"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8"
+checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
name = "swc_fast_graph"
-version = "0.21.9"
+version = "0.21.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8117f6d10bbcb30cb3e549d6fa7637cb6d7c713cb71b2ce1808105a6825c788d"
+checksum = "8acfc056067a0fbfe26a4763c1eb246e813fdbe6b376415d07915e96e15481b6"
dependencies = [
- "indexmap 1.9.3",
+ "indexmap",
"petgraph",
"rustc-hash",
"swc_common",
@@ -5985,9 +5955,9 @@ dependencies = [
[[package]]
name = "swc_graph_analyzer"
-version = "0.22.11"
+version = "0.22.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de8f0ac33ef7486723a3acdd9c4541dac79f0433bf878b9075826bca1163d83e"
+checksum = "1c6e0110c0433c27221f03e45419b7e18d1db4d472db309088caa458ac2f304e"
dependencies = [
"auto_impl",
"petgraph",
@@ -5998,21 +5968,20 @@ dependencies = [
[[package]]
name = "swc_macros_common"
-version = "0.3.8"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832"
+checksum = "50176cfc1cbc8bb22f41c6fe9d1ec53fbe057001219b5954961b8ad0f336fce9"
dependencies = [
- "pmutil",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
name = "swc_visit"
-version = "0.5.7"
+version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3"
+checksum = "b27078d8571abe23aa52ef608dd1df89096a37d867cf691cbb4f4c392322b7c9"
dependencies = [
"either",
"swc_visit_macros",
@@ -6020,16 +5989,16 @@ dependencies = [
[[package]]
name = "swc_visit_macros"
-version = "0.5.8"
+version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99"
+checksum = "fa8bb05975506741555ea4d10c3a3bdb0e2357cd58e1a4a4332b8ebb4b44c34d"
dependencies = [
"Inflector",
"pmutil",
"proc-macro2",
"quote",
"swc_macros_common",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -6045,9 +6014,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.39"
+version = "2.0.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
dependencies = [
"proc-macro2",
"quote",
@@ -6141,7 +6110,7 @@ version = "0.1.0"
dependencies = [
"anyhow",
"async-stream",
- "base64 0.21.5",
+ "base64",
"bytes",
"console_static_text",
"deno_unsync 0.3.2",
@@ -6214,7 +6183,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -6288,7 +6257,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -6411,7 +6380,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -6439,7 +6408,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -6855,7 +6824,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
"wasm-bindgen-shared",
]
@@ -6889,7 +6858,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -7303,7 +7272,7 @@ checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
@@ -7323,7 +7292,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.39",
+ "syn 2.0.48",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index fa2622ef7..aad9b851e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -40,7 +40,7 @@ license = "MIT"
repository = "https://github.com/denoland/deno"
[workspace.dependencies]
-deno_ast = { version = "0.31.6", features = ["transpiling"] }
+deno_ast = { version = "1.0.1", features = ["transpiling"] }
deno_core = { version = "0.244.0" }
deno_runtime = { version = "0.138.0", path = "./runtime" }
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index f43115496..ae6a11398 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -60,16 +60,18 @@ deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "dep_gra
deno_cache_dir = "=0.6.1"
deno_config = "=0.6.5"
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
-deno_doc = { version = "=0.85.0", features = ["html"] }
-deno_emit = "=0.32.0"
-deno_graph = "=0.62.2"
-deno_lint = { version = "=0.52.2", features = ["docs"] }
+deno_doc = { version = "=0.89.0", features = ["html"] }
+deno_emit = "=0.33.0"
+deno_graph = "=0.63.0"
+deno_lint = { version = "=0.53.0", features = ["docs"] }
deno_lockfile.workspace = true
-deno_npm = "0.15.3"
+deno_npm = "=0.15.3"
deno_runtime = { workspace = true, features = ["dont_create_runtime_snapshot", "include_js_files_for_snapshotting"] }
-deno_semver = "0.5.1"
+# todo(dsherret): investigate https://github.com/denoland/deno_semver/commit/98f9174baef199809295077b3b68c9fa58defb9b causing
+# lsp_completions_auto_import_and_quick_fix_with_import_map to fail when bumping this version
+deno_semver = "=0.5.1"
deno_task_shell = "=0.14.0"
-eszip = "=0.56.0"
+eszip = "=0.57.0"
napi_sym.workspace = true
async-trait.workspace = true
@@ -91,7 +93,7 @@ dotenvy = "0.15.7"
dprint-plugin-json = "=0.19.1"
dprint-plugin-jupyter = "=0.1.2"
dprint-plugin-markdown = "=0.16.3"
-dprint-plugin-typescript = "=0.88.7"
+dprint-plugin-typescript = "=0.88.8"
encoding_rs.workspace = true
env_logger = "=0.10.0"
fancy-regex = "=0.10.0"
@@ -100,7 +102,7 @@ flate2.workspace = true
fs3.workspace = true
glob = "0.3.1"
hex.workspace = true
-import_map = { version = "=0.18.0", features = ["ext"] }
+import_map = { version = "=0.18.1", features = ["ext"] }
indexmap.workspace = true
jsonc-parser = { version = "=0.23.0", features = ["serde"] }
lazy-regex.workspace = true
diff --git a/cli/cache/module_info.rs b/cli/cache/module_info.rs
index 9240b2387..4a80774f6 100644
--- a/cli/cache/module_info.rs
+++ b/cli/cache/module_info.rs
@@ -6,11 +6,9 @@ use deno_ast::MediaType;
use deno_ast::ModuleSpecifier;
use deno_core::error::AnyError;
use deno_core::serde_json;
-use deno_graph::CapturingModuleParser;
use deno_graph::DefaultModuleAnalyzer;
use deno_graph::ModuleInfo;
use deno_graph::ModuleParser;
-use deno_graph::ParsedSourceStore;
use deno_runtime::deno_webstorage::rusqlite::params;
use super::cache_db::CacheDB;
@@ -115,19 +113,18 @@ impl ModuleInfoCache {
pub fn as_module_analyzer<'a>(
&'a self,
- parser: Option<&'a dyn ModuleParser>,
- store: &'a dyn ParsedSourceStore,
+ parser: &'a dyn ModuleParser,
) -> ModuleInfoCacheModuleAnalyzer<'a> {
ModuleInfoCacheModuleAnalyzer {
module_info_cache: self,
- parser: CapturingModuleParser::new(parser, store),
+ parser,
}
}
}
pub struct ModuleInfoCacheModuleAnalyzer<'a> {
module_info_cache: &'a ModuleInfoCache,
- parser: CapturingModuleParser<'a>,
+ parser: &'a dyn ModuleParser,
}
impl<'a> deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'a> {
@@ -156,7 +153,7 @@ impl<'a> deno_graph::ModuleAnalyzer for ModuleInfoCacheModuleAnalyzer<'a> {
}
// otherwise, get the module info from the parsed source cache
- let analyzer = DefaultModuleAnalyzer::new(&self.parser);
+ let analyzer = DefaultModuleAnalyzer::new(self.parser);
let module_info = analyzer.analyze(specifier, source, media_type)?;
// then attempt to cache it
diff --git a/cli/cache/parsed_source.rs b/cli/cache/parsed_source.rs
index 021c37f1b..77f2e5953 100644
--- a/cli/cache/parsed_source.rs
+++ b/cli/cache/parsed_source.rs
@@ -9,6 +9,7 @@ use deno_ast::ParsedSource;
use deno_core::parking_lot::Mutex;
use deno_graph::CapturingModuleParser;
use deno_graph::ModuleParser;
+use deno_graph::ParseOptions;
#[derive(Default)]
pub struct ParsedSourceCache {
@@ -37,7 +38,13 @@ impl ParsedSourceCache {
) -> deno_core::anyhow::Result<ParsedSource, deno_ast::Diagnostic> {
let parser = self.as_capturing_parser();
// this will conditionally parse because it's using a CapturingModuleParser
- parser.parse_module(specifier, source, media_type)
+ parser.parse_module(ParseOptions {
+ specifier,
+ source,
+ media_type,
+ // don't bother enabling because this method is currently only used for emitting
+ scope_analysis: false,
+ })
}
/// Frees the parsed source from memory.
@@ -50,10 +57,6 @@ impl ParsedSourceCache {
pub fn as_capturing_parser(&self) -> CapturingModuleParser {
CapturingModuleParser::new(None, self)
}
-
- pub fn as_store(self: &Arc<Self>) -> Arc<dyn deno_graph::ParsedSourceStore> {
- self.clone()
- }
}
/// It's ok that this is racy since in non-LSP situations
@@ -76,4 +79,21 @@ impl deno_graph::ParsedSourceStore for ParsedSourceCache {
) -> Option<ParsedSource> {
self.sources.lock().get(specifier).cloned()
}
+
+ fn get_scope_analysis_parsed_source(
+ &self,
+ specifier: &deno_graph::ModuleSpecifier,
+ ) -> Option<ParsedSource> {
+ let mut sources = self.sources.lock();
+ let parsed_source = sources.get(specifier)?;
+ if parsed_source.has_scope_analysis() {
+ Some(parsed_source.clone())
+ } else {
+ // upgrade to have scope analysis
+ let parsed_source = sources.remove(specifier).unwrap();
+ let parsed_source = parsed_source.into_with_scope_analysis();
+ sources.insert(specifier.clone(), parsed_source.clone());
+ Some(parsed_source)
+ }
+ }
}
diff --git a/cli/graph_util.rs b/cli/graph_util.rs
index b4f4b939a..53861415c 100644
--- a/cli/graph_util.rs
+++ b/cli/graph_util.rs
@@ -21,6 +21,7 @@ use crate::util::path::specifier_to_file_path;
use crate::util::sync::TaskQueue;
use crate::util::sync::TaskQueuePermit;
+use deno_config::ConfigFile;
use deno_core::anyhow::bail;
use deno_core::anyhow::Context;
use deno_core::error::custom_error;
@@ -32,7 +33,6 @@ use deno_graph::source::Loader;
use deno_graph::source::ResolveError;
use deno_graph::GraphKind;
use deno_graph::Module;
-use deno_graph::ModuleAnalyzer;
use deno_graph::ModuleError;
use deno_graph::ModuleGraph;
use deno_graph::ModuleGraphError;
@@ -193,8 +193,11 @@ pub fn graph_lock_or_exit(graph: &ModuleGraph, lockfile: &mut Lockfile) {
pub struct CreateGraphOptions<'a> {
pub graph_kind: GraphKind,
pub roots: Vec<ModuleSpecifier>,
- pub loader: &'a mut dyn Loader,
- pub analyzer: &'a dyn ModuleAnalyzer,
+ /// Whether to do fast check on workspace members. This is mostly only
+ /// useful when publishing.
+ pub workspace_fast_check: bool,
+ /// Specify `None` to use the default CLI loader.
+ pub loader: Option<&'a mut dyn Loader>,
}
pub struct ModuleGraphBuilder {
@@ -261,14 +264,12 @@ impl ModuleGraphBuilder {
roots: Vec<ModuleSpecifier>,
loader: &mut dyn Loader,
) -> Result<deno_graph::ModuleGraph, AnyError> {
- let store = self.parsed_source_cache.as_store();
- let analyzer = self.module_info_cache.as_module_analyzer(None, &*store);
self
.create_graph_with_options(CreateGraphOptions {
graph_kind,
roots,
- loader,
- analyzer: &analyzer,
+ loader: Some(loader),
+ workspace_fast_check: false,
})
.await
}
@@ -277,14 +278,23 @@ impl ModuleGraphBuilder {
&self,
options: CreateGraphOptions<'_>,
) -> Result<deno_graph::ModuleGraph, AnyError> {
- let maybe_imports = self.options.to_maybe_imports()?;
- let maybe_workspace_config = self.options.maybe_workspace_config();
- let workspace_members = if let Some(wc) = maybe_workspace_config {
- workspace_config_to_workspace_members(wc)?
- } else {
- vec![]
- };
+ enum MutLoaderRef<'a> {
+ Borrowed(&'a mut dyn Loader),
+ Owned(cache::FetchCacher),
+ }
+
+ impl<'a> MutLoaderRef<'a> {
+ pub fn as_mut_loader(&mut self) -> &mut dyn Loader {
+ match self {
+ Self::Borrowed(loader) => *loader,
+ Self::Owned(loader) => loader,
+ }
+ }
+ }
+ let parser = self.parsed_source_cache.as_capturing_parser();
+ let analyzer = self.module_info_cache.as_module_analyzer(&parser);
+ let maybe_imports = self.options.to_maybe_imports()?;
let cli_resolver = self.resolver.clone();
let graph_resolver = cli_resolver.as_graph_resolver();
let graph_npm_resolver = cli_resolver.as_graph_npm_resolver();
@@ -292,22 +302,28 @@ impl ModuleGraphBuilder {
.maybe_file_watcher_reporter
.as_ref()
.map(|r| r.as_reporter());
+ let mut loader = match options.loader {
+ Some(loader) => MutLoaderRef::Borrowed(loader),
+ None => MutLoaderRef::Owned(self.create_graph_loader()),
+ };
let mut graph = ModuleGraph::new(options.graph_kind);
self
.build_graph_with_npm_resolution(
&mut graph,
options.roots,
- options.loader,
+ loader.as_mut_loader(),
deno_graph::BuildOptions {
is_dynamic: false,
imports: maybe_imports,
resolver: Some(graph_resolver),
file_system: Some(&DenoGraphFsAdapter(self.fs.as_ref())),
npm_resolver: Some(graph_npm_resolver),
- module_analyzer: Some(options.analyzer),
+ module_analyzer: Some(&analyzer),
+ module_parser: Some(&parser),
reporter: maybe_file_watcher_reporter,
- workspace_members,
+ workspace_fast_check: options.workspace_fast_check,
+ workspace_members: self.get_deno_graph_workspace_members()?,
},
)
.await?;
@@ -327,17 +343,11 @@ impl ModuleGraphBuilder {
) -> Result<Arc<deno_graph::ModuleGraph>, AnyError> {
let mut cache = self.create_graph_loader();
let maybe_imports = self.options.to_maybe_imports()?;
- let maybe_workspace_config = self.options.maybe_workspace_config();
- let workspace_members = if let Some(wc) = maybe_workspace_config {
- workspace_config_to_workspace_members(wc)?
- } else {
- vec![]
- };
let cli_resolver = self.resolver.clone();
let graph_resolver = cli_resolver.as_graph_resolver();
let graph_npm_resolver = cli_resolver.as_graph_npm_resolver();
- let store = self.parsed_source_cache.as_store();
- let analyzer = self.module_info_cache.as_module_analyzer(None, &*store);
+ let parser = self.parsed_source_cache.as_capturing_parser();
+ let analyzer = self.module_info_cache.as_module_analyzer(&parser);
let graph_kind = self.options.type_check_mode().as_graph_kind();
let mut graph = ModuleGraph::new(graph_kind);
let maybe_file_watcher_reporter = self
@@ -357,8 +367,10 @@ impl ModuleGraphBuilder {
resolver: Some(graph_resolver),
npm_resolver: Some(graph_npm_resolver),
module_analyzer: Some(&analyzer),
+ module_parser: Some(&parser),
reporter: maybe_file_watcher_reporter,
- workspace_members,
+ workspace_fast_check: false,
+ workspace_members: self.get_deno_graph_workspace_members()?,
},
)
.await?;
@@ -391,6 +403,30 @@ impl ModuleGraphBuilder {
Ok(graph)
}
+ fn get_deno_graph_workspace_members(
+ &self,
+ ) -> Result<Vec<deno_graph::WorkspaceMember>, AnyError> {
+ let maybe_workspace_config = self.options.maybe_workspace_config();
+ if let Some(wc) = maybe_workspace_config {
+ workspace_config_to_workspace_members(wc)
+ } else {
+ Ok(
+ self
+ .options
+ .maybe_config_file()
+ .as_ref()
+ .and_then(|c| match config_to_workspace_member(c) {
+ Ok(m) => Some(vec![m]),
+ Err(e) => {
+ log::debug!("Deno config was not a package: {:#}", e);
+ None
+ }
+ })
+ .unwrap_or_default(),
+ )
+ }
+ }
+
pub async fn build_graph_with_npm_resolution<'a>(
&self,
graph: &mut ModuleGraph,
@@ -435,7 +471,7 @@ impl ModuleGraphBuilder {
.strip_prefix("jsr:")
.and_then(|value| PackageNv::from_str(value).ok())
{
- graph.packages.add(key, value);
+ graph.packages.add_nv(key, value);
}
}
}
@@ -777,36 +813,34 @@ pub fn workspace_config_to_workspace_members(
.members
.iter()
.map(|member| {
- workspace_member_config_try_into_workspace_member(member).with_context(
- || {
- format!(
- "Failed to resolve configuration for '{}' workspace member at '{}'",
- member.member_name,
- member.config_file.specifier.as_str()
- )
- },
- )
+ config_to_workspace_member(&member.config_file).with_context(|| {
+ format!(
+ "Failed to resolve configuration for '{}' workspace member at '{}'",
+ member.member_name,
+ member.config_file.specifier.as_str()
+ )
+ })
})
.collect()
}
-fn workspace_member_config_try_into_workspace_member(
- config: &deno_config::WorkspaceMemberConfig,
+fn config_to_workspace_member(
+ config: &ConfigFile,
) -> Result<deno_graph::WorkspaceMember, AnyError> {
let nv = deno_semver::package::PackageNv {
- name: config.package_name.clone(),
- version: deno_semver::Version::parse_standard(&config.package_version)?,
+ name: match &config.json.name {
+ Some(name) => name.clone(),
+ None => bail!("Missing 'name' field in config file."),
+ },
+ version: match &config.json.version {
+ Some(name) => deno_semver::Version::parse_standard(name)?,
+ None => bail!("Missing 'version' field in config file."),
+ },
};
Ok(deno_graph::WorkspaceMember {
- base: ModuleSpecifier::from_directory_path(&config.path).unwrap(),
+ base: config.specifier.join("./").unwrap(),
nv,
- exports: config
- .config_file
- .to_exports_config()?
- .into_map()
- // todo(dsherret): deno_graph should use an IndexMap
- .into_iter()
- .collect(),
+ exports: config.to_exports_config()?.into_map(),
})
}
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 88ca47f67..5301fbeea 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -133,7 +133,7 @@ pub fn get_lint_references(
parsed_source: &deno_ast::ParsedSource,
lint_rules: Vec<&'static dyn LintRule>,
) -> Result<Vec<Reference>, AnyError> {
- let linter = create_linter(parsed_source.media_type(), lint_rules);
+ let linter = create_linter(lint_rules);
let lint_diagnostics = linter.lint_with_ast(parsed_source);
Ok(
diff --git a/cli/module_loader.rs b/cli/module_loader.rs
index 9a2c511ff..6fbeb8770 100644
--- a/cli/module_loader.rs
+++ b/cli/module_loader.rs
@@ -138,8 +138,8 @@ impl ModuleLoadPreparer {
.as_ref()
.map(|r| r.as_reporter());
- let store = self.parsed_source_cache.as_store();
- let analyzer = self.module_info_cache.as_module_analyzer(None, &*store);
+ let parser = self.parsed_source_cache.as_capturing_parser();
+ let analyzer = self.module_info_cache.as_module_analyzer(&parser);
log::debug!("Creating module graph.");
let mut graph_update_permit =
@@ -163,8 +163,10 @@ impl ModuleLoadPreparer {
file_system: Some(&DenoGraphFsAdapter(self.fs.as_ref())),
resolver: Some(graph_resolver),
npm_resolver: Some(graph_npm_resolver),
+ module_parser: Some(&parser),
module_analyzer: Some(&analyzer),
reporter: maybe_file_watcher_reporter,
+ workspace_fast_check: false,
workspace_members,
},
)
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs
index b8d6b8a87..7b06dce05 100644
--- a/cli/tools/doc.rs
+++ b/cli/tools/doc.rs
@@ -10,7 +10,6 @@ use crate::display::write_json_to_stdout;
use crate::display::write_to_stdout_ignore_sigpipe;
use crate::factory::CliFactory;
use crate::graph_util::graph_lock_or_exit;
-use crate::graph_util::CreateGraphOptions;
use crate::tsc::get_types_declaration_file_text;
use crate::util::fs::collect_specifiers;
use crate::util::glob::FilePatterns;
@@ -20,10 +19,9 @@ use deno_core::anyhow::Context;
use deno_core::error::AnyError;
use deno_core::futures::FutureExt;
use deno_doc as doc;
-use deno_graph::CapturingModuleParser;
-use deno_graph::DefaultParsedSourceStore;
use deno_graph::GraphKind;
use deno_graph::ModuleAnalyzer;
+use deno_graph::ModuleParser;
use deno_graph::ModuleSpecifier;
use doc::DocDiagnostic;
use indexmap::IndexMap;
@@ -35,7 +33,7 @@ use std::sync::Arc;
async fn generate_doc_nodes_for_builtin_types(
doc_flags: DocFlags,
cli_options: &Arc<CliOptions>,
- capturing_parser: CapturingModuleParser<'_>,
+ parser: &dyn ModuleParser,
analyzer: &dyn ModuleAnalyzer,
) -> Result<IndexMap<ModuleSpecifier, Vec<doc::DocNode>>, AnyError> {
let source_file_specifier =
@@ -65,7 +63,7 @@ async fn generate_doc_nodes_for_builtin_types(
.await;
let doc_parser = doc::DocParser::new(
&graph,
- capturing_parser,
+ parser,
doc::DocParserOptions {
diagnostics: false,
private: doc_flags.private,
@@ -80,19 +78,16 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> {
let factory = CliFactory::from_flags(flags).await?;
let cli_options = factory.cli_options();
let module_info_cache = factory.module_info_cache()?;
- let source_parser = deno_graph::DefaultModuleParser::new_for_analysis();
- let store = DefaultParsedSourceStore::default();
- let analyzer =
- module_info_cache.as_module_analyzer(Some(&source_parser), &store);
- let capturing_parser =
- CapturingModuleParser::new(Some(&source_parser), &store);
+ let parsed_source_cache = factory.parsed_source_cache();
+ let capturing_parser = parsed_source_cache.as_capturing_parser();
+ let analyzer = module_info_cache.as_module_analyzer(&capturing_parser);
let doc_nodes_by_url = match doc_flags.source_files {
DocSourceFileFlag::Builtin => {
generate_doc_nodes_for_builtin_types(
doc_flags.clone(),
cli_options,
- capturing_parser,
+ &capturing_parser,
&analyzer,
)
.await?
@@ -123,14 +118,8 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> {
},
|_, _| true,
)?;
- let mut loader = module_graph_builder.create_graph_loader();
let graph = module_graph_builder
- .create_graph_with_options(CreateGraphOptions {
- graph_kind: GraphKind::TypesOnly,
- roots: module_specifiers.clone(),
- loader: &mut loader,
- analyzer: &analyzer,
- })
+ .create_graph(GraphKind::TypesOnly, module_specifiers.clone())
.await?;
if let Some(lockfile) = maybe_lockfile {
@@ -139,7 +128,7 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> {
let doc_parser = doc::DocParser::new(
&graph,
- capturing_parser,
+ &capturing_parser,
doc::DocParserOptions {
private: doc_flags.private,
diagnostics: doc_flags.lint,
@@ -168,7 +157,7 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> {
let deno_ns = generate_doc_nodes_for_builtin_types(
doc_flags.clone(),
cli_options,
- capturing_parser,
+ &capturing_parser,
&analyzer,
)
.await?;
diff --git a/cli/tools/lint.rs b/cli/tools/lint.rs
index a91f14ad8..52890ae24 100644
--- a/cli/tools/lint.rs
+++ b/cli/tools/lint.rs
@@ -23,6 +23,7 @@ use deno_core::error::AnyError;
use deno_core::error::JsStackFrame;
use deno_core::serde_json;
use deno_lint::diagnostic::LintDiagnostic;
+use deno_lint::linter::LintFileOptions;
use deno_lint::linter::Linter;
use deno_lint::linter::LinterBuilder;
use deno_lint::rules;
@@ -249,14 +250,10 @@ pub fn print_rules_list(json: bool, maybe_rules_tags: Option<Vec<String>>) {
}
}
-pub fn create_linter(
- media_type: MediaType,
- rules: Vec<&'static dyn LintRule>,
-) -> Linter {
+pub fn create_linter(rules: Vec<&'static dyn LintRule>) -> Linter {
LinterBuilder::default()
.ignore_file_directive("deno-lint-ignore-file")
.ignore_diagnostic_directive("deno-lint-ignore")
- .media_type(media_type)
.rules(rules)
.build()
}
@@ -266,12 +263,16 @@ fn lint_file(
source_code: String,
lint_rules: Vec<&'static dyn LintRule>,
) -> Result<(Vec<LintDiagnostic>, String), AnyError> {
- let file_name = file_path.to_string_lossy().to_string();
+ let filename = file_path.to_string_lossy().to_string();
let media_type = MediaType::from_path(file_path);
- let linter = create_linter(media_type, lint_rules);
+ let linter = create_linter(lint_rules);
- let (_, file_diagnostics) = linter.lint(file_name, source_code.clone())?;
+ let (_, file_diagnostics) = linter.lint_file(LintFileOptions {
+ filename,
+ media_type,
+ source_code: source_code.clone(),
+ })?;
Ok((file_diagnostics, source_code))
}
@@ -287,10 +288,13 @@ fn lint_stdin(
return Err(generic_error("Failed to read from stdin"));
}
- let linter = create_linter(MediaType::TypeScript, lint_rules);
+ let linter = create_linter(lint_rules);
- let (_, file_diagnostics) =
- linter.lint(STDIN_FILE_NAME.to_string(), source_code.clone())?;
+ let (_, file_diagnostics) = linter.lint_file(LintFileOptions {
+ filename: STDIN_FILE_NAME.to_string(),
+ source_code: source_code.clone(),
+ media_type: MediaType::TypeScript,
+ })?;
Ok((file_diagnostics, source_code))
}
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs
index 83cc60dd0..696f5c065 100644
--- a/cli/tools/repl/session.rs
+++ b/cli/tools/repl/session.rs
@@ -839,7 +839,7 @@ fn analyze_jsx_pragmas(
let mut analyzed_pragmas = AnalyzedJsxPragmas::default();
- for c in parsed_source.get_leading_comments().iter() {
+ for c in parsed_source.get_leading_comments()?.iter() {
if c.kind != CommentKind::Block {
continue; // invalid
}