From d6af92665176b6af7a7237fefafc4a2b9d1c9939 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2026 13:02:35 +0000 Subject: [PATCH 1/2] fix(deps): update rust dependencies --- Cargo.lock | 511 ++++++++++++++++---------------------- Cargo.toml | 12 +- crates/core/Cargo.toml | 4 +- crates/core/src/lib.rs | 26 +- crates/runtime/Cargo.toml | 2 +- src/cli.rs | 1 + 6 files changed, 240 insertions(+), 316 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b353ab2..e3575e5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -247,9 +247,9 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cap-fs-ext" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78e5a3368ae89b7cb68186411452b4b9fac8b41be9c19bf3f47c2d2c8e36e6b" +checksum = "56ff379b70af8e08307a8f65e7040c7301cb4a572538ade16b4984f0da77847f" dependencies = [ "cap-primitives", "cap-std", @@ -259,9 +259,9 @@ dependencies = [ [[package]] name = "cap-primitives" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdadbd7c002d3a484b35243669abdae85a0ebaded5a61117169dc3400f9a7ff0" +checksum = "8b5f74729fd2f44701d1a8eb47e906cdb3ccd9ec0f02baad85a744b791940b18" dependencies = [ "ambient-authority", "fs-set-times", @@ -277,9 +277,9 @@ dependencies = [ [[package]] name = "cap-std" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7281235d6e96d3544ca18bba9049be92f4190f8d923e3caef1b5f66cfa752608" +checksum = "c1ec78e242cfa2cfe276807ac2ecc00315a6c97786977414bcd1c3963b6c91b8" dependencies = [ "cap-primitives", "io-extras", @@ -400,20 +400,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" -[[package]] -name = "compact_str" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dfdd1c2274d9aa354115b09dc9a901d6c5576818cdf70d14cae2bdb47df00ab" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "rustversion", - "ryu", - "static_assertions", -] - [[package]] name = "compact_str" version = "0.10.0" @@ -445,9 +431,9 @@ dependencies = [ "wasmtime", "wasmtime-wasi", "wasmtime-wizer", - "wit-component 0.256.0", + "wit-component", "wit-dylib", - "wit-parser 0.256.0", + "wit-parser 0.258.0", ] [[package]] @@ -469,7 +455,7 @@ dependencies = [ "tokio", "wasmtime", "wasmtime-wasi", - "wit-parser 0.256.0", + "wit-parser 0.258.0", ] [[package]] @@ -495,7 +481,7 @@ dependencies = [ "num_enum", "rquickjs", "smallvec", - "wit-bindgen 0.60.0", + "wit-bindgen 0.61.1", "wit-dylib-ffi", ] @@ -543,27 +529,27 @@ dependencies = [ [[package]] name = "cranelift-assembler-x64" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d552bd33b7a56dc70aeb1e1c960e51a218fa0db50f23873b500a310379450b2d" +checksum = "16c273ba1bfc3a1cb27cb4f83df27134f3cb638a61f5ed79ab22cf86eb13da0d" dependencies = [ "cranelift-assembler-x64-meta", ] [[package]] name = "cranelift-assembler-x64-meta" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078e80e4c222279e3330f6aa1a256ca77ddf156d4453166a9f09defedc4594dd" +checksum = "cbf8909326a466739e83ffe11e74c0c8c6b4bfa911b612aece915daa746cff58" dependencies = [ "cranelift-srcgen", ] [[package]] name = "cranelift-bforest" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "820ce15d4ad3562d613c31a67b6d0434d403e7091a68d1349903842f7d31737e" +checksum = "3cb26b06b54d8b2f8cdf4d440a32fc3b3b91c71c162333a69a70a66fa265fc45" dependencies = [ "cranelift-entity", "wasmtime-internal-core", @@ -571,9 +557,9 @@ dependencies = [ [[package]] name = "cranelift-bitset" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61bca563d4b86d285928d9e27f97f27039bb33a0fc524fa130d7d0c106bf8ab3" +checksum = "7ce4e57dbb7f73d08011808a19787c3a03c3e7854b2a479ed0b788915fb671be" dependencies = [ "serde", "serde_derive", @@ -582,9 +568,9 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709f4b7c0fb57d952658d5b5c07fbdc4149acd7b7f0de9678ae754b9c981949a" +checksum = "74b0a8968f33d0bc13bc86fe70dd3947e93acc9f358ed9848e9988448972a9be" dependencies = [ "bumpalo", "cranelift-assembler-x64", @@ -613,9 +599,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903dc8915af62aad1d9d0f39a5968d33fa80b9aa899ed6f56e47f40ca4512e1e" +checksum = "f69e8e2fe9deb48ef7b8d0c61612f8c1e2277d0421c201e30a4c844a4ebac698" dependencies = [ "cranelift-assembler-x64-meta", "cranelift-codegen-shared", @@ -626,24 +612,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0522d74c227e49f3fd49ab055311486ae4f09083262b66705bed676952491469" +checksum = "ad4db1e87a65e9c5a832e3ede160830d4e34df938ac38b5604819f8825687e73" [[package]] name = "cranelift-control" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66560ea1c5cef72e170b18e46d263dba2d3169c9d39e8cafdab2173c6362cc1a" +checksum = "9248cd37bb6ec460981f57ead368e32b1eca7a207ad50e3e9c7adc3b161f20e9" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ef5b17cc814d27e96b66a5b46da0e4ce2b8ac55a6d478048bb99d04b05526" +checksum = "26b8bc91c0a3530d132acbf118965dabe9a084029eb0fa74b64760360dec3316" dependencies = [ "cranelift-bitset", "serde", @@ -653,9 +639,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a87e0aaa39dbf70693b348a221e45904111704ee8f9fef140498471005f9842d" +checksum = "5086f2ebc084a98b387e522680f62ef65a512444d8382151e03088716d3a1714" dependencies = [ "cranelift-codegen", "hashbrown 0.17.1", @@ -666,15 +652,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf79003ebfa1eed5e87f3b84446ad5236f540268289960e14f387dc9b28e40b7" +checksum = "b6a658670f779afc2df083be201ebe54805f69b7b9ffa8dab04142b72ed751c9" [[package]] name = "cranelift-native" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bf4f235743c81e67ee4db617c5a4a0b65d58d3f0cfc575ee0f1a4e0cd58273" +checksum = "16a41083b1fd953debd6f32d21fcda765b258f323ce907fdd6b4715f2769c478" dependencies = [ "cranelift-codegen", "libc", @@ -683,9 +669,9 @@ dependencies = [ [[package]] name = "cranelift-srcgen" -version = "0.134.3" +version = "0.134.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6977c2a71ab1e0d1e62f966b411a498aa04c4dce47d93d52f8a360a06058922" +checksum = "244d9cd0759b0a3ccdd587cafb13434f9ea43b5c9d07701d277daf5cd0f7b7c1" [[package]] name = "crc32fast" @@ -916,12 +902,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" dependencies = [ "crc32fast", - "miniz_oxide 0.8.9", + "miniz_oxide", + "zlib-rs", ] [[package]] @@ -962,7 +949,7 @@ checksum = "94e7099f6313ecacbe1256e8ff9d617b75d1bcb16a6fddef94866d225a01a14a" dependencies = [ "io-lifetimes 2.0.4", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1308,9 +1295,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb" dependencies = [ "equivalent", "hashbrown 0.17.1", @@ -1325,7 +1312,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20fd6de4ccfcc187e38bc21cfa543cb5a302cb86a8b114eb7f0bf0dc9f8ac00f" dependencies = [ "io-lifetimes 3.0.1", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1441,6 +1428,29 @@ dependencies = [ "memchr", ] +[[package]] +name = "lazy-regex" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4994ba703f78b083e2f7946dac9251abd83fd43a0365f030e99b69be5b4b9ef9" +dependencies = [ + "lazy-regex-proc_macros", + "once_cell", + "regex", +] + +[[package]] +name = "lazy-regex-proc_macros" +version = "3.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd97232314824e6dbef1918a871bb93f51070455e3715bf26e19a6d01aa977a0" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn 2.0.118", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1598,16 +1608,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - [[package]] name = "miniz_oxide" version = "0.9.1" @@ -1615,6 +1615,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -1630,9 +1631,9 @@ dependencies = [ [[package]] name = "napi" -version = "3.12.1" +version = "3.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459197f1592f4c3dbbf9c1b13f5a4599a343e4ef66b96bc340e2a518b36a6662" +checksum = "58c5f4d5375213fdb7be2655e152386e82f026f9a5ba36a75556e11359aafe09" dependencies = [ "bitflags", "ctor", @@ -1808,36 +1809,24 @@ checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" [[package]] name = "oxc-browserslist" -version = "3.0.11" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50a403a3c6be65be7bc7730d07d959ec6c143e4ff8117da485df78cd5582260a" +checksum = "456720daa870e4f69f8d29fded1c8deea82da4780a6b8553baa160eb0cd8d864" dependencies = [ - "miniz_oxide 0.9.1", + "js-sys", + "libc", + "miniz_oxide", "postcard", "rustc-hash", "serde", "thiserror 2.0.18", ] -[[package]] -name = "oxc-miette" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330e07b3807046e0afa8fcc94f1fe976e93831b370d148bfe1168cb53da1b913" -dependencies = [ - "bytecount", - "memchr", - "owo-colors", - "textwrap", - "unicode-segmentation", - "unicode-width", -] - [[package]] name = "oxc_allocator" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9262c7bbd58c8c32c2c60d1a7b6c274cd2aeaff1b726a2fb86081b75084698cb" +checksum = "c4e69b2400ab3c2f96eb3ae474ed80fa3a2959ba05e26afc5df45e634fc9a071" dependencies = [ "allocator-api2", "hashbrown 0.17.1", @@ -1847,9 +1836,9 @@ dependencies = [ [[package]] name = "oxc_ast" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8134809b665d524d9a0ddeee87a5d3602776aa2410a10a0439fd25eeb594a5d" +checksum = "3dcf0e905263cc649c07e3494489de620462390de12cb2b5933247f91785a421" dependencies = [ "bitflags", "oxc_allocator", @@ -1865,9 +1854,9 @@ dependencies = [ [[package]] name = "oxc_ast_macros" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac120c6863a9d036c78a42a5e4d2f58bb27c5df795d61d904f6e19e48c681a37" +checksum = "aa520723c19e83bcc683a988ac77d56bbca4b88178d5fc6c0c89fb73a45893cf" dependencies = [ "phf", "proc-macro2", @@ -1877,9 +1866,9 @@ dependencies = [ [[package]] name = "oxc_ast_visit" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a57626cd6ef87f5173110a301868e3c438fd8e0576f489d9a61540ef133f686" +checksum = "7bcdfe65eec7cc091e52f73ea7f6546375a2dd5b88c43900afc94dafffebfb8c" dependencies = [ "oxc_allocator", "oxc_ast", @@ -1889,9 +1878,9 @@ dependencies = [ [[package]] name = "oxc_codegen" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8a30cbe510caef092aa75fe29e8d37576ca8eb2ab3e9ab34a453a92863e7f0" +checksum = "bd265be822054de498537a8df29f0afef75f9e804f9c499c81c0ec8c9b9212bd" dependencies = [ "bitflags", "cow-utils", @@ -1906,13 +1895,14 @@ dependencies = [ "oxc_str", "oxc_syntax", "rustc-hash", + "smallvec", ] [[package]] name = "oxc_compat" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca8b4e5fc1b038d063aef726deeb0639460b0a3f4dfa9cc3f1b52b4b231bbf7" +checksum = "970fe81a0a43846ebe37c9250f3a1948e984ba79cbdf866681fd117dffe27e3d" dependencies = [ "cow-utils", "oxc-browserslist", @@ -1923,28 +1913,34 @@ dependencies = [ [[package]] name = "oxc_data_structures" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a71efea56db93d3ce9e88e1d9f74f6d50fc2b06092444cdd08579f5827fd8db" +checksum = "e7903e8f1f76f148c943b5a2e192bf908d600b5fe0df1efc77ebeb75591ace56" [[package]] name = "oxc_diagnostics" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ff8638533094ecdcd38a63930c003c261d81650e4531c3bc805c797aec2a52" +checksum = "acb70f89da6524e6a2d097f0d747f14731156996ee5400474ef19ad3f318646b" dependencies = [ + "bytecount", "cow-utils", + "itoa", "memchr", - "oxc-miette", + "owo-colors", + "oxc_span", "percent-encoding", "smallvec", + "textwrap", + "unicode-segmentation", + "unicode-width", ] [[package]] name = "oxc_ecmascript" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c7a326f49f06da37affdcad2fb3ebab46ac4ada8953a428f7cbd04e5cc9e6e" +checksum = "9f1fdd494072a511d7df691282dbd4fe656ad6fd0bea24d4366c019ed1172a4f" dependencies = [ "cow-utils", "dragonbox_ecma", @@ -1963,9 +1959,9 @@ dependencies = [ [[package]] name = "oxc_estree" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8275fcb9674a1c320f0bdbc2f534ba9bb09fcb8b1c9fe306c9595d262a06bfcb" +checksum = "e2ef8cdc8d02a7e0b91ee51a2572963c914d3bb38261e11a54d068a092c4dc42" [[package]] name = "oxc_index" @@ -1979,9 +1975,9 @@ dependencies = [ [[package]] name = "oxc_mangler" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d44069ca70dbae736cd232b04fe21f5ed354396be2365b5ed16adcf86248a09" +checksum = "efa851c466fb09783764de87e93fa44c27c2d0b918dbaa8b0a0364aca15b2f44" dependencies = [ "itertools 0.15.0", "oxc_allocator", @@ -1998,12 +1994,13 @@ dependencies = [ [[package]] name = "oxc_minifier" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb4a27820aa9c98438a7ed41d72747690111fc2075fbd178e81f94e55ae16ea" +checksum = "4bba5313adecd3682455f4a830e26cfcd751ac8f9423ca95f93d7b8dcdee807c" dependencies = [ "cow-utils", "itoa", + "lazy-regex", "oxc_allocator", "oxc_ast", "oxc_ast_visit", @@ -2023,9 +2020,9 @@ dependencies = [ [[package]] name = "oxc_parser" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d13016de81370106ea4065cfabe4a278dc09e82523cfe22bb6a8ab8e993b4c3a" +checksum = "12a55bfce994289467c88ed9732dbc4c8f03f3186af2b77e48dc4a71c502cb2c" dependencies = [ "bitflags", "cow-utils", @@ -2047,9 +2044,9 @@ dependencies = [ [[package]] name = "oxc_regular_expression" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c375b89d88ec03301b0e62528715699551871861197aa39148e95a1422e1ae9b" +checksum = "d8455a292e58e24a0c51cfa2ec1d44e219e22d59a04b9af1ae050d4944a19d51" dependencies = [ "bitflags", "oxc_allocator", @@ -2064,11 +2061,11 @@ dependencies = [ [[package]] name = "oxc_resolver" -version = "11.24.2" +version = "11.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa374d03b255c070a32ae65b8a05231b8e658104d6ef22034c09da8fa0c2fd9" +checksum = "2c7fd0839a5ecee17c0d2c88c8006e8ab4dff25d4a79e3a0bf7a9f0cce17f4e3" dependencies = [ - "compact_str 0.9.1", + "compact_str", "dashmap", "fast-glob", "indexmap", @@ -2091,9 +2088,9 @@ dependencies = [ [[package]] name = "oxc_semantic" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8d80604c4220c8f5b1c19682216921397fb45a616db47d3a044474662f0c2e" +checksum = "b9c35fc29f969e7f93ee41dc37c9d82816e9c2597495f6cc302477831c8fd2ed" dependencies = [ "itertools 0.15.0", "memchr", @@ -2127,12 +2124,11 @@ dependencies = [ [[package]] name = "oxc_span" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abd732008dbfb09984106925f7ff7268687c8020b89bd7ee0f0b695c5bb07950" +checksum = "378737bf42338e31badcdae2e6e2afc7a63cb7ffe82c418ac12d506c554adda4" dependencies = [ - "compact_str 0.10.0", - "oxc-miette", + "compact_str", "oxc_allocator", "oxc_ast_macros", "oxc_estree", @@ -2141,11 +2137,11 @@ dependencies = [ [[package]] name = "oxc_str" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d2ccb0f5aa4da9fc98ef70f59553c2779e28e064a8b271fcb1e88c11a63607" +checksum = "8564a0269f93153f856100db908af25434efdd1ec9d403ffa099cdab57385c8c" dependencies = [ - "compact_str 0.10.0", + "compact_str", "hashbrown 0.17.1", "oxc_allocator", "oxc_estree", @@ -2153,9 +2149,9 @@ dependencies = [ [[package]] name = "oxc_syntax" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15ff0e987ab15a71dae36fd544b9859513e76639e2cc6c5e25895081162755b1" +checksum = "59f05978138676c9d54f021391409fcf1314a46adcdbbaabc670c2990f8387dd" dependencies = [ "bitflags", "cow-utils", @@ -2173,9 +2169,9 @@ dependencies = [ [[package]] name = "oxc_traverse" -version = "0.144.0" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb740c9102d898615f894864044ca0b7926374981cef1b6c667e59e2b397ff9" +checksum = "02a3cc8f1a31a1b08104ede1a6631dfc984282234249f4503f51f4d2b22036e4" dependencies = [ "itoa", "oxc_allocator", @@ -2355,9 +2351,9 @@ dependencies = [ [[package]] name = "pulley-interpreter" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5c8c21ea032e4efbdf2d067dc45171779dbe0c8ecf20ef4a57efa7474f2b0a" +checksum = "ed2bd641cb6a3ec5bffe60405568933163e0ea619da0943e9d2a417ceaa7fe82" dependencies = [ "cranelift-bitset", "log", @@ -2367,9 +2363,9 @@ dependencies = [ [[package]] name = "pulley-macros" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f10925455d5dde962e3604eade797ba5488644c8ee14a44191e2f2b58980574" +checksum = "d3fd4024d1e559eaf5579bc8ad84a2b5915f34b47acc13a06ffba7dac401b166" dependencies = [ "proc-macro2", "quote", @@ -2502,9 +2498,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.4" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -2514,9 +2510,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -2794,9 +2790,9 @@ checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "simd-json" -version = "0.17.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4255126f310d2ba20048db6321c81ab376f6a6735608bf11f0785c41f01f64e3" +checksum = "6ebe141eb4a23ecc4d5de93fa5b139ac65dc07c38037a2fe9a8fb7c9d36bd832" dependencies = [ "halfbrown", "ref-cast", @@ -3327,9 +3323,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi-preview1-component-adapter-provider" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fd4f8115ea10809485fd81d2c0b12ec0983446a55e1f93df7f607389d3bec1" +checksum = "d61c90caa438b351d70df92b818d1082f71f3e20b7be3a9939c13be530c8d811" [[package]] name = "wasip2" @@ -3424,22 +3420,12 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.254.0" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09480d646178e5fdd12bb06e812d0af9a3a191dbc9cd697fdc86687beade7393" +checksum = "e974fe6821a8cf64575d51ea2194e2c8f77e7b66e9afe7419ce8a97f9ee0d251" dependencies = [ "leb128fmt", - "wasmparser 0.254.0", -] - -[[package]] -name = "wasm-encoder" -version = "0.256.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec1492381bfd5ea51c2a99a919b676662559925cb8d7490547ec2e14c1ad3eb1" -dependencies = [ - "leb128fmt", - "wasmparser 0.256.0", + "wasmparser 0.258.0", ] [[package]] @@ -3463,26 +3449,14 @@ dependencies = [ [[package]] name = "wasm-metadata" -version = "0.254.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b01df5f3b4ca7881e843f3bc0fb8a3905d79c68692250dcb8e33e698705ccdb6" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder 0.254.0", - "wasmparser 0.254.0", -] - -[[package]] -name = "wasm-metadata" -version = "0.256.0" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6187f9fce741db43bea48f1ec42174897d763b8cdea7df726f2dd05561848d7" +checksum = "18a11585adb92fe9b55ad1d760e8d8fb5d87e0d2e303cb8eed57f078d54293a2" dependencies = [ "anyhow", "indexmap", - "wasm-encoder 0.256.0", - "wasmparser 0.256.0", + "wasm-encoder 0.258.0", + "wasmparser 0.258.0", ] [[package]] @@ -3525,21 +3499,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.254.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5769a29f799fbab136aaf65b4fe5384cd7d93fe6fc9ba0dcb6c8382a1f16e27" -dependencies = [ - "bitflags", - "hashbrown 0.17.1", - "indexmap", - "semver", -] - -[[package]] -name = "wasmparser" -version = "0.256.0" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60bd825ffedc6cba8a642924ba7ae424afbc47811cffbcb7b92031ec24e59b4c" +checksum = "d9a61719f93a87b16d325921e251800c4833f8fab50fa21c7de73aed50086313" dependencies = [ "bitflags", "hashbrown 0.17.1", @@ -3560,9 +3522,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c80ca6098e0d4d06886d91d7f2cc3cb6623eb583c4c0ab3c89cbfb6098c8586c" +checksum = "4cdaf5b8af5713146e3a62d940c71e3eb2ad1ebacfa6b55f0c8509a5b4b87718" dependencies = [ "addr2line", "async-trait", @@ -3615,9 +3577,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134f9d136d29c76f6c1b4c9b468e97a2efc38c7d49fd188e39b64870b2fea701" +checksum = "58793271eab7ec26bab99ca497131f8b37702e7dc39e2f2d18293e3e915b4964" dependencies = [ "anyhow", "cpp_demangle", @@ -3646,9 +3608,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-cache" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65db2eb1bfc5371a3b4107dbf539d0b93d05016fc29625b1648146b47db02071" +checksum = "ede02ba77442cab88a2ddd5d16373e8bc450b55e05de8be039b024987a53d5a7" dependencies = [ "base64 0.22.1", "directories-next", @@ -3666,9 +3628,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-component-macro" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf7b91fed3fc34781d57f9c6654ea2513bf0a99f7b0b0523c00de1e6efebe1c" +checksum = "c5bba4eff4804620bae04d7793308d97a0c5a8a97ea19e635452518f84560f84" dependencies = [ "anyhow", "proc-macro2", @@ -3681,15 +3643,15 @@ dependencies = [ [[package]] name = "wasmtime-internal-component-util" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc8a678149885cae00289f806fbe74c7863084cf74cace0b8dc73602279400e1" +checksum = "3d7032ff6b4d7a45e05be1cb32ec1756df5f2669f08296dbe2c61c3789dead2c" [[package]] name = "wasmtime-internal-core" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0092c4b9d070ac5e278b6d0db10f5e71214190f0347ca57502b4692f796321" +checksum = "f41d3b2cb9c3de7b696690af070d408b5e357011832f8b8bb7fbb315dbb620ed" dependencies = [ "anyhow", "hashbrown 0.17.1", @@ -3699,9 +3661,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-cranelift" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6851ebc9e03cab23d9821d2b2505d380bdfe38f35ccec945247b05274d85c98b" +checksum = "1d5cda5b90247978dd2ba6ca4e309508da19e9244445671d2d0e6a34e5c3b847" dependencies = [ "cfg-if", "cranelift-codegen", @@ -3726,9 +3688,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-fiber" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b26da6d5f60d4c438da70bba3553fe810a840533a64156be287dca2081c6991" +checksum = "4d126366176553e8f304e8ac2078a4cc37134fe8f19d4d4695a09c5a2f577f10" dependencies = [ "cc", "cfg-if", @@ -3741,9 +3703,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-debug" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed621ba25d7bf78b7edd7b4749abbb27c2e5cdba836c9504a424ee74b6c23149" +checksum = "c1d28ff131bc40e11d84bc3a9fa0d264506439ffbbc89f3562fbb529d1caa617" dependencies = [ "cc", "object", @@ -3753,9 +3715,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-icache-coherence" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5684ba160951baad06a725696f3c590e2fb0e8067c2aebee27bf7f9259058e85" +checksum = "4a52de8b6afbfcd618073f592c1450cb661574e7061f3f4a44f1f7ec0c7f7909" dependencies = [ "cfg-if", "libc", @@ -3765,9 +3727,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-unwinder" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112eead527bffa8ff0646a11fb4339a9d52ddd1da2b9a6fce4aff84c815dd94f" +checksum = "5524fbaaf3d2134dd6229164d7fc81e443cce06d1e0576524d5f4e86e747cb13" dependencies = [ "cfg-if", "cranelift-codegen", @@ -3778,9 +3740,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-versioned-export-macros" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "153592e0bed824fc13c6696203fa1bd7bd20eb355316475e39a55f081ef80eca" +checksum = "e93bb9ae112a80618510f938275a5d88637b656e7d0a021fc906f52206c708ad" dependencies = [ "proc-macro2", "quote", @@ -3789,9 +3751,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-wit-bindgen" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c456ad6e81e0f46abfeca43687d18ea15e289c395b262ea6e0023e2682e088be" +checksum = "bfdbdd9d6fab1ecb67a7dc189e32c9e341444945fb709437bf8aab25d9a88459" dependencies = [ "anyhow", "bitflags", @@ -3802,9 +3764,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1cf60cd6a565213af7074b4aad7bb5e110e3c6c6aae54425aa0500a0e15e86" +checksum = "b373095a6dc8382da56882ad16d7ea16771dd6927dd480b1ce3fe7c4b816d2cf" dependencies = [ "async-trait", "bitflags", @@ -3827,9 +3789,9 @@ dependencies = [ [[package]] name = "wasmtime-wasi-io" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb08e1d7755aaa467ce14080b7b01e33c914a920f6000696f1e42e40ea6387e" +checksum = "51b3c9b39b1a1b3029f80e614623e182f165133dfaca8610f156450343f080a4" dependencies = [ "async-trait", "bytes", @@ -3840,9 +3802,9 @@ dependencies = [ [[package]] name = "wasmtime-wizer" -version = "47.0.3" +version = "47.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc5f1c0bf98aa22e4551cb81ff035d8103ec473ce663d441e7c485b45818a7f" +checksum = "a4c87c6c17212e15f3f5d780c8c6431b4eb4f70e450a6796fe894b532d7bb201" dependencies = [ "log", "rayon", @@ -3853,22 +3815,22 @@ dependencies = [ [[package]] name = "wast" -version = "256.0.0" +version = "258.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ad42723fc9222da007f05812a3249c9a4ee7af79d497fc2a2079579ad7efe6" +checksum = "97f7defc7ecca8b19ac7f824598eadd0c53985ee00c74060d65051e9da5b58a1" dependencies = [ "bumpalo", "leb128fmt", "memchr", "unicode-width", - "wasm-encoder 0.256.0", + "wasm-encoder 0.258.0", ] [[package]] name = "wat" -version = "1.256.0" +version = "1.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37cc86c54d8011b3202e265bfebada440733ea3a788ffaf46d395f7d2fdeacfb" +checksum = "7555c008cca87f2ac58d9f83ccda7e7b44611093ce28eb28f052e7c78024b9bf" dependencies = [ "wast", ] @@ -4023,15 +3985,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -4136,7 +4089,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3fd376f71958b862e7afb20cfe5a22830e1963462f3a17f49d82a6c1d1f42d" dependencies = [ "bitflags", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -4147,9 +4100,9 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "wit-bindgen" -version = "0.60.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a301904d6657d6364c758d869e5389d05d393b16d5b65db60b4f03cbe71bb80d" +checksum = "e473fd0095479f9689ac7d2a52c427cc96bb2b973ace50238dfcc1ab1cd52d93" dependencies = [ "bitflags", "wit-bindgen-rust-macro", @@ -4157,36 +4110,36 @@ dependencies = [ [[package]] name = "wit-bindgen-core" -version = "0.60.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48521bb96e56cbb9e031ad306c80dc20e89e69e49ada02781ee06f60fbcb545f" +checksum = "87445680dfe6d6b5369e884bd63c03a3335268e855365b2fc3f7bcdce96a630e" dependencies = [ "anyhow", "heck", - "wit-parser 0.254.0", + "wit-parser 0.258.0", ] [[package]] name = "wit-bindgen-rust" -version = "0.60.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df3fe9b9a0066f82fd0c2f07f79d0ffc0f85c53fa5f998516d8722712479042" +checksum = "72f2fe494de0d898216caf0fd0ae76af75753fcb3ff4f465b46131537cf24cf8" dependencies = [ "anyhow", "heck", "indexmap", "prettyplease", "syn 2.0.118", - "wasm-metadata 0.254.0", + "wasm-metadata 0.258.0", "wit-bindgen-core", - "wit-component 0.254.0", + "wit-component", ] [[package]] name = "wit-bindgen-rust-macro" -version = "0.60.0" +version = "0.61.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d689c4bc9d6af067c651cfba444766343c9a4bdef15fad1e2efab95c0c277af0" +checksum = "59283a01aec94f60f92ada22ffe182a5cea8acfce43be3be688de8d52df55312" dependencies = [ "anyhow", "macro-string", @@ -4200,9 +4153,9 @@ dependencies = [ [[package]] name = "wit-component" -version = "0.254.0" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0e65bb94c369b3c4741ce3d1d2704b1fec93db7c540df0e521a097e7ceeb5be" +checksum = "481b5c47b2ecce0389b5e08a05557d6a190c9cd761773b8880a8017ee04dc7ef" dependencies = [ "anyhow", "bitflags", @@ -4211,42 +4164,23 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "wasm-encoder 0.254.0", - "wasm-metadata 0.254.0", - "wasmparser 0.254.0", - "wit-parser 0.254.0", -] - -[[package]] -name = "wit-component" -version = "0.256.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d537ec182eed18f560184b870287cf443c4eccc315af178db3eae8811c3b6c" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder 0.256.0", - "wasm-metadata 0.256.0", - "wasmparser 0.256.0", + "wasm-encoder 0.258.0", + "wasm-metadata 0.258.0", + "wasmparser 0.258.0", "wat", - "wit-parser 0.256.0", + "wit-parser 0.258.0", ] [[package]] name = "wit-dylib" -version = "0.256.0" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba779c90b60e7ee06cf3d6347d640d4d2c96b145e4548049331eaff6ad7c9699" +checksum = "b2d327c800c0fbf8c59c792711d7b945689b5252dcd39a538dea3176905be15d" dependencies = [ "anyhow", "indexmap", - "wasm-encoder 0.256.0", - "wit-parser 0.256.0", + "wasm-encoder 0.258.0", + "wit-parser 0.258.0", ] [[package]] @@ -4275,28 +4209,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.254.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1655131e4f7d3f0cb141f6eca71315ca40eff0f3d4de7cff0a82bacedd8c89b4" -dependencies = [ - "anyhow", - "hashbrown 0.17.1", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-ident", - "wasmparser 0.254.0", -] - -[[package]] -name = "wit-parser" -version = "0.256.0" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa073dadefba859cb03f689a0c2e3efc51f883bf86b907eaa9709bfd9e3a00a9" +checksum = "ff4daaa3cd97ae49ecd0a99dc009d453f93e0f083dd3be38c0f24a83a93e37ac" dependencies = [ "anyhow", "hashbrown 0.17.1", @@ -4308,7 +4223,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-ident", - "wasmparser 0.256.0", + "wasmparser 0.258.0", ] [[package]] @@ -4410,6 +4325,12 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "zlib-rs" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + [[package]] name = "zmij" version = "1.0.21" diff --git a/Cargo.toml b/Cargo.toml index cccd0fa..d9a1355 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ clap = { version = "4", features = ["derive"] } tokio = { version = "1", default-features = false, features = ["rt", "macros"] } wasmtime = { version = "47", features = ["component-model", "async"] } wasmtime-wasi = { version = "47", default-features = false, features = ["p2", "p3"] } -wit-parser = "0.256" +wit-parser = "0.258" [package] name = "componentize-qjs-cli" @@ -57,11 +57,11 @@ componentize-qjs.workspace = true anyhow.workspace = true clap.workspace = true tokio.workspace = true -oxc_minifier = "0.144.0" -oxc_allocator = "0.144.0" -oxc_codegen = "0.144.0" -oxc_parser = "0.144.0" -oxc_span = "0.144.0" +oxc_minifier = "0.147.0" +oxc_allocator = "0.147.0" +oxc_codegen = "0.147.0" +oxc_parser = "0.147.0" +oxc_span = "0.147.0" [features] default = ["component-model-async"] diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index 8571529..b7d499c 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -37,8 +37,8 @@ bytes = "1" oxc_resolver = "11.21.0" tokio.workspace = true wit-parser.workspace = true -wit-component = { version = "0.256", features = ["dummy-module"] } -wit-dylib = "0.256" +wit-component = { version = "0.258", features = ["dummy-module"] } +wit-dylib = "0.258" wasi-preview1-component-adapter-provider = "47" wasmtime.workspace = true wasmtime-wasi.workspace = true diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index 1f3f128..c40f563 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -136,18 +136,20 @@ pub async fn componentize(opts: &ComponentizeOpts<'_>) -> Result> { wit_component::StringEncoding::UTF8, )?; - let pre_wizer_component = wit_component::Linker::default() - .validate(true) - .library( - "componentize_qjs_runtime.wasm", - runtime_wasm(opts.runtime), - false, - )? - .library("wit-dylib.wasm", &wit_dylib, false)? - .adapter( - "wasi_snapshot_preview1", - WASI_SNAPSHOT_PREVIEW1_REACTOR_ADAPTER, - )? + let mut linker = wit_component::Linker::default(); + linker.encoder().validate(true); + linker.library( + "componentize_qjs_runtime.wasm", + runtime_wasm(opts.runtime), + false, + )?; + linker.library("wit-dylib.wasm", &wit_dylib, false)?; + linker.encoder().adapter( + "wasi_snapshot_preview1", + WASI_SNAPSHOT_PREVIEW1_REACTOR_ADAPTER, + )?; + + let pre_wizer_component = linker .encode() .context("failed to link and encode component")?; diff --git a/crates/runtime/Cargo.toml b/crates/runtime/Cargo.toml index e217881..ad201fe 100644 --- a/crates/runtime/Cargo.toml +++ b/crates/runtime/Cargo.toml @@ -13,7 +13,7 @@ crate-type = ["cdylib"] [dependencies] rquickjs = { version = "0.12", default-features = false, features = ["bindgen", "disable-assertions", "loader", "std", "macro"] } -wit-bindgen = "0.60" +wit-bindgen = "0.61" wit-dylib-ffi = { version = "0.1.0", git = "https://github.com/bytecodealliance/wasm-tools", default-features = false, features = ["async-raw"] } heck = "0.5" num_enum = { version = "0.7", default-features = false } diff --git a/src/cli.rs b/src/cli.rs index 437184f..7b01226 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -103,6 +103,7 @@ pub async fn run(args: Vec) -> Result<()> { top_level: Some(false), ..Default::default() }), + mangle_properties: None, compress: Some(CompressOptions { unused: CompressOptionsUnused::Keep, keep_names: CompressOptionsKeepNames::all_false(), From 554116bfed086b8e8d96d4243ec43df56c4b8adf Mon Sep 17 00:00:00 2001 From: Tomasz Andrzejak Date: Tue, 1 Sep 2026 14:19:53 +0200 Subject: [PATCH 2/2] fix: align tools and implement map type --- Cargo.lock | 128 +++++++----------------------------- README.md | 1 + crates/core/Cargo.toml | 3 +- crates/core/src/codegen.rs | 5 ++ crates/core/src/lib.rs | 1 + crates/core/src/stubwasi.rs | 30 ++++----- crates/runtime/Cargo.toml | 2 +- crates/runtime/src/call.rs | 78 ++++++++++++++++++++-- docs/runtime-intrinsics.md | 2 + tests/async_types.rs | 28 ++++++++ tests/common/mod.rs | 2 + tests/wit_types.rs | 71 ++++++++++++++++++++ 12 files changed, 223 insertions(+), 128 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e3575e5..f0cb39e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -132,18 +132,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "auditable-serde" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d026218ae25ba5c72834245412dd1338f6d270d2c5109ee03a4badec288d4056" -dependencies = [ - "semver", - "serde", - "serde_json", - "topological-sort", -] - [[package]] name = "autocfg" version = "1.5.1" @@ -424,10 +412,11 @@ dependencies = [ "indexmap", "oxc_resolver", "tar", + "tempfile", "tokio", "ureq", - "wac-graph", "wasi-preview1-component-adapter-provider", + "wasm-compose 0.258.0", "wasmtime", "wasmtime-wasi", "wasmtime-wizer", @@ -860,7 +849,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2618,7 +2607,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -2843,15 +2832,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "spdx" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8da593e30beb790fc9424502eb898320b44e5eb30367dbda1c1edde8e2f32d7" -dependencies = [ - "smallvec", -] - [[package]] name = "stable_deref_trait" version = "1.2.1" @@ -2936,7 +2916,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -3101,12 +3081,6 @@ version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" -[[package]] -name = "topological-sort" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" - [[package]] name = "tracing" version = "0.1.44" @@ -3273,39 +3247,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" -[[package]] -name = "wac-graph" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdc8c5ffe944e002a24ba9d0fa67f51d4a761c1fc97718a17d1d7379753a6f8e" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "petgraph", - "semver", - "thiserror 1.0.69", - "wac-types", - "wasm-encoder 0.247.0", - "wasm-metadata 0.247.0", - "wasmparser 0.247.0", -] - -[[package]] -name = "wac-types" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b90654c08294d879e85f0b8b2c5a7efc3a7a10df3009dd1578d98902d1ec8a2" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "semver", - "wasm-encoder 0.247.0", - "wasmparser 0.247.0", -] - [[package]] name = "wait-timeout" version = "0.2.1" @@ -3399,13 +3340,20 @@ dependencies = [ ] [[package]] -name = "wasm-encoder" -version = "0.247.0" +name = "wasm-compose" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b6733b8b91d010a6ac5b0fb237dc46a19650bc4c67db66857e2e787d437204" +checksum = "7dd08e5283f98238f2f16f5f978188a33af9901b81186bb549faad306a7b5388" dependencies = [ - "leb128fmt", - "wasmparser 0.247.0", + "anyhow", + "heck", + "indexmap", + "log", + "petgraph", + "smallvec", + "wasm-encoder 0.258.0", + "wasmparser 0.258.0", + "wat", ] [[package]] @@ -3428,25 +3376,6 @@ dependencies = [ "wasmparser 0.258.0", ] -[[package]] -name = "wasm-metadata" -version = "0.247.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "665fe59e56cc9b419ca6fcca56673e3421d1a5011e3b65caf6b726fd9e041d10" -dependencies = [ - "anyhow", - "auditable-serde", - "flate2", - "indexmap", - "serde", - "serde_derive", - "serde_json", - "spdx", - "url", - "wasm-encoder 0.247.0", - "wasmparser 0.247.0", -] - [[package]] name = "wasm-metadata" version = "0.258.0" @@ -3471,19 +3400,6 @@ dependencies = [ "wit-parser 0.252.0", ] -[[package]] -name = "wasmparser" -version = "0.247.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6fb4c2bee46c5ea4d40f8cdb5c131725cd976718ec56f1c8e82fbde5fa2a80" -dependencies = [ - "bitflags", - "hashbrown 0.17.1", - "indexmap", - "semver", - "serde", -] - [[package]] name = "wasmparser" version = "0.252.0" @@ -3555,7 +3471,7 @@ dependencies = [ "smallvec", "target-lexicon", "tempfile", - "wasm-compose", + "wasm-compose 0.252.0", "wasm-encoder 0.252.0", "wasm-wave", "wasmparser 0.252.0", @@ -3866,7 +3782,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -4130,7 +4046,7 @@ dependencies = [ "indexmap", "prettyplease", "syn 2.0.118", - "wasm-metadata 0.258.0", + "wasm-metadata", "wit-bindgen-core", "wit-component", ] @@ -4165,7 +4081,7 @@ dependencies = [ "serde_derive", "serde_json", "wasm-encoder 0.258.0", - "wasm-metadata 0.258.0", + "wasm-metadata", "wasmparser 0.258.0", "wat", "wit-parser 0.258.0", @@ -4186,7 +4102,7 @@ dependencies = [ [[package]] name = "wit-dylib-ffi" version = "0.1.0" -source = "git+https://github.com/bytecodealliance/wasm-tools#e6317b4f33aa5867ee902623f5e57cfea0733035" +source = "git+https://github.com/bytecodealliance/wasm-tools?tag=v1.258.0#5c6d31c78f8bd503f558441ef9c732950a141d1a" [[package]] name = "wit-parser" diff --git a/README.md b/README.md index be54728..5cacf82 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ a project root that contains shared files or `node_modules`. |----------|---------|---------| | `list` | `Array` | `[1, 2, 3]` | | `list` | `Uint8Array` or `Array` | `new Uint8Array([1, 2, 3])` | +| `map` | `Map` | `new Map([["key", value]])` | | `tuple` | `Array` | `[42, "hello"]` | | `option` | `T \| null` (nested: `{ tag: "some"\|"none", val }`) | `null` for none; `option>` is wrapped | | `result` | top-level function result: return `T` or throw `E`; nested result: `{ tag: "ok"\|"err", val?: T\|E }` | `return 42` / `throw "error"` | diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml index b7d499c..88bf260 100644 --- a/crates/core/Cargo.toml +++ b/crates/core/Cargo.toml @@ -43,8 +43,9 @@ wasi-preview1-component-adapter-provider = "47" wasmtime.workspace = true wasmtime-wasi.workspace = true wasmtime-wizer = { version = "47", features = ["component-model", "wasmtime"] } -wac-graph = "0.10" +wasm-compose = { version = "0.258", default-features = false } indexmap = "2" +tempfile = "3" [build-dependencies] anyhow.workspace = true diff --git a/crates/core/src/codegen.rs b/crates/core/src/codegen.rs index d0ad7e2..371dedc 100644 --- a/crates/core/src/codegen.rs +++ b/crates/core/src/codegen.rs @@ -283,6 +283,11 @@ fn typedef_const_name(resolve: &Resolve, id: TypeId, style: ConstNameStyle) -> S TypeDefKind::List(inner) => { format!("LIST_{}", type_const_name(resolve, Some(inner), style)) } + TypeDefKind::Map(key, value) => { + let key = type_const_name(resolve, Some(key), style); + let value = type_const_name(resolve, Some(value), style); + format!("MAP_{key}_{value}") + } TypeDefKind::Future(inner) => { let inner = inner .as_ref() diff --git a/crates/core/src/lib.rs b/crates/core/src/lib.rs index c40f563..5ce624c 100644 --- a/crates/core/src/lib.rs +++ b/crates/core/src/lib.rs @@ -233,6 +233,7 @@ async fn wizer_init( let mut config = Config::new(); config.wasm_component_model(true); config.wasm_component_model_async(true); + config.wasm_component_model_map(true); let engine = Engine::new(&config)?; let mut store = Store::new(&engine, Ctx { wasi, table }); diff --git a/crates/core/src/stubwasi.rs b/crates/core/src/stubwasi.rs index ad433de..bb7e066 100644 --- a/crates/core/src/stubwasi.rs +++ b/crates/core/src/stubwasi.rs @@ -5,11 +5,11 @@ //! 2. Create a "stub world" where the WASI imports become exports //! 3. Use `dummy_module` to generate a core module with trap implementations //! 4. Encode it as a stub component -//! 5. Use `wac-graph` to compose the stub into the original component +//! 5. Use `wasm-compose` to compose the stub into the original component use anyhow::{Context, Result, bail}; use indexmap::IndexMap; -use wac_graph::{CompositionGraph, EncodeOptions, plug, types::Package}; +use wasm_compose::{composer::ComponentComposer, config::Config as ComposeConfig}; use wit_component::{ComponentEncoder, StringEncoding, dummy_module, embed_component_metadata}; use wit_parser::decoding::{DecodedWasm, decode}; use wit_parser::{Docs, ManglingAndAbi, Resolve, Stability, World, WorldItem, WorldKey}; @@ -47,22 +47,22 @@ fn stub_imports(component: &[u8], should_stub: impl Fn(&str) -> bool) -> Result< let stub_component = make_stub_component(&resolve, world, &imports).context("failed to build stub component")?; - let mut graph = CompositionGraph::new(); + let dir = tempfile::tempdir().context("failed to create composition directory")?; + let component_path = dir.path().join("original.wasm"); + let stub_path = dir.path().join("stubs.wasm"); - let orig_pkg = Package::from_bytes("original", None, component.to_vec(), graph.types_mut()) - .context("failed to register original component")?; + std::fs::write(&component_path, component).context("failed to stage original component")?; + std::fs::write(&stub_path, stub_component).context("failed to stage stub component")?; - let stub_pkg = Package::from_bytes("stubs", None, stub_component, graph.types_mut()) - .context("failed to register stub component")?; - - let orig_id = graph.register_package(orig_pkg)?; - let stub_id = graph.register_package(stub_pkg)?; - - plug(&mut graph, vec![stub_id], orig_id)?; + let config = ComposeConfig { + dir: dir.path().to_path_buf(), + definitions: vec!["stubs.wasm".into()], + ..Default::default() + }; - graph - .encode(EncodeOptions::default()) - .context("failed to encode composed component") + ComponentComposer::new(&component_path, &config) + .compose() + .context("failed to compose stub component") } /// Build a component that exports trap implementations for the given imports. diff --git a/crates/runtime/Cargo.toml b/crates/runtime/Cargo.toml index ad201fe..9bf8cd8 100644 --- a/crates/runtime/Cargo.toml +++ b/crates/runtime/Cargo.toml @@ -14,7 +14,7 @@ crate-type = ["cdylib"] [dependencies] rquickjs = { version = "0.12", default-features = false, features = ["bindgen", "disable-assertions", "loader", "std", "macro"] } wit-bindgen = "0.61" -wit-dylib-ffi = { version = "0.1.0", git = "https://github.com/bytecodealliance/wasm-tools", default-features = false, features = ["async-raw"] } +wit-dylib-ffi = { version = "0.1.0", git = "https://github.com/bytecodealliance/wasm-tools", tag = "v1.258.0", default-features = false, features = ["async-raw"] } heck = "0.5" num_enum = { version = "0.7", default-features = false } smallvec = "1" diff --git a/crates/runtime/src/call.rs b/crates/runtime/src/call.rs index 02215f1..c0a9a49 100644 --- a/crates/runtime/src/call.rs +++ b/crates/runtime/src/call.rs @@ -9,11 +9,12 @@ use crate::trivia::fn_lookup; use crate::{BorrowedResource, QjsCallContext, with_ctx}; use rquickjs::class::Class; -use rquickjs::{Coerced, IntoJs, Persistent, Symbol, Value}; +use rquickjs::function::This; +use rquickjs::{Coerced, Constructor, Function, IntoJs, Persistent, Symbol, Value}; use smallvec::SmallVec; use wit_dylib_ffi::{ - Call, Enum, Flags, Future, List, Record, Resource, Stream, Tuple, Type, Variant, WitOption, - WitResult, + Call, Enum, Flags, Future, List, Map, Record, Resource, Stream, Tuple, Type, Variant, + WitOption, WitResult, }; use std::alloc::Layout; @@ -202,7 +203,7 @@ impl Call for QjsCallContext { }) } - fn pop_iter_next(&mut self, _ty: List) { + fn pop_list_iter_next(&mut self, _ty: List) { let index = *self.iter_stack.last().expect("iter_stack underflow"); let arr_persistent = self.stack.last().expect("stack underflow").clone(); @@ -216,11 +217,53 @@ impl Call for QjsCallContext { *self.iter_stack.last_mut().unwrap() = index + 1; } - fn pop_iter(&mut self, _ty: List) { + fn pop_list_iter(&mut self, _ty: List) { self.iter_stack.pop().expect("iter_stack underflow"); self.stack.pop().expect("stack underflow"); } + fn pop_map(&mut self, _ty: Map) -> usize { + let persistent = self.stack.pop().expect("stack underflow"); + + with_ctx(|ctx| { + let value = persistent.restore(ctx).unwrap(); + let map = value.as_object().expect("expected Map"); + let constructor: Constructor = ctx.globals().get("Map").expect("Map not found"); + assert!(map.is_instance_of(&constructor), "expected Map"); + + let len = map.get("size").expect("expected Map size"); + let entries: Function = map.get("entries").expect("Map.entries not found"); + let iterator: Value = entries + .call((This(map.clone()),)) + .expect("failed to create Map iterator"); + self.stack.push(Persistent::save(ctx, iterator)); + len + }) + } + + fn pop_map_iter_next(&mut self, _ty: Map) { + let persistent = self.stack.last().expect("stack underflow").clone(); + + with_ctx(|ctx| { + let value = persistent.restore(ctx).unwrap(); + let iterator = value.as_object().expect("expected Map iterator"); + let next: Function = iterator.get("next").expect("Map iterator.next not found"); + let result: rquickjs::Object = next + .call((This(iterator.clone()),)) + .expect("failed to advance Map iterator"); + let entry: rquickjs::Array = result.get("value").expect("expected Map entry"); + let key: Value = entry.get(0).expect("expected Map key"); + let value: Value = entry.get(1).expect("expected Map value"); + + self.stack.push(Persistent::save(ctx, value)); + self.stack.push(Persistent::save(ctx, key)); + }); + } + + fn pop_map_iter(&mut self, _ty: Map) { + self.stack.pop().expect("stack underflow"); + } + fn pop_option(&mut self, ty: WitOption) -> u32 { let persistent = self.stack.pop().expect("stack underflow"); @@ -509,6 +552,31 @@ impl Call for QjsCallContext { }); } + fn push_map(&mut self, _ty: Map, _capacity: usize) { + with_ctx(|ctx| { + let constructor: Constructor = ctx.globals().get("Map").expect("Map not found"); + let map: Value = constructor.construct(()).expect("failed to create Map"); + self.stack.push(Persistent::save(ctx, map)); + }); + } + + fn map_append(&mut self, _ty: Map) { + let value = self.stack.pop().expect("stack underflow"); + let key = self.stack.pop().expect("stack underflow"); + let map_persistent = self.stack.last().expect("stack underflow").clone(); + + with_ctx(|ctx| { + let map_value = map_persistent.restore(ctx).unwrap(); + let map = map_value.as_object().expect("expected Map"); + let set: Function = map.get("set").expect("Map.set not found"); + let key = key.restore(ctx).unwrap(); + let value = value.restore(ctx).unwrap(); + let _: Value = set + .call((This(map.clone()), key, value)) + .expect("failed to append Map entry"); + }); + } + fn push_option(&mut self, ty: WitOption, is_some: bool) { if option_is_nested(ty) { // Nested option: wrap so `none` and `some(none)` stay distinct. diff --git a/docs/runtime-intrinsics.md b/docs/runtime-intrinsics.md index beac18c..1dee064 100644 --- a/docs/runtime-intrinsics.md +++ b/docs/runtime-intrinsics.md @@ -140,6 +140,7 @@ stream` adds `wit.Stream.PROMPT_STREAM`. | Results | `RESULT_STRING_U32` | `result` | | Tuples | `TUPLE_U32_STRING` | `tuple` | | Lists | `LIST_U8` | `list` | +| Maps | `MAP_STRING_U32` | `map` | | Nested streams/futures | `STREAM_U8`, `FUTURE_STRING` | `stream`, `future` | | Unit | `UNIT` | (no payload) | @@ -268,6 +269,7 @@ represented directly by their values. Resources are exposed as classes. | Variants | `{ tag, val }` (string tag) | `{ tag: "case-a", val }` | | Flags | `{ name: boolean }` object | `{ flagA: true, flagB: false }` | | Records | object, camelCase fields | `{ fieldName: value }` | +| Maps | `Map` | `new Map([["key", value]])` | | Resources | class instance; methods on prototype | `input.blockingRead(n)` | ### Export Functions diff --git a/tests/async_types.rs b/tests/async_types.rs index 37ee6ac..036c58f 100644 --- a/tests/async_types.rs +++ b/tests/async_types.rs @@ -740,6 +740,34 @@ async fn test_stream_record_type_constant() { assert_eq!(results.len(), 1); } +#[tokio::test] +async fn test_stream_map_type_constant() { + let mut instance = TestCase::new() + .wit( + r#" + package test:stream-map; + world stream-map { + export make-stream: async func() -> stream>; + } + "#, + ) + .script( + r#" + export async function makeStream() { + const { readable, writable } = wit.Stream(wit.Stream.MAP_STRING_U32); + writable.drop(); + return readable; + } + "#, + ) + .build_async() + .await + .unwrap(); + + let results = instance.call_async("make-stream", &[], 1).await.unwrap(); + assert_eq!(results.len(), 1); +} + #[tokio::test] async fn test_named_stream_alias_constants() { let mut instance = TestCase::new() diff --git a/tests/common/mod.rs b/tests/common/mod.rs index adf233e..b792951 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -34,6 +34,7 @@ pub fn engine() -> &'static Engine { #[cfg(feature = "component-model-async")] config.wasm_component_model_async(true); config.wasm_component_model(true); + config.wasm_component_model_map(true); Engine::new(&config).expect("Failed to create engine") }) } @@ -45,6 +46,7 @@ pub fn async_engine() -> &'static Engine { config.wasm_component_model(true); config.wasm_component_model_async(true); config.wasm_component_model_async_stackful(true); + config.wasm_component_model_map(true); Engine::new(&config).expect("Failed to create async engine") }) } diff --git a/tests/wit_types.rs b/tests/wit_types.rs index 23f6d65..af41067 100644 --- a/tests/wit_types.rs +++ b/tests/wit_types.rs @@ -181,6 +181,77 @@ fn test_list_type() { .run(); } +#[test] +fn test_map_type() { + TestCase::new() + .wit( + r#" + package test:maps; + world map-test { + export scale-map: func(values: map) -> map; + export sum-map: func(values: map>) -> map; + export empty-map: func() -> map; + } + "#, + ) + .script( + r#" + export function scaleMap(values) { + if (!(values instanceof Map)) { + throw new TypeError("expected Map"); + } + + const result = new Map(); + for (const [key, value] of values) { + result.set(key.toUpperCase(), value * 2); + } + return result; + } + + export function sumMap(values) { + const result = new Map(); + for (const [key, items] of values) { + result.set(key, items.reduce((sum, item) => sum + item, 0)); + } + return result; + } + + export function emptyMap() { + return new Map(); + } + "#, + ) + .expect_call( + "scale-map", + vec![Val::Map(vec![ + (Val::String("one".into()), Val::U32(2)), + (Val::String("three".into()), Val::U32(4)), + ])], + Val::Map(vec![ + (Val::String("ONE".into()), Val::U32(4)), + (Val::String("THREE".into()), Val::U32(8)), + ]), + ) + .expect_call( + "sum-map", + vec![Val::Map(vec![ + ( + Val::String("values".into()), + Val::List(vec![Val::U32(1), Val::U32(2), Val::U32(3)]), + ), + (Val::String("empty".into()), Val::List(vec![])), + ])], + Val::Map(vec![ + (Val::String("values".into()), Val::U32(6)), + (Val::String("empty".into()), Val::U32(0)), + ]), + ) + .expect_call("empty-map", vec![], Val::Map(vec![])) + .build() + .unwrap() + .run(); +} + #[test] fn test_typed_array_list_return() { TestCase::new()