├── rust-toolchain.toml ├── .gitignore ├── .github ├── renovate.json └── workflows │ ├── fuzz.yml │ └── ci.yml ├── Cargo.toml ├── package.json ├── fuzz ├── fuzz_targets │ ├── parser.rs │ └── regex.rs ├── Cargo.toml └── Cargo.lock ├── README.md ├── main.js ├── fuzz.js ├── src └── main.rs ├── pnpm-lock.yaml └── Cargo.lock /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "nightly" 3 | profile = "minimal" 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | target 3 | 4 | __tmp.js 5 | _minimizer-best.json 6 | 7 | fuzz/artifacts 8 | fuzz/corpus 9 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["github>Boshen/renovate"] 4 | } 5 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "fuzzer" 3 | version = "0.0.1" 4 | edition = "2024" 5 | publish = false 6 | 7 | [dependencies] 8 | oxc = { version = "0.104.0", features = ["full"]} 9 | 10 | libfuzzer-sys = "0.4.10" 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fuzz-oxc", 3 | "private": true, 4 | "scripts": { 5 | "start": "cargo build --release && node main.js ./target/release/fuzzer" 6 | }, 7 | "devDependencies": { 8 | "shift-ast": "^7.0.0", 9 | "shift-codegen": "^8.1.0", 10 | "shift-fuzzer": "^3.0.0", 11 | "shift-parser": "^8.0.0", 12 | "shift-shrink": "^2.0.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /fuzz/fuzz_targets/parser.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | 3 | use oxc::{allocator::Allocator, parser::Parser, span::SourceType}; 4 | 5 | libfuzzer_sys::fuzz_target!(|data: &[u8]| { 6 | if let Ok(s) = std::str::from_utf8(data) { 7 | if s.chars().all(|s| !s.is_control()) { 8 | let allocator = Allocator::default(); 9 | let source_type = SourceType::default().with_typescript(true).with_jsx(true); 10 | let _ = Parser::new(&allocator, &s, source_type).parse(); 11 | } 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /fuzz/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "oxc_fuzz" 3 | version = "0.0.0" 4 | publish = false 5 | edition = "2021" 6 | 7 | # Prevent this from interfering with workspaces 8 | [workspace] 9 | members = ["."] 10 | 11 | [package.metadata] 12 | cargo-fuzz = true 13 | 14 | [[bin]] 15 | name = "parser" 16 | path = "fuzz_targets/parser.rs" 17 | test = false 18 | doctest = false 19 | 20 | [[bin]] 21 | name = "regex" 22 | path = "fuzz_targets/regex.rs" 23 | test = false 24 | doctest = false 25 | 26 | [dependencies] 27 | oxc = "0.104.0" 28 | oxc_regular_expression = "0.104.0" 29 | libfuzzer-sys = "0.4.7" 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fuzz oxc parser 2 | 3 | ## Using `shift` 4 | 5 | ```bash 6 | pnpm install 7 | pnpm run start 8 | ``` 9 | 10 | ## Using `cargo fuzz` 11 | 12 | ```bash 13 | cargo install cargo-fuzz 14 | ``` 15 | ### Run 16 | 17 | Run fuzzer for the parser, for 15 minutes. 18 | 19 | ```bash 20 | cd fuzz 21 | rustup default nightly 22 | 23 | # JavaScript Parser 24 | cargo +nightly fuzz run --sanitizer none parser -- -only_ascii=1 -max_total_time=900 -timeout=5 25 | 26 | # Regular Expression Parser 27 | cargo +nightly fuzz run --sanitizer none regex -- -only_ascii=1 -max_total_time=900 -timeout=5 28 | ``` 29 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | let { fuzz } = require('./fuzz'); 4 | 5 | let fs = require('fs'); 6 | let { exec } = require('child_process'); 7 | let binary = process.argv[2] 8 | 9 | if (!binary) { 10 | console.log("Please provide a binary.") 11 | return 12 | } 13 | 14 | let file = '__tmp.js' 15 | let fn = src => { 16 | fs.writeFileSync(file, src, 'utf8'); 17 | return new Promise((res, rej) => { 18 | exec(binary + ' ' + file, {}, (err, _stdout, stderr) => { 19 | if (err == null) { 20 | res(); 21 | } else { 22 | rej(new Error(stderr)); 23 | } 24 | }); 25 | }); 26 | }; 27 | 28 | let known = [ 29 | ]; 30 | 31 | fuzz(fn, 200_000, known); 32 | -------------------------------------------------------------------------------- /fuzz/fuzz_targets/regex.rs: -------------------------------------------------------------------------------- 1 | #![no_main] 2 | 3 | use oxc::allocator::Allocator; 4 | use oxc_regular_expression::{ParserOptions, PatternParser}; 5 | 6 | libfuzzer_sys::fuzz_target!(|data: &[u8]| { 7 | if let Ok(s) = std::str::from_utf8(data) { 8 | if s.chars().all(|s| !s.is_control()) { 9 | let allocator = Allocator::default(); 10 | let _ = PatternParser::new( 11 | &allocator, 12 | &s, 13 | ParserOptions { 14 | span_offset: 0, 15 | unicode_mode: true, 16 | unicode_sets_mode: true, 17 | } 18 | ).parse(); 19 | } 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /.github/workflows/fuzz.yml: -------------------------------------------------------------------------------- 1 | name: Cargo Fuzz 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | concurrency: 7 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} 8 | cancel-in-progress: true 9 | 10 | permissions: {} 11 | 12 | jobs: 13 | fuzz: 14 | name: Cargo Fuzz 15 | runs-on: ubuntu-latest 16 | steps: 17 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 18 | 19 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 20 | with: 21 | tools: cargo-fuzz 22 | 23 | - name: Run Fuzzer 24 | run: cargo +nightly fuzz run --sanitizer none --release parser -- -only_ascii=1 -detect_leaks=0 -max_total_time=900 25 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 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 | ci: 19 | name: CI 20 | runs-on: ubuntu-latest 21 | steps: 22 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 23 | 24 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 25 | with: 26 | save-cache: ${{ github.ref_name == 'main' }} 27 | 28 | - run: cargo check 29 | -------------------------------------------------------------------------------- /fuzz.js: -------------------------------------------------------------------------------- 1 | let fs = require('fs'); 2 | 3 | let { fuzzModule } = require('shift-fuzzer'); 4 | let { parseModule } = require('shift-parser'); 5 | let codegen = require('shift-codegen').default; 6 | 7 | let { shrink } = require('shift-shrink'); 8 | 9 | async function fuzz(parse, N, known = []) { 10 | for (let i = 0; i < N; ++i) { 11 | let tree = fuzzModule(); 12 | let src = codegen(tree); 13 | 14 | try { 15 | parseModule(src); 16 | } catch (e) { 17 | // shift-fuzzer does not always generate valid code, alas 18 | // this can be removed once we fix those bugs 19 | --i; 20 | continue; 21 | } 22 | if (i % 100 == 0) { 23 | console.log(i); 24 | } 25 | 26 | try { 27 | await parse(src); 28 | } catch (e) { 29 | if (known.some(m => src.includes(m) || e.message.includes(m))) { 30 | continue; 31 | } 32 | console.log(e); 33 | console.log('reducing...', JSON.stringify(src)); 34 | let shrunk = await minimize(src, parse, known); 35 | console.log(shrunk); 36 | break; 37 | } 38 | } 39 | } 40 | 41 | async function minimize(src, parse, known = []) { 42 | let isStillGood = async tree => { 43 | let src; 44 | try { 45 | src = codegen(tree); 46 | } catch (e) { 47 | console.error('codegen failed', e); 48 | fs.writeFileSync('_codegen-failed-tree.json', JSON.stringify(tree), 'utf8'); 49 | throw e; 50 | } 51 | try { 52 | await parse(src); 53 | return false; 54 | } catch (e) { 55 | debugger; 56 | if (known.some(m => e.message.includes(m))) { 57 | return false; 58 | } 59 | return true; 60 | } 61 | }; 62 | let tree = await shrink(parseModule(src), isStillGood, { log: console.log, onImproved: tree => fs.writeFileSync('_minimizer-best.json', JSON.stringify(tree, null, 2), 'utf8') }); 63 | let res = codegen(tree); 64 | 65 | console.log(res); 66 | parse(res) 67 | } 68 | 69 | module.exports = { fuzz, minimize }; 70 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | env, mem, 3 | path::{Path, PathBuf}, 4 | }; 5 | 6 | use oxc::{ 7 | codegen::{CodegenOptions, CodegenReturn}, 8 | diagnostics::{Error, OxcDiagnostic}, 9 | minifier::CompressOptions, 10 | parser::ParseOptions, 11 | span::SourceType, 12 | transformer::TransformOptions, 13 | CompilerInterface, 14 | }; 15 | 16 | fn main() -> Result<(), String> { 17 | let name = env::args().nth(1).unwrap(); 18 | let path = Path::new(&name); 19 | 20 | let source_text = std::fs::read_to_string(path).unwrap_or_else(|_| panic!("{name} not found")); 21 | let source_type = SourceType::cjs(); 22 | 23 | let s1 = Driver::default() 24 | .run(path, &source_text, source_type) 25 | // .inspect_err(|err| panic!("{err:?}")) 26 | .unwrap_or_default(); 27 | 28 | Driver::default() 29 | .run(path, &s1, source_type) 30 | .map(|_| ()) 31 | .map_err(|err| panic!("{err:?}")) 32 | } 33 | 34 | #[allow(clippy::struct_excessive_bools)] 35 | #[derive(Default)] 36 | pub struct Driver { 37 | // options 38 | pub transform: Option, 39 | pub compress: Option, 40 | pub mangle: bool, 41 | pub remove_whitespace: bool, 42 | // states 43 | pub printed: String, 44 | pub path: PathBuf, 45 | pub errors: Vec, 46 | } 47 | 48 | impl CompilerInterface for Driver { 49 | fn handle_errors(&mut self, errors: Vec) { 50 | self.errors.extend(errors); 51 | } 52 | 53 | fn after_codegen(&mut self, ret: CodegenReturn) { 54 | self.printed = ret.code; 55 | } 56 | 57 | fn parse_options(&self) -> ParseOptions { 58 | ParseOptions { 59 | parse_regular_expression: true, 60 | allow_return_outside_function: true, 61 | ..ParseOptions::default() 62 | } 63 | } 64 | 65 | fn transform_options(&self) -> Option<&TransformOptions> { 66 | None 67 | } 68 | 69 | fn compress_options(&self) -> Option { 70 | None 71 | } 72 | 73 | fn codegen_options(&self) -> Option { 74 | Some(CodegenOptions { 75 | ..CodegenOptions::default() 76 | }) 77 | } 78 | } 79 | 80 | impl Driver { 81 | pub fn run( 82 | &mut self, 83 | source_path: &Path, 84 | source_text: &str, 85 | source_type: SourceType, 86 | ) -> Result> { 87 | self.path = source_path.to_path_buf(); 88 | self.compile(source_text, source_type, source_path); 89 | if self.errors.is_empty() { 90 | Ok(mem::take(&mut self.printed)) 91 | } else { 92 | let errors = mem::take(&mut self.errors) 93 | .into_iter() 94 | .map(|error| error.with_source_code(source_text.to_string())) 95 | .collect(); 96 | Err(errors) 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | shift-ast: 12 | specifier: ^7.0.0 13 | version: 7.0.0 14 | shift-codegen: 15 | specifier: ^8.1.0 16 | version: 8.1.0 17 | shift-fuzzer: 18 | specifier: ^3.0.0 19 | version: 3.0.0 20 | shift-parser: 21 | specifier: ^8.0.0 22 | version: 8.0.0 23 | shift-shrink: 24 | specifier: ^2.0.0 25 | version: 2.0.0 26 | 27 | packages: 28 | 29 | esutils@2.0.2: 30 | resolution: {integrity: sha512-UUPPULqkyAV+M3Shodis7l8D+IyX6V8SbaBnTb449jf3fMTd8+UOZI1Q70NbZVOQkcR91yYgdHsJiMMMVmYshg==} 31 | engines: {node: '>=0.10.0'} 32 | 33 | esutils@2.0.3: 34 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 35 | engines: {node: '>=0.10.0'} 36 | 37 | multimap@1.1.0: 38 | resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} 39 | 40 | object-assign@4.1.1: 41 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 42 | engines: {node: '>=0.10.0'} 43 | 44 | shift-ast@7.0.0: 45 | resolution: {integrity: sha512-O0INwsZa1XH/lMSf52udGnjNOxKBLxFiZHt0Ys3i6bqtwuGEA3eDR4+e0qJELIsCy8+BiTtlTgQzP76K1ehipQ==} 46 | 47 | shift-codegen@8.1.0: 48 | resolution: {integrity: sha512-hV48SiFM0pgTLCueh0iwqbvqElXPtZL69nb+3eXOU3iZZnLP+AlBQSLKKvHSPr/Onmk0lcUEkAM7RA6V6Wj1GQ==} 49 | 50 | shift-fuzzer@3.0.0: 51 | resolution: {integrity: sha512-oHGhMVP1Ldm4048QaEsGJixOCmrEUy5s3N2IVEEhIizfBN8acCPc1lZvS9lAdUeH3B30JDkyxrJUVs5XL0uKpA==} 52 | 53 | shift-parser@8.0.0: 54 | resolution: {integrity: sha512-IShW1wGhvA5e+SPNVQ+Dwi/Be6651F2jZc6wwYHbYW7PiswAYfvR/v3Q+CjjxsVCna5L6J5OtR6y+tkkCzvCfw==} 55 | 56 | shift-reducer@7.0.0: 57 | resolution: {integrity: sha512-9igIDMHzp1+CkQZITGHM1sAd9jqMPV0vhqHuh8jlYumHSMIwsYcrDeo1tlpzNRUnfbEq1nLyh8Bf1YU8HGUE7g==} 58 | 59 | shift-regexp-acceptor@3.0.0: 60 | resolution: {integrity: sha512-98UKizBjHY6SjjLUr51YYw4rtR+vxjGFm8znqNsoahesAI8Y9+WVAyiBCxxkov1KSDhW0Wz8FwwUqHnlFnjdUg==} 61 | 62 | shift-shrink@2.0.0: 63 | resolution: {integrity: sha512-LNaafUyzSyZaQxphrGdJlMbo8BUwsfwznCMURtNTt7PTBOrrnMbPIT4AP7wwZm6Dpe9fs/7GfWQ0kwXrlE5yEw==} 64 | 65 | shift-spec@2019.0.0: 66 | resolution: {integrity: sha512-vYfKl+afWPUj/wfr5T/+mdYvWx0nn8LY6hVdfZmFENdGEBpAfQyOTo4/5i+rs8mj+Jz4+0MnsP4vXagjEoHfEw==} 67 | 68 | shift-validator@6.0.0: 69 | resolution: {integrity: sha512-U4/O9yOCPSZaUIe7uAvzOwG+bQepLBNZyt7tISdweYXXUVhQLEg+maLxP8YamcuRUzFepyWw6S/C4lXFiv2U7Q==} 70 | 71 | unicode-canonical-property-names-ecmascript@1.0.4: 72 | resolution: {integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==} 73 | engines: {node: '>=4'} 74 | 75 | unicode-match-property-ecmascript@1.0.4: 76 | resolution: {integrity: sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==} 77 | engines: {node: '>=4'} 78 | 79 | unicode-match-property-value-ecmascript@1.0.2: 80 | resolution: {integrity: sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==} 81 | engines: {node: '>=4'} 82 | 83 | unicode-property-aliases-ecmascript@1.0.4: 84 | resolution: {integrity: sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==} 85 | engines: {node: '>=4'} 86 | 87 | snapshots: 88 | 89 | esutils@2.0.2: {} 90 | 91 | esutils@2.0.3: {} 92 | 93 | multimap@1.1.0: {} 94 | 95 | object-assign@4.1.1: {} 96 | 97 | shift-ast@7.0.0: {} 98 | 99 | shift-codegen@8.1.0: 100 | dependencies: 101 | esutils: 2.0.3 102 | object-assign: 4.1.1 103 | shift-reducer: 7.0.0 104 | 105 | shift-fuzzer@3.0.0: 106 | dependencies: 107 | shift-ast: 7.0.0 108 | 109 | shift-parser@8.0.0: 110 | dependencies: 111 | multimap: 1.1.0 112 | shift-ast: 7.0.0 113 | shift-reducer: 7.0.0 114 | shift-regexp-acceptor: 3.0.0 115 | 116 | shift-reducer@7.0.0: 117 | dependencies: 118 | shift-ast: 7.0.0 119 | 120 | shift-regexp-acceptor@3.0.0: 121 | dependencies: 122 | unicode-match-property-ecmascript: 1.0.4 123 | unicode-match-property-value-ecmascript: 1.0.2 124 | unicode-property-aliases-ecmascript: 1.0.4 125 | 126 | shift-shrink@2.0.0: 127 | dependencies: 128 | shift-ast: 7.0.0 129 | shift-parser: 8.0.0 130 | shift-reducer: 7.0.0 131 | shift-spec: 2019.0.0 132 | shift-validator: 6.0.0 133 | 134 | shift-spec@2019.0.0: {} 135 | 136 | shift-validator@6.0.0: 137 | dependencies: 138 | esutils: 2.0.2 139 | shift-parser: 8.0.0 140 | shift-reducer: 7.0.0 141 | shift-regexp-acceptor: 3.0.0 142 | 143 | unicode-canonical-property-names-ecmascript@1.0.4: {} 144 | 145 | unicode-match-property-ecmascript@1.0.4: 146 | dependencies: 147 | unicode-canonical-property-names-ecmascript: 1.0.4 148 | unicode-property-aliases-ecmascript: 1.0.4 149 | 150 | unicode-match-property-value-ecmascript@1.0.2: {} 151 | 152 | unicode-property-aliases-ecmascript@1.0.4: {} 153 | -------------------------------------------------------------------------------- /fuzz/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 = "allocator-api2" 7 | version = "0.2.21" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 10 | 11 | [[package]] 12 | name = "arbitrary" 13 | version = "1.4.2" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" 16 | 17 | [[package]] 18 | name = "autocfg" 19 | version = "1.5.0" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 22 | 23 | [[package]] 24 | name = "bitflags" 25 | version = "2.10.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 28 | 29 | [[package]] 30 | name = "bumpalo" 31 | version = "3.19.0" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 34 | dependencies = [ 35 | "allocator-api2", 36 | ] 37 | 38 | [[package]] 39 | name = "castaway" 40 | version = "0.2.4" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" 43 | dependencies = [ 44 | "rustversion", 45 | ] 46 | 47 | [[package]] 48 | name = "cc" 49 | version = "1.2.45" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" 52 | dependencies = [ 53 | "find-msvc-tools", 54 | "jobserver", 55 | "libc", 56 | "shlex", 57 | ] 58 | 59 | [[package]] 60 | name = "cfg-if" 61 | version = "1.0.4" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 64 | 65 | [[package]] 66 | name = "compact_str" 67 | version = "0.9.0" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" 70 | dependencies = [ 71 | "castaway", 72 | "cfg-if", 73 | "itoa", 74 | "rustversion", 75 | "ryu", 76 | "static_assertions", 77 | ] 78 | 79 | [[package]] 80 | name = "cow-utils" 81 | version = "0.1.3" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" 84 | 85 | [[package]] 86 | name = "dragonbox_ecma" 87 | version = "0.0.5" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "d742b56656e8b14d63e7ea9806597b1849ae25412584c8adf78c0f67bd985e66" 90 | 91 | [[package]] 92 | name = "fastrand" 93 | version = "2.3.0" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 96 | 97 | [[package]] 98 | name = "find-msvc-tools" 99 | version = "0.1.4" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 102 | 103 | [[package]] 104 | name = "getrandom" 105 | version = "0.3.4" 106 | source = "registry+https://github.com/rust-lang/crates.io-index" 107 | checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 108 | dependencies = [ 109 | "cfg-if", 110 | "libc", 111 | "r-efi", 112 | "wasip2", 113 | ] 114 | 115 | [[package]] 116 | name = "hashbrown" 117 | version = "0.16.1" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 120 | dependencies = [ 121 | "allocator-api2", 122 | ] 123 | 124 | [[package]] 125 | name = "itoa" 126 | version = "1.0.15" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 129 | 130 | [[package]] 131 | name = "jobserver" 132 | version = "0.1.34" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 135 | dependencies = [ 136 | "getrandom", 137 | "libc", 138 | ] 139 | 140 | [[package]] 141 | name = "libc" 142 | version = "0.2.177" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 145 | 146 | [[package]] 147 | name = "libfuzzer-sys" 148 | version = "0.4.10" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" 151 | dependencies = [ 152 | "arbitrary", 153 | "cc", 154 | ] 155 | 156 | [[package]] 157 | name = "memchr" 158 | version = "2.7.6" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 161 | 162 | [[package]] 163 | name = "nonmax" 164 | version = "0.5.5" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 167 | 168 | [[package]] 169 | name = "num-bigint" 170 | version = "0.4.6" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 173 | dependencies = [ 174 | "num-integer", 175 | "num-traits", 176 | ] 177 | 178 | [[package]] 179 | name = "num-integer" 180 | version = "0.1.46" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 183 | dependencies = [ 184 | "num-traits", 185 | ] 186 | 187 | [[package]] 188 | name = "num-traits" 189 | version = "0.2.19" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 192 | dependencies = [ 193 | "autocfg", 194 | ] 195 | 196 | [[package]] 197 | name = "owo-colors" 198 | version = "4.2.3" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 201 | 202 | [[package]] 203 | name = "oxc" 204 | version = "0.104.0" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "b55dd9fc6ecd446d6602fb87233585d0bdd96fca807f48bc407fdcd11dd6da1e" 207 | dependencies = [ 208 | "oxc_allocator", 209 | "oxc_ast", 210 | "oxc_diagnostics", 211 | "oxc_parser", 212 | "oxc_regular_expression", 213 | "oxc_span", 214 | "oxc_syntax", 215 | ] 216 | 217 | [[package]] 218 | name = "oxc-miette" 219 | version = "2.6.0" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | checksum = "f02105a875f3751a0b44b4c822b01177728dd9049ae6fb419e9b04887d730ed1" 222 | dependencies = [ 223 | "cfg-if", 224 | "owo-colors", 225 | "oxc-miette-derive", 226 | "textwrap", 227 | "thiserror", 228 | "unicode-segmentation", 229 | "unicode-width", 230 | ] 231 | 232 | [[package]] 233 | name = "oxc-miette-derive" 234 | version = "2.6.0" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "003b4612827f6501183873fb0735da92157e3c7daa71c40921c7d2758fec2229" 237 | dependencies = [ 238 | "proc-macro2", 239 | "quote", 240 | "syn", 241 | ] 242 | 243 | [[package]] 244 | name = "oxc_allocator" 245 | version = "0.104.0" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "fc1a7efc578c5414f7698dd85b74e033cf5756946e66a31c22be117b5ef6bd9c" 248 | dependencies = [ 249 | "allocator-api2", 250 | "bumpalo", 251 | "hashbrown", 252 | "oxc_data_structures", 253 | "rustc-hash", 254 | ] 255 | 256 | [[package]] 257 | name = "oxc_ast" 258 | version = "0.104.0" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "ec60a3df156ca9078934809f734e48d765609b3e00ccebc3ade28f12e1bf2566" 261 | dependencies = [ 262 | "bitflags", 263 | "oxc_allocator", 264 | "oxc_ast_macros", 265 | "oxc_data_structures", 266 | "oxc_diagnostics", 267 | "oxc_estree", 268 | "oxc_regular_expression", 269 | "oxc_span", 270 | "oxc_syntax", 271 | ] 272 | 273 | [[package]] 274 | name = "oxc_ast_macros" 275 | version = "0.104.0" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "358d3d37e05dc0b81de134a4b7bd92d3676a5f6c3a907bc8f52280fc675d9b6a" 278 | dependencies = [ 279 | "phf", 280 | "proc-macro2", 281 | "quote", 282 | "syn", 283 | ] 284 | 285 | [[package]] 286 | name = "oxc_data_structures" 287 | version = "0.104.0" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "96365faf00cfe8c05d9c92ac250e7085f778422084cb6fa3addab4655c511045" 290 | 291 | [[package]] 292 | name = "oxc_diagnostics" 293 | version = "0.104.0" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "7533b49283449389315761ce33c97c1b8069140b4fe3a73d19effc19ae40cc07" 296 | dependencies = [ 297 | "cow-utils", 298 | "oxc-miette", 299 | "percent-encoding", 300 | ] 301 | 302 | [[package]] 303 | name = "oxc_ecmascript" 304 | version = "0.104.0" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "fa9f502daca154448e6af5f7b331c1b896d877cc65a9e5ec83e7df4f8ab22f50" 307 | dependencies = [ 308 | "cow-utils", 309 | "num-bigint", 310 | "num-traits", 311 | "oxc_allocator", 312 | "oxc_ast", 313 | "oxc_span", 314 | "oxc_syntax", 315 | ] 316 | 317 | [[package]] 318 | name = "oxc_estree" 319 | version = "0.104.0" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "58878722f08acf3807d240bb0500af02f78e11940de9a7a37d24ef80f3b97582" 322 | 323 | [[package]] 324 | name = "oxc_fuzz" 325 | version = "0.0.0" 326 | dependencies = [ 327 | "libfuzzer-sys", 328 | "oxc", 329 | "oxc_regular_expression", 330 | ] 331 | 332 | [[package]] 333 | name = "oxc_index" 334 | version = "4.1.0" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "eb3e6120999627ec9703025eab7c9f410ebb7e95557632a8902ca48210416c2b" 337 | dependencies = [ 338 | "nonmax", 339 | "serde", 340 | ] 341 | 342 | [[package]] 343 | name = "oxc_parser" 344 | version = "0.104.0" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "b5d707b04b23e2373716a4c63353c8bb1336d758aa87bda1cdf14b5c89c372cd" 347 | dependencies = [ 348 | "bitflags", 349 | "cow-utils", 350 | "memchr", 351 | "num-bigint", 352 | "num-traits", 353 | "oxc_allocator", 354 | "oxc_ast", 355 | "oxc_data_structures", 356 | "oxc_diagnostics", 357 | "oxc_ecmascript", 358 | "oxc_regular_expression", 359 | "oxc_span", 360 | "oxc_syntax", 361 | "rustc-hash", 362 | "seq-macro", 363 | ] 364 | 365 | [[package]] 366 | name = "oxc_regular_expression" 367 | version = "0.104.0" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "7c2a1c63f49ecead7d228493bec71246bfaa13cd6a50e153df5d46e5d92155e6" 370 | dependencies = [ 371 | "bitflags", 372 | "oxc_allocator", 373 | "oxc_ast_macros", 374 | "oxc_diagnostics", 375 | "oxc_span", 376 | "phf", 377 | "rustc-hash", 378 | "unicode-id-start", 379 | ] 380 | 381 | [[package]] 382 | name = "oxc_span" 383 | version = "0.104.0" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "8bba9de8f6bfd9425996b3f68d30daa526b6c9aded42f59edb42e9542a11144f" 386 | dependencies = [ 387 | "compact_str", 388 | "oxc-miette", 389 | "oxc_allocator", 390 | "oxc_ast_macros", 391 | "oxc_estree", 392 | ] 393 | 394 | [[package]] 395 | name = "oxc_syntax" 396 | version = "0.104.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "322c91b4aeb10e5f62880d4bb439a3fbe96fc5831469c6317dd6833d2f9c3b44" 399 | dependencies = [ 400 | "bitflags", 401 | "cow-utils", 402 | "dragonbox_ecma", 403 | "nonmax", 404 | "oxc_allocator", 405 | "oxc_ast_macros", 406 | "oxc_data_structures", 407 | "oxc_estree", 408 | "oxc_index", 409 | "oxc_span", 410 | "phf", 411 | "unicode-id-start", 412 | ] 413 | 414 | [[package]] 415 | name = "percent-encoding" 416 | version = "2.3.2" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 419 | 420 | [[package]] 421 | name = "phf" 422 | version = "0.13.1" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" 425 | dependencies = [ 426 | "phf_macros", 427 | "phf_shared", 428 | "serde", 429 | ] 430 | 431 | [[package]] 432 | name = "phf_generator" 433 | version = "0.13.1" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" 436 | dependencies = [ 437 | "fastrand", 438 | "phf_shared", 439 | ] 440 | 441 | [[package]] 442 | name = "phf_macros" 443 | version = "0.13.1" 444 | source = "registry+https://github.com/rust-lang/crates.io-index" 445 | checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" 446 | dependencies = [ 447 | "phf_generator", 448 | "phf_shared", 449 | "proc-macro2", 450 | "quote", 451 | "syn", 452 | ] 453 | 454 | [[package]] 455 | name = "phf_shared" 456 | version = "0.13.1" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" 459 | dependencies = [ 460 | "siphasher", 461 | ] 462 | 463 | [[package]] 464 | name = "proc-macro2" 465 | version = "1.0.103" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 468 | dependencies = [ 469 | "unicode-ident", 470 | ] 471 | 472 | [[package]] 473 | name = "quote" 474 | version = "1.0.42" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 477 | dependencies = [ 478 | "proc-macro2", 479 | ] 480 | 481 | [[package]] 482 | name = "r-efi" 483 | version = "5.3.0" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 486 | 487 | [[package]] 488 | name = "rustc-hash" 489 | version = "2.1.1" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 492 | 493 | [[package]] 494 | name = "rustversion" 495 | version = "1.0.22" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 498 | 499 | [[package]] 500 | name = "ryu" 501 | version = "1.0.20" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 504 | 505 | [[package]] 506 | name = "seq-macro" 507 | version = "0.3.6" 508 | source = "registry+https://github.com/rust-lang/crates.io-index" 509 | checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" 510 | 511 | [[package]] 512 | name = "serde" 513 | version = "1.0.228" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 516 | dependencies = [ 517 | "serde_core", 518 | ] 519 | 520 | [[package]] 521 | name = "serde_core" 522 | version = "1.0.228" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 525 | dependencies = [ 526 | "serde_derive", 527 | ] 528 | 529 | [[package]] 530 | name = "serde_derive" 531 | version = "1.0.228" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 534 | dependencies = [ 535 | "proc-macro2", 536 | "quote", 537 | "syn", 538 | ] 539 | 540 | [[package]] 541 | name = "shlex" 542 | version = "1.3.0" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 545 | 546 | [[package]] 547 | name = "siphasher" 548 | version = "1.0.1" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 551 | 552 | [[package]] 553 | name = "smawk" 554 | version = "0.3.2" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 557 | 558 | [[package]] 559 | name = "static_assertions" 560 | version = "1.1.0" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 563 | 564 | [[package]] 565 | name = "syn" 566 | version = "2.0.109" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" 569 | dependencies = [ 570 | "proc-macro2", 571 | "quote", 572 | "unicode-ident", 573 | ] 574 | 575 | [[package]] 576 | name = "textwrap" 577 | version = "0.16.2" 578 | source = "registry+https://github.com/rust-lang/crates.io-index" 579 | checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 580 | dependencies = [ 581 | "smawk", 582 | "unicode-linebreak", 583 | "unicode-width", 584 | ] 585 | 586 | [[package]] 587 | name = "thiserror" 588 | version = "2.0.17" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 591 | dependencies = [ 592 | "thiserror-impl", 593 | ] 594 | 595 | [[package]] 596 | name = "thiserror-impl" 597 | version = "2.0.17" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 600 | dependencies = [ 601 | "proc-macro2", 602 | "quote", 603 | "syn", 604 | ] 605 | 606 | [[package]] 607 | name = "unicode-id-start" 608 | version = "1.4.0" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" 611 | 612 | [[package]] 613 | name = "unicode-ident" 614 | version = "1.0.22" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 617 | 618 | [[package]] 619 | name = "unicode-linebreak" 620 | version = "0.1.5" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 623 | 624 | [[package]] 625 | name = "unicode-segmentation" 626 | version = "1.12.0" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 629 | 630 | [[package]] 631 | name = "unicode-width" 632 | version = "0.2.2" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 635 | 636 | [[package]] 637 | name = "wasip2" 638 | version = "1.0.1+wasi-0.2.4" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 641 | dependencies = [ 642 | "wit-bindgen", 643 | ] 644 | 645 | [[package]] 646 | name = "wit-bindgen" 647 | version = "0.46.0" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 650 | -------------------------------------------------------------------------------- /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 = "adler2" 7 | version = "2.0.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 10 | 11 | [[package]] 12 | name = "allocator-api2" 13 | version = "0.2.21" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 16 | 17 | [[package]] 18 | name = "arbitrary" 19 | version = "1.4.2" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" 22 | 23 | [[package]] 24 | name = "autocfg" 25 | version = "1.5.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 28 | 29 | [[package]] 30 | name = "base64" 31 | version = "0.22.1" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 34 | 35 | [[package]] 36 | name = "base64-simd" 37 | version = "0.8.0" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" 40 | dependencies = [ 41 | "outref", 42 | "vsimd", 43 | ] 44 | 45 | [[package]] 46 | name = "bincode" 47 | version = "2.0.1" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" 50 | dependencies = [ 51 | "bincode_derive", 52 | "serde", 53 | "unty", 54 | ] 55 | 56 | [[package]] 57 | name = "bincode_derive" 58 | version = "2.0.1" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" 61 | dependencies = [ 62 | "virtue", 63 | ] 64 | 65 | [[package]] 66 | name = "bitflags" 67 | version = "2.10.0" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 70 | 71 | [[package]] 72 | name = "block-buffer" 73 | version = "0.10.4" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 76 | dependencies = [ 77 | "generic-array", 78 | ] 79 | 80 | [[package]] 81 | name = "bumpalo" 82 | version = "3.19.0" 83 | source = "registry+https://github.com/rust-lang/crates.io-index" 84 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 85 | dependencies = [ 86 | "allocator-api2", 87 | ] 88 | 89 | [[package]] 90 | name = "castaway" 91 | version = "0.2.4" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" 94 | dependencies = [ 95 | "rustversion", 96 | ] 97 | 98 | [[package]] 99 | name = "cc" 100 | version = "1.2.45" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" 103 | dependencies = [ 104 | "find-msvc-tools", 105 | "jobserver", 106 | "libc", 107 | "shlex", 108 | ] 109 | 110 | [[package]] 111 | name = "cfg-if" 112 | version = "1.0.4" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 115 | 116 | [[package]] 117 | name = "compact_str" 118 | version = "0.9.0" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" 121 | dependencies = [ 122 | "castaway", 123 | "cfg-if", 124 | "itoa", 125 | "rustversion", 126 | "ryu", 127 | "static_assertions", 128 | ] 129 | 130 | [[package]] 131 | name = "cow-utils" 132 | version = "0.1.3" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" 135 | 136 | [[package]] 137 | name = "cpufeatures" 138 | version = "0.2.17" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 141 | dependencies = [ 142 | "libc", 143 | ] 144 | 145 | [[package]] 146 | name = "crc32fast" 147 | version = "1.5.0" 148 | source = "registry+https://github.com/rust-lang/crates.io-index" 149 | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 150 | dependencies = [ 151 | "cfg-if", 152 | ] 153 | 154 | [[package]] 155 | name = "crypto-common" 156 | version = "0.1.6" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 159 | dependencies = [ 160 | "generic-array", 161 | "typenum", 162 | ] 163 | 164 | [[package]] 165 | name = "deranged" 166 | version = "0.5.5" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" 169 | dependencies = [ 170 | "powerfmt", 171 | ] 172 | 173 | [[package]] 174 | name = "digest" 175 | version = "0.10.7" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 178 | dependencies = [ 179 | "block-buffer", 180 | "crypto-common", 181 | ] 182 | 183 | [[package]] 184 | name = "dragonbox_ecma" 185 | version = "0.0.5" 186 | source = "registry+https://github.com/rust-lang/crates.io-index" 187 | checksum = "d742b56656e8b14d63e7ea9806597b1849ae25412584c8adf78c0f67bd985e66" 188 | 189 | [[package]] 190 | name = "either" 191 | version = "1.15.0" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 194 | 195 | [[package]] 196 | name = "equivalent" 197 | version = "1.0.2" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 200 | 201 | [[package]] 202 | name = "fastrand" 203 | version = "2.3.0" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 206 | 207 | [[package]] 208 | name = "find-msvc-tools" 209 | version = "0.1.4" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 212 | 213 | [[package]] 214 | name = "flate2" 215 | version = "1.1.5" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" 218 | dependencies = [ 219 | "crc32fast", 220 | "miniz_oxide", 221 | ] 222 | 223 | [[package]] 224 | name = "fuzzer" 225 | version = "0.0.1" 226 | dependencies = [ 227 | "libfuzzer-sys", 228 | "oxc", 229 | ] 230 | 231 | [[package]] 232 | name = "generic-array" 233 | version = "0.14.9" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 236 | dependencies = [ 237 | "typenum", 238 | "version_check", 239 | ] 240 | 241 | [[package]] 242 | name = "getrandom" 243 | version = "0.3.4" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 246 | dependencies = [ 247 | "cfg-if", 248 | "libc", 249 | "r-efi", 250 | "wasip2", 251 | ] 252 | 253 | [[package]] 254 | name = "hashbrown" 255 | version = "0.16.1" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 258 | dependencies = [ 259 | "allocator-api2", 260 | ] 261 | 262 | [[package]] 263 | name = "indexmap" 264 | version = "2.12.0" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 267 | dependencies = [ 268 | "equivalent", 269 | "hashbrown", 270 | ] 271 | 272 | [[package]] 273 | name = "itertools" 274 | version = "0.14.0" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 277 | dependencies = [ 278 | "either", 279 | ] 280 | 281 | [[package]] 282 | name = "itoa" 283 | version = "1.0.15" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 286 | 287 | [[package]] 288 | name = "jobserver" 289 | version = "0.1.34" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 292 | dependencies = [ 293 | "getrandom", 294 | "libc", 295 | ] 296 | 297 | [[package]] 298 | name = "json-escape-simd" 299 | version = "3.0.1" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "a3c2a6c0b4b5637c41719973ef40c6a1cf564f9db6958350de6193fbee9c23f5" 302 | 303 | [[package]] 304 | name = "libc" 305 | version = "0.2.177" 306 | source = "registry+https://github.com/rust-lang/crates.io-index" 307 | checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 308 | 309 | [[package]] 310 | name = "libfuzzer-sys" 311 | version = "0.4.10" 312 | source = "registry+https://github.com/rust-lang/crates.io-index" 313 | checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" 314 | dependencies = [ 315 | "arbitrary", 316 | "cc", 317 | ] 318 | 319 | [[package]] 320 | name = "memchr" 321 | version = "2.7.6" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 324 | 325 | [[package]] 326 | name = "miniz_oxide" 327 | version = "0.8.9" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 330 | dependencies = [ 331 | "adler2", 332 | "simd-adler32", 333 | ] 334 | 335 | [[package]] 336 | name = "nom" 337 | version = "8.0.0" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" 340 | dependencies = [ 341 | "memchr", 342 | ] 343 | 344 | [[package]] 345 | name = "nonmax" 346 | version = "0.5.5" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 349 | 350 | [[package]] 351 | name = "num-bigint" 352 | version = "0.4.6" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 355 | dependencies = [ 356 | "num-integer", 357 | "num-traits", 358 | ] 359 | 360 | [[package]] 361 | name = "num-conv" 362 | version = "0.1.0" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 365 | 366 | [[package]] 367 | name = "num-integer" 368 | version = "0.1.46" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 371 | dependencies = [ 372 | "num-traits", 373 | ] 374 | 375 | [[package]] 376 | name = "num-traits" 377 | version = "0.2.19" 378 | source = "registry+https://github.com/rust-lang/crates.io-index" 379 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 380 | dependencies = [ 381 | "autocfg", 382 | ] 383 | 384 | [[package]] 385 | name = "outref" 386 | version = "0.5.2" 387 | source = "registry+https://github.com/rust-lang/crates.io-index" 388 | checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" 389 | 390 | [[package]] 391 | name = "owo-colors" 392 | version = "4.2.3" 393 | source = "registry+https://github.com/rust-lang/crates.io-index" 394 | checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 395 | 396 | [[package]] 397 | name = "oxc" 398 | version = "0.104.0" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | checksum = "b55dd9fc6ecd446d6602fb87233585d0bdd96fca807f48bc407fdcd11dd6da1e" 401 | dependencies = [ 402 | "oxc_allocator", 403 | "oxc_ast", 404 | "oxc_ast_visit", 405 | "oxc_codegen", 406 | "oxc_diagnostics", 407 | "oxc_isolated_declarations", 408 | "oxc_mangler", 409 | "oxc_minifier", 410 | "oxc_parser", 411 | "oxc_regular_expression", 412 | "oxc_semantic", 413 | "oxc_span", 414 | "oxc_syntax", 415 | "oxc_transformer", 416 | "oxc_transformer_plugins", 417 | ] 418 | 419 | [[package]] 420 | name = "oxc-browserslist" 421 | version = "2.1.4" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "9bd39c45e1d6bd2abfbd4b89cbcaba34bd315cd3cee23aad623fd075acc1ea01" 424 | dependencies = [ 425 | "bincode", 426 | "flate2", 427 | "nom", 428 | "rustc-hash", 429 | "serde", 430 | "serde_json", 431 | "thiserror", 432 | "time", 433 | ] 434 | 435 | [[package]] 436 | name = "oxc-miette" 437 | version = "2.6.0" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "f02105a875f3751a0b44b4c822b01177728dd9049ae6fb419e9b04887d730ed1" 440 | dependencies = [ 441 | "cfg-if", 442 | "owo-colors", 443 | "oxc-miette-derive", 444 | "textwrap", 445 | "thiserror", 446 | "unicode-segmentation", 447 | "unicode-width", 448 | ] 449 | 450 | [[package]] 451 | name = "oxc-miette-derive" 452 | version = "2.6.0" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "003b4612827f6501183873fb0735da92157e3c7daa71c40921c7d2758fec2229" 455 | dependencies = [ 456 | "proc-macro2", 457 | "quote", 458 | "syn", 459 | ] 460 | 461 | [[package]] 462 | name = "oxc_allocator" 463 | version = "0.104.0" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | checksum = "fc1a7efc578c5414f7698dd85b74e033cf5756946e66a31c22be117b5ef6bd9c" 466 | dependencies = [ 467 | "allocator-api2", 468 | "bumpalo", 469 | "hashbrown", 470 | "oxc_data_structures", 471 | "rustc-hash", 472 | ] 473 | 474 | [[package]] 475 | name = "oxc_ast" 476 | version = "0.104.0" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "ec60a3df156ca9078934809f734e48d765609b3e00ccebc3ade28f12e1bf2566" 479 | dependencies = [ 480 | "bitflags", 481 | "oxc_allocator", 482 | "oxc_ast_macros", 483 | "oxc_data_structures", 484 | "oxc_diagnostics", 485 | "oxc_estree", 486 | "oxc_regular_expression", 487 | "oxc_span", 488 | "oxc_syntax", 489 | ] 490 | 491 | [[package]] 492 | name = "oxc_ast_macros" 493 | version = "0.104.0" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "358d3d37e05dc0b81de134a4b7bd92d3676a5f6c3a907bc8f52280fc675d9b6a" 496 | dependencies = [ 497 | "phf", 498 | "proc-macro2", 499 | "quote", 500 | "syn", 501 | ] 502 | 503 | [[package]] 504 | name = "oxc_ast_visit" 505 | version = "0.104.0" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "cc6360bfc6bac027583285662f0e3abaccaf86ffae0fb908282753aaac7b942b" 508 | dependencies = [ 509 | "oxc_allocator", 510 | "oxc_ast", 511 | "oxc_span", 512 | "oxc_syntax", 513 | ] 514 | 515 | [[package]] 516 | name = "oxc_codegen" 517 | version = "0.104.0" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "acff4dde26ce02d3c1fedab9924a77eabe7d438890eb32ed80050b82d8228814" 520 | dependencies = [ 521 | "bitflags", 522 | "cow-utils", 523 | "dragonbox_ecma", 524 | "itoa", 525 | "oxc_allocator", 526 | "oxc_ast", 527 | "oxc_data_structures", 528 | "oxc_index", 529 | "oxc_semantic", 530 | "oxc_sourcemap", 531 | "oxc_span", 532 | "oxc_syntax", 533 | "rustc-hash", 534 | ] 535 | 536 | [[package]] 537 | name = "oxc_compat" 538 | version = "0.104.0" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "9736aedaa6022bcc51e0083a35c88caf12807d7a76af75bb4536410cc0b58076" 541 | dependencies = [ 542 | "cow-utils", 543 | "oxc-browserslist", 544 | "oxc_syntax", 545 | "rustc-hash", 546 | "serde", 547 | ] 548 | 549 | [[package]] 550 | name = "oxc_data_structures" 551 | version = "0.104.0" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "96365faf00cfe8c05d9c92ac250e7085f778422084cb6fa3addab4655c511045" 554 | dependencies = [ 555 | "ropey", 556 | ] 557 | 558 | [[package]] 559 | name = "oxc_diagnostics" 560 | version = "0.104.0" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "7533b49283449389315761ce33c97c1b8069140b4fe3a73d19effc19ae40cc07" 563 | dependencies = [ 564 | "cow-utils", 565 | "oxc-miette", 566 | "percent-encoding", 567 | ] 568 | 569 | [[package]] 570 | name = "oxc_ecmascript" 571 | version = "0.104.0" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | checksum = "fa9f502daca154448e6af5f7b331c1b896d877cc65a9e5ec83e7df4f8ab22f50" 574 | dependencies = [ 575 | "cow-utils", 576 | "num-bigint", 577 | "num-traits", 578 | "oxc_allocator", 579 | "oxc_ast", 580 | "oxc_span", 581 | "oxc_syntax", 582 | ] 583 | 584 | [[package]] 585 | name = "oxc_estree" 586 | version = "0.104.0" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "58878722f08acf3807d240bb0500af02f78e11940de9a7a37d24ef80f3b97582" 589 | 590 | [[package]] 591 | name = "oxc_index" 592 | version = "4.1.0" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "eb3e6120999627ec9703025eab7c9f410ebb7e95557632a8902ca48210416c2b" 595 | dependencies = [ 596 | "nonmax", 597 | "serde", 598 | ] 599 | 600 | [[package]] 601 | name = "oxc_isolated_declarations" 602 | version = "0.104.0" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "e3eaf180bbcbe78856f5041e222b5c725f80172f7c73d1ce3edb28d7dc90d07d" 605 | dependencies = [ 606 | "bitflags", 607 | "oxc_allocator", 608 | "oxc_ast", 609 | "oxc_ast_visit", 610 | "oxc_diagnostics", 611 | "oxc_ecmascript", 612 | "oxc_span", 613 | "oxc_syntax", 614 | "rustc-hash", 615 | ] 616 | 617 | [[package]] 618 | name = "oxc_mangler" 619 | version = "0.104.0" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "e08d2309b0735be6d32255205466347152c6fde4dd2c1fe3e6b79579d2cba1a5" 622 | dependencies = [ 623 | "itertools", 624 | "oxc_allocator", 625 | "oxc_ast", 626 | "oxc_data_structures", 627 | "oxc_index", 628 | "oxc_semantic", 629 | "oxc_span", 630 | "oxc_syntax", 631 | "rustc-hash", 632 | ] 633 | 634 | [[package]] 635 | name = "oxc_minifier" 636 | version = "0.104.0" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | checksum = "e4d69201dbc1a40dd8b873f9db74fb0e756abddac1c71bec52b03f75934cfea2" 639 | dependencies = [ 640 | "cow-utils", 641 | "oxc_allocator", 642 | "oxc_ast", 643 | "oxc_ast_visit", 644 | "oxc_codegen", 645 | "oxc_compat", 646 | "oxc_data_structures", 647 | "oxc_ecmascript", 648 | "oxc_index", 649 | "oxc_mangler", 650 | "oxc_parser", 651 | "oxc_regular_expression", 652 | "oxc_semantic", 653 | "oxc_span", 654 | "oxc_syntax", 655 | "oxc_traverse", 656 | "rustc-hash", 657 | ] 658 | 659 | [[package]] 660 | name = "oxc_parser" 661 | version = "0.104.0" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "b5d707b04b23e2373716a4c63353c8bb1336d758aa87bda1cdf14b5c89c372cd" 664 | dependencies = [ 665 | "bitflags", 666 | "cow-utils", 667 | "memchr", 668 | "num-bigint", 669 | "num-traits", 670 | "oxc_allocator", 671 | "oxc_ast", 672 | "oxc_data_structures", 673 | "oxc_diagnostics", 674 | "oxc_ecmascript", 675 | "oxc_regular_expression", 676 | "oxc_span", 677 | "oxc_syntax", 678 | "rustc-hash", 679 | "seq-macro", 680 | ] 681 | 682 | [[package]] 683 | name = "oxc_regular_expression" 684 | version = "0.104.0" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "7c2a1c63f49ecead7d228493bec71246bfaa13cd6a50e153df5d46e5d92155e6" 687 | dependencies = [ 688 | "bitflags", 689 | "oxc_allocator", 690 | "oxc_ast_macros", 691 | "oxc_diagnostics", 692 | "oxc_span", 693 | "phf", 694 | "rustc-hash", 695 | "unicode-id-start", 696 | ] 697 | 698 | [[package]] 699 | name = "oxc_semantic" 700 | version = "0.104.0" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "49bc628b8050d4746493b78ad46a33efa2f1d8558a4ea1cd9136abc74098f860" 703 | dependencies = [ 704 | "itertools", 705 | "oxc_allocator", 706 | "oxc_ast", 707 | "oxc_ast_visit", 708 | "oxc_data_structures", 709 | "oxc_diagnostics", 710 | "oxc_ecmascript", 711 | "oxc_index", 712 | "oxc_span", 713 | "oxc_syntax", 714 | "phf", 715 | "rustc-hash", 716 | "self_cell", 717 | ] 718 | 719 | [[package]] 720 | name = "oxc_sourcemap" 721 | version = "6.0.1" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "36801dbbd025f2fa133367494e38eef75a53d334ae6746ba0c889fc4e76fa3a3" 724 | dependencies = [ 725 | "base64-simd", 726 | "json-escape-simd", 727 | "rustc-hash", 728 | "serde", 729 | "serde_json", 730 | ] 731 | 732 | [[package]] 733 | name = "oxc_span" 734 | version = "0.104.0" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "8bba9de8f6bfd9425996b3f68d30daa526b6c9aded42f59edb42e9542a11144f" 737 | dependencies = [ 738 | "compact_str", 739 | "oxc-miette", 740 | "oxc_allocator", 741 | "oxc_ast_macros", 742 | "oxc_estree", 743 | ] 744 | 745 | [[package]] 746 | name = "oxc_syntax" 747 | version = "0.104.0" 748 | source = "registry+https://github.com/rust-lang/crates.io-index" 749 | checksum = "322c91b4aeb10e5f62880d4bb439a3fbe96fc5831469c6317dd6833d2f9c3b44" 750 | dependencies = [ 751 | "bitflags", 752 | "cow-utils", 753 | "dragonbox_ecma", 754 | "nonmax", 755 | "oxc_allocator", 756 | "oxc_ast_macros", 757 | "oxc_data_structures", 758 | "oxc_estree", 759 | "oxc_index", 760 | "oxc_span", 761 | "phf", 762 | "unicode-id-start", 763 | ] 764 | 765 | [[package]] 766 | name = "oxc_transformer" 767 | version = "0.104.0" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "62850fb8c25cc441b30740716cbd8ecb1f9315620b6921005386463e302dd045" 770 | dependencies = [ 771 | "base64", 772 | "compact_str", 773 | "indexmap", 774 | "itoa", 775 | "memchr", 776 | "oxc_allocator", 777 | "oxc_ast", 778 | "oxc_ast_visit", 779 | "oxc_compat", 780 | "oxc_data_structures", 781 | "oxc_diagnostics", 782 | "oxc_ecmascript", 783 | "oxc_regular_expression", 784 | "oxc_semantic", 785 | "oxc_span", 786 | "oxc_syntax", 787 | "oxc_traverse", 788 | "rustc-hash", 789 | "serde", 790 | "serde_json", 791 | "sha1", 792 | ] 793 | 794 | [[package]] 795 | name = "oxc_transformer_plugins" 796 | version = "0.104.0" 797 | source = "registry+https://github.com/rust-lang/crates.io-index" 798 | checksum = "8283333089195414871e5fd3adb695263ec408c449059a0b8732ed560763de66" 799 | dependencies = [ 800 | "cow-utils", 801 | "itoa", 802 | "oxc_allocator", 803 | "oxc_ast", 804 | "oxc_ast_visit", 805 | "oxc_diagnostics", 806 | "oxc_ecmascript", 807 | "oxc_parser", 808 | "oxc_semantic", 809 | "oxc_span", 810 | "oxc_syntax", 811 | "oxc_transformer", 812 | "oxc_traverse", 813 | "rustc-hash", 814 | ] 815 | 816 | [[package]] 817 | name = "oxc_traverse" 818 | version = "0.104.0" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "1c6e3badab9f15dd8783b2e6b7f1c3e373da5f0c15a20ed035a83745c631453d" 821 | dependencies = [ 822 | "itoa", 823 | "oxc_allocator", 824 | "oxc_ast", 825 | "oxc_ast_visit", 826 | "oxc_data_structures", 827 | "oxc_ecmascript", 828 | "oxc_semantic", 829 | "oxc_span", 830 | "oxc_syntax", 831 | "rustc-hash", 832 | ] 833 | 834 | [[package]] 835 | name = "percent-encoding" 836 | version = "2.3.2" 837 | source = "registry+https://github.com/rust-lang/crates.io-index" 838 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 839 | 840 | [[package]] 841 | name = "phf" 842 | version = "0.13.1" 843 | source = "registry+https://github.com/rust-lang/crates.io-index" 844 | checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" 845 | dependencies = [ 846 | "phf_macros", 847 | "phf_shared", 848 | "serde", 849 | ] 850 | 851 | [[package]] 852 | name = "phf_generator" 853 | version = "0.13.1" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" 856 | dependencies = [ 857 | "fastrand", 858 | "phf_shared", 859 | ] 860 | 861 | [[package]] 862 | name = "phf_macros" 863 | version = "0.13.1" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" 866 | dependencies = [ 867 | "phf_generator", 868 | "phf_shared", 869 | "proc-macro2", 870 | "quote", 871 | "syn", 872 | ] 873 | 874 | [[package]] 875 | name = "phf_shared" 876 | version = "0.13.1" 877 | source = "registry+https://github.com/rust-lang/crates.io-index" 878 | checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" 879 | dependencies = [ 880 | "siphasher", 881 | ] 882 | 883 | [[package]] 884 | name = "powerfmt" 885 | version = "0.2.0" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 888 | 889 | [[package]] 890 | name = "proc-macro2" 891 | version = "1.0.103" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 894 | dependencies = [ 895 | "unicode-ident", 896 | ] 897 | 898 | [[package]] 899 | name = "quote" 900 | version = "1.0.42" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 903 | dependencies = [ 904 | "proc-macro2", 905 | ] 906 | 907 | [[package]] 908 | name = "r-efi" 909 | version = "5.3.0" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 912 | 913 | [[package]] 914 | name = "ropey" 915 | version = "1.6.1" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5" 918 | dependencies = [ 919 | "smallvec", 920 | "str_indices", 921 | ] 922 | 923 | [[package]] 924 | name = "rustc-hash" 925 | version = "2.1.1" 926 | source = "registry+https://github.com/rust-lang/crates.io-index" 927 | checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 928 | 929 | [[package]] 930 | name = "rustversion" 931 | version = "1.0.22" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 934 | 935 | [[package]] 936 | name = "ryu" 937 | version = "1.0.20" 938 | source = "registry+https://github.com/rust-lang/crates.io-index" 939 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 940 | 941 | [[package]] 942 | name = "self_cell" 943 | version = "1.2.1" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "16c2f82143577edb4921b71ede051dac62ca3c16084e918bf7b40c96ae10eb33" 946 | 947 | [[package]] 948 | name = "seq-macro" 949 | version = "0.3.6" 950 | source = "registry+https://github.com/rust-lang/crates.io-index" 951 | checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" 952 | 953 | [[package]] 954 | name = "serde" 955 | version = "1.0.228" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 958 | dependencies = [ 959 | "serde_core", 960 | "serde_derive", 961 | ] 962 | 963 | [[package]] 964 | name = "serde_core" 965 | version = "1.0.228" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 968 | dependencies = [ 969 | "serde_derive", 970 | ] 971 | 972 | [[package]] 973 | name = "serde_derive" 974 | version = "1.0.228" 975 | source = "registry+https://github.com/rust-lang/crates.io-index" 976 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 977 | dependencies = [ 978 | "proc-macro2", 979 | "quote", 980 | "syn", 981 | ] 982 | 983 | [[package]] 984 | name = "serde_json" 985 | version = "1.0.145" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 988 | dependencies = [ 989 | "itoa", 990 | "memchr", 991 | "ryu", 992 | "serde", 993 | "serde_core", 994 | ] 995 | 996 | [[package]] 997 | name = "sha1" 998 | version = "0.10.6" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1001 | dependencies = [ 1002 | "cfg-if", 1003 | "cpufeatures", 1004 | "digest", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "shlex" 1009 | version = "1.3.0" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1012 | 1013 | [[package]] 1014 | name = "simd-adler32" 1015 | version = "0.3.7" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 1018 | 1019 | [[package]] 1020 | name = "siphasher" 1021 | version = "1.0.1" 1022 | source = "registry+https://github.com/rust-lang/crates.io-index" 1023 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1024 | 1025 | [[package]] 1026 | name = "smallvec" 1027 | version = "1.15.1" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1030 | 1031 | [[package]] 1032 | name = "smawk" 1033 | version = "0.3.2" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 1036 | 1037 | [[package]] 1038 | name = "static_assertions" 1039 | version = "1.1.0" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1042 | 1043 | [[package]] 1044 | name = "str_indices" 1045 | version = "0.4.4" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "d08889ec5408683408db66ad89e0e1f93dff55c73a4ccc71c427d5b277ee47e6" 1048 | 1049 | [[package]] 1050 | name = "syn" 1051 | version = "2.0.109" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "2f17c7e013e88258aa9543dcbe81aca68a667a9ac37cd69c9fbc07858bfe0e2f" 1054 | dependencies = [ 1055 | "proc-macro2", 1056 | "quote", 1057 | "unicode-ident", 1058 | ] 1059 | 1060 | [[package]] 1061 | name = "textwrap" 1062 | version = "0.16.2" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 1065 | dependencies = [ 1066 | "smawk", 1067 | "unicode-linebreak", 1068 | "unicode-width", 1069 | ] 1070 | 1071 | [[package]] 1072 | name = "thiserror" 1073 | version = "2.0.17" 1074 | source = "registry+https://github.com/rust-lang/crates.io-index" 1075 | checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 1076 | dependencies = [ 1077 | "thiserror-impl", 1078 | ] 1079 | 1080 | [[package]] 1081 | name = "thiserror-impl" 1082 | version = "2.0.17" 1083 | source = "registry+https://github.com/rust-lang/crates.io-index" 1084 | checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 1085 | dependencies = [ 1086 | "proc-macro2", 1087 | "quote", 1088 | "syn", 1089 | ] 1090 | 1091 | [[package]] 1092 | name = "time" 1093 | version = "0.3.44" 1094 | source = "registry+https://github.com/rust-lang/crates.io-index" 1095 | checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" 1096 | dependencies = [ 1097 | "deranged", 1098 | "num-conv", 1099 | "powerfmt", 1100 | "serde", 1101 | "time-core", 1102 | ] 1103 | 1104 | [[package]] 1105 | name = "time-core" 1106 | version = "0.1.6" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 1109 | 1110 | [[package]] 1111 | name = "typenum" 1112 | version = "1.19.0" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 1115 | 1116 | [[package]] 1117 | name = "unicode-id-start" 1118 | version = "1.4.0" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" 1121 | 1122 | [[package]] 1123 | name = "unicode-ident" 1124 | version = "1.0.22" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 1127 | 1128 | [[package]] 1129 | name = "unicode-linebreak" 1130 | version = "0.1.5" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 1133 | 1134 | [[package]] 1135 | name = "unicode-segmentation" 1136 | version = "1.12.0" 1137 | source = "registry+https://github.com/rust-lang/crates.io-index" 1138 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1139 | 1140 | [[package]] 1141 | name = "unicode-width" 1142 | version = "0.2.2" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 1145 | 1146 | [[package]] 1147 | name = "unty" 1148 | version = "0.0.4" 1149 | source = "registry+https://github.com/rust-lang/crates.io-index" 1150 | checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" 1151 | 1152 | [[package]] 1153 | name = "version_check" 1154 | version = "0.9.5" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1157 | 1158 | [[package]] 1159 | name = "virtue" 1160 | version = "0.0.18" 1161 | source = "registry+https://github.com/rust-lang/crates.io-index" 1162 | checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" 1163 | 1164 | [[package]] 1165 | name = "vsimd" 1166 | version = "0.8.0" 1167 | source = "registry+https://github.com/rust-lang/crates.io-index" 1168 | checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" 1169 | 1170 | [[package]] 1171 | name = "wasip2" 1172 | version = "1.0.1+wasi-0.2.4" 1173 | source = "registry+https://github.com/rust-lang/crates.io-index" 1174 | checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 1175 | dependencies = [ 1176 | "wit-bindgen", 1177 | ] 1178 | 1179 | [[package]] 1180 | name = "wit-bindgen" 1181 | version = "0.46.0" 1182 | source = "registry+https://github.com/rust-lang/crates.io-index" 1183 | checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 1184 | --------------------------------------------------------------------------------