[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, ¶m.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