├── .node-version ├── .npmrc ├── .rustfmt.toml ├── rust-toolchain.toml ├── .gitignore ├── metrics.json ├── src ├── codegen.rs ├── dce.rs ├── mangler.rs ├── remove_whitespace.rs ├── minifier.rs ├── compressor.rs ├── transformer.rs ├── case.rs ├── formatter_dcr.rs ├── formatter.rs ├── main.rs ├── isolated_declarations │ └── mod.rs ├── driver.rs └── lib.rs ├── justfile ├── .github ├── renovate.json └── workflows │ └── ci.yml ├── rolldown.config.js ├── Cargo.toml ├── README.md ├── generate.mjs ├── tsconfig.json ├── Cargo.lock └── package.json /.node-version: -------------------------------------------------------------------------------- 1 | 22.12.0 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | ignore-scripts=true 2 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- 1 | use_small_heuristics = "Max" 2 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.92.0" 3 | profile = "default" 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /node_modules 3 | /repos 4 | **/isolated_declarations/*.ts 5 | !**/isolated_declarations/tsc.ts 6 | 7 | /dist 8 | -------------------------------------------------------------------------------- /metrics.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Compile Time", 4 | "unit": "Seconds", 5 | "value": 0 6 | }, 7 | { 8 | "name": "Binary Size", 9 | "unit": "Bytes", 10 | "value": 0 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /src/codegen.rs: -------------------------------------------------------------------------------- 1 | use crate::{Case, Driver}; 2 | 3 | pub struct CodegenRunner; 4 | 5 | impl Case for CodegenRunner { 6 | fn name(&self) -> &'static str { 7 | "Codegen" 8 | } 9 | 10 | fn driver(&self) -> Driver { 11 | Driver::default() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env -S just --justfile 2 | 3 | _default: 4 | @just --list -u 5 | 6 | alias r := ready 7 | 8 | init: 9 | cargo binstall cargo-watch taplo-cli -y 10 | 11 | ready: 12 | cargo check 13 | cargo clippy 14 | pnpm install 15 | cargo run 16 | 17 | lint: 18 | cargo clippy 19 | 20 | watch command: 21 | cargo watch --no-vcs-ignores -x '{{command}}' 22 | -------------------------------------------------------------------------------- /src/dce.rs: -------------------------------------------------------------------------------- 1 | use crate::{Case, Driver, Source}; 2 | 3 | pub struct DceRunner; 4 | 5 | impl Case for DceRunner { 6 | fn name(&self) -> &'static str { 7 | "DCE" 8 | } 9 | 10 | fn run_test(&self, source: &Source) -> bool { 11 | source.is_js_only() 12 | } 13 | 14 | fn driver(&self) -> Driver { 15 | Driver { dce: true, ..Driver::default() } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.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": "npm packages", 10 | "matchManagers": ["npm"], 11 | "rangeStrategy": "auto", 12 | "schedule": ["before 10am"] 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /src/mangler.rs: -------------------------------------------------------------------------------- 1 | use crate::{Case, Driver, Source}; 2 | 3 | pub struct ManglerRunner; 4 | 5 | impl Case for ManglerRunner { 6 | fn name(&self) -> &'static str { 7 | "Mangler" 8 | } 9 | 10 | fn run_test(&self, source: &Source) -> bool { 11 | source.is_js_only() 12 | } 13 | 14 | fn driver(&self) -> Driver { 15 | Driver { mangle: true, ..Driver::default() } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/remove_whitespace.rs: -------------------------------------------------------------------------------- 1 | use crate::{Case, Driver, Source}; 2 | 3 | pub struct RemoveWhitespaceRunner; 4 | 5 | impl Case for RemoveWhitespaceRunner { 6 | fn name(&self) -> &'static str { 7 | "RemoveWhitespace" 8 | } 9 | 10 | fn run_test(&self, source: &Source) -> bool { 11 | source.is_js_only() 12 | } 13 | 14 | fn driver(&self) -> Driver { 15 | Driver { remove_whitespace: true, ..Driver::default() } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/minifier.rs: -------------------------------------------------------------------------------- 1 | use oxc::minifier::CompressOptions; 2 | 3 | use crate::{Case, Driver, Source}; 4 | 5 | pub struct MinifierRunner; 6 | 7 | impl Case for MinifierRunner { 8 | fn name(&self) -> &'static str { 9 | "Minifier" 10 | } 11 | 12 | fn run_test(&self, source: &Source) -> bool { 13 | source.is_js_only() 14 | } 15 | 16 | fn driver(&self) -> Driver { 17 | Driver { 18 | compress: Some(CompressOptions::default()), 19 | mangle: true, 20 | remove_whitespace: true, 21 | ..Driver::default() 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/compressor.rs: -------------------------------------------------------------------------------- 1 | use oxc::minifier::CompressOptions; 2 | 3 | use crate::{Case, Driver, Source}; 4 | 5 | pub struct CompressorRunner; 6 | 7 | impl Case for CompressorRunner { 8 | fn name(&self) -> &'static str { 9 | "Compressor" 10 | } 11 | 12 | /// The compressor changes cjs module syntaxes, 13 | /// which breaks `cjs-module-lexer`. 14 | /// e.g. `cjs-module-lexer` cannot detect `enumerable: !0`. 15 | fn enable_runtime_test(&self) -> bool { 16 | false 17 | } 18 | 19 | fn run_test(&self, source: &Source) -> bool { 20 | source.is_js_only() 21 | } 22 | 23 | fn driver(&self) -> Driver { 24 | Driver { compress: Some(CompressOptions::default()), ..Driver::default() } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /rolldown.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'rolldown' 2 | 3 | let modulesCount = 0; 4 | 5 | export default defineConfig({ 6 | input: 'src/static.test.mjs', 7 | platform: 'node', 8 | // [UNLOADABLE_DEPENDENCY] Error: Could not load ... .node 9 | external: [ 10 | "fsevents", 11 | "@swc/core", 12 | "oxc-resolver", 13 | "ssh2", 14 | "@parcel/watcher", 15 | "jest-resolve", 16 | "@unrs/resolver-binding-linux-x64-musl", 17 | "@oxc-parser/binding-linux-x64-musl", 18 | "@oxc-parser/binding-linux-x64-gnu", 19 | "@unrs/resolver-binding-linux-x64-gnu" 20 | ], 21 | resolve: { 22 | extensions: [".js", ".cjs", ".mjs", ".json"] 23 | }, 24 | plugins: [ 25 | { 26 | name: "counter", 27 | transform() { 28 | modulesCount += 1; 29 | }, 30 | buildEnd() { 31 | console.log("Total number of modules processed: " + modulesCount); 32 | } 33 | } 34 | ] 35 | }) 36 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "monitor-oxc" 3 | version = "0.0.0" 4 | edition = "2024" 5 | publish = false 6 | 7 | [[bin]] 8 | name = "monitor-oxc" 9 | path = "src/main.rs" 10 | test = false 11 | doctest = false 12 | 13 | [lib] 14 | test = false 15 | doctest = false 16 | 17 | [lints.clippy] 18 | all = { level = "warn", priority = -1 } 19 | pedantic = { level = "warn", priority = -1 } 20 | missing_errors_doc = "allow" 21 | missing_panics_doc = "allow" 22 | must_use_candidate = "allow" 23 | module_name_repetitions = "allow" 24 | 25 | [dependencies] 26 | oxc = { path = "../oxc/crates/oxc", features = ["full"] } 27 | oxc_formatter = { path = "../oxc/crates/oxc_formatter", features = ["detect_code_removal"] } 28 | walkdir = "2.5.0" 29 | similar = "2.5.0" 30 | console = "0.16.0" 31 | url = "2.5.2" 32 | ureq = "3.0.0" 33 | pico-args = "0.5.0" 34 | project-root = "0.2.2" 35 | 36 | [profile.dev] 37 | # Disabling debug info reduces stack usage 38 | debug = false 39 | 40 | [profile.release] 41 | strip = false # "symbols" # Set to `false` for debug information 42 | debug = true # Set to `true` for debug information 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Monitor Oxc 2 | 3 | ### Transformer 4 | 5 | * Parse + transform idempotency test 6 | * transform and override all `j|tsx?` files 7 | * run `./src/main.test.mjs` 8 | 9 | ### Codegen 10 | 11 | * Parse + codegen idempotency test 12 | * codegen and override all js files 13 | * run `./src/main.test.mjs` 14 | 15 | ### Mangler 16 | 17 | * Parse + mangle idempotency test 18 | * mangle and override all js files 19 | * run `./src/main.test.mjs` 20 | 21 | ### Compressor 22 | 23 | * Parse + compress idempotency test 24 | * compress and override all js files 25 | * run `./src/main.test.mjs` 26 | 27 | ### Isolated Declarations 28 | 29 | * Test against vue 30 | 31 | ## Top 3000 npm packages from [npm-high-impact](https://github.com/wooorm/npm-high-impact) 32 | 33 | (check out our [package.json](https://github.com/oxc-project/monitor-oxc/blob/main/package.json) 😆) 34 | 35 | For all js / ts files in `node_modules`, apply idempotency test. 36 | 37 | Read more about our [test infrastrucutre](https://oxc.rs/docs/learn/architecture/test.html) 38 | 39 | ## Development 40 | 41 | ``` 42 | rm -rf node_modules && pnpm i 43 | cargo run --release 44 | ``` 45 | 46 | ### Generate packages 47 | 48 | ```bash 49 | pnpm run generate 50 | ``` 51 | -------------------------------------------------------------------------------- /src/transformer.rs: -------------------------------------------------------------------------------- 1 | use std::fs; 2 | 3 | use oxc::transformer::TransformOptions; 4 | 5 | use crate::{Case, Diagnostic, Driver, Source}; 6 | 7 | pub struct TransformerRunner; 8 | 9 | impl Case for TransformerRunner { 10 | fn name(&self) -> &'static str { 11 | "Transformer" 12 | } 13 | 14 | fn test(&self, source: &Source) -> Result<(), Vec> { 15 | let path = &source.path; 16 | let source_text = self.idempotency_test(source)?; 17 | // Write js files for runtime test 18 | let new_extension = path.extension().unwrap().to_string_lossy().replace('t', "j"); 19 | let new_path = path.with_extension(new_extension); 20 | fs::write(new_path, source_text).unwrap(); 21 | Ok(()) 22 | } 23 | 24 | fn driver(&self) -> Driver { 25 | let mut options = TransformOptions::enable_all(); 26 | // Turns off the refresh plugin because it is never idempotent 27 | options.jsx.refresh = None; 28 | // Enables `only_remove_type_imports` avoiding removing all unused imports 29 | options.typescript.only_remove_type_imports = true; 30 | 31 | // These two injects helper in esm format, which breaks cjs files. 32 | options.env.es2018.async_generator_functions = false; 33 | options.env.es2017.async_to_generator = false; 34 | 35 | Driver { transform: Some(options), ..Driver::default() } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/case.rs: -------------------------------------------------------------------------------- 1 | use std::{fs, panic::RefUnwindSafe}; 2 | 3 | use crate::{Diagnostic, Driver, NodeModulesRunner, Source}; 4 | 5 | pub trait Case: RefUnwindSafe { 6 | fn name(&self) -> &'static str; 7 | 8 | fn enable_runtime_test(&self) -> bool { 9 | true 10 | } 11 | 12 | fn run_test(&self, _source: &Source) -> bool { 13 | true 14 | } 15 | 16 | fn test(&self, source: &Source) -> Result<(), Vec> { 17 | if self.run_test(source) { 18 | let source_text = self.idempotency_test(source)?; 19 | // Write js files for runtime test 20 | if source.source_type.is_javascript() { 21 | fs::write(&source.path, source_text).unwrap(); 22 | } 23 | } 24 | Ok(()) 25 | } 26 | 27 | fn driver(&self) -> Driver; 28 | 29 | fn idempotency_test(&self, source: &Source) -> Result> { 30 | let Source { path, source_type, source_text } = source; 31 | let source_text2 = self.driver().run(path, source_text, *source_type)?; 32 | let source_text3 = self.driver().run(path, &source_text2, *source_type)?; 33 | if source_text2 != source_text3 { 34 | return Err(vec![Diagnostic { 35 | case: self.name(), 36 | path: path.clone(), 37 | message: NodeModulesRunner::get_diff(&source_text2, &source_text3, false), 38 | }]); 39 | } 40 | Ok(source_text3) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/formatter_dcr.rs: -------------------------------------------------------------------------------- 1 | use oxc::{ 2 | allocator::Allocator, 3 | parser::{Parser, ParserReturn}, 4 | }; 5 | use oxc_formatter::{FormatOptions, Formatter, detect_code_removal, get_parse_options}; 6 | 7 | use crate::{Case, Diagnostic, Driver, Source}; 8 | 9 | // Another `FormatterRunner` for detecting code removal. 10 | // 11 | // Detection api is enabled by the feature flag "detect_code_removal". 12 | // While the main FormatterRunner also has this capability, 13 | // there are currently many reported idempotency issues. 14 | // Therefore, for clarity, we separate this test to focus only on detecting code removal. 15 | 16 | pub struct FormatterDCRRunner; 17 | 18 | impl Case for FormatterDCRRunner { 19 | fn name(&self) -> &'static str { 20 | "Formatter(DetectCodeRemoval)" 21 | } 22 | 23 | fn enable_runtime_test(&self) -> bool { 24 | false 25 | } 26 | 27 | fn driver(&self) -> Driver { 28 | unreachable!() 29 | } 30 | 31 | fn test(&self, source: &Source) -> Result<(), Vec> { 32 | let Source { path, source_type, source_text, .. } = source; 33 | 34 | let allocator = Allocator::new(); 35 | let options = get_parse_options(); 36 | 37 | let ParserReturn { program, errors, .. } = 38 | Parser::new(&allocator, source_text, *source_type).with_options(options).parse(); 39 | if !errors.is_empty() { 40 | // Skip files that fail to parse, already reported in `FormatterRunner` 41 | return Ok(()); 42 | } 43 | 44 | let source_text2 = Formatter::new(&allocator, FormatOptions::default()).build(&program); 45 | 46 | if let Some(diff) = detect_code_removal(source_text, &source_text2, *source_type) { 47 | return Err(vec![Diagnostic { 48 | case: self.name(), 49 | path: path.clone(), 50 | message: format!("Code removal detected:\n{diff}"), 51 | }]); 52 | } 53 | 54 | Ok(()) 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/formatter.rs: -------------------------------------------------------------------------------- 1 | use oxc::{ 2 | allocator::Allocator, 3 | parser::{Parser, ParserReturn}, 4 | }; 5 | use oxc_formatter::{FormatOptions, Formatter, get_parse_options}; 6 | 7 | use crate::{Case, Diagnostic, Driver, NodeModulesRunner, Source}; 8 | 9 | pub struct FormatterRunner; 10 | 11 | impl Case for FormatterRunner { 12 | fn name(&self) -> &'static str { 13 | "Formatter" 14 | } 15 | 16 | fn enable_runtime_test(&self) -> bool { 17 | false 18 | } 19 | 20 | fn driver(&self) -> Driver { 21 | unreachable!() 22 | } 23 | 24 | fn idempotency_test(&self, source: &Source) -> Result> { 25 | let Source { path, source_type, source_text } = source; 26 | 27 | let allocator = Allocator::new(); 28 | let options = get_parse_options(); 29 | 30 | let ParserReturn { program: program1, errors: errors1, .. } = 31 | Parser::new(&allocator, source_text, *source_type).with_options(options).parse(); 32 | if !errors1.is_empty() { 33 | return Err(vec![Diagnostic { 34 | case: self.name(), 35 | path: path.clone(), 36 | message: format!("Parse error in original source: {errors1:?}"), 37 | }]); 38 | } 39 | 40 | let source_text2 = Formatter::new(&allocator, FormatOptions::default()).build(&program1); 41 | 42 | let ParserReturn { program: program2, errors: errors2, .. } = 43 | Parser::new(&allocator, &source_text2, *source_type).with_options(options).parse(); 44 | if !errors2.is_empty() { 45 | return Err(vec![Diagnostic { 46 | case: self.name(), 47 | path: path.clone(), 48 | message: format!("Parse error after formatting: {errors2:?}"), 49 | }]); 50 | } 51 | 52 | let source_text3 = Formatter::new(&allocator, FormatOptions::default()).build(&program2); 53 | 54 | if source_text2 != source_text3 { 55 | return Err(vec![Diagnostic { 56 | case: self.name(), 57 | path: path.clone(), 58 | message: NodeModulesRunner::get_diff(&source_text2, &source_text3, false), 59 | }]); 60 | } 61 | 62 | Ok(source_text3) 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{path::PathBuf, process::ExitCode}; 2 | 3 | use pico_args::Arguments; 4 | 5 | use monitor_oxc::{ 6 | NodeModulesRunner, NodeModulesRunnerOptions, codegen::CodegenRunner, 7 | compressor::CompressorRunner, dce::DceRunner, formatter::FormatterRunner, 8 | formatter_dcr::FormatterDCRRunner, isolated_declarations, mangler::ManglerRunner, 9 | minifier::MinifierRunner, remove_whitespace::RemoveWhitespaceRunner, 10 | transformer::TransformerRunner, 11 | }; 12 | 13 | fn main() -> ExitCode { 14 | let mut args = Arguments::from_env(); 15 | 16 | let options = NodeModulesRunnerOptions { 17 | filter: args.opt_value_from_str("--filter").unwrap(), 18 | no_restore: args.contains("--no-restore"), 19 | }; 20 | 21 | let task = args.free_from_str().unwrap_or_else(|_| "default".to_string()); 22 | let task = task.as_str(); 23 | 24 | println!("Task: {task}"); 25 | 26 | if matches!(task, "id") { 27 | let path_to_vue = args.opt_free_from_str::().unwrap(); 28 | return isolated_declarations::test(path_to_vue); 29 | } 30 | 31 | println!("Options: {options:?}"); 32 | 33 | let mut node_modules_runner = NodeModulesRunner::new(options); 34 | 35 | if matches!(task, "codegen" | "default") { 36 | node_modules_runner.add_case(Box::new(CodegenRunner)); 37 | } 38 | 39 | if matches!(task, "transform" | "transformer" | "default") { 40 | node_modules_runner.add_case(Box::new(TransformerRunner)); 41 | } 42 | 43 | if matches!(task, "dce" | "default") { 44 | node_modules_runner.add_case(Box::new(DceRunner)); 45 | } 46 | 47 | if matches!(task, "compress" | "compressor" | "default") { 48 | node_modules_runner.add_case(Box::new(CompressorRunner)); 49 | } 50 | 51 | if matches!(task, "mangle" | "mangler" | "default") { 52 | node_modules_runner.add_case(Box::new(ManglerRunner)); 53 | } 54 | 55 | if matches!(task, "whitespace" | "default") { 56 | node_modules_runner.add_case(Box::new(RemoveWhitespaceRunner)); 57 | } 58 | 59 | if matches!(task, "minifier" | "minify" | "default") { 60 | node_modules_runner.add_case(Box::new(MinifierRunner)); 61 | } 62 | 63 | if matches!(task, "formatter" | "default") { 64 | node_modules_runner.add_case(Box::new(FormatterRunner)); 65 | } 66 | if matches!(task, "formatter_dcr" | "default") { 67 | node_modules_runner.add_case(Box::new(FormatterDCRRunner)); 68 | } 69 | 70 | let result = node_modules_runner.run_all(); 71 | 72 | if let Err(diagnostics) = result { 73 | for diagnostic in &diagnostics { 74 | println!( 75 | "{}\n{}\n{}", 76 | diagnostic.case, 77 | diagnostic.path.to_string_lossy(), 78 | diagnostic.message 79 | ); 80 | } 81 | println!("{} Failed.", diagnostics.len()); 82 | ExitCode::FAILURE 83 | } else { 84 | ExitCode::SUCCESS 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/isolated_declarations/mod.rs: -------------------------------------------------------------------------------- 1 | use std::{fs, path::PathBuf, process::ExitCode}; 2 | 3 | use project_root::get_project_root; 4 | use walkdir::WalkDir; 5 | 6 | use crate::NodeModulesRunner; 7 | 8 | use oxc::{ 9 | allocator::Allocator, 10 | codegen::{Codegen, CodegenOptions, CommentOptions}, 11 | isolated_declarations::{IsolatedDeclarations, IsolatedDeclarationsOptions}, 12 | parser::Parser, 13 | span::SourceType, 14 | }; 15 | 16 | #[must_use] 17 | pub fn test(path_to_vue: Option) -> ExitCode { 18 | let root = path_to_vue.unwrap_or_else(|| get_project_root().unwrap().join("../core")); 19 | let temp_dir = root.join("temp"); 20 | 21 | if !temp_dir.exists() { 22 | println!("Please provide path to vue repository."); 23 | println!("And run `tsc -p tsconfig.build.json --noCheck` in the vue repository."); 24 | return ExitCode::FAILURE; 25 | } 26 | 27 | let include = [ 28 | // "packages/global.d.ts", 29 | "packages/vue/src", 30 | "packages/vue-compat/src", 31 | "packages/compiler-core/src", 32 | "packages/compiler-dom/src", 33 | "packages/runtime-core/src", 34 | "packages/runtime-dom/src", 35 | "packages/reactivity/src", 36 | "packages/shared/src", 37 | // "packages/global.d.ts", 38 | "packages/compiler-sfc/src", 39 | "packages/compiler-ssr/src", 40 | "packages/server-renderer/src", 41 | ]; 42 | 43 | let mut exit_code = ExitCode::SUCCESS; 44 | for entry in WalkDir::new(root.join("packages")) { 45 | let dir_entry = entry.unwrap(); 46 | let path = dir_entry.path(); 47 | let path_str = path.to_string_lossy(); 48 | if !include.iter().any(|i| path_str.contains(i)) { 49 | continue; 50 | } 51 | let Ok(source_type) = SourceType::from_path(path) else { 52 | continue; 53 | }; 54 | if !source_type.is_typescript() || source_type.is_typescript_definition() { 55 | continue; 56 | } 57 | 58 | let source_text = fs::read_to_string(path).unwrap(); 59 | let printed = { 60 | let allocator = Allocator::default(); 61 | let ret = Parser::new(&allocator, &source_text, source_type).parse(); 62 | let id = IsolatedDeclarations::new( 63 | &allocator, 64 | IsolatedDeclarationsOptions { strip_internal: true }, 65 | ) 66 | .build(&ret.program); 67 | Codegen::new().build(&id.program).code 68 | }; 69 | 70 | let root_str = root.to_string_lossy(); 71 | let read_path = temp_dir 72 | .join(path_str.strip_prefix(root_str.as_ref()).unwrap().strip_prefix("/").unwrap()) 73 | .with_extension("") 74 | .with_extension("d.ts"); 75 | 76 | let tsc_output = { 77 | let allocator = Allocator::default(); 78 | let source_type = SourceType::d_ts(); 79 | let source_text = 80 | fs::read_to_string(&read_path).unwrap_or_else(|e| panic!("{e}\n{read_path:?}")); 81 | let ret = Parser::new(&allocator, &source_text, source_type).parse(); 82 | Codegen::new() 83 | .with_options(CodegenOptions { 84 | comments: CommentOptions { jsdoc: true, ..CommentOptions::disabled() }, 85 | ..CodegenOptions::default() 86 | }) 87 | .build(&ret.program) 88 | .code 89 | }; 90 | 91 | if tsc_output.trim() != printed.trim() { 92 | exit_code = ExitCode::FAILURE; 93 | println!(); 94 | println!("{}", path.to_string_lossy()); 95 | println!("{}", NodeModulesRunner::get_diff(&printed, &tsc_output, true)); 96 | println!(); 97 | } 98 | } 99 | 100 | exit_code 101 | } 102 | -------------------------------------------------------------------------------- /generate.mjs: -------------------------------------------------------------------------------- 1 | import fs from "node:fs"; 2 | 3 | import packageJson from "./package.json" with { type: "json" }; 4 | import { npmHighImpact } from "npm-high-impact"; 5 | 6 | const COUNT = 3000; 7 | 8 | const ignoreList = new Set([ 9 | // CLIs don't work 10 | "npm", "yarn", "pnpm", "nx", "vitest", "turbo", 11 | // NO ESM export 12 | "@babel/compat-data", "@babel/runtime", "@babel/runtime-corejs3", "@graphql-typed-document-node/core", 13 | "@jest/globals", "@octokit/openapi-types", "@rushstack/eslint-patch", 14 | "@testing-library/jest-dom", "assert", "babel-runtime", "constants-browserify", "csstype", "devtools-protocol", 15 | "es-iterator-helpers", "eslint-module-utils", "ext", "fbjs", "file-system-cache", "language-subtag-registry", 16 | "node-releases", "readdir-glob", "source-map-support", "spdx-exceptions", "spdx-license-ids", 17 | "@tokenizer/token", "css-color-names", "eslint-config-next", "extract-files", "jest-watch-typeahead", 18 | "limiter", "react-app-polyfill", "react-dev-utils", "react-error-overlay", 19 | "timers-ext", "unfetch", "bare-path", "bare-os", "bare-fs", 20 | "@noble/hashes", "chromium-bidi", "pg-cloudflare", "react-scripts", "sanitize.css", "vue-template-compiler", "@csstools/normalize.css", 21 | "@eslint/core", "pn", "dir-glob", "globby", "@backstage/backend-common", "teeny-request", 22 | // broken in node 23 | "bootstrap", "@vitest/expect", "wait-on", "react-devtools-core", 24 | "nice-napi", "@babel/cli", "webpack-subresource-integrity", "opencollective-postinstall", 25 | "react-dropzone", 26 | // types 27 | "type", "type-fest", "types-registry", "undici-types", "@octokit/types", "@schematics/angular", 28 | "@react-types/shared", 29 | // flow 30 | "ast-types-flow", "react-native", 31 | // not compatible with linux 32 | "fsevents", 33 | // breaks rolldown 34 | "eslint-plugin-import", "event-emitter", "d", "memoizee", "next", "nx", 35 | // not strict mode 36 | "js-beautify", 37 | // need transform to cjs 38 | "fast-json-patch", 39 | // Requires `node-gyp` 40 | "@datadog/pprof", "cpu-features", 41 | // has template files 42 | "@nestjs/schematics", 43 | // breaks node.js > v22.7.0 44 | "esm", 45 | // contains a global `var hasOwnProperty = Object.prototype.hasOwnProperty;` which got polluted from some where. 46 | "react-shallow-renderer", 47 | // pollutes protytype 48 | "pirates", "dd-trace", "harmony-reflect" 49 | ]); 50 | 51 | const ignorePrefixes = [ 52 | "@types", "@tsconfig", "@tsconfig", "@next", "@esbuild", "@nrwl", "@rollup", "@mui", "workbox", 53 | "@swc", "esbuild-", "es6-", "es5-", "@nx", "@firebase", "@angular", "turbo-", "@storybook", "metro", 54 | "@img", "@parcel", 55 | "@smithy", "@aws-sdk", "@google-cloud", 56 | ]; 57 | 58 | const vue = [ 59 | "language-tools", 60 | "naive-ui", 61 | "nuxt", 62 | "pinia", 63 | // "primevue", 64 | "quasar", 65 | "radix-vue", 66 | "router", 67 | "test-utils", 68 | "vant", 69 | "@vitejs/plugin-vue", 70 | "vitepress", 71 | "vue-i18n", 72 | "unplugin-vue-macros", 73 | "vue-simple-compiler", 74 | "vuetify", 75 | "@vueuse/core", 76 | ]; 77 | 78 | const data = [ 79 | ...new Set( 80 | npmHighImpact 81 | .filter((key) => !ignorePrefixes.some((p) => key.startsWith(p))) 82 | .filter((key) => !ignoreList.has(key)) 83 | .slice(0, COUNT) 84 | .concat(vue), 85 | ), 86 | ].sort(); 87 | 88 | packageJson.devDependencies = {}; 89 | data.map((name) => { 90 | packageJson.devDependencies[name] = "latest"; 91 | }); 92 | 93 | fs.writeFileSync("./package.json", JSON.stringify(packageJson, null, 2)); 94 | 95 | let dynamicTestFile = 'import test from "node:test"\nimport assert from "node:assert";\n'; 96 | data.forEach((key) => { 97 | dynamicTestFile += `test("${key}", () => import("${key}").then(assert.ok));\n`; 98 | }); 99 | fs.writeFileSync("./src/dynamic.test.mjs", dynamicTestFile); 100 | 101 | let staticTestFile = 'import test from "node:test"\nimport assert from "node:assert";\n'; 102 | data.forEach((key, i) => { 103 | staticTestFile += `import * as _${i} from "${key}";\ntest("${key}", () => assert.ok(_${i}));\n`; 104 | }); 105 | fs.writeFileSync("./src/static.test.mjs", staticTestFile); 106 | -------------------------------------------------------------------------------- /src/driver.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | mem, 3 | ops::ControlFlow, 4 | path::{Path, PathBuf}, 5 | }; 6 | 7 | use oxc::{ 8 | CompilerInterface, 9 | allocator::Allocator, 10 | codegen::{Codegen, CodegenOptions, CodegenReturn, CommentOptions}, 11 | diagnostics::OxcDiagnostic, 12 | mangler::MangleOptions, 13 | minifier::{CompressOptions, Compressor}, 14 | parser::{ParseOptions, Parser, ParserReturn}, 15 | span::SourceType, 16 | transformer::TransformOptions, 17 | }; 18 | 19 | use crate::Diagnostic; 20 | 21 | #[allow(clippy::struct_excessive_bools)] 22 | #[derive(Default)] 23 | pub struct Driver { 24 | // options 25 | pub transform: Option, 26 | pub compress: Option, 27 | pub dce: bool, 28 | pub mangle: bool, 29 | pub remove_whitespace: bool, 30 | // states 31 | pub printed: String, 32 | pub path: PathBuf, 33 | pub errors: Vec, 34 | } 35 | 36 | impl CompilerInterface for Driver { 37 | fn handle_errors(&mut self, errors: Vec) { 38 | let errors = errors 39 | .into_iter() 40 | .filter(|d| !d.message.starts_with("Flow is not supported")) 41 | // ignore `import lib = require(...);` syntax errors for transforms 42 | .filter(|d| { 43 | !d.message 44 | .contains("add @babel/plugin-transform-modules-commonjs to your Babel config") 45 | }) 46 | .filter(|d| d.message != "The keyword 'await' is reserved"); 47 | self.errors.extend(errors); 48 | } 49 | 50 | fn after_parse(&mut self, parser_return: &mut ParserReturn) -> ControlFlow<()> { 51 | parser_return.errors = mem::take(&mut parser_return.errors).into_iter().filter(|e| { 52 | e.message != "`await` is only allowed within async functions and at the top levels of modules" 53 | }).collect::>(); 54 | ControlFlow::Continue(()) 55 | } 56 | 57 | fn after_codegen(&mut self, ret: CodegenReturn) { 58 | self.printed = ret.code; 59 | } 60 | 61 | fn parse_options(&self) -> ParseOptions { 62 | ParseOptions { 63 | parse_regular_expression: true, 64 | allow_return_outside_function: true, 65 | ..ParseOptions::default() 66 | } 67 | } 68 | 69 | fn transform_options(&self) -> Option<&TransformOptions> { 70 | self.transform.as_ref() 71 | } 72 | 73 | fn compress_options(&self) -> Option { 74 | self.compress.clone() 75 | } 76 | 77 | fn mangle_options(&self) -> Option { 78 | self.mangle.then(MangleOptions::default) 79 | } 80 | 81 | fn codegen_options(&self) -> Option { 82 | Some(CodegenOptions { 83 | minify: self.remove_whitespace, 84 | comments: if self.compress.is_some() { 85 | CommentOptions::disabled() 86 | } else { 87 | CommentOptions::default() 88 | }, 89 | source_map_path: self.compress.is_none().then(|| self.path.clone()), 90 | ..CodegenOptions::default() 91 | }) 92 | } 93 | } 94 | 95 | impl Driver { 96 | pub fn run( 97 | &mut self, 98 | source_path: &Path, 99 | source_text: &str, 100 | source_type: SourceType, 101 | ) -> Result> { 102 | if self.dce { 103 | return Ok(Self::dce(source_text, source_type)); 104 | } 105 | self.path = source_path.to_path_buf(); 106 | let mut source_type = source_type; 107 | if source_path.extension().unwrap() == "js" { 108 | source_type = source_type.with_jsx(source_type.is_javascript()).with_unambiguous(true); 109 | } 110 | self.compile(source_text, source_type, source_path); 111 | if self.errors.is_empty() { 112 | Ok(mem::take(&mut self.printed)) 113 | } else { 114 | let errors = mem::take(&mut self.errors) 115 | .into_iter() 116 | .map(|error| error.with_source_code(source_text.to_string())) 117 | .map(|error| Diagnostic { 118 | case: "Error", 119 | path: source_path.to_path_buf(), 120 | message: format!("{error:?}"), 121 | }) 122 | .collect(); 123 | Err(errors) 124 | } 125 | } 126 | 127 | pub fn dce(source_text: &str, source_type: SourceType) -> String { 128 | let allocator = Allocator::default(); 129 | let mut ret = Parser::new(&allocator, source_text, source_type).parse(); 130 | let program = &mut ret.program; 131 | Compressor::new(&allocator).dead_code_elimination(program, CompressOptions::default()); 132 | Codegen::new().build(program).code 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | permissions: {} 4 | 5 | on: 6 | schedule: 7 | - cron: "0 */3 * * *" # Every 3 hours. 8 | pull_request: 9 | types: [opened, synchronize] 10 | paths-ignore: 11 | - '**/*.md' 12 | push: 13 | branches: 14 | - main 15 | paths-ignore: 16 | - '**/*.md' 17 | workflow_dispatch: 18 | inputs: 19 | issue-number: 20 | required: false 21 | type: string 22 | comment-id: 23 | required: false 24 | type: string 25 | ref: 26 | required: false 27 | type: string 28 | default: 'main' 29 | 30 | concurrency: 31 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} 32 | cancel-in-progress: ${{ github.ref_name != 'main' }} 33 | 34 | jobs: 35 | build: 36 | name: Build 37 | timeout-minutes: 30 38 | runs-on: ubuntu-latest 39 | steps: 40 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 41 | 42 | - name: Checkout oxc (${{ inputs.ref }}) 43 | uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 44 | with: 45 | repository: oxc-project/oxc 46 | ref: ${{ inputs.ref }} 47 | path: oxc 48 | 49 | - run: mv oxc ../oxc 50 | 51 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 52 | with: 53 | save-cache: ${{ github.ref_name == 'main' }} 54 | 55 | - run: cargo build --release 56 | env: 57 | RUSTFLAGS: "-C debug-assertions=true" 58 | 59 | - name: Upload Binary 60 | uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 61 | with: 62 | if-no-files-found: error 63 | name: monitor-oxc 64 | path: ./target/release/monitor-oxc 65 | 66 | test: 67 | name: Test 68 | needs: build 69 | timeout-minutes: 30 70 | runs-on: ubuntu-latest 71 | strategy: 72 | fail-fast: false 73 | matrix: 74 | include: 75 | - command: codegen 76 | - command: compressor 77 | - command: dce 78 | - command: transformer 79 | - command: mangler 80 | - command: whitespace 81 | - command: formatter 82 | - command: formatter_dcr 83 | steps: 84 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 85 | 86 | - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 87 | with: 88 | name: monitor-oxc 89 | 90 | - run: chmod +x ./monitor-oxc 91 | 92 | - uses: oxc-project/setup-node@141eb77546de6702f92d320926403fe3f9f6a6f2 # v1.0.5 93 | 94 | - run: ./monitor-oxc ${{ matrix.command }} 95 | env: 96 | RUST_BACKTRACE: "1" 97 | 98 | isolated_declarations: 99 | needs: build 100 | name: Test Isolated Declarations 101 | runs-on: ubuntu-latest 102 | steps: 103 | - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 104 | with: 105 | repository: vuejs/core 106 | ref: main 107 | 108 | - uses: oxc-project/setup-node@141eb77546de6702f92d320926403fe3f9f6a6f2 # v1.0.5 109 | 110 | - run: ./node_modules/.bin/tsc -p tsconfig.build.json --noCheck 111 | 112 | - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 113 | with: 114 | name: monitor-oxc 115 | 116 | - run: chmod +x ./monitor-oxc 117 | 118 | - run: ./monitor-oxc id . 119 | 120 | rolldown: 121 | name: Rolldown 122 | timeout-minutes: 15 123 | runs-on: ubuntu-latest 124 | steps: 125 | - uses: taiki-e/checkout-action@b13d20b7cda4e2f325ef19895128f7ff735c0b3d # v1.3.1 126 | - uses: oxc-project/setup-node@141eb77546de6702f92d320926403fe3f9f6a6f2 # v1.0.5 127 | - run: ./node_modules/.bin/rolldown --version 128 | - run: node --run rolldown 129 | 130 | test262: 131 | name: Test262 132 | timeout-minutes: 30 133 | runs-on: ubuntu-latest 134 | if: false # TODO: FIXME 135 | steps: 136 | - name: Checkout oxc (${{ inputs.ref }}) 137 | uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 138 | with: 139 | repository: oxc-project/oxc 140 | ref: ${{ inputs.ref }} 141 | 142 | - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 143 | with: 144 | show-progress: false 145 | repository: tc39/test262 146 | path: tasks/coverage/test262 147 | ref: 4b5d36ab6ef2f59d0a8902cd383762547a3a74c4 148 | 149 | - uses: oxc-project/setup-rust@ecabb7322a2ba5aeedb3612d2a40b86a85cee235 # v1.0.11 150 | with: 151 | save-cache: ${{ github.ref_name == 'main' }} 152 | cache-key: test262 153 | 154 | - uses: oxc-project/setup-node@141eb77546de6702f92d320926403fe3f9f6a6f2 # v1.0.5 155 | 156 | - run: cargo coverage runtime 157 | 158 | - run: git diff --exit-code 159 | 160 | comment: 161 | needs: [test, isolated_declarations, rolldown, test262] 162 | if: ${{ always() }} 163 | runs-on: ubuntu-latest 164 | name: Reply Comment 165 | permissions: 166 | pull-requests: write 167 | contents: write 168 | steps: 169 | - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 170 | id: script 171 | if: ${{ inputs.issue-number }} 172 | with: 173 | github-token: ${{ secrets.OXC_BOT_PAT }} 174 | result-encoding: string 175 | script: | 176 | const { 177 | data: { jobs }, 178 | } = await github.rest.actions.listJobsForWorkflowRun({ 179 | owner: context.repo.owner, 180 | repo: context.repo.repo, 181 | run_id: context.runId, 182 | per_page: 100, 183 | }); 184 | let result = jobs 185 | .filter((job) => job.name.startsWith("Test ")) 186 | .map((job) => { 187 | const suite = job.name.slice(5); 188 | return { suite, conclusion: job.conclusion, link: job.html_url }; 189 | }); 190 | const url = `${context.serverUrl}//${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; 191 | const urlLink = `[Open](${url})`; 192 | const conclusionEmoji = { 193 | success: ":white_check_mark:", 194 | failure: ":x:", 195 | cancelled: ":stop_button:", 196 | }; 197 | const body = ` 198 | ## [Monitor Oxc](${urlLink}) 199 | | suite | result | 200 | |-------|--------| 201 | ${result.map((r) => `| [${r.suite}](${r.link}) | ${conclusionEmoji[r.conclusion]} |`).join("\n")} 202 | `; 203 | return body; 204 | 205 | - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 206 | if: ${{ inputs.issue-number && inputs.comment-id }} 207 | with: 208 | token: ${{ secrets.OXC_BOT_PAT }} 209 | repository: oxc-project/oxc 210 | issue-number: ${{ inputs.issue-number }} 211 | comment-id: ${{ inputs.comment-id }} 212 | body: ${{ steps.script.outputs.result }} 213 | edit-mode: replace 214 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod codegen; 2 | pub mod compressor; 3 | pub mod dce; 4 | pub mod formatter; 5 | pub mod formatter_dcr; 6 | pub mod isolated_declarations; 7 | pub mod mangler; 8 | pub mod minifier; 9 | pub mod remove_whitespace; 10 | pub mod transformer; 11 | 12 | mod case; 13 | mod driver; 14 | 15 | use std::{fs, panic::catch_unwind, path::PathBuf, process::Command}; 16 | 17 | use console::Style; 18 | use similar::{ChangeTag, TextDiff}; 19 | use walkdir::WalkDir; 20 | 21 | use oxc::span::SourceType; 22 | 23 | use case::Case; 24 | use driver::Driver; 25 | 26 | const PATH_IGNORES: &[&str] = &[ 27 | "node_modules/node-domexception/.history", 28 | // intentional parse errors 29 | "node_modules/thread-stream/test/syntax-error.mjs", 30 | "node_modules/pino/test/fixtures/syntax-error-esm.mjs", 31 | "node_modules/charenc/README.js", 32 | // broken types 33 | "node_modules/immer/src/types/types-internal.ts", 34 | "node_modules/fbjs/flow/lib/dev.js", 35 | "node_modules/fast-copy/flow-typed/fast-copy.js", 36 | // template files 37 | ".vitepress", 38 | "node_modules/next/dist/esm/build/templates/app-page.js", 39 | "node_modules/karma/config.tpl.ts", 40 | "node_modules/karma/config.tpl.js", 41 | // with statement 42 | "node_modules/es-shim-unscopables/test/with.js", 43 | // gzipped file 44 | ".min.gzip.js", 45 | // bash file 46 | "node_modules/.bin/sha.js", 47 | // not strict mode 48 | "node_modules/esprima/test/test.js", 49 | "node_modules/memjs/test/client_test.js", 50 | "node_modules/lunr/test/pipeline_test.js", 51 | // broken syntax 52 | "node_modules/eslint-plugin-flowtype/dist/bin/checkDocs.js", 53 | "node_modules/limiter/test/tokenbucket-test.js", 54 | "node_modules/fast-json-patch/webpack.config.js", 55 | "node_modules/cardinal/test/fixtures/foo-with-errors.js", 56 | "node_modules/js-beautify/js/src/unpackers/p_a_c_k_e_r_unpacker.js", 57 | "node_modules/comment-parser/tests/e2e/examples.js", 58 | "node_modules/react-native/Libraries/Utilities/__mocks__/BackHandler.js", 59 | "node_modules/sass/sass.dart.js", 60 | "node_modules/rolldown/dist/cjs/cli.cjs", 61 | // Stage 3 decorator 62 | "node_modules/puppeteer-core/src/bidi/Browser.ts", 63 | // jsx breaks mangler 64 | "node_modules/istanbul-reports/lib/html-spa/src/summaryTableLine.js", 65 | ]; 66 | 67 | #[derive(Debug)] 68 | pub struct Diagnostic { 69 | pub case: &'static str, 70 | pub path: PathBuf, 71 | pub message: String, 72 | } 73 | 74 | pub struct Source { 75 | pub path: PathBuf, 76 | pub source_type: SourceType, 77 | pub source_text: String, 78 | } 79 | 80 | impl Source { 81 | pub fn is_js_only(&self) -> bool { 82 | self.source_type.is_javascript() 83 | && !self.path.extension().is_some_and(|ext| ext.to_str().unwrap().contains('x')) 84 | } 85 | } 86 | 87 | #[derive(Debug)] 88 | pub struct NodeModulesRunnerOptions { 89 | pub filter: Option, 90 | pub no_restore: bool, 91 | } 92 | 93 | pub struct NodeModulesRunner { 94 | pub options: NodeModulesRunnerOptions, 95 | pub files: Vec, 96 | pub cases: Vec>, 97 | } 98 | 99 | impl NodeModulesRunner { 100 | pub fn new(options: NodeModulesRunnerOptions) -> Self { 101 | let mut files = vec![]; 102 | for entry in WalkDir::new("node_modules/.pnpm") { 103 | let dir_entry = entry.unwrap(); 104 | let path = dir_entry.path(); 105 | if !path.is_file() { 106 | continue; 107 | } 108 | let Ok(source_type) = SourceType::from_path(path) else { 109 | continue; 110 | }; 111 | if PATH_IGNORES.iter().any(|p| path.to_string_lossy().replace('\\', "/").contains(p)) { 112 | continue; 113 | } 114 | if source_type.is_typescript_definition() { 115 | continue; 116 | } 117 | if let Some(filter) = options.filter.as_ref() { 118 | let path = path.to_string_lossy(); 119 | if path.contains(filter) { 120 | println!("Filtered {path}"); 121 | } else { 122 | continue; 123 | } 124 | } 125 | let source_text = 126 | fs::read_to_string(path).unwrap_or_else(|e| panic!("{e:?}\n{path:?}")); 127 | files.push(Source { path: path.to_path_buf(), source_type, source_text }); 128 | } 129 | println!("Collected {} files.", files.len()); 130 | Self { options, files, cases: vec![] } 131 | } 132 | 133 | pub fn add_case(&mut self, case: Box) { 134 | self.cases.push(case); 135 | } 136 | 137 | pub fn run_all(&self) -> Result<(), Vec> { 138 | for case in &self.cases { 139 | self.run_case(&**case)?; 140 | } 141 | Ok(()) 142 | } 143 | 144 | fn run_case(&self, case: &dyn Case) -> Result<(), Vec> { 145 | println!("Running {}.", case.name()); 146 | let results = self 147 | .files 148 | .iter() 149 | .map(|source| { 150 | catch_unwind(|| case.test(source)).map_err(|err| { 151 | vec![Diagnostic { 152 | case: case.name(), 153 | path: source.path.clone(), 154 | message: format!("{err:?}"), 155 | }] 156 | }) 157 | }) 158 | .collect::>(); 159 | println!("Ran {} times.", results.len()); 160 | let diagnostics = results 161 | .into_iter() 162 | .filter_map(|result| match result { 163 | Err(panic_diagnostics) => Some(panic_diagnostics), 164 | Ok(Err(test_diagnostics)) => Some(test_diagnostics), 165 | Ok(Ok(())) => None, 166 | }) 167 | .flatten() 168 | .collect::>(); 169 | if !diagnostics.is_empty() { 170 | return Err(diagnostics); 171 | } 172 | if !case.enable_runtime_test() { 173 | return Ok(()); 174 | } 175 | let result = Self::runtime_test(case.name()); 176 | if !self.options.no_restore { 177 | self.restore_files(case.name()); 178 | } 179 | result 180 | } 181 | 182 | fn restore_files(&self, name: &str) { 183 | println!("Restoring files for {name}"); 184 | for source in &self.files { 185 | fs::write(&source.path, &source.source_text).unwrap(); 186 | } 187 | } 188 | 189 | fn runtime_test(name: &str) -> Result<(), Vec> { 190 | println!("pnpm test"); 191 | match Command::new("pnpm").arg("test").status() { 192 | Ok(exit_status) => { 193 | if exit_status.code().is_some_and(|code| code == 0) { 194 | Ok(()) 195 | } else { 196 | Err(vec![Diagnostic { 197 | case: "pnpm test", 198 | path: PathBuf::new(), 199 | message: format!("pnpm failed for {name}"), 200 | }]) 201 | } 202 | } 203 | Err(err) => Err(vec![Diagnostic { 204 | case: "pnpm test", 205 | path: PathBuf::new(), 206 | message: err.to_string(), 207 | }]), 208 | } 209 | } 210 | 211 | #[must_use] 212 | pub fn get_diff(origin_string: &str, expected_string: &str, print_all: bool) -> String { 213 | let diff = TextDiff::from_lines(expected_string, origin_string); 214 | let mut output = String::new(); 215 | for change in diff.iter_all_changes() { 216 | let (sign, style) = match change.tag() { 217 | ChangeTag::Delete => ("-", Style::new().red()), 218 | ChangeTag::Insert => ("+", Style::new().green()), 219 | ChangeTag::Equal if print_all => (" ", Style::new()), 220 | ChangeTag::Equal => continue, 221 | }; 222 | output.push_str(&format!("{}{}", style.apply_to(sign).bold(), style.apply_to(change))); 223 | } 224 | output 225 | } 226 | } 227 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 | "lib": ["ESNext"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "ESNext", /* Specify what module code is generated. */ 29 | // "rootDir": "./", /* Specify the root folder within your source files. */ 30 | "moduleResolution": "NodeNext", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 39 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 40 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 41 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 42 | // "resolveJsonModule": true, /* Enable importing .json files. */ 43 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 44 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 45 | 46 | /* JavaScript Support */ 47 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 48 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 50 | 51 | /* Emit */ 52 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 53 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 55 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 56 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 57 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 58 | // "outDir": "./", /* Specify an output folder for all emitted files. */ 59 | // "removeComments": true, /* Disable emitting comments. */ 60 | // "noEmit": true, /* Disable emitting files from a compilation. */ 61 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 62 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 63 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 64 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 65 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 66 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 67 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 68 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 69 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 70 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 71 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 72 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 73 | 74 | /* Interop Constraints */ 75 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 76 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 77 | // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ 78 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 79 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 80 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 81 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 82 | 83 | /* Type Checking */ 84 | "strict": true, /* Enable all strict type-checking options. */ 85 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 86 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 87 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 88 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 89 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 90 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 91 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 92 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 93 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 94 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 95 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 96 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 97 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 98 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 99 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 100 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 101 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 102 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 103 | 104 | /* Completeness */ 105 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 106 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /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 = "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 = "base64" 25 | version = "0.22.1" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 28 | 29 | [[package]] 30 | name = "base64-simd" 31 | version = "0.8.0" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" 34 | dependencies = [ 35 | "outref", 36 | "vsimd", 37 | ] 38 | 39 | [[package]] 40 | name = "bincode" 41 | version = "2.0.1" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" 44 | dependencies = [ 45 | "bincode_derive", 46 | "serde", 47 | "unty", 48 | ] 49 | 50 | [[package]] 51 | name = "bincode_derive" 52 | version = "2.0.1" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" 55 | dependencies = [ 56 | "virtue", 57 | ] 58 | 59 | [[package]] 60 | name = "bitflags" 61 | version = "2.9.4" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 64 | 65 | [[package]] 66 | name = "block-buffer" 67 | version = "0.10.4" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 70 | dependencies = [ 71 | "generic-array", 72 | ] 73 | 74 | [[package]] 75 | name = "bumpalo" 76 | version = "3.19.0" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 79 | dependencies = [ 80 | "allocator-api2", 81 | ] 82 | 83 | [[package]] 84 | name = "bytes" 85 | version = "1.10.1" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 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.36" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" 103 | dependencies = [ 104 | "find-msvc-tools", 105 | "shlex", 106 | ] 107 | 108 | [[package]] 109 | name = "cfg-if" 110 | version = "1.0.3" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 113 | 114 | [[package]] 115 | name = "compact_str" 116 | version = "0.9.0" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "3fdb1325a1cece981e8a296ab8f0f9b63ae357bd0784a9faaf548cc7b480707a" 119 | dependencies = [ 120 | "castaway", 121 | "cfg-if", 122 | "itoa", 123 | "rustversion", 124 | "ryu", 125 | "static_assertions", 126 | ] 127 | 128 | [[package]] 129 | name = "console" 130 | version = "0.16.1" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4" 133 | dependencies = [ 134 | "encode_unicode", 135 | "libc", 136 | "once_cell", 137 | "unicode-width", 138 | "windows-sys 0.61.0", 139 | ] 140 | 141 | [[package]] 142 | name = "cow-utils" 143 | version = "0.1.3" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" 146 | 147 | [[package]] 148 | name = "cpufeatures" 149 | version = "0.2.17" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 152 | dependencies = [ 153 | "libc", 154 | ] 155 | 156 | [[package]] 157 | name = "crc32fast" 158 | version = "1.5.0" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 161 | dependencies = [ 162 | "cfg-if", 163 | ] 164 | 165 | [[package]] 166 | name = "crypto-common" 167 | version = "0.1.6" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 170 | dependencies = [ 171 | "generic-array", 172 | "typenum", 173 | ] 174 | 175 | [[package]] 176 | name = "deranged" 177 | version = "0.5.3" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" 180 | dependencies = [ 181 | "powerfmt", 182 | ] 183 | 184 | [[package]] 185 | name = "digest" 186 | version = "0.10.7" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 189 | dependencies = [ 190 | "block-buffer", 191 | "crypto-common", 192 | ] 193 | 194 | [[package]] 195 | name = "displaydoc" 196 | version = "0.2.5" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 199 | dependencies = [ 200 | "proc-macro2", 201 | "quote", 202 | "syn", 203 | ] 204 | 205 | [[package]] 206 | name = "dragonbox_ecma" 207 | version = "0.0.5" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "d742b56656e8b14d63e7ea9806597b1849ae25412584c8adf78c0f67bd985e66" 210 | 211 | [[package]] 212 | name = "dyn-clone" 213 | version = "1.0.20" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 216 | 217 | [[package]] 218 | name = "either" 219 | version = "1.15.0" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 222 | 223 | [[package]] 224 | name = "encode_unicode" 225 | version = "1.0.0" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" 228 | 229 | [[package]] 230 | name = "equivalent" 231 | version = "1.0.2" 232 | source = "registry+https://github.com/rust-lang/crates.io-index" 233 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 234 | 235 | [[package]] 236 | name = "fastrand" 237 | version = "2.3.0" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 240 | 241 | [[package]] 242 | name = "find-msvc-tools" 243 | version = "0.1.1" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" 246 | 247 | [[package]] 248 | name = "flate2" 249 | version = "1.1.2" 250 | source = "registry+https://github.com/rust-lang/crates.io-index" 251 | checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" 252 | dependencies = [ 253 | "crc32fast", 254 | "miniz_oxide", 255 | ] 256 | 257 | [[package]] 258 | name = "fnv" 259 | version = "1.0.7" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 262 | 263 | [[package]] 264 | name = "form_urlencoded" 265 | version = "1.2.2" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 268 | dependencies = [ 269 | "percent-encoding", 270 | ] 271 | 272 | [[package]] 273 | name = "generic-array" 274 | version = "0.14.7" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 277 | dependencies = [ 278 | "typenum", 279 | "version_check", 280 | ] 281 | 282 | [[package]] 283 | name = "getrandom" 284 | version = "0.2.16" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 287 | dependencies = [ 288 | "cfg-if", 289 | "libc", 290 | "wasi", 291 | ] 292 | 293 | [[package]] 294 | name = "hashbrown" 295 | version = "0.15.5" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 298 | 299 | [[package]] 300 | name = "hashbrown" 301 | version = "0.16.0" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 304 | dependencies = [ 305 | "allocator-api2", 306 | ] 307 | 308 | [[package]] 309 | name = "http" 310 | version = "1.3.1" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 313 | dependencies = [ 314 | "bytes", 315 | "fnv", 316 | "itoa", 317 | ] 318 | 319 | [[package]] 320 | name = "httparse" 321 | version = "1.10.1" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 324 | 325 | [[package]] 326 | name = "icu_collections" 327 | version = "2.0.0" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 330 | dependencies = [ 331 | "displaydoc", 332 | "potential_utf", 333 | "yoke", 334 | "zerofrom", 335 | "zerovec", 336 | ] 337 | 338 | [[package]] 339 | name = "icu_locale_core" 340 | version = "2.0.0" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 343 | dependencies = [ 344 | "displaydoc", 345 | "litemap", 346 | "tinystr", 347 | "writeable", 348 | "zerovec", 349 | ] 350 | 351 | [[package]] 352 | name = "icu_normalizer" 353 | version = "2.0.0" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 356 | dependencies = [ 357 | "displaydoc", 358 | "icu_collections", 359 | "icu_normalizer_data", 360 | "icu_properties", 361 | "icu_provider", 362 | "smallvec", 363 | "zerovec", 364 | ] 365 | 366 | [[package]] 367 | name = "icu_normalizer_data" 368 | version = "2.0.0" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 371 | 372 | [[package]] 373 | name = "icu_properties" 374 | version = "2.0.1" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 377 | dependencies = [ 378 | "displaydoc", 379 | "icu_collections", 380 | "icu_locale_core", 381 | "icu_properties_data", 382 | "icu_provider", 383 | "potential_utf", 384 | "zerotrie", 385 | "zerovec", 386 | ] 387 | 388 | [[package]] 389 | name = "icu_properties_data" 390 | version = "2.0.1" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 393 | 394 | [[package]] 395 | name = "icu_provider" 396 | version = "2.0.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 399 | dependencies = [ 400 | "displaydoc", 401 | "icu_locale_core", 402 | "stable_deref_trait", 403 | "tinystr", 404 | "writeable", 405 | "yoke", 406 | "zerofrom", 407 | "zerotrie", 408 | "zerovec", 409 | ] 410 | 411 | [[package]] 412 | name = "idna" 413 | version = "1.1.0" 414 | source = "registry+https://github.com/rust-lang/crates.io-index" 415 | checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 416 | dependencies = [ 417 | "idna_adapter", 418 | "smallvec", 419 | "utf8_iter", 420 | ] 421 | 422 | [[package]] 423 | name = "idna_adapter" 424 | version = "1.2.1" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 427 | dependencies = [ 428 | "icu_normalizer", 429 | "icu_properties", 430 | ] 431 | 432 | [[package]] 433 | name = "indexmap" 434 | version = "2.11.1" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" 437 | dependencies = [ 438 | "equivalent", 439 | "hashbrown 0.15.5", 440 | ] 441 | 442 | [[package]] 443 | name = "itertools" 444 | version = "0.14.0" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 447 | dependencies = [ 448 | "either", 449 | ] 450 | 451 | [[package]] 452 | name = "itoa" 453 | version = "1.0.15" 454 | source = "registry+https://github.com/rust-lang/crates.io-index" 455 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 456 | 457 | [[package]] 458 | name = "json-escape-simd" 459 | version = "3.0.1" 460 | source = "registry+https://github.com/rust-lang/crates.io-index" 461 | checksum = "a3c2a6c0b4b5637c41719973ef40c6a1cf564f9db6958350de6193fbee9c23f5" 462 | 463 | [[package]] 464 | name = "json-strip-comments" 465 | version = "3.0.1" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "c4135b29c84322dbc3327272084360785665452213a576a991b3ac2f63148e82" 468 | dependencies = [ 469 | "memchr", 470 | ] 471 | 472 | [[package]] 473 | name = "libc" 474 | version = "0.2.175" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 477 | 478 | [[package]] 479 | name = "litemap" 480 | version = "0.8.0" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 483 | 484 | [[package]] 485 | name = "log" 486 | version = "0.4.28" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 489 | 490 | [[package]] 491 | name = "memchr" 492 | version = "2.7.5" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 495 | 496 | [[package]] 497 | name = "miniz_oxide" 498 | version = "0.8.9" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 501 | dependencies = [ 502 | "adler2", 503 | ] 504 | 505 | [[package]] 506 | name = "monitor-oxc" 507 | version = "0.0.0" 508 | dependencies = [ 509 | "console", 510 | "oxc", 511 | "oxc_formatter", 512 | "pico-args", 513 | "project-root", 514 | "similar", 515 | "ureq", 516 | "url", 517 | "walkdir", 518 | ] 519 | 520 | [[package]] 521 | name = "nom" 522 | version = "8.0.0" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" 525 | dependencies = [ 526 | "memchr", 527 | ] 528 | 529 | [[package]] 530 | name = "nonmax" 531 | version = "0.5.5" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 534 | 535 | [[package]] 536 | name = "num-bigint" 537 | version = "0.4.6" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 540 | dependencies = [ 541 | "num-integer", 542 | "num-traits", 543 | ] 544 | 545 | [[package]] 546 | name = "num-conv" 547 | version = "0.1.0" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 550 | 551 | [[package]] 552 | name = "num-integer" 553 | version = "0.1.46" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 556 | dependencies = [ 557 | "num-traits", 558 | ] 559 | 560 | [[package]] 561 | name = "num-traits" 562 | version = "0.2.19" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 565 | dependencies = [ 566 | "autocfg", 567 | ] 568 | 569 | [[package]] 570 | name = "once_cell" 571 | version = "1.21.3" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 574 | 575 | [[package]] 576 | name = "outref" 577 | version = "0.5.2" 578 | source = "registry+https://github.com/rust-lang/crates.io-index" 579 | checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" 580 | 581 | [[package]] 582 | name = "owo-colors" 583 | version = "4.2.2" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e" 586 | 587 | [[package]] 588 | name = "oxc" 589 | version = "0.95.0" 590 | dependencies = [ 591 | "oxc_allocator", 592 | "oxc_ast", 593 | "oxc_ast_visit", 594 | "oxc_codegen", 595 | "oxc_diagnostics", 596 | "oxc_isolated_declarations", 597 | "oxc_mangler", 598 | "oxc_minifier", 599 | "oxc_parser", 600 | "oxc_regular_expression", 601 | "oxc_semantic", 602 | "oxc_span", 603 | "oxc_syntax", 604 | "oxc_transformer", 605 | "oxc_transformer_plugins", 606 | ] 607 | 608 | [[package]] 609 | name = "oxc-browserslist" 610 | version = "2.0.16" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | checksum = "bd843fdc95833f2faf4251b701a812d488ef35958144af91b9ff540d9fe8ceaa" 613 | dependencies = [ 614 | "bincode", 615 | "flate2", 616 | "nom", 617 | "rustc-hash", 618 | "serde", 619 | "serde_json", 620 | "thiserror", 621 | "time", 622 | ] 623 | 624 | [[package]] 625 | name = "oxc-miette" 626 | version = "2.5.1" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | checksum = "5c42cefdcbebec6b0b72229ac0e02261a6770cb7ba39ccc5475a856164066db1" 629 | dependencies = [ 630 | "cfg-if", 631 | "owo-colors", 632 | "oxc-miette-derive", 633 | "textwrap", 634 | "thiserror", 635 | "unicode-segmentation", 636 | "unicode-width", 637 | ] 638 | 639 | [[package]] 640 | name = "oxc-miette-derive" 641 | version = "2.5.1" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "05bbaa5b6b98826bb62b164406f703bee72c5287af9986f9c863fa8ea992b476" 644 | dependencies = [ 645 | "proc-macro2", 646 | "quote", 647 | "syn", 648 | ] 649 | 650 | [[package]] 651 | name = "oxc-schemars" 652 | version = "0.8.25" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "7d8b748122c8ec59a5f5f9cfff48c1e2f0c7a142a52f8bd24b40b10eb3e3bcfe" 655 | dependencies = [ 656 | "dyn-clone", 657 | "oxc_schemars_derive", 658 | "serde", 659 | "serde_json", 660 | ] 661 | 662 | [[package]] 663 | name = "oxc_allocator" 664 | version = "0.95.0" 665 | dependencies = [ 666 | "allocator-api2", 667 | "bumpalo", 668 | "hashbrown 0.16.0", 669 | "oxc_data_structures", 670 | "rustc-hash", 671 | ] 672 | 673 | [[package]] 674 | name = "oxc_ast" 675 | version = "0.95.0" 676 | dependencies = [ 677 | "bitflags", 678 | "oxc_allocator", 679 | "oxc_ast_macros", 680 | "oxc_data_structures", 681 | "oxc_diagnostics", 682 | "oxc_estree", 683 | "oxc_regular_expression", 684 | "oxc_span", 685 | "oxc_syntax", 686 | ] 687 | 688 | [[package]] 689 | name = "oxc_ast_macros" 690 | version = "0.95.0" 691 | dependencies = [ 692 | "phf", 693 | "proc-macro2", 694 | "quote", 695 | "syn", 696 | ] 697 | 698 | [[package]] 699 | name = "oxc_ast_visit" 700 | version = "0.95.0" 701 | dependencies = [ 702 | "oxc_allocator", 703 | "oxc_ast", 704 | "oxc_span", 705 | "oxc_syntax", 706 | ] 707 | 708 | [[package]] 709 | name = "oxc_codegen" 710 | version = "0.95.0" 711 | dependencies = [ 712 | "bitflags", 713 | "cow-utils", 714 | "dragonbox_ecma", 715 | "itoa", 716 | "oxc_allocator", 717 | "oxc_ast", 718 | "oxc_data_structures", 719 | "oxc_index", 720 | "oxc_semantic", 721 | "oxc_sourcemap", 722 | "oxc_span", 723 | "oxc_syntax", 724 | "rustc-hash", 725 | ] 726 | 727 | [[package]] 728 | name = "oxc_compat" 729 | version = "0.95.0" 730 | dependencies = [ 731 | "cow-utils", 732 | "oxc-browserslist", 733 | "oxc_syntax", 734 | "rustc-hash", 735 | "serde", 736 | ] 737 | 738 | [[package]] 739 | name = "oxc_data_structures" 740 | version = "0.95.0" 741 | dependencies = [ 742 | "ropey", 743 | ] 744 | 745 | [[package]] 746 | name = "oxc_diagnostics" 747 | version = "0.95.0" 748 | dependencies = [ 749 | "cow-utils", 750 | "oxc-miette", 751 | "percent-encoding", 752 | ] 753 | 754 | [[package]] 755 | name = "oxc_ecmascript" 756 | version = "0.95.0" 757 | dependencies = [ 758 | "cow-utils", 759 | "num-bigint", 760 | "num-traits", 761 | "oxc_allocator", 762 | "oxc_ast", 763 | "oxc_span", 764 | "oxc_syntax", 765 | ] 766 | 767 | [[package]] 768 | name = "oxc_estree" 769 | version = "0.95.0" 770 | 771 | [[package]] 772 | name = "oxc_formatter" 773 | version = "0.9.0" 774 | dependencies = [ 775 | "cow-utils", 776 | "json-strip-comments", 777 | "oxc-schemars", 778 | "oxc_allocator", 779 | "oxc_ast", 780 | "oxc_data_structures", 781 | "oxc_parser", 782 | "oxc_semantic", 783 | "oxc_span", 784 | "oxc_syntax", 785 | "rustc-hash", 786 | "serde", 787 | "serde_json", 788 | "unicode-width", 789 | ] 790 | 791 | [[package]] 792 | name = "oxc_index" 793 | version = "4.1.0" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "eb3e6120999627ec9703025eab7c9f410ebb7e95557632a8902ca48210416c2b" 796 | dependencies = [ 797 | "nonmax", 798 | "serde", 799 | ] 800 | 801 | [[package]] 802 | name = "oxc_isolated_declarations" 803 | version = "0.95.0" 804 | dependencies = [ 805 | "bitflags", 806 | "oxc_allocator", 807 | "oxc_ast", 808 | "oxc_ast_visit", 809 | "oxc_diagnostics", 810 | "oxc_ecmascript", 811 | "oxc_span", 812 | "oxc_syntax", 813 | "rustc-hash", 814 | ] 815 | 816 | [[package]] 817 | name = "oxc_mangler" 818 | version = "0.95.0" 819 | dependencies = [ 820 | "itertools", 821 | "oxc_allocator", 822 | "oxc_ast", 823 | "oxc_data_structures", 824 | "oxc_index", 825 | "oxc_semantic", 826 | "oxc_span", 827 | "oxc_syntax", 828 | "rustc-hash", 829 | ] 830 | 831 | [[package]] 832 | name = "oxc_minifier" 833 | version = "0.95.0" 834 | dependencies = [ 835 | "cow-utils", 836 | "oxc_allocator", 837 | "oxc_ast", 838 | "oxc_ast_visit", 839 | "oxc_codegen", 840 | "oxc_compat", 841 | "oxc_data_structures", 842 | "oxc_ecmascript", 843 | "oxc_index", 844 | "oxc_mangler", 845 | "oxc_parser", 846 | "oxc_regular_expression", 847 | "oxc_semantic", 848 | "oxc_span", 849 | "oxc_syntax", 850 | "oxc_traverse", 851 | "rustc-hash", 852 | ] 853 | 854 | [[package]] 855 | name = "oxc_parser" 856 | version = "0.95.0" 857 | dependencies = [ 858 | "bitflags", 859 | "cow-utils", 860 | "memchr", 861 | "num-bigint", 862 | "num-traits", 863 | "oxc_allocator", 864 | "oxc_ast", 865 | "oxc_data_structures", 866 | "oxc_diagnostics", 867 | "oxc_ecmascript", 868 | "oxc_regular_expression", 869 | "oxc_span", 870 | "oxc_syntax", 871 | "rustc-hash", 872 | "seq-macro", 873 | ] 874 | 875 | [[package]] 876 | name = "oxc_regular_expression" 877 | version = "0.95.0" 878 | dependencies = [ 879 | "bitflags", 880 | "oxc_allocator", 881 | "oxc_ast_macros", 882 | "oxc_diagnostics", 883 | "oxc_span", 884 | "phf", 885 | "rustc-hash", 886 | "unicode-id-start", 887 | ] 888 | 889 | [[package]] 890 | name = "oxc_schemars_derive" 891 | version = "0.8.23" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "1912e59b2446292fdbaf4f20d4a7b0fdbd2017f948ba6e3f8e8bfe3669bca35f" 894 | dependencies = [ 895 | "proc-macro2", 896 | "quote", 897 | "serde_derive_internals", 898 | "syn", 899 | ] 900 | 901 | [[package]] 902 | name = "oxc_semantic" 903 | version = "0.95.0" 904 | dependencies = [ 905 | "itertools", 906 | "oxc_allocator", 907 | "oxc_ast", 908 | "oxc_ast_visit", 909 | "oxc_data_structures", 910 | "oxc_diagnostics", 911 | "oxc_ecmascript", 912 | "oxc_index", 913 | "oxc_span", 914 | "oxc_syntax", 915 | "phf", 916 | "rustc-hash", 917 | "self_cell", 918 | ] 919 | 920 | [[package]] 921 | name = "oxc_sourcemap" 922 | version = "6.0.0" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "0bd56ed0ec53da593c43d9ea65ced157fe319e454888eb65b239a275e3696499" 925 | dependencies = [ 926 | "base64-simd", 927 | "json-escape-simd", 928 | "rustc-hash", 929 | "serde", 930 | "serde_json", 931 | ] 932 | 933 | [[package]] 934 | name = "oxc_span" 935 | version = "0.95.0" 936 | dependencies = [ 937 | "compact_str", 938 | "oxc-miette", 939 | "oxc_allocator", 940 | "oxc_ast_macros", 941 | "oxc_estree", 942 | ] 943 | 944 | [[package]] 945 | name = "oxc_syntax" 946 | version = "0.95.0" 947 | dependencies = [ 948 | "bitflags", 949 | "cow-utils", 950 | "dragonbox_ecma", 951 | "nonmax", 952 | "oxc_allocator", 953 | "oxc_ast_macros", 954 | "oxc_data_structures", 955 | "oxc_estree", 956 | "oxc_index", 957 | "oxc_span", 958 | "phf", 959 | "unicode-id-start", 960 | ] 961 | 962 | [[package]] 963 | name = "oxc_transformer" 964 | version = "0.95.0" 965 | dependencies = [ 966 | "base64", 967 | "compact_str", 968 | "indexmap", 969 | "itoa", 970 | "memchr", 971 | "oxc_allocator", 972 | "oxc_ast", 973 | "oxc_ast_visit", 974 | "oxc_compat", 975 | "oxc_data_structures", 976 | "oxc_diagnostics", 977 | "oxc_ecmascript", 978 | "oxc_parser", 979 | "oxc_regular_expression", 980 | "oxc_semantic", 981 | "oxc_span", 982 | "oxc_syntax", 983 | "oxc_traverse", 984 | "rustc-hash", 985 | "serde", 986 | "serde_json", 987 | "sha1", 988 | ] 989 | 990 | [[package]] 991 | name = "oxc_transformer_plugins" 992 | version = "0.95.0" 993 | dependencies = [ 994 | "cow-utils", 995 | "itoa", 996 | "oxc_allocator", 997 | "oxc_ast", 998 | "oxc_ast_visit", 999 | "oxc_diagnostics", 1000 | "oxc_ecmascript", 1001 | "oxc_parser", 1002 | "oxc_semantic", 1003 | "oxc_span", 1004 | "oxc_syntax", 1005 | "oxc_transformer", 1006 | "oxc_traverse", 1007 | "rustc-hash", 1008 | ] 1009 | 1010 | [[package]] 1011 | name = "oxc_traverse" 1012 | version = "0.95.0" 1013 | dependencies = [ 1014 | "itoa", 1015 | "oxc_allocator", 1016 | "oxc_ast", 1017 | "oxc_ast_visit", 1018 | "oxc_data_structures", 1019 | "oxc_ecmascript", 1020 | "oxc_semantic", 1021 | "oxc_span", 1022 | "oxc_syntax", 1023 | "rustc-hash", 1024 | ] 1025 | 1026 | [[package]] 1027 | name = "percent-encoding" 1028 | version = "2.3.2" 1029 | source = "registry+https://github.com/rust-lang/crates.io-index" 1030 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 1031 | 1032 | [[package]] 1033 | name = "phf" 1034 | version = "0.13.1" 1035 | source = "registry+https://github.com/rust-lang/crates.io-index" 1036 | checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" 1037 | dependencies = [ 1038 | "phf_macros", 1039 | "phf_shared", 1040 | "serde", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "phf_generator" 1045 | version = "0.13.1" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" 1048 | dependencies = [ 1049 | "fastrand", 1050 | "phf_shared", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "phf_macros" 1055 | version = "0.13.1" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" 1058 | dependencies = [ 1059 | "phf_generator", 1060 | "phf_shared", 1061 | "proc-macro2", 1062 | "quote", 1063 | "syn", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "phf_shared" 1068 | version = "0.13.1" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" 1071 | dependencies = [ 1072 | "siphasher", 1073 | ] 1074 | 1075 | [[package]] 1076 | name = "pico-args" 1077 | version = "0.5.0" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" 1080 | 1081 | [[package]] 1082 | name = "potential_utf" 1083 | version = "0.1.3" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 1086 | dependencies = [ 1087 | "zerovec", 1088 | ] 1089 | 1090 | [[package]] 1091 | name = "powerfmt" 1092 | version = "0.2.0" 1093 | source = "registry+https://github.com/rust-lang/crates.io-index" 1094 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1095 | 1096 | [[package]] 1097 | name = "proc-macro2" 1098 | version = "1.0.101" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 1101 | dependencies = [ 1102 | "unicode-ident", 1103 | ] 1104 | 1105 | [[package]] 1106 | name = "project-root" 1107 | version = "0.2.2" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "8bccbff07d5ed689c4087d20d7307a52ab6141edeedf487c3876a55b86cf63df" 1110 | 1111 | [[package]] 1112 | name = "quote" 1113 | version = "1.0.40" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1116 | dependencies = [ 1117 | "proc-macro2", 1118 | ] 1119 | 1120 | [[package]] 1121 | name = "ring" 1122 | version = "0.17.14" 1123 | source = "registry+https://github.com/rust-lang/crates.io-index" 1124 | checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 1125 | dependencies = [ 1126 | "cc", 1127 | "cfg-if", 1128 | "getrandom", 1129 | "libc", 1130 | "untrusted", 1131 | "windows-sys 0.52.0", 1132 | ] 1133 | 1134 | [[package]] 1135 | name = "ropey" 1136 | version = "1.6.1" 1137 | source = "registry+https://github.com/rust-lang/crates.io-index" 1138 | checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5" 1139 | dependencies = [ 1140 | "smallvec", 1141 | "str_indices", 1142 | ] 1143 | 1144 | [[package]] 1145 | name = "rustc-hash" 1146 | version = "2.1.1" 1147 | source = "registry+https://github.com/rust-lang/crates.io-index" 1148 | checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1149 | 1150 | [[package]] 1151 | name = "rustls" 1152 | version = "0.23.31" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" 1155 | dependencies = [ 1156 | "log", 1157 | "once_cell", 1158 | "ring", 1159 | "rustls-pki-types", 1160 | "rustls-webpki", 1161 | "subtle", 1162 | "zeroize", 1163 | ] 1164 | 1165 | [[package]] 1166 | name = "rustls-pemfile" 1167 | version = "2.2.0" 1168 | source = "registry+https://github.com/rust-lang/crates.io-index" 1169 | checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" 1170 | dependencies = [ 1171 | "rustls-pki-types", 1172 | ] 1173 | 1174 | [[package]] 1175 | name = "rustls-pki-types" 1176 | version = "1.12.0" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 1179 | dependencies = [ 1180 | "zeroize", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "rustls-webpki" 1185 | version = "0.103.5" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "b5a37813727b78798e53c2bec3f5e8fe12a6d6f8389bf9ca7802add4c9905ad8" 1188 | dependencies = [ 1189 | "ring", 1190 | "rustls-pki-types", 1191 | "untrusted", 1192 | ] 1193 | 1194 | [[package]] 1195 | name = "rustversion" 1196 | version = "1.0.22" 1197 | source = "registry+https://github.com/rust-lang/crates.io-index" 1198 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1199 | 1200 | [[package]] 1201 | name = "ryu" 1202 | version = "1.0.20" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1205 | 1206 | [[package]] 1207 | name = "same-file" 1208 | version = "1.0.6" 1209 | source = "registry+https://github.com/rust-lang/crates.io-index" 1210 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1211 | dependencies = [ 1212 | "winapi-util", 1213 | ] 1214 | 1215 | [[package]] 1216 | name = "self_cell" 1217 | version = "1.2.0" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" 1220 | 1221 | [[package]] 1222 | name = "seq-macro" 1223 | version = "0.3.6" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" 1226 | 1227 | [[package]] 1228 | name = "serde" 1229 | version = "1.0.219" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1232 | dependencies = [ 1233 | "serde_derive", 1234 | ] 1235 | 1236 | [[package]] 1237 | name = "serde_derive" 1238 | version = "1.0.219" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1241 | dependencies = [ 1242 | "proc-macro2", 1243 | "quote", 1244 | "syn", 1245 | ] 1246 | 1247 | [[package]] 1248 | name = "serde_derive_internals" 1249 | version = "0.29.1" 1250 | source = "registry+https://github.com/rust-lang/crates.io-index" 1251 | checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" 1252 | dependencies = [ 1253 | "proc-macro2", 1254 | "quote", 1255 | "syn", 1256 | ] 1257 | 1258 | [[package]] 1259 | name = "serde_json" 1260 | version = "1.0.143" 1261 | source = "registry+https://github.com/rust-lang/crates.io-index" 1262 | checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" 1263 | dependencies = [ 1264 | "itoa", 1265 | "memchr", 1266 | "ryu", 1267 | "serde", 1268 | ] 1269 | 1270 | [[package]] 1271 | name = "sha1" 1272 | version = "0.10.6" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1275 | dependencies = [ 1276 | "cfg-if", 1277 | "cpufeatures", 1278 | "digest", 1279 | ] 1280 | 1281 | [[package]] 1282 | name = "shlex" 1283 | version = "1.3.0" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1286 | 1287 | [[package]] 1288 | name = "similar" 1289 | version = "2.7.0" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" 1292 | 1293 | [[package]] 1294 | name = "siphasher" 1295 | version = "1.0.1" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1298 | 1299 | [[package]] 1300 | name = "smallvec" 1301 | version = "1.15.1" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1304 | 1305 | [[package]] 1306 | name = "smawk" 1307 | version = "0.3.2" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 1310 | 1311 | [[package]] 1312 | name = "stable_deref_trait" 1313 | version = "1.2.0" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1316 | 1317 | [[package]] 1318 | name = "static_assertions" 1319 | version = "1.1.0" 1320 | source = "registry+https://github.com/rust-lang/crates.io-index" 1321 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1322 | 1323 | [[package]] 1324 | name = "str_indices" 1325 | version = "0.4.4" 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" 1327 | checksum = "d08889ec5408683408db66ad89e0e1f93dff55c73a4ccc71c427d5b277ee47e6" 1328 | 1329 | [[package]] 1330 | name = "subtle" 1331 | version = "2.6.1" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1334 | 1335 | [[package]] 1336 | name = "syn" 1337 | version = "2.0.106" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 1340 | dependencies = [ 1341 | "proc-macro2", 1342 | "quote", 1343 | "unicode-ident", 1344 | ] 1345 | 1346 | [[package]] 1347 | name = "synstructure" 1348 | version = "0.13.2" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1351 | dependencies = [ 1352 | "proc-macro2", 1353 | "quote", 1354 | "syn", 1355 | ] 1356 | 1357 | [[package]] 1358 | name = "textwrap" 1359 | version = "0.16.2" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 1362 | dependencies = [ 1363 | "smawk", 1364 | "unicode-linebreak", 1365 | "unicode-width", 1366 | ] 1367 | 1368 | [[package]] 1369 | name = "thiserror" 1370 | version = "2.0.16" 1371 | source = "registry+https://github.com/rust-lang/crates.io-index" 1372 | checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" 1373 | dependencies = [ 1374 | "thiserror-impl", 1375 | ] 1376 | 1377 | [[package]] 1378 | name = "thiserror-impl" 1379 | version = "2.0.16" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" 1382 | dependencies = [ 1383 | "proc-macro2", 1384 | "quote", 1385 | "syn", 1386 | ] 1387 | 1388 | [[package]] 1389 | name = "time" 1390 | version = "0.3.43" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" 1393 | dependencies = [ 1394 | "deranged", 1395 | "num-conv", 1396 | "powerfmt", 1397 | "serde", 1398 | "time-core", 1399 | ] 1400 | 1401 | [[package]] 1402 | name = "time-core" 1403 | version = "0.1.6" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 1406 | 1407 | [[package]] 1408 | name = "tinystr" 1409 | version = "0.8.1" 1410 | source = "registry+https://github.com/rust-lang/crates.io-index" 1411 | checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 1412 | dependencies = [ 1413 | "displaydoc", 1414 | "zerovec", 1415 | ] 1416 | 1417 | [[package]] 1418 | name = "typenum" 1419 | version = "1.18.0" 1420 | source = "registry+https://github.com/rust-lang/crates.io-index" 1421 | checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 1422 | 1423 | [[package]] 1424 | name = "unicode-id-start" 1425 | version = "1.4.0" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" 1428 | 1429 | [[package]] 1430 | name = "unicode-ident" 1431 | version = "1.0.19" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" 1434 | 1435 | [[package]] 1436 | name = "unicode-linebreak" 1437 | version = "0.1.5" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 1440 | 1441 | [[package]] 1442 | name = "unicode-segmentation" 1443 | version = "1.12.0" 1444 | source = "registry+https://github.com/rust-lang/crates.io-index" 1445 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1446 | 1447 | [[package]] 1448 | name = "unicode-width" 1449 | version = "0.2.1" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" 1452 | 1453 | [[package]] 1454 | name = "untrusted" 1455 | version = "0.9.0" 1456 | source = "registry+https://github.com/rust-lang/crates.io-index" 1457 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1458 | 1459 | [[package]] 1460 | name = "unty" 1461 | version = "0.0.4" 1462 | source = "registry+https://github.com/rust-lang/crates.io-index" 1463 | checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" 1464 | 1465 | [[package]] 1466 | name = "ureq" 1467 | version = "3.1.2" 1468 | source = "registry+https://github.com/rust-lang/crates.io-index" 1469 | checksum = "99ba1025f18a4a3fc3e9b48c868e9beb4f24f4b4b1a325bada26bd4119f46537" 1470 | dependencies = [ 1471 | "base64", 1472 | "flate2", 1473 | "log", 1474 | "percent-encoding", 1475 | "rustls", 1476 | "rustls-pemfile", 1477 | "rustls-pki-types", 1478 | "ureq-proto", 1479 | "utf-8", 1480 | "webpki-roots", 1481 | ] 1482 | 1483 | [[package]] 1484 | name = "ureq-proto" 1485 | version = "0.5.2" 1486 | source = "registry+https://github.com/rust-lang/crates.io-index" 1487 | checksum = "60b4531c118335662134346048ddb0e54cc86bd7e81866757873055f0e38f5d2" 1488 | dependencies = [ 1489 | "base64", 1490 | "http", 1491 | "httparse", 1492 | "log", 1493 | ] 1494 | 1495 | [[package]] 1496 | name = "url" 1497 | version = "2.5.7" 1498 | source = "registry+https://github.com/rust-lang/crates.io-index" 1499 | checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 1500 | dependencies = [ 1501 | "form_urlencoded", 1502 | "idna", 1503 | "percent-encoding", 1504 | "serde", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "utf-8" 1509 | version = "0.7.6" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 1512 | 1513 | [[package]] 1514 | name = "utf8_iter" 1515 | version = "1.0.4" 1516 | source = "registry+https://github.com/rust-lang/crates.io-index" 1517 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1518 | 1519 | [[package]] 1520 | name = "version_check" 1521 | version = "0.9.5" 1522 | source = "registry+https://github.com/rust-lang/crates.io-index" 1523 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1524 | 1525 | [[package]] 1526 | name = "virtue" 1527 | version = "0.0.18" 1528 | source = "registry+https://github.com/rust-lang/crates.io-index" 1529 | checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" 1530 | 1531 | [[package]] 1532 | name = "vsimd" 1533 | version = "0.8.0" 1534 | source = "registry+https://github.com/rust-lang/crates.io-index" 1535 | checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" 1536 | 1537 | [[package]] 1538 | name = "walkdir" 1539 | version = "2.5.0" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1542 | dependencies = [ 1543 | "same-file", 1544 | "winapi-util", 1545 | ] 1546 | 1547 | [[package]] 1548 | name = "wasi" 1549 | version = "0.11.1+wasi-snapshot-preview1" 1550 | source = "registry+https://github.com/rust-lang/crates.io-index" 1551 | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1552 | 1553 | [[package]] 1554 | name = "webpki-roots" 1555 | version = "1.0.2" 1556 | source = "registry+https://github.com/rust-lang/crates.io-index" 1557 | checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" 1558 | dependencies = [ 1559 | "rustls-pki-types", 1560 | ] 1561 | 1562 | [[package]] 1563 | name = "winapi-util" 1564 | version = "0.1.11" 1565 | source = "registry+https://github.com/rust-lang/crates.io-index" 1566 | checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 1567 | dependencies = [ 1568 | "windows-sys 0.61.0", 1569 | ] 1570 | 1571 | [[package]] 1572 | name = "windows-link" 1573 | version = "0.2.0" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" 1576 | 1577 | [[package]] 1578 | name = "windows-sys" 1579 | version = "0.52.0" 1580 | source = "registry+https://github.com/rust-lang/crates.io-index" 1581 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1582 | dependencies = [ 1583 | "windows-targets", 1584 | ] 1585 | 1586 | [[package]] 1587 | name = "windows-sys" 1588 | version = "0.61.0" 1589 | source = "registry+https://github.com/rust-lang/crates.io-index" 1590 | checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" 1591 | dependencies = [ 1592 | "windows-link", 1593 | ] 1594 | 1595 | [[package]] 1596 | name = "windows-targets" 1597 | version = "0.52.6" 1598 | source = "registry+https://github.com/rust-lang/crates.io-index" 1599 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1600 | dependencies = [ 1601 | "windows_aarch64_gnullvm", 1602 | "windows_aarch64_msvc", 1603 | "windows_i686_gnu", 1604 | "windows_i686_gnullvm", 1605 | "windows_i686_msvc", 1606 | "windows_x86_64_gnu", 1607 | "windows_x86_64_gnullvm", 1608 | "windows_x86_64_msvc", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "windows_aarch64_gnullvm" 1613 | version = "0.52.6" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1616 | 1617 | [[package]] 1618 | name = "windows_aarch64_msvc" 1619 | version = "0.52.6" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1622 | 1623 | [[package]] 1624 | name = "windows_i686_gnu" 1625 | version = "0.52.6" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1628 | 1629 | [[package]] 1630 | name = "windows_i686_gnullvm" 1631 | version = "0.52.6" 1632 | source = "registry+https://github.com/rust-lang/crates.io-index" 1633 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1634 | 1635 | [[package]] 1636 | name = "windows_i686_msvc" 1637 | version = "0.52.6" 1638 | source = "registry+https://github.com/rust-lang/crates.io-index" 1639 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1640 | 1641 | [[package]] 1642 | name = "windows_x86_64_gnu" 1643 | version = "0.52.6" 1644 | source = "registry+https://github.com/rust-lang/crates.io-index" 1645 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1646 | 1647 | [[package]] 1648 | name = "windows_x86_64_gnullvm" 1649 | version = "0.52.6" 1650 | source = "registry+https://github.com/rust-lang/crates.io-index" 1651 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1652 | 1653 | [[package]] 1654 | name = "windows_x86_64_msvc" 1655 | version = "0.52.6" 1656 | source = "registry+https://github.com/rust-lang/crates.io-index" 1657 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1658 | 1659 | [[package]] 1660 | name = "writeable" 1661 | version = "0.6.1" 1662 | source = "registry+https://github.com/rust-lang/crates.io-index" 1663 | checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 1664 | 1665 | [[package]] 1666 | name = "yoke" 1667 | version = "0.8.0" 1668 | source = "registry+https://github.com/rust-lang/crates.io-index" 1669 | checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 1670 | dependencies = [ 1671 | "serde", 1672 | "stable_deref_trait", 1673 | "yoke-derive", 1674 | "zerofrom", 1675 | ] 1676 | 1677 | [[package]] 1678 | name = "yoke-derive" 1679 | version = "0.8.0" 1680 | source = "registry+https://github.com/rust-lang/crates.io-index" 1681 | checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 1682 | dependencies = [ 1683 | "proc-macro2", 1684 | "quote", 1685 | "syn", 1686 | "synstructure", 1687 | ] 1688 | 1689 | [[package]] 1690 | name = "zerofrom" 1691 | version = "0.1.6" 1692 | source = "registry+https://github.com/rust-lang/crates.io-index" 1693 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 1694 | dependencies = [ 1695 | "zerofrom-derive", 1696 | ] 1697 | 1698 | [[package]] 1699 | name = "zerofrom-derive" 1700 | version = "0.1.6" 1701 | source = "registry+https://github.com/rust-lang/crates.io-index" 1702 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 1703 | dependencies = [ 1704 | "proc-macro2", 1705 | "quote", 1706 | "syn", 1707 | "synstructure", 1708 | ] 1709 | 1710 | [[package]] 1711 | name = "zeroize" 1712 | version = "1.8.1" 1713 | source = "registry+https://github.com/rust-lang/crates.io-index" 1714 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 1715 | 1716 | [[package]] 1717 | name = "zerotrie" 1718 | version = "0.2.2" 1719 | source = "registry+https://github.com/rust-lang/crates.io-index" 1720 | checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 1721 | dependencies = [ 1722 | "displaydoc", 1723 | "yoke", 1724 | "zerofrom", 1725 | ] 1726 | 1727 | [[package]] 1728 | name = "zerovec" 1729 | version = "0.11.4" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 1732 | dependencies = [ 1733 | "yoke", 1734 | "zerofrom", 1735 | "zerovec-derive", 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "zerovec-derive" 1740 | version = "0.11.1" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 1743 | dependencies = [ 1744 | "proc-macro2", 1745 | "quote", 1746 | "syn", 1747 | ] 1748 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "monitor-oxc", 3 | "private": true, 4 | "packageManager": "pnpm@10.20.0", 5 | "volta": { 6 | "node": "22.12.0" 7 | }, 8 | "type": "module", 9 | "scripts": { 10 | "generate": "node generate.mjs && pnpm i", 11 | "test": "node --experimental-require-module src/static.test.mjs", 12 | "rolldown": "rm -rf dist && rolldown -c", 13 | "profile-rolldown": "rm -rf dist && xcrun xctrace record --template 'Time Profile' --output . --launch -- /Users/boshen/.volta/tools/image/node/22.12.0/bin/node /Users/boshen/github/rolldown/packages/rolldown/bin/cli.js -c" 14 | }, 15 | "dependencies": { 16 | "npm-high-impact": "1.11.0", 17 | "rolldown": "1.0.0-beta.46", 18 | "tsx": "latest" 19 | }, 20 | "devDependencies": { 21 | "@aashutoshrathi/word-wrap": "latest", 22 | "@actions/http-client": "latest", 23 | "@adobe/css-tools": "latest", 24 | "@alloc/quick-lru": "latest", 25 | "@ampproject/remapping": "latest", 26 | "@apideck/better-ajv-errors": "latest", 27 | "@apidevtools/json-schema-ref-parser": "latest", 28 | "@apollo/client": "latest", 29 | "@ardatan/relay-compiler": "latest", 30 | "@ardatan/sync-fetch": "latest", 31 | "@aws-crypto/crc32": "latest", 32 | "@aws-crypto/crc32c": "latest", 33 | "@aws-crypto/ie11-detection": "latest", 34 | "@aws-crypto/sha1-browser": "latest", 35 | "@aws-crypto/sha256-browser": "latest", 36 | "@aws-crypto/sha256-js": "latest", 37 | "@aws-crypto/supports-web-crypto": "latest", 38 | "@aws-crypto/util": "latest", 39 | "@azure/abort-controller": "latest", 40 | "@azure/core-auth": "latest", 41 | "@azure/core-client": "latest", 42 | "@azure/core-lro": "latest", 43 | "@azure/core-paging": "latest", 44 | "@azure/core-rest-pipeline": "latest", 45 | "@azure/core-tracing": "latest", 46 | "@azure/core-util": "latest", 47 | "@azure/identity": "latest", 48 | "@azure/logger": "latest", 49 | "@azure/msal-browser": "latest", 50 | "@azure/msal-common": "latest", 51 | "@azure/msal-node": "latest", 52 | "@babel/code-frame": "latest", 53 | "@babel/core": "latest", 54 | "@babel/eslint-parser": "latest", 55 | "@babel/generator": "latest", 56 | "@babel/helper-annotate-as-pure": "latest", 57 | "@babel/helper-builder-binary-assignment-operator-visitor": "latest", 58 | "@babel/helper-compilation-targets": "latest", 59 | "@babel/helper-create-class-features-plugin": "latest", 60 | "@babel/helper-create-regexp-features-plugin": "latest", 61 | "@babel/helper-define-polyfill-provider": "latest", 62 | "@babel/helper-environment-visitor": "latest", 63 | "@babel/helper-explode-assignable-expression": "latest", 64 | "@babel/helper-function-name": "latest", 65 | "@babel/helper-get-function-arity": "latest", 66 | "@babel/helper-hoist-variables": "latest", 67 | "@babel/helper-member-expression-to-functions": "latest", 68 | "@babel/helper-module-imports": "latest", 69 | "@babel/helper-module-transforms": "latest", 70 | "@babel/helper-optimise-call-expression": "latest", 71 | "@babel/helper-plugin-utils": "latest", 72 | "@babel/helper-remap-async-to-generator": "latest", 73 | "@babel/helper-replace-supers": "latest", 74 | "@babel/helper-simple-access": "latest", 75 | "@babel/helper-skip-transparent-expression-wrappers": "latest", 76 | "@babel/helper-split-export-declaration": "latest", 77 | "@babel/helper-string-parser": "latest", 78 | "@babel/helper-validator-identifier": "latest", 79 | "@babel/helper-validator-option": "latest", 80 | "@babel/helper-wrap-function": "latest", 81 | "@babel/helpers": "latest", 82 | "@babel/highlight": "latest", 83 | "@babel/parser": "latest", 84 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "latest", 85 | "@babel/plugin-bugfix-safari-class-field-initializer-scope": "latest", 86 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "latest", 87 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "latest", 88 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "latest", 89 | "@babel/plugin-proposal-async-generator-functions": "latest", 90 | "@babel/plugin-proposal-class-properties": "latest", 91 | "@babel/plugin-proposal-class-static-block": "latest", 92 | "@babel/plugin-proposal-decorators": "latest", 93 | "@babel/plugin-proposal-dynamic-import": "latest", 94 | "@babel/plugin-proposal-export-default-from": "latest", 95 | "@babel/plugin-proposal-export-namespace-from": "latest", 96 | "@babel/plugin-proposal-json-strings": "latest", 97 | "@babel/plugin-proposal-logical-assignment-operators": "latest", 98 | "@babel/plugin-proposal-nullish-coalescing-operator": "latest", 99 | "@babel/plugin-proposal-numeric-separator": "latest", 100 | "@babel/plugin-proposal-object-rest-spread": "latest", 101 | "@babel/plugin-proposal-optional-catch-binding": "latest", 102 | "@babel/plugin-proposal-optional-chaining": "latest", 103 | "@babel/plugin-proposal-private-methods": "latest", 104 | "@babel/plugin-proposal-private-property-in-object": "latest", 105 | "@babel/plugin-proposal-unicode-property-regex": "latest", 106 | "@babel/plugin-syntax-async-generators": "latest", 107 | "@babel/plugin-syntax-bigint": "latest", 108 | "@babel/plugin-syntax-class-properties": "latest", 109 | "@babel/plugin-syntax-class-static-block": "latest", 110 | "@babel/plugin-syntax-decorators": "latest", 111 | "@babel/plugin-syntax-dynamic-import": "latest", 112 | "@babel/plugin-syntax-export-default-from": "latest", 113 | "@babel/plugin-syntax-export-namespace-from": "latest", 114 | "@babel/plugin-syntax-flow": "latest", 115 | "@babel/plugin-syntax-import-assertions": "latest", 116 | "@babel/plugin-syntax-import-attributes": "latest", 117 | "@babel/plugin-syntax-import-meta": "latest", 118 | "@babel/plugin-syntax-json-strings": "latest", 119 | "@babel/plugin-syntax-jsx": "latest", 120 | "@babel/plugin-syntax-logical-assignment-operators": "latest", 121 | "@babel/plugin-syntax-nullish-coalescing-operator": "latest", 122 | "@babel/plugin-syntax-numeric-separator": "latest", 123 | "@babel/plugin-syntax-object-rest-spread": "latest", 124 | "@babel/plugin-syntax-optional-catch-binding": "latest", 125 | "@babel/plugin-syntax-optional-chaining": "latest", 126 | "@babel/plugin-syntax-private-property-in-object": "latest", 127 | "@babel/plugin-syntax-top-level-await": "latest", 128 | "@babel/plugin-syntax-typescript": "latest", 129 | "@babel/plugin-syntax-unicode-sets-regex": "latest", 130 | "@babel/plugin-transform-arrow-functions": "latest", 131 | "@babel/plugin-transform-async-generator-functions": "latest", 132 | "@babel/plugin-transform-async-to-generator": "latest", 133 | "@babel/plugin-transform-block-scoped-functions": "latest", 134 | "@babel/plugin-transform-block-scoping": "latest", 135 | "@babel/plugin-transform-class-properties": "latest", 136 | "@babel/plugin-transform-class-static-block": "latest", 137 | "@babel/plugin-transform-classes": "latest", 138 | "@babel/plugin-transform-computed-properties": "latest", 139 | "@babel/plugin-transform-destructuring": "latest", 140 | "@babel/plugin-transform-dotall-regex": "latest", 141 | "@babel/plugin-transform-duplicate-keys": "latest", 142 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "latest", 143 | "@babel/plugin-transform-dynamic-import": "latest", 144 | "@babel/plugin-transform-exponentiation-operator": "latest", 145 | "@babel/plugin-transform-export-namespace-from": "latest", 146 | "@babel/plugin-transform-flow-strip-types": "latest", 147 | "@babel/plugin-transform-for-of": "latest", 148 | "@babel/plugin-transform-function-name": "latest", 149 | "@babel/plugin-transform-json-strings": "latest", 150 | "@babel/plugin-transform-literals": "latest", 151 | "@babel/plugin-transform-logical-assignment-operators": "latest", 152 | "@babel/plugin-transform-member-expression-literals": "latest", 153 | "@babel/plugin-transform-modules-amd": "latest", 154 | "@babel/plugin-transform-modules-commonjs": "latest", 155 | "@babel/plugin-transform-modules-systemjs": "latest", 156 | "@babel/plugin-transform-modules-umd": "latest", 157 | "@babel/plugin-transform-named-capturing-groups-regex": "latest", 158 | "@babel/plugin-transform-new-target": "latest", 159 | "@babel/plugin-transform-nullish-coalescing-operator": "latest", 160 | "@babel/plugin-transform-numeric-separator": "latest", 161 | "@babel/plugin-transform-object-rest-spread": "latest", 162 | "@babel/plugin-transform-object-super": "latest", 163 | "@babel/plugin-transform-optional-catch-binding": "latest", 164 | "@babel/plugin-transform-optional-chaining": "latest", 165 | "@babel/plugin-transform-parameters": "latest", 166 | "@babel/plugin-transform-private-methods": "latest", 167 | "@babel/plugin-transform-private-property-in-object": "latest", 168 | "@babel/plugin-transform-property-literals": "latest", 169 | "@babel/plugin-transform-react-constant-elements": "latest", 170 | "@babel/plugin-transform-react-display-name": "latest", 171 | "@babel/plugin-transform-react-jsx": "latest", 172 | "@babel/plugin-transform-react-jsx-development": "latest", 173 | "@babel/plugin-transform-react-jsx-self": "latest", 174 | "@babel/plugin-transform-react-jsx-source": "latest", 175 | "@babel/plugin-transform-react-pure-annotations": "latest", 176 | "@babel/plugin-transform-regenerator": "latest", 177 | "@babel/plugin-transform-regexp-modifiers": "latest", 178 | "@babel/plugin-transform-reserved-words": "latest", 179 | "@babel/plugin-transform-runtime": "latest", 180 | "@babel/plugin-transform-shorthand-properties": "latest", 181 | "@babel/plugin-transform-spread": "latest", 182 | "@babel/plugin-transform-sticky-regex": "latest", 183 | "@babel/plugin-transform-template-literals": "latest", 184 | "@babel/plugin-transform-typeof-symbol": "latest", 185 | "@babel/plugin-transform-typescript": "latest", 186 | "@babel/plugin-transform-unicode-escapes": "latest", 187 | "@babel/plugin-transform-unicode-property-regex": "latest", 188 | "@babel/plugin-transform-unicode-regex": "latest", 189 | "@babel/plugin-transform-unicode-sets-regex": "latest", 190 | "@babel/preset-env": "latest", 191 | "@babel/preset-flow": "latest", 192 | "@babel/preset-modules": "latest", 193 | "@babel/preset-react": "latest", 194 | "@babel/preset-typescript": "latest", 195 | "@babel/register": "latest", 196 | "@babel/regjsgen": "latest", 197 | "@babel/template": "latest", 198 | "@babel/traverse": "latest", 199 | "@babel/types": "latest", 200 | "@backstage-community/plugin-tech-insights-backend": "latest", 201 | "@base2/pretty-print-object": "latest", 202 | "@bcoe/v8-coverage": "latest", 203 | "@changesets/types": "latest", 204 | "@cnakazawa/watch": "latest", 205 | "@colors/colors": "latest", 206 | "@commitlint/cli": "latest", 207 | "@commitlint/config-conventional": "latest", 208 | "@commitlint/config-validator": "latest", 209 | "@commitlint/ensure": "latest", 210 | "@commitlint/execute-rule": "latest", 211 | "@commitlint/format": "latest", 212 | "@commitlint/is-ignored": "latest", 213 | "@commitlint/lint": "latest", 214 | "@commitlint/load": "latest", 215 | "@commitlint/message": "latest", 216 | "@commitlint/parse": "latest", 217 | "@commitlint/read": "latest", 218 | "@commitlint/resolve-extends": "latest", 219 | "@commitlint/rules": "latest", 220 | "@commitlint/to-lines": "latest", 221 | "@commitlint/top-level": "latest", 222 | "@commitlint/types": "latest", 223 | "@cspotcode/source-map-support": "latest", 224 | "@csstools/css-parser-algorithms": "latest", 225 | "@csstools/css-tokenizer": "latest", 226 | "@csstools/media-query-list-parser": "latest", 227 | "@csstools/postcss-cascade-layers": "latest", 228 | "@csstools/postcss-color-function": "latest", 229 | "@csstools/postcss-font-format-keywords": "latest", 230 | "@csstools/postcss-hwb-function": "latest", 231 | "@csstools/postcss-ic-unit": "latest", 232 | "@csstools/postcss-is-pseudo-class": "latest", 233 | "@csstools/postcss-nested-calc": "latest", 234 | "@csstools/postcss-normalize-display-values": "latest", 235 | "@csstools/postcss-oklab-function": "latest", 236 | "@csstools/postcss-progressive-custom-properties": "latest", 237 | "@csstools/postcss-stepped-value-functions": "latest", 238 | "@csstools/postcss-text-decoration-shorthand": "latest", 239 | "@csstools/postcss-trigonometric-functions": "latest", 240 | "@csstools/postcss-unset-value": "latest", 241 | "@csstools/selector-specificity": "latest", 242 | "@cucumber/messages": "latest", 243 | "@cypress/request": "latest", 244 | "@cypress/xvfb": "latest", 245 | "@dabh/diagnostics": "latest", 246 | "@datadog/native-appsec": "latest", 247 | "@datadog/native-iast-rewriter": "latest", 248 | "@datadog/native-iast-taint-tracking": "latest", 249 | "@datadog/native-metrics": "latest", 250 | "@datadog/sketches-js": "latest", 251 | "@dataform/core": "latest", 252 | "@discoveryjs/json-ext": "latest", 253 | "@emnapi/runtime": "latest", 254 | "@emotion/babel-plugin": "latest", 255 | "@emotion/cache": "latest", 256 | "@emotion/css": "latest", 257 | "@emotion/hash": "latest", 258 | "@emotion/is-prop-valid": "latest", 259 | "@emotion/memoize": "latest", 260 | "@emotion/react": "latest", 261 | "@emotion/serialize": "latest", 262 | "@emotion/sheet": "latest", 263 | "@emotion/styled": "latest", 264 | "@emotion/stylis": "latest", 265 | "@emotion/unitless": "latest", 266 | "@emotion/use-insertion-effect-with-fallbacks": "latest", 267 | "@emotion/utils": "latest", 268 | "@emotion/weak-memoize": "latest", 269 | "@eslint-community/eslint-utils": "latest", 270 | "@eslint-community/regexpp": "latest", 271 | "@eslint/config-array": "latest", 272 | "@eslint/eslintrc": "latest", 273 | "@eslint/js": "latest", 274 | "@eslint/object-schema": "latest", 275 | "@eslint/plugin-kit": "latest", 276 | "@faker-js/faker": "latest", 277 | "@fastify/busboy": "latest", 278 | "@floating-ui/core": "latest", 279 | "@floating-ui/dom": "latest", 280 | "@floating-ui/react": "latest", 281 | "@floating-ui/react-dom": "latest", 282 | "@floating-ui/utils": "latest", 283 | "@formatjs/ecma402-abstract": "latest", 284 | "@formatjs/fast-memoize": "latest", 285 | "@formatjs/icu-messageformat-parser": "latest", 286 | "@formatjs/icu-skeleton-parser": "latest", 287 | "@formatjs/intl-localematcher": "latest", 288 | "@gar/promisify": "latest", 289 | "@graphql-codegen/add": "latest", 290 | "@graphql-codegen/core": "latest", 291 | "@graphql-codegen/plugin-helpers": "latest", 292 | "@graphql-codegen/schema-ast": "latest", 293 | "@graphql-codegen/typescript": "latest", 294 | "@graphql-codegen/typescript-operations": "latest", 295 | "@graphql-codegen/visitor-plugin-common": "latest", 296 | "@graphql-tools/batch-execute": "latest", 297 | "@graphql-tools/code-file-loader": "latest", 298 | "@graphql-tools/delegate": "latest", 299 | "@graphql-tools/executor": "latest", 300 | "@graphql-tools/executor-graphql-ws": "latest", 301 | "@graphql-tools/executor-http": "latest", 302 | "@graphql-tools/executor-legacy-ws": "latest", 303 | "@graphql-tools/git-loader": "latest", 304 | "@graphql-tools/github-loader": "latest", 305 | "@graphql-tools/graphql-file-loader": "latest", 306 | "@graphql-tools/graphql-tag-pluck": "latest", 307 | "@graphql-tools/import": "latest", 308 | "@graphql-tools/json-file-loader": "latest", 309 | "@graphql-tools/load": "latest", 310 | "@graphql-tools/merge": "latest", 311 | "@graphql-tools/optimize": "latest", 312 | "@graphql-tools/relay-operation-optimizer": "latest", 313 | "@graphql-tools/schema": "latest", 314 | "@graphql-tools/url-loader": "latest", 315 | "@graphql-tools/utils": "latest", 316 | "@graphql-tools/wrap": "latest", 317 | "@grpc/grpc-js": "latest", 318 | "@grpc/proto-loader": "latest", 319 | "@hapi/bourne": "latest", 320 | "@hapi/hoek": "latest", 321 | "@hapi/topo": "latest", 322 | "@hookform/resolvers": "latest", 323 | "@humanfs/core": "latest", 324 | "@humanfs/node": "latest", 325 | "@humanwhocodes/config-array": "latest", 326 | "@humanwhocodes/module-importer": "latest", 327 | "@humanwhocodes/object-schema": "latest", 328 | "@humanwhocodes/retry": "latest", 329 | "@iarna/toml": "latest", 330 | "@inquirer/confirm": "latest", 331 | "@inquirer/core": "latest", 332 | "@inquirer/figures": "latest", 333 | "@inquirer/type": "latest", 334 | "@ioredis/commands": "latest", 335 | "@isaacs/cliui": "latest", 336 | "@istanbuljs/load-nyc-config": "latest", 337 | "@istanbuljs/schema": "latest", 338 | "@jest/console": "latest", 339 | "@jest/core": "latest", 340 | "@jest/create-cache-key-function": "latest", 341 | "@jest/environment": "latest", 342 | "@jest/expect": "latest", 343 | "@jest/expect-utils": "latest", 344 | "@jest/fake-timers": "latest", 345 | "@jest/reporters": "latest", 346 | "@jest/schemas": "latest", 347 | "@jest/source-map": "latest", 348 | "@jest/test-result": "latest", 349 | "@jest/test-sequencer": "latest", 350 | "@jest/transform": "latest", 351 | "@jest/types": "latest", 352 | "@jridgewell/gen-mapping": "latest", 353 | "@jridgewell/resolve-uri": "latest", 354 | "@jridgewell/set-array": "latest", 355 | "@jridgewell/source-map": "latest", 356 | "@jridgewell/sourcemap-codec": "latest", 357 | "@jridgewell/trace-mapping": "latest", 358 | "@js-sdsl/ordered-map": "latest", 359 | "@jsdevtools/ono": "latest", 360 | "@juggle/resize-observer": "latest", 361 | "@kwsites/file-exists": "latest", 362 | "@kwsites/promise-deferred": "latest", 363 | "@leichtgewicht/ip-codec": "latest", 364 | "@ljharb/through": "latest", 365 | "@lukeed/csprng": "latest", 366 | "@mapbox/node-pre-gyp": "latest", 367 | "@mdx-js/react": "latest", 368 | "@microsoft/tsdoc": "latest", 369 | "@mongodb-js/saslprep": "latest", 370 | "@mrmlnc/readdir-enhanced": "latest", 371 | "@msgpackr-extract/msgpackr-extract-linux-x64": "latest", 372 | "@mswjs/interceptors": "latest", 373 | "@nestjs/common": "latest", 374 | "@nestjs/core": "latest", 375 | "@nestjs/mapped-types": "latest", 376 | "@nestjs/platform-express": "latest", 377 | "@ngtools/webpack": "latest", 378 | "@nicolo-ribaudo/eslint-scope-5-internals": "latest", 379 | "@nodelib/fs.scandir": "latest", 380 | "@nodelib/fs.stat": "latest", 381 | "@nodelib/fs.walk": "latest", 382 | "@nolyfill/is-core-module": "latest", 383 | "@npmcli/agent": "latest", 384 | "@npmcli/fs": "latest", 385 | "@npmcli/git": "latest", 386 | "@npmcli/installed-package-contents": "latest", 387 | "@npmcli/map-workspaces": "latest", 388 | "@npmcli/move-file": "latest", 389 | "@npmcli/name-from-folder": "latest", 390 | "@npmcli/node-gyp": "latest", 391 | "@npmcli/package-json": "latest", 392 | "@npmcli/promise-spawn": "latest", 393 | "@npmcli/redact": "latest", 394 | "@npmcli/run-script": "latest", 395 | "@nuxtjs/opencollective": "latest", 396 | "@octokit/auth-token": "latest", 397 | "@octokit/core": "latest", 398 | "@octokit/endpoint": "latest", 399 | "@octokit/graphql": "latest", 400 | "@octokit/plugin-paginate-rest": "latest", 401 | "@octokit/plugin-request-log": "latest", 402 | "@octokit/plugin-rest-endpoint-methods": "latest", 403 | "@octokit/request": "latest", 404 | "@octokit/request-error": "latest", 405 | "@octokit/rest": "latest", 406 | "@one-ini/wasm": "latest", 407 | "@open-draft/until": "latest", 408 | "@opentelemetry/api": "latest", 409 | "@opentelemetry/api-logs": "latest", 410 | "@opentelemetry/context-async-hooks": "latest", 411 | "@opentelemetry/core": "latest", 412 | "@opentelemetry/exporter-trace-otlp-http": "latest", 413 | "@opentelemetry/instrumentation": "latest", 414 | "@opentelemetry/instrumentation-express": "latest", 415 | "@opentelemetry/instrumentation-http": "latest", 416 | "@opentelemetry/instrumentation-pg": "latest", 417 | "@opentelemetry/otlp-exporter-base": "latest", 418 | "@opentelemetry/otlp-transformer": "latest", 419 | "@opentelemetry/propagator-b3": "latest", 420 | "@opentelemetry/propagator-jaeger": "latest", 421 | "@opentelemetry/resources": "latest", 422 | "@opentelemetry/sdk-logs": "latest", 423 | "@opentelemetry/sdk-metrics": "latest", 424 | "@opentelemetry/sdk-trace-base": "latest", 425 | "@opentelemetry/sdk-trace-node": "latest", 426 | "@opentelemetry/semantic-conventions": "latest", 427 | "@peculiar/asn1-schema": "latest", 428 | "@peculiar/json-schema": "latest", 429 | "@peculiar/webcrypto": "latest", 430 | "@pkgjs/parseargs": "latest", 431 | "@pkgr/core": "latest", 432 | "@playwright/test": "latest", 433 | "@pmmmwh/react-refresh-webpack-plugin": "latest", 434 | "@pnpm/config.env-replace": "latest", 435 | "@pnpm/network.ca-file": "latest", 436 | "@pnpm/npm-conf": "latest", 437 | "@polka/url": "latest", 438 | "@popperjs/core": "latest", 439 | "@protobufjs/aspromise": "latest", 440 | "@protobufjs/base64": "latest", 441 | "@protobufjs/codegen": "latest", 442 | "@protobufjs/eventemitter": "latest", 443 | "@protobufjs/fetch": "latest", 444 | "@protobufjs/float": "latest", 445 | "@protobufjs/inquire": "latest", 446 | "@protobufjs/path": "latest", 447 | "@protobufjs/pool": "latest", 448 | "@protobufjs/utf8": "latest", 449 | "@puppeteer/browsers": "latest", 450 | "@radix-ui/number": "latest", 451 | "@radix-ui/primitive": "latest", 452 | "@radix-ui/react-arrow": "latest", 453 | "@radix-ui/react-collection": "latest", 454 | "@radix-ui/react-compose-refs": "latest", 455 | "@radix-ui/react-context": "latest", 456 | "@radix-ui/react-dialog": "latest", 457 | "@radix-ui/react-direction": "latest", 458 | "@radix-ui/react-dismissable-layer": "latest", 459 | "@radix-ui/react-focus-guards": "latest", 460 | "@radix-ui/react-focus-scope": "latest", 461 | "@radix-ui/react-id": "latest", 462 | "@radix-ui/react-popper": "latest", 463 | "@radix-ui/react-portal": "latest", 464 | "@radix-ui/react-presence": "latest", 465 | "@radix-ui/react-primitive": "latest", 466 | "@radix-ui/react-roving-focus": "latest", 467 | "@radix-ui/react-select": "latest", 468 | "@radix-ui/react-separator": "latest", 469 | "@radix-ui/react-slot": "latest", 470 | "@radix-ui/react-toggle": "latest", 471 | "@radix-ui/react-use-callback-ref": "latest", 472 | "@radix-ui/react-use-controllable-state": "latest", 473 | "@radix-ui/react-use-escape-keydown": "latest", 474 | "@radix-ui/react-use-layout-effect": "latest", 475 | "@radix-ui/react-use-previous": "latest", 476 | "@radix-ui/react-use-rect": "latest", 477 | "@radix-ui/react-use-size": "latest", 478 | "@radix-ui/react-visually-hidden": "latest", 479 | "@radix-ui/rect": "latest", 480 | "@react-aria/ssr": "latest", 481 | "@react-aria/utils": "latest", 482 | "@react-native/normalize-colors": "latest", 483 | "@react-stately/utils": "latest", 484 | "@reduxjs/toolkit": "latest", 485 | "@remix-run/router": "latest", 486 | "@repeaterjs/repeater": "latest", 487 | "@rtsao/scc": "latest", 488 | "@semantic-release/error": "latest", 489 | "@sentry-internal/feedback": "latest", 490 | "@sentry-internal/replay-canvas": "latest", 491 | "@sentry-internal/tracing": "latest", 492 | "@sentry/browser": "latest", 493 | "@sentry/cli": "latest", 494 | "@sentry/core": "latest", 495 | "@sentry/hub": "latest", 496 | "@sentry/integrations": "latest", 497 | "@sentry/node": "latest", 498 | "@sentry/react": "latest", 499 | "@sentry/replay": "latest", 500 | "@sentry/types": "latest", 501 | "@sentry/utils": "latest", 502 | "@sideway/address": "latest", 503 | "@sideway/formula": "latest", 504 | "@sideway/pinpoint": "latest", 505 | "@sigstore/bundle": "latest", 506 | "@sigstore/core": "latest", 507 | "@sigstore/protobuf-specs": "latest", 508 | "@sigstore/sign": "latest", 509 | "@sigstore/tuf": "latest", 510 | "@sigstore/verify": "latest", 511 | "@sinclair/typebox": "latest", 512 | "@sindresorhus/is": "latest", 513 | "@sindresorhus/merge-streams": "latest", 514 | "@sinonjs/commons": "latest", 515 | "@sinonjs/fake-timers": "latest", 516 | "@sinonjs/samsam": "latest", 517 | "@sinonjs/text-encoding": "latest", 518 | "@socket.io/component-emitter": "latest", 519 | "@stoplight/types": "latest", 520 | "@surma/rollup-plugin-off-main-thread": "latest", 521 | "@svgr/babel-plugin-add-jsx-attribute": "latest", 522 | "@svgr/babel-plugin-remove-jsx-attribute": "latest", 523 | "@svgr/babel-plugin-remove-jsx-empty-expression": "latest", 524 | "@svgr/babel-plugin-replace-jsx-attribute-value": "latest", 525 | "@svgr/babel-plugin-svg-dynamic-title": "latest", 526 | "@svgr/babel-plugin-svg-em-dimensions": "latest", 527 | "@svgr/babel-plugin-transform-react-native-svg": "latest", 528 | "@svgr/babel-plugin-transform-svg-component": "latest", 529 | "@svgr/babel-preset": "latest", 530 | "@svgr/core": "latest", 531 | "@svgr/hast-util-to-babel-ast": "latest", 532 | "@svgr/plugin-jsx": "latest", 533 | "@svgr/plugin-svgo": "latest", 534 | "@svgr/webpack": "latest", 535 | "@szmarczak/http-timer": "latest", 536 | "@tanstack/query-core": "latest", 537 | "@tanstack/react-query": "latest", 538 | "@tanstack/virtual-core": "latest", 539 | "@testing-library/dom": "latest", 540 | "@testing-library/react": "latest", 541 | "@testing-library/user-event": "latest", 542 | "@tootallnate/once": "latest", 543 | "@tootallnate/quickjs-emscripten": "latest", 544 | "@trysound/sax": "latest", 545 | "@ts-morph/common": "latest", 546 | "@tufjs/canonical-json": "latest", 547 | "@tufjs/models": "latest", 548 | "@turf/helpers": "latest", 549 | "@turf/invariant": "latest", 550 | "@turf/meta": "latest", 551 | "@ungap/structured-clone": "latest", 552 | "@vitejs/plugin-react": "latest", 553 | "@vitejs/plugin-vue": "latest", 554 | "@vitest/mocker": "latest", 555 | "@vitest/pretty-format": "latest", 556 | "@vitest/runner": "latest", 557 | "@vitest/snapshot": "latest", 558 | "@vitest/spy": "latest", 559 | "@vitest/utils": "latest", 560 | "@vue/compiler-core": "latest", 561 | "@vue/compiler-dom": "latest", 562 | "@vue/compiler-sfc": "latest", 563 | "@vue/compiler-ssr": "latest", 564 | "@vue/devtools-api": "latest", 565 | "@vue/reactivity": "latest", 566 | "@vue/runtime-core": "latest", 567 | "@vue/runtime-dom": "latest", 568 | "@vue/server-renderer": "latest", 569 | "@vue/shared": "latest", 570 | "@vueuse/core": "latest", 571 | "@wdio/logger": "latest", 572 | "@webassemblyjs/ast": "latest", 573 | "@webassemblyjs/floating-point-hex-parser": "latest", 574 | "@webassemblyjs/helper-api-error": "latest", 575 | "@webassemblyjs/helper-buffer": "latest", 576 | "@webassemblyjs/helper-code-frame": "latest", 577 | "@webassemblyjs/helper-fsm": "latest", 578 | "@webassemblyjs/helper-module-context": "latest", 579 | "@webassemblyjs/helper-numbers": "latest", 580 | "@webassemblyjs/helper-wasm-bytecode": "latest", 581 | "@webassemblyjs/helper-wasm-section": "latest", 582 | "@webassemblyjs/ieee754": "latest", 583 | "@webassemblyjs/leb128": "latest", 584 | "@webassemblyjs/utf8": "latest", 585 | "@webassemblyjs/wasm-edit": "latest", 586 | "@webassemblyjs/wasm-gen": "latest", 587 | "@webassemblyjs/wasm-opt": "latest", 588 | "@webassemblyjs/wasm-parser": "latest", 589 | "@webassemblyjs/wast-parser": "latest", 590 | "@webassemblyjs/wast-printer": "latest", 591 | "@webpack-cli/configtest": "latest", 592 | "@webpack-cli/info": "latest", 593 | "@webpack-cli/serve": "latest", 594 | "@whatwg-node/events": "latest", 595 | "@whatwg-node/fetch": "latest", 596 | "@whatwg-node/node-fetch": "latest", 597 | "@wry/context": "latest", 598 | "@wry/equality": "latest", 599 | "@wry/trie": "latest", 600 | "@xmldom/xmldom": "latest", 601 | "@xtuc/ieee754": "latest", 602 | "@xtuc/long": "latest", 603 | "@yarnpkg/fslib": "latest", 604 | "@yarnpkg/libzip": "latest", 605 | "@yarnpkg/lockfile": "latest", 606 | "@yarnpkg/parsers": "latest", 607 | "@zkochan/js-yaml": "latest", 608 | "JSONStream": "latest", 609 | "abab": "latest", 610 | "abbrev": "latest", 611 | "abort-controller": "latest", 612 | "abstract-leveldown": "latest", 613 | "accepts": "latest", 614 | "acorn": "latest", 615 | "acorn-globals": "latest", 616 | "acorn-import-assertions": "latest", 617 | "acorn-import-attributes": "latest", 618 | "acorn-jsx": "latest", 619 | "acorn-node": "latest", 620 | "acorn-walk": "latest", 621 | "address": "latest", 622 | "adjust-sourcemap-loader": "latest", 623 | "adler-32": "latest", 624 | "adm-zip": "latest", 625 | "agent-base": "latest", 626 | "agentkeepalive": "latest", 627 | "aggregate-error": "latest", 628 | "ajv": "latest", 629 | "ajv-draft-04": "latest", 630 | "ajv-errors": "latest", 631 | "ajv-formats": "latest", 632 | "ajv-keywords": "latest", 633 | "align-text": "latest", 634 | "alphanum-sort": "latest", 635 | "amdefine": "latest", 636 | "ansi-align": "latest", 637 | "ansi-colors": "latest", 638 | "ansi-escapes": "latest", 639 | "ansi-html": "latest", 640 | "ansi-html-community": "latest", 641 | "ansi-regex": "latest", 642 | "ansi-styles": "latest", 643 | "ansi-wrap": "latest", 644 | "ansicolors": "latest", 645 | "any-promise": "latest", 646 | "anymatch": "latest", 647 | "app-root-dir": "latest", 648 | "app-root-path": "latest", 649 | "append-field": "latest", 650 | "append-transform": "latest", 651 | "aproba": "latest", 652 | "arch": "latest", 653 | "archiver": "latest", 654 | "archiver-utils": "latest", 655 | "archy": "latest", 656 | "are-we-there-yet": "latest", 657 | "arg": "latest", 658 | "argparse": "latest", 659 | "aria-hidden": "latest", 660 | "aria-query": "latest", 661 | "arr-diff": "latest", 662 | "arr-flatten": "latest", 663 | "arr-union": "latest", 664 | "array-back": "latest", 665 | "array-buffer-byte-length": "latest", 666 | "array-differ": "latest", 667 | "array-each": "latest", 668 | "array-equal": "latest", 669 | "array-find-index": "latest", 670 | "array-flatten": "latest", 671 | "array-ify": "latest", 672 | "array-includes": "latest", 673 | "array-slice": "latest", 674 | "array-timsort": "latest", 675 | "array-union": "latest", 676 | "array-uniq": "latest", 677 | "array-unique": "latest", 678 | "array.prototype.findlast": "latest", 679 | "array.prototype.findlastindex": "latest", 680 | "array.prototype.flat": "latest", 681 | "array.prototype.flatmap": "latest", 682 | "array.prototype.reduce": "latest", 683 | "array.prototype.tosorted": "latest", 684 | "arraybuffer.prototype.slice": "latest", 685 | "arrify": "latest", 686 | "asap": "latest", 687 | "asn1": "latest", 688 | "asn1.js": "latest", 689 | "asn1js": "latest", 690 | "assert-plus": "latest", 691 | "assertion-error": "latest", 692 | "assign-symbols": "latest", 693 | "ast-types": "latest", 694 | "astral-regex": "latest", 695 | "async": "latest", 696 | "async-each": "latest", 697 | "async-limiter": "latest", 698 | "async-retry": "latest", 699 | "asynckit": "latest", 700 | "at-least-node": "latest", 701 | "atob": "latest", 702 | "atomic-sleep": "latest", 703 | "attr-accept": "latest", 704 | "auto-bind": "latest", 705 | "autoprefixer": "latest", 706 | "available-typed-arrays": "latest", 707 | "aws-sdk": "latest", 708 | "aws-sign2": "latest", 709 | "aws4": "latest", 710 | "axe-core": "latest", 711 | "axios": "latest", 712 | "axios-retry": "latest", 713 | "axobject-query": "latest", 714 | "b4a": "latest", 715 | "babel-code-frame": "latest", 716 | "babel-core": "latest", 717 | "babel-eslint": "latest", 718 | "babel-generator": "latest", 719 | "babel-helper-call-delegate": "latest", 720 | "babel-helper-define-map": "latest", 721 | "babel-helper-function-name": "latest", 722 | "babel-helper-get-function-arity": "latest", 723 | "babel-helper-hoist-variables": "latest", 724 | "babel-helper-optimise-call-expression": "latest", 725 | "babel-helper-regex": "latest", 726 | "babel-helper-replace-supers": "latest", 727 | "babel-helpers": "latest", 728 | "babel-jest": "latest", 729 | "babel-loader": "latest", 730 | "babel-messages": "latest", 731 | "babel-plugin-check-es2015-constants": "latest", 732 | "babel-plugin-dynamic-import-node": "latest", 733 | "babel-plugin-istanbul": "latest", 734 | "babel-plugin-jest-hoist": "latest", 735 | "babel-plugin-macros": "latest", 736 | "babel-plugin-named-asset-import": "latest", 737 | "babel-plugin-polyfill-corejs2": "latest", 738 | "babel-plugin-polyfill-corejs3": "latest", 739 | "babel-plugin-polyfill-regenerator": "latest", 740 | "babel-plugin-styled-components": "latest", 741 | "babel-plugin-syntax-jsx": "latest", 742 | "babel-plugin-syntax-object-rest-spread": "latest", 743 | "babel-plugin-syntax-trailing-function-commas": "latest", 744 | "babel-plugin-transform-es2015-arrow-functions": "latest", 745 | "babel-plugin-transform-es2015-block-scoped-functions": "latest", 746 | "babel-plugin-transform-es2015-block-scoping": "latest", 747 | "babel-plugin-transform-es2015-classes": "latest", 748 | "babel-plugin-transform-es2015-computed-properties": "latest", 749 | "babel-plugin-transform-es2015-destructuring": "latest", 750 | "babel-plugin-transform-es2015-duplicate-keys": "latest", 751 | "babel-plugin-transform-es2015-for-of": "latest", 752 | "babel-plugin-transform-es2015-function-name": "latest", 753 | "babel-plugin-transform-es2015-literals": "latest", 754 | "babel-plugin-transform-es2015-modules-amd": "latest", 755 | "babel-plugin-transform-es2015-modules-commonjs": "latest", 756 | "babel-plugin-transform-es2015-modules-systemjs": "latest", 757 | "babel-plugin-transform-es2015-modules-umd": "latest", 758 | "babel-plugin-transform-es2015-object-super": "latest", 759 | "babel-plugin-transform-es2015-parameters": "latest", 760 | "babel-plugin-transform-es2015-shorthand-properties": "latest", 761 | "babel-plugin-transform-es2015-spread": "latest", 762 | "babel-plugin-transform-es2015-sticky-regex": "latest", 763 | "babel-plugin-transform-es2015-template-literals": "latest", 764 | "babel-plugin-transform-es2015-typeof-symbol": "latest", 765 | "babel-plugin-transform-es2015-unicode-regex": "latest", 766 | "babel-plugin-transform-react-remove-prop-types": "latest", 767 | "babel-plugin-transform-regenerator": "latest", 768 | "babel-plugin-transform-strict-mode": "latest", 769 | "babel-polyfill": "latest", 770 | "babel-preset-current-node-syntax": "latest", 771 | "babel-preset-fbjs": "latest", 772 | "babel-preset-jest": "latest", 773 | "babel-preset-react-app": "latest", 774 | "babel-register": "latest", 775 | "babel-template": "latest", 776 | "babel-traverse": "latest", 777 | "babel-types": "latest", 778 | "babylon": "latest", 779 | "backo2": "latest", 780 | "bail": "latest", 781 | "balanced-match": "latest", 782 | "bare-events": "latest", 783 | "bare-stream": "latest", 784 | "base": "latest", 785 | "base-x": "latest", 786 | "base64-arraybuffer": "latest", 787 | "base64-js": "latest", 788 | "base64id": "latest", 789 | "base64url": "latest", 790 | "basic-auth": "latest", 791 | "basic-ftp": "latest", 792 | "batch": "latest", 793 | "bcrypt-pbkdf": "latest", 794 | "before-after-hook": "latest", 795 | "better-opn": "latest", 796 | "bfj": "latest", 797 | "big-integer": "latest", 798 | "big.js": "latest", 799 | "bignumber.js": "latest", 800 | "bin-links": "latest", 801 | "binary": "latest", 802 | "binary-extensions": "latest", 803 | "bindings": "latest", 804 | "bl": "latest", 805 | "blob-util": "latest", 806 | "bluebird": "latest", 807 | "bn.js": "latest", 808 | "body-parser": "latest", 809 | "bonjour": "latest", 810 | "bonjour-service": "latest", 811 | "boolbase": "latest", 812 | "boolean": "latest", 813 | "boom": "latest", 814 | "bottleneck": "latest", 815 | "bowser": "latest", 816 | "boxen": "latest", 817 | "bplist-parser": "latest", 818 | "brace-expansion": "latest", 819 | "braces": "latest", 820 | "brorand": "latest", 821 | "brotli": "latest", 822 | "browser-assert": "latest", 823 | "browser-process-hrtime": "latest", 824 | "browser-resolve": "latest", 825 | "browser-stdout": "latest", 826 | "browserify-aes": "latest", 827 | "browserify-cipher": "latest", 828 | "browserify-des": "latest", 829 | "browserify-rsa": "latest", 830 | "browserify-sign": "latest", 831 | "browserify-zlib": "latest", 832 | "browserslist": "latest", 833 | "bs-logger": "latest", 834 | "bser": "latest", 835 | "bson": "latest", 836 | "btoa": "latest", 837 | "buffer": "latest", 838 | "buffer-alloc": "latest", 839 | "buffer-alloc-unsafe": "latest", 840 | "buffer-crc32": "latest", 841 | "buffer-equal": "latest", 842 | "buffer-equal-constant-time": "latest", 843 | "buffer-fill": "latest", 844 | "buffer-from": "latest", 845 | "buffer-indexof": "latest", 846 | "buffer-indexof-polyfill": "latest", 847 | "buffer-xor": "latest", 848 | "buffers": "latest", 849 | "buildcheck": "latest", 850 | "builtin-modules": "latest", 851 | "builtin-status-codes": "latest", 852 | "builtins": "latest", 853 | "bundle-name": "latest", 854 | "busboy": "latest", 855 | "bytes": "latest", 856 | "cac": "latest", 857 | "cacache": "latest", 858 | "cache-base": "latest", 859 | "cacheable-lookup": "latest", 860 | "cacheable-request": "latest", 861 | "cachedir": "latest", 862 | "caching-transform": "latest", 863 | "call-bind": "latest", 864 | "call-me-maybe": "latest", 865 | "caller-callsite": "latest", 866 | "caller-path": "latest", 867 | "callsite": "latest", 868 | "callsites": "latest", 869 | "camel-case": "latest", 870 | "camelcase": "latest", 871 | "camelcase-css": "latest", 872 | "camelcase-keys": "latest", 873 | "camelize": "latest", 874 | "caniuse-api": "latest", 875 | "caniuse-lite": "latest", 876 | "capital-case": "latest", 877 | "capture-exit": "latest", 878 | "cardinal": "latest", 879 | "case-sensitive-paths-webpack-plugin": "latest", 880 | "caseless": "latest", 881 | "ccount": "latest", 882 | "center-align": "latest", 883 | "chai": "latest", 884 | "chainsaw": "latest", 885 | "chalk": "latest", 886 | "change-case": "latest", 887 | "change-case-all": "latest", 888 | "char-regex": "latest", 889 | "character-entities": "latest", 890 | "character-entities-html4": "latest", 891 | "character-entities-legacy": "latest", 892 | "character-reference-invalid": "latest", 893 | "chardet": "latest", 894 | "charenc": "latest", 895 | "chart.js": "latest", 896 | "check-error": "latest", 897 | "check-more-types": "latest", 898 | "check-types": "latest", 899 | "cheerio": "latest", 900 | "cheerio-select": "latest", 901 | "chokidar": "latest", 902 | "chownr": "latest", 903 | "chrome-launcher": "latest", 904 | "chrome-trace-event": "latest", 905 | "ci-info": "latest", 906 | "cipher-base": "latest", 907 | "circular-json": "latest", 908 | "citty": "latest", 909 | "cjs-module-lexer": "latest", 910 | "class-transformer": "latest", 911 | "class-utils": "latest", 912 | "class-validator": "latest", 913 | "classnames": "latest", 914 | "clean-css": "latest", 915 | "clean-regexp": "latest", 916 | "clean-stack": "latest", 917 | "cli-boxes": "latest", 918 | "cli-color": "latest", 919 | "cli-cursor": "latest", 920 | "cli-highlight": "latest", 921 | "cli-progress": "latest", 922 | "cli-spinners": "latest", 923 | "cli-table": "latest", 924 | "cli-table3": "latest", 925 | "cli-truncate": "latest", 926 | "cli-width": "latest", 927 | "client-only": "latest", 928 | "clipboardy": "latest", 929 | "cliui": "latest", 930 | "clone": "latest", 931 | "clone-buffer": "latest", 932 | "clone-deep": "latest", 933 | "clone-response": "latest", 934 | "clone-stats": "latest", 935 | "cloneable-readable": "latest", 936 | "clsx": "latest", 937 | "cluster-key-slot": "latest", 938 | "cmd-shim": "latest", 939 | "co": "latest", 940 | "coa": "latest", 941 | "code-block-writer": "latest", 942 | "code-point-at": "latest", 943 | "collapse-white-space": "latest", 944 | "collect-v8-coverage": "latest", 945 | "collection-visit": "latest", 946 | "color": "latest", 947 | "color-convert": "latest", 948 | "color-name": "latest", 949 | "color-string": "latest", 950 | "color-support": "latest", 951 | "colord": "latest", 952 | "colorette": "latest", 953 | "colors": "latest", 954 | "colorspace": "latest", 955 | "columnify": "latest", 956 | "combined-stream": "latest", 957 | "comma-separated-tokens": "latest", 958 | "command-exists": "latest", 959 | "commander": "latest", 960 | "comment-json": "latest", 961 | "comment-parser": "latest", 962 | "common-ancestor-path": "latest", 963 | "common-path-prefix": "latest", 964 | "common-tags": "latest", 965 | "commondir": "latest", 966 | "compare-func": "latest", 967 | "compare-versions": "latest", 968 | "component-emitter": "latest", 969 | "compress-commons": "latest", 970 | "compressible": "latest", 971 | "compression": "latest", 972 | "compute-scroll-into-view": "latest", 973 | "concat-map": "latest", 974 | "concat-stream": "latest", 975 | "concurrently": "latest", 976 | "confbox": "latest", 977 | "config-chain": "latest", 978 | "configstore": "latest", 979 | "confusing-browser-globals": "latest", 980 | "connect": "latest", 981 | "connect-history-api-fallback": "latest", 982 | "consola": "latest", 983 | "console-browserify": "latest", 984 | "console-control-strings": "latest", 985 | "constant-case": "latest", 986 | "contains-path": "latest", 987 | "content-disposition": "latest", 988 | "content-type": "latest", 989 | "conventional-changelog-angular": "latest", 990 | "conventional-changelog-conventionalcommits": "latest", 991 | "conventional-changelog-core": "latest", 992 | "conventional-changelog-preset-loader": "latest", 993 | "conventional-changelog-writer": "latest", 994 | "conventional-commits-filter": "latest", 995 | "conventional-commits-parser": "latest", 996 | "convert-source-map": "latest", 997 | "cookie": "latest", 998 | "cookie-parser": "latest", 999 | "cookie-signature": "latest", 1000 | "cookiejar": "latest", 1001 | "cookies": "latest", 1002 | "copy-anything": "latest", 1003 | "copy-concurrently": "latest", 1004 | "copy-descriptor": "latest", 1005 | "copy-to-clipboard": "latest", 1006 | "copy-webpack-plugin": "latest", 1007 | "core-js": "latest", 1008 | "core-js-compat": "latest", 1009 | "core-js-pure": "latest", 1010 | "core-util-is": "latest", 1011 | "cors": "latest", 1012 | "corser": "latest", 1013 | "cosmiconfig": "latest", 1014 | "cosmiconfig-typescript-loader": "latest", 1015 | "crc-32": "latest", 1016 | "crc32-stream": "latest", 1017 | "create-ecdh": "latest", 1018 | "create-hash": "latest", 1019 | "create-hmac": "latest", 1020 | "create-jest": "latest", 1021 | "create-require": "latest", 1022 | "cron-parser": "latest", 1023 | "cross-env": "latest", 1024 | "cross-fetch": "latest", 1025 | "cross-inspect": "latest", 1026 | "cross-spawn": "latest", 1027 | "crypt": "latest", 1028 | "crypto-browserify": "latest", 1029 | "crypto-js": "latest", 1030 | "crypto-random-string": "latest", 1031 | "css": "latest", 1032 | "css-blank-pseudo": "latest", 1033 | "css-color-keywords": "latest", 1034 | "css-declaration-sorter": "latest", 1035 | "css-functions-list": "latest", 1036 | "css-has-pseudo": "latest", 1037 | "css-loader": "latest", 1038 | "css-minimizer-webpack-plugin": "latest", 1039 | "css-prefers-color-scheme": "latest", 1040 | "css-select": "latest", 1041 | "css-select-base-adapter": "latest", 1042 | "css-to-react-native": "latest", 1043 | "css-tree": "latest", 1044 | "css-what": "latest", 1045 | "css.escape": "latest", 1046 | "cssdb": "latest", 1047 | "cssesc": "latest", 1048 | "cssnano": "latest", 1049 | "cssnano-preset-default": "latest", 1050 | "cssnano-utils": "latest", 1051 | "csso": "latest", 1052 | "cssom": "latest", 1053 | "cssstyle": "latest", 1054 | "csv-parse": "latest", 1055 | "csv-stringify": "latest", 1056 | "currently-unhandled": "latest", 1057 | "custom-event": "latest", 1058 | "cyclist": "latest", 1059 | "cypress": "latest", 1060 | "d3": "latest", 1061 | "d3-array": "latest", 1062 | "d3-axis": "latest", 1063 | "d3-brush": "latest", 1064 | "d3-chord": "latest", 1065 | "d3-color": "latest", 1066 | "d3-contour": "latest", 1067 | "d3-delaunay": "latest", 1068 | "d3-dispatch": "latest", 1069 | "d3-drag": "latest", 1070 | "d3-dsv": "latest", 1071 | "d3-ease": "latest", 1072 | "d3-force": "latest", 1073 | "d3-format": "latest", 1074 | "d3-geo": "latest", 1075 | "d3-hierarchy": "latest", 1076 | "d3-interpolate": "latest", 1077 | "d3-path": "latest", 1078 | "d3-polygon": "latest", 1079 | "d3-quadtree": "latest", 1080 | "d3-random": "latest", 1081 | "d3-scale": "latest", 1082 | "d3-scale-chromatic": "latest", 1083 | "d3-selection": "latest", 1084 | "d3-shape": "latest", 1085 | "d3-time": "latest", 1086 | "d3-time-format": "latest", 1087 | "d3-timer": "latest", 1088 | "d3-transition": "latest", 1089 | "d3-zoom": "latest", 1090 | "damerau-levenshtein": "latest", 1091 | "dargs": "latest", 1092 | "dashdash": "latest", 1093 | "data-uri-to-buffer": "latest", 1094 | "data-urls": "latest", 1095 | "data-view-buffer": "latest", 1096 | "data-view-byte-length": "latest", 1097 | "data-view-byte-offset": "latest", 1098 | "dataloader": "latest", 1099 | "date-fns": "latest", 1100 | "date-fns-tz": "latest", 1101 | "date-format": "latest", 1102 | "dateformat": "latest", 1103 | "dayjs": "latest", 1104 | "de-indent": "latest", 1105 | "debounce": "latest", 1106 | "debug": "latest", 1107 | "debuglog": "latest", 1108 | "decamelize": "latest", 1109 | "decamelize-keys": "latest", 1110 | "decimal.js": "latest", 1111 | "decode-named-character-reference": "latest", 1112 | "decode-uri-component": "latest", 1113 | "decompress": "latest", 1114 | "decompress-response": "latest", 1115 | "decompress-tar": "latest", 1116 | "decompress-tarbz2": "latest", 1117 | "decompress-targz": "latest", 1118 | "decompress-unzip": "latest", 1119 | "dedent": "latest", 1120 | "deep-eql": "latest", 1121 | "deep-equal": "latest", 1122 | "deep-extend": "latest", 1123 | "deep-is": "latest", 1124 | "deep-object-diff": "latest", 1125 | "deepmerge": "latest", 1126 | "default-browser": "latest", 1127 | "default-browser-id": "latest", 1128 | "default-gateway": "latest", 1129 | "default-require-extensions": "latest", 1130 | "defaults": "latest", 1131 | "defer-to-connect": "latest", 1132 | "define-data-property": "latest", 1133 | "define-lazy-prop": "latest", 1134 | "define-properties": "latest", 1135 | "define-property": "latest", 1136 | "defined": "latest", 1137 | "defu": "latest", 1138 | "degenerator": "latest", 1139 | "del": "latest", 1140 | "delaunator": "latest", 1141 | "delay": "latest", 1142 | "delayed-stream": "latest", 1143 | "delegates": "latest", 1144 | "denque": "latest", 1145 | "depd": "latest", 1146 | "dependency-graph": "latest", 1147 | "deprecation": "latest", 1148 | "dequal": "latest", 1149 | "des.js": "latest", 1150 | "destroy": "latest", 1151 | "detect-file": "latest", 1152 | "detect-indent": "latest", 1153 | "detect-libc": "latest", 1154 | "detect-newline": "latest", 1155 | "detect-node": "latest", 1156 | "detect-node-es": "latest", 1157 | "detect-package-manager": "latest", 1158 | "detect-port": "latest", 1159 | "detect-port-alt": "latest", 1160 | "detective": "latest", 1161 | "devlop": "latest", 1162 | "dezalgo": "latest", 1163 | "didyoumean": "latest", 1164 | "diff": "latest", 1165 | "diff-sequences": "latest", 1166 | "diffie-hellman": "latest", 1167 | "discontinuous-range": "latest", 1168 | "dlv": "latest", 1169 | "dns-equal": "latest", 1170 | "dns-packet": "latest", 1171 | "dns-txt": "latest", 1172 | "doctrine": "latest", 1173 | "dom-accessibility-api": "latest", 1174 | "dom-converter": "latest", 1175 | "dom-helpers": "latest", 1176 | "dom-serializer": "latest", 1177 | "dom-walk": "latest", 1178 | "domain-browser": "latest", 1179 | "domelementtype": "latest", 1180 | "domexception": "latest", 1181 | "domhandler": "latest", 1182 | "dompurify": "latest", 1183 | "domutils": "latest", 1184 | "dot-case": "latest", 1185 | "dot-prop": "latest", 1186 | "dotenv": "latest", 1187 | "dotenv-expand": "latest", 1188 | "dset": "latest", 1189 | "duplexer": "latest", 1190 | "duplexer2": "latest", 1191 | "duplexer3": "latest", 1192 | "duplexify": "latest", 1193 | "eastasianwidth": "latest", 1194 | "ecc-jsbn": "latest", 1195 | "ecdsa-sig-formatter": "latest", 1196 | "editorconfig": "latest", 1197 | "ee-first": "latest", 1198 | "ejs": "latest", 1199 | "electron-to-chromium": "latest", 1200 | "elegant-spinner": "latest", 1201 | "elliptic": "latest", 1202 | "emittery": "latest", 1203 | "emoji-regex": "latest", 1204 | "emojis-list": "latest", 1205 | "enabled": "latest", 1206 | "encodeurl": "latest", 1207 | "encoding": "latest", 1208 | "end-of-stream": "latest", 1209 | "endent": "latest", 1210 | "engine.io": "latest", 1211 | "engine.io-client": "latest", 1212 | "engine.io-parser": "latest", 1213 | "enhanced-resolve": "latest", 1214 | "enquirer": "latest", 1215 | "ent": "latest", 1216 | "entities": "latest", 1217 | "env-paths": "latest", 1218 | "envinfo": "latest", 1219 | "environment": "latest", 1220 | "err-code": "latest", 1221 | "errno": "latest", 1222 | "error-ex": "latest", 1223 | "error-stack-parser": "latest", 1224 | "es-abstract": "latest", 1225 | "es-array-method-boxes-properly": "latest", 1226 | "es-define-property": "latest", 1227 | "es-errors": "latest", 1228 | "es-get-iterator": "latest", 1229 | "es-module-lexer": "latest", 1230 | "es-object-atoms": "latest", 1231 | "es-set-tostringtag": "latest", 1232 | "es-shim-unscopables": "latest", 1233 | "es-to-primitive": "latest", 1234 | "esbuild": "latest", 1235 | "escalade": "latest", 1236 | "escape-goat": "latest", 1237 | "escape-html": "latest", 1238 | "escape-string-regexp": "latest", 1239 | "escodegen": "latest", 1240 | "eslint": "latest", 1241 | "eslint-config-airbnb": "latest", 1242 | "eslint-config-airbnb-base": "latest", 1243 | "eslint-config-prettier": "latest", 1244 | "eslint-config-react-app": "latest", 1245 | "eslint-config-standard": "latest", 1246 | "eslint-import-resolver-node": "latest", 1247 | "eslint-import-resolver-typescript": "latest", 1248 | "eslint-plugin-cypress": "latest", 1249 | "eslint-plugin-es": "latest", 1250 | "eslint-plugin-flowtype": "latest", 1251 | "eslint-plugin-jest": "latest", 1252 | "eslint-plugin-jsx-a11y": "latest", 1253 | "eslint-plugin-n": "latest", 1254 | "eslint-plugin-node": "latest", 1255 | "eslint-plugin-prettier": "latest", 1256 | "eslint-plugin-promise": "latest", 1257 | "eslint-plugin-react": "latest", 1258 | "eslint-plugin-react-hooks": "latest", 1259 | "eslint-plugin-storybook": "latest", 1260 | "eslint-plugin-testing-library": "latest", 1261 | "eslint-plugin-unicorn": "latest", 1262 | "eslint-plugin-unused-imports": "latest", 1263 | "eslint-plugin-vue": "latest", 1264 | "eslint-rule-composer": "latest", 1265 | "eslint-scope": "latest", 1266 | "eslint-utils": "latest", 1267 | "eslint-visitor-keys": "latest", 1268 | "eslint-webpack-plugin": "latest", 1269 | "esniff": "latest", 1270 | "espree": "latest", 1271 | "esprima": "latest", 1272 | "esquery": "latest", 1273 | "esrecurse": "latest", 1274 | "estraverse": "latest", 1275 | "estree-util-is-identifier-name": "latest", 1276 | "estree-walker": "latest", 1277 | "esutils": "latest", 1278 | "etag": "latest", 1279 | "event-lite": "latest", 1280 | "event-stream": "latest", 1281 | "event-target-shim": "latest", 1282 | "eventemitter2": "latest", 1283 | "eventemitter3": "latest", 1284 | "events": "latest", 1285 | "eventsource": "latest", 1286 | "evp_bytestokey": "latest", 1287 | "exec-sh": "latest", 1288 | "execa": "latest", 1289 | "executable": "latest", 1290 | "exit": "latest", 1291 | "exit-hook": "latest", 1292 | "expand-brackets": "latest", 1293 | "expand-range": "latest", 1294 | "expand-template": "latest", 1295 | "expand-tilde": "latest", 1296 | "expect": "latest", 1297 | "exponential-backoff": "latest", 1298 | "express": "latest", 1299 | "ext-list": "latest", 1300 | "ext-name": "latest", 1301 | "extend": "latest", 1302 | "extend-shallow": "latest", 1303 | "external-editor": "latest", 1304 | "extglob": "latest", 1305 | "extract-zip": "latest", 1306 | "extsprintf": "latest", 1307 | "fancy-log": "latest", 1308 | "fast-copy": "latest", 1309 | "fast-decode-uri-component": "latest", 1310 | "fast-deep-equal": "latest", 1311 | "fast-diff": "latest", 1312 | "fast-equals": "latest", 1313 | "fast-fifo": "latest", 1314 | "fast-glob": "latest", 1315 | "fast-json-parse": "latest", 1316 | "fast-json-stable-stringify": "latest", 1317 | "fast-json-stringify": "latest", 1318 | "fast-levenshtein": "latest", 1319 | "fast-querystring": "latest", 1320 | "fast-redact": "latest", 1321 | "fast-safe-stringify": "latest", 1322 | "fast-text-encoding": "latest", 1323 | "fast-uri": "latest", 1324 | "fast-url-parser": "latest", 1325 | "fast-xml-parser": "latest", 1326 | "fastest-levenshtein": "latest", 1327 | "fastparse": "latest", 1328 | "fastq": "latest", 1329 | "fault": "latest", 1330 | "faye-websocket": "latest", 1331 | "fb-watchman": "latest", 1332 | "fbjs-css-vars": "latest", 1333 | "fd-slicer": "latest", 1334 | "fdir": "latest", 1335 | "fecha": "latest", 1336 | "fetch-blob": "latest", 1337 | "fetch-retry": "latest", 1338 | "fflate": "latest", 1339 | "figgy-pudding": "latest", 1340 | "figures": "latest", 1341 | "file-entry-cache": "latest", 1342 | "file-loader": "latest", 1343 | "file-saver": "latest", 1344 | "file-selector": "latest", 1345 | "file-type": "latest", 1346 | "file-uri-to-path": "latest", 1347 | "filelist": "latest", 1348 | "filename-regex": "latest", 1349 | "filename-reserved-regex": "latest", 1350 | "filenamify": "latest", 1351 | "filesize": "latest", 1352 | "fill-range": "latest", 1353 | "filter-obj": "latest", 1354 | "finalhandler": "latest", 1355 | "find-cache-dir": "latest", 1356 | "find-root": "latest", 1357 | "find-up": "latest", 1358 | "find-versions": "latest", 1359 | "find-yarn-workspace-root": "latest", 1360 | "findup-sync": "latest", 1361 | "fined": "latest", 1362 | "flagged-respawn": "latest", 1363 | "flat": "latest", 1364 | "flat-cache": "latest", 1365 | "flatted": "latest", 1366 | "flatten": "latest", 1367 | "flow-parser": "latest", 1368 | "flush-write-stream": "latest", 1369 | "fn.name": "latest", 1370 | "follow-redirects": "latest", 1371 | "for-each": "latest", 1372 | "for-in": "latest", 1373 | "for-own": "latest", 1374 | "foreach": "latest", 1375 | "foreground-child": "latest", 1376 | "forever-agent": "latest", 1377 | "fork-ts-checker-webpack-plugin": "latest", 1378 | "form-data": "latest", 1379 | "form-data-encoder": "latest", 1380 | "format": "latest", 1381 | "formdata-node": "latest", 1382 | "formdata-polyfill": "latest", 1383 | "formidable": "latest", 1384 | "forwarded": "latest", 1385 | "fp-ts": "latest", 1386 | "fraction.js": "latest", 1387 | "fragment-cache": "latest", 1388 | "framer-motion": "latest", 1389 | "fresh": "latest", 1390 | "from": "latest", 1391 | "from2": "latest", 1392 | "fromentries": "latest", 1393 | "fs-constants": "latest", 1394 | "fs-extra": "latest", 1395 | "fs-minipass": "latest", 1396 | "fs-monkey": "latest", 1397 | "fs-readdir-recursive": "latest", 1398 | "fs-write-stream-atomic": "latest", 1399 | "fs.realpath": "latest", 1400 | "fstream": "latest", 1401 | "function-bind": "latest", 1402 | "function.prototype.name": "latest", 1403 | "functional-red-black-tree": "latest", 1404 | "functions-have-names": "latest", 1405 | "fuse.js": "latest", 1406 | "gauge": "latest", 1407 | "gaxios": "latest", 1408 | "gaze": "latest", 1409 | "gcp-metadata": "latest", 1410 | "generate-function": "latest", 1411 | "generic-pool": "latest", 1412 | "gensync": "latest", 1413 | "get-caller-file": "latest", 1414 | "get-east-asian-width": "latest", 1415 | "get-func-name": "latest", 1416 | "get-intrinsic": "latest", 1417 | "get-nonce": "latest", 1418 | "get-own-enumerable-property-symbols": "latest", 1419 | "get-package-type": "latest", 1420 | "get-pkg-repo": "latest", 1421 | "get-port": "latest", 1422 | "get-stdin": "latest", 1423 | "get-stream": "latest", 1424 | "get-symbol-description": "latest", 1425 | "get-tsconfig": "latest", 1426 | "get-uri": "latest", 1427 | "get-value": "latest", 1428 | "getos": "latest", 1429 | "getpass": "latest", 1430 | "giget": "latest", 1431 | "git-raw-commits": "latest", 1432 | "git-remote-origin-url": "latest", 1433 | "git-semver-tags": "latest", 1434 | "git-up": "latest", 1435 | "git-url-parse": "latest", 1436 | "gitconfiglocal": "latest", 1437 | "github-from-package": "latest", 1438 | "github-slugger": "latest", 1439 | "glob": "latest", 1440 | "glob-base": "latest", 1441 | "glob-parent": "latest", 1442 | "glob-promise": "latest", 1443 | "glob-stream": "latest", 1444 | "glob-to-regexp": "latest", 1445 | "global": "latest", 1446 | "global-directory": "latest", 1447 | "global-dirs": "latest", 1448 | "global-modules": "latest", 1449 | "global-prefix": "latest", 1450 | "globals": "latest", 1451 | "globalthis": "latest", 1452 | "globjoin": "latest", 1453 | "globrex": "latest", 1454 | "globule": "latest", 1455 | "google-auth-library": "latest", 1456 | "google-gax": "latest", 1457 | "google-p12-pem": "latest", 1458 | "gopd": "latest", 1459 | "got": "latest", 1460 | "graceful-fs": "latest", 1461 | "grapheme-splitter": "latest", 1462 | "graphemer": "latest", 1463 | "graphql": "latest", 1464 | "graphql-config": "latest", 1465 | "graphql-request": "latest", 1466 | "graphql-tag": "latest", 1467 | "graphql-ws": "latest", 1468 | "growl": "latest", 1469 | "growly": "latest", 1470 | "gtoken": "latest", 1471 | "gzip-size": "latest", 1472 | "handle-thing": "latest", 1473 | "handlebars": "latest", 1474 | "har-schema": "latest", 1475 | "har-validator": "latest", 1476 | "hard-rejection": "latest", 1477 | "has": "latest", 1478 | "has-ansi": "latest", 1479 | "has-bigints": "latest", 1480 | "has-flag": "latest", 1481 | "has-own-prop": "latest", 1482 | "has-property-descriptors": "latest", 1483 | "has-proto": "latest", 1484 | "has-symbols": "latest", 1485 | "has-tostringtag": "latest", 1486 | "has-unicode": "latest", 1487 | "has-value": "latest", 1488 | "has-values": "latest", 1489 | "has-yarn": "latest", 1490 | "hash-base": "latest", 1491 | "hash-sum": "latest", 1492 | "hash.js": "latest", 1493 | "hasha": "latest", 1494 | "hasown": "latest", 1495 | "hast-util-from-parse5": "latest", 1496 | "hast-util-is-element": "latest", 1497 | "hast-util-parse-selector": "latest", 1498 | "hast-util-raw": "latest", 1499 | "hast-util-to-parse5": "latest", 1500 | "hast-util-whitespace": "latest", 1501 | "hastscript": "latest", 1502 | "he": "latest", 1503 | "header-case": "latest", 1504 | "headers-polyfill": "latest", 1505 | "helmet": "latest", 1506 | "help-me": "latest", 1507 | "hermes-estree": "latest", 1508 | "hermes-parser": "latest", 1509 | "hexoid": "latest", 1510 | "highlight.js": "latest", 1511 | "history": "latest", 1512 | "hmac-drbg": "latest", 1513 | "hoek": "latest", 1514 | "hoist-non-react-statics": "latest", 1515 | "home-or-tmp": "latest", 1516 | "homedir-polyfill": "latest", 1517 | "hoopy": "latest", 1518 | "hosted-git-info": "latest", 1519 | "hpack.js": "latest", 1520 | "html-encoding-sniffer": "latest", 1521 | "html-entities": "latest", 1522 | "html-escaper": "latest", 1523 | "html-minifier": "latest", 1524 | "html-minifier-terser": "latest", 1525 | "html-parse-stringify": "latest", 1526 | "html-tags": "latest", 1527 | "html-void-elements": "latest", 1528 | "html-webpack-plugin": "latest", 1529 | "htmlparser2": "latest", 1530 | "http-cache-semantics": "latest", 1531 | "http-deceiver": "latest", 1532 | "http-errors": "latest", 1533 | "http-parser-js": "latest", 1534 | "http-proxy": "latest", 1535 | "http-proxy-agent": "latest", 1536 | "http-proxy-middleware": "latest", 1537 | "http-signature": "latest", 1538 | "http2-wrapper": "latest", 1539 | "https-browserify": "latest", 1540 | "https-proxy-agent": "latest", 1541 | "human-signals": "latest", 1542 | "humanize-ms": "latest", 1543 | "husky": "latest", 1544 | "hyphenate-style-name": "latest", 1545 | "i18next": "latest", 1546 | "iconv-lite": "latest", 1547 | "icss-utils": "latest", 1548 | "idb": "latest", 1549 | "identity-obj-proxy": "latest", 1550 | "ieee754": "latest", 1551 | "iferr": "latest", 1552 | "ignore": "latest", 1553 | "ignore-by-default": "latest", 1554 | "ignore-walk": "latest", 1555 | "image-size": "latest", 1556 | "immediate": "latest", 1557 | "immer": "latest", 1558 | "immutable": "latest", 1559 | "import-cwd": "latest", 1560 | "import-fresh": "latest", 1561 | "import-from": "latest", 1562 | "import-in-the-middle": "latest", 1563 | "import-lazy": "latest", 1564 | "import-local": "latest", 1565 | "import-meta-resolve": "latest", 1566 | "imurmurhash": "latest", 1567 | "indent-string": "latest", 1568 | "indexes-of": "latest", 1569 | "indexof": "latest", 1570 | "infer-owner": "latest", 1571 | "inflection": "latest", 1572 | "inflight": "latest", 1573 | "inherits": "latest", 1574 | "ini": "latest", 1575 | "inline-style-parser": "latest", 1576 | "inline-style-prefixer": "latest", 1577 | "inquirer": "latest", 1578 | "int64-buffer": "latest", 1579 | "internal-ip": "latest", 1580 | "internal-slot": "latest", 1581 | "internmap": "latest", 1582 | "interpret": "latest", 1583 | "intl-messageformat": "latest", 1584 | "into-stream": "latest", 1585 | "invariant": "latest", 1586 | "invert-kv": "latest", 1587 | "ioredis": "latest", 1588 | "ip": "latest", 1589 | "ip-address": "latest", 1590 | "ip-regex": "latest", 1591 | "ipaddr.js": "latest", 1592 | "is-absolute": "latest", 1593 | "is-absolute-url": "latest", 1594 | "is-accessor-descriptor": "latest", 1595 | "is-alphabetical": "latest", 1596 | "is-alphanumerical": "latest", 1597 | "is-arguments": "latest", 1598 | "is-array-buffer": "latest", 1599 | "is-arrayish": "latest", 1600 | "is-async-function": "latest", 1601 | "is-bigint": "latest", 1602 | "is-binary-path": "latest", 1603 | "is-boolean-object": "latest", 1604 | "is-buffer": "latest", 1605 | "is-builtin-module": "latest", 1606 | "is-bun-module": "latest", 1607 | "is-callable": "latest", 1608 | "is-ci": "latest", 1609 | "is-core-module": "latest", 1610 | "is-data-descriptor": "latest", 1611 | "is-data-view": "latest", 1612 | "is-date-object": "latest", 1613 | "is-decimal": "latest", 1614 | "is-descriptor": "latest", 1615 | "is-directory": "latest", 1616 | "is-docker": "latest", 1617 | "is-dotfile": "latest", 1618 | "is-equal-shallow": "latest", 1619 | "is-extendable": "latest", 1620 | "is-extglob": "latest", 1621 | "is-finalizationregistry": "latest", 1622 | "is-finite": "latest", 1623 | "is-fullwidth-code-point": "latest", 1624 | "is-function": "latest", 1625 | "is-generator-fn": "latest", 1626 | "is-generator-function": "latest", 1627 | "is-glob": "latest", 1628 | "is-gzip": "latest", 1629 | "is-hexadecimal": "latest", 1630 | "is-inside-container": "latest", 1631 | "is-installed-globally": "latest", 1632 | "is-interactive": "latest", 1633 | "is-lambda": "latest", 1634 | "is-lower-case": "latest", 1635 | "is-map": "latest", 1636 | "is-module": "latest", 1637 | "is-nan": "latest", 1638 | "is-natural-number": "latest", 1639 | "is-negative-zero": "latest", 1640 | "is-node-process": "latest", 1641 | "is-npm": "latest", 1642 | "is-number": "latest", 1643 | "is-number-object": "latest", 1644 | "is-obj": "latest", 1645 | "is-object": "latest", 1646 | "is-path-cwd": "latest", 1647 | "is-path-in-cwd": "latest", 1648 | "is-path-inside": "latest", 1649 | "is-plain-obj": "latest", 1650 | "is-plain-object": "latest", 1651 | "is-posix-bracket": "latest", 1652 | "is-potential-custom-element-name": "latest", 1653 | "is-primitive": "latest", 1654 | "is-promise": "latest", 1655 | "is-property": "latest", 1656 | "is-reference": "latest", 1657 | "is-regex": "latest", 1658 | "is-regexp": "latest", 1659 | "is-relative": "latest", 1660 | "is-resolvable": "latest", 1661 | "is-retry-allowed": "latest", 1662 | "is-root": "latest", 1663 | "is-set": "latest", 1664 | "is-shared-array-buffer": "latest", 1665 | "is-ssh": "latest", 1666 | "is-stream": "latest", 1667 | "is-string": "latest", 1668 | "is-subset": "latest", 1669 | "is-symbol": "latest", 1670 | "is-text-path": "latest", 1671 | "is-typed-array": "latest", 1672 | "is-typedarray": "latest", 1673 | "is-unc-path": "latest", 1674 | "is-unicode-supported": "latest", 1675 | "is-upper-case": "latest", 1676 | "is-url": "latest", 1677 | "is-utf8": "latest", 1678 | "is-weakmap": "latest", 1679 | "is-weakref": "latest", 1680 | "is-weakset": "latest", 1681 | "is-what": "latest", 1682 | "is-windows": "latest", 1683 | "is-wsl": "latest", 1684 | "is-yarn-global": "latest", 1685 | "isarray": "latest", 1686 | "isbinaryfile": "latest", 1687 | "isexe": "latest", 1688 | "isobject": "latest", 1689 | "isomorphic-fetch": "latest", 1690 | "isomorphic-ws": "latest", 1691 | "isstream": "latest", 1692 | "istanbul-lib-coverage": "latest", 1693 | "istanbul-lib-hook": "latest", 1694 | "istanbul-lib-instrument": "latest", 1695 | "istanbul-lib-processinfo": "latest", 1696 | "istanbul-lib-report": "latest", 1697 | "istanbul-lib-source-maps": "latest", 1698 | "istanbul-reports": "latest", 1699 | "iterall": "latest", 1700 | "iterare": "latest", 1701 | "iterator.prototype": "latest", 1702 | "jackspeak": "latest", 1703 | "jake": "latest", 1704 | "jasmine-core": "latest", 1705 | "jest": "latest", 1706 | "jest-changed-files": "latest", 1707 | "jest-circus": "latest", 1708 | "jest-cli": "latest", 1709 | "jest-config": "latest", 1710 | "jest-diff": "latest", 1711 | "jest-docblock": "latest", 1712 | "jest-each": "latest", 1713 | "jest-environment-jsdom": "latest", 1714 | "jest-environment-node": "latest", 1715 | "jest-get-type": "latest", 1716 | "jest-haste-map": "latest", 1717 | "jest-jasmine2": "latest", 1718 | "jest-junit": "latest", 1719 | "jest-leak-detector": "latest", 1720 | "jest-matcher-utils": "latest", 1721 | "jest-message-util": "latest", 1722 | "jest-mock": "latest", 1723 | "jest-pnp-resolver": "latest", 1724 | "jest-regex-util": "latest", 1725 | "jest-resolve": "latest", 1726 | "jest-resolve-dependencies": "latest", 1727 | "jest-runner": "latest", 1728 | "jest-runtime": "latest", 1729 | "jest-serializer": "latest", 1730 | "jest-snapshot": "latest", 1731 | "jest-util": "latest", 1732 | "jest-validate": "latest", 1733 | "jest-watcher": "latest", 1734 | "jest-worker": "latest", 1735 | "jiti": "latest", 1736 | "jju": "latest", 1737 | "jmespath": "latest", 1738 | "joi": "latest", 1739 | "jose": "latest", 1740 | "joycon": "latest", 1741 | "jpeg-js": "latest", 1742 | "jquery": "latest", 1743 | "js-base64": "latest", 1744 | "js-cookie": "latest", 1745 | "js-levenshtein": "latest", 1746 | "js-sdsl": "latest", 1747 | "js-sha3": "latest", 1748 | "js-string-escape": "latest", 1749 | "js-tokens": "latest", 1750 | "js-yaml": "latest", 1751 | "js2xmlparser": "latest", 1752 | "jsbn": "latest", 1753 | "jscodeshift": "latest", 1754 | "jsdoc-type-pratt-parser": "latest", 1755 | "jsdom": "latest", 1756 | "jsesc": "latest", 1757 | "json-bigint": "latest", 1758 | "json-buffer": "latest", 1759 | "json-parse-better-errors": "latest", 1760 | "json-parse-even-better-errors": "latest", 1761 | "json-schema": "latest", 1762 | "json-schema-traverse": "latest", 1763 | "json-stable-stringify": "latest", 1764 | "json-stable-stringify-without-jsonify": "latest", 1765 | "json-stringify-safe": "latest", 1766 | "json3": "latest", 1767 | "json5": "latest", 1768 | "jsonc-parser": "latest", 1769 | "jsonfile": "latest", 1770 | "jsonify": "latest", 1771 | "jsonparse": "latest", 1772 | "jsonpath": "latest", 1773 | "jsonpath-plus": "latest", 1774 | "jsonpointer": "latest", 1775 | "jsonschema": "latest", 1776 | "jsonwebtoken": "latest", 1777 | "jsprim": "latest", 1778 | "jsx-ast-utils": "latest", 1779 | "jszip": "latest", 1780 | "just-extend": "latest", 1781 | "jwa": "latest", 1782 | "jwks-rsa": "latest", 1783 | "jws": "latest", 1784 | "jwt-decode": "latest", 1785 | "karma": "latest", 1786 | "keygrip": "latest", 1787 | "keyv": "latest", 1788 | "killable": "latest", 1789 | "kind-of": "latest", 1790 | "klaw": "latest", 1791 | "kleur": "latest", 1792 | "klona": "latest", 1793 | "known-css-properties": "latest", 1794 | "koa": "latest", 1795 | "koa-compose": "latest", 1796 | "koa-convert": "latest", 1797 | "koalas": "latest", 1798 | "kuler": "latest", 1799 | "language-tags": "latest", 1800 | "language-tools": "latest", 1801 | "latest-version": "latest", 1802 | "launch-editor": "latest", 1803 | "lazy-ass": "latest", 1804 | "lazy-cache": "latest", 1805 | "lazy-universal-dotenv": "latest", 1806 | "lazystream": "latest", 1807 | "lcid": "latest", 1808 | "left-pad": "latest", 1809 | "less": "latest", 1810 | "less-loader": "latest", 1811 | "leven": "latest", 1812 | "levn": "latest", 1813 | "libphonenumber-js": "latest", 1814 | "license-webpack-plugin": "latest", 1815 | "lie": "latest", 1816 | "liftoff": "latest", 1817 | "lighthouse-logger": "latest", 1818 | "lilconfig": "latest", 1819 | "lines-and-columns": "latest", 1820 | "linkify-it": "latest", 1821 | "lint-staged": "latest", 1822 | "listenercount": "latest", 1823 | "listr2": "latest", 1824 | "load-json-file": "latest", 1825 | "loader-runner": "latest", 1826 | "loader-utils": "latest", 1827 | "local-pkg": "latest", 1828 | "localforage": "latest", 1829 | "locate-path": "latest", 1830 | "lodash": "latest", 1831 | "lodash-es": "latest", 1832 | "lodash._getnative": "latest", 1833 | "lodash._reinterpolate": "latest", 1834 | "lodash.camelcase": "latest", 1835 | "lodash.clonedeep": "latest", 1836 | "lodash.debounce": "latest", 1837 | "lodash.defaults": "latest", 1838 | "lodash.difference": "latest", 1839 | "lodash.escape": "latest", 1840 | "lodash.escaperegexp": "latest", 1841 | "lodash.flatten": "latest", 1842 | "lodash.flattendeep": "latest", 1843 | "lodash.get": "latest", 1844 | "lodash.groupby": "latest", 1845 | "lodash.includes": "latest", 1846 | "lodash.isarguments": "latest", 1847 | "lodash.isarray": "latest", 1848 | "lodash.isboolean": "latest", 1849 | "lodash.isempty": "latest", 1850 | "lodash.isequal": "latest", 1851 | "lodash.isfunction": "latest", 1852 | "lodash.isinteger": "latest", 1853 | "lodash.ismatch": "latest", 1854 | "lodash.isnumber": "latest", 1855 | "lodash.isobject": "latest", 1856 | "lodash.isplainobject": "latest", 1857 | "lodash.isstring": "latest", 1858 | "lodash.kebabcase": "latest", 1859 | "lodash.keys": "latest", 1860 | "lodash.map": "latest", 1861 | "lodash.memoize": "latest", 1862 | "lodash.merge": "latest", 1863 | "lodash.mergewith": "latest", 1864 | "lodash.once": "latest", 1865 | "lodash.pick": "latest", 1866 | "lodash.snakecase": "latest", 1867 | "lodash.sortby": "latest", 1868 | "lodash.startcase": "latest", 1869 | "lodash.template": "latest", 1870 | "lodash.templatesettings": "latest", 1871 | "lodash.throttle": "latest", 1872 | "lodash.truncate": "latest", 1873 | "lodash.union": "latest", 1874 | "lodash.uniq": "latest", 1875 | "lodash.uniqby": "latest", 1876 | "lodash.upperfirst": "latest", 1877 | "log-symbols": "latest", 1878 | "log-update": "latest", 1879 | "log4js": "latest", 1880 | "logform": "latest", 1881 | "loglevel": "latest", 1882 | "lolex": "latest", 1883 | "long": "latest", 1884 | "longest": "latest", 1885 | "longest-streak": "latest", 1886 | "loose-envify": "latest", 1887 | "loud-rejection": "latest", 1888 | "loupe": "latest", 1889 | "lower-case": "latest", 1890 | "lower-case-first": "latest", 1891 | "lowercase-keys": "latest", 1892 | "lru-cache": "latest", 1893 | "lru-memoizer": "latest", 1894 | "lru-queue": "latest", 1895 | "lunr": "latest", 1896 | "luxon": "latest", 1897 | "lz-string": "latest", 1898 | "macos-release": "latest", 1899 | "magic-string": "latest", 1900 | "magicast": "latest", 1901 | "make-dir": "latest", 1902 | "make-error": "latest", 1903 | "make-fetch-happen": "latest", 1904 | "make-iterator": "latest", 1905 | "makeerror": "latest", 1906 | "map-age-cleaner": "latest", 1907 | "map-cache": "latest", 1908 | "map-obj": "latest", 1909 | "map-or-similar": "latest", 1910 | "map-stream": "latest", 1911 | "map-visit": "latest", 1912 | "markdown-it": "latest", 1913 | "markdown-table": "latest", 1914 | "markdown-to-jsx": "latest", 1915 | "marked": "latest", 1916 | "marked-terminal": "latest", 1917 | "marky": "latest", 1918 | "matcher": "latest", 1919 | "math-random": "latest", 1920 | "mathml-tag-names": "latest", 1921 | "md5": "latest", 1922 | "md5.js": "latest", 1923 | "mdast-util-definitions": "latest", 1924 | "mdast-util-find-and-replace": "latest", 1925 | "mdast-util-from-markdown": "latest", 1926 | "mdast-util-gfm": "latest", 1927 | "mdast-util-gfm-autolink-literal": "latest", 1928 | "mdast-util-gfm-footnote": "latest", 1929 | "mdast-util-gfm-strikethrough": "latest", 1930 | "mdast-util-gfm-table": "latest", 1931 | "mdast-util-gfm-task-list-item": "latest", 1932 | "mdast-util-mdx-expression": "latest", 1933 | "mdast-util-mdx-jsx": "latest", 1934 | "mdast-util-mdxjs-esm": "latest", 1935 | "mdast-util-phrasing": "latest", 1936 | "mdast-util-to-hast": "latest", 1937 | "mdast-util-to-markdown": "latest", 1938 | "mdast-util-to-string": "latest", 1939 | "mdn-data": "latest", 1940 | "mdurl": "latest", 1941 | "media-typer": "latest", 1942 | "mem": "latest", 1943 | "memfs": "latest", 1944 | "memoize-one": "latest", 1945 | "memoizerific": "latest", 1946 | "memory-fs": "latest", 1947 | "memory-pager": "latest", 1948 | "memorystream": "latest", 1949 | "meow": "latest", 1950 | "merge": "latest", 1951 | "merge-descriptors": "latest", 1952 | "merge-source-map": "latest", 1953 | "merge-stream": "latest", 1954 | "merge2": "latest", 1955 | "meros": "latest", 1956 | "methods": "latest", 1957 | "micromark": "latest", 1958 | "micromark-core-commonmark": "latest", 1959 | "micromark-extension-gfm": "latest", 1960 | "micromark-extension-gfm-autolink-literal": "latest", 1961 | "micromark-extension-gfm-footnote": "latest", 1962 | "micromark-extension-gfm-strikethrough": "latest", 1963 | "micromark-extension-gfm-table": "latest", 1964 | "micromark-extension-gfm-tagfilter": "latest", 1965 | "micromark-extension-gfm-task-list-item": "latest", 1966 | "micromark-factory-destination": "latest", 1967 | "micromark-factory-label": "latest", 1968 | "micromark-factory-space": "latest", 1969 | "micromark-factory-title": "latest", 1970 | "micromark-factory-whitespace": "latest", 1971 | "micromark-util-character": "latest", 1972 | "micromark-util-chunked": "latest", 1973 | "micromark-util-classify-character": "latest", 1974 | "micromark-util-combine-extensions": "latest", 1975 | "micromark-util-decode-numeric-character-reference": "latest", 1976 | "micromark-util-decode-string": "latest", 1977 | "micromark-util-encode": "latest", 1978 | "micromark-util-html-tag-name": "latest", 1979 | "micromark-util-normalize-identifier": "latest", 1980 | "micromark-util-resolve-all": "latest", 1981 | "micromark-util-sanitize-uri": "latest", 1982 | "micromark-util-subtokenize": "latest", 1983 | "micromark-util-symbol": "latest", 1984 | "micromark-util-types": "latest", 1985 | "micromatch": "latest", 1986 | "miller-rabin": "latest", 1987 | "mime": "latest", 1988 | "mime-db": "latest", 1989 | "mime-types": "latest", 1990 | "mimic-fn": "latest", 1991 | "mimic-function": "latest", 1992 | "mimic-response": "latest", 1993 | "min-document": "latest", 1994 | "min-indent": "latest", 1995 | "mini-css-extract-plugin": "latest", 1996 | "minimalistic-assert": "latest", 1997 | "minimalistic-crypto-utils": "latest", 1998 | "minimatch": "latest", 1999 | "minimist": "latest", 2000 | "minimist-options": "latest", 2001 | "minipass": "latest", 2002 | "minipass-collect": "latest", 2003 | "minipass-fetch": "latest", 2004 | "minipass-flush": "latest", 2005 | "minipass-json-stream": "latest", 2006 | "minipass-pipeline": "latest", 2007 | "minipass-sized": "latest", 2008 | "minizlib": "latest", 2009 | "mississippi": "latest", 2010 | "mitt": "latest", 2011 | "mixin-deep": "latest", 2012 | "mkdirp": "latest", 2013 | "mkdirp-classic": "latest", 2014 | "mlly": "latest", 2015 | "mnemonist": "latest", 2016 | "mocha": "latest", 2017 | "modify-values": "latest", 2018 | "module-details-from-path": "latest", 2019 | "moment": "latest", 2020 | "moment-timezone": "latest", 2021 | "mongodb": "latest", 2022 | "mongodb-connection-string-url": "latest", 2023 | "mongoose": "latest", 2024 | "moo": "latest", 2025 | "morgan": "latest", 2026 | "move-concurrently": "latest", 2027 | "mri": "latest", 2028 | "mrmime": "latest", 2029 | "ms": "latest", 2030 | "msgpack-lite": "latest", 2031 | "msgpackr": "latest", 2032 | "msgpackr-extract": "latest", 2033 | "msw": "latest", 2034 | "multer": "latest", 2035 | "multicast-dns": "latest", 2036 | "multicast-dns-service-types": "latest", 2037 | "multimatch": "latest", 2038 | "mustache": "latest", 2039 | "mute-stream": "latest", 2040 | "mz": "latest", 2041 | "naive-ui": "latest", 2042 | "nan": "latest", 2043 | "nanoid": "latest", 2044 | "nanomatch": "latest", 2045 | "napi-build-utils": "latest", 2046 | "natural-compare": "latest", 2047 | "natural-compare-lite": "latest", 2048 | "ncp": "latest", 2049 | "nearley": "latest", 2050 | "needle": "latest", 2051 | "negotiator": "latest", 2052 | "neo-async": "latest", 2053 | "nested-error-stacks": "latest", 2054 | "netmask": "latest", 2055 | "next-tick": "latest", 2056 | "nice-try": "latest", 2057 | "nise": "latest", 2058 | "no-case": "latest", 2059 | "nock": "latest", 2060 | "node-abi": "latest", 2061 | "node-abort-controller": "latest", 2062 | "node-addon-api": "latest", 2063 | "node-cache": "latest", 2064 | "node-dir": "latest", 2065 | "node-domexception": "latest", 2066 | "node-emoji": "latest", 2067 | "node-fetch": "latest", 2068 | "node-fetch-native": "latest", 2069 | "node-forge": "latest", 2070 | "node-gyp": "latest", 2071 | "node-gyp-build": "latest", 2072 | "node-gyp-build-optional-packages": "latest", 2073 | "node-html-parser": "latest", 2074 | "node-int64": "latest", 2075 | "node-libs-browser": "latest", 2076 | "node-machine-id": "latest", 2077 | "node-modules-regexp": "latest", 2078 | "node-notifier": "latest", 2079 | "node-preload": "latest", 2080 | "nodemailer": "latest", 2081 | "nodemon": "latest", 2082 | "nopt": "latest", 2083 | "normalize-package-data": "latest", 2084 | "normalize-path": "latest", 2085 | "normalize-range": "latest", 2086 | "normalize-url": "latest", 2087 | "notifications-node-client": "latest", 2088 | "npm-bundled": "latest", 2089 | "npm-install-checks": "latest", 2090 | "npm-normalize-package-bin": "latest", 2091 | "npm-package-arg": "latest", 2092 | "npm-packlist": "latest", 2093 | "npm-pick-manifest": "latest", 2094 | "npm-registry-fetch": "latest", 2095 | "npm-run-all": "latest", 2096 | "npm-run-path": "latest", 2097 | "npmlog": "latest", 2098 | "nth-check": "latest", 2099 | "nullthrows": "latest", 2100 | "num2fraction": "latest", 2101 | "number-is-nan": "latest", 2102 | "nuxt": "latest", 2103 | "nwsapi": "latest", 2104 | "nyc": "latest", 2105 | "oauth-sign": "latest", 2106 | "ob1": "latest", 2107 | "object-assign": "latest", 2108 | "object-copy": "latest", 2109 | "object-hash": "latest", 2110 | "object-inspect": "latest", 2111 | "object-is": "latest", 2112 | "object-keys": "latest", 2113 | "object-visit": "latest", 2114 | "object.assign": "latest", 2115 | "object.defaults": "latest", 2116 | "object.entries": "latest", 2117 | "object.fromentries": "latest", 2118 | "object.getownpropertydescriptors": "latest", 2119 | "object.groupby": "latest", 2120 | "object.hasown": "latest", 2121 | "object.map": "latest", 2122 | "object.omit": "latest", 2123 | "object.pick": "latest", 2124 | "object.values": "latest", 2125 | "objectorarray": "latest", 2126 | "obliterator": "latest", 2127 | "obuf": "latest", 2128 | "ohash": "latest", 2129 | "on-exit-leak-free": "latest", 2130 | "on-finished": "latest", 2131 | "on-headers": "latest", 2132 | "once": "latest", 2133 | "one-time": "latest", 2134 | "onetime": "latest", 2135 | "open": "latest", 2136 | "openapi-types": "latest", 2137 | "opener": "latest", 2138 | "opentracing": "latest", 2139 | "opn": "latest", 2140 | "optimism": "latest", 2141 | "optimist": "latest", 2142 | "optionator": "latest", 2143 | "ora": "latest", 2144 | "os-browserify": "latest", 2145 | "os-homedir": "latest", 2146 | "os-locale": "latest", 2147 | "os-name": "latest", 2148 | "os-tmpdir": "latest", 2149 | "osenv": "latest", 2150 | "ospath": "latest", 2151 | "outvariant": "latest", 2152 | "p-cancelable": "latest", 2153 | "p-defer": "latest", 2154 | "p-each-series": "latest", 2155 | "p-event": "latest", 2156 | "p-filter": "latest", 2157 | "p-finally": "latest", 2158 | "p-is-promise": "latest", 2159 | "p-limit": "latest", 2160 | "p-locate": "latest", 2161 | "p-map": "latest", 2162 | "p-queue": "latest", 2163 | "p-reduce": "latest", 2164 | "p-retry": "latest", 2165 | "p-timeout": "latest", 2166 | "p-try": "latest", 2167 | "pac-proxy-agent": "latest", 2168 | "pac-resolver": "latest", 2169 | "package-hash": "latest", 2170 | "package-json": "latest", 2171 | "package-json-from-dist": "latest", 2172 | "pacote": "latest", 2173 | "pako": "latest", 2174 | "papaparse": "latest", 2175 | "parallel-transform": "latest", 2176 | "param-case": "latest", 2177 | "parent-module": "latest", 2178 | "parse-asn1": "latest", 2179 | "parse-entities": "latest", 2180 | "parse-filepath": "latest", 2181 | "parse-glob": "latest", 2182 | "parse-json": "latest", 2183 | "parse-ms": "latest", 2184 | "parse-node-version": "latest", 2185 | "parse-passwd": "latest", 2186 | "parse-path": "latest", 2187 | "parse-url": "latest", 2188 | "parse5": "latest", 2189 | "parse5-htmlparser2-tree-adapter": "latest", 2190 | "parseurl": "latest", 2191 | "pascal-case": "latest", 2192 | "pascalcase": "latest", 2193 | "passport": "latest", 2194 | "path": "latest", 2195 | "path-browserify": "latest", 2196 | "path-case": "latest", 2197 | "path-dirname": "latest", 2198 | "path-exists": "latest", 2199 | "path-is-absolute": "latest", 2200 | "path-is-inside": "latest", 2201 | "path-key": "latest", 2202 | "path-parse": "latest", 2203 | "path-root": "latest", 2204 | "path-root-regex": "latest", 2205 | "path-scurry": "latest", 2206 | "path-to-regexp": "latest", 2207 | "path-type": "latest", 2208 | "pathe": "latest", 2209 | "pathval": "latest", 2210 | "pause": "latest", 2211 | "pause-stream": "latest", 2212 | "pbkdf2": "latest", 2213 | "pdfjs-dist": "latest", 2214 | "peek-readable": "latest", 2215 | "peek-stream": "latest", 2216 | "pend": "latest", 2217 | "performance-now": "latest", 2218 | "pg": "latest", 2219 | "pg-connection-string": "latest", 2220 | "pg-int8": "latest", 2221 | "pg-pool": "latest", 2222 | "pg-protocol": "latest", 2223 | "pg-types": "latest", 2224 | "pgpass": "latest", 2225 | "picocolors": "latest", 2226 | "picomatch": "latest", 2227 | "pidtree": "latest", 2228 | "pidusage": "latest", 2229 | "pify": "latest", 2230 | "pinia": "latest", 2231 | "pinkie": "latest", 2232 | "pinkie-promise": "latest", 2233 | "pino": "latest", 2234 | "pino-abstract-transport": "latest", 2235 | "pino-pretty": "latest", 2236 | "pino-std-serializers": "latest", 2237 | "piscina": "latest", 2238 | "pkg-conf": "latest", 2239 | "pkg-dir": "latest", 2240 | "pkg-types": "latest", 2241 | "pkg-up": "latest", 2242 | "playwright": "latest", 2243 | "playwright-core": "latest", 2244 | "please-upgrade-node": "latest", 2245 | "plugin-error": "latest", 2246 | "pluralize": "latest", 2247 | "pngjs": "latest", 2248 | "pnp-webpack-plugin": "latest", 2249 | "polished": "latest", 2250 | "popper.js": "latest", 2251 | "portfinder": "latest", 2252 | "posix-character-classes": "latest", 2253 | "possible-typed-array-names": "latest", 2254 | "postcss": "latest", 2255 | "postcss-attribute-case-insensitive": "latest", 2256 | "postcss-browser-comments": "latest", 2257 | "postcss-calc": "latest", 2258 | "postcss-clamp": "latest", 2259 | "postcss-color-functional-notation": "latest", 2260 | "postcss-color-hex-alpha": "latest", 2261 | "postcss-color-rebeccapurple": "latest", 2262 | "postcss-colormin": "latest", 2263 | "postcss-convert-values": "latest", 2264 | "postcss-custom-media": "latest", 2265 | "postcss-custom-properties": "latest", 2266 | "postcss-custom-selectors": "latest", 2267 | "postcss-dir-pseudo-class": "latest", 2268 | "postcss-discard-comments": "latest", 2269 | "postcss-discard-duplicates": "latest", 2270 | "postcss-discard-empty": "latest", 2271 | "postcss-discard-overridden": "latest", 2272 | "postcss-double-position-gradients": "latest", 2273 | "postcss-env-function": "latest", 2274 | "postcss-flexbugs-fixes": "latest", 2275 | "postcss-focus-visible": "latest", 2276 | "postcss-focus-within": "latest", 2277 | "postcss-font-variant": "latest", 2278 | "postcss-gap-properties": "latest", 2279 | "postcss-image-set-function": "latest", 2280 | "postcss-import": "latest", 2281 | "postcss-initial": "latest", 2282 | "postcss-js": "latest", 2283 | "postcss-lab-function": "latest", 2284 | "postcss-load-config": "latest", 2285 | "postcss-loader": "latest", 2286 | "postcss-logical": "latest", 2287 | "postcss-media-minmax": "latest", 2288 | "postcss-media-query-parser": "latest", 2289 | "postcss-merge-longhand": "latest", 2290 | "postcss-merge-rules": "latest", 2291 | "postcss-minify-font-values": "latest", 2292 | "postcss-minify-gradients": "latest", 2293 | "postcss-minify-params": "latest", 2294 | "postcss-minify-selectors": "latest", 2295 | "postcss-modules-extract-imports": "latest", 2296 | "postcss-modules-local-by-default": "latest", 2297 | "postcss-modules-scope": "latest", 2298 | "postcss-modules-values": "latest", 2299 | "postcss-nested": "latest", 2300 | "postcss-nesting": "latest", 2301 | "postcss-normalize": "latest", 2302 | "postcss-normalize-charset": "latest", 2303 | "postcss-normalize-display-values": "latest", 2304 | "postcss-normalize-positions": "latest", 2305 | "postcss-normalize-repeat-style": "latest", 2306 | "postcss-normalize-string": "latest", 2307 | "postcss-normalize-timing-functions": "latest", 2308 | "postcss-normalize-unicode": "latest", 2309 | "postcss-normalize-url": "latest", 2310 | "postcss-normalize-whitespace": "latest", 2311 | "postcss-opacity-percentage": "latest", 2312 | "postcss-ordered-values": "latest", 2313 | "postcss-overflow-shorthand": "latest", 2314 | "postcss-page-break": "latest", 2315 | "postcss-place": "latest", 2316 | "postcss-preset-env": "latest", 2317 | "postcss-pseudo-class-any-link": "latest", 2318 | "postcss-reduce-initial": "latest", 2319 | "postcss-reduce-transforms": "latest", 2320 | "postcss-replace-overflow-wrap": "latest", 2321 | "postcss-resolve-nested-selector": "latest", 2322 | "postcss-safe-parser": "latest", 2323 | "postcss-scss": "latest", 2324 | "postcss-selector-not": "latest", 2325 | "postcss-selector-parser": "latest", 2326 | "postcss-svgo": "latest", 2327 | "postcss-unique-selectors": "latest", 2328 | "postcss-value-parser": "latest", 2329 | "postcss-values-parser": "latest", 2330 | "postgres-array": "latest", 2331 | "postgres-bytea": "latest", 2332 | "postgres-date": "latest", 2333 | "postgres-interval": "latest", 2334 | "preact": "latest", 2335 | "prebuild-install": "latest", 2336 | "prelude-ls": "latest", 2337 | "prepend-http": "latest", 2338 | "preserve": "latest", 2339 | "prettier": "latest", 2340 | "prettier-linter-helpers": "latest", 2341 | "pretty-bytes": "latest", 2342 | "pretty-error": "latest", 2343 | "pretty-format": "latest", 2344 | "pretty-hrtime": "latest", 2345 | "pretty-ms": "latest", 2346 | "prismjs": "latest", 2347 | "private": "latest", 2348 | "proc-log": "latest", 2349 | "process": "latest", 2350 | "process-nextick-args": "latest", 2351 | "process-on-spawn": "latest", 2352 | "process-warning": "latest", 2353 | "progress": "latest", 2354 | "promise": "latest", 2355 | "promise-inflight": "latest", 2356 | "promise-polyfill": "latest", 2357 | "promise-retry": "latest", 2358 | "prompts": "latest", 2359 | "prop-types": "latest", 2360 | "propagate": "latest", 2361 | "property-expr": "latest", 2362 | "property-information": "latest", 2363 | "proto-list": "latest", 2364 | "proto3-json-serializer": "latest", 2365 | "protobufjs": "latest", 2366 | "protocols": "latest", 2367 | "proxy-addr": "latest", 2368 | "proxy-agent": "latest", 2369 | "proxy-from-env": "latest", 2370 | "prr": "latest", 2371 | "pseudomap": "latest", 2372 | "psl": "latest", 2373 | "pstree.remy": "latest", 2374 | "public-encrypt": "latest", 2375 | "pump": "latest", 2376 | "pumpify": "latest", 2377 | "punycode": "latest", 2378 | "punycode.js": "latest", 2379 | "pupa": "latest", 2380 | "puppeteer": "latest", 2381 | "puppeteer-core": "latest", 2382 | "pure-rand": "latest", 2383 | "pvtsutils": "latest", 2384 | "pvutils": "latest", 2385 | "q": "latest", 2386 | "qs": "latest", 2387 | "quasar": "latest", 2388 | "query-string": "latest", 2389 | "querystring": "latest", 2390 | "querystring-es3": "latest", 2391 | "querystringify": "latest", 2392 | "queue": "latest", 2393 | "queue-microtask": "latest", 2394 | "queue-tick": "latest", 2395 | "quick-format-unescaped": "latest", 2396 | "quick-lru": "latest", 2397 | "quickselect": "latest", 2398 | "radix-vue": "latest", 2399 | "raf": "latest", 2400 | "railroad-diagrams": "latest", 2401 | "ramda": "latest", 2402 | "randexp": "latest", 2403 | "randomatic": "latest", 2404 | "randombytes": "latest", 2405 | "randomfill": "latest", 2406 | "range-parser": "latest", 2407 | "raw-body": "latest", 2408 | "raw-loader": "latest", 2409 | "rc": "latest", 2410 | "rc-util": "latest", 2411 | "react": "latest", 2412 | "react-colorful": "latest", 2413 | "react-docgen": "latest", 2414 | "react-docgen-typescript": "latest", 2415 | "react-dom": "latest", 2416 | "react-easy-router": "latest", 2417 | "react-element-to-jsx-string": "latest", 2418 | "react-error-boundary": "latest", 2419 | "react-fast-compare": "latest", 2420 | "react-hook-form": "latest", 2421 | "react-i18next": "latest", 2422 | "react-is": "latest", 2423 | "react-lifecycles-compat": "latest", 2424 | "react-markdown": "latest", 2425 | "react-popper": "latest", 2426 | "react-redux": "latest", 2427 | "react-refresh": "latest", 2428 | "react-remove-scroll": "latest", 2429 | "react-remove-scroll-bar": "latest", 2430 | "react-router": "latest", 2431 | "react-router-dom": "latest", 2432 | "react-select": "latest", 2433 | "react-style-singleton": "latest", 2434 | "react-test-renderer": "latest", 2435 | "react-transition-group": "latest", 2436 | "read": "latest", 2437 | "read-cache": "latest", 2438 | "read-cmd-shim": "latest", 2439 | "read-package-json": "latest", 2440 | "read-package-json-fast": "latest", 2441 | "read-pkg": "latest", 2442 | "read-pkg-up": "latest", 2443 | "read-yaml-file": "latest", 2444 | "readable-stream": "latest", 2445 | "readable-web-to-node-stream": "latest", 2446 | "readdirp": "latest", 2447 | "real-require": "latest", 2448 | "realpath-native": "latest", 2449 | "recast": "latest", 2450 | "rechoir": "latest", 2451 | "recursive-readdir": "latest", 2452 | "redent": "latest", 2453 | "redeyed": "latest", 2454 | "redis": "latest", 2455 | "redis-commands": "latest", 2456 | "redis-errors": "latest", 2457 | "redis-parser": "latest", 2458 | "redux": "latest", 2459 | "redux-thunk": "latest", 2460 | "reflect-metadata": "latest", 2461 | "reflect.getprototypeof": "latest", 2462 | "regenerate": "latest", 2463 | "regenerate-unicode-properties": "latest", 2464 | "regenerator-runtime": "latest", 2465 | "regenerator-transform": "latest", 2466 | "regex-cache": "latest", 2467 | "regex-not": "latest", 2468 | "regex-parser": "latest", 2469 | "regexp-tree": "latest", 2470 | "regexp.prototype.flags": "latest", 2471 | "regexpp": "latest", 2472 | "regexpu-core": "latest", 2473 | "registry-auth-token": "latest", 2474 | "registry-url": "latest", 2475 | "regjsgen": "latest", 2476 | "regjsparser": "latest", 2477 | "relateurl": "latest", 2478 | "relay-runtime": "latest", 2479 | "release-zalgo": "latest", 2480 | "remark-gfm": "latest", 2481 | "remark-mdx": "latest", 2482 | "remark-parse": "latest", 2483 | "remark-rehype": "latest", 2484 | "remark-stringify": "latest", 2485 | "remove-accents": "latest", 2486 | "remove-trailing-separator": "latest", 2487 | "renderkid": "latest", 2488 | "repeat-element": "latest", 2489 | "repeat-string": "latest", 2490 | "repeating": "latest", 2491 | "replace-ext": "latest", 2492 | "request": "latest", 2493 | "request-progress": "latest", 2494 | "request-promise-core": "latest", 2495 | "request-promise-native": "latest", 2496 | "require-directory": "latest", 2497 | "require-from-string": "latest", 2498 | "require-in-the-middle": "latest", 2499 | "require-main-filename": "latest", 2500 | "requireindex": "latest", 2501 | "requires-port": "latest", 2502 | "reselect": "latest", 2503 | "resize-observer-polyfill": "latest", 2504 | "resolve": "latest", 2505 | "resolve-alpn": "latest", 2506 | "resolve-cwd": "latest", 2507 | "resolve-dir": "latest", 2508 | "resolve-from": "latest", 2509 | "resolve-global": "latest", 2510 | "resolve-pathname": "latest", 2511 | "resolve-pkg-maps": "latest", 2512 | "resolve-url": "latest", 2513 | "resolve-url-loader": "latest", 2514 | "resolve.exports": "latest", 2515 | "responselike": "latest", 2516 | "restore-cursor": "latest", 2517 | "ret": "latest", 2518 | "retry": "latest", 2519 | "retry-request": "latest", 2520 | "reusify": "latest", 2521 | "rfdc": "latest", 2522 | "right-align": "latest", 2523 | "rimraf": "latest", 2524 | "ripemd160": "latest", 2525 | "roarr": "latest", 2526 | "robust-predicates": "latest", 2527 | "rollup": "latest", 2528 | "rollup-plugin-terser": "latest", 2529 | "rollup-pluginutils": "latest", 2530 | "router": "latest", 2531 | "rrweb-cssom": "latest", 2532 | "rsvp": "latest", 2533 | "run-applescript": "latest", 2534 | "run-async": "latest", 2535 | "run-parallel": "latest", 2536 | "run-queue": "latest", 2537 | "rw": "latest", 2538 | "rx-lite": "latest", 2539 | "rxjs": "latest", 2540 | "sade": "latest", 2541 | "safe-array-concat": "latest", 2542 | "safe-buffer": "latest", 2543 | "safe-regex": "latest", 2544 | "safe-regex-test": "latest", 2545 | "safe-stable-stringify": "latest", 2546 | "safer-buffer": "latest", 2547 | "sane": "latest", 2548 | "sass": "latest", 2549 | "sass-loader": "latest", 2550 | "sax": "latest", 2551 | "saxes": "latest", 2552 | "scheduler": "latest", 2553 | "schema-utils": "latest", 2554 | "secure-json-parse": "latest", 2555 | "seek-bzip": "latest", 2556 | "select-hose": "latest", 2557 | "selfsigned": "latest", 2558 | "semver": "latest", 2559 | "semver-compare": "latest", 2560 | "semver-diff": "latest", 2561 | "semver-regex": "latest", 2562 | "send": "latest", 2563 | "sentence-case": "latest", 2564 | "serialize-error": "latest", 2565 | "serialize-javascript": "latest", 2566 | "serve-index": "latest", 2567 | "serve-static": "latest", 2568 | "set-blocking": "latest", 2569 | "set-cookie-parser": "latest", 2570 | "set-function-length": "latest", 2571 | "set-function-name": "latest", 2572 | "set-value": "latest", 2573 | "setimmediate": "latest", 2574 | "setprototypeof": "latest", 2575 | "sha.js": "latest", 2576 | "shallow-clone": "latest", 2577 | "shallowequal": "latest", 2578 | "sharp": "latest", 2579 | "shebang-command": "latest", 2580 | "shebang-regex": "latest", 2581 | "shell-quote": "latest", 2582 | "shelljs": "latest", 2583 | "shellwords": "latest", 2584 | "shimmer": "latest", 2585 | "side-channel": "latest", 2586 | "sift": "latest", 2587 | "siginfo": "latest", 2588 | "sigmund": "latest", 2589 | "signal-exit": "latest", 2590 | "signedsource": "latest", 2591 | "sigstore": "latest", 2592 | "simple-concat": "latest", 2593 | "simple-get": "latest", 2594 | "simple-git": "latest", 2595 | "simple-swizzle": "latest", 2596 | "simple-update-notifier": "latest", 2597 | "sinon": "latest", 2598 | "sirv": "latest", 2599 | "sisteransi": "latest", 2600 | "slash": "latest", 2601 | "slice-ansi": "latest", 2602 | "slugify": "latest", 2603 | "smart-buffer": "latest", 2604 | "snake-case": "latest", 2605 | "snapdragon": "latest", 2606 | "snapdragon-node": "latest", 2607 | "snapdragon-util": "latest", 2608 | "socket.io": "latest", 2609 | "socket.io-adapter": "latest", 2610 | "socket.io-client": "latest", 2611 | "socket.io-parser": "latest", 2612 | "sockjs": "latest", 2613 | "sockjs-client": "latest", 2614 | "socks": "latest", 2615 | "socks-proxy-agent": "latest", 2616 | "sonic-boom": "latest", 2617 | "sort-keys": "latest", 2618 | "sort-keys-length": "latest", 2619 | "source-list-map": "latest", 2620 | "source-map": "latest", 2621 | "source-map-js": "latest", 2622 | "source-map-loader": "latest", 2623 | "source-map-resolve": "latest", 2624 | "source-map-url": "latest", 2625 | "sourcemap-codec": "latest", 2626 | "space-separated-tokens": "latest", 2627 | "sparse-bitfield": "latest", 2628 | "spawn-command": "latest", 2629 | "spawn-wrap": "latest", 2630 | "spdx-correct": "latest", 2631 | "spdx-expression-parse": "latest", 2632 | "spdy": "latest", 2633 | "spdy-transport": "latest", 2634 | "split": "latest", 2635 | "split-on-first": "latest", 2636 | "split-string": "latest", 2637 | "split2": "latest", 2638 | "sponge-case": "latest", 2639 | "sprintf-js": "latest", 2640 | "sqlstring": "latest", 2641 | "ssh2": "latest", 2642 | "sshpk": "latest", 2643 | "ssri": "latest", 2644 | "stable": "latest", 2645 | "stack-generator": "latest", 2646 | "stack-trace": "latest", 2647 | "stack-utils": "latest", 2648 | "stackback": "latest", 2649 | "stackframe": "latest", 2650 | "stacktrace-gps": "latest", 2651 | "stacktrace-js": "latest", 2652 | "stacktrace-parser": "latest", 2653 | "standard-as-callback": "latest", 2654 | "static-eval": "latest", 2655 | "static-extend": "latest", 2656 | "statuses": "latest", 2657 | "std-env": "latest", 2658 | "stealthy-require": "latest", 2659 | "stop-iteration-iterator": "latest", 2660 | "stoppable": "latest", 2661 | "store2": "latest", 2662 | "storybook": "latest", 2663 | "stream-browserify": "latest", 2664 | "stream-buffers": "latest", 2665 | "stream-combiner": "latest", 2666 | "stream-combiner2": "latest", 2667 | "stream-each": "latest", 2668 | "stream-events": "latest", 2669 | "stream-http": "latest", 2670 | "stream-shift": "latest", 2671 | "streamroller": "latest", 2672 | "streamsearch": "latest", 2673 | "streamx": "latest", 2674 | "strict-event-emitter": "latest", 2675 | "strict-uri-encode": "latest", 2676 | "string-argv": "latest", 2677 | "string-env-interpolation": "latest", 2678 | "string-length": "latest", 2679 | "string-natural-compare": "latest", 2680 | "string-width": "latest", 2681 | "string.prototype.includes": "latest", 2682 | "string.prototype.matchall": "latest", 2683 | "string.prototype.padend": "latest", 2684 | "string.prototype.repeat": "latest", 2685 | "string.prototype.trim": "latest", 2686 | "string.prototype.trimend": "latest", 2687 | "string.prototype.trimstart": "latest", 2688 | "string_decoder": "latest", 2689 | "stringify-entities": "latest", 2690 | "stringify-object": "latest", 2691 | "strip-ansi": "latest", 2692 | "strip-bom": "latest", 2693 | "strip-comments": "latest", 2694 | "strip-dirs": "latest", 2695 | "strip-eof": "latest", 2696 | "strip-final-newline": "latest", 2697 | "strip-indent": "latest", 2698 | "strip-json-comments": "latest", 2699 | "strip-literal": "latest", 2700 | "strip-outer": "latest", 2701 | "strnum": "latest", 2702 | "strong-log-transformer": "latest", 2703 | "strtok3": "latest", 2704 | "stubs": "latest", 2705 | "style-loader": "latest", 2706 | "style-search": "latest", 2707 | "style-to-object": "latest", 2708 | "styled-components": "latest", 2709 | "styled-jsx": "latest", 2710 | "stylehacks": "latest", 2711 | "stylelint": "latest", 2712 | "stylelint-config-recommended": "latest", 2713 | "stylelint-config-standard": "latest", 2714 | "stylelint-scss": "latest", 2715 | "stylis": "latest", 2716 | "sucrase": "latest", 2717 | "sudo-prompt": "latest", 2718 | "superagent": "latest", 2719 | "supertest": "latest", 2720 | "supports-color": "latest", 2721 | "supports-hyperlinks": "latest", 2722 | "supports-preserve-symlinks-flag": "latest", 2723 | "svg-parser": "latest", 2724 | "svg-tags": "latest", 2725 | "svgo": "latest", 2726 | "swagger-ui-dist": "latest", 2727 | "swap-case": "latest", 2728 | "symbol-observable": "latest", 2729 | "symbol-tree": "latest", 2730 | "synchronous-promise": "latest", 2731 | "synckit": "latest", 2732 | "tabbable": "latest", 2733 | "table": "latest", 2734 | "tailwind-merge": "latest", 2735 | "tailwindcss": "latest", 2736 | "tapable": "latest", 2737 | "tar": "latest", 2738 | "tar-fs": "latest", 2739 | "tar-stream": "latest", 2740 | "tarjan-graph": "latest", 2741 | "telejson": "latest", 2742 | "temp": "latest", 2743 | "temp-dir": "latest", 2744 | "tempy": "latest", 2745 | "term-size": "latest", 2746 | "terminal-link": "latest", 2747 | "terser": "latest", 2748 | "terser-webpack-plugin": "latest", 2749 | "test-exclude": "latest", 2750 | "test-utils": "latest", 2751 | "text-decoder": "latest", 2752 | "text-extensions": "latest", 2753 | "text-hex": "latest", 2754 | "text-table": "latest", 2755 | "thenify": "latest", 2756 | "thenify-all": "latest", 2757 | "thread-stream": "latest", 2758 | "throat": "latest", 2759 | "throttle-debounce": "latest", 2760 | "throttleit": "latest", 2761 | "through": "latest", 2762 | "through2": "latest", 2763 | "thunky": "latest", 2764 | "time-stamp": "latest", 2765 | "timed-out": "latest", 2766 | "timers-browserify": "latest", 2767 | "timsort": "latest", 2768 | "tiny-case": "latest", 2769 | "tiny-emitter": "latest", 2770 | "tiny-invariant": "latest", 2771 | "tiny-warning": "latest", 2772 | "tinybench": "latest", 2773 | "tinycolor2": "latest", 2774 | "tinyexec": "latest", 2775 | "tinypool": "latest", 2776 | "tinyrainbow": "latest", 2777 | "tinyspy": "latest", 2778 | "title-case": "latest", 2779 | "titleize": "latest", 2780 | "tldts": "latest", 2781 | "tldts-core": "latest", 2782 | "tmp": "latest", 2783 | "tmpl": "latest", 2784 | "to-arraybuffer": "latest", 2785 | "to-buffer": "latest", 2786 | "to-fast-properties": "latest", 2787 | "to-object-path": "latest", 2788 | "to-readable-stream": "latest", 2789 | "to-regex": "latest", 2790 | "to-regex-range": "latest", 2791 | "toggle-selection": "latest", 2792 | "toidentifier": "latest", 2793 | "token-types": "latest", 2794 | "toposort": "latest", 2795 | "totalist": "latest", 2796 | "touch": "latest", 2797 | "tough-cookie": "latest", 2798 | "tr46": "latest", 2799 | "traverse": "latest", 2800 | "tree-kill": "latest", 2801 | "trim-lines": "latest", 2802 | "trim-newlines": "latest", 2803 | "trim-repeated": "latest", 2804 | "trim-right": "latest", 2805 | "triple-beam": "latest", 2806 | "trough": "latest", 2807 | "tryer": "latest", 2808 | "ts-api-utils": "latest", 2809 | "ts-dedent": "latest", 2810 | "ts-interface-checker": "latest", 2811 | "ts-invariant": "latest", 2812 | "ts-jest": "latest", 2813 | "ts-loader": "latest", 2814 | "ts-morph": "latest", 2815 | "ts-node": "latest", 2816 | "ts-pnp": "latest", 2817 | "ts-toolbelt": "latest", 2818 | "tsconfck": "latest", 2819 | "tsconfig-paths": "latest", 2820 | "tsconfig-paths-webpack-plugin": "latest", 2821 | "tslib": "latest", 2822 | "tslint": "latest", 2823 | "tsscmp": "latest", 2824 | "tsutils": "latest", 2825 | "tsx": "latest", 2826 | "tty-browserify": "latest", 2827 | "tuf-js": "latest", 2828 | "tunnel": "latest", 2829 | "tunnel-agent": "latest", 2830 | "tweetnacl": "latest", 2831 | "type-check": "latest", 2832 | "type-detect": "latest", 2833 | "type-is": "latest", 2834 | "typed-array-buffer": "latest", 2835 | "typed-array-byte-length": "latest", 2836 | "typed-array-byte-offset": "latest", 2837 | "typed-array-length": "latest", 2838 | "typed-assert": "latest", 2839 | "typedarray": "latest", 2840 | "typedarray-to-buffer": "latest", 2841 | "typescript": "latest", 2842 | "typescript-eslint": "latest", 2843 | "typical": "latest", 2844 | "ua-parser-js": "latest", 2845 | "uc.micro": "latest", 2846 | "ufo": "latest", 2847 | "uglify-js": "latest", 2848 | "uglify-to-browserify": "latest", 2849 | "uid": "latest", 2850 | "unbox-primitive": "latest", 2851 | "unbzip2-stream": "latest", 2852 | "unc-path-regex": "latest", 2853 | "undefsafe": "latest", 2854 | "underscore": "latest", 2855 | "undici": "latest", 2856 | "unicode-canonical-property-names-ecmascript": "latest", 2857 | "unicode-match-property-ecmascript": "latest", 2858 | "unicode-match-property-value-ecmascript": "latest", 2859 | "unicode-property-aliases-ecmascript": "latest", 2860 | "unicode-trie": "latest", 2861 | "unicorn-magic": "latest", 2862 | "unified": "latest", 2863 | "union": "latest", 2864 | "union-value": "latest", 2865 | "uniq": "latest", 2866 | "uniqs": "latest", 2867 | "unique-filename": "latest", 2868 | "unique-slug": "latest", 2869 | "unique-string": "latest", 2870 | "unist-util-generated": "latest", 2871 | "unist-util-is": "latest", 2872 | "unist-util-position": "latest", 2873 | "unist-util-remove-position": "latest", 2874 | "unist-util-stringify-position": "latest", 2875 | "unist-util-visit": "latest", 2876 | "unist-util-visit-parents": "latest", 2877 | "universal-user-agent": "latest", 2878 | "universalify": "latest", 2879 | "unixify": "latest", 2880 | "unpipe": "latest", 2881 | "unplugin": "latest", 2882 | "unplugin-vue-macros": "latest", 2883 | "unquote": "latest", 2884 | "unset-value": "latest", 2885 | "untildify": "latest", 2886 | "unzipper": "latest", 2887 | "upath": "latest", 2888 | "update-browserslist-db": "latest", 2889 | "update-notifier": "latest", 2890 | "upper-case": "latest", 2891 | "upper-case-first": "latest", 2892 | "uri-js": "latest", 2893 | "urix": "latest", 2894 | "url": "latest", 2895 | "url-join": "latest", 2896 | "url-loader": "latest", 2897 | "url-parse": "latest", 2898 | "url-parse-lax": "latest", 2899 | "url-template": "latest", 2900 | "urlpattern-polyfill": "latest", 2901 | "use": "latest", 2902 | "use-callback-ref": "latest", 2903 | "use-isomorphic-layout-effect": "latest", 2904 | "use-sidecar": "latest", 2905 | "use-sync-external-store": "latest", 2906 | "user-home": "latest", 2907 | "util": "latest", 2908 | "util-deprecate": "latest", 2909 | "util.promisify": "latest", 2910 | "utila": "latest", 2911 | "utils-merge": "latest", 2912 | "uuid": "latest", 2913 | "uvu": "latest", 2914 | "v8-compile-cache": "latest", 2915 | "v8-compile-cache-lib": "latest", 2916 | "v8-to-istanbul": "latest", 2917 | "v8flags": "latest", 2918 | "validate-npm-package-license": "latest", 2919 | "validate-npm-package-name": "latest", 2920 | "validator": "latest", 2921 | "value-equal": "latest", 2922 | "value-or-promise": "latest", 2923 | "vant": "latest", 2924 | "vary": "latest", 2925 | "vendors": "latest", 2926 | "verror": "latest", 2927 | "vfile": "latest", 2928 | "vfile-location": "latest", 2929 | "vfile-message": "latest", 2930 | "vinyl": "latest", 2931 | "vite": "latest", 2932 | "vite-node": "latest", 2933 | "vitepress": "latest", 2934 | "vlq": "latest", 2935 | "vm-browserify": "latest", 2936 | "void-elements": "latest", 2937 | "vscode-jsonrpc": "latest", 2938 | "vscode-languageserver-protocol": "latest", 2939 | "vscode-languageserver-textdocument": "latest", 2940 | "vscode-languageserver-types": "latest", 2941 | "vscode-uri": "latest", 2942 | "vue": "latest", 2943 | "vue-demi": "latest", 2944 | "vue-eslint-parser": "latest", 2945 | "vue-i18n": "latest", 2946 | "vue-router": "latest", 2947 | "vue-simple-compiler": "latest", 2948 | "vuetify": "latest", 2949 | "w3c-hr-time": "latest", 2950 | "w3c-keyname": "latest", 2951 | "w3c-xmlserializer": "latest", 2952 | "walk-up-path": "latest", 2953 | "walker": "latest", 2954 | "warning": "latest", 2955 | "watchpack": "latest", 2956 | "watchpack-chokidar2": "latest", 2957 | "wbuf": "latest", 2958 | "wcwidth": "latest", 2959 | "web-namespaces": "latest", 2960 | "web-streams-polyfill": "latest", 2961 | "web-vitals": "latest", 2962 | "webcrypto-core": "latest", 2963 | "webidl-conversions": "latest", 2964 | "webpack": "latest", 2965 | "webpack-bundle-analyzer": "latest", 2966 | "webpack-cli": "latest", 2967 | "webpack-dev-middleware": "latest", 2968 | "webpack-dev-server": "latest", 2969 | "webpack-hot-middleware": "latest", 2970 | "webpack-log": "latest", 2971 | "webpack-manifest-plugin": "latest", 2972 | "webpack-merge": "latest", 2973 | "webpack-node-externals": "latest", 2974 | "webpack-sources": "latest", 2975 | "webpack-virtual-modules": "latest", 2976 | "websocket-driver": "latest", 2977 | "websocket-extensions": "latest", 2978 | "whatwg-encoding": "latest", 2979 | "whatwg-fetch": "latest", 2980 | "whatwg-mimetype": "latest", 2981 | "whatwg-url": "latest", 2982 | "which": "latest", 2983 | "which-boxed-primitive": "latest", 2984 | "which-builtin-type": "latest", 2985 | "which-collection": "latest", 2986 | "which-module": "latest", 2987 | "which-pm-runs": "latest", 2988 | "which-typed-array": "latest", 2989 | "why-is-node-running": "latest", 2990 | "wide-align": "latest", 2991 | "widest-line": "latest", 2992 | "wildcard": "latest", 2993 | "window-size": "latest", 2994 | "windows-release": "latest", 2995 | "winston": "latest", 2996 | "winston-transport": "latest", 2997 | "word-wrap": "latest", 2998 | "wordwrap": "latest", 2999 | "worker-farm": "latest", 3000 | "workerpool": "latest", 3001 | "wrap-ansi": "latest", 3002 | "wrappy": "latest", 3003 | "write": "latest", 3004 | "write-file-atomic": "latest", 3005 | "ws": "latest", 3006 | "xdg-basedir": "latest", 3007 | "xml": "latest", 3008 | "xml-name-validator": "latest", 3009 | "xml2js": "latest", 3010 | "xmlbuilder": "latest", 3011 | "xmlchars": "latest", 3012 | "xmlcreate": "latest", 3013 | "xmlhttprequest-ssl": "latest", 3014 | "xpath": "latest", 3015 | "xregexp": "latest", 3016 | "xtend": "latest", 3017 | "y18n": "latest", 3018 | "yallist": "latest", 3019 | "yaml": "latest", 3020 | "yaml-ast-parser": "latest", 3021 | "yargs": "latest", 3022 | "yargs-parser": "latest", 3023 | "yargs-unparser": "latest", 3024 | "yauzl": "latest", 3025 | "ylru": "latest", 3026 | "yn": "latest", 3027 | "yocto-queue": "latest", 3028 | "yoctocolors-cjs": "latest", 3029 | "yup": "latest", 3030 | "zen-observable": "latest", 3031 | "zen-observable-ts": "latest", 3032 | "zip-stream": "latest", 3033 | "zod": "latest", 3034 | "zone.js": "latest", 3035 | "zustand": "latest", 3036 | "zwitch": "latest" 3037 | } 3038 | } 3039 | --------------------------------------------------------------------------------