From 04ab2abddac044669f10e546c2b24f69590645cb Mon Sep 17 00:00:00 2001 From: Long Ho Date: Mon, 18 May 2026 09:47:21 -0400 Subject: [PATCH] Use oxc resolver for import graph resolution --- .gitignore | 1 + Cargo.lock | 288 +++++++++++++++++ Cargo.toml | 1 + MODULE.bazel.lock | 24 ++ REPO.bazel | 3 + crates/codescythe/BUILD.bazel | 2 + crates/codescythe/Cargo.toml | 1 + crates/codescythe/analyze.rs | 304 ++++++++++++------ crates/codescythe_cli/BUILD.bazel | 14 + crates/codescythe_cli/e2e.rs | 113 +++++++ tests/fixtures/oxc-resolution/BUILD.bazel | 5 + tests/fixtures/oxc-resolution/README.md | 5 + tests/fixtures/oxc-resolution/app/aliased.ts | 2 + tests/fixtures/oxc-resolution/app/dead.ts | 1 + .../fixtures/oxc-resolution/app/extension.ts | 2 + tests/fixtures/oxc-resolution/app/index.ts | 7 + tests/fixtures/oxc-resolution/app/internal.ts | 2 + tests/fixtures/oxc-resolution/codescythe.json | 5 + .../node_modules/external-pkg/index.ts | 3 + .../node_modules/external-pkg/package.json | 7 + tests/fixtures/oxc-resolution/package.json | 7 + tests/fixtures/oxc-resolution/tsconfig.json | 8 + 22 files changed, 705 insertions(+), 100 deletions(-) create mode 100644 REPO.bazel create mode 100644 crates/codescythe_cli/e2e.rs create mode 100644 tests/fixtures/oxc-resolution/BUILD.bazel create mode 100644 tests/fixtures/oxc-resolution/README.md create mode 100644 tests/fixtures/oxc-resolution/app/aliased.ts create mode 100644 tests/fixtures/oxc-resolution/app/dead.ts create mode 100644 tests/fixtures/oxc-resolution/app/extension.ts create mode 100644 tests/fixtures/oxc-resolution/app/index.ts create mode 100644 tests/fixtures/oxc-resolution/app/internal.ts create mode 100644 tests/fixtures/oxc-resolution/codescythe.json create mode 100644 tests/fixtures/oxc-resolution/node_modules/external-pkg/index.ts create mode 100644 tests/fixtures/oxc-resolution/node_modules/external-pkg/package.json create mode 100644 tests/fixtures/oxc-resolution/package.json create mode 100644 tests/fixtures/oxc-resolution/tsconfig.json diff --git a/.gitignore b/.gitignore index 7f4596c..6fe531a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /bazel-* /node_modules /target +/.worktrees /.DS_Store /.idea /.vscode diff --git a/Cargo.lock b/Cargo.lock index 1a4b1b9..426d437 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,6 +87,12 @@ version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + [[package]] name = "autocfg" version = "1.5.0" @@ -208,6 +214,7 @@ dependencies = [ "oxc_allocator", "oxc_ast", "oxc_parser", + "oxc_resolver", "oxc_span", "rayon", "serde", @@ -368,12 +375,30 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "fast-glob" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9e81515b0279bf618200fd15d132e7195d2048fb46eed6f0f3c10cbc068266" +dependencies = [ + "arrayvec", +] + [[package]] name = "fastrand" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +[[package]] +name = "float-cmp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09cf3155332e944990140d967ff5eceb70df778b34f77d8075db46e4704e6d8" +dependencies = [ + "num-traits", +] + [[package]] name = "fluent-uri" version = "0.4.1" @@ -397,6 +422,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + [[package]] name = "fraction" version = "0.15.4" @@ -535,6 +569,15 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "halfbrown" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ed2f2edad8a14c8186b847909a41fbb9c3eafa44f88bd891114ed5019da09" +dependencies = [ + "hashbrown 0.16.1", +] + [[package]] name = "hashbrown" version = "0.15.5" @@ -714,6 +757,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json-strip-comments" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9301b34ecbe81051a62001a2dfa56d906628efdfbc68153e0a4d5eba58181ece" +dependencies = [ + "memchr", +] + [[package]] name = "jsonschema" version = "0.46.5" @@ -865,6 +917,12 @@ dependencies = [ "libloading", ] +[[package]] +name = "nodejs-built-in-modules" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5eb86a92577833b75522336f210c49d9ebd7dd55a44d80a92e68c668a75f27c" + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -1166,6 +1224,33 @@ dependencies = [ "unicode-id-start", ] +[[package]] +name = "oxc_resolver" +version = "11.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5632fcd47d4fdaf7ef5ee150c7001fa8ed814ce38d1a073536a366dbfc239aad" +dependencies = [ + "cfg-if", + "compact_str", + "fast-glob", + "indexmap", + "json-strip-comments", + "nodejs-built-in-modules", + "once_cell", + "papaya", + "rustc-hash", + "rustix", + "self_cell", + "serde", + "serde_json", + "simd-json", + "simdutf8", + "thiserror", + "tracing", + "url", + "windows", +] + [[package]] name = "oxc_span" version = "0.126.0" @@ -1212,6 +1297,16 @@ dependencies = [ "unicode-id-start", ] +[[package]] +name = "papaya" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "997ee03cd38c01469a7046643714f0ad28880bcb9e6679ff0666e24817ca19b7" +dependencies = [ + "equivalent", + "seize", +] + [[package]] name = "parking_lot" version = "0.12.5" @@ -1480,6 +1575,22 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "seize" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "self_cell" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" + [[package]] name = "semver" version = "1.0.28" @@ -1536,6 +1647,24 @@ dependencies = [ "zmij", ] +[[package]] +name = "simd-json" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4255126f310d2ba20048db6321c81ab376f6a6735608bf11f0785c41f01f64e3" +dependencies = [ + "halfbrown", + "ref-cast", + "simdutf8", + "value-trait", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "siphasher" version = "1.0.3" @@ -1654,6 +1783,37 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + [[package]] name = "unicode-general-category" version = "1.1.0" @@ -1696,6 +1856,18 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + [[package]] name = "utf8_iter" version = "1.0.4" @@ -1718,6 +1890,18 @@ dependencies = [ "vsimd", ] +[[package]] +name = "value-trait" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e80f0c733af0720a501b3905d22e2f97662d8eacfe082a75ed7ffb5ab08cb59" +dependencies = [ + "float-cmp", + "halfbrown", + "itoa", + "ryu", +] + [[package]] name = "version_check" version = "0.9.5" @@ -1846,12 +2030,107 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core", + "windows-link", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core", + "windows-link", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.61.2" @@ -1861,6 +2140,15 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link", +] + [[package]] name = "wit-bindgen" version = "0.51.0" diff --git a/Cargo.toml b/Cargo.toml index f83e684..fb36ec1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,6 +24,7 @@ oxc = { version = "0.126", features = ["ast_visit"] } oxc_allocator = "0.126" oxc_ast = "0.126" oxc_parser = "0.126" +oxc_resolver = "11.19.1" oxc_span = "0.126" rayon = "1.11" serde = { version = "1.0", features = ["derive"] } diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index e1cbbe3..26c441a 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -1187,6 +1187,7 @@ "anstyle-wincon_3.0.11": "{\"dependencies\":[{\"name\":\"anstyle\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"lexopt\",\"req\":\"^0.3.1\"},{\"name\":\"once_cell_polyfill\",\"req\":\"^1.56.1\",\"target\":\"cfg(windows)\"},{\"features\":[\"Win32_System_Console\",\"Win32_Foundation\"],\"name\":\"windows-sys\",\"req\":\">=0.60.2, <0.62\",\"target\":\"cfg(windows)\"}],\"features\":{}}", "anstyle_1.0.14": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"lexopt\",\"req\":\"^0.3.1\"},{\"kind\":\"dev\",\"name\":\"snapbox\",\"req\":\"^0.6.23\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "anyhow_1.0.102": "{\"dependencies\":[{\"default_features\":false,\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0.6\"},{\"features\":[\"full\"],\"kind\":\"dev\",\"name\":\"syn\",\"req\":\"^2.0\"},{\"kind\":\"dev\",\"name\":\"thiserror\",\"req\":\"^2\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.108\"}],\"features\":{\"backtrace\":[],\"default\":[\"std\"],\"std\":[]}}", + "arrayvec_0.7.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bencher\",\"req\":\"^0.1.4\"},{\"default_features\":false,\"name\":\"borsh\",\"optional\":true,\"req\":\"^1.2.0\"},{\"kind\":\"dev\",\"name\":\"matches\",\"req\":\"^0.1\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"zeroize\",\"optional\":true,\"req\":\"^1.4\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "async-trait_0.1.89": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3.30\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.74\"},{\"name\":\"quote\",\"req\":\"^1.0.35\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0.13\"},{\"default_features\":false,\"features\":[\"clone-impls\",\"full\",\"parsing\",\"printing\",\"proc-macro\",\"visit-mut\"],\"name\":\"syn\",\"req\":\"^2.0.46\"},{\"kind\":\"dev\",\"name\":\"tracing\",\"req\":\"^0.1.40\"},{\"kind\":\"dev\",\"name\":\"tracing-attributes\",\"req\":\"^0.1.27\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.81\"}],\"features\":{}}", "atomic-waker_1.1.2": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"cargo_bench_support\"],\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.4.0\"},{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3.5\"},{\"default_features\":false,\"name\":\"portable-atomic\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.7.0\"}],\"features\":{}}", "autocfg_1.5.0": "{\"dependencies\":[],\"features\":{}}", @@ -1229,13 +1230,16 @@ "equivalent_1.0.2": "{\"dependencies\":[],\"features\":{}}", "errno_0.3.14": "{\"dependencies\":[{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2\",\"target\":\"cfg(target_os=\\\"hermit\\\")\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2\",\"target\":\"cfg(target_os=\\\"wasi\\\")\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2\",\"target\":\"cfg(unix)\"},{\"features\":[\"Win32_Foundation\",\"Win32_System_Diagnostics_Debug\"],\"name\":\"windows-sys\",\"req\":\">=0.52, <0.62\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[\"std\"],\"std\":[\"libc/std\"]}}", "fancy-regex_0.18.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"bit-set\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"matches\",\"req\":\"^0.1.10\"},{\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"regex\",\"req\":\"^1.10\"},{\"default_features\":false,\"features\":[\"alloc\",\"syntax\",\"meta\",\"nfa\",\"dfa\",\"hybrid\"],\"name\":\"regex-automata\",\"req\":\"^0.4.14\"},{\"default_features\":false,\"name\":\"regex-syntax\",\"req\":\"^0.8\"}],\"features\":{\"default\":[\"unicode\",\"perf\",\"std\",\"variable-lookbehinds\"],\"perf\":[\"regex-automata/perf\"],\"std\":[\"regex-automata/std\",\"regex-syntax/std\",\"bit-set/std\"],\"track_caller\":[],\"unicode\":[\"regex-automata/unicode\",\"regex-syntax/unicode\"],\"variable-lookbehinds\":[\"regex-automata/dfa-search\"]}}", + "fast-glob_1.0.1": "{\"dependencies\":[{\"name\":\"arrayvec\",\"req\":\"^0.7.6\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion2\",\"req\":\"^3.0.2\"},{\"kind\":\"dev\",\"name\":\"glob\",\"req\":\"^0.3.3\"},{\"kind\":\"dev\",\"name\":\"glob-match\",\"req\":\"^0.2.1\"},{\"kind\":\"dev\",\"name\":\"globset\",\"req\":\"^0.4.16\"},{\"kind\":\"dev\",\"name\":\"wax\",\"req\":\"^0.6.0\"}],\"features\":{\"codspeed\":[\"criterion2/codspeed\"],\"default\":[]}}", "fastrand_2.3.0": "{\"dependencies\":[{\"features\":[\"js\"],\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.2\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.2\"},{\"features\":[\"js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.2\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"wyhash\",\"req\":\"^0.5\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"js\":[\"std\",\"getrandom\"],\"std\":[\"alloc\"]}}", "fastrand_2.4.1": "{\"dependencies\":[{\"features\":[\"wasm_js\"],\"name\":\"getrandom\",\"optional\":true,\"req\":\"^0.3.4\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3.4\"},{\"features\":[\"wasm_js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.3.4\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"kind\":\"dev\",\"name\":\"wyhash\",\"req\":\"^0.6\"}],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"js\":[\"std\",\"getrandom\"],\"std\":[\"alloc\"]}}", "fixedbitset_0.5.7": "{\"dependencies\":[{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", + "float-cmp_0.10.0": "{\"dependencies\":[{\"default_features\":false,\"name\":\"num-traits\",\"optional\":true,\"req\":\"^0.2.1\"}],\"features\":{\"default\":[\"ratio\"],\"ratio\":[\"num-traits\"],\"std\":[]}}", "fluent-uri_0.4.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"borrow-or-share\",\"req\":\"^0.2.4\"},{\"name\":\"ref-cast\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"}],\"features\":{\"alloc\":[\"borrow-or-share/alloc\",\"serde?/alloc\"],\"default\":[\"std\"],\"impl-error\":[],\"net\":[],\"std\":[\"alloc\",\"impl-error\"]}}", "fnv_1.0.7": "{\"dependencies\":[],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "foldhash_0.1.5": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"ahash\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"chrono\",\"req\":\"^0.4\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"fxhash\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"hashbrown\",\"req\":\"^0.14\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"uuid\",\"req\":\"^1.8\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "foldhash_0.2.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"ahash\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"chrono\",\"req\":\"^0.4\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"fxhash\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"hashbrown\",\"req\":\"^0.15\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"rapidhash\",\"req\":\"^3.1.0\"},{\"kind\":\"dev\",\"name\":\"uuid\",\"req\":\"^1.8\"}],\"features\":{\"default\":[\"std\"],\"nightly\":[],\"std\":[]}}", + "form_urlencoded_1.2.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"percent-encoding\",\"req\":\"^2.3.0\"}],\"features\":{\"alloc\":[\"percent-encoding/alloc\"],\"default\":[\"std\"],\"std\":[\"alloc\",\"percent-encoding/std\"]}}", "fraction_0.15.4": "{\"dependencies\":[{\"name\":\"byteorder\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"bytes\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"name\":\"juniper\",\"optional\":true,\"req\":\"^0.15\"},{\"name\":\"lazy_static\",\"optional\":true,\"req\":\"^1\"},{\"default_features\":false,\"name\":\"num\",\"req\":\"^0.4.3\"},{\"name\":\"postgres-types\",\"optional\":true,\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"serde_derive\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"default\":[\"with-bigint\",\"with-decimal\",\"with-dynaint\"],\"with-approx\":[\"with-bigint\"],\"with-bigint\":[\"num/num-bigint\",\"num/std\",\"lazy_static\"],\"with-decimal\":[],\"with-dynaint\":[],\"with-juniper-support\":[\"juniper\"],\"with-postgres-support\":[\"postgres-types\",\"byteorder\",\"bytes\"],\"with-serde-support\":[\"serde\",\"serde_derive\",\"num/serde\"],\"with-unicode\":[]}}", "futures-channel_0.3.32": "{\"dependencies\":[{\"default_features\":false,\"name\":\"futures-core\",\"req\":\"^0.3.32\"},{\"default_features\":false,\"name\":\"futures-sink\",\"optional\":true,\"req\":\"^0.3.32\"}],\"features\":{\"alloc\":[\"futures-core/alloc\"],\"cfg-target-has-atomic\":[],\"default\":[\"std\"],\"sink\":[\"futures-sink\"],\"std\":[\"alloc\",\"futures-core/std\"],\"unstable\":[]}}", "futures-core_0.3.32": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"require-cas\"],\"name\":\"portable-atomic\",\"optional\":true,\"req\":\"^1.3\"}],\"features\":{\"alloc\":[],\"cfg-target-has-atomic\":[],\"default\":[\"std\"],\"std\":[\"alloc\"],\"unstable\":[]}}", @@ -1250,6 +1254,7 @@ "getrandom_0.4.2": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1\"},{\"default_features\":false,\"name\":\"js-sys\",\"optional\":true,\"req\":\"^0.3.77\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\"), target_feature = \\\"atomics\\\"))\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(all(any(target_os = \\\"linux\\\", target_os = \\\"android\\\"), not(any(all(target_os = \\\"linux\\\", target_env = \\\"\\\"), getrandom_backend = \\\"custom\\\", getrandom_backend = \\\"linux_raw\\\", getrandom_backend = \\\"rdrand\\\", getrandom_backend = \\\"rndr\\\"))))\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(any(target_os = \\\"dragonfly\\\", target_os = \\\"freebsd\\\", target_os = \\\"hurd\\\", target_os = \\\"illumos\\\", target_os = \\\"cygwin\\\", all(target_os = \\\"horizon\\\", target_arch = \\\"arm\\\")))\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(any(target_os = \\\"haiku\\\", target_os = \\\"redox\\\", target_os = \\\"nto\\\", target_os = \\\"aix\\\"))\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(any(target_os = \\\"ios\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\", target_os = \\\"tvos\\\"))\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(any(target_os = \\\"macos\\\", target_os = \\\"openbsd\\\", target_os = \\\"vita\\\", target_os = \\\"emscripten\\\"))\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(target_os = \\\"netbsd\\\")\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(target_os = \\\"solaris\\\")\"},{\"default_features\":false,\"name\":\"libc\",\"req\":\"^0.2.154\",\"target\":\"cfg(target_os = \\\"vxworks\\\")\"},{\"default_features\":false,\"name\":\"r-efi\",\"req\":\"^6\",\"target\":\"cfg(all(target_os = \\\"uefi\\\", getrandom_backend = \\\"efi_rng\\\"))\"},{\"name\":\"rand_core\",\"optional\":true,\"req\":\"^0.10.0\"},{\"default_features\":false,\"name\":\"wasip2\",\"req\":\"^1\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p2\\\"))\"},{\"name\":\"wasip3\",\"req\":\"^0.4\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"wasi\\\", target_env = \\\"p3\\\"))\"},{\"default_features\":false,\"name\":\"wasm-bindgen\",\"optional\":true,\"req\":\"^0.2.98\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"}],\"features\":{\"std\":[],\"sys_rng\":[\"dep:rand_core\"],\"wasm_js\":[\"dep:wasm-bindgen\",\"dep:js-sys\"]}}", "globset_0.4.18": "{\"dependencies\":[{\"name\":\"aho-corasick\",\"req\":\"^1.1.1\"},{\"features\":[\"derive\"],\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1.3.2\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"bstr\",\"req\":\"^1.6.2\"},{\"kind\":\"dev\",\"name\":\"glob\",\"req\":\"^0.3.1\"},{\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.20\"},{\"default_features\":false,\"features\":[\"std\",\"perf\",\"syntax\",\"meta\",\"nfa\",\"hybrid\"],\"name\":\"regex-automata\",\"req\":\"^0.4.0\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"regex-syntax\",\"req\":\"^0.8.0\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.188\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.107\"}],\"features\":{\"arbitrary\":[\"dep:arbitrary\"],\"default\":[\"log\"],\"serde1\":[\"serde\"],\"simd-accel\":[]}}", "h2_0.4.13": "{\"dependencies\":[{\"name\":\"atomic-waker\",\"req\":\"^1.0.0\"},{\"name\":\"bytes\",\"req\":\"^1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"env_logger\",\"req\":\"^0.10\"},{\"name\":\"fnv\",\"req\":\"^1.0.5\"},{\"default_features\":false,\"name\":\"futures-core\",\"req\":\"^0.3\"},{\"default_features\":false,\"name\":\"futures-sink\",\"req\":\"^0.3\"},{\"kind\":\"dev\",\"name\":\"hex\",\"req\":\"^0.4.3\"},{\"name\":\"http\",\"req\":\"^1\"},{\"features\":[\"std\"],\"name\":\"indexmap\",\"req\":\"^2\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0.3\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.4\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.0\"},{\"name\":\"slab\",\"req\":\"^0.4.2\"},{\"features\":[\"io-util\"],\"name\":\"tokio\",\"req\":\"^1\"},{\"features\":[\"rt-multi-thread\",\"macros\",\"sync\",\"net\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tokio-rustls\",\"req\":\"^0.26\"},{\"features\":[\"codec\",\"io\"],\"name\":\"tokio-util\",\"req\":\"^0.7.1\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"tracing\",\"req\":\"^0.1.35\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.3.2\"},{\"kind\":\"dev\",\"name\":\"webpki-roots\",\"req\":\"^1\"}],\"features\":{\"stream\":[],\"unstable\":[]}}", + "halfbrown_0.4.0": "{\"dependencies\":[{\"name\":\"arrayvec\",\"optional\":true,\"req\":\"^0.7\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"name\":\"hashbrown\",\"req\":\"^0.16\"},{\"name\":\"rustc-hash\",\"optional\":true,\"req\":\"^2.1\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"arraybackend\":[\"arrayvec\"],\"default\":[],\"fxhash\":[\"rustc-hash\"]}}", "hashbrown_0.15.5": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3.1\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.1.2\"},{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1.4\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.2\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.25\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[]}}", "hashbrown_0.16.1": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"lazy_static\",\"req\":\"^1.4\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.155\",\"target\":\"cfg(unix)\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9.0\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"foldhash?/nightly\",\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[],\"serde\":[\"dep:serde_core\",\"dep:serde\"]}}", "hashbrown_0.17.0": "{\"dependencies\":[{\"name\":\"alloc\",\"optional\":true,\"package\":\"rustc-std-workspace-alloc\",\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"allocator-api2\",\"optional\":true,\"req\":\"^0.2.9\"},{\"features\":[\"allocator-api2\"],\"kind\":\"dev\",\"name\":\"bumpalo\",\"req\":\"^3.13.0\"},{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0.0\"},{\"features\":[\"html_reports\"],\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.7\"},{\"default_features\":false,\"name\":\"equivalent\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"fnv\",\"req\":\"^1.0.7\"},{\"default_features\":false,\"name\":\"foldhash\",\"optional\":true,\"req\":\"^0.2.0\"},{\"kind\":\"dev\",\"name\":\"libc\",\"req\":\"^0.2.155\",\"target\":\"cfg(unix)\"},{\"features\":[\"small_rng\"],\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.9.0\"},{\"name\":\"rayon\",\"optional\":true,\"req\":\"^1.9.0\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1.0\"}],\"features\":{\"default\":[\"default-hasher\",\"inline-more\",\"allocator-api2\",\"equivalent\",\"raw-entry\"],\"default-hasher\":[\"dep:foldhash\"],\"inline-more\":[],\"nightly\":[\"foldhash?/nightly\",\"bumpalo/allocator_api\"],\"raw-entry\":[],\"rustc-dep-of-std\":[\"nightly\",\"core\",\"alloc\",\"rustc-internal-api\"],\"rustc-internal-api\":[],\"serde\":[\"dep:serde_core\",\"dep:serde\"]}}", @@ -1283,6 +1288,7 @@ "jiff-static_0.2.23": "{\"dependencies\":[{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.6\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0.93\"},{\"name\":\"quote\",\"req\":\"^1.0.38\"},{\"name\":\"syn\",\"req\":\"^2.0.98\"}],\"features\":{\"default\":[],\"perf-inline\":[],\"tz-fat\":[],\"tzdb\":[\"dep:jiff-tzdb\"]}}", "jiff_0.2.23": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.81\"},{\"features\":[\"serde\"],\"kind\":\"dev\",\"name\":\"chrono\",\"req\":\"^0.4.38\"},{\"kind\":\"dev\",\"name\":\"chrono-tz\",\"req\":\"^0.10.0\"},{\"kind\":\"dev\",\"name\":\"hifitime\",\"req\":\"^3.9.0\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"kind\":\"dev\",\"name\":\"humantime\",\"req\":\"^2.1.0\"},{\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.39.0\"},{\"name\":\"jiff-static\",\"req\":\"=0.2.23\",\"target\":\"cfg(any())\"},{\"name\":\"jiff-static\",\"optional\":true,\"req\":\"^0.2\"},{\"name\":\"jiff-tzdb\",\"optional\":true,\"req\":\"^0.1.6\"},{\"name\":\"jiff-tzdb-platform\",\"optional\":true,\"req\":\"^0.1.3\",\"target\":\"cfg(any(windows, target_family = \\\"wasm\\\"))\"},{\"name\":\"js-sys\",\"optional\":true,\"req\":\"^0.3.50\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"name\":\"log\",\"optional\":true,\"req\":\"^0.4.21\"},{\"kind\":\"dev\",\"name\":\"log\",\"req\":\"^0.4.21\"},{\"default_features\":false,\"name\":\"portable-atomic\",\"req\":\"^1.10.0\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"name\":\"portable-atomic-util\",\"req\":\"^0.2.4\",\"target\":\"cfg(not(target_has_atomic = \\\"ptr\\\"))\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0.3\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.203\"},{\"default_features\":false,\"name\":\"serde_core\",\"optional\":true,\"req\":\"^1.0.221\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.117\"},{\"kind\":\"dev\",\"name\":\"serde_yaml\",\"req\":\"^0.9.34\"},{\"kind\":\"dev\",\"name\":\"tabwriter\",\"req\":\"^1.4.0\"},{\"features\":[\"local-offset\",\"macros\",\"parsing\"],\"kind\":\"dev\",\"name\":\"time\",\"req\":\"^0.3.36\"},{\"kind\":\"dev\",\"name\":\"time-tz\",\"req\":\"^2.0.0\"},{\"kind\":\"dev\",\"name\":\"tzfile\",\"req\":\"^0.1.3\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2.5.0\"},{\"name\":\"wasm-bindgen\",\"optional\":true,\"req\":\"^0.2.70\",\"target\":\"cfg(all(any(target_arch = \\\"wasm32\\\", target_arch = \\\"wasm64\\\"), target_os = \\\"unknown\\\"))\"},{\"default_features\":false,\"features\":[\"Win32_Foundation\",\"Win32_System_Time\"],\"name\":\"windows-sys\",\"optional\":true,\"req\":\">=0.52.0, <=0.61\",\"target\":\"cfg(windows)\"}],\"features\":{\"alloc\":[\"serde_core?/alloc\",\"portable-atomic-util/alloc\"],\"default\":[\"std\",\"tz-system\",\"tz-fat\",\"tzdb-bundle-platform\",\"tzdb-zoneinfo\",\"tzdb-concatenated\",\"perf-inline\"],\"js\":[\"dep:wasm-bindgen\",\"dep:js-sys\"],\"logging\":[\"dep:log\"],\"perf-inline\":[],\"serde\":[\"dep:serde_core\"],\"static\":[\"static-tz\",\"jiff-static?/tzdb\"],\"static-tz\":[\"dep:jiff-static\"],\"std\":[\"alloc\",\"log?/std\",\"serde_core?/std\"],\"tz-fat\":[\"jiff-static?/tz-fat\"],\"tz-system\":[\"std\",\"dep:windows-sys\"],\"tzdb-bundle-always\":[\"dep:jiff-tzdb\",\"alloc\"],\"tzdb-bundle-platform\":[\"dep:jiff-tzdb-platform\",\"alloc\"],\"tzdb-concatenated\":[\"std\"],\"tzdb-zoneinfo\":[\"std\"]}}", "js-sys_0.3.98": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1.0.0\"},{\"kind\":\"dev\",\"name\":\"futures-channel\",\"req\":\"^0.3\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"default_features\":false,\"name\":\"futures-core\",\"optional\":true,\"req\":\"^0.3.8\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"futures-lite\",\"req\":\"^2\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"default_features\":false,\"features\":[\"std\"],\"name\":\"futures-util\",\"optional\":true,\"req\":\"^0.3.31\"},{\"kind\":\"dev\",\"name\":\"half\",\"req\":\"^2\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"default_features\":false,\"name\":\"once_cell\",\"req\":\"^1.12\"},{\"default_features\":false,\"name\":\"wasm-bindgen\",\"req\":\"=0.2.121\"}],\"features\":{\"default\":[\"std\",\"unsafe-eval\"],\"futures-core-03-stream\":[\"dep:futures-util\",\"dep:futures-core\"],\"std\":[\"wasm-bindgen/std\",\"dep:futures-util\"],\"unsafe-eval\":[]}}", + "json-strip-comments_3.1.1": "{\"dependencies\":[{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion2\",\"req\":\"^3.0.2\"},{\"name\":\"memchr\",\"req\":\"^2.7.5\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0.142\"}],\"features\":{\"codspeed\":[\"criterion2/codspeed\"]}}", "jsonschema_0.46.5": "{\"dependencies\":[{\"features\":[\"serde\"],\"name\":\"ahash\",\"req\":\"^0.8\"},{\"name\":\"async-trait\",\"optional\":true,\"req\":\"^0.1.86\"},{\"features\":[\"runtime-dispatch-simd\"],\"name\":\"bytecount\",\"req\":\"^0.6\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"codspeed-criterion-compat\",\"req\":\"^4.1\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.7\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"name\":\"data-encoding\",\"req\":\"^2.9\"},{\"name\":\"email_address\",\"req\":\"^0.2.9\"},{\"name\":\"fancy-regex\",\"req\":\"^0.18\"},{\"default_features\":false,\"features\":[\"with-bigint\"],\"name\":\"fraction\",\"req\":\"^0.15\"},{\"default_features\":false,\"features\":[\"std\"],\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3\"},{\"features\":[\"wasm_js\"],\"name\":\"getrandom\",\"req\":\"^0.3.4\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"name\":\"idna\",\"req\":\"^1.0.2\"},{\"name\":\"itoa\",\"req\":\"^1\"},{\"name\":\"num-bigint\",\"optional\":true,\"req\":\"^0.4\"},{\"name\":\"num-cmp\",\"req\":\"^0.1\"},{\"name\":\"num-traits\",\"req\":\"^0.2.19\"},{\"name\":\"percent-encoding\",\"req\":\"^2.3\"},{\"name\":\"referencing\",\"req\":\"^0.46.5\"},{\"name\":\"regex\",\"req\":\"^1.11.1\"},{\"name\":\"regex-syntax\",\"req\":\"^0.8.5\"},{\"default_features\":false,\"features\":[\"json\"],\"name\":\"reqwest\",\"optional\":true,\"req\":\"^0.13\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", any(target_os = \\\"unknown\\\", target_os = \\\"none\\\")))\"},{\"default_features\":false,\"features\":[\"blocking\",\"json\",\"http2\",\"rustls-no-provider\"],\"name\":\"reqwest\",\"optional\":true,\"req\":\"^0.13\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"std\",\"tls12\"],\"name\":\"rustls\",\"optional\":true,\"req\":\"^0.23\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1.0\"},{\"name\":\"serde_json\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"tempfile\",\"req\":\"^3.13.0\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"kind\":\"dev\",\"name\":\"test-case\",\"req\":\"^3\"},{\"kind\":\"dev\",\"name\":\"test-case\",\"req\":\"^3\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"default_features\":false,\"features\":[\"rt\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1\"},{\"features\":[\"macros\",\"rt\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"name\":\"unicode-general-category\",\"req\":\"^1.1\"},{\"default_features\":false,\"features\":[\"std\",\"detect\"],\"name\":\"uuid-simd\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3.55\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"unknown\\\"))\"}],\"features\":{\"arbitrary-precision\":[\"serde_json/arbitrary_precision\",\"dep:num-bigint\"],\"default\":[\"resolve-http\",\"resolve-file\",\"tls-aws-lc-rs\"],\"resolve-async\":[\"referencing/retrieve-async\",\"reqwest\",\"dep:async-trait\",\"dep:tokio\"],\"resolve-file\":[],\"resolve-http\":[\"reqwest\",\"dep:rustls\"],\"tls-aws-lc-rs\":[\"rustls/aws-lc-rs\"],\"tls-ring\":[\"rustls/ring\"]}}", "lazy_static_1.5.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3.1\"},{\"default_features\":false,\"features\":[\"once\"],\"name\":\"spin\",\"optional\":true,\"req\":\"^0.9.8\"},{\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1\"}],\"features\":{\"spin_no_std\":[\"spin\"]}}", "leb128fmt_0.1.0": "{\"dependencies\":[],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[]}}", @@ -1304,6 +1310,7 @@ "napi-derive_3.5.6": "{\"dependencies\":[{\"name\":\"convert_case\",\"req\":\"^0.11\"},{\"default_features\":false,\"name\":\"ctor\",\"optional\":true,\"req\":\"^1.0.0\"},{\"name\":\"napi-derive-backend\",\"req\":\"^5.0.4\"},{\"name\":\"proc-macro2\",\"req\":\"^1\"},{\"name\":\"quote\",\"req\":\"^1\"},{\"features\":[\"fold\",\"full\",\"extra-traits\"],\"name\":\"syn\",\"req\":\"^2\"}],\"features\":{\"compat-mode\":[],\"default\":[\"type-def\",\"strict\"],\"full\":[\"type-def\",\"strict\",\"compat-mode\"],\"noop\":[\"napi-derive-backend/noop\"],\"strict\":[\"napi-derive-backend/strict\"],\"tracing\":[\"napi-derive-backend/tracing\"],\"type-def\":[\"napi-derive-backend/type-def\",\"ctor\"]}}", "napi-sys_3.2.1": "{\"dependencies\":[{\"name\":\"libloading\",\"req\":\"^0.9\"}],\"features\":{\"default\":[\"dyn-symbols\"],\"dyn-symbols\":[],\"experimental\":[],\"napi1\":[],\"napi10\":[\"napi9\"],\"napi2\":[\"napi1\"],\"napi3\":[\"napi2\"],\"napi4\":[\"napi3\"],\"napi5\":[\"napi4\"],\"napi6\":[\"napi5\"],\"napi7\":[\"napi6\"],\"napi8\":[\"napi7\"],\"napi9\":[\"napi8\"]}}", "napi_3.9.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"bitflags\",\"req\":\"^2\"},{\"name\":\"chrono\",\"optional\":true,\"req\":\"^0.4\"},{\"default_features\":false,\"name\":\"ctor\",\"req\":\"^1.0.0\"},{\"name\":\"encoding_rs\",\"optional\":true,\"req\":\"^0.8\"},{\"name\":\"futures\",\"req\":\"^0.3\"},{\"name\":\"futures-core\",\"optional\":true,\"req\":\"^0.3\"},{\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2\"},{\"kind\":\"build\",\"name\":\"napi-build\",\"req\":\"^2.3.2\"},{\"default_features\":false,\"name\":\"napi-sys\",\"req\":\"^3.2.1\"},{\"name\":\"nohash-hasher\",\"req\":\"^0.2.0\"},{\"name\":\"rustc-hash\",\"req\":\"^2.1.1\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1\"},{\"features\":[\"rt\",\"sync\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1\",\"target\":\"cfg(all(target_family = \\\"wasm\\\", not(tokio_unstable)))\"},{\"features\":[\"rt\",\"rt-multi-thread\",\"sync\"],\"name\":\"tokio\",\"optional\":true,\"req\":\"^1\",\"target\":\"cfg(any(all(target_family = \\\"wasm\\\", tokio_unstable), not(target_family = \\\"wasm\\\")))\"},{\"name\":\"tokio-stream\",\"optional\":true,\"req\":\"^0.1\"},{\"name\":\"tracing\",\"optional\":true,\"req\":\"^0.1\"}],\"features\":{\"async\":[\"tokio_rt\"],\"chrono_date\":[\"chrono\",\"napi5\"],\"compat-mode\":[],\"default\":[\"napi4\",\"dyn-symbols\"],\"deferred_trace\":[\"napi4\"],\"dyn-symbols\":[\"napi-sys/dyn-symbols\"],\"error_anyhow\":[\"anyhow\"],\"experimental\":[\"napi-sys/experimental\"],\"full\":[\"latin1\",\"napi10\",\"async\",\"serde-json\",\"experimental\",\"chrono_date\"],\"latin1\":[\"encoding_rs\"],\"napi1\":[],\"napi10\":[\"napi9\",\"napi-sys/napi10\"],\"napi2\":[\"napi1\",\"napi-sys/napi2\"],\"napi3\":[\"napi2\",\"napi-sys/napi3\"],\"napi4\":[\"napi3\",\"napi-sys/napi4\"],\"napi5\":[\"napi4\",\"napi-sys/napi5\"],\"napi6\":[\"napi5\",\"napi-sys/napi6\"],\"napi7\":[\"napi6\",\"napi-sys/napi7\"],\"napi8\":[\"napi7\",\"napi-sys/napi8\"],\"napi9\":[\"napi8\",\"napi-sys/napi9\"],\"node_version_detect\":[],\"noop\":[],\"object_indexmap\":[\"indexmap\"],\"serde-json\":[\"serde\",\"serde_json\"],\"serde-json-ordered\":[\"serde-json\",\"serde_json/preserve_order\"],\"tokio_fs\":[\"tokio/fs\"],\"tokio_full\":[\"tokio/full\"],\"tokio_io_std\":[\"tokio/io-std\"],\"tokio_io_util\":[\"tokio/io-util\"],\"tokio_macros\":[\"tokio/macros\"],\"tokio_net\":[\"tokio/net\"],\"tokio_process\":[\"tokio/process\"],\"tokio_rt\":[\"tokio\",\"napi4\"],\"tokio_signal\":[\"tokio/signal\"],\"tokio_sync\":[\"tokio/sync\"],\"tokio_test_util\":[\"tokio/test-util\"],\"tokio_time\":[\"tokio/time\"],\"tracing\":[\"dep:tracing\"],\"web_stream\":[\"futures-core\",\"tokio-stream\",\"napi4\",\"tokio_rt\"]}}", + "nodejs-built-in-modules_1.0.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion2\",\"req\":\"^3.0\"}],\"features\":{}}", "nohash-hasher_0.2.0": "{\"dependencies\":[],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "nonmax_0.5.5": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "num-bigint_0.4.6": "{\"dependencies\":[{\"default_features\":false,\"name\":\"arbitrary\",\"optional\":true,\"req\":\"^1\"},{\"default_features\":false,\"features\":[\"i128\"],\"name\":\"num-integer\",\"req\":\"^0.1.46\"},{\"default_features\":false,\"features\":[\"i128\"],\"name\":\"num-traits\",\"req\":\"^0.2.18\"},{\"default_features\":false,\"name\":\"quickcheck\",\"optional\":true,\"req\":\"^1\"},{\"default_features\":false,\"name\":\"rand\",\"optional\":true,\"req\":\"^0.8\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"}],\"features\":{\"arbitrary\":[\"dep:arbitrary\"],\"default\":[\"std\"],\"quickcheck\":[\"dep:quickcheck\"],\"rand\":[\"dep:rand\"],\"serde\":[\"dep:serde\"],\"std\":[\"num-integer/std\",\"num-traits/std\"]}}", @@ -1343,6 +1350,7 @@ "oxc_parser_0.127.0": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.10.0\"},{\"name\":\"cow-utils\",\"req\":\"^0.1.3\"},{\"name\":\"memchr\",\"req\":\"^2.7.6\"},{\"name\":\"num-bigint\",\"req\":\"^0.4.6\"},{\"name\":\"num-traits\",\"req\":\"^0.2.19\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ast\",\"req\":\"^0.127.0\"},{\"features\":[\"serialize\"],\"kind\":\"dev\",\"name\":\"oxc_ast\",\"req\":\"^0.127.0\"},{\"features\":[\"serialize\"],\"kind\":\"dev\",\"name\":\"oxc_ast_visit\",\"req\":\"^0.127.0\"},{\"features\":[\"assert_unchecked\",\"fieldless_enum\"],\"name\":\"oxc_data_structures\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_diagnostics\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ecmascript\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_regular_expression\",\"optional\":true,\"req\":\"^0.127.0\"},{\"name\":\"oxc_span\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_syntax\",\"req\":\"^0.127.0\"},{\"kind\":\"dev\",\"name\":\"pico-args\",\"req\":\"^0.5.0\"},{\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"name\":\"seq-macro\",\"req\":\"^0.3.6\"}],\"features\":{\"benchmarking\":[],\"default\":[\"regular_expression\"],\"mutate_tokens\":[],\"regular_expression\":[\"dep:oxc_regular_expression\"]}}", "oxc_regular_expression_0.126.0": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.10.0\"},{\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.43.2\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_ast_macros\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_diagnostics\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_span\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.126.0\"},{\"features\":[\"macros\"],\"name\":\"phf\",\"req\":\"^0.13.1\"},{\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"name\":\"unicode-id-start\",\"req\":\"^1\"}],\"features\":{}}", "oxc_regular_expression_0.127.0": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.10.0\"},{\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.43.2\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ast_macros\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_diagnostics\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_span\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.127.0\"},{\"features\":[\"macros\"],\"name\":\"phf\",\"req\":\"^0.13.1\"},{\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"name\":\"unicode-id-start\",\"req\":\"^1\"}],\"features\":{}}", + "oxc_resolver_11.19.1": "{\"dependencies\":[{\"name\":\"cfg-if\",\"req\":\"^1\"},{\"name\":\"compact_str\",\"req\":\"^0.9\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion2\",\"req\":\"^3.0.2\"},{\"kind\":\"dev\",\"name\":\"dirs\",\"req\":\"^6.0.0\"},{\"name\":\"document-features\",\"optional\":true,\"req\":\"^0.2.12\"},{\"default_features\":false,\"features\":[\"std\"],\"kind\":\"dev\",\"name\":\"fancy-regex\",\"req\":\"^0.17.0\"},{\"name\":\"fast-glob\",\"req\":\"^1\"},{\"features\":[\"serde\"],\"name\":\"indexmap\",\"req\":\"^2\"},{\"name\":\"json-strip-comments\",\"req\":\"^3.1\"},{\"name\":\"nodejs-built-in-modules\",\"req\":\"^1.0.0\"},{\"name\":\"once_cell\",\"req\":\"^1\"},{\"name\":\"papaya\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"pico-args\",\"req\":\"^0.5.0\"},{\"name\":\"pnp\",\"optional\":true,\"req\":\"^0.12.8\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.11.0\"},{\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"features\":[\"fs\"],\"name\":\"rustix\",\"req\":\"^1.1.3\",\"target\":\"cfg(any(target_os = \\\"macos\\\", target_os = \\\"linux\\\"))\"},{\"name\":\"self_cell\",\"req\":\"^1\",\"target\":\"cfg(target_endian = \\\"little\\\")\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"req\":\"^1\"},{\"features\":[\"preserve_order\"],\"name\":\"serde_json\",\"req\":\"^1\"},{\"default_features\":false,\"features\":[\"runtime-detection\"],\"name\":\"simd-json\",\"req\":\"^0.17.0\",\"target\":\"cfg(target_endian = \\\"little\\\")\"},{\"name\":\"simdutf8\",\"req\":\"^0.1\"},{\"name\":\"thiserror\",\"req\":\"^2\"},{\"name\":\"tracing\",\"req\":\"^0.1\"},{\"name\":\"url\",\"req\":\"^2\",\"target\":\"cfg(not(target_arch = \\\"wasm32\\\"))\"},{\"kind\":\"dev\",\"name\":\"vfs\",\"req\":\"^0.12.2\"},{\"kind\":\"dev\",\"name\":\"walkdir\",\"req\":\"^2\"},{\"features\":[\"Win32_Storage_FileSystem\"],\"name\":\"windows\",\"req\":\"^0.62.2\",\"target\":\"cfg(target_os = \\\"windows\\\")\"},{\"features\":[\"Win32_Storage\",\"Win32_Storage_FileSystem\"],\"kind\":\"dev\",\"name\":\"windows-sys\",\"req\":\"^0.61.2\",\"target\":\"cfg(target_os = \\\"windows\\\")\"}],\"features\":{\"codspeed\":[\"criterion2/codspeed\"],\"default\":[],\"yarn_pnp\":[\"pnp\"]}}", "oxc_semantic_0.127.0": "{\"dependencies\":[{\"features\":[\"glob\"],\"kind\":\"dev\",\"name\":\"insta\",\"req\":\"^1.43.2\"},{\"name\":\"itertools\",\"req\":\"^0.14.0\"},{\"name\":\"memchr\",\"req\":\"^2.7.6\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ast\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ast_visit\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_cfg\",\"optional\":true,\"req\":\"^0.127.0\"},{\"name\":\"oxc_diagnostics\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ecmascript\",\"req\":\"^0.127.0\"},{\"features\":[\"nonmax\",\"serde\"],\"name\":\"oxc_index\",\"req\":\"^4.1.0\"},{\"name\":\"oxc_jsdoc\",\"optional\":true,\"req\":\"^0.127.0\"},{\"features\":[\"regular_expression\"],\"kind\":\"dev\",\"name\":\"oxc_parser\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_span\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.127.0\"},{\"features\":[\"to_js_string\"],\"name\":\"oxc_syntax\",\"req\":\"^0.127.0\"},{\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"rustc-hash\",\"req\":\"^2\"},{\"name\":\"self_cell\",\"req\":\"^1.2.2\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1\"}],\"features\":{\"cfg\":[\"dep:oxc_cfg\"],\"default\":[],\"jsdoc\":[\"dep:oxc_jsdoc\"],\"linter\":[\"jsdoc\"],\"serialize\":[\"oxc_span/serialize\",\"oxc_syntax/serialize\"]}}", "oxc_span_0.126.0": "{\"dependencies\":[{\"name\":\"compact_str\",\"req\":\"^0.9.0\"},{\"features\":[\"fancy-no-syscall\"],\"name\":\"miette\",\"package\":\"oxc-miette\",\"req\":\"^2.7.1\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_ast_macros\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_estree\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.126.0\"},{\"name\":\"schemars\",\"optional\":true,\"package\":\"oxc-schemars\",\"req\":\"^0.8.27\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"default\":[],\"schemars\":[\"dep:schemars\",\"oxc_str/schemars\"],\"serialize\":[\"compact_str/serde\",\"dep:serde\",\"oxc_estree/serialize\",\"oxc_str/serialize\"]}}", "oxc_span_0.127.0": "{\"dependencies\":[{\"name\":\"compact_str\",\"req\":\"^0.9.0\"},{\"features\":[\"fancy-no-syscall\"],\"name\":\"miette\",\"package\":\"oxc-miette\",\"req\":\"^2.7.1\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ast_macros\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_estree\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.127.0\"},{\"name\":\"schemars\",\"optional\":true,\"package\":\"oxc-schemars\",\"req\":\"^0.8.27\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"default\":[],\"schemars\":[\"dep:schemars\",\"oxc_str/schemars\"],\"serialize\":[\"compact_str/serde\",\"dep:serde\",\"oxc_estree/serialize\",\"oxc_str/serialize\"]}}", @@ -1350,6 +1358,7 @@ "oxc_str_0.127.0": "{\"dependencies\":[{\"name\":\"compact_str\",\"req\":\"^0.9.0\"},{\"default_features\":false,\"name\":\"hashbrown\",\"req\":\"^0.17.0\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_estree\",\"req\":\"^0.127.0\"},{\"name\":\"schemars\",\"optional\":true,\"package\":\"oxc-schemars\",\"req\":\"^0.8.27\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"}],\"features\":{\"default\":[],\"schemars\":[\"dep:schemars\"],\"serialize\":[\"compact_str/serde\",\"dep:serde\",\"oxc_estree/serialize\"]}}", "oxc_syntax_0.126.0": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.10.0\"},{\"name\":\"cow-utils\",\"req\":\"^0.1.3\"},{\"name\":\"dragonbox_ecma\",\"optional\":true,\"req\":\"^0.1.0\"},{\"name\":\"nonmax\",\"req\":\"^0.5.5\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_ast_macros\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_estree\",\"req\":\"^0.126.0\"},{\"features\":[\"nonmax\",\"serde\"],\"name\":\"oxc_index\",\"req\":\"^4.1.0\"},{\"name\":\"oxc_span\",\"req\":\"^0.126.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.126.0\"},{\"features\":[\"macros\"],\"name\":\"phf\",\"req\":\"^0.13.1\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"unicode-id-start\",\"req\":\"^1\"}],\"features\":{\"default\":[],\"serialize\":[\"bitflags/serde\",\"dep:serde\",\"oxc_estree/serialize\"],\"to_js_string\":[\"dep:dragonbox_ecma\"]}}", "oxc_syntax_0.127.0": "{\"dependencies\":[{\"name\":\"bitflags\",\"req\":\"^2.10.0\"},{\"name\":\"cow-utils\",\"req\":\"^0.1.3\"},{\"name\":\"dragonbox_ecma\",\"optional\":true,\"req\":\"^0.1.0\"},{\"name\":\"nonmax\",\"req\":\"^0.5.5\"},{\"name\":\"oxc_allocator\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_ast_macros\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_estree\",\"req\":\"^0.127.0\"},{\"features\":[\"nonmax\",\"serde\"],\"name\":\"oxc_index\",\"req\":\"^4.1.0\"},{\"name\":\"oxc_span\",\"req\":\"^0.127.0\"},{\"name\":\"oxc_str\",\"req\":\"^0.127.0\"},{\"features\":[\"macros\"],\"name\":\"phf\",\"req\":\"^0.13.1\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"unicode-id-start\",\"req\":\"^1\"}],\"features\":{\"default\":[],\"serialize\":[\"bitflags/serde\",\"dep:serde\",\"oxc_estree/serialize\"],\"to_js_string\":[\"dep:dragonbox_ecma\"]}}", + "papaya_0.2.4": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"base64\",\"req\":\"^0.22\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"dashmap\",\"req\":\"^5\"},{\"name\":\"equivalent\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"hdrhistogram\",\"req\":\"^7\"},{\"kind\":\"dev\",\"name\":\"num_cpus\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8\"},{\"name\":\"seize\",\"req\":\"^0.5\"},{\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1\"},{\"features\":[\"fs\",\"rt\"],\"kind\":\"dev\",\"name\":\"tokio\",\"req\":\"^1\"}],\"features\":{\"default\":[],\"serde\":[\"dep:serde\"]}}", "parking_lot_0.12.5": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bincode\",\"req\":\"^1.3.3\"},{\"name\":\"lock_api\",\"req\":\"^0.4.14\"},{\"name\":\"parking_lot_core\",\"req\":\"^0.9.12\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.3\"}],\"features\":{\"arc_lock\":[\"lock_api/arc_lock\"],\"deadlock_detection\":[\"parking_lot_core/deadlock_detection\"],\"default\":[],\"hardware-lock-elision\":[],\"nightly\":[\"parking_lot_core/nightly\",\"lock_api/nightly\"],\"owning_ref\":[\"lock_api/owning_ref\"],\"send_guard\":[],\"serde\":[\"lock_api/serde\"]}}", "parking_lot_core_0.9.12": "{\"dependencies\":[{\"name\":\"backtrace\",\"optional\":true,\"req\":\"^0.3.60\"},{\"name\":\"cfg-if\",\"req\":\"^1.0.0\"},{\"name\":\"libc\",\"req\":\"^0.2.95\",\"target\":\"cfg(unix)\"},{\"name\":\"petgraph\",\"optional\":true,\"req\":\"^0.6.0\"},{\"name\":\"redox_syscall\",\"req\":\"^0.5\",\"target\":\"cfg(target_os = \\\"redox\\\")\"},{\"name\":\"smallvec\",\"req\":\"^1.6.1\"},{\"name\":\"windows-link\",\"req\":\"^0.2.0\",\"target\":\"cfg(windows)\"}],\"features\":{\"deadlock_detection\":[\"petgraph\",\"backtrace\"],\"nightly\":[]}}", "percent-encoding_2.3.2": "{\"dependencies\":[],\"features\":{\"alloc\":[],\"default\":[\"std\"],\"std\":[\"alloc\"]}}", @@ -1393,6 +1402,7 @@ "ryu_1.0.23": "{\"dependencies\":[{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.8\",\"target\":\"cfg(not(miri))\"},{\"name\":\"no-panic\",\"optional\":true,\"req\":\"^0.1\"},{\"kind\":\"dev\",\"name\":\"num_cpus\",\"req\":\"^1.8\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.10\"},{\"kind\":\"dev\",\"name\":\"rand_core\",\"req\":\"^0.10\"},{\"kind\":\"dev\",\"name\":\"rand_xorshift\",\"req\":\"^0.5\"}],\"features\":{\"small\":[]}}", "same-file_1.0.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3\"},{\"name\":\"winapi-util\",\"req\":\"^0.1.1\",\"target\":\"cfg(windows)\"}],\"features\":{}}", "scopeguard_1.2.0": "{\"dependencies\":[],\"features\":{\"default\":[\"use_std\"],\"use_std\":[]}}", + "seize_0.5.1": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.7.0\"},{\"kind\":\"dev\",\"name\":\"crossbeam-epoch\",\"req\":\"^0.9.8\"},{\"kind\":\"dev\",\"name\":\"haphazard\",\"req\":\"^0.1.8\"},{\"name\":\"libc\",\"optional\":true,\"req\":\"^0.2\"},{\"features\":[\"Win32_System_Threading\"],\"name\":\"windows-sys\",\"optional\":true,\"req\":\">=0.52, <=0.61\",\"target\":\"cfg(windows)\"}],\"features\":{\"default\":[\"fast-barrier\"],\"fast-barrier\":[\"windows-sys\",\"libc\"]}}", "self_cell_1.2.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"once_cell\",\"req\":\"=1.1.0\"},{\"name\":\"rustversion\",\"optional\":true,\"req\":\">=1\"}],\"features\":{\"old_rust\":[\"rustversion\"]}}", "semver_1.0.27": "{\"dependencies\":[{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"package\":\"serde_core\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde\"],\"std\":[]}}", "semver_1.0.28": "{\"dependencies\":[{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.8\",\"target\":\"cfg(not(miri))\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"package\":\"serde_core\",\"req\":\"^1.0.220\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"}],\"features\":{\"default\":[\"std\"],\"serde\":[\"dep:serde\"],\"std\":[]}}", @@ -1402,6 +1412,8 @@ "serde_derive_1.0.228": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"proc-macro\"],\"name\":\"proc-macro2\",\"req\":\"^1.0.74\"},{\"default_features\":false,\"features\":[\"proc-macro\"],\"name\":\"quote\",\"req\":\"^1.0.35\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1\"},{\"default_features\":false,\"features\":[\"clone-impls\",\"derive\",\"parsing\",\"printing\",\"proc-macro\"],\"name\":\"syn\",\"req\":\"^2.0.81\"}],\"features\":{\"default\":[],\"deserialize_in_place\":[]}}", "serde_json_1.0.149": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"automod\",\"req\":\"^1.0.11\"},{\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.2.3\"},{\"kind\":\"dev\",\"name\":\"indoc\",\"req\":\"^2.0.2\"},{\"name\":\"itoa\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"memchr\",\"req\":\"^2\"},{\"kind\":\"dev\",\"name\":\"ref-cast\",\"req\":\"^1.0.18\"},{\"kind\":\"dev\",\"name\":\"rustversion\",\"req\":\"^1.0.13\"},{\"default_features\":false,\"name\":\"serde\",\"req\":\"^1.0.220\",\"target\":\"cfg(any())\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0.194\"},{\"kind\":\"dev\",\"name\":\"serde_bytes\",\"req\":\"^0.11.10\"},{\"default_features\":false,\"name\":\"serde_core\",\"req\":\"^1.0.220\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1.0.166\"},{\"kind\":\"dev\",\"name\":\"serde_stacker\",\"req\":\"^0.1.8\"},{\"features\":[\"diff\"],\"kind\":\"dev\",\"name\":\"trybuild\",\"req\":\"^1.0.108\"},{\"name\":\"zmij\",\"req\":\"^1.0\"}],\"features\":{\"alloc\":[\"serde_core/alloc\"],\"arbitrary_precision\":[],\"default\":[\"std\"],\"float_roundtrip\":[],\"preserve_order\":[\"indexmap\",\"std\"],\"raw_value\":[],\"std\":[\"memchr/std\",\"serde_core/std\"],\"unbounded_depth\":[]}}", "signal-hook-registry_1.4.8": "{\"dependencies\":[{\"name\":\"errno\",\"req\":\">=0.2, <0.4\"},{\"name\":\"libc\",\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"signal-hook\",\"req\":\"~0.3\"}],\"features\":{}}", + "simd-json_0.17.0": "{\"dependencies\":[{\"name\":\"ahash\",\"optional\":true,\"req\":\"^0.8\"},{\"name\":\"alloc_counter\",\"optional\":true,\"req\":\"^0.0.4\"},{\"name\":\"beef\",\"optional\":true,\"req\":\"^0.5\"},{\"name\":\"colored\",\"optional\":true,\"req\":\"^3.0\"},{\"kind\":\"dev\",\"name\":\"core_affinity\",\"req\":\"^0.8\"},{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.7\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"kind\":\"dev\",\"name\":\"float-cmp\",\"req\":\"^0.10\"},{\"name\":\"getopts\",\"optional\":true,\"req\":\"^0.2\"},{\"kind\":\"dev\",\"name\":\"getopts\",\"req\":\"^0.2\"},{\"name\":\"halfbrown\",\"req\":\"^0.4\"},{\"name\":\"jemallocator\",\"optional\":true,\"req\":\"^0.5\"},{\"name\":\"once_cell\",\"optional\":true,\"req\":\"^1.21\"},{\"name\":\"perfcnt\",\"optional\":true,\"req\":\"^0.8\",\"target\":\"cfg(target_arch = \\\"x86_64\\\")\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.0\",\"target\":\"cfg(not(target_family = \\\"wasm\\\"))\"},{\"name\":\"ref-cast\",\"req\":\"^1.0\",\"target\":\"cfg(target_arch = \\\"x86_64\\\")\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1\"},{\"features\":[\"public_imp\",\"aarch64_neon\"],\"name\":\"simdutf8\",\"req\":\"^0.1.4\"},{\"name\":\"value-trait\",\"req\":\"^0.12\"}],\"features\":{\"128bit\":[\"value-trait/128bit\"],\"alloc\":[\"alloc_counter\"],\"approx-number-parsing\":[],\"arraybackend\":[\"halfbrown/arraybackend\"],\"bench-all\":[\"bench-apache_builds\",\"bench-event_stacktrace_10kb\",\"bench-github_events\",\"bench-canada\",\"bench-citm_catalog\",\"bench-log\",\"bench-twitter\"],\"bench-apache_builds\":[],\"bench-canada\":[],\"bench-citm_catalog\":[],\"bench-event_stacktrace_10kb\":[],\"bench-github_events\":[],\"bench-log\":[],\"bench-serde\":[\"serde_json\"],\"bench-twitter\":[],\"big-int-as-float\":[],\"default\":[\"swar-number-parsing\",\"serde_impl\",\"runtime-detection\"],\"docsrs\":[],\"hints\":[],\"known-key\":[\"once_cell\",\"ahash\"],\"no-inline\":[],\"ordered-float\":[\"value-trait/ordered-float\"],\"perf\":[\"perfcnt\",\"getopts\",\"colored\",\"serde_json\"],\"runtime-detection\":[\"value-trait/runtime-detection\"],\"serde_impl\":[\"serde\",\"serde_json\",\"halfbrown/serde\"],\"swar-number-parsing\":[],\"value-no-dup-keys\":[]}}", + "simdutf8_0.1.5": "{\"dependencies\":[],\"features\":{\"aarch64_neon\":[],\"aarch64_neon_prefetch\":[],\"default\":[\"std\"],\"hints\":[],\"public_imp\":[],\"std\":[]}}", "siphasher_1.0.2": "{\"dependencies\":[{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0\"}],\"features\":{\"default\":[\"std\"],\"serde_no_std\":[\"serde/alloc\"],\"serde_std\":[\"std\",\"serde/std\"],\"std\":[]}}", "siphasher_1.0.3": "{\"dependencies\":[{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1.0\"}],\"features\":{\"default\":[\"std\"],\"serde_no_std\":[\"serde/alloc\"],\"serde_std\":[\"std\",\"serde/std\"],\"std\":[]}}", "slab_0.4.12": "{\"dependencies\":[{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.95\"},{\"features\":[\"derive\"],\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1\"},{\"kind\":\"dev\",\"name\":\"serde_test\",\"req\":\"^1\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", @@ -1440,9 +1452,11 @@ "unicode-segmentation_1.13.2": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5\"},{\"kind\":\"dev\",\"name\":\"proptest\",\"req\":\"^1.7.0\"},{\"kind\":\"dev\",\"name\":\"quickcheck\",\"req\":\"^1.0\"}],\"features\":{\"no_std\":[]}}", "unicode-width_0.2.2": "{\"dependencies\":[{\"name\":\"core\",\"optional\":true,\"package\":\"rustc-std-workspace-core\",\"req\":\"^1.0\"},{\"name\":\"std\",\"optional\":true,\"package\":\"rustc-std-workspace-std\",\"req\":\"^1.0\"}],\"features\":{\"cjk\":[],\"default\":[\"cjk\"],\"no_std\":[],\"rustc-dep-of-std\":[\"std\",\"core\"]}}", "unicode-xid_0.2.6": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.3\"}],\"features\":{\"bench\":[],\"default\":[],\"no_std\":[]}}", + "url_2.5.8": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"bencher\",\"req\":\"^0.1\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"form_urlencoded\",\"req\":\"^1.2.2\"},{\"default_features\":false,\"features\":[\"alloc\",\"compiled_data\"],\"name\":\"idna\",\"req\":\"^1.1.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"percent-encoding\",\"req\":\"^2.3.2\"},{\"default_features\":false,\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"serde_derive\",\"optional\":true,\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_derive\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1.0\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3\",\"target\":\"cfg(all(target_arch = \\\"wasm32\\\", target_os = \\\"unknown\\\"))\"}],\"features\":{\"debugger_visualizer\":[],\"default\":[\"std\"],\"expose_internals\":[],\"serde\":[\"dep:serde\",\"dep:serde_derive\"],\"std\":[\"idna/std\",\"percent-encoding/std\",\"form_urlencoded/std\",\"serde?/std\"]}}", "utf8_iter_1.0.4": "{\"dependencies\":[],\"features\":{}}", "utf8parse_0.2.2": "{\"dependencies\":[],\"features\":{\"default\":[],\"nightly\":[]}}", "uuid-simd_0.8.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"hex-simd\",\"req\":\"^0.8.0\"},{\"name\":\"outref\",\"req\":\"^0.5.0\"},{\"name\":\"uuid\",\"optional\":true,\"req\":\"^1.2.2\"},{\"name\":\"vsimd\",\"req\":\"^0.8.0\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3.33\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"}],\"features\":{\"alloc\":[\"vsimd/alloc\"],\"default\":[\"std\",\"detect\",\"uuid\"],\"detect\":[\"vsimd/detect\"],\"std\":[\"alloc\",\"vsimd/std\"],\"unstable\":[\"vsimd/unstable\",\"hex-simd/unstable\"]}}", + "value-trait_0.12.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"abi_stable\",\"optional\":true,\"req\":\"^0.11.0\"},{\"name\":\"float-cmp\",\"req\":\"^0.10\"},{\"name\":\"halfbrown\",\"optional\":true,\"req\":\"^0.4\"},{\"name\":\"hashbrown\",\"optional\":true,\"req\":\"^0.16\"},{\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.0\"},{\"name\":\"itoa\",\"req\":\"^1\"},{\"name\":\"ordered-float\",\"optional\":true,\"req\":\"^5\"},{\"name\":\"ryu\",\"req\":\"^1\"}],\"features\":{\"128bit\":[],\"c-abi\":[\"abi_stable\"],\"custom-types\":[],\"default\":[\"custom-types\",\"halfbrown\",\"runtime-detection\"],\"indexmap\":[\"dep:indexmap\"],\"ordered-float\":[\"dep:ordered-float\"],\"portable\":[],\"runtime-detection\":[]}}", "version_check_0.9.5": "{\"dependencies\":[],\"features\":{}}", "vsimd_0.8.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"const-str\",\"req\":\"^0.5.3\"},{\"features\":[\"js\"],\"kind\":\"dev\",\"name\":\"getrandom\",\"req\":\"^0.2.8\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"},{\"kind\":\"dev\",\"name\":\"rand\",\"req\":\"^0.8.5\"},{\"kind\":\"dev\",\"name\":\"wasm-bindgen-test\",\"req\":\"^0.3.33\",\"target\":\"cfg(target_arch = \\\"wasm32\\\")\"}],\"features\":{\"alloc\":[],\"detect\":[\"std\"],\"std\":[\"alloc\"],\"unstable\":[]}}", "walkdir_2.5.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"doc-comment\",\"req\":\"^0.3\"},{\"name\":\"same-file\",\"req\":\"^1.0.1\"},{\"name\":\"winapi-util\",\"req\":\"^0.1.1\",\"target\":\"cfg(windows)\"}],\"features\":{}}", @@ -1459,8 +1473,18 @@ "wasm-metadata_0.244.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.58\"},{\"name\":\"auditable-serde\",\"optional\":true,\"req\":\"^0.8.0\"},{\"features\":[\"derive\"],\"name\":\"clap\",\"optional\":true,\"req\":\"^4.0.0\"},{\"name\":\"flate2\",\"optional\":true,\"req\":\"^1.1.0\"},{\"default_features\":false,\"features\":[\"serde\"],\"name\":\"indexmap\",\"req\":\"^2.7.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.166\"},{\"name\":\"serde_derive\",\"optional\":true,\"req\":\"^1.0.166\"},{\"name\":\"serde_json\",\"optional\":true,\"req\":\"^1\"},{\"name\":\"spdx\",\"optional\":true,\"req\":\"^0.10.1\"},{\"name\":\"url\",\"optional\":true,\"req\":\"^2.0.0\"},{\"default_features\":false,\"features\":[\"std\",\"component-model\"],\"name\":\"wasm-encoder\",\"req\":\"^0.244.0\"},{\"default_features\":false,\"features\":[\"simd\",\"std\",\"component-model\",\"hash-collections\"],\"name\":\"wasmparser\",\"req\":\"^0.244.0\"}],\"features\":{\"default\":[\"oci\",\"serde\"],\"oci\":[\"dep:auditable-serde\",\"dep:flate2\",\"dep:url\",\"dep:spdx\",\"dep:serde_json\",\"serde\"],\"serde\":[\"dep:serde_derive\",\"dep:serde\"]}}", "wasmparser_0.244.0": "{\"dependencies\":[{\"kind\":\"dev\",\"name\":\"anyhow\",\"req\":\"^1.0.58\"},{\"name\":\"bitflags\",\"req\":\"^2.4.1\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"criterion\",\"req\":\"^0.5.1\"},{\"kind\":\"dev\",\"name\":\"env_logger\",\"req\":\"^0.11\"},{\"default_features\":false,\"features\":[\"default-hasher\"],\"name\":\"hashbrown\",\"optional\":true,\"req\":\"^0.15.2\"},{\"default_features\":false,\"name\":\"indexmap\",\"optional\":true,\"req\":\"^2.7.0\"},{\"kind\":\"dev\",\"name\":\"log\",\"req\":\"^0.4.17\"},{\"kind\":\"dev\",\"name\":\"once_cell\",\"req\":\"^1.13.0\"},{\"kind\":\"dev\",\"name\":\"rayon\",\"req\":\"^1.3\"},{\"default_features\":false,\"name\":\"semver\",\"optional\":true,\"req\":\"^1.0.0\"},{\"default_features\":false,\"features\":[\"alloc\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.166\"}],\"features\":{\"component-model\":[\"dep:semver\"],\"default\":[\"std\",\"validate\",\"serde\",\"features\",\"component-model\",\"hash-collections\",\"simd\"],\"features\":[],\"hash-collections\":[\"dep:hashbrown\",\"dep:indexmap\"],\"prefer-btree-collections\":[],\"serde\":[\"dep:serde\",\"indexmap?/serde\",\"hashbrown?/serde\"],\"simd\":[],\"std\":[\"indexmap?/std\"],\"validate\":[]}}", "winapi-util_0.1.11": "{\"dependencies\":[{\"features\":[\"Win32_Foundation\",\"Win32_Storage_FileSystem\",\"Win32_System_Console\",\"Win32_System_SystemInformation\"],\"name\":\"windows-sys\",\"req\":\">=0.48.0, <=0.61\",\"target\":\"cfg(windows)\"}],\"features\":{}}", + "windows-collections_0.3.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-core\",\"req\":\"^0.62.2\"},{\"default_features\":false,\"kind\":\"dev\",\"name\":\"windows-strings\",\"req\":\"^0.5.1\"}],\"features\":{\"default\":[\"std\"],\"std\":[\"windows-core/std\"]}}", + "windows-core_0.62.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-implement\",\"req\":\"^0.60.2\"},{\"default_features\":false,\"name\":\"windows-interface\",\"req\":\"^0.59.3\"},{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"},{\"default_features\":false,\"name\":\"windows-result\",\"req\":\"^0.4.1\"},{\"default_features\":false,\"name\":\"windows-strings\",\"req\":\"^0.5.1\"}],\"features\":{\"default\":[\"std\"],\"std\":[\"windows-result/std\",\"windows-strings/std\"]}}", + "windows-future_0.3.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-core\",\"req\":\"^0.62.2\"},{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"},{\"default_features\":false,\"name\":\"windows-threading\",\"req\":\"^0.2.1\"}],\"features\":{\"default\":[\"std\"],\"std\":[\"windows-core/std\"]}}", + "windows-implement_0.60.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"quote\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"parsing\",\"proc-macro\",\"printing\",\"full\",\"clone-impls\"],\"name\":\"syn\",\"req\":\"^2.0\"}],\"features\":{}}", + "windows-interface_0.59.3": "{\"dependencies\":[{\"default_features\":false,\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"default_features\":false,\"name\":\"quote\",\"req\":\"^1.0\"},{\"default_features\":false,\"features\":[\"parsing\",\"proc-macro\",\"printing\",\"full\",\"clone-impls\"],\"name\":\"syn\",\"req\":\"^2.0\"}],\"features\":{}}", "windows-link_0.2.1": "{\"dependencies\":[],\"features\":{}}", + "windows-numerics_0.3.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-core\",\"req\":\"^0.62.2\"},{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"}],\"features\":{\"default\":[\"std\"],\"std\":[\"windows-core/std\"]}}", + "windows-result_0.4.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", + "windows-strings_0.5.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"}],\"features\":{\"default\":[\"std\"],\"std\":[]}}", "windows-sys_0.61.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"}],\"features\":{\"Wdk\":[\"Win32_Foundation\"],\"Wdk_Devices\":[\"Wdk\"],\"Wdk_Devices_Bluetooth\":[\"Wdk_Devices\"],\"Wdk_Devices_HumanInterfaceDevice\":[\"Wdk_Devices\"],\"Wdk_Foundation\":[\"Wdk\"],\"Wdk_Graphics\":[\"Wdk\"],\"Wdk_Graphics_Direct3D\":[\"Wdk_Graphics\"],\"Wdk_NetworkManagement\":[\"Wdk\"],\"Wdk_NetworkManagement_Ndis\":[\"Wdk_NetworkManagement\"],\"Wdk_NetworkManagement_WindowsFilteringPlatform\":[\"Wdk_NetworkManagement\"],\"Wdk_Storage\":[\"Wdk\"],\"Wdk_Storage_FileSystem\":[\"Wdk_Storage\"],\"Wdk_Storage_FileSystem_Minifilters\":[\"Wdk_Storage_FileSystem\"],\"Wdk_System\":[\"Wdk\"],\"Wdk_System_IO\":[\"Wdk_System\"],\"Wdk_System_Memory\":[\"Wdk_System\"],\"Wdk_System_OfflineRegistry\":[\"Wdk_System\"],\"Wdk_System_Registry\":[\"Wdk_System\"],\"Wdk_System_SystemInformation\":[\"Wdk_System\"],\"Wdk_System_SystemServices\":[\"Wdk_System\"],\"Wdk_System_Threading\":[\"Wdk_System\"],\"Win32\":[\"Win32_Foundation\"],\"Win32_Data\":[\"Win32\"],\"Win32_Data_HtmlHelp\":[\"Win32_Data\"],\"Win32_Data_RightsManagement\":[\"Win32_Data\"],\"Win32_Devices\":[\"Win32\"],\"Win32_Devices_AllJoyn\":[\"Win32_Devices\"],\"Win32_Devices_Beep\":[\"Win32_Devices\"],\"Win32_Devices_BiometricFramework\":[\"Win32_Devices\"],\"Win32_Devices_Bluetooth\":[\"Win32_Devices\"],\"Win32_Devices_Cdrom\":[\"Win32_Devices\"],\"Win32_Devices_Communication\":[\"Win32_Devices\"],\"Win32_Devices_DeviceAndDriverInstallation\":[\"Win32_Devices\"],\"Win32_Devices_DeviceQuery\":[\"Win32_Devices\"],\"Win32_Devices_Display\":[\"Win32_Devices\"],\"Win32_Devices_Dvd\":[\"Win32_Devices\"],\"Win32_Devices_Enumeration\":[\"Win32_Devices\"],\"Win32_Devices_Enumeration_Pnp\":[\"Win32_Devices_Enumeration\"],\"Win32_Devices_Fax\":[\"Win32_Devices\"],\"Win32_Devices_HumanInterfaceDevice\":[\"Win32_Devices\"],\"Win32_Devices_Nfc\":[\"Win32_Devices\"],\"Win32_Devices_Nfp\":[\"Win32_Devices\"],\"Win32_Devices_PortableDevices\":[\"Win32_Devices\"],\"Win32_Devices_Properties\":[\"Win32_Devices\"],\"Win32_Devices_Pwm\":[\"Win32_Devices\"],\"Win32_Devices_Sensors\":[\"Win32_Devices\"],\"Win32_Devices_SerialCommunication\":[\"Win32_Devices\"],\"Win32_Devices_Tapi\":[\"Win32_Devices\"],\"Win32_Devices_Usb\":[\"Win32_Devices\"],\"Win32_Devices_WebServicesOnDevices\":[\"Win32_Devices\"],\"Win32_Foundation\":[\"Win32\"],\"Win32_Gaming\":[\"Win32\"],\"Win32_Globalization\":[\"Win32\"],\"Win32_Graphics\":[\"Win32\"],\"Win32_Graphics_Dwm\":[\"Win32_Graphics\"],\"Win32_Graphics_Gdi\":[\"Win32_Graphics\"],\"Win32_Graphics_GdiPlus\":[\"Win32_Graphics\"],\"Win32_Graphics_Hlsl\":[\"Win32_Graphics\"],\"Win32_Graphics_OpenGL\":[\"Win32_Graphics\"],\"Win32_Graphics_Printing\":[\"Win32_Graphics\"],\"Win32_Graphics_Printing_PrintTicket\":[\"Win32_Graphics_Printing\"],\"Win32_Management\":[\"Win32\"],\"Win32_Management_MobileDeviceManagementRegistration\":[\"Win32_Management\"],\"Win32_Media\":[\"Win32\"],\"Win32_Media_Audio\":[\"Win32_Media\"],\"Win32_Media_DxMediaObjects\":[\"Win32_Media\"],\"Win32_Media_KernelStreaming\":[\"Win32_Media\"],\"Win32_Media_Multimedia\":[\"Win32_Media\"],\"Win32_Media_Streaming\":[\"Win32_Media\"],\"Win32_Media_WindowsMediaFormat\":[\"Win32_Media\"],\"Win32_NetworkManagement\":[\"Win32\"],\"Win32_NetworkManagement_Dhcp\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Dns\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_InternetConnectionWizard\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_IpHelper\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Multicast\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Ndis\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetBios\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetManagement\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetShell\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetworkDiagnosticsFramework\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_P2P\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_QoS\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Rras\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Snmp\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WNet\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WebDav\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WiFi\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsConnectionManager\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsFilteringPlatform\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsFirewall\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsNetworkVirtualization\":[\"Win32_NetworkManagement\"],\"Win32_Networking\":[\"Win32\"],\"Win32_Networking_ActiveDirectory\":[\"Win32_Networking\"],\"Win32_Networking_Clustering\":[\"Win32_Networking\"],\"Win32_Networking_HttpServer\":[\"Win32_Networking\"],\"Win32_Networking_Ldap\":[\"Win32_Networking\"],\"Win32_Networking_WebSocket\":[\"Win32_Networking\"],\"Win32_Networking_WinHttp\":[\"Win32_Networking\"],\"Win32_Networking_WinInet\":[\"Win32_Networking\"],\"Win32_Networking_WinSock\":[\"Win32_Networking\"],\"Win32_Networking_WindowsWebServices\":[\"Win32_Networking\"],\"Win32_Security\":[\"Win32\"],\"Win32_Security_AppLocker\":[\"Win32_Security\"],\"Win32_Security_Authentication\":[\"Win32_Security\"],\"Win32_Security_Authentication_Identity\":[\"Win32_Security_Authentication\"],\"Win32_Security_Authorization\":[\"Win32_Security\"],\"Win32_Security_Credentials\":[\"Win32_Security\"],\"Win32_Security_Cryptography\":[\"Win32_Security\"],\"Win32_Security_Cryptography_Catalog\":[\"Win32_Security_Cryptography\"],\"Win32_Security_Cryptography_Certificates\":[\"Win32_Security_Cryptography\"],\"Win32_Security_Cryptography_Sip\":[\"Win32_Security_Cryptography\"],\"Win32_Security_Cryptography_UI\":[\"Win32_Security_Cryptography\"],\"Win32_Security_DiagnosticDataQuery\":[\"Win32_Security\"],\"Win32_Security_DirectoryServices\":[\"Win32_Security\"],\"Win32_Security_EnterpriseData\":[\"Win32_Security\"],\"Win32_Security_ExtensibleAuthenticationProtocol\":[\"Win32_Security\"],\"Win32_Security_Isolation\":[\"Win32_Security\"],\"Win32_Security_LicenseProtection\":[\"Win32_Security\"],\"Win32_Security_NetworkAccessProtection\":[\"Win32_Security\"],\"Win32_Security_WinTrust\":[\"Win32_Security\"],\"Win32_Security_WinWlx\":[\"Win32_Security\"],\"Win32_Storage\":[\"Win32\"],\"Win32_Storage_Cabinets\":[\"Win32_Storage\"],\"Win32_Storage_CloudFilters\":[\"Win32_Storage\"],\"Win32_Storage_Compression\":[\"Win32_Storage\"],\"Win32_Storage_DistributedFileSystem\":[\"Win32_Storage\"],\"Win32_Storage_FileHistory\":[\"Win32_Storage\"],\"Win32_Storage_FileSystem\":[\"Win32_Storage\"],\"Win32_Storage_Imapi\":[\"Win32_Storage\"],\"Win32_Storage_IndexServer\":[\"Win32_Storage\"],\"Win32_Storage_InstallableFileSystems\":[\"Win32_Storage\"],\"Win32_Storage_IscsiDisc\":[\"Win32_Storage\"],\"Win32_Storage_Jet\":[\"Win32_Storage\"],\"Win32_Storage_Nvme\":[\"Win32_Storage\"],\"Win32_Storage_OfflineFiles\":[\"Win32_Storage\"],\"Win32_Storage_OperationRecorder\":[\"Win32_Storage\"],\"Win32_Storage_Packaging\":[\"Win32_Storage\"],\"Win32_Storage_Packaging_Appx\":[\"Win32_Storage_Packaging\"],\"Win32_Storage_ProjectedFileSystem\":[\"Win32_Storage\"],\"Win32_Storage_StructuredStorage\":[\"Win32_Storage\"],\"Win32_Storage_Vhd\":[\"Win32_Storage\"],\"Win32_Storage_Xps\":[\"Win32_Storage\"],\"Win32_System\":[\"Win32\"],\"Win32_System_AddressBook\":[\"Win32_System\"],\"Win32_System_Antimalware\":[\"Win32_System\"],\"Win32_System_ApplicationInstallationAndServicing\":[\"Win32_System\"],\"Win32_System_ApplicationVerifier\":[\"Win32_System\"],\"Win32_System_ClrHosting\":[\"Win32_System\"],\"Win32_System_Com\":[\"Win32_System\"],\"Win32_System_Com_Marshal\":[\"Win32_System_Com\"],\"Win32_System_Com_StructuredStorage\":[\"Win32_System_Com\"],\"Win32_System_Com_Urlmon\":[\"Win32_System_Com\"],\"Win32_System_ComponentServices\":[\"Win32_System\"],\"Win32_System_Console\":[\"Win32_System\"],\"Win32_System_CorrelationVector\":[\"Win32_System\"],\"Win32_System_DataExchange\":[\"Win32_System\"],\"Win32_System_DeploymentServices\":[\"Win32_System\"],\"Win32_System_DeveloperLicensing\":[\"Win32_System\"],\"Win32_System_Diagnostics\":[\"Win32_System\"],\"Win32_System_Diagnostics_Ceip\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_Debug\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_Debug_Extensions\":[\"Win32_System_Diagnostics_Debug\"],\"Win32_System_Diagnostics_Etw\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_ProcessSnapshotting\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_ToolHelp\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_TraceLogging\":[\"Win32_System_Diagnostics\"],\"Win32_System_DistributedTransactionCoordinator\":[\"Win32_System\"],\"Win32_System_Environment\":[\"Win32_System\"],\"Win32_System_ErrorReporting\":[\"Win32_System\"],\"Win32_System_EventCollector\":[\"Win32_System\"],\"Win32_System_EventLog\":[\"Win32_System\"],\"Win32_System_EventNotificationService\":[\"Win32_System\"],\"Win32_System_GroupPolicy\":[\"Win32_System\"],\"Win32_System_HostCompute\":[\"Win32_System\"],\"Win32_System_HostComputeNetwork\":[\"Win32_System\"],\"Win32_System_HostComputeSystem\":[\"Win32_System\"],\"Win32_System_Hypervisor\":[\"Win32_System\"],\"Win32_System_IO\":[\"Win32_System\"],\"Win32_System_Iis\":[\"Win32_System\"],\"Win32_System_Ioctl\":[\"Win32_System\"],\"Win32_System_JobObjects\":[\"Win32_System\"],\"Win32_System_Js\":[\"Win32_System\"],\"Win32_System_Kernel\":[\"Win32_System\"],\"Win32_System_LibraryLoader\":[\"Win32_System\"],\"Win32_System_Mailslots\":[\"Win32_System\"],\"Win32_System_Mapi\":[\"Win32_System\"],\"Win32_System_Memory\":[\"Win32_System\"],\"Win32_System_Memory_NonVolatile\":[\"Win32_System_Memory\"],\"Win32_System_MessageQueuing\":[\"Win32_System\"],\"Win32_System_MixedReality\":[\"Win32_System\"],\"Win32_System_Ole\":[\"Win32_System\"],\"Win32_System_PasswordManagement\":[\"Win32_System\"],\"Win32_System_Performance\":[\"Win32_System\"],\"Win32_System_Performance_HardwareCounterProfiling\":[\"Win32_System_Performance\"],\"Win32_System_Pipes\":[\"Win32_System\"],\"Win32_System_Power\":[\"Win32_System\"],\"Win32_System_ProcessStatus\":[\"Win32_System\"],\"Win32_System_Recovery\":[\"Win32_System\"],\"Win32_System_Registry\":[\"Win32_System\"],\"Win32_System_RemoteDesktop\":[\"Win32_System\"],\"Win32_System_RemoteManagement\":[\"Win32_System\"],\"Win32_System_RestartManager\":[\"Win32_System\"],\"Win32_System_Restore\":[\"Win32_System\"],\"Win32_System_Rpc\":[\"Win32_System\"],\"Win32_System_Search\":[\"Win32_System\"],\"Win32_System_Search_Common\":[\"Win32_System_Search\"],\"Win32_System_SecurityCenter\":[\"Win32_System\"],\"Win32_System_Services\":[\"Win32_System\"],\"Win32_System_SetupAndMigration\":[\"Win32_System\"],\"Win32_System_Shutdown\":[\"Win32_System\"],\"Win32_System_StationsAndDesktops\":[\"Win32_System\"],\"Win32_System_SubsystemForLinux\":[\"Win32_System\"],\"Win32_System_SystemInformation\":[\"Win32_System\"],\"Win32_System_SystemServices\":[\"Win32_System\"],\"Win32_System_Threading\":[\"Win32_System\"],\"Win32_System_Time\":[\"Win32_System\"],\"Win32_System_TpmBaseServices\":[\"Win32_System\"],\"Win32_System_UserAccessLogging\":[\"Win32_System\"],\"Win32_System_Variant\":[\"Win32_System\"],\"Win32_System_VirtualDosMachines\":[\"Win32_System\"],\"Win32_System_WindowsProgramming\":[\"Win32_System\"],\"Win32_System_Wmi\":[\"Win32_System\"],\"Win32_UI\":[\"Win32\"],\"Win32_UI_Accessibility\":[\"Win32_UI\"],\"Win32_UI_ColorSystem\":[\"Win32_UI\"],\"Win32_UI_Controls\":[\"Win32_UI\"],\"Win32_UI_Controls_Dialogs\":[\"Win32_UI_Controls\"],\"Win32_UI_HiDpi\":[\"Win32_UI\"],\"Win32_UI_Input\":[\"Win32_UI\"],\"Win32_UI_Input_Ime\":[\"Win32_UI_Input\"],\"Win32_UI_Input_KeyboardAndMouse\":[\"Win32_UI_Input\"],\"Win32_UI_Input_Pointer\":[\"Win32_UI_Input\"],\"Win32_UI_Input_Touch\":[\"Win32_UI_Input\"],\"Win32_UI_Input_XboxController\":[\"Win32_UI_Input\"],\"Win32_UI_InteractionContext\":[\"Win32_UI\"],\"Win32_UI_Magnification\":[\"Win32_UI\"],\"Win32_UI_Shell\":[\"Win32_UI\"],\"Win32_UI_Shell_Common\":[\"Win32_UI_Shell\"],\"Win32_UI_Shell_PropertiesSystem\":[\"Win32_UI_Shell\"],\"Win32_UI_TabletPC\":[\"Win32_UI\"],\"Win32_UI_TextServices\":[\"Win32_UI\"],\"Win32_UI_WindowsAndMessaging\":[\"Win32_UI\"],\"Win32_Web\":[\"Win32\"],\"Win32_Web_InternetExplorer\":[\"Win32_Web\"],\"default\":[],\"docs\":[]}}", + "windows-threading_0.2.1": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-link\",\"req\":\"^0.2.1\"}],\"features\":{}}", + "windows_0.62.2": "{\"dependencies\":[{\"default_features\":false,\"name\":\"windows-collections\",\"req\":\"^0.3.2\"},{\"default_features\":false,\"name\":\"windows-core\",\"req\":\"^0.62.2\"},{\"default_features\":false,\"name\":\"windows-future\",\"req\":\"^0.3.2\"},{\"default_features\":false,\"name\":\"windows-numerics\",\"req\":\"^0.3.1\"}],\"features\":{\"AI\":[\"Foundation\"],\"AI_Actions\":[\"AI\"],\"AI_Actions_Hosting\":[\"AI_Actions\"],\"AI_Actions_Provider\":[\"AI_Actions\"],\"AI_Agents\":[\"AI\"],\"AI_Agents_Mcp\":[\"AI_Agents\"],\"AI_MachineLearning\":[\"AI\"],\"ApplicationModel\":[\"Foundation\"],\"ApplicationModel_Activation\":[\"ApplicationModel\"],\"ApplicationModel_AppExtensions\":[\"ApplicationModel\"],\"ApplicationModel_AppService\":[\"ApplicationModel\"],\"ApplicationModel_Appointments\":[\"ApplicationModel\"],\"ApplicationModel_Appointments_AppointmentsProvider\":[\"ApplicationModel_Appointments\"],\"ApplicationModel_Appointments_DataProvider\":[\"ApplicationModel_Appointments\"],\"ApplicationModel_Background\":[\"ApplicationModel\"],\"ApplicationModel_Calls\":[\"ApplicationModel\"],\"ApplicationModel_Calls_Background\":[\"ApplicationModel_Calls\"],\"ApplicationModel_Calls_Provider\":[\"ApplicationModel_Calls\"],\"ApplicationModel_Chat\":[\"ApplicationModel\"],\"ApplicationModel_CommunicationBlocking\":[\"ApplicationModel\"],\"ApplicationModel_Contacts\":[\"ApplicationModel\"],\"ApplicationModel_Contacts_DataProvider\":[\"ApplicationModel_Contacts\"],\"ApplicationModel_Contacts_Provider\":[\"ApplicationModel_Contacts\"],\"ApplicationModel_ConversationalAgent\":[\"ApplicationModel\"],\"ApplicationModel_Core\":[\"ApplicationModel\"],\"ApplicationModel_DataTransfer\":[\"ApplicationModel\"],\"ApplicationModel_DataTransfer_DragDrop\":[\"ApplicationModel_DataTransfer\"],\"ApplicationModel_DataTransfer_DragDrop_Core\":[\"ApplicationModel_DataTransfer_DragDrop\"],\"ApplicationModel_DataTransfer_ShareTarget\":[\"ApplicationModel_DataTransfer\"],\"ApplicationModel_Email\":[\"ApplicationModel\"],\"ApplicationModel_Email_DataProvider\":[\"ApplicationModel_Email\"],\"ApplicationModel_ExtendedExecution\":[\"ApplicationModel\"],\"ApplicationModel_ExtendedExecution_Foreground\":[\"ApplicationModel_ExtendedExecution\"],\"ApplicationModel_Holographic\":[\"ApplicationModel\"],\"ApplicationModel_LockScreen\":[\"ApplicationModel\"],\"ApplicationModel_PackageExtensions\":[\"ApplicationModel\"],\"ApplicationModel_Payments\":[\"ApplicationModel\"],\"ApplicationModel_Payments_Provider\":[\"ApplicationModel_Payments\"],\"ApplicationModel_Preview\":[\"ApplicationModel\"],\"ApplicationModel_Preview_Holographic\":[\"ApplicationModel_Preview\"],\"ApplicationModel_Preview_InkWorkspace\":[\"ApplicationModel_Preview\"],\"ApplicationModel_Preview_Notes\":[\"ApplicationModel_Preview\"],\"ApplicationModel_Resources\":[\"ApplicationModel\"],\"ApplicationModel_Resources_Core\":[\"ApplicationModel_Resources\"],\"ApplicationModel_Resources_Management\":[\"ApplicationModel_Resources\"],\"ApplicationModel_Search\":[\"ApplicationModel\"],\"ApplicationModel_Search_Core\":[\"ApplicationModel_Search\"],\"ApplicationModel_UserActivities\":[\"ApplicationModel\"],\"ApplicationModel_UserActivities_Core\":[\"ApplicationModel_UserActivities\"],\"ApplicationModel_UserDataAccounts\":[\"ApplicationModel\"],\"ApplicationModel_UserDataAccounts_Provider\":[\"ApplicationModel_UserDataAccounts\"],\"ApplicationModel_UserDataAccounts_SystemAccess\":[\"ApplicationModel_UserDataAccounts\"],\"ApplicationModel_UserDataTasks\":[\"ApplicationModel\"],\"ApplicationModel_UserDataTasks_DataProvider\":[\"ApplicationModel_UserDataTasks\"],\"ApplicationModel_VoiceCommands\":[\"ApplicationModel\"],\"ApplicationModel_Wallet\":[\"ApplicationModel\"],\"ApplicationModel_Wallet_System\":[\"ApplicationModel_Wallet\"],\"Data\":[\"Foundation\"],\"Data_Html\":[\"Data\"],\"Data_Json\":[\"Data\"],\"Data_Pdf\":[\"Data\"],\"Data_Text\":[\"Data\"],\"Data_Xml\":[\"Data\"],\"Data_Xml_Dom\":[\"Data_Xml\"],\"Data_Xml_Xsl\":[\"Data_Xml\"],\"Devices\":[\"Foundation\"],\"Devices_Adc\":[\"Devices\"],\"Devices_Adc_Provider\":[\"Devices_Adc\"],\"Devices_Background\":[\"Devices\"],\"Devices_Bluetooth\":[\"Devices\"],\"Devices_Bluetooth_Advertisement\":[\"Devices_Bluetooth\"],\"Devices_Bluetooth_Background\":[\"Devices_Bluetooth\"],\"Devices_Bluetooth_GenericAttributeProfile\":[\"Devices_Bluetooth\"],\"Devices_Bluetooth_Rfcomm\":[\"Devices_Bluetooth\"],\"Devices_Custom\":[\"Devices\"],\"Devices_Display\":[\"Devices\"],\"Devices_Display_Core\":[\"Devices_Display\"],\"Devices_Enumeration\":[\"Devices\"],\"Devices_Enumeration_Pnp\":[\"Devices_Enumeration\"],\"Devices_Geolocation\":[\"Devices\"],\"Devices_Geolocation_Geofencing\":[\"Devices_Geolocation\"],\"Devices_Geolocation_Provider\":[\"Devices_Geolocation\"],\"Devices_Gpio\":[\"Devices\"],\"Devices_Gpio_Provider\":[\"Devices_Gpio\"],\"Devices_Haptics\":[\"Devices\"],\"Devices_HumanInterfaceDevice\":[\"Devices\"],\"Devices_I2c\":[\"Devices\"],\"Devices_I2c_Provider\":[\"Devices_I2c\"],\"Devices_Input\":[\"Devices\"],\"Devices_Input_Preview\":[\"Devices_Input\"],\"Devices_Lights\":[\"Devices\"],\"Devices_Lights_Effects\":[\"Devices_Lights\"],\"Devices_Midi\":[\"Devices\"],\"Devices_PointOfService\":[\"Devices\"],\"Devices_PointOfService_Provider\":[\"Devices_PointOfService\"],\"Devices_Portable\":[\"Devices\"],\"Devices_Power\":[\"Devices\"],\"Devices_Printers\":[\"Devices\"],\"Devices_Printers_Extensions\":[\"Devices_Printers\"],\"Devices_Pwm\":[\"Devices\"],\"Devices_Pwm_Provider\":[\"Devices_Pwm\"],\"Devices_Radios\":[\"Devices\"],\"Devices_Scanners\":[\"Devices\"],\"Devices_Sensors\":[\"Devices\"],\"Devices_Sensors_Custom\":[\"Devices_Sensors\"],\"Devices_SerialCommunication\":[\"Devices\"],\"Devices_SmartCards\":[\"Devices\"],\"Devices_Sms\":[\"Devices\"],\"Devices_Spi\":[\"Devices\"],\"Devices_Spi_Provider\":[\"Devices_Spi\"],\"Devices_Usb\":[\"Devices\"],\"Devices_WiFi\":[\"Devices\"],\"Devices_WiFiDirect\":[\"Devices\"],\"Devices_WiFiDirect_Services\":[\"Devices_WiFiDirect\"],\"Foundation\":[],\"Foundation_Collections\":[\"Foundation\"],\"Foundation_Diagnostics\":[\"Foundation\"],\"Foundation_Metadata\":[\"Foundation\"],\"Foundation_Numerics\":[\"Foundation\"],\"Gaming\":[\"Foundation\"],\"Gaming_Input\":[\"Gaming\"],\"Gaming_Input_Custom\":[\"Gaming_Input\"],\"Gaming_Input_ForceFeedback\":[\"Gaming_Input\"],\"Gaming_Input_Preview\":[\"Gaming_Input\"],\"Gaming_Preview\":[\"Gaming\"],\"Gaming_Preview_GamesEnumeration\":[\"Gaming_Preview\"],\"Gaming_UI\":[\"Gaming\"],\"Gaming_XboxLive\":[\"Gaming\"],\"Gaming_XboxLive_Storage\":[\"Gaming_XboxLive\"],\"Globalization\":[\"Foundation\"],\"Globalization_Collation\":[\"Globalization\"],\"Globalization_DateTimeFormatting\":[\"Globalization\"],\"Globalization_Fonts\":[\"Globalization\"],\"Globalization_NumberFormatting\":[\"Globalization\"],\"Globalization_PhoneNumberFormatting\":[\"Globalization\"],\"Graphics\":[\"Foundation\"],\"Graphics_Capture\":[\"Graphics\"],\"Graphics_DirectX\":[\"Graphics\"],\"Graphics_DirectX_Direct3D11\":[\"Graphics_DirectX\"],\"Graphics_Display\":[\"Graphics\"],\"Graphics_Display_Core\":[\"Graphics_Display\"],\"Graphics_Effects\":[\"Graphics\"],\"Graphics_Holographic\":[\"Graphics\"],\"Graphics_Imaging\":[\"Graphics\"],\"Graphics_Printing\":[\"Graphics\"],\"Graphics_Printing3D\":[\"Graphics\"],\"Graphics_Printing_OptionDetails\":[\"Graphics_Printing\"],\"Graphics_Printing_PrintSupport\":[\"Graphics_Printing\"],\"Graphics_Printing_PrintTicket\":[\"Graphics_Printing\"],\"Graphics_Printing_ProtectedPrint\":[\"Graphics_Printing\"],\"Graphics_Printing_Workflow\":[\"Graphics_Printing\"],\"Management\":[\"Foundation\"],\"Management_Core\":[\"Management\"],\"Management_Deployment\":[\"Management\"],\"Management_Deployment_Preview\":[\"Management_Deployment\"],\"Management_Policies\":[\"Management\"],\"Management_Setup\":[\"Management\"],\"Management_Update\":[\"Management\"],\"Management_Workplace\":[\"Management\"],\"Media\":[\"Foundation\"],\"Media_AppBroadcasting\":[\"Media\"],\"Media_AppRecording\":[\"Media\"],\"Media_Audio\":[\"Media\"],\"Media_Capture\":[\"Media\"],\"Media_Capture_Core\":[\"Media_Capture\"],\"Media_Capture_Frames\":[\"Media_Capture\"],\"Media_Casting\":[\"Media\"],\"Media_ClosedCaptioning\":[\"Media\"],\"Media_ContentRestrictions\":[\"Media\"],\"Media_Control\":[\"Media\"],\"Media_Core\":[\"Media\"],\"Media_Core_Preview\":[\"Media_Core\"],\"Media_Devices\":[\"Media\"],\"Media_Devices_Core\":[\"Media_Devices\"],\"Media_DialProtocol\":[\"Media\"],\"Media_Editing\":[\"Media\"],\"Media_Effects\":[\"Media\"],\"Media_FaceAnalysis\":[\"Media\"],\"Media_Import\":[\"Media\"],\"Media_MediaProperties\":[\"Media\"],\"Media_Miracast\":[\"Media\"],\"Media_Ocr\":[\"Media\"],\"Media_PlayTo\":[\"Media\"],\"Media_Playback\":[\"Media\"],\"Media_Playlists\":[\"Media\"],\"Media_Protection\":[\"Media\"],\"Media_Protection_PlayReady\":[\"Media_Protection\"],\"Media_Render\":[\"Media\"],\"Media_SpeechRecognition\":[\"Media\"],\"Media_SpeechSynthesis\":[\"Media\"],\"Media_Streaming\":[\"Media\"],\"Media_Streaming_Adaptive\":[\"Media_Streaming\"],\"Media_Transcoding\":[\"Media\"],\"Networking\":[\"Foundation\"],\"Networking_BackgroundTransfer\":[\"Networking\"],\"Networking_Connectivity\":[\"Networking\"],\"Networking_NetworkOperators\":[\"Networking\"],\"Networking_Proximity\":[\"Networking\"],\"Networking_PushNotifications\":[\"Networking\"],\"Networking_ServiceDiscovery\":[\"Networking\"],\"Networking_ServiceDiscovery_Dnssd\":[\"Networking_ServiceDiscovery\"],\"Networking_Sockets\":[\"Networking\"],\"Networking_Vpn\":[\"Networking\"],\"Networking_XboxLive\":[\"Networking\"],\"Perception\":[\"Foundation\"],\"Perception_Automation\":[\"Perception\"],\"Perception_Automation_Core\":[\"Perception_Automation\"],\"Perception_People\":[\"Perception\"],\"Perception_Spatial\":[\"Perception\"],\"Perception_Spatial_Preview\":[\"Perception_Spatial\"],\"Perception_Spatial_Surfaces\":[\"Perception_Spatial\"],\"Security\":[\"Foundation\"],\"Security_Authentication\":[\"Security\"],\"Security_Authentication_Identity\":[\"Security_Authentication\"],\"Security_Authentication_Identity_Core\":[\"Security_Authentication_Identity\"],\"Security_Authentication_OnlineId\":[\"Security_Authentication\"],\"Security_Authentication_Web\":[\"Security_Authentication\"],\"Security_Authentication_Web_Core\":[\"Security_Authentication_Web\"],\"Security_Authentication_Web_Provider\":[\"Security_Authentication_Web\"],\"Security_Authorization\":[\"Security\"],\"Security_Authorization_AppCapabilityAccess\":[\"Security_Authorization\"],\"Security_Credentials\":[\"Security\"],\"Security_Credentials_UI\":[\"Security_Credentials\"],\"Security_Cryptography\":[\"Security\"],\"Security_Cryptography_Certificates\":[\"Security_Cryptography\"],\"Security_Cryptography_Core\":[\"Security_Cryptography\"],\"Security_Cryptography_DataProtection\":[\"Security_Cryptography\"],\"Security_DataProtection\":[\"Security\"],\"Security_EnterpriseData\":[\"Security\"],\"Security_ExchangeActiveSyncProvisioning\":[\"Security\"],\"Security_Isolation\":[\"Security\"],\"Services\":[\"Foundation\"],\"Services_Maps\":[\"Services\"],\"Services_Maps_Guidance\":[\"Services_Maps\"],\"Services_Maps_LocalSearch\":[\"Services_Maps\"],\"Services_Maps_OfflineMaps\":[\"Services_Maps\"],\"Services_Store\":[\"Services\"],\"Services_TargetedContent\":[\"Services\"],\"Storage\":[\"Foundation\"],\"Storage_AccessCache\":[\"Storage\"],\"Storage_BulkAccess\":[\"Storage\"],\"Storage_Compression\":[\"Storage\"],\"Storage_FileProperties\":[\"Storage\"],\"Storage_Pickers\":[\"Storage\"],\"Storage_Pickers_Provider\":[\"Storage_Pickers\"],\"Storage_Provider\":[\"Storage\"],\"Storage_Search\":[\"Storage\"],\"Storage_Streams\":[\"Storage\"],\"System\":[\"Foundation\"],\"System_Diagnostics\":[\"System\"],\"System_Diagnostics_DevicePortal\":[\"System_Diagnostics\"],\"System_Diagnostics_Telemetry\":[\"System_Diagnostics\"],\"System_Diagnostics_TraceReporting\":[\"System_Diagnostics\"],\"System_Display\":[\"System\"],\"System_Implementation\":[\"System\"],\"System_Implementation_FileExplorer\":[\"System_Implementation\"],\"System_Inventory\":[\"System\"],\"System_Power\":[\"System\"],\"System_Profile\":[\"System\"],\"System_Profile_SystemManufacturers\":[\"System_Profile\"],\"System_RemoteDesktop\":[\"System\"],\"System_RemoteDesktop_Input\":[\"System_RemoteDesktop\"],\"System_RemoteDesktop_Provider\":[\"System_RemoteDesktop\"],\"System_RemoteSystems\":[\"System\"],\"System_Threading\":[\"System\"],\"System_Threading_Core\":[\"System_Threading\"],\"System_Update\":[\"System\"],\"System_UserProfile\":[\"System\"],\"UI\":[\"Foundation\"],\"UI_Accessibility\":[\"UI\"],\"UI_ApplicationSettings\":[\"UI\"],\"UI_Composition\":[\"UI\"],\"UI_Composition_Core\":[\"UI_Composition\"],\"UI_Composition_Desktop\":[\"UI_Composition\"],\"UI_Composition_Diagnostics\":[\"UI_Composition\"],\"UI_Composition_Effects\":[\"UI_Composition\"],\"UI_Composition_Interactions\":[\"UI_Composition\"],\"UI_Composition_Scenes\":[\"UI_Composition\"],\"UI_Core\":[\"UI\"],\"UI_Core_AnimationMetrics\":[\"UI_Core\"],\"UI_Core_Preview\":[\"UI_Core\"],\"UI_Input\":[\"UI\"],\"UI_Input_Core\":[\"UI_Input\"],\"UI_Input_Inking\":[\"UI_Input\"],\"UI_Input_Inking_Analysis\":[\"UI_Input_Inking\"],\"UI_Input_Inking_Core\":[\"UI_Input_Inking\"],\"UI_Input_Inking_Preview\":[\"UI_Input_Inking\"],\"UI_Input_Preview\":[\"UI_Input\"],\"UI_Input_Preview_Injection\":[\"UI_Input_Preview\"],\"UI_Input_Preview_Text\":[\"UI_Input_Preview\"],\"UI_Input_Spatial\":[\"UI_Input\"],\"UI_Notifications\":[\"UI\"],\"UI_Notifications_Management\":[\"UI_Notifications\"],\"UI_Notifications_Preview\":[\"UI_Notifications\"],\"UI_Popups\":[\"UI\"],\"UI_Shell\":[\"UI\"],\"UI_StartScreen\":[\"UI\"],\"UI_Text\":[\"UI\"],\"UI_Text_Core\":[\"UI_Text\"],\"UI_UIAutomation\":[\"UI\"],\"UI_UIAutomation_Core\":[\"UI_UIAutomation\"],\"UI_ViewManagement\":[\"UI\"],\"UI_ViewManagement_Core\":[\"UI_ViewManagement\"],\"UI_WebUI\":[\"UI\"],\"UI_WindowManagement\":[\"UI\"],\"UI_WindowManagement_Preview\":[\"UI_WindowManagement\"],\"Wdk\":[\"Win32_Foundation\"],\"Wdk_Devices\":[\"Wdk\"],\"Wdk_Devices_Bluetooth\":[\"Wdk_Devices\"],\"Wdk_Devices_HumanInterfaceDevice\":[\"Wdk_Devices\"],\"Wdk_Foundation\":[\"Wdk\"],\"Wdk_Graphics\":[\"Wdk\"],\"Wdk_Graphics_Direct3D\":[\"Wdk_Graphics\"],\"Wdk_NetworkManagement\":[\"Wdk\"],\"Wdk_NetworkManagement_Ndis\":[\"Wdk_NetworkManagement\"],\"Wdk_NetworkManagement_WindowsFilteringPlatform\":[\"Wdk_NetworkManagement\"],\"Wdk_Storage\":[\"Wdk\"],\"Wdk_Storage_FileSystem\":[\"Wdk_Storage\"],\"Wdk_Storage_FileSystem_Minifilters\":[\"Wdk_Storage_FileSystem\"],\"Wdk_System\":[\"Wdk\"],\"Wdk_System_IO\":[\"Wdk_System\"],\"Wdk_System_Memory\":[\"Wdk_System\"],\"Wdk_System_OfflineRegistry\":[\"Wdk_System\"],\"Wdk_System_Registry\":[\"Wdk_System\"],\"Wdk_System_SystemInformation\":[\"Wdk_System\"],\"Wdk_System_SystemServices\":[\"Wdk_System\"],\"Wdk_System_Threading\":[\"Wdk_System\"],\"Web\":[\"Foundation\"],\"Web_AtomPub\":[\"Web\"],\"Web_Http\":[\"Web\"],\"Web_Http_Diagnostics\":[\"Web_Http\"],\"Web_Http_Filters\":[\"Web_Http\"],\"Web_Http_Headers\":[\"Web_Http\"],\"Web_Syndication\":[\"Web\"],\"Web_UI\":[\"Web\"],\"Web_UI_Interop\":[\"Web_UI\"],\"Win32\":[\"Win32_Foundation\"],\"Win32_AI\":[\"Win32\"],\"Win32_AI_MachineLearning\":[\"Win32_AI\"],\"Win32_AI_MachineLearning_DirectML\":[\"Win32_AI_MachineLearning\"],\"Win32_AI_MachineLearning_WinML\":[\"Win32_AI_MachineLearning\"],\"Win32_Data\":[\"Win32\"],\"Win32_Data_HtmlHelp\":[\"Win32_Data\"],\"Win32_Data_RightsManagement\":[\"Win32_Data\"],\"Win32_Data_Xml\":[\"Win32_Data\"],\"Win32_Data_Xml_MsXml\":[\"Win32_Data_Xml\"],\"Win32_Data_Xml_XmlLite\":[\"Win32_Data_Xml\"],\"Win32_Devices\":[\"Win32\"],\"Win32_Devices_AllJoyn\":[\"Win32_Devices\"],\"Win32_Devices_Beep\":[\"Win32_Devices\"],\"Win32_Devices_BiometricFramework\":[\"Win32_Devices\"],\"Win32_Devices_Bluetooth\":[\"Win32_Devices\"],\"Win32_Devices_Cdrom\":[\"Win32_Devices\"],\"Win32_Devices_Communication\":[\"Win32_Devices\"],\"Win32_Devices_DeviceAccess\":[\"Win32_Devices\"],\"Win32_Devices_DeviceAndDriverInstallation\":[\"Win32_Devices\"],\"Win32_Devices_DeviceQuery\":[\"Win32_Devices\"],\"Win32_Devices_Display\":[\"Win32_Devices\"],\"Win32_Devices_Dvd\":[\"Win32_Devices\"],\"Win32_Devices_Enumeration\":[\"Win32_Devices\"],\"Win32_Devices_Enumeration_Pnp\":[\"Win32_Devices_Enumeration\"],\"Win32_Devices_Fax\":[\"Win32_Devices\"],\"Win32_Devices_FunctionDiscovery\":[\"Win32_Devices\"],\"Win32_Devices_Geolocation\":[\"Win32_Devices\"],\"Win32_Devices_HumanInterfaceDevice\":[\"Win32_Devices\"],\"Win32_Devices_ImageAcquisition\":[\"Win32_Devices\"],\"Win32_Devices_Nfc\":[\"Win32_Devices\"],\"Win32_Devices_Nfp\":[\"Win32_Devices\"],\"Win32_Devices_PortableDevices\":[\"Win32_Devices\"],\"Win32_Devices_Properties\":[\"Win32_Devices\"],\"Win32_Devices_Pwm\":[\"Win32_Devices\"],\"Win32_Devices_Sensors\":[\"Win32_Devices\"],\"Win32_Devices_SerialCommunication\":[\"Win32_Devices\"],\"Win32_Devices_Tapi\":[\"Win32_Devices\"],\"Win32_Devices_Usb\":[\"Win32_Devices\"],\"Win32_Devices_WebServicesOnDevices\":[\"Win32_Devices\"],\"Win32_Foundation\":[\"Win32\"],\"Win32_Gaming\":[\"Win32\"],\"Win32_Globalization\":[\"Win32\"],\"Win32_Graphics\":[\"Win32\"],\"Win32_Graphics_CompositionSwapchain\":[\"Win32_Graphics\"],\"Win32_Graphics_DXCore\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct2D\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct2D_Common\":[\"Win32_Graphics_Direct2D\"],\"Win32_Graphics_Direct3D\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D10\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D11\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D11on12\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D12\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D9\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D9on12\":[\"Win32_Graphics\"],\"Win32_Graphics_Direct3D_Dxc\":[\"Win32_Graphics_Direct3D\"],\"Win32_Graphics_Direct3D_Fxc\":[\"Win32_Graphics_Direct3D\"],\"Win32_Graphics_DirectComposition\":[\"Win32_Graphics\"],\"Win32_Graphics_DirectDraw\":[\"Win32_Graphics\"],\"Win32_Graphics_DirectManipulation\":[\"Win32_Graphics\"],\"Win32_Graphics_DirectWrite\":[\"Win32_Graphics\"],\"Win32_Graphics_Dwm\":[\"Win32_Graphics\"],\"Win32_Graphics_Dxgi\":[\"Win32_Graphics\"],\"Win32_Graphics_Dxgi_Common\":[\"Win32_Graphics_Dxgi\"],\"Win32_Graphics_Gdi\":[\"Win32_Graphics\"],\"Win32_Graphics_GdiPlus\":[\"Win32_Graphics\"],\"Win32_Graphics_Hlsl\":[\"Win32_Graphics\"],\"Win32_Graphics_Imaging\":[\"Win32_Graphics\"],\"Win32_Graphics_Imaging_D2D\":[\"Win32_Graphics_Imaging\"],\"Win32_Graphics_OpenGL\":[\"Win32_Graphics\"],\"Win32_Graphics_Printing\":[\"Win32_Graphics\"],\"Win32_Graphics_Printing_PrintTicket\":[\"Win32_Graphics_Printing\"],\"Win32_Management\":[\"Win32\"],\"Win32_Management_MobileDeviceManagementRegistration\":[\"Win32_Management\"],\"Win32_Media\":[\"Win32\"],\"Win32_Media_Audio\":[\"Win32_Media\"],\"Win32_Media_Audio_Apo\":[\"Win32_Media_Audio\"],\"Win32_Media_Audio_DirectMusic\":[\"Win32_Media_Audio\"],\"Win32_Media_Audio_DirectSound\":[\"Win32_Media_Audio\"],\"Win32_Media_Audio_Endpoints\":[\"Win32_Media_Audio\"],\"Win32_Media_Audio_XAudio2\":[\"Win32_Media_Audio\"],\"Win32_Media_DeviceManager\":[\"Win32_Media\"],\"Win32_Media_DirectShow\":[\"Win32_Media\"],\"Win32_Media_DirectShow_Tv\":[\"Win32_Media_DirectShow\"],\"Win32_Media_DirectShow_Xml\":[\"Win32_Media_DirectShow\"],\"Win32_Media_DxMediaObjects\":[\"Win32_Media\"],\"Win32_Media_KernelStreaming\":[\"Win32_Media\"],\"Win32_Media_LibrarySharingServices\":[\"Win32_Media\"],\"Win32_Media_MediaFoundation\":[\"Win32_Media\"],\"Win32_Media_MediaPlayer\":[\"Win32_Media\"],\"Win32_Media_Multimedia\":[\"Win32_Media\"],\"Win32_Media_PictureAcquisition\":[\"Win32_Media\"],\"Win32_Media_Speech\":[\"Win32_Media\"],\"Win32_Media_Streaming\":[\"Win32_Media\"],\"Win32_Media_WindowsMediaFormat\":[\"Win32_Media\"],\"Win32_NetworkManagement\":[\"Win32\"],\"Win32_NetworkManagement_Dhcp\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Dns\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_InternetConnectionWizard\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_IpHelper\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_MobileBroadband\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Multicast\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Ndis\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetBios\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetManagement\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetShell\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetworkDiagnosticsFramework\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_NetworkPolicyServer\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_P2P\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_QoS\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Rras\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_Snmp\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WNet\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WebDav\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WiFi\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsConnectNow\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsConnectionManager\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsFilteringPlatform\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsFirewall\":[\"Win32_NetworkManagement\"],\"Win32_NetworkManagement_WindowsNetworkVirtualization\":[\"Win32_NetworkManagement\"],\"Win32_Networking\":[\"Win32\"],\"Win32_Networking_ActiveDirectory\":[\"Win32_Networking\"],\"Win32_Networking_BackgroundIntelligentTransferService\":[\"Win32_Networking\"],\"Win32_Networking_Clustering\":[\"Win32_Networking\"],\"Win32_Networking_HttpServer\":[\"Win32_Networking\"],\"Win32_Networking_Ldap\":[\"Win32_Networking\"],\"Win32_Networking_NetworkListManager\":[\"Win32_Networking\"],\"Win32_Networking_RemoteDifferentialCompression\":[\"Win32_Networking\"],\"Win32_Networking_WebSocket\":[\"Win32_Networking\"],\"Win32_Networking_WinHttp\":[\"Win32_Networking\"],\"Win32_Networking_WinInet\":[\"Win32_Networking\"],\"Win32_Networking_WinSock\":[\"Win32_Networking\"],\"Win32_Networking_WindowsWebServices\":[\"Win32_Networking\"],\"Win32_Security\":[\"Win32\"],\"Win32_Security_AppLocker\":[\"Win32_Security\"],\"Win32_Security_Authentication\":[\"Win32_Security\"],\"Win32_Security_Authentication_Identity\":[\"Win32_Security_Authentication\"],\"Win32_Security_Authentication_Identity_Provider\":[\"Win32_Security_Authentication_Identity\"],\"Win32_Security_Authorization\":[\"Win32_Security\"],\"Win32_Security_Authorization_UI\":[\"Win32_Security_Authorization\"],\"Win32_Security_ConfigurationSnapin\":[\"Win32_Security\"],\"Win32_Security_Credentials\":[\"Win32_Security\"],\"Win32_Security_Cryptography\":[\"Win32_Security\"],\"Win32_Security_Cryptography_Catalog\":[\"Win32_Security_Cryptography\"],\"Win32_Security_Cryptography_Certificates\":[\"Win32_Security_Cryptography\"],\"Win32_Security_Cryptography_Sip\":[\"Win32_Security_Cryptography\"],\"Win32_Security_Cryptography_UI\":[\"Win32_Security_Cryptography\"],\"Win32_Security_DiagnosticDataQuery\":[\"Win32_Security\"],\"Win32_Security_DirectoryServices\":[\"Win32_Security\"],\"Win32_Security_EnterpriseData\":[\"Win32_Security\"],\"Win32_Security_ExtensibleAuthenticationProtocol\":[\"Win32_Security\"],\"Win32_Security_Isolation\":[\"Win32_Security\"],\"Win32_Security_LicenseProtection\":[\"Win32_Security\"],\"Win32_Security_NetworkAccessProtection\":[\"Win32_Security\"],\"Win32_Security_Tpm\":[\"Win32_Security\"],\"Win32_Security_WinTrust\":[\"Win32_Security\"],\"Win32_Security_WinWlx\":[\"Win32_Security\"],\"Win32_Storage\":[\"Win32\"],\"Win32_Storage_Cabinets\":[\"Win32_Storage\"],\"Win32_Storage_CloudFilters\":[\"Win32_Storage\"],\"Win32_Storage_Compression\":[\"Win32_Storage\"],\"Win32_Storage_DataDeduplication\":[\"Win32_Storage\"],\"Win32_Storage_DistributedFileSystem\":[\"Win32_Storage\"],\"Win32_Storage_EnhancedStorage\":[\"Win32_Storage\"],\"Win32_Storage_FileHistory\":[\"Win32_Storage\"],\"Win32_Storage_FileServerResourceManager\":[\"Win32_Storage\"],\"Win32_Storage_FileSystem\":[\"Win32_Storage\"],\"Win32_Storage_Imapi\":[\"Win32_Storage\"],\"Win32_Storage_IndexServer\":[\"Win32_Storage\"],\"Win32_Storage_InstallableFileSystems\":[\"Win32_Storage\"],\"Win32_Storage_IscsiDisc\":[\"Win32_Storage\"],\"Win32_Storage_Jet\":[\"Win32_Storage\"],\"Win32_Storage_Nvme\":[\"Win32_Storage\"],\"Win32_Storage_OfflineFiles\":[\"Win32_Storage\"],\"Win32_Storage_OperationRecorder\":[\"Win32_Storage\"],\"Win32_Storage_Packaging\":[\"Win32_Storage\"],\"Win32_Storage_Packaging_Appx\":[\"Win32_Storage_Packaging\"],\"Win32_Storage_Packaging_Opc\":[\"Win32_Storage_Packaging\"],\"Win32_Storage_ProjectedFileSystem\":[\"Win32_Storage\"],\"Win32_Storage_StructuredStorage\":[\"Win32_Storage\"],\"Win32_Storage_Vhd\":[\"Win32_Storage\"],\"Win32_Storage_VirtualDiskService\":[\"Win32_Storage\"],\"Win32_Storage_Vss\":[\"Win32_Storage\"],\"Win32_Storage_Xps\":[\"Win32_Storage\"],\"Win32_Storage_Xps_Printing\":[\"Win32_Storage_Xps\"],\"Win32_System\":[\"Win32\"],\"Win32_System_AddressBook\":[\"Win32_System\"],\"Win32_System_Antimalware\":[\"Win32_System\"],\"Win32_System_ApplicationInstallationAndServicing\":[\"Win32_System\"],\"Win32_System_ApplicationVerifier\":[\"Win32_System\"],\"Win32_System_AssessmentTool\":[\"Win32_System\"],\"Win32_System_ClrHosting\":[\"Win32_System\"],\"Win32_System_Com\":[\"Win32_System\"],\"Win32_System_Com_CallObj\":[\"Win32_System_Com\"],\"Win32_System_Com_ChannelCredentials\":[\"Win32_System_Com\"],\"Win32_System_Com_Events\":[\"Win32_System_Com\"],\"Win32_System_Com_Marshal\":[\"Win32_System_Com\"],\"Win32_System_Com_StructuredStorage\":[\"Win32_System_Com\"],\"Win32_System_Com_UI\":[\"Win32_System_Com\"],\"Win32_System_Com_Urlmon\":[\"Win32_System_Com\"],\"Win32_System_ComponentServices\":[\"Win32_System\"],\"Win32_System_Console\":[\"Win32_System\"],\"Win32_System_Contacts\":[\"Win32_System\"],\"Win32_System_CorrelationVector\":[\"Win32_System\"],\"Win32_System_DataExchange\":[\"Win32_System\"],\"Win32_System_DeploymentServices\":[\"Win32_System\"],\"Win32_System_DesktopSharing\":[\"Win32_System\"],\"Win32_System_DeveloperLicensing\":[\"Win32_System\"],\"Win32_System_Diagnostics\":[\"Win32_System\"],\"Win32_System_Diagnostics_Ceip\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_ClrProfiling\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_Debug\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_Debug_ActiveScript\":[\"Win32_System_Diagnostics_Debug\"],\"Win32_System_Diagnostics_Debug_Extensions\":[\"Win32_System_Diagnostics_Debug\"],\"Win32_System_Diagnostics_Etw\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_ProcessSnapshotting\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_ToolHelp\":[\"Win32_System_Diagnostics\"],\"Win32_System_Diagnostics_TraceLogging\":[\"Win32_System_Diagnostics\"],\"Win32_System_DistributedTransactionCoordinator\":[\"Win32_System\"],\"Win32_System_Environment\":[\"Win32_System\"],\"Win32_System_ErrorReporting\":[\"Win32_System\"],\"Win32_System_EventCollector\":[\"Win32_System\"],\"Win32_System_EventLog\":[\"Win32_System\"],\"Win32_System_EventNotificationService\":[\"Win32_System\"],\"Win32_System_GroupPolicy\":[\"Win32_System\"],\"Win32_System_HostCompute\":[\"Win32_System\"],\"Win32_System_HostComputeNetwork\":[\"Win32_System\"],\"Win32_System_HostComputeSystem\":[\"Win32_System\"],\"Win32_System_Hypervisor\":[\"Win32_System\"],\"Win32_System_IO\":[\"Win32_System\"],\"Win32_System_Iis\":[\"Win32_System\"],\"Win32_System_Ioctl\":[\"Win32_System\"],\"Win32_System_JobObjects\":[\"Win32_System\"],\"Win32_System_Js\":[\"Win32_System\"],\"Win32_System_Kernel\":[\"Win32_System\"],\"Win32_System_LibraryLoader\":[\"Win32_System\"],\"Win32_System_Mailslots\":[\"Win32_System\"],\"Win32_System_Mapi\":[\"Win32_System\"],\"Win32_System_Memory\":[\"Win32_System\"],\"Win32_System_Memory_NonVolatile\":[\"Win32_System_Memory\"],\"Win32_System_MessageQueuing\":[\"Win32_System\"],\"Win32_System_MixedReality\":[\"Win32_System\"],\"Win32_System_Mmc\":[\"Win32_System\"],\"Win32_System_Ole\":[\"Win32_System\"],\"Win32_System_ParentalControls\":[\"Win32_System\"],\"Win32_System_PasswordManagement\":[\"Win32_System\"],\"Win32_System_Performance\":[\"Win32_System\"],\"Win32_System_Performance_HardwareCounterProfiling\":[\"Win32_System_Performance\"],\"Win32_System_Pipes\":[\"Win32_System\"],\"Win32_System_Power\":[\"Win32_System\"],\"Win32_System_ProcessStatus\":[\"Win32_System\"],\"Win32_System_RealTimeCommunications\":[\"Win32_System\"],\"Win32_System_Recovery\":[\"Win32_System\"],\"Win32_System_Registry\":[\"Win32_System\"],\"Win32_System_RemoteAssistance\":[\"Win32_System\"],\"Win32_System_RemoteDesktop\":[\"Win32_System\"],\"Win32_System_RemoteManagement\":[\"Win32_System\"],\"Win32_System_RestartManager\":[\"Win32_System\"],\"Win32_System_Restore\":[\"Win32_System\"],\"Win32_System_Rpc\":[\"Win32_System\"],\"Win32_System_Search\":[\"Win32_System\"],\"Win32_System_Search_Common\":[\"Win32_System_Search\"],\"Win32_System_SecurityCenter\":[\"Win32_System\"],\"Win32_System_ServerBackup\":[\"Win32_System\"],\"Win32_System_Services\":[\"Win32_System\"],\"Win32_System_SettingsManagementInfrastructure\":[\"Win32_System\"],\"Win32_System_SetupAndMigration\":[\"Win32_System\"],\"Win32_System_Shutdown\":[\"Win32_System\"],\"Win32_System_SideShow\":[\"Win32_System\"],\"Win32_System_StationsAndDesktops\":[\"Win32_System\"],\"Win32_System_SubsystemForLinux\":[\"Win32_System\"],\"Win32_System_SystemInformation\":[\"Win32_System\"],\"Win32_System_SystemServices\":[\"Win32_System\"],\"Win32_System_TaskScheduler\":[\"Win32_System\"],\"Win32_System_Threading\":[\"Win32_System\"],\"Win32_System_Time\":[\"Win32_System\"],\"Win32_System_TpmBaseServices\":[\"Win32_System\"],\"Win32_System_TransactionServer\":[\"Win32_System\"],\"Win32_System_UpdateAgent\":[\"Win32_System\"],\"Win32_System_UpdateAssessment\":[\"Win32_System\"],\"Win32_System_UserAccessLogging\":[\"Win32_System\"],\"Win32_System_Variant\":[\"Win32_System\"],\"Win32_System_VirtualDosMachines\":[\"Win32_System\"],\"Win32_System_WinRT\":[\"Win32_System\"],\"Win32_System_WinRT_AllJoyn\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Composition\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_CoreInputView\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Direct3D11\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Display\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Graphics\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Graphics_Capture\":[\"Win32_System_WinRT_Graphics\"],\"Win32_System_WinRT_Graphics_Direct2D\":[\"Win32_System_WinRT_Graphics\"],\"Win32_System_WinRT_Graphics_Imaging\":[\"Win32_System_WinRT_Graphics\"],\"Win32_System_WinRT_Holographic\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Isolation\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_ML\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Media\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Metadata\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Pdf\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Printing\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Shell\":[\"Win32_System_WinRT\"],\"Win32_System_WinRT_Storage\":[\"Win32_System_WinRT\"],\"Win32_System_WindowsProgramming\":[\"Win32_System\"],\"Win32_System_WindowsSync\":[\"Win32_System\"],\"Win32_System_Wmi\":[\"Win32_System\"],\"Win32_UI\":[\"Win32\"],\"Win32_UI_Accessibility\":[\"Win32_UI\"],\"Win32_UI_Animation\":[\"Win32_UI\"],\"Win32_UI_ColorSystem\":[\"Win32_UI\"],\"Win32_UI_Controls\":[\"Win32_UI\"],\"Win32_UI_Controls_Dialogs\":[\"Win32_UI_Controls\"],\"Win32_UI_Controls_RichEdit\":[\"Win32_UI_Controls\"],\"Win32_UI_HiDpi\":[\"Win32_UI\"],\"Win32_UI_Input\":[\"Win32_UI\"],\"Win32_UI_Input_Ime\":[\"Win32_UI_Input\"],\"Win32_UI_Input_Ink\":[\"Win32_UI_Input\"],\"Win32_UI_Input_KeyboardAndMouse\":[\"Win32_UI_Input\"],\"Win32_UI_Input_Pointer\":[\"Win32_UI_Input\"],\"Win32_UI_Input_Radial\":[\"Win32_UI_Input\"],\"Win32_UI_Input_Touch\":[\"Win32_UI_Input\"],\"Win32_UI_Input_XboxController\":[\"Win32_UI_Input\"],\"Win32_UI_InteractionContext\":[\"Win32_UI\"],\"Win32_UI_LegacyWindowsEnvironmentFeatures\":[\"Win32_UI\"],\"Win32_UI_Magnification\":[\"Win32_UI\"],\"Win32_UI_Notifications\":[\"Win32_UI\"],\"Win32_UI_Ribbon\":[\"Win32_UI\"],\"Win32_UI_Shell\":[\"Win32_UI\"],\"Win32_UI_Shell_Common\":[\"Win32_UI_Shell\"],\"Win32_UI_Shell_PropertiesSystem\":[\"Win32_UI_Shell\"],\"Win32_UI_TabletPC\":[\"Win32_UI\"],\"Win32_UI_TextServices\":[\"Win32_UI\"],\"Win32_UI_WindowsAndMessaging\":[\"Win32_UI\"],\"Win32_UI_Wpf\":[\"Win32_UI\"],\"Win32_Web\":[\"Win32\"],\"Win32_Web_InternetExplorer\":[\"Win32_Web\"],\"default\":[\"std\"],\"docs\":[],\"std\":[\"windows-collections/std\",\"windows-core/std\",\"windows-future/std\",\"windows-numerics/std\"]}}", "wit-bindgen-core_0.51.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.72\"},{\"features\":[\"derive\"],\"name\":\"clap\",\"optional\":true,\"req\":\"^4.3.19\"},{\"name\":\"heck\",\"req\":\"^0.5\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.218\"},{\"name\":\"wit-parser\",\"req\":\"^0.244.0\"}],\"features\":{\"clap\":[\"dep:clap\"],\"serde\":[\"dep:serde\"]}}", "wit-bindgen-rust-macro_0.51.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.72\"},{\"name\":\"prettyplease\",\"req\":\"^0.2.20\"},{\"name\":\"proc-macro2\",\"req\":\"^1.0\"},{\"name\":\"quote\",\"req\":\"^1\"},{\"features\":[\"printing\"],\"name\":\"syn\",\"req\":\"^2.0.89\"},{\"name\":\"wit-bindgen-core\",\"req\":\"^0.51.0\"},{\"name\":\"wit-bindgen-rust\",\"req\":\"^0.51.0\"}],\"features\":{\"async\":[]}}", "wit-bindgen-rust_0.51.0": "{\"dependencies\":[{\"name\":\"anyhow\",\"req\":\"^1.0.72\"},{\"kind\":\"dev\",\"name\":\"bytes\",\"req\":\"^1\"},{\"features\":[\"derive\"],\"name\":\"clap\",\"optional\":true,\"req\":\"^4.3.19\"},{\"kind\":\"dev\",\"name\":\"futures\",\"req\":\"^0.3.31\"},{\"name\":\"heck\",\"req\":\"^0.5\"},{\"name\":\"indexmap\",\"req\":\"^2.0.0\"},{\"name\":\"prettyplease\",\"req\":\"^0.2.20\"},{\"features\":[\"derive\"],\"name\":\"serde\",\"optional\":true,\"req\":\"^1.0.218\"},{\"kind\":\"dev\",\"name\":\"serde_json\",\"req\":\"^1\"},{\"features\":[\"printing\"],\"name\":\"syn\",\"req\":\"^2.0.89\"},{\"default_features\":false,\"name\":\"wasm-metadata\",\"req\":\"^0.244.0\"},{\"name\":\"wit-bindgen-core\",\"req\":\"^0.51.0\"},{\"name\":\"wit-component\",\"req\":\"^0.244.0\"}],\"features\":{\"clap\":[\"dep:clap\",\"wit-bindgen-core/clap\"],\"serde\":[\"dep:serde\",\"wit-bindgen-core/serde\"]}}", diff --git a/REPO.bazel b/REPO.bazel new file mode 100644 index 0000000..6b0ce3a --- /dev/null +++ b/REPO.bazel @@ -0,0 +1,3 @@ +ignore_directories([ + ".worktrees", +]) diff --git a/crates/codescythe/BUILD.bazel b/crates/codescythe/BUILD.bazel index d073471..186aa36 100644 --- a/crates/codescythe/BUILD.bazel +++ b/crates/codescythe/BUILD.bazel @@ -9,6 +9,7 @@ COMMON_DEPS = [ "@crates//:oxc_allocator", "@crates//:oxc_ast", "@crates//:oxc_parser", + "@crates//:oxc_resolver", "@crates//:oxc_span", "@crates//:rayon", "@crates//:serde", @@ -37,6 +38,7 @@ rust_test( crate = ":codescythe", data = [ "//tests/fixtures/knip-export-basics:fixtures", + "//tests/fixtures/oxc-resolution:fixtures", ], deps = COMMON_DEPS + [ "@crates//:tempfile", diff --git a/crates/codescythe/Cargo.toml b/crates/codescythe/Cargo.toml index 58ce667..60a1b78 100644 --- a/crates/codescythe/Cargo.toml +++ b/crates/codescythe/Cargo.toml @@ -18,6 +18,7 @@ oxc.workspace = true oxc_allocator.workspace = true oxc_ast.workspace = true oxc_parser.workspace = true +oxc_resolver.workspace = true oxc_span.workspace = true rayon.workspace = true serde.workspace = true diff --git a/crates/codescythe/analyze.rs b/crates/codescythe/analyze.rs index 6ab7e98..16d4fec 100644 --- a/crates/codescythe/analyze.rs +++ b/crates/codescythe/analyze.rs @@ -11,6 +11,7 @@ use oxc::ast_visit::{Visit, walk}; use oxc_allocator::Allocator; use oxc_ast::ast::*; use oxc_parser::{Parser, ParserReturn}; +use oxc_resolver::{ResolveError, ResolveOptions, Resolver, TsconfigDiscovery}; use oxc_span::{GetSpan, SourceType, Span}; use rayon::prelude::*; use serde::{Deserialize, Serialize}; @@ -21,7 +22,6 @@ use crate::CodescytheConfig; const PARSE_THREADS_ENV: &str = "CODESCYTHE_PARSE_THREADS"; const RAYON_THREADS_ENV: &str = "RAYON_NUM_THREADS"; -type PathIndex = HashMap; type UsedFiles = HashSet; type UsedExports = HashMap>; type UnresolvedImports = HashMap>; @@ -101,11 +101,7 @@ pub fn analyze_path( .enumerate() .map(|(index, file)| (file.path.clone(), index)) .collect::>(); - let index_by_relative = files - .iter() - .enumerate() - .map(|(index, file)| (file.relative.clone(), index)) - .collect::(); + let module_resolver = ModuleResolver::new(&cwd, &files); let mut entry_indexes = HashSet::::new(); let mut used_files = UsedFiles::new(); @@ -127,8 +123,8 @@ pub fn analyze_path( let public_entry = entry_indexes.contains(&index) && !config.include_entry_exports; for import in &file.imports { - match resolve_import(&file.relative, &import.source, &index_by_relative) { - Some(target) => { + match module_resolver.resolve(file, &import.source)? { + ImportResolution::Project(target) => { if used_files.insert(target) { queue.push_back(target); } @@ -136,65 +132,67 @@ pub fn analyze_path( used_exports.entry(target).or_default().insert(name.clone()); } } - None => { + ImportResolution::Unresolved => { unresolved .entry(file.relative.clone()) .or_default() .insert(import.source.clone()); } + ImportResolution::External => {} } } for source in &file.side_effect_imports { - match resolve_import(&file.relative, source, &index_by_relative) { - Some(target) => { + match module_resolver.resolve(file, source)? { + ImportResolution::Project(target) => { if used_files.insert(target) { queue.push_back(target); } } - None => { + ImportResolution::Unresolved => { unresolved .entry(file.relative.clone()) .or_default() .insert(source.clone()); } + ImportResolution::External => {} } } for (local, member) in &file.member_uses { if let Some(source) = file.namespace_imports.get(local) { mark_member_import( - &file.relative, + file, source, member, &files, - &index_by_relative, + &module_resolver, &mut used_files, &mut used_exports, &mut queue, &mut unresolved, &file.relative, - ); + )?; } if let Some(named) = file.named_imports.get(local) { - if let Some(target) = - resolve_import(&file.relative, &named.source, &index_by_relative) + if let ImportResolution::Project(target) = + module_resolver.resolve(file, &named.source)? { if let Some(export) = files[target].exports.get(&named.imported) { if let Some(namespace_source) = &export.namespace_source { mark_member_import( - &files[target].relative, + &files[target], namespace_source, member, &files, - &index_by_relative, + &module_resolver, &mut used_files, &mut used_exports, &mut queue, &mut unresolved, &file.relative, - ); + )?; } } } @@ -206,24 +204,24 @@ pub fn analyze_path( mark_reexport( file, export, - &index_by_relative, + &module_resolver, &mut used_files, &mut used_exports, &mut queue, &mut unresolved, - ); + )?; } for source in &file.reexport_all { mark_all_exports( file, source, &files, - &index_by_relative, + &module_resolver, &mut used_files, &mut used_exports, &mut queue, &mut unresolved, - ); + )?; } } @@ -233,12 +231,12 @@ pub fn analyze_path( mark_reexport( file, export, - &index_by_relative, + &module_resolver, &mut used_files, &mut used_exports, &mut queue, &mut unresolved, - ); + )?; } } } @@ -507,84 +505,129 @@ fn env_thread_count(name: &str) -> Option { .map(|count| count.max(1)) } -fn resolve_import( - from_relative: &str, - specifier: &str, - index_by_relative: &PathIndex, -) -> Option { - if !specifier.starts_with('.') { - return None; - } +struct ModuleResolver { + resolver: Resolver, + index_by_path: HashMap, +} - let base = normalize_import_path(from_relative, specifier)?; - if let Some(index) = index_by_relative.get(&base) { - return Some(*index); - } +enum ImportResolution { + Project(usize), + External, + Unresolved, +} - for ext in ["ts", "tsx", "js", "jsx", "mts", "cts", "mjs", "cjs"] { - let candidate = with_extension(&base, ext); - if let Some(index) = index_by_relative.get(&candidate) { - return Some(*index); - } - } - for ext in ["ts", "tsx", "js", "jsx"] { - let candidate = format!("{base}/index.{ext}"); - if let Some(index) = index_by_relative.get(&candidate) { - return Some(*index); +impl ModuleResolver { + fn new(cwd: &Path, files: &[FileData]) -> Self { + let resolver = Resolver::new(ResolveOptions { + cwd: Some(cwd.to_path_buf()), + tsconfig: Some(TsconfigDiscovery::Auto), + condition_names: vec!["node".into(), "import".into()], + extensions: vec![ + ".ts".into(), + ".tsx".into(), + ".mts".into(), + ".cts".into(), + ".js".into(), + ".jsx".into(), + ".mjs".into(), + ".cjs".into(), + ".json".into(), + ".node".into(), + ], + extension_alias: vec![ + ( + ".js".into(), + vec![".ts".into(), ".tsx".into(), ".js".into(), ".jsx".into()], + ), + (".jsx".into(), vec![".tsx".into(), ".jsx".into()]), + (".mjs".into(), vec![".mts".into(), ".mjs".into()]), + (".cjs".into(), vec![".cts".into(), ".cjs".into()]), + ], + symlinks: false, + node_path: false, + builtin_modules: true, + ..ResolveOptions::default() + }); + let index_by_path = files + .iter() + .enumerate() + .map(|(index, file)| (normalize_path(&file.path), index)) + .collect::>(); + + Self { + resolver, + index_by_path, } } - None -} - -fn normalize_import_path(from_relative: &str, specifier: &str) -> Option { - let parent = from_relative - .rsplit_once('/') - .map_or("", |(parent, _)| parent); - let combined = if parent.is_empty() { - specifier.to_string() - } else { - format!("{parent}/{specifier}") - }; - normalize_relative_components(&combined) -} - -fn normalize_relative_components(path: &str) -> Option { - let mut parts = Vec::new(); - for component in Path::new(path).components() { - match component { - Component::Normal(part) => parts.push(part.to_string_lossy().to_string()), - Component::CurDir => {} - Component::ParentDir => { - parts.pop()?; + fn resolve(&self, from: &FileData, specifier: &str) -> Result { + match self.resolver.resolve_file(&from.path, specifier) { + Ok(resolution) => { + let path = normalize_path(resolution.path()); + Ok(self + .index_by_path + .get(&path) + .copied() + .map_or(ImportResolution::External, ImportResolution::Project)) + } + Err(ResolveError::Builtin { .. } | ResolveError::Ignored(_)) => { + Ok(ImportResolution::External) + } + Err(error) if is_resolution_miss(&error) => { + Ok(if should_report_unresolved(specifier, &error) { + ImportResolution::Unresolved + } else { + ImportResolution::External + }) + } + Err(error) => { + anyhow::bail!( + "failed to resolve import {specifier:?} from {}: {error}", + from.relative + ) } - Component::Prefix(_) | Component::RootDir => return None, } } - Some(parts.join("/")) } -fn with_extension(path: &str, extension: &str) -> String { - Path::new(path) - .with_extension(extension) - .to_string_lossy() - .replace('\\', "/") +fn is_resolution_miss(error: &ResolveError) -> bool { + matches!( + error, + ResolveError::NotFound(_) + | ResolveError::MatchedAliasNotFound(_, _) + | ResolveError::ExtensionAlias(_, _, _) + | ResolveError::PackageImportNotDefined(_, _) + | ResolveError::PackagePathNotExported { .. } + | ResolveError::InvalidModuleSpecifier(_, _) + | ResolveError::Specifier(_) + ) +} + +fn should_report_unresolved(specifier: &str, error: &ResolveError) -> bool { + matches!( + error, + ResolveError::MatchedAliasNotFound(_, _) | ResolveError::PackageImportNotDefined(_, _) + ) || specifier.starts_with('.') + || specifier.starts_with('/') + || specifier.starts_with('#') + || specifier.starts_with("@/") + || specifier.starts_with("~/") } fn mark_member_import( - from_relative: &str, + from_file: &FileData, source: &str, member: &str, files: &[FileData], - index_by_relative: &PathIndex, + resolver: &ModuleResolver, used_files: &mut UsedFiles, used_exports: &mut UsedExports, queue: &mut VecDeque, unresolved: &mut UnresolvedImports, importer_relative: &str, -) { - match resolve_import(from_relative, source, index_by_relative) { - Some(target) => { +) -> Result<()> { + match resolver.resolve(from_file, source)? { + ImportResolution::Project(target) => { if used_files.insert(target) { queue.push_back(target); } @@ -595,84 +638,89 @@ fn mark_member_import( if let Some(export) = files[target].exports.get(member) { if let Some(namespace_source) = &export.namespace_source { mark_member_import( - &files[target].relative, + &files[target], namespace_source, member, files, - index_by_relative, + resolver, used_files, used_exports, queue, unresolved, importer_relative, - ); + )?; } } } - None => { + ImportResolution::Unresolved => { unresolved .entry(importer_relative.to_string()) .or_default() .insert(source.to_string()); } + ImportResolution::External => {} } + Ok(()) } fn mark_reexport( file: &FileData, export: &ExportInfo, - index_by_relative: &PathIndex, + resolver: &ModuleResolver, used_files: &mut UsedFiles, used_exports: &mut UsedExports, queue: &mut VecDeque, unresolved: &mut UnresolvedImports, -) { +) -> Result<()> { if let (Some(source), Some(name)) = (&export.reexport_source, &export.reexport_name) { - match resolve_import(&file.relative, source, index_by_relative) { - Some(target) => { + match resolver.resolve(file, source)? { + ImportResolution::Project(target) => { if used_files.insert(target) { queue.push_back(target); } used_exports.entry(target).or_default().insert(name.clone()); } - None => { + ImportResolution::Unresolved => { unresolved .entry(file.relative.clone()) .or_default() .insert(source.clone()); } + ImportResolution::External => {} } } if let Some(source) = &export.namespace_source { - match resolve_import(&file.relative, source, index_by_relative) { - Some(target) => { + match resolver.resolve(file, source)? { + ImportResolution::Project(target) => { if used_files.insert(target) { queue.push_back(target); } } - None => { + ImportResolution::Unresolved => { unresolved .entry(file.relative.clone()) .or_default() .insert(source.clone()); } + ImportResolution::External => {} } } + Ok(()) } fn mark_all_exports( file: &FileData, source: &str, files: &[FileData], - index_by_relative: &PathIndex, + resolver: &ModuleResolver, used_files: &mut UsedFiles, used_exports: &mut UsedExports, queue: &mut VecDeque, unresolved: &mut UnresolvedImports, -) { - match resolve_import(&file.relative, source, index_by_relative) { - Some(target) => { +) -> Result<()> { + match resolver.resolve(file, source)? { + ImportResolution::Project(target) => { if used_files.insert(target) { queue.push_back(target); } @@ -680,13 +728,15 @@ fn mark_all_exports( used_exports.entry(target).or_default().insert(name.clone()); } } - None => { + ImportResolution::Unresolved => { unresolved .entry(file.relative.clone()) .or_default() .insert(source.to_string()); } + ImportResolution::External => {} } + Ok(()) } #[derive(Debug)] @@ -1243,6 +1293,60 @@ mod tests { assert!(!analysis.issues.files.contains_key("app/used.ts")); } + #[test] + fn follows_oxc_resolution_rules_for_project_imports() { + let (_tempdir, cwd) = fixture_path("oxc-resolution"); + + let config = crate::load_config(&cwd, None).unwrap(); + let analysis = analyze_path(&cwd, &config, AnalysisOptions::default()).unwrap(); + + assert!(analysis.issues.unresolved.is_empty()); + assert!(analysis.issues.files.contains_key("app/dead.ts")); + assert!(!analysis.issues.files.contains_key("app/aliased.ts")); + assert!(!analysis.issues.files.contains_key("app/internal.ts")); + assert!(!analysis.issues.files.contains_key("app/extension.ts")); + assert!(!analysis.issues.exports["app/aliased.ts"].contains_key("aliased")); + assert!(analysis.issues.exports["app/aliased.ts"].contains_key("unusedAliased")); + assert!(!analysis.issues.exports["app/internal.ts"].contains_key("internal")); + assert!(analysis.issues.exports["app/internal.ts"].contains_key("unusedInternal")); + assert!(!analysis.issues.exports["app/extension.ts"].contains_key("extension")); + assert!(analysis.issues.exports["app/extension.ts"].contains_key("unusedExtension")); + } + + #[test] + fn reports_missing_local_imports() { + let tempdir = tempfile::tempdir().unwrap(); + let cwd = tempdir.path(); + + fs::create_dir_all(cwd.join("app")).unwrap(); + fs::write( + cwd.join("codescythe.json"), + r#"{ + "entry": "app/index.ts", + "project": "app/**/*.ts" + }"#, + ) + .unwrap(); + fs::write( + cwd.join("app/index.ts"), + r#"import './missing'; +import missingExternal from 'missing-external'; +import missingExternalSubpath from 'missing-external/subpath'; + +console.log(missingExternal, missingExternalSubpath); +"#, + ) + .unwrap(); + + let config = crate::load_config(cwd, None).unwrap(); + let analysis = analyze_path(cwd, &config, AnalysisOptions::default()).unwrap(); + + assert_eq!( + analysis.issues.unresolved["app/index.ts"], + vec!["./missing".to_string()] + ); + } + fn fixture_path(name: &str) -> (tempfile::TempDir, PathBuf) { let relative = Path::new("tests/fixtures").join(name); let mut candidates = vec![ diff --git a/crates/codescythe_cli/BUILD.bazel b/crates/codescythe_cli/BUILD.bazel index 738dc4d..6a5daeb 100644 --- a/crates/codescythe_cli/BUILD.bazel +++ b/crates/codescythe_cli/BUILD.bazel @@ -34,6 +34,20 @@ rust_test( ], ) +rust_test( + name = "codescythe_cli_e2e_test", + srcs = ["e2e.rs"], + crate_name = "codescythe_cli_e2e_test", + data = [ + ":codescythe", + "//tests/fixtures/oxc-resolution:fixtures", + ], + edition = "2024", + deps = [ + "@crates//:serde_json", + ], +) + release_binary_linux_amd64( name = "release_binary_linux_amd64", srcs = [":codescythe"], diff --git a/crates/codescythe_cli/e2e.rs b/crates/codescythe_cli/e2e.rs new file mode 100644 index 0000000..4e9c3ee --- /dev/null +++ b/crates/codescythe_cli/e2e.rs @@ -0,0 +1,113 @@ +use std::{ + env, + path::{Path, PathBuf}, + process::{Command, Output}, +}; + +use serde_json::Value; + +#[test] +fn cli_resolves_oxc_resolution_fixture() { + let output = Command::new(runfile("crates/codescythe_cli/codescythe")) + .args([ + "-C", + path_arg(&runfile("tests/fixtures/oxc-resolution")), + "--json", + "--compact-json", + ]) + .output() + .expect("failed to run codescythe CLI"); + + assert_eq!(output.status.code(), Some(1), "{}", output_text(&output)); + assert!( + output.stderr.is_empty(), + "unexpected stderr: {}", + String::from_utf8_lossy(&output.stderr) + ); + + let analysis: Value = + serde_json::from_slice(&output.stdout).expect("CLI stdout should be JSON"); + assert_eq!(analysis["counters"]["unresolved"], 0); + + let files = analysis["issues"]["files"] + .as_object() + .expect("files should be an object"); + assert!(files.contains_key("app/dead.ts")); + assert!(!files.contains_key("app/aliased.ts")); + assert!(!files.contains_key("app/internal.ts")); + assert!(!files.contains_key("app/extension.ts")); + + let exports = analysis["issues"]["exports"] + .as_object() + .expect("exports should be an object"); + assert!(exports["app/aliased.ts"] + .as_object() + .expect("app/aliased.ts exports should be an object") + .contains_key("unusedAliased")); + assert!(exports["app/internal.ts"] + .as_object() + .expect("app/internal.ts exports should be an object") + .contains_key("unusedInternal")); + assert!(exports["app/extension.ts"] + .as_object() + .expect("app/extension.ts exports should be an object") + .contains_key("unusedExtension")); +} + +fn runfile(relative: &str) -> PathBuf { + let relative = Path::new(relative); + let mut candidates = Vec::new(); + + if let Ok(runfiles_dir) = env::var("RUNFILES_DIR") { + push_workspace_candidates(&mut candidates, &PathBuf::from(runfiles_dir), relative); + } + + if let Ok(test_srcdir) = env::var("TEST_SRCDIR") { + push_workspace_candidates(&mut candidates, &PathBuf::from(test_srcdir), relative); + } + + if let Ok(current_exe) = env::current_exe() { + for ancestor in current_exe.ancestors() { + push_workspace_candidates(&mut candidates, ancestor, relative); + } + } + + for candidate in &candidates { + if candidate.exists() { + return candidate.clone(); + } + } + + panic!( + "failed to locate runfile {}; tried: {}", + relative.display(), + candidates + .iter() + .map(|path| path.display().to_string()) + .collect::>() + .join(", ") + ); +} + +fn push_workspace_candidates(candidates: &mut Vec, root: &Path, relative: &Path) { + candidates.push(root.join(relative)); + for workspace in [ + env::var("TEST_WORKSPACE").unwrap_or_else(|_| "_main".to_string()), + "_main".to_string(), + "codescythe".to_string(), + ] { + candidates.push(root.join(workspace).join(relative)); + } +} + +fn path_arg(path: &Path) -> &str { + path.to_str().expect("test paths should be valid UTF-8") +} + +fn output_text(output: &Output) -> String { + format!( + "stdout:\n{}\nstderr:\n{}", + String::from_utf8_lossy(&output.stdout), + String::from_utf8_lossy(&output.stderr) + ) +} diff --git a/tests/fixtures/oxc-resolution/BUILD.bazel b/tests/fixtures/oxc-resolution/BUILD.bazel new file mode 100644 index 0000000..36d58fe --- /dev/null +++ b/tests/fixtures/oxc-resolution/BUILD.bazel @@ -0,0 +1,5 @@ +filegroup( + name = "fixtures", + srcs = glob(["**/*"]), + visibility = ["//visibility:public"], +) diff --git a/tests/fixtures/oxc-resolution/README.md b/tests/fixtures/oxc-resolution/README.md new file mode 100644 index 0000000..836355d --- /dev/null +++ b/tests/fixtures/oxc-resolution/README.md @@ -0,0 +1,5 @@ +# Oxc Resolution Fixture + +This fixture exercises module resolution that Codescythe delegates to +`oxc_resolver`: tsconfig paths, package `imports`, JavaScript specifiers backed +by TypeScript sources, package `exports`, external packages, and Node builtins. diff --git a/tests/fixtures/oxc-resolution/app/aliased.ts b/tests/fixtures/oxc-resolution/app/aliased.ts new file mode 100644 index 0000000..b6c8c9d --- /dev/null +++ b/tests/fixtures/oxc-resolution/app/aliased.ts @@ -0,0 +1,2 @@ +export const aliased = 1; +export const unusedAliased = 2; diff --git a/tests/fixtures/oxc-resolution/app/dead.ts b/tests/fixtures/oxc-resolution/app/dead.ts new file mode 100644 index 0000000..137ff43 --- /dev/null +++ b/tests/fixtures/oxc-resolution/app/dead.ts @@ -0,0 +1 @@ +export const dead = 1; diff --git a/tests/fixtures/oxc-resolution/app/extension.ts b/tests/fixtures/oxc-resolution/app/extension.ts new file mode 100644 index 0000000..1f83269 --- /dev/null +++ b/tests/fixtures/oxc-resolution/app/extension.ts @@ -0,0 +1,2 @@ +export const extension = 1; +export const unusedExtension = 2; diff --git a/tests/fixtures/oxc-resolution/app/index.ts b/tests/fixtures/oxc-resolution/app/index.ts new file mode 100644 index 0000000..ac24d26 --- /dev/null +++ b/tests/fixtures/oxc-resolution/app/index.ts @@ -0,0 +1,7 @@ +import { aliased } from '@/aliased'; +import { internal } from '#internal'; +import { extension } from './extension.js'; +import externalDefault from 'external-pkg'; +import path from 'node:path'; + +console.log(aliased, internal, extension, externalDefault, path.sep); diff --git a/tests/fixtures/oxc-resolution/app/internal.ts b/tests/fixtures/oxc-resolution/app/internal.ts new file mode 100644 index 0000000..da577cb --- /dev/null +++ b/tests/fixtures/oxc-resolution/app/internal.ts @@ -0,0 +1,2 @@ +export const internal = 1; +export const unusedInternal = 2; diff --git a/tests/fixtures/oxc-resolution/codescythe.json b/tests/fixtures/oxc-resolution/codescythe.json new file mode 100644 index 0000000..8c12fdc --- /dev/null +++ b/tests/fixtures/oxc-resolution/codescythe.json @@ -0,0 +1,5 @@ +{ + "$schema": "../../../codescythe.schema.json", + "entry": "app/index.ts", + "project": "app/**/*.ts" +} diff --git a/tests/fixtures/oxc-resolution/node_modules/external-pkg/index.ts b/tests/fixtures/oxc-resolution/node_modules/external-pkg/index.ts new file mode 100644 index 0000000..87397bb --- /dev/null +++ b/tests/fixtures/oxc-resolution/node_modules/external-pkg/index.ts @@ -0,0 +1,3 @@ +const externalDefault = 1; + +export default externalDefault; diff --git a/tests/fixtures/oxc-resolution/node_modules/external-pkg/package.json b/tests/fixtures/oxc-resolution/node_modules/external-pkg/package.json new file mode 100644 index 0000000..5bddd1e --- /dev/null +++ b/tests/fixtures/oxc-resolution/node_modules/external-pkg/package.json @@ -0,0 +1,7 @@ +{ + "name": "external-pkg", + "type": "module", + "exports": { + ".": "./index.ts" + } +} diff --git a/tests/fixtures/oxc-resolution/package.json b/tests/fixtures/oxc-resolution/package.json new file mode 100644 index 0000000..fafb282 --- /dev/null +++ b/tests/fixtures/oxc-resolution/package.json @@ -0,0 +1,7 @@ +{ + "name": "codescythe-resolution-fixture", + "type": "module", + "imports": { + "#internal": "./app/internal.ts" + } +} diff --git a/tests/fixtures/oxc-resolution/tsconfig.json b/tests/fixtures/oxc-resolution/tsconfig.json new file mode 100644 index 0000000..77423e5 --- /dev/null +++ b/tests/fixtures/oxc-resolution/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["app/*"] + } + } +}