@samitouri / QOS-React-2 / commits / b8f1d37b6a

[rust] Remove SWC

After the previous PR we no longer depend on SWC for the critical path of development/testing. Notably this unblocks adding support for the rest of the language: the new `forget_hermes_parser` crate automatically converts Hermes Parser's AST into our `forget_estree` format via codegen. Achieving full language support with SWC would have required manually defining the remaining conversions for the rest of the language. Long-term we'll need to revisit how to integrate into SWC, and more generally into setups build atop SWC such as Next.js's Turbopack-based build configuration. But i'll delete for now since we don't depend on it for iteration, it's slow to build, and requires us to opt-in to nightly Rust.

Joe Savona committed Aug 10, 2023 at 10:59 UTC b8f1d37b6a4e5abbf3c9d80b45b6fc773fbd4c50
6 files changed +132 -3095
compiler/forget/Cargo.lock
+131 -2104
@@ -2,16 +2,6 @@
2 # It is not intended for manual editing.
3 version = 3
4
5 -[[package]]
6 -name = "Inflector"
7 -version = "0.11.4"
8 -source = "registry+https://github.com/rust-lang/crates.io-index"
9 -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
10 -dependencies = [
11 - "lazy_static",
12 - "regex",
13 -]
14 -
5 [[package]]
6 name = "addr2line"
7 version = "0.20.0"
@@ -38,19 +28,6 @@ dependencies = [
28 "version_check",
29 ]
30
41 -[[package]]
42 -name = "ahash"
43 -version = "0.8.3"
44 -source = "registry+https://github.com/rust-lang/crates.io-index"
45 -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
46 -dependencies = [
47 - "cfg-if",
48 - "getrandom",
49 - "once_cell",
50 - "serde",
51 - "version_check",
52 -]
53 -
31 [[package]]
32 name = "aho-corasick"
33 version = "0.7.20"
@@ -69,75 +46,12 @@ dependencies = [
46 "memchr",
47 ]
48
72 -[[package]]
73 -name = "android-tzdata"
74 -version = "0.1.1"
75 -source = "registry+https://github.com/rust-lang/crates.io-index"
76 -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
77 -
78 -[[package]]
79 -name = "android_system_properties"
80 -version = "0.1.5"
81 -source = "registry+https://github.com/rust-lang/crates.io-index"
82 -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
83 -dependencies = [
84 - "libc",
85 -]
86 -
49 [[package]]
50 name = "anyhow"
51 version = "1.0.71"
52 source = "registry+https://github.com/rust-lang/crates.io-index"
53 checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
54
93 -[[package]]
94 -name = "arrayvec"
95 -version = "0.7.4"
96 -source = "registry+https://github.com/rust-lang/crates.io-index"
97 -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
98 -
99 -[[package]]
100 -name = "ast_node"
101 -version = "0.9.5"
102 -source = "registry+https://github.com/rust-lang/crates.io-index"
103 -checksum = "c09c69dffe06d222d072c878c3afe86eee2179806f20503faec97250268b4c24"
104 -dependencies = [
105 - "pmutil",
106 - "proc-macro2",
107 - "quote",
108 - "swc_macros_common",
109 - "syn 2.0.23",
110 -]
111 -
112 -[[package]]
113 -name = "atty"
114 -version = "0.2.14"
115 -source = "registry+https://github.com/rust-lang/crates.io-index"
116 -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
117 -dependencies = [
118 - "hermit-abi 0.1.19",
119 - "libc",
120 - "winapi",
121 -]
122 -
123 -[[package]]
124 -name = "auto_impl"
125 -version = "1.1.0"
126 -source = "registry+https://github.com/rust-lang/crates.io-index"
127 -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
128 -dependencies = [
129 - "proc-macro-error",
130 - "proc-macro2",
131 - "quote",
132 - "syn 1.0.109",
133 -]
134 -
135 -[[package]]
136 -name = "autocfg"
137 -version = "1.1.0"
138 -source = "registry+https://github.com/rust-lang/crates.io-index"
139 -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
140 -
55 [[package]]
56 name = "backtrace"
57 version = "0.3.68"
@@ -168,61 +82,12 @@ version = "0.13.1"
82 source = "registry+https://github.com/rust-lang/crates.io-index"
83 checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
84
171 -[[package]]
172 -name = "better_scoped_tls"
173 -version = "0.1.1"
174 -source = "registry+https://github.com/rust-lang/crates.io-index"
175 -checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de"
176 -dependencies = [
177 - "scoped-tls",
178 -]
179 -
85 [[package]]
86 name = "bitflags"
87 version = "1.3.2"
88 source = "registry+https://github.com/rust-lang/crates.io-index"
89 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
90
186 -[[package]]
187 -name = "bitflags"
188 -version = "2.3.3"
189 -source = "registry+https://github.com/rust-lang/crates.io-index"
190 -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
191 -
192 -[[package]]
193 -name = "block-buffer"
194 -version = "0.10.4"
195 -source = "registry+https://github.com/rust-lang/crates.io-index"
196 -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
197 -dependencies = [
198 - "generic-array",
199 -]
200 -
201 -[[package]]
202 -name = "browserslist-rs"
203 -version = "0.12.4"
204 -source = "registry+https://github.com/rust-lang/crates.io-index"
205 -checksum = "d9bda9b4595376bf255f68dafb5dcc5b0e2842b38dc2a7b52c4e0bfe9fd1c651"
206 -dependencies = [
207 - "ahash 0.8.3",
208 - "anyhow",
209 - "chrono",
210 - "either",
211 - "getrandom",
212 - "itertools",
213 - "js-sys",
214 - "nom",
215 - "once_cell",
216 - "quote",
217 - "serde",
218 - "serde-wasm-bindgen",
219 - "serde_json",
220 - "string_cache",
221 - "string_cache_codegen",
222 - "thiserror",
223 - "wasm-bindgen",
224 -]
225 -
91 [[package]]
92 name = "bstr"
93 version = "1.5.0"
@@ -233,12 +98,6 @@ dependencies = [
98 "serde",
99 ]
100
236 -[[package]]
237 -name = "bumpalo"
238 -version = "3.13.0"
239 -source = "registry+https://github.com/rust-lang/crates.io-index"
240 -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
241 -
101 [[package]]
102 name = "cc"
103 version = "1.0.79"
@@ -251,21 +110,6 @@ version = "1.0.0"
110 source = "registry+https://github.com/rust-lang/crates.io-index"
111 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
112
254 -[[package]]
255 -name = "chrono"
256 -version = "0.4.26"
257 -source = "registry+https://github.com/rust-lang/crates.io-index"
258 -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
259 -dependencies = [
260 - "android-tzdata",
261 - "iana-time-zone",
262 - "js-sys",
263 - "num-traits",
264 - "time 0.1.45",
265 - "wasm-bindgen",
266 - "winapi",
267 -]
268 -
113 [[package]]
114 name = "cmake"
115 version = "0.1.50"
@@ -287,135 +131,12 @@ dependencies = [
131 "windows-sys 0.45.0",
132 ]
133
290 -[[package]]
291 -name = "core-foundation-sys"
292 -version = "0.8.4"
293 -source = "registry+https://github.com/rust-lang/crates.io-index"
294 -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
295 -
296 -[[package]]
297 -name = "cpufeatures"
298 -version = "0.2.8"
299 -source = "registry+https://github.com/rust-lang/crates.io-index"
300 -checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c"
301 -dependencies = [
302 - "libc",
303 -]
304 -
305 -[[package]]
306 -name = "crossbeam-channel"
307 -version = "0.5.8"
308 -source = "registry+https://github.com/rust-lang/crates.io-index"
309 -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
310 -dependencies = [
311 - "cfg-if",
312 - "crossbeam-utils",
313 -]
314 -
315 -[[package]]
316 -name = "crossbeam-deque"
317 -version = "0.8.3"
318 -source = "registry+https://github.com/rust-lang/crates.io-index"
319 -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
320 -dependencies = [
321 - "cfg-if",
322 - "crossbeam-epoch",
323 - "crossbeam-utils",
324 -]
325 -
326 -[[package]]
327 -name = "crossbeam-epoch"
328 -version = "0.9.15"
329 -source = "registry+https://github.com/rust-lang/crates.io-index"
330 -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
331 -dependencies = [
332 - "autocfg",
333 - "cfg-if",
334 - "crossbeam-utils",
335 - "memoffset",
336 - "scopeguard",
337 -]
338 -
339 -[[package]]
340 -name = "crossbeam-utils"
341 -version = "0.8.16"
342 -source = "registry+https://github.com/rust-lang/crates.io-index"
343 -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
344 -dependencies = [
345 - "cfg-if",
346 -]
347 -
348 -[[package]]
349 -name = "crypto-common"
350 -version = "0.1.6"
351 -source = "registry+https://github.com/rust-lang/crates.io-index"
352 -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
353 -dependencies = [
354 - "generic-array",
355 - "typenum",
356 -]
357 -
358 -[[package]]
359 -name = "dashmap"
360 -version = "5.4.0"
361 -source = "registry+https://github.com/rust-lang/crates.io-index"
362 -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
363 -dependencies = [
364 - "cfg-if",
365 - "hashbrown 0.12.3",
366 - "lock_api",
367 - "once_cell",
368 - "parking_lot_core",
369 -]
370 -
371 -[[package]]
372 -name = "data-encoding"
373 -version = "2.4.0"
374 -source = "registry+https://github.com/rust-lang/crates.io-index"
375 -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
376 -
377 -[[package]]
378 -name = "digest"
379 -version = "0.10.7"
380 -source = "registry+https://github.com/rust-lang/crates.io-index"
381 -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
382 -dependencies = [
383 - "block-buffer",
384 - "crypto-common",
385 -]
386 -
387 -[[package]]
388 -name = "either"
389 -version = "1.8.1"
390 -source = "registry+https://github.com/rust-lang/crates.io-index"
391 -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
392 -
134 [[package]]
135 name = "encode_unicode"
136 version = "0.3.6"
137 source = "registry+https://github.com/rust-lang/crates.io-index"
138 checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
139
399 -[[package]]
400 -name = "enum-iterator"
401 -version = "1.4.1"
402 -source = "registry+https://github.com/rust-lang/crates.io-index"
403 -checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689"
404 -dependencies = [
405 - "enum-iterator-derive",
406 -]
407 -
408 -[[package]]
409 -name = "enum-iterator-derive"
410 -version = "1.2.1"
411 -source = "registry+https://github.com/rust-lang/crates.io-index"
412 -checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb"
413 -dependencies = [
414 - "proc-macro2",
415 - "quote",
416 - "syn 2.0.23",
417 -]
418 -
140 [[package]]
141 name = "equivalent"
142 version = "1.0.0"
@@ -443,12 +164,6 @@ dependencies = [
164 "libc",
165 ]
166
446 -[[package]]
447 -name = "fixedbitset"
448 -version = "0.4.2"
449 -source = "registry+https://github.com/rust-lang/crates.io-index"
450 -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
451 -
167 [[package]]
168 name = "fnv"
169 version = "1.0.7"
@@ -463,7 +178,7 @@ dependencies = [
178 "forget_estree",
179 "forget_hir",
180 "forget_semantic_analysis",
466 - "indexmap 2.0.0",
181 + "indexmap",
182 "thiserror",
183 ]
184
@@ -472,7 +187,7 @@ name = "forget_diagnostics"
187 version = "0.1.0"
188 dependencies = [
189 "forget_estree",
475 - "miette 5.9.0",
190 + "miette",
191 "static_assertions",
192 "thiserror",
193 ]
@@ -492,21 +207,12 @@ dependencies = [
207 name = "forget_estree_codegen"
208 version = "0.1.0"
209 dependencies = [
495 - "indexmap 2.0.0",
210 + "indexmap",
211 "prettyplease",
212 "quote",
213 "serde",
214 "serde_json",
500 - "syn 2.0.23",
501 -]
502 -
503 -[[package]]
504 -name = "forget_estree_swc"
505 -version = "0.1.0"
506 -dependencies = [
507 - "forget_estree",
508 - "swc",
509 - "swc_core",
215 + "syn",
216 ]
217
218 [[package]]
@@ -521,7 +227,7 @@ dependencies = [
227 "forget_semantic_analysis",
228 "forget_ssa",
229 "insta",
524 - "miette 5.9.0",
230 + "miette",
231 ]
232
233 [[package]]
@@ -545,7 +251,7 @@ dependencies = [
251 "forget_estree",
252 "forget_semantic_analysis",
253 "forget_utils",
548 - "indexmap 2.0.0",
254 + "indexmap",
255 "serde",
256 "thiserror",
257 ]
@@ -560,8 +266,8 @@ dependencies = [
266 "forget_hir",
267 "forget_ssa",
268 "forget_utils",
563 - "indexmap 2.0.0",
564 - "miette 5.9.0",
269 + "indexmap",
270 + "miette",
271 "thiserror",
272 ]
273
@@ -573,7 +279,7 @@ dependencies = [
279 "forget_estree",
280 "forget_hermes_parser",
281 "forget_utils",
576 - "indexmap 2.0.0",
282 + "indexmap",
283 "insta",
284 "serde_json",
285 ]
@@ -585,8 +291,8 @@ dependencies = [
291 "forget_diagnostics",
292 "forget_hir",
293 "forget_utils",
588 - "indexmap 2.0.0",
589 - "miette 5.9.0",
294 + "indexmap",
295 + "miette",
296 "thiserror",
297 ]
298
@@ -606,28 +312,6 @@ dependencies = [
312 "percent-encoding",
313 ]
314
609 -[[package]]
610 -name = "from_variant"
611 -version = "0.1.6"
612 -source = "registry+https://github.com/rust-lang/crates.io-index"
613 -checksum = "03ec5dc38ee19078d84a692b1c41181ff9f94331c76cee66ff0208c770b5e54f"
614 -dependencies = [
615 - "pmutil",
616 - "proc-macro2",
617 - "swc_macros_common",
618 - "syn 2.0.23",
619 -]
620 -
621 -[[package]]
622 -name = "generic-array"
623 -version = "0.14.7"
624 -source = "registry+https://github.com/rust-lang/crates.io-index"
625 -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
626 -dependencies = [
627 - "typenum",
628 - "version_check",
629 -]
630 -
315 [[package]]
316 name = "getrandom"
317 version = "0.2.10"
@@ -635,22 +319,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
319 checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
320 dependencies = [
321 "cfg-if",
638 - "js-sys",
322 "libc",
640 - "wasi 0.11.0+wasi-snapshot-preview1",
641 - "wasm-bindgen",
642 -]
643 -
644 -[[package]]
645 -name = "getset"
646 -version = "0.1.2"
647 -source = "registry+https://github.com/rust-lang/crates.io-index"
648 -checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9"
649 -dependencies = [
650 - "proc-macro-error",
651 - "proc-macro2",
652 - "quote",
653 - "syn 1.0.109",
323 + "wasi",
324 ]
325
326 [[package]]
@@ -678,16 +348,7 @@ version = "0.12.3"
348 source = "registry+https://github.com/rust-lang/crates.io-index"
349 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
350 dependencies = [
681 - "ahash 0.7.6",
682 -]
683 -
684 -[[package]]
685 -name = "hashbrown"
686 -version = "0.13.2"
687 -source = "registry+https://github.com/rust-lang/crates.io-index"
688 -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
689 -dependencies = [
690 - "ahash 0.8.3",
351 + "ahash",
352 ]
353
354 [[package]]
@@ -708,44 +369,12 @@ dependencies = [
369 "thiserror",
370 ]
371
711 -[[package]]
712 -name = "hermit-abi"
713 -version = "0.1.19"
714 -source = "registry+https://github.com/rust-lang/crates.io-index"
715 -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
716 -dependencies = [
717 - "libc",
718 -]
719 -
372 [[package]]
373 name = "hermit-abi"
374 version = "0.3.2"
375 source = "registry+https://github.com/rust-lang/crates.io-index"
376 checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
377
726 -[[package]]
727 -name = "iana-time-zone"
728 -version = "0.1.57"
729 -source = "registry+https://github.com/rust-lang/crates.io-index"
730 -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
731 -dependencies = [
732 - "android_system_properties",
733 - "core-foundation-sys",
734 - "iana-time-zone-haiku",
735 - "js-sys",
736 - "wasm-bindgen",
737 - "windows",
738 -]
739 -
740 -[[package]]
741 -name = "iana-time-zone-haiku"
742 -version = "0.1.2"
743 -source = "registry+https://github.com/rust-lang/crates.io-index"
744 -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
745 -dependencies = [
746 - "cc",
747 -]
748 -
378 [[package]]
379 name = "idna"
380 version = "0.4.0"
@@ -756,23 +385,6 @@ dependencies = [
385 "unicode-normalization",
386 ]
387
759 -[[package]]
760 -name = "if_chain"
761 -version = "1.0.2"
762 -source = "registry+https://github.com/rust-lang/crates.io-index"
763 -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
764 -
765 -[[package]]
766 -name = "indexmap"
767 -version = "1.9.3"
768 -source = "registry+https://github.com/rust-lang/crates.io-index"
769 -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
770 -dependencies = [
771 - "autocfg",
772 - "hashbrown 0.12.3",
773 - "serde",
774 -]
775 -
388 [[package]]
389 name = "indexmap"
390 version = "2.0.0"
@@ -805,31 +417,18 @@ version = "1.0.11"
417 source = "registry+https://github.com/rust-lang/crates.io-index"
418 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
419 dependencies = [
808 - "hermit-abi 0.3.2",
420 + "hermit-abi",
421 "libc",
422 "windows-sys 0.48.0",
423 ]
424
813 -[[package]]
814 -name = "is-macro"
815 -version = "0.3.0"
816 -source = "registry+https://github.com/rust-lang/crates.io-index"
817 -checksum = "f4467ed1321b310c2625c5aa6c1b1ffc5de4d9e42668cf697a08fb033ee8265e"
818 -dependencies = [
819 - "Inflector",
820 - "pmutil",
821 - "proc-macro2",
822 - "quote",
823 - "syn 2.0.23",
824 -]
825 -
425 [[package]]
426 name = "is-terminal"
427 version = "0.4.7"
428 source = "registry+https://github.com/rust-lang/crates.io-index"
429 checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
430 dependencies = [
832 - "hermit-abi 0.3.2",
431 + "hermit-abi",
432 "io-lifetimes",
433 "rustix",
434 "windows-sys 0.48.0",
@@ -841,39 +440,12 @@ version = "1.1.1"
440 source = "registry+https://github.com/rust-lang/crates.io-index"
441 checksum = "616cde7c720bb2bb5824a224687d8f77bfd38922027f01d825cd7453be5099fb"
442
844 -[[package]]
845 -name = "itertools"
846 -version = "0.10.5"
847 -source = "registry+https://github.com/rust-lang/crates.io-index"
848 -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
849 -dependencies = [
850 - "either",
851 -]
852 -
443 [[package]]
444 name = "itoa"
445 version = "1.0.8"
446 source = "registry+https://github.com/rust-lang/crates.io-index"
447 checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
448
859 -[[package]]
860 -name = "js-sys"
861 -version = "0.3.64"
862 -source = "registry+https://github.com/rust-lang/crates.io-index"
863 -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
864 -dependencies = [
865 - "wasm-bindgen",
866 -]
867 -
868 -[[package]]
869 -name = "jsonc-parser"
870 -version = "0.21.1"
871 -source = "registry+https://github.com/rust-lang/crates.io-index"
872 -checksum = "7b56a20e76235284255a09fcd1f45cf55d3c524ea657ebd3854735925c57743d"
873 -dependencies = [
874 - "serde_json",
875 -]
876 -
449 [[package]]
450 name = "juno_support"
451 version = "0.1.0"
@@ -894,81 +466,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
466 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
467
468 [[package]]
897 -name = "lexical"
898 -version = "6.1.1"
899 -source = "registry+https://github.com/rust-lang/crates.io-index"
900 -checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
901 -dependencies = [
902 - "lexical-core",
903 -]
904 -
905 -[[package]]
906 -name = "lexical-core"
907 -version = "0.8.5"
908 -source = "registry+https://github.com/rust-lang/crates.io-index"
909 -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
910 -dependencies = [
911 - "lexical-parse-float",
912 - "lexical-parse-integer",
913 - "lexical-util",
914 - "lexical-write-float",
915 - "lexical-write-integer",
916 -]
917 -
918 -[[package]]
919 -name = "lexical-parse-float"
920 -version = "0.8.5"
921 -source = "registry+https://github.com/rust-lang/crates.io-index"
922 -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
923 -dependencies = [
924 - "lexical-parse-integer",
925 - "lexical-util",
926 - "static_assertions",
927 -]
928 -
929 -[[package]]
930 -name = "lexical-parse-integer"
931 -version = "0.8.6"
932 -source = "registry+https://github.com/rust-lang/crates.io-index"
933 -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
934 -dependencies = [
935 - "lexical-util",
936 - "static_assertions",
937 -]
938 -
939 -[[package]]
940 -name = "lexical-util"
941 -version = "0.8.5"
942 -source = "registry+https://github.com/rust-lang/crates.io-index"
943 -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
944 -dependencies = [
945 - "static_assertions",
946 -]
947 -
948 -[[package]]
949 -name = "lexical-write-float"
950 -version = "0.8.5"
951 -source = "registry+https://github.com/rust-lang/crates.io-index"
952 -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
953 -dependencies = [
954 - "lexical-util",
955 - "lexical-write-integer",
956 - "static_assertions",
957 -]
958 -
959 -[[package]]
960 -name = "lexical-write-integer"
961 -version = "0.8.5"
962 -source = "registry+https://github.com/rust-lang/crates.io-index"
963 -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
964 -dependencies = [
965 - "lexical-util",
966 - "static_assertions",
967 -]
968 -
969 -[[package]]
970 -name = "libc"
971 -version = "0.2.147"
469 +name = "libc"
470 +version = "0.2.147"
471 source = "registry+https://github.com/rust-lang/crates.io-index"
472 checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
473
@@ -989,66 +488,18 @@ version = "0.3.8"
488 source = "registry+https://github.com/rust-lang/crates.io-index"
489 checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
490
992 -[[package]]
993 -name = "lock_api"
994 -version = "0.4.10"
995 -source = "registry+https://github.com/rust-lang/crates.io-index"
996 -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
997 -dependencies = [
998 - "autocfg",
999 - "scopeguard",
1000 -]
1001 -
491 [[package]]
492 name = "log"
493 version = "0.4.19"
494 source = "registry+https://github.com/rust-lang/crates.io-index"
495 checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
496
1008 -[[package]]
1009 -name = "lru"
1010 -version = "0.10.1"
1011 -source = "registry+https://github.com/rust-lang/crates.io-index"
1012 -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"
1013 -dependencies = [
1014 - "hashbrown 0.13.2",
1015 -]
1016 -
497 [[package]]
498 name = "memchr"
499 version = "2.5.0"
500 source = "registry+https://github.com/rust-lang/crates.io-index"
501 checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
502
1023 -[[package]]
1024 -name = "memoffset"
1025 -version = "0.9.0"
1026 -source = "registry+https://github.com/rust-lang/crates.io-index"
1027 -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
1028 -dependencies = [
1029 - "autocfg",
1030 -]
1031 -
1032 -[[package]]
1033 -name = "miette"
1034 -version = "4.7.1"
1035 -source = "registry+https://github.com/rust-lang/crates.io-index"
1036 -checksum = "1c90329e44f9208b55f45711f9558cec15d7ef8295cc65ecd6d4188ae8edc58c"
1037 -dependencies = [
1038 - "atty",
1039 - "backtrace",
1040 - "miette-derive 4.7.1",
1041 - "once_cell",
1042 - "owo-colors",
1043 - "supports-color 1.3.1",
1044 - "supports-hyperlinks 1.2.0",
1045 - "supports-unicode 1.0.2",
1046 - "terminal_size",
1047 - "textwrap",
1048 - "thiserror",
1049 - "unicode-width",
1050 -]
1051 -
503 [[package]]
504 name = "miette"
505 version = "5.9.0"
@@ -1058,29 +509,18 @@ dependencies = [
509 "backtrace",
510 "backtrace-ext",
511 "is-terminal",
1061 - "miette-derive 5.9.0",
512 + "miette-derive",
513 "once_cell",
514 "owo-colors",
1064 - "supports-color 2.0.0",
1065 - "supports-hyperlinks 2.1.0",
1066 - "supports-unicode 2.0.0",
515 + "supports-color",
516 + "supports-hyperlinks",
517 + "supports-unicode",
518 "terminal_size",
519 "textwrap",
520 "thiserror",
521 "unicode-width",
522 ]
523
1073 -[[package]]
1074 -name = "miette-derive"
1075 -version = "4.7.1"
1076 -source = "registry+https://github.com/rust-lang/crates.io-index"
1077 -checksum = "6b5bc45b761bcf1b5e6e6c4128cd93b84c218721a8d9b894aa0aff4ed180174c"
1078 -dependencies = [
1079 - "proc-macro2",
1080 - "quote",
1081 - "syn 1.0.109",
1082 -]
1083 -
524 [[package]]
525 name = "miette-derive"
526 version = "5.9.0"
@@ -1089,15 +529,9 @@ checksum = "4901771e1d44ddb37964565c654a3223ba41a594d02b8da471cc4464912b5cfa"
529 dependencies = [
530 "proc-macro2",
531 "quote",
1092 - "syn 2.0.23",
532 + "syn",
533 ]
534
1095 -[[package]]
1096 -name = "minimal-lexical"
1097 -version = "0.2.1"
1098 -source = "registry+https://github.com/rust-lang/crates.io-index"
1099 -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
1100 -
535 [[package]]
536 name = "miniz_oxide"
537 version = "0.7.1"
@@ -1108,1434 +542,209 @@ dependencies = [
542 ]
543
544 [[package]]
1111 -name = "new_debug_unreachable"
1112 -version = "1.0.4"
1113 -source = "registry+https://github.com/rust-lang/crates.io-index"
1114 -checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
1115 -
1116 -[[package]]
1117 -name = "nom"
1118 -version = "7.1.3"
1119 -source = "registry+https://github.com/rust-lang/crates.io-index"
1120 -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
1121 -dependencies = [
1122 - "memchr",
1123 - "minimal-lexical",
1124 -]
1125 -
1126 -[[package]]
1127 -name = "normpath"
1128 -version = "0.2.0"
1129 -source = "registry+https://github.com/rust-lang/crates.io-index"
1130 -checksum = "2a9da8c9922c35a1033d76f7272dfc2e7ee20392083d75aeea6ced23c6266578"
1131 -dependencies = [
1132 - "winapi",
1133 -]
1134 -
1135 -[[package]]
1136 -name = "num-bigint"
1137 -version = "0.4.3"
1138 -source = "registry+https://github.com/rust-lang/crates.io-index"
1139 -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
1140 -dependencies = [
1141 - "autocfg",
1142 - "num-integer",
1143 - "num-traits",
1144 - "serde",
1145 -]
1146 -
1147 -[[package]]
1148 -name = "num-integer"
1149 -version = "0.1.45"
1150 -source = "registry+https://github.com/rust-lang/crates.io-index"
1151 -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
1152 -dependencies = [
1153 - "autocfg",
1154 - "num-traits",
1155 -]
1156 -
1157 -[[package]]
1158 -name = "num-traits"
1159 -version = "0.2.15"
1160 -source = "registry+https://github.com/rust-lang/crates.io-index"
1161 -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
1162 -dependencies = [
1163 - "autocfg",
1164 -]
1165 -
1166 -[[package]]
1167 -name = "num_cpus"
1168 -version = "1.16.0"
1169 -source = "registry+https://github.com/rust-lang/crates.io-index"
1170 -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
1171 -dependencies = [
1172 - "hermit-abi 0.3.2",
1173 - "libc",
1174 -]
1175 -
1176 -[[package]]
1177 -name = "object"
1178 -version = "0.31.1"
1179 -source = "registry+https://github.com/rust-lang/crates.io-index"
1180 -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
1181 -dependencies = [
1182 - "memchr",
1183 -]
1184 -
1185 -[[package]]
1186 -name = "once_cell"
1187 -version = "1.18.0"
1188 -source = "registry+https://github.com/rust-lang/crates.io-index"
1189 -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
1190 -
1191 -[[package]]
1192 -name = "owo-colors"
1193 -version = "3.5.0"
1194 -source = "registry+https://github.com/rust-lang/crates.io-index"
1195 -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
1196 -
1197 -[[package]]
1198 -name = "parking_lot"
1199 -version = "0.12.1"
1200 -source = "registry+https://github.com/rust-lang/crates.io-index"
1201 -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
1202 -dependencies = [
1203 - "lock_api",
1204 - "parking_lot_core",
1205 -]
1206 -
1207 -[[package]]
1208 -name = "parking_lot_core"
1209 -version = "0.9.8"
1210 -source = "registry+https://github.com/rust-lang/crates.io-index"
1211 -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
1212 -dependencies = [
1213 - "cfg-if",
1214 - "libc",
1215 - "redox_syscall",
1216 - "smallvec",
1217 - "windows-targets 0.48.1",
1218 -]
1219 -
1220 -[[package]]
1221 -name = "path-clean"
1222 -version = "0.1.0"
1223 -source = "registry+https://github.com/rust-lang/crates.io-index"
1224 -checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd"
1225 -
1226 -[[package]]
1227 -name = "pathdiff"
1228 -version = "0.2.1"
1229 -source = "registry+https://github.com/rust-lang/crates.io-index"
1230 -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
1231 -
1232 -[[package]]
1233 -name = "percent-encoding"
1234 -version = "2.3.0"
1235 -source = "registry+https://github.com/rust-lang/crates.io-index"
1236 -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
1237 -
1238 -[[package]]
1239 -name = "petgraph"
1240 -version = "0.6.3"
1241 -source = "registry+https://github.com/rust-lang/crates.io-index"
1242 -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"
1243 -dependencies = [
1244 - "fixedbitset",
1245 - "indexmap 1.9.3",
1246 -]
1247 -
1248 -[[package]]
1249 -name = "phf"
1250 -version = "0.10.1"
1251 -source = "registry+https://github.com/rust-lang/crates.io-index"
1252 -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
1253 -dependencies = [
1254 - "phf_macros",
1255 - "phf_shared",
1256 - "proc-macro-hack",
1257 -]
1258 -
1259 -[[package]]
1260 -name = "phf_generator"
1261 -version = "0.10.0"
1262 -source = "registry+https://github.com/rust-lang/crates.io-index"
1263 -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
1264 -dependencies = [
1265 - "phf_shared",
1266 - "rand",
1267 -]
1268 -
1269 -[[package]]
1270 -name = "phf_macros"
1271 -version = "0.10.0"
1272 -source = "registry+https://github.com/rust-lang/crates.io-index"
1273 -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
1274 -dependencies = [
1275 - "phf_generator",
1276 - "phf_shared",
1277 - "proc-macro-hack",
1278 - "proc-macro2",
1279 - "quote",
1280 - "syn 1.0.109",
1281 -]
1282 -
1283 -[[package]]
1284 -name = "phf_shared"
1285 -version = "0.10.0"
1286 -source = "registry+https://github.com/rust-lang/crates.io-index"
1287 -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
1288 -dependencies = [
1289 - "siphasher",
1290 -]
1291 -
1292 -[[package]]
1293 -name = "pin-project-lite"
1294 -version = "0.2.10"
1295 -source = "registry+https://github.com/rust-lang/crates.io-index"
1296 -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
1297 -
1298 -[[package]]
1299 -name = "pmutil"
1300 -version = "0.6.1"
1301 -source = "registry+https://github.com/rust-lang/crates.io-index"
1302 -checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
1303 -dependencies = [
1304 - "proc-macro2",
1305 - "quote",
1306 - "syn 2.0.23",
1307 -]
1308 -
1309 -[[package]]
1310 -name = "ppv-lite86"
1311 -version = "0.2.17"
1312 -source = "registry+https://github.com/rust-lang/crates.io-index"
1313 -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
1314 -
1315 -[[package]]
1316 -name = "precomputed-hash"
1317 -version = "0.1.1"
1318 -source = "registry+https://github.com/rust-lang/crates.io-index"
1319 -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
1320 -
1321 -[[package]]
1322 -name = "preset_env_base"
1323 -version = "0.4.5"
1324 -source = "registry+https://github.com/rust-lang/crates.io-index"
1325 -checksum = "ae83c5857727636a1f2c7188632c8a57986d2f1d2e2cf45f2642f5856c5b8e85"
1326 -dependencies = [
1327 - "ahash 0.8.3",
1328 - "anyhow",
1329 - "browserslist-rs",
1330 - "dashmap",
1331 - "from_variant",
1332 - "once_cell",
1333 - "semver 1.0.17",
1334 - "serde",
1335 - "st-map",
1336 - "tracing",
1337 -]
1338 -
1339 -[[package]]
1340 -name = "prettyplease"
1341 -version = "0.2.10"
1342 -source = "registry+https://github.com/rust-lang/crates.io-index"
1343 -checksum = "92139198957b410250d43fad93e630d956499a625c527eda65175c8680f83387"
1344 -dependencies = [
1345 - "proc-macro2",
1346 - "syn 2.0.23",
1347 -]
1348 -
1349 -[[package]]
1350 -name = "proc-macro-error"
1351 -version = "1.0.4"
1352 -source = "registry+https://github.com/rust-lang/crates.io-index"
1353 -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
1354 -dependencies = [
1355 - "proc-macro-error-attr",
1356 - "proc-macro2",
1357 - "quote",
1358 - "syn 1.0.109",
1359 - "version_check",
1360 -]
1361 -
1362 -[[package]]
1363 -name = "proc-macro-error-attr"
1364 -version = "1.0.4"
1365 -source = "registry+https://github.com/rust-lang/crates.io-index"
1366 -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
1367 -dependencies = [
1368 - "proc-macro2",
1369 - "quote",
1370 - "version_check",
1371 -]
1372 -
1373 -[[package]]
1374 -name = "proc-macro-hack"
1375 -version = "0.5.20+deprecated"
1376 -source = "registry+https://github.com/rust-lang/crates.io-index"
1377 -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
1378 -
1379 -[[package]]
1380 -name = "proc-macro2"
1381 -version = "1.0.63"
1382 -source = "registry+https://github.com/rust-lang/crates.io-index"
1383 -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
1384 -dependencies = [
1385 - "unicode-ident",
1386 -]
1387 -
1388 -[[package]]
1389 -name = "psm"
1390 -version = "0.1.21"
1391 -source = "registry+https://github.com/rust-lang/crates.io-index"
1392 -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
1393 -dependencies = [
1394 - "cc",
1395 -]
1396 -
1397 -[[package]]
1398 -name = "quote"
1399 -version = "1.0.29"
1400 -source = "registry+https://github.com/rust-lang/crates.io-index"
1401 -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
1402 -dependencies = [
1403 - "proc-macro2",
1404 -]
1405 -
1406 -[[package]]
1407 -name = "radix_fmt"
1408 -version = "1.0.0"
1409 -source = "registry+https://github.com/rust-lang/crates.io-index"
1410 -checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
1411 -
1412 -[[package]]
1413 -name = "rand"
1414 -version = "0.8.5"
1415 -source = "registry+https://github.com/rust-lang/crates.io-index"
1416 -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
1417 -dependencies = [
1418 - "libc",
1419 - "rand_chacha",
1420 - "rand_core",
1421 -]
1422 -
1423 -[[package]]
1424 -name = "rand_chacha"
1425 -version = "0.3.1"
1426 -source = "registry+https://github.com/rust-lang/crates.io-index"
1427 -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
1428 -dependencies = [
1429 - "ppv-lite86",
1430 - "rand_core",
1431 -]
1432 -
1433 -[[package]]
1434 -name = "rand_core"
1435 -version = "0.6.4"
1436 -source = "registry+https://github.com/rust-lang/crates.io-index"
1437 -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1438 -dependencies = [
1439 - "getrandom",
1440 -]
1441 -
1442 -[[package]]
1443 -name = "rayon"
1444 -version = "1.7.0"
1445 -source = "registry+https://github.com/rust-lang/crates.io-index"
1446 -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
1447 -dependencies = [
1448 - "either",
1449 - "rayon-core",
1450 -]
1451 -
1452 -[[package]]
1453 -name = "rayon-core"
1454 -version = "1.11.0"
1455 -source = "registry+https://github.com/rust-lang/crates.io-index"
1456 -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
1457 -dependencies = [
1458 - "crossbeam-channel",
1459 - "crossbeam-deque",
1460 - "crossbeam-utils",
1461 - "num_cpus",
1462 -]
1463 -
1464 -[[package]]
1465 -name = "redox_syscall"
1466 -version = "0.3.5"
1467 -source = "registry+https://github.com/rust-lang/crates.io-index"
1468 -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
1469 -dependencies = [
1470 - "bitflags 1.3.2",
1471 -]
1472 -
1473 -[[package]]
1474 -name = "regex"
1475 -version = "1.8.4"
1476 -source = "registry+https://github.com/rust-lang/crates.io-index"
1477 -checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
1478 -dependencies = [
1479 - "aho-corasick 1.0.2",
1480 - "memchr",
1481 - "regex-syntax",
1482 -]
1483 -
1484 -[[package]]
1485 -name = "regex-syntax"
1486 -version = "0.7.2"
1487 -source = "registry+https://github.com/rust-lang/crates.io-index"
1488 -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
1489 -
1490 -[[package]]
1491 -name = "rustc-demangle"
1492 -version = "0.1.23"
1493 -source = "registry+https://github.com/rust-lang/crates.io-index"
1494 -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
1495 -
1496 -[[package]]
1497 -name = "rustc-hash"
1498 -version = "1.1.0"
1499 -source = "registry+https://github.com/rust-lang/crates.io-index"
1500 -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
1501 -
1502 -[[package]]
1503 -name = "rustc_version"
1504 -version = "0.2.3"
1505 -source = "registry+https://github.com/rust-lang/crates.io-index"
1506 -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
1507 -dependencies = [
1508 - "semver 0.9.0",
1509 -]
1510 -
1511 -[[package]]
1512 -name = "rustix"
1513 -version = "0.37.22"
1514 -source = "registry+https://github.com/rust-lang/crates.io-index"
1515 -checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c"
1516 -dependencies = [
1517 - "bitflags 1.3.2",
1518 - "errno",
1519 - "io-lifetimes",
1520 - "libc",
1521 - "linux-raw-sys",
1522 - "windows-sys 0.48.0",
1523 -]
1524 -
1525 -[[package]]
1526 -name = "rustversion"
1527 -version = "1.0.13"
1528 -source = "registry+https://github.com/rust-lang/crates.io-index"
1529 -checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f"
1530 -
1531 -[[package]]
1532 -name = "ryu"
1533 -version = "1.0.14"
1534 -source = "registry+https://github.com/rust-lang/crates.io-index"
1535 -checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
1536 -
1537 -[[package]]
1538 -name = "ryu-js"
1539 -version = "0.2.2"
1540 -source = "registry+https://github.com/rust-lang/crates.io-index"
1541 -checksum = "6518fc26bced4d53678a22d6e423e9d8716377def84545fe328236e3af070e7f"
1542 -
1543 -[[package]]
1544 -name = "same-file"
1545 -version = "1.0.6"
1546 -source = "registry+https://github.com/rust-lang/crates.io-index"
1547 -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
1548 -dependencies = [
1549 - "winapi-util",
1550 -]
1551 -
1552 -[[package]]
1553 -name = "scoped-tls"
1554 -version = "1.0.1"
1555 -source = "registry+https://github.com/rust-lang/crates.io-index"
1556 -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
1557 -
1558 -[[package]]
1559 -name = "scopeguard"
1560 -version = "1.1.0"
1561 -source = "registry+https://github.com/rust-lang/crates.io-index"
1562 -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
1563 -
1564 -[[package]]
1565 -name = "semver"
1566 -version = "0.9.0"
1567 -source = "registry+https://github.com/rust-lang/crates.io-index"
1568 -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
1569 -dependencies = [
1570 - "semver-parser",
1571 -]
1572 -
1573 -[[package]]
1574 -name = "semver"
1575 -version = "1.0.17"
1576 -source = "registry+https://github.com/rust-lang/crates.io-index"
1577 -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
1578 -dependencies = [
1579 - "serde",
1580 -]
1581 -
1582 -[[package]]
1583 -name = "semver-parser"
1584 -version = "0.7.0"
1585 -source = "registry+https://github.com/rust-lang/crates.io-index"
1586 -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
1587 -
1588 -[[package]]
1589 -name = "serde"
1590 -version = "1.0.167"
1591 -source = "registry+https://github.com/rust-lang/crates.io-index"
1592 -checksum = "7daf513456463b42aa1d94cff7e0c24d682b429f020b9afa4f5ba5c40a22b237"
1593 -dependencies = [
1594 - "serde_derive",
1595 -]
1596 -
1597 -[[package]]
1598 -name = "serde-wasm-bindgen"
1599 -version = "0.4.5"
1600 -source = "registry+https://github.com/rust-lang/crates.io-index"
1601 -checksum = "e3b4c031cd0d9014307d82b8abf653c0290fbdaeb4c02d00c63cf52f728628bf"
1602 -dependencies = [
1603 - "js-sys",
1604 - "serde",
1605 - "wasm-bindgen",
1606 -]
1607 -
1608 -[[package]]
1609 -name = "serde_derive"
1610 -version = "1.0.167"
1611 -source = "registry+https://github.com/rust-lang/crates.io-index"
1612 -checksum = "b69b106b68bc8054f0e974e70d19984040f8a5cf9215ca82626ea4853f82c4b9"
1613 -dependencies = [
1614 - "proc-macro2",
1615 - "quote",
1616 - "syn 2.0.23",
1617 -]
1618 -
1619 -[[package]]
1620 -name = "serde_json"
1621 -version = "1.0.100"
1622 -source = "registry+https://github.com/rust-lang/crates.io-index"
1623 -checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
1624 -dependencies = [
1625 - "itoa",
1626 - "ryu",
1627 - "serde",
1628 -]
1629 -
1630 -[[package]]
1631 -name = "sha-1"
1632 -version = "0.10.0"
1633 -source = "registry+https://github.com/rust-lang/crates.io-index"
1634 -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
1635 -dependencies = [
1636 - "cfg-if",
1637 - "cpufeatures",
1638 - "digest",
1639 -]
1640 -
1641 -[[package]]
1642 -name = "similar"
1643 -version = "2.2.1"
1644 -source = "registry+https://github.com/rust-lang/crates.io-index"
1645 -checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
1646 -
1647 -[[package]]
1648 -name = "siphasher"
1649 -version = "0.3.10"
1650 -source = "registry+https://github.com/rust-lang/crates.io-index"
1651 -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
1652 -
1653 -[[package]]
1654 -name = "smallvec"
1655 -version = "1.10.0"
1656 -source = "registry+https://github.com/rust-lang/crates.io-index"
1657 -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
1658 -
1659 -[[package]]
1660 -name = "smartstring"
1661 -version = "1.0.1"
1662 -source = "registry+https://github.com/rust-lang/crates.io-index"
1663 -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
1664 -dependencies = [
1665 - "autocfg",
1666 - "static_assertions",
1667 - "version_check",
1668 -]
1669 -
1670 -[[package]]
1671 -name = "smawk"
1672 -version = "0.3.1"
1673 -source = "registry+https://github.com/rust-lang/crates.io-index"
1674 -checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
1675 -
1676 -[[package]]
1677 -name = "sourcemap"
1678 -version = "6.2.3"
1679 -source = "registry+https://github.com/rust-lang/crates.io-index"
1680 -checksum = "eed16231c92d0a6f0388f56e0ab2be24ecff1173f8e22f0ea5e074d0525631cb"
1681 -dependencies = [
1682 - "data-encoding",
1683 - "if_chain",
1684 - "rustc_version",
1685 - "serde",
1686 - "serde_json",
1687 - "unicode-id",
1688 - "url",
1689 -]
1690 -
1691 -[[package]]
1692 -name = "st-map"
1693 -version = "0.2.0"
1694 -source = "registry+https://github.com/rust-lang/crates.io-index"
1695 -checksum = "f352d5d14be5a1f956d76ae0c8060c3487aaa2a080f10a4b4ff023c7c05a9047"
1696 -dependencies = [
1697 - "arrayvec",
1698 - "static-map-macro",
1699 -]
1700 -
1701 -[[package]]
1702 -name = "stable_deref_trait"
1703 -version = "1.2.0"
1704 -source = "registry+https://github.com/rust-lang/crates.io-index"
1705 -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
1706 -
1707 -[[package]]
1708 -name = "stacker"
1709 -version = "0.1.15"
1710 -source = "registry+https://github.com/rust-lang/crates.io-index"
1711 -checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
1712 -dependencies = [
1713 - "cc",
1714 - "cfg-if",
1715 - "libc",
1716 - "psm",
1717 - "winapi",
1718 -]
1719 -
1720 -[[package]]
1721 -name = "static-map-macro"
1722 -version = "0.3.0"
1723 -source = "registry+https://github.com/rust-lang/crates.io-index"
1724 -checksum = "7628ae0bd92555d3de4303da41a5c8b1c5363e892001325f34e4be9ed024d0d7"
1725 -dependencies = [
1726 - "pmutil",
1727 - "proc-macro2",
1728 - "quote",
1729 - "syn 2.0.23",
1730 -]
1731 -
1732 -[[package]]
1733 -name = "static_assertions"
1734 -version = "1.1.0"
1735 -source = "registry+https://github.com/rust-lang/crates.io-index"
1736 -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
1737 -
1738 -[[package]]
1739 -name = "string_cache"
1740 -version = "0.8.7"
1741 -source = "registry+https://github.com/rust-lang/crates.io-index"
1742 -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
1743 -dependencies = [
1744 - "new_debug_unreachable",
1745 - "once_cell",
1746 - "parking_lot",
1747 - "phf_shared",
1748 - "precomputed-hash",
1749 - "serde",
1750 -]
1751 -
1752 -[[package]]
1753 -name = "string_cache_codegen"
1754 -version = "0.5.2"
1755 -source = "registry+https://github.com/rust-lang/crates.io-index"
1756 -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
1757 -dependencies = [
1758 - "phf_generator",
1759 - "phf_shared",
1760 - "proc-macro2",
1761 - "quote",
1762 -]
1763 -
1764 -[[package]]
1765 -name = "string_enum"
1766 -version = "0.4.1"
1767 -source = "registry+https://github.com/rust-lang/crates.io-index"
1768 -checksum = "8fa4d4f81d7c05b9161f8de839975d3326328b8ba2831164b465524cc2f55252"
1769 -dependencies = [
1770 - "pmutil",
1771 - "proc-macro2",
1772 - "quote",
1773 - "swc_macros_common",
1774 - "syn 2.0.23",
1775 -]
1776 -
1777 -[[package]]
1778 -name = "supports-color"
1779 -version = "1.3.1"
1780 -source = "registry+https://github.com/rust-lang/crates.io-index"
1781 -checksum = "8ba6faf2ca7ee42fdd458f4347ae0a9bd6bcc445ad7cb57ad82b383f18870d6f"
1782 -dependencies = [
1783 - "atty",
1784 - "is_ci",
1785 -]
1786 -
1787 -[[package]]
1788 -name = "supports-color"
1789 -version = "2.0.0"
1790 -source = "registry+https://github.com/rust-lang/crates.io-index"
1791 -checksum = "4950e7174bffabe99455511c39707310e7e9b440364a2fcb1cc21521be57b354"
1792 -dependencies = [
1793 - "is-terminal",
1794 - "is_ci",
1795 -]
1796 -
1797 -[[package]]
1798 -name = "supports-hyperlinks"
1799 -version = "1.2.0"
1800 -source = "registry+https://github.com/rust-lang/crates.io-index"
1801 -checksum = "590b34f7c5f01ecc9d78dba4b3f445f31df750a67621cf31626f3b7441ce6406"
1802 -dependencies = [
1803 - "atty",
1804 -]
1805 -
1806 -[[package]]
1807 -name = "supports-hyperlinks"
1808 -version = "2.1.0"
1809 -source = "registry+https://github.com/rust-lang/crates.io-index"
1810 -checksum = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d"
1811 -dependencies = [
1812 - "is-terminal",
1813 -]
1814 -
1815 -[[package]]
1816 -name = "supports-unicode"
1817 -version = "1.0.2"
1818 -source = "registry+https://github.com/rust-lang/crates.io-index"
1819 -checksum = "a8b945e45b417b125a8ec51f1b7df2f8df7920367700d1f98aedd21e5735f8b2"
1820 -dependencies = [
1821 - "atty",
1822 -]
1823 -
1824 -[[package]]
1825 -name = "supports-unicode"
1826 -version = "2.0.0"
1827 -source = "registry+https://github.com/rust-lang/crates.io-index"
1828 -checksum = "4b6c2cb240ab5dd21ed4906895ee23fe5a48acdbd15a3ce388e7b62a9b66baf7"
1829 -dependencies = [
1830 - "is-terminal",
1831 -]
1832 -
1833 -[[package]]
1834 -name = "swc"
1835 -version = "0.264.8"
1836 -source = "registry+https://github.com/rust-lang/crates.io-index"
1837 -checksum = "c96d692a45418867d3b208ad320c9cd27ef8ca4f58d0a043ad30887b32c5144b"
1838 -dependencies = [
1839 - "ahash 0.8.3",
1840 - "anyhow",
1841 - "base64",
1842 - "dashmap",
1843 - "either",
1844 - "indexmap 1.9.3",
1845 - "jsonc-parser",
1846 - "lru",
1847 - "once_cell",
1848 - "parking_lot",
1849 - "pathdiff",
1850 - "regex",
1851 - "rustc-hash",
1852 - "serde",
1853 - "serde_json",
1854 - "sourcemap",
1855 - "swc_atoms",
1856 - "swc_cached",
1857 - "swc_common",
1858 - "swc_config",
1859 - "swc_ecma_ast",
1860 - "swc_ecma_codegen",
1861 - "swc_ecma_ext_transforms",
1862 - "swc_ecma_lints",
1863 - "swc_ecma_loader",
1864 - "swc_ecma_minifier",
1865 - "swc_ecma_parser",
1866 - "swc_ecma_preset_env",
1867 - "swc_ecma_transforms",
1868 - "swc_ecma_transforms_base",
1869 - "swc_ecma_transforms_compat",
1870 - "swc_ecma_transforms_optimization",
1871 - "swc_ecma_utils",
1872 - "swc_ecma_visit",
1873 - "swc_error_reporters",
1874 - "swc_node_comments",
1875 - "swc_timer",
1876 - "swc_visit",
1877 - "tracing",
1878 - "url",
1879 -]
1880 -
1881 -[[package]]
1882 -name = "swc_atoms"
1883 -version = "0.5.6"
1884 -source = "registry+https://github.com/rust-lang/crates.io-index"
1885 -checksum = "93d0307dc4bfd107d49c7528350c372758cfca94fb503629b9a056e6a1572860"
1886 -dependencies = [
1887 - "once_cell",
1888 - "rustc-hash",
1889 - "serde",
1890 - "string_cache",
1891 - "string_cache_codegen",
1892 - "triomphe",
1893 -]
1894 -
1895 -[[package]]
1896 -name = "swc_cached"
1897 -version = "0.3.17"
1898 -source = "registry+https://github.com/rust-lang/crates.io-index"
1899 -checksum = "97b8051bbf1c23817f9f2912fce18d9a6efcaaf8f8e1a4c69dbaf72bcaf71136"
1900 -dependencies = [
1901 - "ahash 0.8.3",
1902 - "anyhow",
1903 - "dashmap",
1904 - "once_cell",
1905 - "regex",
1906 - "serde",
1907 -]
1908 -
1909 -[[package]]
1910 -name = "swc_common"
1911 -version = "0.31.16"
1912 -source = "registry+https://github.com/rust-lang/crates.io-index"
1913 -checksum = "c6414bd4e553f5638961d39b07075ffd37a3d63176829592f4a5900260d94ca1"
1914 -dependencies = [
1915 - "ahash 0.8.3",
1916 - "ast_node",
1917 - "better_scoped_tls",
1918 - "cfg-if",
1919 - "either",
1920 - "from_variant",
1921 - "new_debug_unreachable",
1922 - "num-bigint",
1923 - "once_cell",
1924 - "parking_lot",
1925 - "rustc-hash",
1926 - "serde",
1927 - "siphasher",
1928 - "sourcemap",
1929 - "string_cache",
1930 - "swc_atoms",
1931 - "swc_eq_ignore_macros",
1932 - "swc_visit",
1933 - "tracing",
1934 - "unicode-width",
1935 - "url",
1936 -]
1937 -
1938 -[[package]]
1939 -name = "swc_config"
1940 -version = "0.1.7"
1941 -source = "registry+https://github.com/rust-lang/crates.io-index"
1942 -checksum = "9ba1c7a40d38f9dd4e9a046975d3faf95af42937b34b2b963be4d8f01239584b"
1943 -dependencies = [
1944 - "indexmap 1.9.3",
1945 - "serde",
1946 - "serde_json",
1947 - "swc_config_macro",
1948 -]
1949 -
1950 -[[package]]
1951 -name = "swc_config_macro"
1952 -version = "0.1.2"
1953 -source = "registry+https://github.com/rust-lang/crates.io-index"
1954 -checksum = "e5b5aaca9a0082be4515f0fbbecc191bf5829cd25b5b9c0a2810f6a2bb0d6829"
1955 -dependencies = [
1956 - "pmutil",
1957 - "proc-macro2",
1958 - "quote",
1959 - "swc_macros_common",
1960 - "syn 2.0.23",
1961 -]
1962 -
1963 -[[package]]
1964 -name = "swc_core"
1965 -version = "0.79.9"
1966 -source = "registry+https://github.com/rust-lang/crates.io-index"
1967 -checksum = "c51e91b0c4f50dd65f94f18a3e3fb9bef463a0d6836470b91c23575ca0778e63"
1968 -dependencies = [
1969 - "swc",
1970 - "swc_atoms",
1971 - "swc_common",
1972 - "swc_ecma_ast",
1973 - "swc_ecma_parser",
1974 - "swc_ecma_transforms_base",
1975 - "swc_ecma_visit",
1976 - "vergen",
1977 -]
1978 -
1979 -[[package]]
1980 -name = "swc_ecma_ast"
1981 -version = "0.107.0"
1982 -source = "registry+https://github.com/rust-lang/crates.io-index"
1983 -checksum = "5693558188efdd5b664e517b69ba8056a7f64c214ca8cd034e3ae8314566b866"
1984 -dependencies = [
1985 - "bitflags 2.3.3",
1986 - "is-macro",
1987 - "num-bigint",
1988 - "scoped-tls",
1989 - "serde",
1990 - "string_enum",
1991 - "swc_atoms",
1992 - "swc_common",
1993 - "unicode-id",
1994 -]
1995 -
1996 -[[package]]
1997 -name = "swc_ecma_codegen"
1998 -version = "0.142.1"
1999 -source = "registry+https://github.com/rust-lang/crates.io-index"
2000 -checksum = "12a1e2c520108525667676df493a636afe679112f19fc51a2d226f853f7513a1"
2001 -dependencies = [
2002 - "memchr",
2003 - "num-bigint",
2004 - "once_cell",
2005 - "rustc-hash",
2006 - "serde",
2007 - "sourcemap",
2008 - "swc_atoms",
2009 - "swc_common",
2010 - "swc_ecma_ast",
2011 - "swc_ecma_codegen_macros",
2012 - "tracing",
2013 -]
2014 -
2015 -[[package]]
2016 -name = "swc_ecma_codegen_macros"
2017 -version = "0.7.3"
2018 -source = "registry+https://github.com/rust-lang/crates.io-index"
2019 -checksum = "dcdff076dccca6cc6a0e0b2a2c8acfb066014382bc6df98ec99e755484814384"
2020 -dependencies = [
2021 - "pmutil",
2022 - "proc-macro2",
2023 - "quote",
2024 - "swc_macros_common",
2025 - "syn 2.0.23",
2026 -]
2027 -
2028 -[[package]]
2029 -name = "swc_ecma_ext_transforms"
2030 -version = "0.106.1"
2031 -source = "registry+https://github.com/rust-lang/crates.io-index"
2032 -checksum = "38f16586ee4665969223337d81c1d5a2f3c212b2996c0c2e953fe77590cdcb39"
2033 -dependencies = [
2034 - "phf",
2035 - "swc_atoms",
2036 - "swc_common",
2037 - "swc_ecma_ast",
2038 - "swc_ecma_utils",
2039 - "swc_ecma_visit",
2040 -]
2041 -
2042 -[[package]]
2043 -name = "swc_ecma_lints"
2044 -version = "0.85.1"
2045 -source = "registry+https://github.com/rust-lang/crates.io-index"
2046 -checksum = "9303e33d47e5e524cece64a1d61cff6c02d1cd026aba60bc97954d03a21ac4f9"
2047 -dependencies = [
2048 - "ahash 0.8.3",
2049 - "auto_impl",
2050 - "dashmap",
2051 - "parking_lot",
2052 - "rayon",
2053 - "regex",
2054 - "serde",
2055 - "swc_atoms",
2056 - "swc_common",
2057 - "swc_config",
2058 - "swc_ecma_ast",
2059 - "swc_ecma_utils",
2060 - "swc_ecma_visit",
2061 -]
2062 -
2063 -[[package]]
2064 -name = "swc_ecma_loader"
2065 -version = "0.43.18"
2066 -source = "registry+https://github.com/rust-lang/crates.io-index"
2067 -checksum = "8d40f8d1626b33ba85ee17f43268b3bb6382278b9d3a3c1faa52c57e71769a60"
2068 -dependencies = [
2069 - "ahash 0.8.3",
2070 - "anyhow",
2071 - "dashmap",
2072 - "lru",
2073 - "normpath",
2074 - "once_cell",
2075 - "parking_lot",
2076 - "path-clean",
2077 - "pathdiff",
2078 - "serde",
2079 - "serde_json",
2080 - "swc_cached",
2081 - "swc_common",
2082 - "tracing",
2083 -]
2084 -
2085 -[[package]]
2086 -name = "swc_ecma_minifier"
2087 -version = "0.184.7"
2088 -source = "registry+https://github.com/rust-lang/crates.io-index"
2089 -checksum = "6c1106ce1d65d21c38857dd0338f59a261b6cdc38f581954b1798a785d014524"
2090 -dependencies = [
2091 - "ahash 0.8.3",
2092 - "arrayvec",
2093 - "indexmap 1.9.3",
2094 - "num-bigint",
2095 - "num_cpus",
2096 - "once_cell",
2097 - "parking_lot",
2098 - "radix_fmt",
2099 - "regex",
2100 - "rustc-hash",
2101 - "ryu-js",
2102 - "serde",
2103 - "serde_json",
2104 - "swc_atoms",
2105 - "swc_cached",
2106 - "swc_common",
2107 - "swc_config",
2108 - "swc_ecma_ast",
2109 - "swc_ecma_codegen",
2110 - "swc_ecma_parser",
2111 - "swc_ecma_transforms_base",
2112 - "swc_ecma_transforms_optimization",
2113 - "swc_ecma_usage_analyzer",
2114 - "swc_ecma_utils",
2115 - "swc_ecma_visit",
2116 - "swc_timer",
2117 - "tracing",
2118 -]
2119 -
2120 -[[package]]
2121 -name = "swc_ecma_parser"
2122 -version = "0.137.1"
2123 -source = "registry+https://github.com/rust-lang/crates.io-index"
2124 -checksum = "8ea1915adb15d9ca1695e76d41524beb4806e9b603280edb7eedbaebe706a41c"
2125 -dependencies = [
2126 - "either",
2127 - "lexical",
2128 - "num-bigint",
2129 - "serde",
2130 - "smallvec",
2131 - "smartstring",
2132 - "stacker",
2133 - "swc_atoms",
2134 - "swc_common",
2135 - "swc_ecma_ast",
2136 - "tracing",
2137 - "typed-arena",
2138 -]
2139 -
2140 -[[package]]
2141 -name = "swc_ecma_preset_env"
2142 -version = "0.198.4"
2143 -source = "registry+https://github.com/rust-lang/crates.io-index"
2144 -checksum = "6835b856cbae281ea2aba64af208b3011528e5ef815441f4e4e234674f805472"
2145 -dependencies = [
2146 - "ahash 0.8.3",
2147 - "anyhow",
2148 - "dashmap",
2149 - "indexmap 1.9.3",
2150 - "once_cell",
2151 - "preset_env_base",
2152 - "semver 1.0.17",
2153 - "serde",
2154 - "serde_json",
2155 - "st-map",
2156 - "string_enum",
2157 - "swc_atoms",
2158 - "swc_common",
2159 - "swc_ecma_ast",
2160 - "swc_ecma_transforms",
2161 - "swc_ecma_utils",
2162 - "swc_ecma_visit",
2163 -]
2164 -
2165 -[[package]]
2166 -name = "swc_ecma_transforms"
2167 -version = "0.221.4"
2168 -source = "registry+https://github.com/rust-lang/crates.io-index"
2169 -checksum = "a4f578a16ff264c1f306d38a10b900256b33f636426ebeb5eab980205e8fc9f5"
2170 -dependencies = [
2171 - "swc_atoms",
2172 - "swc_common",
2173 - "swc_ecma_ast",
2174 - "swc_ecma_transforms_base",
2175 - "swc_ecma_transforms_compat",
2176 - "swc_ecma_transforms_module",
2177 - "swc_ecma_transforms_optimization",
2178 - "swc_ecma_transforms_proposal",
2179 - "swc_ecma_transforms_react",
2180 - "swc_ecma_transforms_typescript",
2181 - "swc_ecma_utils",
2182 - "swc_ecma_visit",
2183 -]
2184 -
2185 -[[package]]
2186 -name = "swc_ecma_transforms_base"
2187 -version = "0.130.1"
545 +name = "object"
546 +version = "0.31.1"
547 source = "registry+https://github.com/rust-lang/crates.io-index"
2189 -checksum = "84594423bc24ec9133265197c314db437c42c2cdbaba275c81e1d3673b8d6beb"
548 +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
549 dependencies = [
2191 - "better_scoped_tls",
2192 - "bitflags 2.3.3",
2193 - "indexmap 1.9.3",
2194 - "once_cell",
2195 - "phf",
2196 - "rustc-hash",
2197 - "serde",
2198 - "smallvec",
2199 - "swc_atoms",
2200 - "swc_common",
2201 - "swc_ecma_ast",
2202 - "swc_ecma_parser",
2203 - "swc_ecma_utils",
2204 - "swc_ecma_visit",
2205 - "tracing",
550 + "memchr",
551 ]
552
553 [[package]]
2209 -name = "swc_ecma_transforms_classes"
2210 -version = "0.119.1"
554 +name = "once_cell"
555 +version = "1.18.0"
556 source = "registry+https://github.com/rust-lang/crates.io-index"
2212 -checksum = "a288e0d1a702f1944df7c1b57468f505a9549d7d7a51d89dfa18d8f956abdbf5"
2213 -dependencies = [
2214 - "swc_atoms",
2215 - "swc_common",
2216 - "swc_ecma_ast",
2217 - "swc_ecma_transforms_base",
2218 - "swc_ecma_utils",
2219 - "swc_ecma_visit",
2220 -]
557 +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
558
559 [[package]]
2223 -name = "swc_ecma_transforms_compat"
2224 -version = "0.156.3"
560 +name = "owo-colors"
561 +version = "3.5.0"
562 source = "registry+https://github.com/rust-lang/crates.io-index"
2226 -checksum = "0ff9b38ea8bf338a46dda895b841de54360973b600c012c18e1bf93bfba35c06"
2227 -dependencies = [
2228 - "ahash 0.8.3",
2229 - "arrayvec",
2230 - "indexmap 1.9.3",
2231 - "is-macro",
2232 - "num-bigint",
2233 - "serde",
2234 - "smallvec",
2235 - "swc_atoms",
2236 - "swc_common",
2237 - "swc_config",
2238 - "swc_ecma_ast",
2239 - "swc_ecma_transforms_base",
2240 - "swc_ecma_transforms_classes",
2241 - "swc_ecma_transforms_macros",
2242 - "swc_ecma_utils",
2243 - "swc_ecma_visit",
2244 - "swc_trace_macro",
2245 - "tracing",
2246 -]
563 +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
564
565 [[package]]
2249 -name = "swc_ecma_transforms_macros"
2250 -version = "0.5.2"
566 +name = "percent-encoding"
567 +version = "2.3.0"
568 source = "registry+https://github.com/rust-lang/crates.io-index"
2252 -checksum = "f59c4b6ed5d78d3ad9fc7c6f8ab4f85bba99573d31d9a2c0a712077a6b45efd2"
2253 -dependencies = [
2254 - "pmutil",
2255 - "proc-macro2",
2256 - "quote",
2257 - "swc_macros_common",
2258 - "syn 2.0.23",
2259 -]
569 +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
570
571 [[package]]
2262 -name = "swc_ecma_transforms_module"
2263 -version = "0.173.3"
572 +name = "prettyplease"
573 +version = "0.2.10"
574 source = "registry+https://github.com/rust-lang/crates.io-index"
2265 -checksum = "729cb914afb891896bd3f1648f194e003492568471e6c9483f7667bf3c14fd9b"
575 +checksum = "92139198957b410250d43fad93e630d956499a625c527eda65175c8680f83387"
576 dependencies = [
2267 - "Inflector",
2268 - "ahash 0.8.3",
2269 - "anyhow",
2270 - "bitflags 2.3.3",
2271 - "indexmap 1.9.3",
2272 - "is-macro",
2273 - "path-clean",
2274 - "pathdiff",
2275 - "regex",
2276 - "serde",
2277 - "swc_atoms",
2278 - "swc_cached",
2279 - "swc_common",
2280 - "swc_ecma_ast",
2281 - "swc_ecma_loader",
2282 - "swc_ecma_parser",
2283 - "swc_ecma_transforms_base",
2284 - "swc_ecma_utils",
2285 - "swc_ecma_visit",
2286 - "tracing",
577 + "proc-macro2",
578 + "syn",
579 ]
580
581 [[package]]
2290 -name = "swc_ecma_transforms_optimization"
2291 -version = "0.190.4"
582 +name = "proc-macro2"
583 +version = "1.0.63"
584 source = "registry+https://github.com/rust-lang/crates.io-index"
2293 -checksum = "32c1e2751df41e27e22bf3ad304c3a1831fad141f1491b08c2b7907ccd9d66c5"
585 +checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
586 dependencies = [
2295 - "ahash 0.8.3",
2296 - "dashmap",
2297 - "indexmap 1.9.3",
2298 - "once_cell",
2299 - "petgraph",
2300 - "rustc-hash",
2301 - "serde_json",
2302 - "swc_atoms",
2303 - "swc_common",
2304 - "swc_ecma_ast",
2305 - "swc_ecma_parser",
2306 - "swc_ecma_transforms_base",
2307 - "swc_ecma_transforms_macros",
2308 - "swc_ecma_utils",
2309 - "swc_ecma_visit",
2310 - "swc_fast_graph",
2311 - "tracing",
587 + "unicode-ident",
588 ]
589
590 [[package]]
2315 -name = "swc_ecma_transforms_proposal"
2316 -version = "0.164.3"
591 +name = "psm"
592 +version = "0.1.21"
593 source = "registry+https://github.com/rust-lang/crates.io-index"
2318 -checksum = "2a1a942506b915e48989c13ee3c6bd63eb9b895593b8a47008d9607e2857d4c7"
594 +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
595 dependencies = [
2320 - "either",
2321 - "rustc-hash",
2322 - "serde",
2323 - "smallvec",
2324 - "swc_atoms",
2325 - "swc_common",
2326 - "swc_ecma_ast",
2327 - "swc_ecma_transforms_base",
2328 - "swc_ecma_transforms_classes",
2329 - "swc_ecma_transforms_macros",
2330 - "swc_ecma_utils",
2331 - "swc_ecma_visit",
596 + "cc",
597 ]
598
599 [[package]]
2335 -name = "swc_ecma_transforms_react"
2336 -version = "0.176.3"
600 +name = "quote"
601 +version = "1.0.29"
602 source = "registry+https://github.com/rust-lang/crates.io-index"
2338 -checksum = "094c9def9589d2687c15cfe859ffab87989a92217e73c93b3ce48e58c4a4ebfe"
603 +checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
604 dependencies = [
2340 - "ahash 0.8.3",
2341 - "base64",
2342 - "dashmap",
2343 - "indexmap 1.9.3",
2344 - "once_cell",
2345 - "serde",
2346 - "sha-1",
2347 - "string_enum",
2348 - "swc_atoms",
2349 - "swc_common",
2350 - "swc_config",
2351 - "swc_ecma_ast",
2352 - "swc_ecma_parser",
2353 - "swc_ecma_transforms_base",
2354 - "swc_ecma_transforms_macros",
2355 - "swc_ecma_utils",
2356 - "swc_ecma_visit",
605 + "proc-macro2",
606 ]
607
608 [[package]]
2360 -name = "swc_ecma_transforms_typescript"
2361 -version = "0.180.3"
609 +name = "regex"
610 +version = "1.8.4"
611 source = "registry+https://github.com/rust-lang/crates.io-index"
2363 -checksum = "4d3a7740e75e9a8c690320f2a3507560eb9cb1ce91662174619f21357bb517d3"
612 +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
613 dependencies = [
2365 - "serde",
2366 - "swc_atoms",
2367 - "swc_common",
2368 - "swc_ecma_ast",
2369 - "swc_ecma_transforms_base",
2370 - "swc_ecma_transforms_react",
2371 - "swc_ecma_utils",
2372 - "swc_ecma_visit",
614 + "aho-corasick 1.0.2",
615 + "memchr",
616 + "regex-syntax",
617 ]
618
619 [[package]]
2376 -name = "swc_ecma_usage_analyzer"
2377 -version = "0.16.2"
620 +name = "regex-syntax"
621 +version = "0.7.2"
622 source = "registry+https://github.com/rust-lang/crates.io-index"
2379 -checksum = "6b3c6eb57ce96ed026f21315e510d6710fbfe65b8706ae89ff0ff657e580eb74"
2380 -dependencies = [
2381 - "ahash 0.8.3",
2382 - "indexmap 1.9.3",
2383 - "rustc-hash",
2384 - "swc_atoms",
2385 - "swc_common",
2386 - "swc_ecma_ast",
2387 - "swc_ecma_utils",
2388 - "swc_ecma_visit",
2389 - "swc_timer",
2390 - "tracing",
2391 -]
623 +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
624
625 [[package]]
2394 -name = "swc_ecma_utils"
2395 -version = "0.120.1"
626 +name = "rustc-demangle"
627 +version = "0.1.23"
628 source = "registry+https://github.com/rust-lang/crates.io-index"
2397 -checksum = "58ce2d8b6a3ed69ac1a8146efe1f0b1bdb8676cab204b839f42ac8b62fefc772"
2398 -dependencies = [
2399 - "indexmap 1.9.3",
2400 - "num_cpus",
2401 - "once_cell",
2402 - "rustc-hash",
2403 - "swc_atoms",
2404 - "swc_common",
2405 - "swc_ecma_ast",
2406 - "swc_ecma_visit",
2407 - "tracing",
2408 - "unicode-id",
2409 -]
629 +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
630
631 [[package]]
2412 -name = "swc_ecma_visit"
2413 -version = "0.93.0"
632 +name = "rustix"
633 +version = "0.37.22"
634 source = "registry+https://github.com/rust-lang/crates.io-index"
2415 -checksum = "82bb87ee3345a7049efcbedc419f121933e0e3967457922848d0026fb3b79dac"
635 +checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c"
636 dependencies = [
2417 - "num-bigint",
2418 - "swc_atoms",
2419 - "swc_common",
2420 - "swc_ecma_ast",
2421 - "swc_visit",
2422 - "tracing",
637 + "bitflags",
638 + "errno",
639 + "io-lifetimes",
640 + "libc",
641 + "linux-raw-sys",
642 + "windows-sys 0.48.0",
643 ]
644
645 [[package]]
2426 -name = "swc_eq_ignore_macros"
2427 -version = "0.1.2"
646 +name = "ryu"
647 +version = "1.0.14"
648 source = "registry+https://github.com/rust-lang/crates.io-index"
2429 -checksum = "05a95d367e228d52484c53336991fdcf47b6b553ef835d9159db4ba40efb0ee8"
2430 -dependencies = [
2431 - "pmutil",
2432 - "proc-macro2",
2433 - "quote",
2434 - "syn 2.0.23",
2435 -]
649 +checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
650
651 [[package]]
2438 -name = "swc_error_reporters"
2439 -version = "0.15.16"
652 +name = "same-file"
653 +version = "1.0.6"
654 source = "registry+https://github.com/rust-lang/crates.io-index"
2441 -checksum = "108322b719696e8c368c39dc6d8748494ea2aa870e7d80ea5956078aa6b4dd4d"
655 +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
656 dependencies = [
2443 - "anyhow",
2444 - "miette 4.7.1",
2445 - "once_cell",
2446 - "parking_lot",
2447 - "swc_common",
657 + "winapi-util",
658 ]
659
660 [[package]]
2451 -name = "swc_fast_graph"
2452 -version = "0.19.16"
661 +name = "serde"
662 +version = "1.0.167"
663 source = "registry+https://github.com/rust-lang/crates.io-index"
2454 -checksum = "b19b76468219b923c34efdeff812fa951fe1a1ecaba78118b013d034a1669ff5"
664 +checksum = "7daf513456463b42aa1d94cff7e0c24d682b429f020b9afa4f5ba5c40a22b237"
665 dependencies = [
2456 - "indexmap 1.9.3",
2457 - "petgraph",
2458 - "rustc-hash",
2459 - "swc_common",
666 + "serde_derive",
667 ]
668
669 [[package]]
2463 -name = "swc_macros_common"
2464 -version = "0.3.8"
670 +name = "serde_derive"
671 +version = "1.0.167"
672 source = "registry+https://github.com/rust-lang/crates.io-index"
2466 -checksum = "7a273205ccb09b51fabe88c49f3b34c5a4631c4c00a16ae20e03111d6a42e832"
673 +checksum = "b69b106b68bc8054f0e974e70d19984040f8a5cf9215ca82626ea4853f82c4b9"
674 dependencies = [
2468 - "pmutil",
675 "proc-macro2",
676 "quote",
2471 - "syn 2.0.23",
677 + "syn",
678 ]
679
680 [[package]]
2475 -name = "swc_node_comments"
2476 -version = "0.18.16"
681 +name = "serde_json"
682 +version = "1.0.100"
683 source = "registry+https://github.com/rust-lang/crates.io-index"
2478 -checksum = "61839f8a936b5c95ce644d539914bb944b094eee9bd156c3dc41fe8e7eaa84ea"
684 +checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
685 dependencies = [
2480 - "ahash 0.8.3",
2481 - "dashmap",
2482 - "swc_atoms",
2483 - "swc_common",
686 + "itoa",
687 + "ryu",
688 + "serde",
689 ]
690
691 [[package]]
2487 -name = "swc_timer"
2488 -version = "0.19.19"
692 +name = "similar"
693 +version = "2.2.1"
694 source = "registry+https://github.com/rust-lang/crates.io-index"
2490 -checksum = "9889bf48909289e13e0f343eb8d1238e674e9380a4dd6c6346f62b83cb30236f"
2491 -dependencies = [
2492 - "tracing",
2493 -]
695 +checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
696 +
697 +[[package]]
698 +name = "smawk"
699 +version = "0.3.1"
700 +source = "registry+https://github.com/rust-lang/crates.io-index"
701 +checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
702
703 [[package]]
2496 -name = "swc_trace_macro"
2497 -version = "0.1.3"
704 +name = "stacker"
705 +version = "0.1.15"
706 source = "registry+https://github.com/rust-lang/crates.io-index"
2499 -checksum = "ff9719b6085dd2824fd61938a881937be14b08f95e2d27c64c825a9f65e052ba"
707 +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
708 dependencies = [
2501 - "proc-macro2",
2502 - "quote",
2503 - "syn 2.0.23",
709 + "cc",
710 + "cfg-if",
711 + "libc",
712 + "psm",
713 + "winapi",
714 ]
715
716 [[package]]
2507 -name = "swc_visit"
2508 -version = "0.5.7"
717 +name = "static_assertions"
718 +version = "1.1.0"
719 +source = "registry+https://github.com/rust-lang/crates.io-index"
720 +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
721 +
722 +[[package]]
723 +name = "supports-color"
724 +version = "2.0.0"
725 source = "registry+https://github.com/rust-lang/crates.io-index"
2510 -checksum = "e87c337fbb2d191bf371173dea6a957f01899adb8f189c6c31b122a6cfc98fc3"
726 +checksum = "4950e7174bffabe99455511c39707310e7e9b440364a2fcb1cc21521be57b354"
727 dependencies = [
2512 - "either",
2513 - "swc_visit_macros",
728 + "is-terminal",
729 + "is_ci",
730 ]
731
732 [[package]]
2517 -name = "swc_visit_macros"
2518 -version = "0.5.8"
733 +name = "supports-hyperlinks"
734 +version = "2.1.0"
735 source = "registry+https://github.com/rust-lang/crates.io-index"
2520 -checksum = "0f322730fb82f3930a450ac24de8c98523af7d34ab8cb2f46bcb405839891a99"
736 +checksum = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d"
737 dependencies = [
2522 - "Inflector",
2523 - "pmutil",
2524 - "proc-macro2",
2525 - "quote",
2526 - "swc_macros_common",
2527 - "syn 2.0.23",
738 + "is-terminal",
739 ]
740
741 [[package]]
2531 -name = "syn"
2532 -version = "1.0.109"
742 +name = "supports-unicode"
743 +version = "2.0.0"
744 source = "registry+https://github.com/rust-lang/crates.io-index"
2534 -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
745 +checksum = "4b6c2cb240ab5dd21ed4906895ee23fe5a48acdbd15a3ce388e7b62a9b66baf7"
746 dependencies = [
2536 - "proc-macro2",
2537 - "quote",
2538 - "unicode-ident",
747 + "is-terminal",
748 ]
749
750 [[package]]
@@ -2587,45 +796,7 @@ checksum = "d14928354b01c4d6a4f0e549069adef399a284e7995c7ccca94e8a07a5346c59"
796 dependencies = [
797 "proc-macro2",
798 "quote",
2590 - "syn 2.0.23",
2591 -]
2592 -
2593 -[[package]]
2594 -name = "time"
2595 -version = "0.1.45"
2596 -source = "registry+https://github.com/rust-lang/crates.io-index"
2597 -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
2598 -dependencies = [
2599 - "libc",
2600 - "wasi 0.10.0+wasi-snapshot-preview1",
2601 - "winapi",
2602 -]
2603 -
2604 -[[package]]
2605 -name = "time"
2606 -version = "0.3.22"
2607 -source = "registry+https://github.com/rust-lang/crates.io-index"
2608 -checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd"
2609 -dependencies = [
2610 - "itoa",
2611 - "serde",
2612 - "time-core",
2613 - "time-macros",
2614 -]
2615 -
2616 -[[package]]
2617 -name = "time-core"
2618 -version = "0.1.1"
2619 -source = "registry+https://github.com/rust-lang/crates.io-index"
2620 -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
2621 -
2622 -[[package]]
2623 -name = "time-macros"
2624 -version = "0.2.9"
2625 -source = "registry+https://github.com/rust-lang/crates.io-index"
2626 -checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
2627 -dependencies = [
2628 - "time-core",
799 + "syn",
800 ]
801
802 [[package]]
@@ -2643,72 +814,12 @@ version = "0.1.1"
814 source = "registry+https://github.com/rust-lang/crates.io-index"
815 checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
816
2646 -[[package]]
2647 -name = "tracing"
2648 -version = "0.1.37"
2649 -source = "registry+https://github.com/rust-lang/crates.io-index"
2650 -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
2651 -dependencies = [
2652 - "cfg-if",
2653 - "pin-project-lite",
2654 - "tracing-attributes",
2655 - "tracing-core",
2656 -]
2657 -
2658 -[[package]]
2659 -name = "tracing-attributes"
2660 -version = "0.1.26"
2661 -source = "registry+https://github.com/rust-lang/crates.io-index"
2662 -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
2663 -dependencies = [
2664 - "proc-macro2",
2665 - "quote",
2666 - "syn 2.0.23",
2667 -]
2668 -
2669 -[[package]]
2670 -name = "tracing-core"
2671 -version = "0.1.31"
2672 -source = "registry+https://github.com/rust-lang/crates.io-index"
2673 -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
2674 -dependencies = [
2675 - "once_cell",
2676 -]
2677 -
2678 -[[package]]
2679 -name = "triomphe"
2680 -version = "0.1.8"
2681 -source = "registry+https://github.com/rust-lang/crates.io-index"
2682 -checksum = "f1ee9bd9239c339d714d657fac840c6d2a4f9c45f4f9ec7b0975113458be78db"
2683 -dependencies = [
2684 - "serde",
2685 - "stable_deref_trait",
2686 -]
2687 -
2688 -[[package]]
2689 -name = "typed-arena"
2690 -version = "2.0.2"
2691 -source = "registry+https://github.com/rust-lang/crates.io-index"
2692 -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
2693 -
2694 -[[package]]
2695 -name = "typenum"
2696 -version = "1.16.0"
2697 -source = "registry+https://github.com/rust-lang/crates.io-index"
2698 -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
2699 -
817 [[package]]
818 name = "unicode-bidi"
819 version = "0.3.13"
820 source = "registry+https://github.com/rust-lang/crates.io-index"
821 checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
822
2706 -[[package]]
2707 -name = "unicode-id"
2708 -version = "0.3.3"
2709 -source = "registry+https://github.com/rust-lang/crates.io-index"
2710 -checksum = "d70b6494226b36008c8366c288d77190b3fad2eb4c10533139c1c1f461127f1a"
2711 -
823 [[package]]
824 name = "unicode-ident"
825 version = "1.0.10"
@@ -2751,21 +862,6 @@ dependencies = [
862 "percent-encoding",
863 ]
864
2754 -[[package]]
2755 -name = "vergen"
2756 -version = "7.5.1"
2757 -source = "registry+https://github.com/rust-lang/crates.io-index"
2758 -checksum = "f21b881cd6636ece9735721cf03c1fe1e774fe258683d084bb2812ab67435749"
2759 -dependencies = [
2760 - "anyhow",
2761 - "cfg-if",
2762 - "enum-iterator",
2763 - "getset",
2764 - "rustversion",
2765 - "thiserror",
2766 - "time 0.3.22",
2767 -]
2768 -
865 [[package]]
866 name = "version_check"
867 version = "0.9.4"
@@ -2782,72 +878,12 @@ dependencies = [
878 "winapi-util",
879 ]
880
2785 -[[package]]
2786 -name = "wasi"
2787 -version = "0.10.0+wasi-snapshot-preview1"
2788 -source = "registry+https://github.com/rust-lang/crates.io-index"
2789 -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
2790 -
881 [[package]]
882 name = "wasi"
883 version = "0.11.0+wasi-snapshot-preview1"
884 source = "registry+https://github.com/rust-lang/crates.io-index"
885 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
886
2797 -[[package]]
2798 -name = "wasm-bindgen"
2799 -version = "0.2.87"
2800 -source = "registry+https://github.com/rust-lang/crates.io-index"
2801 -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
2802 -dependencies = [
2803 - "cfg-if",
2804 - "wasm-bindgen-macro",
2805 -]
2806 -
2807 -[[package]]
2808 -name = "wasm-bindgen-backend"
2809 -version = "0.2.87"
2810 -source = "registry+https://github.com/rust-lang/crates.io-index"
2811 -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
2812 -dependencies = [
2813 - "bumpalo",
2814 - "log",
2815 - "once_cell",
2816 - "proc-macro2",
2817 - "quote",
2818 - "syn 2.0.23",
2819 - "wasm-bindgen-shared",
2820 -]
2821 -
2822 -[[package]]
2823 -name = "wasm-bindgen-macro"
2824 -version = "0.2.87"
2825 -source = "registry+https://github.com/rust-lang/crates.io-index"
2826 -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
2827 -dependencies = [
2828 - "quote",
2829 - "wasm-bindgen-macro-support",
2830 -]
2831 -
2832 -[[package]]
2833 -name = "wasm-bindgen-macro-support"
2834 -version = "0.2.87"
2835 -source = "registry+https://github.com/rust-lang/crates.io-index"
2836 -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
2837 -dependencies = [
2838 - "proc-macro2",
2839 - "quote",
2840 - "syn 2.0.23",
2841 - "wasm-bindgen-backend",
2842 - "wasm-bindgen-shared",
2843 -]
2844 -
2845 -[[package]]
2846 -name = "wasm-bindgen-shared"
2847 -version = "0.2.87"
2848 -source = "registry+https://github.com/rust-lang/crates.io-index"
2849 -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
2850 -
887 [[package]]
888 name = "winapi"
889 version = "0.3.9"
@@ -2879,15 +915,6 @@ version = "0.4.0"
915 source = "registry+https://github.com/rust-lang/crates.io-index"
916 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
917
2882 -[[package]]
2883 -name = "windows"
2884 -version = "0.48.0"
2885 -source = "registry+https://github.com/rust-lang/crates.io-index"
2886 -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
2887 -dependencies = [
2888 - "windows-targets 0.48.1",
2889 -]
2890 -
918 [[package]]
919 name = "windows-sys"
920 version = "0.45.0"
compiler/forget/Cargo.toml
-4
@@ -17,14 +17,12 @@ forget_build_hir = { path = "crates/forget_build_hir" }
17 forget_diagnostics = { path = "crates/forget_diagnostics" }
18 forget_estree = { path = "crates/forget_estree" }
19 forget_estree_codegen = { path = "crates/forget_estree_codegen" }
20 -forget_estree_swc = { path = "crates/forget_estree_swc" }
20 forget_fixtures = { path = "crates/forget_fixtures" }
21 forget_hermes_parser = { path = "crates/forget_hermes_parser" }
22 forget_hir = { path = "crates/forget_hir" }
23 forget_optimization = { path = "crates/forget_optimization" }
24 forget_semantic_analysis = { path = "crates/forget_semantic_analysis" }
25 forget_ssa = { path = "crates/forget_ssa" }
27 -forget_swc_demo = { path = "crates/forget_swc_demo" }
26 forget_utils = { path = "crates/forget_utils" }
27
28 # dependencies
@@ -37,8 +35,6 @@ serde = { version = "1.0.167", features = ["serde_derive"] }
35 serde_json = "1.0.100"
36 stacker = "0.1.15"
37 static_assertions = "1.1.0"
40 -swc = "0.264.8"
41 -swc_core = { version = "0.79.9", features = ["swc_ecma_visit", "__ecma_transforms", "swc_ecma_ast", "swc_common", "swc", "swc_ecma_parser", "__ecma", "__common", "ecma_ast", "__visit", "__parser"] }
38 syn = "2.0.23"
39 thiserror = "1.0.41"
40 hermes = { git = "https://github.com/facebook/hermes.git" }
compiler/forget/crates/forget_estree_swc/Cargo.toml deleted
-18
@@ -1,18 +0,0 @@
1 -[package]
2 -name = "forget_estree_swc"
3 -version = "0.1.0"
4 -publish = false
5 -authors.workspace = true
6 -description.workspace = true
7 -edition.workspace = true
8 -homepage.workspace = true
9 -keywords.workspace = true
10 -license.workspace = true
11 -repository.workspace = true
12 -
13 -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
14 -
15 -[dependencies]
16 -forget_estree = { workspace = true }
17 -swc = { workspace = true }
18 -swc_core = { workspace = true }
compiler/forget/crates/forget_estree_swc/README.md deleted
-4
@@ -1,4 +0,0 @@
1 -# forget_estree_swc
2 -
3 -This crate converts from SWC's AST format into Forget's `forget_estree` format, which is used as the primary
4 -input/type in Forget's public APIs.
\ No newline at end of file
compiler/forget/crates/forget_estree_swc/src/lib.rs deleted
-963
@@ -1,963 +0,0 @@
1 -use std::io::stderr;
2 -use std::num::NonZeroU32;
3 -use std::sync::Arc;
4 -
5 -use forget_estree::{Binding, BindingId};
6 -use swc::Compiler;
7 -use swc_core::common::errors::Handler;
8 -use swc_core::common::source_map::Pos;
9 -use swc_core::common::{FileName, FilePathMapping, Mark, SourceMap, Span, SyntaxContext, GLOBALS};
10 -use swc_core::ecma::ast::{
11 - AssignOp, BinaryOp, BlockStmt, BlockStmtOrExpr, Callee, Decl, EsVersion, Expr, ExprOrSpread,
12 - Function, Ident, JSXAttr, JSXAttrName, JSXAttrOrSpread, JSXAttrValue, JSXElement,
13 - JSXElementChild, JSXElementName, JSXExpr, JSXMemberExpr, JSXObject, Lit, MemberExpr,
14 - MemberProp, ModuleItem, OptChainBase, Pat, PatOrExpr, Program, Stmt, UnaryOp, UpdateOp,
15 - VarDecl, VarDeclKind, VarDeclOrExpr,
16 -};
17 -use swc_core::ecma::parser::{Syntax, TsConfig};
18 -use swc_core::ecma::transforms::base::resolver;
19 -use swc_core::ecma::visit::FoldWith;
20 -
21 -/// Parses source text into an forget_estree::Program via SWC, internally performing the parsing
22 -/// and SWC -> ESTree conversion.
23 -pub fn parse(
24 - source: &str,
25 - file: &str,
26 -) -> Result<forget_estree::Program, Box<dyn std::error::Error>> {
27 - GLOBALS.set(&Default::default(), || {
28 - let cm = Arc::new(SourceMap::new(FilePathMapping::empty()));
29 - let c = Compiler::new(cm);
30 - let fm =
31 - c.cm.new_source_file(FileName::Real(file.into()), source.to_string());
32 -
33 - let handler = Handler::with_emitter_writer(Box::new(stderr()), Some(c.cm.clone()));
34 -
35 - let comments = c.comments().clone();
36 - let module = c.parse_js(
37 - fm.clone(),
38 - &handler,
39 - EsVersion::Es5,
40 - Syntax::Typescript(TsConfig {
41 - tsx: true,
42 - ..Default::default()
43 - }),
44 - swc::config::IsModule::Bool(true),
45 - Some(&comments),
46 - )?;
47 -
48 - let context = Context {
49 - top_level_mark: Mark::new(),
50 - unresolved_mark: Mark::new(),
51 - };
52 -
53 - let module = c.run_transform(&handler, false, || {
54 - module.fold_with(&mut resolver(
55 - context.unresolved_mark,
56 - context.top_level_mark,
57 - true,
58 - ))
59 - });
60 -
61 - Ok(convert_program(&context, &module))
62 - })
63 -}
64 -
65 -#[derive(Debug)]
66 -struct Context {
67 - unresolved_mark: Mark,
68 - top_level_mark: Mark,
69 -}
70 -
71 -fn convert_program(cx: &Context, program: &Program) -> forget_estree::Program {
72 - let mut program_items: Vec<forget_estree::ModuleItem>;
73 - match program {
74 - Program::Module(program) => {
75 - let body = &program.body;
76 - program_items = Vec::with_capacity(body.len());
77 - for item in body {
78 - program_items.push(convert_module_item(cx, item));
79 - }
80 - }
81 - Program::Script(program) => {
82 - let body = &program.body;
83 - program_items = Vec::with_capacity(body.len());
84 - for item in body {
85 - program_items.push(forget_estree::ModuleItem::Statement(convert_statement(
86 - cx, item,
87 - )));
88 - }
89 - }
90 - };
91 - forget_estree::Program {
92 - source_type: if program.is_script() {
93 - forget_estree::SourceType::Script
94 - } else {
95 - forget_estree::SourceType::Module
96 - },
97 - body: program_items,
98 - // comments: None,
99 - loc: None,
100 - range: None,
101 - }
102 -}
103 -
104 -fn convert_module_item(cx: &Context, item: &ModuleItem) -> forget_estree::ModuleItem {
105 - match item {
106 - ModuleItem::Stmt(item) => forget_estree::ModuleItem::Statement(convert_statement(cx, item)),
107 - _ => todo!("translate module item {:#?}", item),
108 - }
109 -}
110 -
111 -fn convert_span(span: &Span) -> Option<forget_estree::SourceRange> {
112 - Some(forget_estree::SourceRange {
113 - start: span.lo().to_u32(),
114 - end: NonZeroU32::new(span.hi().to_u32())?,
115 - })
116 -}
117 -
118 -fn convert_decl_kind(kind: &VarDeclKind) -> forget_estree::VariableDeclarationKind {
119 - match kind {
120 - VarDeclKind::Const => forget_estree::VariableDeclarationKind::Const,
121 - VarDeclKind::Let => forget_estree::VariableDeclarationKind::Let,
122 - VarDeclKind::Var => forget_estree::VariableDeclarationKind::Var,
123 - }
124 -}
125 -
126 -fn convert_block_statement(cx: &Context, stmt: &BlockStmt) -> forget_estree::BlockStatement {
127 - let mut body: Vec<forget_estree::Statement> = Vec::with_capacity(stmt.stmts.len());
128 - for stmt in &stmt.stmts {
129 - body.push(convert_statement(cx, stmt));
130 - }
131 - forget_estree::BlockStatement {
132 - body,
133 - loc: None,
134 - range: convert_span(&stmt.span),
135 - }
136 -}
137 -
138 -fn convert_function(cx: &Context, id: Option<&Ident>, fun: &Function) -> forget_estree::Function {
139 - forget_estree::Function {
140 - id: id.map(|id| forget_estree::Identifier {
141 - name: id.sym.to_string(),
142 - binding: convert_binding(cx, id.span.ctxt),
143 - type_annotation: None,
144 - loc: None,
145 - range: convert_span(&id.span),
146 - }),
147 - params: fun
148 - .params
149 - .iter()
150 - .map(|param| convert_pattern(cx, &param.pat))
151 - .collect(),
152 - body: fun.body.as_ref().map(|body| {
153 - forget_estree::FunctionBody::BlockStatement(Box::new(convert_block_statement(cx, body)))
154 - }),
155 - is_async: fun.is_async,
156 - is_generator: fun.is_generator,
157 - loc: None,
158 - range: convert_span(&fun.span),
159 - }
160 -}
161 -
162 -fn convert_statement(cx: &Context, stmt: &Stmt) -> forget_estree::Statement {
163 - match stmt {
164 - Stmt::Decl(Decl::Fn(item)) => forget_estree::Statement::FunctionDeclaration(Box::new(
165 - forget_estree::FunctionDeclaration {
166 - function: convert_function(cx, Some(&item.ident), &item.function),
167 - loc: None,
168 - range: convert_span(&item.function.span),
169 - },
170 - )),
171 - Stmt::Decl(Decl::Var(item)) => forget_estree::Statement::VariableDeclaration(Box::new(
172 - convert_variable_declaration(cx, item),
173 - )),
174 - Stmt::Block(item) => {
175 - forget_estree::Statement::BlockStatement(Box::new(convert_block_statement(cx, item)))
176 - }
177 - Stmt::Break(item) => {
178 - forget_estree::Statement::BreakStatement(Box::new(forget_estree::BreakStatement {
179 - label: item
180 - .label
181 - .as_ref()
182 - .map(|label| convert_identifier(cx, label)),
183 - loc: None,
184 - range: convert_span(&item.span),
185 - }))
186 - }
187 - Stmt::Continue(item) => forget_estree::Statement::ContinueStatement(Box::new(
188 - forget_estree::ContinueStatement {
189 - label: item
190 - .label
191 - .as_ref()
192 - .map(|label| convert_identifier(cx, label)),
193 - loc: None,
194 - range: convert_span(&item.span),
195 - },
196 - )),
197 - Stmt::Debugger(item) => forget_estree::Statement::DebuggerStatement(Box::new(
198 - forget_estree::DebuggerStatement {
199 - loc: None,
200 - range: convert_span(&item.span),
201 - },
202 - )),
203 - Stmt::DoWhile(item) => {
204 - forget_estree::Statement::DoWhileStatement(Box::new(forget_estree::DoWhileStatement {
205 - body: convert_statement(cx, &item.body),
206 - test: convert_expression(cx, &item.test),
207 - loc: None,
208 - range: convert_span(&item.span),
209 - }))
210 - }
211 - Stmt::Empty(item) => {
212 - forget_estree::Statement::EmptyStatement(Box::new(forget_estree::EmptyStatement {
213 - loc: None,
214 - range: convert_span(&item.span),
215 - }))
216 - }
217 - Stmt::Expr(item) => {
218 - let expression = convert_expression(cx, &item.expr);
219 - forget_estree::Statement::ExpressionStatement(Box::new(
220 - forget_estree::ExpressionStatement {
221 - expression,
222 - directive: None,
223 - loc: None,
224 - range: convert_span(&item.span),
225 - },
226 - ))
227 - }
228 - Stmt::For(item) => {
229 - forget_estree::Statement::ForStatement(Box::new(forget_estree::ForStatement {
230 - init: item.init.as_ref().map(|init| match init {
231 - VarDeclOrExpr::Expr(init) => {
232 - forget_estree::ForInit::Expression(convert_expression(cx, init))
233 - }
234 - VarDeclOrExpr::VarDecl(init) => {
235 - assert_eq!(init.decls.len(), 1);
236 - forget_estree::ForInit::VariableDeclaration(Box::new(
237 - convert_variable_declaration(cx, init),
238 - ))
239 - }
240 - }),
241 - test: item.test.as_ref().map(|test| convert_expression(cx, test)),
242 - update: item
243 - .update
244 - .as_ref()
245 - .map(|update| convert_expression(cx, update)),
246 - body: convert_statement(cx, &item.body),
247 - loc: None,
248 - range: convert_span(&item.span),
249 - }))
250 - }
251 - Stmt::Return(item) => {
252 - forget_estree::Statement::ReturnStatement(Box::new(forget_estree::ReturnStatement {
253 - argument: item.arg.as_ref().map(|arg| convert_expression(cx, arg)),
254 - loc: None,
255 - range: convert_span(&item.span),
256 - }))
257 - }
258 - Stmt::Throw(item) => {
259 - forget_estree::Statement::ThrowStatement(Box::new(forget_estree::ThrowStatement {
260 - argument: convert_expression(cx, &item.arg),
261 - loc: None,
262 - range: convert_span(&item.span),
263 - }))
264 - }
265 - Stmt::If(item) => {
266 - forget_estree::Statement::IfStatement(Box::new(forget_estree::IfStatement {
267 - test: convert_expression(cx, &item.test),
268 - consequent: convert_statement(cx, &item.cons),
269 - alternate: item.alt.as_ref().map(|alt| convert_statement(cx, alt)),
270 - loc: None,
271 - range: convert_span(&item.span),
272 - }))
273 - }
274 - Stmt::Labeled(item) => {
275 - forget_estree::Statement::LabeledStatement(Box::new(forget_estree::LabeledStatement {
276 - label: convert_identifier(cx, &item.label),
277 - body: convert_statement(cx, &item.body),
278 - loc: None,
279 - range: convert_span(&item.span),
280 - }))
281 - }
282 - _ => todo!("translate statement {:#?}", stmt),
283 - }
284 -}
285 -
286 -fn convert_variable_declaration(
287 - cx: &Context,
288 - decl: &VarDecl,
289 -) -> forget_estree::VariableDeclaration {
290 - forget_estree::VariableDeclaration {
291 - kind: convert_decl_kind(&decl.kind),
292 - declarations: decl
293 - .decls
294 - .iter()
295 - .map(|declarator| forget_estree::VariableDeclarator {
296 - id: convert_pattern(cx, &declarator.name),
297 - init: declarator
298 - .init
299 - .as_ref()
300 - .map(|init| convert_expression(cx, init)),
301 - loc: None,
302 - range: convert_span(&decl.span),
303 - })
304 - .collect(),
305 - loc: None,
306 - range: convert_span(&decl.span),
307 - }
308 -}
309 -
310 -fn convert_expression(cx: &Context, expr: &Expr) -> forget_estree::Expression {
311 - match expr {
312 - Expr::Ident(expr) => {
313 - forget_estree::Expression::Identifier(Box::new(convert_identifier(cx, expr)))
314 - }
315 - Expr::Array(expr) => {
316 - forget_estree::Expression::ArrayExpression(Box::new(forget_estree::ArrayExpression {
317 - elements: expr
318 - .elems
319 - .iter()
320 - .map(|item| match item {
321 - Some(ExprOrSpread {
322 - spread: Some(spread),
323 - expr,
324 - }) => Some(forget_estree::ExpressionOrSpread::SpreadElement(Box::new(
325 - forget_estree::SpreadElement {
326 - argument: convert_expression(cx, expr),
327 - loc: None,
328 - range: convert_span(&spread),
329 - },
330 - ))),
331 - Some(ExprOrSpread { spread: None, expr }) => {
332 - Some(forget_estree::ExpressionOrSpread::Expression(
333 - convert_expression(cx, expr),
334 - ))
335 - }
336 - None => None,
337 - })
338 - .collect(),
339 - loc: None,
340 - range: convert_span(&expr.span),
341 - }))
342 - }
343 - Expr::Call(expr) => {
344 - forget_estree::Expression::CallExpression(Box::new(forget_estree::CallExpression {
345 - callee: match &expr.callee {
346 - Callee::Expr(callee) => {
347 - forget_estree::ExpressionOrSuper::Expression(convert_expression(cx, callee))
348 - }
349 - _ => todo!(),
350 - },
351 - arguments: convert_arguments(cx, &expr.args),
352 - loc: None,
353 - range: convert_span(&expr.span),
354 - }))
355 - }
356 - Expr::Await(expr) => {
357 - forget_estree::Expression::AwaitExpression(Box::new(forget_estree::AwaitExpression {
358 - argument: convert_expression(cx, &expr.arg),
359 - loc: None,
360 - range: convert_span(&expr.span),
361 - }))
362 - }
363 - Expr::Yield(expr) => {
364 - forget_estree::Expression::YieldExpression(Box::new(forget_estree::YieldExpression {
365 - argument: expr.arg.as_ref().map(|arg| convert_expression(cx, arg)),
366 - is_delegate: expr.delegate,
367 - loc: None,
368 - range: convert_span(&expr.span),
369 - }))
370 - }
371 - Expr::Unary(expr) => {
372 - forget_estree::Expression::UnaryExpression(Box::new(forget_estree::UnaryExpression {
373 - operator: convert_unary_operator(expr.op),
374 - prefix: false,
375 - argument: convert_expression(cx, &expr.arg),
376 - loc: None,
377 - range: convert_span(&expr.span),
378 - }))
379 - }
380 - Expr::Bin(expr) => match convert_binary_operator(expr.op) {
381 - Operator::Binary(op) => forget_estree::Expression::BinaryExpression(Box::new(
382 - forget_estree::BinaryExpression {
383 - operator: op,
384 - left: convert_expression(cx, &expr.left),
385 - right: convert_expression(cx, &expr.right),
386 - loc: None,
387 - range: convert_span(&expr.span),
388 - },
389 - )),
390 - Operator::Logical(op) => forget_estree::Expression::LogicalExpression(Box::new(
391 - forget_estree::LogicalExpression {
392 - operator: op,
393 - left: convert_expression(cx, &expr.left),
394 - right: convert_expression(cx, &expr.right),
395 - loc: None,
396 - range: convert_span(&expr.span),
397 - },
398 - )),
399 - },
400 - Expr::Lit(expr) => forget_estree::Expression::Literal(Box::new(convert_literal(cx, expr))),
401 - Expr::Assign(expr) => forget_estree::Expression::AssignmentExpression(Box::new(
402 - forget_estree::AssignmentExpression {
403 - operator: convert_assignment_operator(expr.op),
404 - left: convert_assignment_target(cx, &expr.left),
405 - right: convert_expression(cx, &expr.right),
406 - loc: None,
407 - range: convert_span(&expr.span),
408 - },
409 - )),
410 - Expr::Member(expr) => forget_estree::Expression::MemberExpression(Box::new(
411 - convert_member_expression(cx, expr),
412 - )),
413 - Expr::Fn(expr) => forget_estree::Expression::FunctionExpression(Box::new(
414 - forget_estree::FunctionExpression {
415 - function: convert_function(cx, expr.ident.as_ref(), &expr.function),
416 - loc: None,
417 - range: convert_span(&expr.function.span),
418 - },
419 - )),
420 - Expr::Arrow(expr) => forget_estree::Expression::ArrowFunctionExpression(Box::new(
421 - forget_estree::ArrowFunctionExpression {
422 - function: forget_estree::Function {
423 - id: None,
424 - body: match expr.body.as_ref() {
425 - BlockStmtOrExpr::Expr(body) => Some(
426 - forget_estree::FunctionBody::Expression(convert_expression(cx, body)),
427 - ),
428 - BlockStmtOrExpr::BlockStmt(body) => {
429 - Some(forget_estree::FunctionBody::BlockStatement(Box::new(
430 - convert_block_statement(cx, body),
431 - )))
432 - }
433 - },
434 - params: expr
435 - .params
436 - .iter()
437 - .map(|param| convert_pattern(cx, param))
438 - .collect(),
439 - is_generator: expr.is_generator,
440 - is_async: expr.is_async,
441 - loc: None,
442 - range: convert_span(&expr.span),
443 - },
444 - is_expression: true, // TODO
445 - loc: None,
446 - range: convert_span(&expr.span),
447 - },
448 - )),
449 - Expr::OptChain(expr) => match expr.base.as_ref() {
450 - OptChainBase::Call(base) => forget_estree::Expression::OptionalCallExpression(
451 - Box::new(forget_estree::OptionalCallExpression {
452 - callee: forget_estree::ExpressionOrSuper::Expression(convert_expression(
453 - cx,
454 - &base.callee,
455 - )),
456 - arguments: convert_arguments(cx, &base.args),
457 - is_optional: expr.optional,
458 - loc: None,
459 - range: convert_span(&expr.span),
460 - }),
461 - ),
462 - OptChainBase::Member(base) => {
463 - let mut member = convert_optional_member_expression(cx, base);
464 - member.is_optional = expr.optional;
465 - forget_estree::Expression::OptionalMemberExpression(Box::new(member))
466 - }
467 - },
468 - Expr::JSXElement(expr) => {
469 - forget_estree::Expression::JSXElement(Box::new(convert_jsx_element(cx, expr)))
470 - }
471 - Expr::Paren(expr) => convert_expression(cx, &expr.expr),
472 - Expr::Update(expr) => {
473 - forget_estree::Expression::UpdateExpression(Box::new(forget_estree::UpdateExpression {
474 - operator: convert_update_operator(expr.op),
475 - argument: convert_expression(cx, &expr.arg),
476 - prefix: expr.prefix,
477 - loc: None,
478 - range: convert_span(&expr.span),
479 - }))
480 - }
481 - _ => todo!("translate expression {:#?}", expr),
482 - }
483 -}
484 -
485 -fn convert_jsx_element(cx: &Context, expr: &JSXElement) -> forget_estree::JSXElement {
486 - let attributes = expr
487 - .opening
488 - .attrs
489 - .iter()
490 - .map(|attr| match attr {
491 - JSXAttrOrSpread::JSXAttr(attr) => forget_estree::JSXAttributeOrSpread::JSXAttribute(
492 - Box::new(convert_jsx_attribute(cx, attr)),
493 - ),
494 - JSXAttrOrSpread::SpreadElement(attr) => {
495 - forget_estree::JSXAttributeOrSpread::JSXSpreadAttribute(Box::new(
496 - forget_estree::JSXSpreadAttribute {
497 - argument: convert_expression(cx, &attr.expr),
498 - loc: None,
499 - range: None, // sigh, no span
500 - },
501 - ))
502 - }
503 - })
504 - .collect();
505 - let opening_element = forget_estree::JSXOpeningElement {
506 - attributes,
507 - name: convert_jsx_name(cx, &expr.opening.name),
508 - self_closing: expr.opening.self_closing,
509 - loc: None,
510 - range: convert_span(&expr.opening.span),
511 - };
512 - let children = expr
513 - .children
514 - .iter()
515 - .map(|child| convert_jsx_child(cx, child))
516 - .collect();
517 - let closing_element = expr
518 - .closing
519 - .as_ref()
520 - .map(|closing| forget_estree::JSXClosingElement {
521 - name: convert_jsx_name(cx, &closing.name),
522 - loc: None,
523 - range: convert_span(&closing.span),
524 - });
525 - forget_estree::JSXElement {
526 - opening_element,
527 - children,
528 - closing_element,
529 - loc: None,
530 - range: convert_span(&expr.span),
531 - }
532 -}
533 -
534 -fn convert_jsx_name(cx: &Context, name: &JSXElementName) -> forget_estree::JSXElementName {
535 - match name {
536 - JSXElementName::Ident(name) => {
537 - forget_estree::JSXElementName::JSXIdentifier(Box::new(convert_jsx_identifier(cx, name)))
538 - }
539 - JSXElementName::JSXMemberExpr(name) => forget_estree::JSXElementName::JSXMemberExpression(
540 - Box::new(convert_jsx_member_expression(cx, name)),
541 - ),
542 - JSXElementName::JSXNamespacedName(name) => {
543 - forget_estree::JSXElementName::JSXNamespacedName(Box::new(
544 - forget_estree::JSXNamespacedName {
545 - namespace: convert_jsx_identifier(cx, &name.ns),
546 - name: convert_jsx_identifier(cx, &name.name),
547 - loc: None,
548 - range: None, // sigh, swc doesn't have a span for the entire name
549 - },
550 - ))
551 - }
552 - }
553 -}
554 -
555 -fn convert_jsx_member_expression(
556 - cx: &Context,
557 - expr: &JSXMemberExpr,
558 -) -> forget_estree::JSXMemberExpression {
559 - forget_estree::JSXMemberExpression {
560 - object: match &expr.obj {
561 - JSXObject::JSXMemberExpr(obj) => {
562 - forget_estree::JSXMemberExpressionOrIdentifier::JSXMemberExpression(Box::new(
563 - convert_jsx_member_expression(cx, obj),
564 - ))
565 - }
566 - JSXObject::Ident(obj) => forget_estree::JSXMemberExpressionOrIdentifier::JSXIdentifier(
567 - Box::new(convert_jsx_identifier(cx, obj)),
568 - ),
569 - },
570 - property: convert_jsx_identifier(cx, &expr.prop),
571 - loc: None,
572 - range: None, // sigh, swc doesn't have a span for the member expr
573 - }
574 -}
575 -
576 -fn convert_jsx_child(cx: &Context, child: &JSXElementChild) -> forget_estree::JSXChildItem {
577 - match child {
578 - JSXElementChild::JSXText(child) => {
579 - forget_estree::JSXChildItem::JSXText(Box::new(forget_estree::JSXText {
580 - value: child.value.to_string(),
581 - raw: child.raw.to_string(),
582 - loc: None,
583 - range: convert_span(&child.span),
584 - }))
585 - }
586 - JSXElementChild::JSXElement(child) => {
587 - forget_estree::JSXChildItem::JSXElement(Box::new(convert_jsx_element(cx, child)))
588 - }
589 - JSXElementChild::JSXExprContainer(child) => {
590 - forget_estree::JSXChildItem::JSXExpressionContainer(Box::new(
591 - forget_estree::JSXExpressionContainer {
592 - expression: match &child.expr {
593 - JSXExpr::Expr(expr) => forget_estree::JSXExpressionOrEmpty::Expression(
594 - convert_expression(cx, expr),
595 - ),
596 - JSXExpr::JSXEmptyExpr(expr) => {
597 - forget_estree::JSXExpressionOrEmpty::JSXEmptyExpression(Box::new(
598 - forget_estree::JSXEmptyExpression {
599 - loc: None,
600 - range: convert_span(&expr.span),
601 - },
602 - ))
603 - }
604 - },
605 - loc: None,
606 - range: convert_span(&child.span),
607 - },
608 - ))
609 - }
610 - _ => todo!("handle other jsx child types"),
611 - }
612 -}
613 -
614 -fn convert_jsx_attribute(cx: &Context, attr: &JSXAttr) -> forget_estree::JSXAttribute {
615 - let name = match &attr.name {
616 - JSXAttrName::Ident(name) => {
617 - forget_estree::JSXIdentifierOrNamespacedName::JSXIdentifier(Box::new({
618 - let ident = convert_identifier(cx, name);
619 - forget_estree::JSXIdentifier {
620 - name: ident.name,
621 - binding: ident.binding,
622 - loc: ident.loc,
623 - range: ident.range,
624 - }
625 - }))
626 - }
627 - JSXAttrName::JSXNamespacedName(name) => {
628 - forget_estree::JSXIdentifierOrNamespacedName::JSXNamespacedName(Box::new(
629 - forget_estree::JSXNamespacedName {
630 - namespace: convert_jsx_identifier(cx, &name.ns),
631 - name: convert_jsx_identifier(cx, &name.name),
632 - loc: None,
633 - range: None, // sigh, swc doesn't have a span for the entire name
634 - },
635 - ))
636 - }
637 - };
638 - let value = attr.value.as_ref().map(|attr| match attr {
639 - JSXAttrValue::Lit(value) => {
640 - forget_estree::JSXAttributeValue::Literal(Box::new(convert_literal(cx, value)))
641 - }
642 - JSXAttrValue::JSXElement(value) => {
643 - forget_estree::JSXAttributeValue::JSXElement(Box::new(convert_jsx_element(cx, value)))
644 - }
645 - JSXAttrValue::JSXExprContainer(value) => {
646 - forget_estree::JSXAttributeValue::JSXExpressionContainer(Box::new(
647 - forget_estree::JSXExpressionContainer {
648 - expression: match &value.expr {
649 - JSXExpr::Expr(expr) => forget_estree::JSXExpressionOrEmpty::Expression(
650 - convert_expression(cx, expr),
651 - ),
652 - JSXExpr::JSXEmptyExpr(expr) => {
653 - forget_estree::JSXExpressionOrEmpty::JSXEmptyExpression(Box::new(
654 - forget_estree::JSXEmptyExpression {
655 - loc: None,
656 - range: convert_span(&expr.span),
657 - },
658 - ))
659 - }
660 - },
661 - loc: None,
662 - range: convert_span(&value.span),
663 - },
664 - ))
665 - }
666 - _ => todo!("handle other attribute value types"),
667 - });
668 - forget_estree::JSXAttribute {
669 - name,
670 - value,
671 - loc: None,
672 - range: convert_span(&attr.span),
673 - }
674 -}
675 -
676 -fn convert_literal(_cx: &Context, expr: &Lit) -> forget_estree::Literal {
677 - let (value, range, regex, bigint) = match expr {
678 - Lit::Bool(expr) => (
679 - forget_estree::JsValue::Boolean(expr.value),
680 - convert_span(&expr.span),
681 - None,
682 - None,
683 - ),
684 - Lit::Num(expr) => (
685 - forget_estree::JsValue::Number(expr.value.into()),
686 - convert_span(&expr.span),
687 - None,
688 - None,
689 - ),
690 - Lit::Str(expr) => (
691 - forget_estree::JsValue::String(expr.value.to_string()),
692 - convert_span(&expr.span),
693 - None,
694 - None,
695 - ),
696 - Lit::Null(expr) => (
697 - forget_estree::JsValue::Null,
698 - convert_span(&expr.span),
699 - None,
700 - None,
701 - ),
702 - Lit::Regex(expr) => (
703 - forget_estree::JsValue::Undefined,
704 - convert_span(&expr.span),
705 - Some(forget_estree::RegExpValue {
706 - pattern: expr.exp.to_string(),
707 - flags: expr.flags.to_string(),
708 - }),
709 - None,
710 - ),
711 - Lit::BigInt(expr) => (
712 - forget_estree::JsValue::Undefined,
713 - convert_span(&expr.span),
714 - None,
715 - Some(
716 - expr.raw
717 - .as_ref()
718 - .expect("Expected bigint to have a raw value")
719 - .to_string(),
720 - ),
721 - ),
722 - Lit::JSXText(_) => {
723 - panic!("Unexpected expression: JSXText is not an expression")
724 - }
725 - };
726 - forget_estree::Literal {
727 - value,
728 - raw: None,
729 - loc: None,
730 - regex,
731 - range,
732 - bigint,
733 - }
734 -}
735 -
736 -fn convert_arguments(
737 - cx: &Context,
738 - arguments: &[ExprOrSpread],
739 -) -> Vec<forget_estree::ExpressionOrSpread> {
740 - arguments
741 - .iter()
742 - .map(|arg| match arg {
743 - ExprOrSpread {
744 - spread: Some(spread),
745 - expr,
746 - } => forget_estree::ExpressionOrSpread::SpreadElement(Box::new(
747 - forget_estree::SpreadElement {
748 - argument: convert_expression(cx, expr),
749 - loc: None,
750 - range: convert_span(&spread),
751 - },
752 - )),
753 - ExprOrSpread { spread: None, expr } => {
754 - forget_estree::ExpressionOrSpread::Expression(convert_expression(cx, expr))
755 - }
756 - })
757 - .collect()
758 -}
759 -
760 -fn convert_assignment_target(cx: &Context, target: &PatOrExpr) -> forget_estree::AssignmentTarget {
761 - match target {
762 - PatOrExpr::Pat(target) => {
763 - forget_estree::AssignmentTarget::Pattern(convert_pattern(cx, target))
764 - }
765 - PatOrExpr::Expr(target) => match target.as_ref() {
766 - Expr::Member(target) => forget_estree::AssignmentTarget::Expression(
767 - forget_estree::Expression::MemberExpression(Box::new(convert_member_expression(
768 - cx, target,
769 - ))),
770 - ),
771 - Expr::Ident(target) => forget_estree::AssignmentTarget::Pattern(
772 - forget_estree::Pattern::Identifier(Box::new(convert_identifier(cx, target))),
773 - ),
774 - _ => {
775 - panic!(
776 - "Expected assignment target to be member expression or identifier, got {:#?}",
777 - target
778 - )
779 - }
780 - },
781 - }
782 -}
783 -
784 -fn convert_member_expression(cx: &Context, expr: &MemberExpr) -> forget_estree::MemberExpression {
785 - let (is_computed, property) = match &expr.prop {
786 - MemberProp::Ident(prop) => (
787 - false,
788 - forget_estree::ExpressionOrPrivateIdentifier::Expression(
789 - forget_estree::Expression::Identifier(Box::new(convert_identifier(cx, prop))),
790 - ),
791 - ),
792 - MemberProp::Computed(prop) => (
793 - true,
794 - forget_estree::ExpressionOrPrivateIdentifier::Expression(convert_expression(
795 - cx, &prop.expr,
796 - )),
797 - ),
798 - MemberProp::PrivateName(prop) => {
799 - let name = prop.id.sym.as_ref().to_string();
800 - (
801 - false,
802 - forget_estree::ExpressionOrPrivateIdentifier::PrivateIdentifier(Box::new(
803 - forget_estree::PrivateIdentifier {
804 - name,
805 - loc: None,
806 - range: convert_span(&prop.span),
807 - },
808 - )),
809 - )
810 - }
811 - };
812 - forget_estree::MemberExpression {
813 - object: forget_estree::ExpressionOrSuper::Expression(convert_expression(cx, &expr.obj)),
814 - property,
815 - is_computed,
816 - loc: None,
817 - range: convert_span(&expr.span),
818 - }
819 -}
820 -
821 -fn convert_optional_member_expression(
822 - cx: &Context,
823 - expr: &MemberExpr,
824 -) -> forget_estree::OptionalMemberExpression {
825 - let (is_computed, property) = match &expr.prop {
826 - MemberProp::Ident(prop) => (
827 - false,
828 - forget_estree::Expression::Identifier(Box::new(convert_identifier(cx, prop))),
829 - ),
830 - MemberProp::Computed(prop) => (true, convert_expression(cx, &prop.expr)),
831 - _ => {
832 - panic!("PrivateName member expression properties are not supported")
833 - }
834 - };
835 - forget_estree::OptionalMemberExpression {
836 - object: convert_expression(cx, &expr.obj),
837 - property,
838 - is_computed,
839 - is_optional: false,
840 - loc: None,
841 - range: convert_span(&expr.span),
842 - }
843 -}
844 -
845 -fn convert_unary_operator(op: UnaryOp) -> forget_estree::UnaryOperator {
846 - match op {
847 - UnaryOp::Bang => forget_estree::UnaryOperator::Negation,
848 - UnaryOp::Delete => forget_estree::UnaryOperator::Delete,
849 - UnaryOp::Minus => forget_estree::UnaryOperator::Minus,
850 - UnaryOp::Plus => forget_estree::UnaryOperator::Plus,
851 - UnaryOp::Tilde => forget_estree::UnaryOperator::Tilde,
852 - UnaryOp::TypeOf => forget_estree::UnaryOperator::Typeof,
853 - UnaryOp::Void => forget_estree::UnaryOperator::Void,
854 - }
855 -}
856 -
857 -fn convert_assignment_operator(op: AssignOp) -> forget_estree::AssignmentOperator {
858 - match op {
859 - AssignOp::Assign => forget_estree::AssignmentOperator::Equals,
860 - AssignOp::AddAssign => forget_estree::AssignmentOperator::PlusEquals,
861 - _ => todo!("translate assignment operator"),
862 - }
863 -}
864 -
865 -enum Operator {
866 - Binary(forget_estree::BinaryOperator),
867 - Logical(forget_estree::LogicalOperator),
868 -}
869 -
870 -fn convert_binary_operator(op: BinaryOp) -> Operator {
871 - match op {
872 - BinaryOp::Add => Operator::Binary(forget_estree::BinaryOperator::Add),
873 - BinaryOp::BitAnd => Operator::Binary(forget_estree::BinaryOperator::BinaryAnd),
874 - BinaryOp::BitOr => Operator::Binary(forget_estree::BinaryOperator::BinaryOr),
875 - BinaryOp::BitXor => Operator::Binary(forget_estree::BinaryOperator::BinaryXor),
876 - BinaryOp::Div => Operator::Binary(forget_estree::BinaryOperator::Divide),
877 - BinaryOp::EqEq => Operator::Binary(forget_estree::BinaryOperator::Equals),
878 - BinaryOp::EqEqEq => Operator::Binary(forget_estree::BinaryOperator::StrictEquals),
879 - BinaryOp::Exp => Operator::Binary(forget_estree::BinaryOperator::Exponent),
880 - BinaryOp::Gt => Operator::Binary(forget_estree::BinaryOperator::GreaterThan),
881 - BinaryOp::GtEq => Operator::Binary(forget_estree::BinaryOperator::GreaterThanOrEqual),
882 - BinaryOp::In => Operator::Binary(forget_estree::BinaryOperator::In),
883 - BinaryOp::InstanceOf => Operator::Binary(forget_estree::BinaryOperator::Instanceof),
884 - BinaryOp::LShift => Operator::Binary(forget_estree::BinaryOperator::ShiftLeft),
885 - BinaryOp::Lt => Operator::Binary(forget_estree::BinaryOperator::LessThan),
886 - BinaryOp::LtEq => Operator::Binary(forget_estree::BinaryOperator::LessThanOrEqual),
887 - BinaryOp::Mod => Operator::Binary(forget_estree::BinaryOperator::Modulo),
888 - BinaryOp::Mul => Operator::Binary(forget_estree::BinaryOperator::Multiply),
889 - BinaryOp::NotEq => Operator::Binary(forget_estree::BinaryOperator::NotEquals),
890 - BinaryOp::NotEqEq => Operator::Binary(forget_estree::BinaryOperator::NotStrictEquals),
891 - BinaryOp::RShift => Operator::Binary(forget_estree::BinaryOperator::ShiftRight),
892 - BinaryOp::Sub => Operator::Binary(forget_estree::BinaryOperator::Subtract),
893 - BinaryOp::ZeroFillRShift => {
894 - Operator::Binary(forget_estree::BinaryOperator::UnsignedShiftRight)
895 - }
896 -
897 - BinaryOp::LogicalAnd => Operator::Logical(forget_estree::LogicalOperator::And),
898 - BinaryOp::LogicalOr => Operator::Logical(forget_estree::LogicalOperator::Or),
899 - BinaryOp::NullishCoalescing => {
900 - Operator::Logical(forget_estree::LogicalOperator::NullCoalescing)
901 - }
902 - }
903 -}
904 -
905 -fn convert_update_operator(op: UpdateOp) -> forget_estree::UpdateOperator {
906 - match op {
907 - UpdateOp::MinusMinus => forget_estree::UpdateOperator::Decrement,
908 - UpdateOp::PlusPlus => forget_estree::UpdateOperator::Increment,
909 - }
910 -}
911 -
912 -fn convert_pattern(cx: &Context, pat: &Pat) -> forget_estree::Pattern {
913 - match pat {
914 - Pat::Ident(pat) => {
915 - forget_estree::Pattern::Identifier(Box::new(forget_estree::Identifier {
916 - name: pat.id.sym.to_string(),
917 - binding: convert_binding(cx, pat.id.span.ctxt),
918 - type_annotation: None,
919 - loc: None,
920 - range: convert_span(&pat.span),
921 - }))
922 - }
923 - _ => todo!("translate pattern {:#?}", pat),
924 - }
925 -}
926 -
927 -fn convert_binding(context: &Context, binding_cx: SyntaxContext) -> Option<Binding> {
928 - let id = BindingId::new(binding_cx.as_u32());
929 - if binding_cx.as_u32() == context.top_level_mark.as_u32() {
930 - Some(Binding::Global)
931 - } else if binding_cx.as_u32() == context.unresolved_mark.as_u32() {
932 - Some(Binding::Module(id))
933 - } else {
934 - Some(Binding::Local(id))
935 - }
936 -}
937 -
938 -fn convert_identifier(cx: &Context, identifier: &Ident) -> forget_estree::Identifier {
939 - let name = identifier.sym.as_ref().to_string();
940 - forget_estree::Identifier {
941 - name,
942 - binding: convert_binding(cx, identifier.span.ctxt),
943 - type_annotation: None,
944 - loc: None,
945 - range: convert_span(&identifier.span),
946 - }
947 -}
948 -
949 -fn convert_jsx_identifier(cx: &Context, identifier: &Ident) -> forget_estree::JSXIdentifier {
950 - let name = identifier.sym.as_ref().to_string();
951 - forget_estree::JSXIdentifier {
952 - name,
953 - binding: convert_binding(cx, identifier.span.ctxt),
954 - loc: None,
955 - range: convert_span(&identifier.span),
956 - }
957 -}
958 -
959 -#[cfg(test)]
960 -mod tests {
961 - #[test]
962 - fn it_works() {}
963 -}
compiler/forget/rust-toolchain.toml
+1 -2
@@ -1,3 +1,2 @@
1 [toolchain]
2 -# Sigh, because SWC
3 -channel = "nightly"
\ No newline at end of file
2 +channel = "stable"
\ No newline at end of file