├── .gitignore ├── rust-toolchain.toml ├── package.json ├── src ├── oxc.rs ├── swc.rs ├── biome.rs └── lib.rs ├── pnpm-lock.yaml ├── memory.sh ├── .github ├── renovate.json └── workflows │ └── benchmark.yml ├── Cargo.toml ├── table.mjs ├── bar-graph.svg ├── benches └── parser.rs ├── README.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | node_modules 3 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.92.0" 3 | profile = "minimal" 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bench-javascript-parser-written-in-rust", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "table": "node table.mjs" 7 | }, 8 | "devDependencies": { 9 | "markdown-table": "^3.0.3" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/oxc.rs: -------------------------------------------------------------------------------- 1 | #[global_allocator] 2 | static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; 3 | 4 | use std::{env, fs, path::Path}; 5 | 6 | use bench_parser::oxc; 7 | 8 | pub fn main() { 9 | let path = env::args().nth(1).unwrap(); 10 | let path = Path::new(&path); 11 | let source_text = fs::read_to_string(path).unwrap(); 12 | let _ = oxc::parse(path, &source_text); 13 | } 14 | -------------------------------------------------------------------------------- /src/swc.rs: -------------------------------------------------------------------------------- 1 | #[global_allocator] 2 | static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; 3 | 4 | use std::{env, fs, path::Path}; 5 | 6 | use bench_parser::swc; 7 | 8 | pub fn main() { 9 | let path = env::args().nth(1).unwrap(); 10 | let path = Path::new(&path); 11 | let source_text = fs::read_to_string(path).unwrap(); 12 | let _ = swc::parse(path, &source_text); 13 | } 14 | -------------------------------------------------------------------------------- /src/biome.rs: -------------------------------------------------------------------------------- 1 | #[global_allocator] 2 | static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; 3 | 4 | use std::{env, fs, path::Path}; 5 | 6 | use bench_parser::biome; 7 | 8 | pub fn main() { 9 | let path = env::args().nth(1).unwrap(); 10 | let path = Path::new(&path); 11 | let source_text = fs::read_to_string(path).unwrap(); 12 | let _ = biome::parse(path, &source_text); 13 | } 14 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | markdown-table: 12 | specifier: ^3.0.3 13 | version: 3.0.4 14 | 15 | packages: 16 | 17 | markdown-table@3.0.4: 18 | resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} 19 | 20 | snapshots: 21 | 22 | markdown-table@3.0.4: {} 23 | -------------------------------------------------------------------------------- /memory.sh: -------------------------------------------------------------------------------- 1 | cargo build --release 2 | 3 | for FILE in "./files/cal.com.tsx" "./files/typescript.js" 4 | do 5 | echo $FILE 6 | 7 | for APP in oxc swc biome 8 | do 9 | hyperfine --warmup 10 --show-output "/usr/bin/time -al ./target/release/$APP $FILE > /dev/null" 2>&1 | \ 10 | grep "maximum resident set size" | \ 11 | awk '{ print $1 }' \ 12 | > ./target/output 13 | 14 | TOTAL=$(awk '{ total += $1 } END { print total }' ./target/output) 15 | COUNT=$(wc -l ./target/output| awk '{ print $1 }') 16 | AVERAGE_MB=$(echo "$TOTAL $COUNT" | awk '{printf "%.1f", $1 / $2 / 1000 / 1000}') 17 | 18 | echo $APP $AVERAGE_MB mb 19 | done 20 | done 21 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["github>Boshen/renovate"], 4 | "lockFileMaintenance": { 5 | "enabled": true 6 | }, 7 | "packageRules": [ 8 | { 9 | "groupName": "oxc", 10 | "matchDepNames": ["oxc"], 11 | "schedule": ["at any time"], 12 | "automergeType": "pr", 13 | "rangeStrategy": "bump" 14 | }, 15 | { 16 | "groupName": "swc", 17 | "matchPackagePrefixes": ["swc"], 18 | "schedule": ["at any time"], 19 | "automergeType": "pr", 20 | "rangeStrategy": "bump" 21 | }, 22 | { 23 | "groupName": "biome", 24 | "matchPackagePrefixes": ["biome"], 25 | "schedule": ["at any time"], 26 | "automergeType": "pr", 27 | "rangeStrategy": "bump" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bench-parser" 3 | version = "0.1.0" 4 | edition = "2021" 5 | publish = false 6 | 7 | [[bench]] 8 | name = "parser" 9 | harness = false 10 | 11 | [[bin]] 12 | name = "oxc" 13 | path = "src/oxc.rs" 14 | test = false 15 | doctest = false 16 | 17 | [[bin]] 18 | name = "swc" 19 | path = "src/swc.rs" 20 | test = false 21 | doctest = false 22 | 23 | # [[bin]] 24 | # name = "biome" 25 | # path = "src/biome.rs" 26 | # test = false 27 | # doctest = false 28 | 29 | [dependencies] 30 | oxc = "0.103.0" 31 | 32 | swc_ecma_parser = { version = "29.0.2", features = ["typescript"] } 33 | swc_ecma_ast = "19.0.0" 34 | swc_common = "18.0.1" 35 | 36 | # biome_js_parser = "0.5.6" 37 | # biome_js_syntax = "0.5.6" 38 | 39 | num_cpus = "1.16.0" 40 | criterion2 = { version = "3.0.0", default-features = false } 41 | rayon = "1.10.0" 42 | mimalloc= { package = "mimalloc-safe", version = "0.1.52" } 43 | 44 | [features] 45 | codspeed = ["criterion2/codspeed"] 46 | 47 | [profile.release] 48 | opt-level = 3 49 | lto = "fat" 50 | codegen-units = 1 51 | strip = "symbols" 52 | debug = false 53 | panic = "abort" 54 | -------------------------------------------------------------------------------- /.github/workflows/benchmark.yml: -------------------------------------------------------------------------------- 1 | name: Benchmark 2 | 3 | on: 4 | workflow_dispatch: 5 | pull_request: 6 | types: [opened, synchronize] 7 | push: 8 | branches: 9 | - main 10 | 11 | concurrency: 12 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} 13 | cancel-in-progress: ${{ github.ref_name != 'main' }} 14 | 15 | permissions: {} 16 | 17 | jobs: 18 | benchmark: 19 | name: Benchmark 20 | runs-on: ubuntu-latest 21 | permissions: 22 | id-token: write # required for OIDC authentication with CodSpeed 23 | steps: 24 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 25 | 26 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 27 | with: 28 | save-cache: ${{ github.ref_name == 'main' }} 29 | tools: cargo-codspeed 30 | 31 | - name: Build Benchmark 32 | run: cargo codspeed build --features codspeed 33 | 34 | - name: Run benchmark 35 | uses: CodSpeedHQ/action@346a2d8a8d9d38909abd0bc3d23f773110f076ad # v4.4.1 36 | with: 37 | run: cargo codspeed run 38 | mode: instrumentation 39 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod oxc { 2 | use std::path::Path; 3 | 4 | use oxc::{allocator::Allocator, parser::Parser, span::SourceType}; 5 | 6 | pub fn parse(path: &Path, source: &str) -> Allocator { 7 | let allocator = Allocator::default(); 8 | let source_type = SourceType::from_path(path).unwrap(); 9 | _ = Parser::new(&allocator, source, source_type).parse(); 10 | allocator 11 | } 12 | } 13 | 14 | pub mod swc { 15 | use std::path::Path; 16 | 17 | use swc_common::BytePos; 18 | use swc_ecma_ast::Module; 19 | use swc_ecma_parser::{EsSyntax, Parser, StringInput, Syntax, TsSyntax}; 20 | 21 | pub fn parse(path: &Path, source: &str) -> Module { 22 | let syntax = match path.extension().unwrap().to_str().unwrap() { 23 | "js" => Syntax::Es(EsSyntax::default()), 24 | "tsx" => Syntax::Typescript(TsSyntax { 25 | tsx: true, 26 | ..TsSyntax::default() 27 | }), 28 | _ => panic!("need to define syntax for swc"), 29 | }; 30 | let input = StringInput::new(source, BytePos(0), BytePos(source.len() as u32)); 31 | Parser::new(syntax, input, None).parse_module().unwrap() 32 | } 33 | } 34 | 35 | // pub mod biome { 36 | // use std::path::Path; 37 | 38 | // use biome_js_parser::{JsParserOptions, Parse}; 39 | // use biome_js_syntax::{AnyJsRoot, JsFileSource}; 40 | 41 | // pub fn parse(path: &Path, source: &str) -> Parse { 42 | // let options = JsParserOptions::default(); 43 | // let source_type = JsFileSource::try_from(path).unwrap(); 44 | // biome_js_parser::parse(source, source_type, options) 45 | // } 46 | // } 47 | -------------------------------------------------------------------------------- /table.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs' 2 | import { markdownTable } from 'markdown-table' 3 | 4 | async function readData() { 5 | const data = {}; 6 | const dir = "./target/criterion"; 7 | 8 | const groups = await fs.promises.readdir(dir); 9 | for (const group of groups) { 10 | data[group] ||= {}; 11 | 12 | const benches = await fs.promises.readdir(`${dir}/${group}`); 13 | for (const bench of benches) { 14 | data[group][bench] ||= {}; 15 | 16 | const measurements = await fs.promises.readdir(`${dir}/${group}/${bench}`); 17 | for (const measurement of measurements) { 18 | const json = await import(`${dir}/${group}/${bench}/${measurement}/new/estimates.json`, { with: { type: "json" } }); 19 | const duration_ms = json.default.mean.point_estimate / 1_000_000; 20 | data[group][bench][measurement] ||= { duration_ms }; 21 | } 22 | } 23 | } 24 | 25 | return data 26 | } 27 | 28 | async function main() { 29 | const data = await readData(); 30 | const groups = Object.keys(data); 31 | const columns = Object.keys(data[groups[0]]); 32 | const rows = Object.keys(data[groups[0]][columns[0]]); 33 | 34 | 35 | for (const group of groups) { 36 | console.log(`### ${group}`); 37 | console.log() 38 | const table = [["", ...columns]]; 39 | for (const row of rows) { 40 | const column_numbers = columns.map((column) => data[group][column][row].duration_ms); 41 | const minimum = Math.min(...column_numbers); 42 | const column_values = column_numbers.map((number) => { 43 | return `\`${number.toFixed(1)} ms\` (${(number / minimum).toFixed(2)}x)` 44 | }); 45 | table.push([row, ...column_values]); 46 | } 47 | console.log(markdownTable(table)); 48 | console.log() 49 | } 50 | } 51 | 52 | main() 53 | -------------------------------------------------------------------------------- /bar-graph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Parser Benchmark 8 | 9 | 10 | oxc 11 | 12 | 13 | swc 14 | 15 | 16 | biome 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 0 36 | 100 37 | 200 38 | 300 39 | 400 40 | single-thread 41 | 42 | 43 | time (ms) 44 | 45 | 46 | -------------------------------------------------------------------------------- /benches/parser.rs: -------------------------------------------------------------------------------- 1 | use std::path::Path; 2 | 3 | use criterion::{measurement::WallTime, *}; 4 | use rayon::prelude::*; 5 | 6 | #[global_allocator] 7 | static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc; 8 | 9 | trait TheBencher { 10 | type ParseOutput; 11 | 12 | const ID: &'static str; 13 | 14 | fn parse(filename: &Path, source: &str) -> Self::ParseOutput; 15 | 16 | fn bench(g: &mut BenchmarkGroup<'_, WallTime>, path: &Path, source: &str) { 17 | let cpus = num_cpus::get_physical(); 18 | let id = BenchmarkId::new(Self::ID, "single-thread"); 19 | g.bench_with_input(id, &source, |b, source| { 20 | b.iter(|| Self::parse(path, source)) 21 | }); 22 | 23 | let id = BenchmarkId::new(Self::ID, "no-drop"); 24 | g.bench_with_input(id, &source, |b, source| { 25 | b.iter_with_large_drop(|| Self::parse(path, source)) 26 | }); 27 | 28 | let id = BenchmarkId::new(Self::ID, "parallel"); 29 | g.bench_with_input(id, &source, |b, source| { 30 | b.iter(|| { 31 | (0..cpus).into_par_iter().for_each(|_| { 32 | Self::parse(path, source); 33 | }); 34 | }) 35 | }); 36 | } 37 | } 38 | 39 | struct OxcBencher; 40 | 41 | impl TheBencher for OxcBencher { 42 | type ParseOutput = oxc::allocator::Allocator; 43 | 44 | const ID: &'static str = "oxc"; 45 | 46 | fn parse(path: &Path, source: &str) -> Self::ParseOutput { 47 | bench_parser::oxc::parse(path, source) 48 | } 49 | } 50 | 51 | struct SwcBencher; 52 | 53 | impl TheBencher for SwcBencher { 54 | type ParseOutput = swc_ecma_ast::Module; 55 | 56 | const ID: &'static str = "swc"; 57 | 58 | fn parse(path: &Path, source: &str) -> Self::ParseOutput { 59 | bench_parser::swc::parse(path, source) 60 | } 61 | } 62 | 63 | // struct BiomeBencher; 64 | 65 | // impl TheBencher for BiomeBencher { 66 | // type ParseOutput = biome_js_parser::Parse; 67 | 68 | // const ID: &'static str = "biome"; 69 | 70 | // fn parse(path: &Path, source: &str) -> Self::ParseOutput { 71 | // bench_parser::biome::parse(path, source) 72 | // } 73 | // } 74 | 75 | fn parser_benchmark(c: &mut Criterion) { 76 | let filenames = ["typescript.js", "cal.com.tsx"]; 77 | for filename in filenames { 78 | let path = Path::new("files").join(filename); 79 | let source = std::fs::read_to_string(&path).unwrap(); 80 | let mut g = c.benchmark_group(filename); 81 | OxcBencher::bench(&mut g, &path, &source); 82 | SwcBencher::bench(&mut g, &path, &source); 83 | // BiomeBencher::bench(&mut g, &path, &source); 84 | g.finish(); 85 | } 86 | } 87 | 88 | criterion_group!(parser, parser_benchmark); 89 | criterion_main!(parser); 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Parser Benchmark for Oxc, Swc and Biome 2 | 3 | The purpose of this benchmark is for people who wants to evaluate and compare the performance characteristics of these parsers. 4 | 5 | ## Summary 6 | 7 | Oxc's parser is at least 3x faster than swc and 5x faster than Biome. 8 | 9 | Please note that it is not an apple to apple comparison with Biome. 10 | Biome's parser [produces a CST](https://biomejs.dev/internals/architecture) instead of an AST, 11 | which requires a lot more work. 12 | 13 | ## CPU 14 | 15 | ### Codspeed Measurement 16 | 17 | [![CodSpeed Badge][codspeed-badge]][codspeed-url] 18 | 19 | [codspeed-badge]: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json 20 | [codspeed-url]: https://codspeed.io/oxc-project/bench-javascript-parser-written-in-rust/benchmarks 21 | 22 | Codspeed measures performance by cpu instructions. 23 | 24 | ### Mac i7 6 cores 25 | 26 | 27 | 28 | ### Mac mini M2 8 cores 29 | 30 | #### cal.com.tsx 31 | 32 | | | oxc | swc | biome | 33 | | ------------- | ---------------- | ----------------- | ----------------- | 34 | | no-drop | `4.0 ms` (1.00x) | `14.0 ms` (3.50x) | `18.7 ms` (4.68x) | 35 | | parallel | `7.4 ms` (1.00x) | `26.4 ms` (3.56x) | `38.7 ms` (5.21x) | 36 | | single-thread | `4.0 ms` (1.00x) | `14.9 ms` (3.73x) | `20.1 ms` (5.04x) | 37 | 38 | ### typescript.js 39 | 40 | | | oxc | swc | biome | 41 | | ------------- | ----------------- | ------------------ | ------------------ | 42 | | no-drop | `30.3 ms` (1.00x) | `100.3 ms` (3.31x) | `149.7 ms` (4.94x) | 43 | | parallel | `52.0 ms` (1.00x) | `164.5 ms` (3.17x) | `296.5 ms` (5.71x) | 44 | | single-thread | `29.8 ms` (1.00x) | `108.0 ms` (3.62x) | `159.5 ms` (5.34x) | 45 | 46 | ### MacBook Pro M3 Max 47 | 48 | #### cal.com.tsx 49 | 50 | | | oxc | swc | biome | 51 | | ------------- | ---------------- | ----------------- | ----------------- | 52 | | no-drop | `3.4 ms` (1.00x) | `13.4 ms` (3.99x) | `16.7 ms` (4.97x) | 53 | | parallel | `5.8 ms` (1.00x) | `23.8 ms` (4.14x) | `30.1 ms` (5.23x) | 54 | | single-thread | `3.4 ms` (1.00x) | `14.4 ms` (4.28x) | `18.3 ms` (5.42x) | 55 | 56 | #### typescript.js 57 | 58 | | | oxc | swc | biome | 59 | | ------------- | ----------------- | ------------------ | ------------------ | 60 | | no-drop | `26.3 ms` (1.00x) | `84.1 ms` (3.20x) | `130.1 ms` (4.94x) | 61 | | parallel | `36.1 ms` (1.00x) | `126.3 ms` (3.50x) | `225.9 ms` (6.26x) | 62 | | single-thread | `26.4 ms` (1.00x) | `91.0 ms` (3.45x) | `139.3 ms` (5.28x) | 63 | 64 | ### Run benchmark locally 65 | 66 | Run the following command on your machine for replication. 67 | 68 | ```bash 69 | cargo bench 70 | ``` 71 | 72 | Generate the table 73 | 74 | ```bash 75 | pnpm i 76 | pnpm run table 77 | ``` 78 | 79 | ## Maximum Resident Set Size 80 | 81 | ``` 82 | ./memory.sh 83 | 84 | ./files/cal.com.tsx 85 | oxc 11.5 mb (1.00x) 86 | swc 16.6 mb (1.44x) 87 | biome 22.5 mb (1.95x) 88 | 89 | ./files/typescript.js 90 | oxc 68.8 mb (1.00x) 91 | swc 92.0 mb (1.34x) 92 | biome 117.4 mb (1.70x) 93 | ``` 94 | 95 | ## Setup 96 | 97 | * Uses `mimalloc` as the global allocator 98 | * Uses the following release profile 99 | 100 | ```toml 101 | [profile.release] 102 | opt-level = 3 103 | lto = "fat" 104 | codegen-units = 1 105 | strip = "symbols" 106 | debug = false 107 | panic = "abort" 108 | ``` 109 | 110 | ### single-thread 111 | 112 | This is the standard benchmark run in a single thread. 113 | 114 | ```rust 115 | group.bench_with_input(id, &source, |b, source| { 116 | b.iter(|| Self::parse(source)) 117 | }); 118 | ``` 119 | 120 | ### no-drop 121 | 122 | This uses the [`iter_with_large_drop`](https://docs.rs/criterion/0.5.1/criterion/struct.Bencher.html#method.iter_with_large_drop) function, which does not take AST drop time into account. 123 | Notice there is only a 0.3ms difference for oxc, but 7ms difference for swc. 124 | 125 | AST drop time can become a bottleneck in applications such as as bundler, 126 | where there are a few thousands of files need to be parsed. 127 | 128 | ```rust 129 | group.bench_with_input(id, &source, |b, source| { 130 | b.iter_with_large_drop(|| Self::parse(source)) 131 | }); 132 | ``` 133 | 134 | ### parallel 135 | 136 | This benchmark uses the total number of physical cores as the total number of files to parse per bench iteration. For example it parses 6 files in parallel on my Mac i7 6 cores. 137 | 138 | This can indicate the existence of global resource contention. 139 | 140 | ```rust 141 | let cpus = num_cpus::get_physical(); 142 | group.bench_with_input(id, &source, |b, source| { 143 | b.iter(|| { 144 | (0..cpus).into_par_iter().for_each(|_| { 145 | Self::parse(source); 146 | }); 147 | }) 148 | }); 149 | ``` 150 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "ahash" 7 | version = "0.8.12" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" 10 | dependencies = [ 11 | "cfg-if", 12 | "once_cell", 13 | "version_check", 14 | "zerocopy", 15 | ] 16 | 17 | [[package]] 18 | name = "allocator-api2" 19 | version = "0.2.21" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 22 | 23 | [[package]] 24 | name = "anes" 25 | version = "0.2.1" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "dc43e46599f3d77fcf2f2ca89e4d962910b0c19c44e7b58679cbbdfd1820a662" 28 | 29 | [[package]] 30 | name = "anyhow" 31 | version = "1.0.100" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 34 | 35 | [[package]] 36 | name = "approx" 37 | version = "0.5.1" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 40 | dependencies = [ 41 | "num-traits", 42 | ] 43 | 44 | [[package]] 45 | name = "ar_archive_writer" 46 | version = "0.2.0" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" 49 | dependencies = [ 50 | "object", 51 | ] 52 | 53 | [[package]] 54 | name = "ast_node" 55 | version = "5.0.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "2eb025ef00a6da925cf40870b9c8d008526b6004ece399cb0974209720f0b194" 58 | dependencies = [ 59 | "quote", 60 | "swc_macros_common", 61 | "syn", 62 | ] 63 | 64 | [[package]] 65 | name = "autocfg" 66 | version = "1.5.0" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 69 | 70 | [[package]] 71 | name = "bench-parser" 72 | version = "0.1.0" 73 | dependencies = [ 74 | "criterion2", 75 | "mimalloc-safe", 76 | "num_cpus", 77 | "oxc", 78 | "rayon", 79 | "swc_common", 80 | "swc_ecma_ast", 81 | "swc_ecma_parser", 82 | ] 83 | 84 | [[package]] 85 | name = "better_scoped_tls" 86 | version = "1.0.1" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "7cd228125315b132eed175bf47619ac79b945b26e56b848ba203ae4ea8603609" 89 | dependencies = [ 90 | "scoped-tls", 91 | ] 92 | 93 | [[package]] 94 | name = "bincode" 95 | version = "1.3.3" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 98 | dependencies = [ 99 | "serde", 100 | ] 101 | 102 | [[package]] 103 | name = "bitflags" 104 | version = "2.10.0" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 107 | 108 | [[package]] 109 | name = "bpaf" 110 | version = "0.9.20" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "473976d7a8620bb1e06dcdd184407c2363fe4fec8e983ee03ed9197222634a31" 113 | 114 | [[package]] 115 | name = "bumpalo" 116 | version = "3.19.0" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 119 | dependencies = [ 120 | "allocator-api2", 121 | ] 122 | 123 | [[package]] 124 | name = "bytes" 125 | version = "1.11.0" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 128 | 129 | [[package]] 130 | name = "bytes-str" 131 | version = "0.2.7" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "7c60b5ce37e0b883c37eb89f79a1e26fbe9c1081945d024eee93e8d91a7e18b3" 134 | dependencies = [ 135 | "bytes", 136 | "serde", 137 | ] 138 | 139 | [[package]] 140 | name = "cast" 141 | version = "0.3.0" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" 144 | 145 | [[package]] 146 | name = "castaway" 147 | version = "0.2.4" 148 | source = "registry+https://github.com/rust-lang/crates.io-index" 149 | checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" 150 | dependencies = [ 151 | "rustversion", 152 | ] 153 | 154 | [[package]] 155 | name = "cc" 156 | version = "1.2.49" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" 159 | dependencies = [ 160 | "find-msvc-tools", 161 | "shlex", 162 | ] 163 | 164 | [[package]] 165 | name = "cfg-if" 166 | version = "1.0.4" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 169 | 170 | [[package]] 171 | name = "cfg_aliases" 172 | version = "0.2.1" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 175 | 176 | [[package]] 177 | name = "ciborium" 178 | version = "0.2.2" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 181 | dependencies = [ 182 | "ciborium-io", 183 | "ciborium-ll", 184 | "serde", 185 | ] 186 | 187 | [[package]] 188 | name = "ciborium-io" 189 | version = "0.2.2" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 192 | 193 | [[package]] 194 | name = "ciborium-ll" 195 | version = "0.2.2" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 198 | dependencies = [ 199 | "ciborium-io", 200 | "half", 201 | ] 202 | 203 | [[package]] 204 | name = "cmake" 205 | version = "0.1.56" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "b042e5d8a74ae91bb0961acd039822472ec99f8ab0948cbf6d1369588f8be586" 208 | dependencies = [ 209 | "cc", 210 | ] 211 | 212 | [[package]] 213 | name = "codspeed" 214 | version = "3.0.5" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | checksum = "35584c5fcba8059780748866387fb97c5a203bcfc563fc3d0790af406727a117" 217 | dependencies = [ 218 | "anyhow", 219 | "bincode", 220 | "colored 2.2.0", 221 | "glob", 222 | "libc", 223 | "nix", 224 | "serde", 225 | "serde_json", 226 | "statrs", 227 | "uuid", 228 | ] 229 | 230 | [[package]] 231 | name = "colored" 232 | version = "2.2.0" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" 235 | dependencies = [ 236 | "lazy_static", 237 | "windows-sys 0.59.0", 238 | ] 239 | 240 | [[package]] 241 | name = "colored" 242 | version = "3.0.0" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" 245 | dependencies = [ 246 | "windows-sys 0.59.0", 247 | ] 248 | 249 | [[package]] 250 | name = "compact_str" 251 | version = "0.9.0" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" 254 | dependencies = [ 255 | "castaway", 256 | "cfg-if", 257 | "itoa", 258 | "rustversion", 259 | "ryu", 260 | "static_assertions", 261 | ] 262 | 263 | [[package]] 264 | name = "cow-utils" 265 | version = "0.1.3" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" 268 | 269 | [[package]] 270 | name = "criterion2" 271 | version = "3.0.2" 272 | source = "registry+https://github.com/rust-lang/crates.io-index" 273 | checksum = "77cd1059d67baa066c334993d8d6e757ad257d21030db6a9a945dddbb559d4fe" 274 | dependencies = [ 275 | "anes", 276 | "bpaf", 277 | "cast", 278 | "ciborium", 279 | "codspeed", 280 | "colored 3.0.0", 281 | "num-traits", 282 | "oorandom", 283 | "serde", 284 | "serde_json", 285 | "walkdir", 286 | ] 287 | 288 | [[package]] 289 | name = "crossbeam-deque" 290 | version = "0.8.6" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 293 | dependencies = [ 294 | "crossbeam-epoch", 295 | "crossbeam-utils", 296 | ] 297 | 298 | [[package]] 299 | name = "crossbeam-epoch" 300 | version = "0.9.18" 301 | source = "registry+https://github.com/rust-lang/crates.io-index" 302 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 303 | dependencies = [ 304 | "crossbeam-utils", 305 | ] 306 | 307 | [[package]] 308 | name = "crossbeam-utils" 309 | version = "0.8.21" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 312 | 313 | [[package]] 314 | name = "crunchy" 315 | version = "0.2.4" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" 318 | 319 | [[package]] 320 | name = "displaydoc" 321 | version = "0.2.5" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 324 | dependencies = [ 325 | "proc-macro2", 326 | "quote", 327 | "syn", 328 | ] 329 | 330 | [[package]] 331 | name = "dragonbox_ecma" 332 | version = "0.0.5" 333 | source = "registry+https://github.com/rust-lang/crates.io-index" 334 | checksum = "d742b56656e8b14d63e7ea9806597b1849ae25412584c8adf78c0f67bd985e66" 335 | 336 | [[package]] 337 | name = "either" 338 | version = "1.15.0" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 341 | 342 | [[package]] 343 | name = "fastrand" 344 | version = "2.3.0" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 347 | 348 | [[package]] 349 | name = "find-msvc-tools" 350 | version = "0.1.5" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" 353 | 354 | [[package]] 355 | name = "form_urlencoded" 356 | version = "1.2.2" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 359 | dependencies = [ 360 | "percent-encoding", 361 | ] 362 | 363 | [[package]] 364 | name = "from_variant" 365 | version = "3.0.0" 366 | source = "registry+https://github.com/rust-lang/crates.io-index" 367 | checksum = "e5ff35a391aef949120a0340d690269b3d9f63460a6106e99bd07b961f345ea9" 368 | dependencies = [ 369 | "swc_macros_common", 370 | "syn", 371 | ] 372 | 373 | [[package]] 374 | name = "getrandom" 375 | version = "0.3.4" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 378 | dependencies = [ 379 | "cfg-if", 380 | "libc", 381 | "r-efi", 382 | "wasip2", 383 | ] 384 | 385 | [[package]] 386 | name = "glob" 387 | version = "0.3.3" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 390 | 391 | [[package]] 392 | name = "half" 393 | version = "2.7.1" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" 396 | dependencies = [ 397 | "cfg-if", 398 | "crunchy", 399 | "zerocopy", 400 | ] 401 | 402 | [[package]] 403 | name = "hashbrown" 404 | version = "0.14.5" 405 | source = "registry+https://github.com/rust-lang/crates.io-index" 406 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 407 | dependencies = [ 408 | "ahash", 409 | "allocator-api2", 410 | ] 411 | 412 | [[package]] 413 | name = "hashbrown" 414 | version = "0.16.1" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 417 | dependencies = [ 418 | "allocator-api2", 419 | ] 420 | 421 | [[package]] 422 | name = "heck" 423 | version = "0.5.0" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 426 | 427 | [[package]] 428 | name = "hermit-abi" 429 | version = "0.5.2" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 432 | 433 | [[package]] 434 | name = "hstr" 435 | version = "3.0.3" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "0c43c0a9e8fbdb3bb9dc8eee85e1e2ac81605418b4c83b6b7413cbf14d56ca5c" 438 | dependencies = [ 439 | "hashbrown 0.14.5", 440 | "new_debug_unreachable", 441 | "once_cell", 442 | "rustc-hash", 443 | "serde", 444 | "triomphe", 445 | ] 446 | 447 | [[package]] 448 | name = "icu_collections" 449 | version = "2.1.1" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 452 | dependencies = [ 453 | "displaydoc", 454 | "potential_utf", 455 | "yoke", 456 | "zerofrom", 457 | "zerovec", 458 | ] 459 | 460 | [[package]] 461 | name = "icu_locale_core" 462 | version = "2.1.1" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 465 | dependencies = [ 466 | "displaydoc", 467 | "litemap", 468 | "tinystr", 469 | "writeable", 470 | "zerovec", 471 | ] 472 | 473 | [[package]] 474 | name = "icu_normalizer" 475 | version = "2.1.1" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 478 | dependencies = [ 479 | "icu_collections", 480 | "icu_normalizer_data", 481 | "icu_properties", 482 | "icu_provider", 483 | "smallvec", 484 | "zerovec", 485 | ] 486 | 487 | [[package]] 488 | name = "icu_normalizer_data" 489 | version = "2.1.1" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 492 | 493 | [[package]] 494 | name = "icu_properties" 495 | version = "2.1.2" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" 498 | dependencies = [ 499 | "icu_collections", 500 | "icu_locale_core", 501 | "icu_properties_data", 502 | "icu_provider", 503 | "zerotrie", 504 | "zerovec", 505 | ] 506 | 507 | [[package]] 508 | name = "icu_properties_data" 509 | version = "2.1.2" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" 512 | 513 | [[package]] 514 | name = "icu_provider" 515 | version = "2.1.1" 516 | source = "registry+https://github.com/rust-lang/crates.io-index" 517 | checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 518 | dependencies = [ 519 | "displaydoc", 520 | "icu_locale_core", 521 | "writeable", 522 | "yoke", 523 | "zerofrom", 524 | "zerotrie", 525 | "zerovec", 526 | ] 527 | 528 | [[package]] 529 | name = "idna" 530 | version = "1.1.0" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 533 | dependencies = [ 534 | "idna_adapter", 535 | "smallvec", 536 | "utf8_iter", 537 | ] 538 | 539 | [[package]] 540 | name = "idna_adapter" 541 | version = "1.2.1" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 544 | dependencies = [ 545 | "icu_normalizer", 546 | "icu_properties", 547 | ] 548 | 549 | [[package]] 550 | name = "is-macro" 551 | version = "0.3.7" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4" 554 | dependencies = [ 555 | "heck", 556 | "proc-macro2", 557 | "quote", 558 | "syn", 559 | ] 560 | 561 | [[package]] 562 | name = "itoa" 563 | version = "1.0.15" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 566 | 567 | [[package]] 568 | name = "js-sys" 569 | version = "0.3.83" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" 572 | dependencies = [ 573 | "once_cell", 574 | "wasm-bindgen", 575 | ] 576 | 577 | [[package]] 578 | name = "lazy_static" 579 | version = "1.5.0" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 582 | 583 | [[package]] 584 | name = "libc" 585 | version = "0.2.178" 586 | source = "registry+https://github.com/rust-lang/crates.io-index" 587 | checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" 588 | 589 | [[package]] 590 | name = "libmimalloc-sys2" 591 | version = "0.1.51" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "f40d03e07b2ba6b86d53380611485c71d35b009a5949b7566a8ac5949f6cde58" 594 | dependencies = [ 595 | "cc", 596 | "cmake", 597 | "libc", 598 | ] 599 | 600 | [[package]] 601 | name = "litemap" 602 | version = "0.8.1" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 605 | 606 | [[package]] 607 | name = "memchr" 608 | version = "2.7.6" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 611 | 612 | [[package]] 613 | name = "mimalloc-safe" 614 | version = "0.1.55" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "664f11d12bce99bf21ef61c1949a88dc34440de83dd1b8dcb0b636b74b1d7e21" 617 | dependencies = [ 618 | "libmimalloc-sys2", 619 | ] 620 | 621 | [[package]] 622 | name = "new_debug_unreachable" 623 | version = "1.0.6" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 626 | 627 | [[package]] 628 | name = "nix" 629 | version = "0.29.0" 630 | source = "registry+https://github.com/rust-lang/crates.io-index" 631 | checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 632 | dependencies = [ 633 | "bitflags", 634 | "cfg-if", 635 | "cfg_aliases", 636 | "libc", 637 | ] 638 | 639 | [[package]] 640 | name = "nonmax" 641 | version = "0.5.5" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 644 | 645 | [[package]] 646 | name = "num-bigint" 647 | version = "0.4.6" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 650 | dependencies = [ 651 | "num-integer", 652 | "num-traits", 653 | "serde", 654 | ] 655 | 656 | [[package]] 657 | name = "num-integer" 658 | version = "0.1.46" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 661 | dependencies = [ 662 | "num-traits", 663 | ] 664 | 665 | [[package]] 666 | name = "num-traits" 667 | version = "0.2.19" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 670 | dependencies = [ 671 | "autocfg", 672 | ] 673 | 674 | [[package]] 675 | name = "num_cpus" 676 | version = "1.17.0" 677 | source = "registry+https://github.com/rust-lang/crates.io-index" 678 | checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" 679 | dependencies = [ 680 | "hermit-abi", 681 | "libc", 682 | ] 683 | 684 | [[package]] 685 | name = "object" 686 | version = "0.32.2" 687 | source = "registry+https://github.com/rust-lang/crates.io-index" 688 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 689 | dependencies = [ 690 | "memchr", 691 | ] 692 | 693 | [[package]] 694 | name = "once_cell" 695 | version = "1.21.3" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 698 | 699 | [[package]] 700 | name = "oorandom" 701 | version = "11.1.5" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" 704 | 705 | [[package]] 706 | name = "owo-colors" 707 | version = "4.2.3" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 710 | 711 | [[package]] 712 | name = "oxc" 713 | version = "0.103.0" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "0cbd3721f31187ec4f01caee2f772209987710f512ac8aab3a1fbcef9669220a" 716 | dependencies = [ 717 | "oxc_allocator", 718 | "oxc_ast", 719 | "oxc_diagnostics", 720 | "oxc_parser", 721 | "oxc_regular_expression", 722 | "oxc_span", 723 | "oxc_syntax", 724 | ] 725 | 726 | [[package]] 727 | name = "oxc-miette" 728 | version = "2.6.0" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "f02105a875f3751a0b44b4c822b01177728dd9049ae6fb419e9b04887d730ed1" 731 | dependencies = [ 732 | "cfg-if", 733 | "owo-colors", 734 | "oxc-miette-derive", 735 | "textwrap", 736 | "thiserror", 737 | "unicode-segmentation", 738 | "unicode-width", 739 | ] 740 | 741 | [[package]] 742 | name = "oxc-miette-derive" 743 | version = "2.6.0" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "003b4612827f6501183873fb0735da92157e3c7daa71c40921c7d2758fec2229" 746 | dependencies = [ 747 | "proc-macro2", 748 | "quote", 749 | "syn", 750 | ] 751 | 752 | [[package]] 753 | name = "oxc_allocator" 754 | version = "0.103.0" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "70809b2ee0d82d38e0a145ae4c46c8384f1342ebb7be8503c1cde4d7ff9c9b8b" 757 | dependencies = [ 758 | "allocator-api2", 759 | "bumpalo", 760 | "hashbrown 0.16.1", 761 | "oxc_data_structures", 762 | "rustc-hash", 763 | ] 764 | 765 | [[package]] 766 | name = "oxc_ast" 767 | version = "0.103.0" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "70e993b5f9f6ec07b5a52375564fcb60a13b9fc60b4260380c022e7eb09381d2" 770 | dependencies = [ 771 | "bitflags", 772 | "oxc_allocator", 773 | "oxc_ast_macros", 774 | "oxc_data_structures", 775 | "oxc_diagnostics", 776 | "oxc_estree", 777 | "oxc_regular_expression", 778 | "oxc_span", 779 | "oxc_syntax", 780 | ] 781 | 782 | [[package]] 783 | name = "oxc_ast_macros" 784 | version = "0.103.0" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "efae81973774d77eed1195a965d439c2f6812fa69393c68543bdb8fb7c0807de" 787 | dependencies = [ 788 | "phf 0.13.1", 789 | "proc-macro2", 790 | "quote", 791 | "syn", 792 | ] 793 | 794 | [[package]] 795 | name = "oxc_data_structures" 796 | version = "0.103.0" 797 | source = "registry+https://github.com/rust-lang/crates.io-index" 798 | checksum = "47e8d129933ab203ea42d061f4ea5cf24aea7981bbccb3393bd86840a0414e4f" 799 | 800 | [[package]] 801 | name = "oxc_diagnostics" 802 | version = "0.103.0" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "e8508cdba30d0df947d31577c394b6afacfb7fca376c347b74246c0b552bf1c1" 805 | dependencies = [ 806 | "cow-utils", 807 | "oxc-miette", 808 | "percent-encoding", 809 | ] 810 | 811 | [[package]] 812 | name = "oxc_ecmascript" 813 | version = "0.103.0" 814 | source = "registry+https://github.com/rust-lang/crates.io-index" 815 | checksum = "bb338ab6d3354919f0125a70f618d72f961777a724aa97eef963b9ccfbf90121" 816 | dependencies = [ 817 | "cow-utils", 818 | "num-bigint", 819 | "num-traits", 820 | "oxc_allocator", 821 | "oxc_ast", 822 | "oxc_span", 823 | "oxc_syntax", 824 | ] 825 | 826 | [[package]] 827 | name = "oxc_estree" 828 | version = "0.103.0" 829 | source = "registry+https://github.com/rust-lang/crates.io-index" 830 | checksum = "1745278e805cf12e56e789dd7202639ba8e662b18dab390719ea295eddcb7ea2" 831 | 832 | [[package]] 833 | name = "oxc_index" 834 | version = "4.1.0" 835 | source = "registry+https://github.com/rust-lang/crates.io-index" 836 | checksum = "eb3e6120999627ec9703025eab7c9f410ebb7e95557632a8902ca48210416c2b" 837 | dependencies = [ 838 | "nonmax", 839 | "serde", 840 | ] 841 | 842 | [[package]] 843 | name = "oxc_parser" 844 | version = "0.103.0" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "a43bfbde680f7e55fb879f56901a6f65d8450fc3f16b7c924e4f4b3f2629929a" 847 | dependencies = [ 848 | "bitflags", 849 | "cow-utils", 850 | "memchr", 851 | "num-bigint", 852 | "num-traits", 853 | "oxc_allocator", 854 | "oxc_ast", 855 | "oxc_data_structures", 856 | "oxc_diagnostics", 857 | "oxc_ecmascript", 858 | "oxc_regular_expression", 859 | "oxc_span", 860 | "oxc_syntax", 861 | "rustc-hash", 862 | "seq-macro", 863 | ] 864 | 865 | [[package]] 866 | name = "oxc_regular_expression" 867 | version = "0.103.0" 868 | source = "registry+https://github.com/rust-lang/crates.io-index" 869 | checksum = "9076c980a2795d009b7509677dfbf765945b4aeec44bf7f796a4084a6e02e2ce" 870 | dependencies = [ 871 | "bitflags", 872 | "oxc_allocator", 873 | "oxc_ast_macros", 874 | "oxc_diagnostics", 875 | "oxc_span", 876 | "phf 0.13.1", 877 | "rustc-hash", 878 | "unicode-id-start", 879 | ] 880 | 881 | [[package]] 882 | name = "oxc_span" 883 | version = "0.103.0" 884 | source = "registry+https://github.com/rust-lang/crates.io-index" 885 | checksum = "e79a2ab3c8f38813e24ac5d853e66c352254ed8ccd6fc773a9c666266644e6ea" 886 | dependencies = [ 887 | "compact_str", 888 | "oxc-miette", 889 | "oxc_allocator", 890 | "oxc_ast_macros", 891 | "oxc_estree", 892 | ] 893 | 894 | [[package]] 895 | name = "oxc_syntax" 896 | version = "0.103.0" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "659c494d5979c1aa6f1c4c2f8baf98ec7a97b4dff31d580393494302bffc9278" 899 | dependencies = [ 900 | "bitflags", 901 | "cow-utils", 902 | "dragonbox_ecma", 903 | "nonmax", 904 | "oxc_allocator", 905 | "oxc_ast_macros", 906 | "oxc_data_structures", 907 | "oxc_estree", 908 | "oxc_index", 909 | "oxc_span", 910 | "phf 0.13.1", 911 | "unicode-id-start", 912 | ] 913 | 914 | [[package]] 915 | name = "percent-encoding" 916 | version = "2.3.2" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 919 | 920 | [[package]] 921 | name = "phf" 922 | version = "0.11.3" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 925 | dependencies = [ 926 | "phf_macros 0.11.3", 927 | "phf_shared 0.11.3", 928 | ] 929 | 930 | [[package]] 931 | name = "phf" 932 | version = "0.13.1" 933 | source = "registry+https://github.com/rust-lang/crates.io-index" 934 | checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" 935 | dependencies = [ 936 | "phf_macros 0.13.1", 937 | "phf_shared 0.13.1", 938 | "serde", 939 | ] 940 | 941 | [[package]] 942 | name = "phf_generator" 943 | version = "0.11.3" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 946 | dependencies = [ 947 | "phf_shared 0.11.3", 948 | "rand", 949 | ] 950 | 951 | [[package]] 952 | name = "phf_generator" 953 | version = "0.13.1" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" 956 | dependencies = [ 957 | "fastrand", 958 | "phf_shared 0.13.1", 959 | ] 960 | 961 | [[package]] 962 | name = "phf_macros" 963 | version = "0.11.3" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 966 | dependencies = [ 967 | "phf_generator 0.11.3", 968 | "phf_shared 0.11.3", 969 | "proc-macro2", 970 | "quote", 971 | "syn", 972 | ] 973 | 974 | [[package]] 975 | name = "phf_macros" 976 | version = "0.13.1" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" 979 | dependencies = [ 980 | "phf_generator 0.13.1", 981 | "phf_shared 0.13.1", 982 | "proc-macro2", 983 | "quote", 984 | "syn", 985 | ] 986 | 987 | [[package]] 988 | name = "phf_shared" 989 | version = "0.11.3" 990 | source = "registry+https://github.com/rust-lang/crates.io-index" 991 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 992 | dependencies = [ 993 | "siphasher 1.0.1", 994 | ] 995 | 996 | [[package]] 997 | name = "phf_shared" 998 | version = "0.13.1" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" 1001 | dependencies = [ 1002 | "siphasher 1.0.1", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "pin-project-lite" 1007 | version = "0.2.16" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1010 | 1011 | [[package]] 1012 | name = "potential_utf" 1013 | version = "0.1.4" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 1016 | dependencies = [ 1017 | "zerovec", 1018 | ] 1019 | 1020 | [[package]] 1021 | name = "proc-macro2" 1022 | version = "1.0.103" 1023 | source = "registry+https://github.com/rust-lang/crates.io-index" 1024 | checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 1025 | dependencies = [ 1026 | "unicode-ident", 1027 | ] 1028 | 1029 | [[package]] 1030 | name = "psm" 1031 | version = "0.1.28" 1032 | source = "registry+https://github.com/rust-lang/crates.io-index" 1033 | checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" 1034 | dependencies = [ 1035 | "ar_archive_writer", 1036 | "cc", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "quote" 1041 | version = "1.0.42" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 1044 | dependencies = [ 1045 | "proc-macro2", 1046 | ] 1047 | 1048 | [[package]] 1049 | name = "r-efi" 1050 | version = "5.3.0" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1053 | 1054 | [[package]] 1055 | name = "rand" 1056 | version = "0.8.5" 1057 | source = "registry+https://github.com/rust-lang/crates.io-index" 1058 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1059 | dependencies = [ 1060 | "rand_core", 1061 | ] 1062 | 1063 | [[package]] 1064 | name = "rand_core" 1065 | version = "0.6.4" 1066 | source = "registry+https://github.com/rust-lang/crates.io-index" 1067 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1068 | 1069 | [[package]] 1070 | name = "rayon" 1071 | version = "1.11.0" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 1074 | dependencies = [ 1075 | "either", 1076 | "rayon-core", 1077 | ] 1078 | 1079 | [[package]] 1080 | name = "rayon-core" 1081 | version = "1.13.0" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 1084 | dependencies = [ 1085 | "crossbeam-deque", 1086 | "crossbeam-utils", 1087 | ] 1088 | 1089 | [[package]] 1090 | name = "rustc-hash" 1091 | version = "2.1.1" 1092 | source = "registry+https://github.com/rust-lang/crates.io-index" 1093 | checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1094 | 1095 | [[package]] 1096 | name = "rustversion" 1097 | version = "1.0.22" 1098 | source = "registry+https://github.com/rust-lang/crates.io-index" 1099 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1100 | 1101 | [[package]] 1102 | name = "ryu" 1103 | version = "1.0.20" 1104 | source = "registry+https://github.com/rust-lang/crates.io-index" 1105 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1106 | 1107 | [[package]] 1108 | name = "same-file" 1109 | version = "1.0.6" 1110 | source = "registry+https://github.com/rust-lang/crates.io-index" 1111 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1112 | dependencies = [ 1113 | "winapi-util", 1114 | ] 1115 | 1116 | [[package]] 1117 | name = "scoped-tls" 1118 | version = "1.0.1" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1121 | 1122 | [[package]] 1123 | name = "seq-macro" 1124 | version = "0.3.6" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" 1127 | 1128 | [[package]] 1129 | name = "serde" 1130 | version = "1.0.228" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1133 | dependencies = [ 1134 | "serde_core", 1135 | "serde_derive", 1136 | ] 1137 | 1138 | [[package]] 1139 | name = "serde_core" 1140 | version = "1.0.228" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1143 | dependencies = [ 1144 | "serde_derive", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "serde_derive" 1149 | version = "1.0.228" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 1152 | dependencies = [ 1153 | "proc-macro2", 1154 | "quote", 1155 | "syn", 1156 | ] 1157 | 1158 | [[package]] 1159 | name = "serde_json" 1160 | version = "1.0.145" 1161 | source = "registry+https://github.com/rust-lang/crates.io-index" 1162 | checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 1163 | dependencies = [ 1164 | "itoa", 1165 | "memchr", 1166 | "ryu", 1167 | "serde", 1168 | "serde_core", 1169 | ] 1170 | 1171 | [[package]] 1172 | name = "shlex" 1173 | version = "1.3.0" 1174 | source = "registry+https://github.com/rust-lang/crates.io-index" 1175 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1176 | 1177 | [[package]] 1178 | name = "siphasher" 1179 | version = "0.3.11" 1180 | source = "registry+https://github.com/rust-lang/crates.io-index" 1181 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 1182 | 1183 | [[package]] 1184 | name = "siphasher" 1185 | version = "1.0.1" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1188 | 1189 | [[package]] 1190 | name = "smallvec" 1191 | version = "1.15.1" 1192 | source = "registry+https://github.com/rust-lang/crates.io-index" 1193 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1194 | 1195 | [[package]] 1196 | name = "smartstring" 1197 | version = "1.0.1" 1198 | source = "registry+https://github.com/rust-lang/crates.io-index" 1199 | checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" 1200 | dependencies = [ 1201 | "autocfg", 1202 | "static_assertions", 1203 | "version_check", 1204 | ] 1205 | 1206 | [[package]] 1207 | name = "smawk" 1208 | version = "0.3.2" 1209 | source = "registry+https://github.com/rust-lang/crates.io-index" 1210 | checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 1211 | 1212 | [[package]] 1213 | name = "stable_deref_trait" 1214 | version = "1.2.1" 1215 | source = "registry+https://github.com/rust-lang/crates.io-index" 1216 | checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 1217 | 1218 | [[package]] 1219 | name = "stacker" 1220 | version = "0.1.22" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" 1223 | dependencies = [ 1224 | "cc", 1225 | "cfg-if", 1226 | "libc", 1227 | "psm", 1228 | "windows-sys 0.59.0", 1229 | ] 1230 | 1231 | [[package]] 1232 | name = "static_assertions" 1233 | version = "1.1.0" 1234 | source = "registry+https://github.com/rust-lang/crates.io-index" 1235 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1236 | 1237 | [[package]] 1238 | name = "statrs" 1239 | version = "0.18.0" 1240 | source = "registry+https://github.com/rust-lang/crates.io-index" 1241 | checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e" 1242 | dependencies = [ 1243 | "approx", 1244 | "num-traits", 1245 | ] 1246 | 1247 | [[package]] 1248 | name = "string_enum" 1249 | version = "1.0.2" 1250 | source = "registry+https://github.com/rust-lang/crates.io-index" 1251 | checksum = "ae36a4951ca7bd1cfd991c241584a9824a70f6aff1e7d4f693fb3f2465e4030e" 1252 | dependencies = [ 1253 | "quote", 1254 | "swc_macros_common", 1255 | "syn", 1256 | ] 1257 | 1258 | [[package]] 1259 | name = "swc_atoms" 1260 | version = "9.0.0" 1261 | source = "registry+https://github.com/rust-lang/crates.io-index" 1262 | checksum = "d4ccbe2ecad10ad7432100f878a107b1d972a8aee83ca53184d00c23a078bb8a" 1263 | dependencies = [ 1264 | "hstr", 1265 | "once_cell", 1266 | "serde", 1267 | ] 1268 | 1269 | [[package]] 1270 | name = "swc_common" 1271 | version = "18.0.1" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "a1c06698254e9b47daaf9bbb062af489a350bd8d10dfaab0cabbd32d46cec69d" 1274 | dependencies = [ 1275 | "anyhow", 1276 | "ast_node", 1277 | "better_scoped_tls", 1278 | "bytes-str", 1279 | "either", 1280 | "from_variant", 1281 | "num-bigint", 1282 | "once_cell", 1283 | "rustc-hash", 1284 | "serde", 1285 | "siphasher 0.3.11", 1286 | "swc_atoms", 1287 | "swc_eq_ignore_macros", 1288 | "swc_visit", 1289 | "tracing", 1290 | "unicode-width", 1291 | "url", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "swc_ecma_ast" 1296 | version = "19.0.0" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "724195600825cbdd2a899d5473d2ce1f24ae418bff1231f160ecf38a3bc81f46" 1299 | dependencies = [ 1300 | "bitflags", 1301 | "is-macro", 1302 | "num-bigint", 1303 | "once_cell", 1304 | "phf 0.11.3", 1305 | "rustc-hash", 1306 | "string_enum", 1307 | "swc_atoms", 1308 | "swc_common", 1309 | "swc_visit", 1310 | "unicode-id-start", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "swc_ecma_parser" 1315 | version = "29.0.2" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "e63984b544fe1d8f66e9ce616e57429bb878572fcf1504851ef9d9f4f5260e2b" 1318 | dependencies = [ 1319 | "bitflags", 1320 | "either", 1321 | "num-bigint", 1322 | "phf 0.11.3", 1323 | "rustc-hash", 1324 | "seq-macro", 1325 | "serde", 1326 | "smartstring", 1327 | "stacker", 1328 | "swc_atoms", 1329 | "swc_common", 1330 | "swc_ecma_ast", 1331 | "tracing", 1332 | ] 1333 | 1334 | [[package]] 1335 | name = "swc_eq_ignore_macros" 1336 | version = "1.0.1" 1337 | source = "registry+https://github.com/rust-lang/crates.io-index" 1338 | checksum = "c16ce73424a6316e95e09065ba6a207eba7765496fed113702278b7711d4b632" 1339 | dependencies = [ 1340 | "proc-macro2", 1341 | "quote", 1342 | "syn", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "swc_macros_common" 1347 | version = "1.0.1" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "aae1efbaa74943dc5ad2a2fb16cbd78b77d7e4d63188f3c5b4df2b4dcd2faaae" 1350 | dependencies = [ 1351 | "proc-macro2", 1352 | "quote", 1353 | "syn", 1354 | ] 1355 | 1356 | [[package]] 1357 | name = "swc_visit" 1358 | version = "2.0.1" 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" 1360 | checksum = "62fb71484b486c185e34d2172f0eabe7f4722742aad700f426a494bb2de232a2" 1361 | dependencies = [ 1362 | "either", 1363 | "new_debug_unreachable", 1364 | ] 1365 | 1366 | [[package]] 1367 | name = "syn" 1368 | version = "2.0.111" 1369 | source = "registry+https://github.com/rust-lang/crates.io-index" 1370 | checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" 1371 | dependencies = [ 1372 | "proc-macro2", 1373 | "quote", 1374 | "unicode-ident", 1375 | ] 1376 | 1377 | [[package]] 1378 | name = "synstructure" 1379 | version = "0.13.2" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1382 | dependencies = [ 1383 | "proc-macro2", 1384 | "quote", 1385 | "syn", 1386 | ] 1387 | 1388 | [[package]] 1389 | name = "textwrap" 1390 | version = "0.16.2" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 1393 | dependencies = [ 1394 | "smawk", 1395 | "unicode-linebreak", 1396 | "unicode-width", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "thiserror" 1401 | version = "2.0.17" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 1404 | dependencies = [ 1405 | "thiserror-impl", 1406 | ] 1407 | 1408 | [[package]] 1409 | name = "thiserror-impl" 1410 | version = "2.0.17" 1411 | source = "registry+https://github.com/rust-lang/crates.io-index" 1412 | checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 1413 | dependencies = [ 1414 | "proc-macro2", 1415 | "quote", 1416 | "syn", 1417 | ] 1418 | 1419 | [[package]] 1420 | name = "tinystr" 1421 | version = "0.8.2" 1422 | source = "registry+https://github.com/rust-lang/crates.io-index" 1423 | checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 1424 | dependencies = [ 1425 | "displaydoc", 1426 | "zerovec", 1427 | ] 1428 | 1429 | [[package]] 1430 | name = "tracing" 1431 | version = "0.1.43" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "2d15d90a0b5c19378952d479dc858407149d7bb45a14de0142f6c534b16fc647" 1434 | dependencies = [ 1435 | "pin-project-lite", 1436 | "tracing-attributes", 1437 | "tracing-core", 1438 | ] 1439 | 1440 | [[package]] 1441 | name = "tracing-attributes" 1442 | version = "0.1.31" 1443 | source = "registry+https://github.com/rust-lang/crates.io-index" 1444 | checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 1445 | dependencies = [ 1446 | "proc-macro2", 1447 | "quote", 1448 | "syn", 1449 | ] 1450 | 1451 | [[package]] 1452 | name = "tracing-core" 1453 | version = "0.1.35" 1454 | source = "registry+https://github.com/rust-lang/crates.io-index" 1455 | checksum = "7a04e24fab5c89c6a36eb8558c9656f30d81de51dfa4d3b45f26b21d61fa0a6c" 1456 | dependencies = [ 1457 | "once_cell", 1458 | ] 1459 | 1460 | [[package]] 1461 | name = "triomphe" 1462 | version = "0.1.15" 1463 | source = "registry+https://github.com/rust-lang/crates.io-index" 1464 | checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" 1465 | dependencies = [ 1466 | "serde", 1467 | "stable_deref_trait", 1468 | ] 1469 | 1470 | [[package]] 1471 | name = "unicode-id-start" 1472 | version = "1.4.0" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" 1475 | 1476 | [[package]] 1477 | name = "unicode-ident" 1478 | version = "1.0.22" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 1481 | 1482 | [[package]] 1483 | name = "unicode-linebreak" 1484 | version = "0.1.5" 1485 | source = "registry+https://github.com/rust-lang/crates.io-index" 1486 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 1487 | 1488 | [[package]] 1489 | name = "unicode-segmentation" 1490 | version = "1.12.0" 1491 | source = "registry+https://github.com/rust-lang/crates.io-index" 1492 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1493 | 1494 | [[package]] 1495 | name = "unicode-width" 1496 | version = "0.2.2" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 1499 | 1500 | [[package]] 1501 | name = "url" 1502 | version = "2.5.7" 1503 | source = "registry+https://github.com/rust-lang/crates.io-index" 1504 | checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 1505 | dependencies = [ 1506 | "form_urlencoded", 1507 | "idna", 1508 | "percent-encoding", 1509 | "serde", 1510 | ] 1511 | 1512 | [[package]] 1513 | name = "utf8_iter" 1514 | version = "1.0.4" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1517 | 1518 | [[package]] 1519 | name = "uuid" 1520 | version = "1.19.0" 1521 | source = "registry+https://github.com/rust-lang/crates.io-index" 1522 | checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" 1523 | dependencies = [ 1524 | "getrandom", 1525 | "js-sys", 1526 | "wasm-bindgen", 1527 | ] 1528 | 1529 | [[package]] 1530 | name = "version_check" 1531 | version = "0.9.5" 1532 | source = "registry+https://github.com/rust-lang/crates.io-index" 1533 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1534 | 1535 | [[package]] 1536 | name = "walkdir" 1537 | version = "2.5.0" 1538 | source = "registry+https://github.com/rust-lang/crates.io-index" 1539 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1540 | dependencies = [ 1541 | "same-file", 1542 | "winapi-util", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "wasip2" 1547 | version = "1.0.1+wasi-0.2.4" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 1550 | dependencies = [ 1551 | "wit-bindgen", 1552 | ] 1553 | 1554 | [[package]] 1555 | name = "wasm-bindgen" 1556 | version = "0.2.106" 1557 | source = "registry+https://github.com/rust-lang/crates.io-index" 1558 | checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" 1559 | dependencies = [ 1560 | "cfg-if", 1561 | "once_cell", 1562 | "rustversion", 1563 | "wasm-bindgen-macro", 1564 | "wasm-bindgen-shared", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "wasm-bindgen-macro" 1569 | version = "0.2.106" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" 1572 | dependencies = [ 1573 | "quote", 1574 | "wasm-bindgen-macro-support", 1575 | ] 1576 | 1577 | [[package]] 1578 | name = "wasm-bindgen-macro-support" 1579 | version = "0.2.106" 1580 | source = "registry+https://github.com/rust-lang/crates.io-index" 1581 | checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" 1582 | dependencies = [ 1583 | "bumpalo", 1584 | "proc-macro2", 1585 | "quote", 1586 | "syn", 1587 | "wasm-bindgen-shared", 1588 | ] 1589 | 1590 | [[package]] 1591 | name = "wasm-bindgen-shared" 1592 | version = "0.2.106" 1593 | source = "registry+https://github.com/rust-lang/crates.io-index" 1594 | checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" 1595 | dependencies = [ 1596 | "unicode-ident", 1597 | ] 1598 | 1599 | [[package]] 1600 | name = "winapi-util" 1601 | version = "0.1.11" 1602 | source = "registry+https://github.com/rust-lang/crates.io-index" 1603 | checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 1604 | dependencies = [ 1605 | "windows-sys 0.61.2", 1606 | ] 1607 | 1608 | [[package]] 1609 | name = "windows-link" 1610 | version = "0.2.1" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 1613 | 1614 | [[package]] 1615 | name = "windows-sys" 1616 | version = "0.59.0" 1617 | source = "registry+https://github.com/rust-lang/crates.io-index" 1618 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1619 | dependencies = [ 1620 | "windows-targets", 1621 | ] 1622 | 1623 | [[package]] 1624 | name = "windows-sys" 1625 | version = "0.61.2" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 1628 | dependencies = [ 1629 | "windows-link", 1630 | ] 1631 | 1632 | [[package]] 1633 | name = "windows-targets" 1634 | version = "0.52.6" 1635 | source = "registry+https://github.com/rust-lang/crates.io-index" 1636 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1637 | dependencies = [ 1638 | "windows_aarch64_gnullvm", 1639 | "windows_aarch64_msvc", 1640 | "windows_i686_gnu", 1641 | "windows_i686_gnullvm", 1642 | "windows_i686_msvc", 1643 | "windows_x86_64_gnu", 1644 | "windows_x86_64_gnullvm", 1645 | "windows_x86_64_msvc", 1646 | ] 1647 | 1648 | [[package]] 1649 | name = "windows_aarch64_gnullvm" 1650 | version = "0.52.6" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1653 | 1654 | [[package]] 1655 | name = "windows_aarch64_msvc" 1656 | version = "0.52.6" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1659 | 1660 | [[package]] 1661 | name = "windows_i686_gnu" 1662 | version = "0.52.6" 1663 | source = "registry+https://github.com/rust-lang/crates.io-index" 1664 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1665 | 1666 | [[package]] 1667 | name = "windows_i686_gnullvm" 1668 | version = "0.52.6" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1671 | 1672 | [[package]] 1673 | name = "windows_i686_msvc" 1674 | version = "0.52.6" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1677 | 1678 | [[package]] 1679 | name = "windows_x86_64_gnu" 1680 | version = "0.52.6" 1681 | source = "registry+https://github.com/rust-lang/crates.io-index" 1682 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1683 | 1684 | [[package]] 1685 | name = "windows_x86_64_gnullvm" 1686 | version = "0.52.6" 1687 | source = "registry+https://github.com/rust-lang/crates.io-index" 1688 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1689 | 1690 | [[package]] 1691 | name = "windows_x86_64_msvc" 1692 | version = "0.52.6" 1693 | source = "registry+https://github.com/rust-lang/crates.io-index" 1694 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1695 | 1696 | [[package]] 1697 | name = "wit-bindgen" 1698 | version = "0.46.0" 1699 | source = "registry+https://github.com/rust-lang/crates.io-index" 1700 | checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 1701 | 1702 | [[package]] 1703 | name = "writeable" 1704 | version = "0.6.2" 1705 | source = "registry+https://github.com/rust-lang/crates.io-index" 1706 | checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 1707 | 1708 | [[package]] 1709 | name = "yoke" 1710 | version = "0.8.1" 1711 | source = "registry+https://github.com/rust-lang/crates.io-index" 1712 | checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 1713 | dependencies = [ 1714 | "stable_deref_trait", 1715 | "yoke-derive", 1716 | "zerofrom", 1717 | ] 1718 | 1719 | [[package]] 1720 | name = "yoke-derive" 1721 | version = "0.8.1" 1722 | source = "registry+https://github.com/rust-lang/crates.io-index" 1723 | checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 1724 | dependencies = [ 1725 | "proc-macro2", 1726 | "quote", 1727 | "syn", 1728 | "synstructure", 1729 | ] 1730 | 1731 | [[package]] 1732 | name = "zerocopy" 1733 | version = "0.8.31" 1734 | source = "registry+https://github.com/rust-lang/crates.io-index" 1735 | checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" 1736 | dependencies = [ 1737 | "zerocopy-derive", 1738 | ] 1739 | 1740 | [[package]] 1741 | name = "zerocopy-derive" 1742 | version = "0.8.31" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" 1745 | dependencies = [ 1746 | "proc-macro2", 1747 | "quote", 1748 | "syn", 1749 | ] 1750 | 1751 | [[package]] 1752 | name = "zerofrom" 1753 | version = "0.1.6" 1754 | source = "registry+https://github.com/rust-lang/crates.io-index" 1755 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 1756 | dependencies = [ 1757 | "zerofrom-derive", 1758 | ] 1759 | 1760 | [[package]] 1761 | name = "zerofrom-derive" 1762 | version = "0.1.6" 1763 | source = "registry+https://github.com/rust-lang/crates.io-index" 1764 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 1765 | dependencies = [ 1766 | "proc-macro2", 1767 | "quote", 1768 | "syn", 1769 | "synstructure", 1770 | ] 1771 | 1772 | [[package]] 1773 | name = "zerotrie" 1774 | version = "0.2.3" 1775 | source = "registry+https://github.com/rust-lang/crates.io-index" 1776 | checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 1777 | dependencies = [ 1778 | "displaydoc", 1779 | "yoke", 1780 | "zerofrom", 1781 | ] 1782 | 1783 | [[package]] 1784 | name = "zerovec" 1785 | version = "0.11.5" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 1788 | dependencies = [ 1789 | "yoke", 1790 | "zerofrom", 1791 | "zerovec-derive", 1792 | ] 1793 | 1794 | [[package]] 1795 | name = "zerovec-derive" 1796 | version = "0.11.2" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 1799 | dependencies = [ 1800 | "proc-macro2", 1801 | "quote", 1802 | "syn", 1803 | ] 1804 | --------------------------------------------------------------------------------