diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 594bd04eb..41f1c2958 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -40,7 +40,7 @@ jobs: strategy: matrix: os: [ - ubuntu-latest, + ubuntu-22.04, # https://github.com/puppeteer/puppeteer/issues/12818#issuecomment-2593659514 windows-latest, macos-latest ] @@ -48,7 +48,7 @@ jobs: include: - os: windows-latest weval-bin-path: .weval-bin/weval.exe - - os: ubuntu-latest + - os: ubuntu-22.04 weval-bin-path: .weval-bin/weval - os: macos-latest weval-bin-path: .weval-bin/weval diff --git a/Cargo.lock b/Cargo.lock index ce6ec78e7..abcccb105 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ahash" @@ -25,9 +25,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.93" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" [[package]] name = "atty" @@ -54,9 +54,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "bumpalo" @@ -93,9 +93,9 @@ checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" [[package]] name = "cranelift-bitset" -version = "0.114.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005884e3649c3e5ff2dc79e8a94b138f11569cc08a91244a292714d2a86e9156" +checksum = "ab925581363040c22dc89ac7b9b0825364d0960761002a60a1997f06071633f9" dependencies = [ "serde", "serde_derive", @@ -103,9 +103,9 @@ dependencies = [ [[package]] name = "cranelift-entity" -version = "0.114.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305399fd781a2953ac78c1396f02ff53144f39c33eb7fc7789cf4e8936d13a96" +checksum = "f6632a6d2de04256e8fb072ac4a89f6803217780a979c8d254f4cfcd732db86d" dependencies = [ "cranelift-bitset", "serde", @@ -153,9 +153,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "foldhash" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" [[package]] name = "gimli" @@ -178,11 +178,12 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "foldhash", + "serde", ] [[package]] @@ -217,12 +218,12 @@ checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] @@ -237,9 +238,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jco" @@ -257,8 +258,8 @@ dependencies = [ "heck 0.5.0", "log", "semver", - "wasm-encoder 0.219.1", - "wasmparser 0.219.1", + "wasm-encoder 0.220.0", + "wasmparser 0.220.0", "wasmtime-environ", "wit-bindgen-core", "wit-component", @@ -290,15 +291,15 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.164" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "memchr" @@ -318,12 +319,12 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "crc32fast", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "indexmap", "memchr", ] @@ -336,9 +337,9 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "postcard" -version = "1.0.10" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7f0a8d620d71c457dd1d47df76bb18960378da56af4527aaa10f515eee732e" +checksum = "170a2601f67cc9dba8edd8c4870b15f71a6a2dc196daec8c83f72b59dff628a8" dependencies = [ "cobs", "embedded-io 0.4.0", @@ -358,12 +359,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.25" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.89", + "syn 2.0.96", ] [[package]] @@ -392,18 +393,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -416,38 +417,38 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "semver" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.215" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.96", ] [[package]] name = "serde_json" -version = "1.0.133" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -466,9 +467,9 @@ dependencies = [ [[package]] name = "spdx" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae30cc7bfe3656d60ee99bf6836f472b0c53dddcbf335e253329abb16e535a2" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ "smallvec", ] @@ -516,9 +517,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.89" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", @@ -527,9 +528,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.16" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" +checksum = "dc12939a1c9b9d391e0b7135f72fd30508b73450753e28341fed159317582a77" [[package]] name = "termcolor" @@ -593,29 +594,39 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wasm-encoder" -version = "0.219.1" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29cbbd772edcb8e7d524a82ee8cef8dd046fc14033796a754c3ad246d019fa54" +checksum = "ebf48234b389415b226a4daef6562933d38c7b28a8b8f64c5c4130dad1561ab7" dependencies = [ "leb128", - "wasmparser 0.219.1", + "wasmparser 0.220.0", ] [[package]] name = "wasm-encoder" -version = "0.220.0" +version = "0.221.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf48234b389415b226a4daef6562933d38c7b28a8b8f64c5c4130dad1561ab7" +checksum = "c17a3bd88f2155da63a1f2fcb8a56377a24f0b6dfed12733bb5f544e86f690c5" dependencies = [ "leb128", - "wasmparser 0.220.0", + "wasmparser 0.221.2", +] + +[[package]] +name = "wasm-encoder" +version = "0.223.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e636076193fa68103e937ac951b5f2f587624097017d764b8984d9c0f149464" +dependencies = [ + "leb128", + "wasmparser 0.223.0", ] [[package]] name = "wasm-metadata" -version = "0.219.1" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af5a8e37a5e996861e1813f8de30911c47609c9ff51a7284f7dbd754dc3a9f3" +checksum = "3f3e5f5920c5abfc45573c89b07b38efdaae1515ef86f83dad12d60e50ecd62b" dependencies = [ "anyhow", "indexmap", @@ -623,8 +634,8 @@ dependencies = [ "serde_derive", "serde_json", "spdx", - "wasm-encoder 0.219.1", - "wasmparser 0.219.1", + "wasm-encoder 0.220.0", + "wasmparser 0.220.0", ] [[package]] @@ -632,10 +643,10 @@ name = "wasm-tools-js" version = "0.1.0" dependencies = [ "anyhow", - "wasm-encoder 0.219.1", + "wasm-encoder 0.220.0", "wasm-metadata", - "wasmparser 0.219.1", - "wasmprinter", + "wasmparser 0.220.0", + "wasmprinter 0.220.0", "wat", "wit-bindgen", "wit-component", @@ -644,12 +655,12 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.219.1" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c771866898879073c53b565a6c7b49953795159836714ac56a5befb581227c5" +checksum = "e246c2772ce3ebc83f89a2d4487ac5794cad6c309b2071818a88c7db7c36d87b" dependencies = [ "ahash", - "bitflags 2.6.0", + "bitflags 2.8.0", "hashbrown 0.14.5", "indexmap", "semver", @@ -658,36 +669,61 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.220.0" +version = "0.221.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e246c2772ce3ebc83f89a2d4487ac5794cad6c309b2071818a88c7db7c36d87b" +checksum = "9845c470a2e10b61dd42c385839cdd6496363ed63b5c9e420b5488b77bd22083" +dependencies = [ + "bitflags 2.8.0", + "hashbrown 0.15.2", + "indexmap", + "semver", + "serde", +] + +[[package]] +name = "wasmparser" +version = "0.223.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5a99faceb1a5a84dd6084ec4bfa4b2ab153b5793b43fd8f58b89232634afc35" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "indexmap", + "semver", ] [[package]] name = "wasmprinter" -version = "0.219.1" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228cdc1f30c27816da225d239ce4231f28941147d34713dee8f1fff7cb330e54" +checksum = "ae749f2c66587777ce9ad0e8c632e72c77574336b17d2f040a47cffbd92198c7" dependencies = [ "anyhow", "termcolor", - "wasmparser 0.219.1", + "wasmparser 0.220.0", +] + +[[package]] +name = "wasmprinter" +version = "0.221.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a80742ff1b9e6d8c231ac7c7247782c6fc5bce503af760bca071811e5fc9ee56" +dependencies = [ + "anyhow", + "termcolor", + "wasmparser 0.221.2", ] [[package]] name = "wasmtime-component-util" -version = "27.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a6db4f3ee18c699629eabb9c64e77efe5a93a5137f098db7cab295037ba41c2" +checksum = "1d2347410b200664a5c62c648556e502c4eb2da5686cb67d7760cf74e9d0b101" [[package]] name = "wasmtime-environ" -version = "27.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c25bfeaa16432d59a0706e2463d315ef4c9ebcfaf5605670b99d46373bdf9f27" +checksum = "1bf09f7ec4324917a8a023f841960eb892066e4dfd585dbe9a9646c1d2a74bee" dependencies = [ "anyhow", "cranelift-bitset", @@ -702,30 +738,30 @@ dependencies = [ "serde_derive", "smallvec", "target-lexicon", - "wasm-encoder 0.219.1", - "wasmparser 0.219.1", - "wasmprinter", + "wasm-encoder 0.221.2", + "wasmparser 0.221.2", + "wasmprinter 0.221.2", "wasmtime-component-util", ] [[package]] name = "wast" -version = "220.0.0" +version = "223.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e708c8de08751fd66e70961a32bae9d71901f14a70871e181cb8461a3bb3165" +checksum = "d59b2ba8a2ff9f06194b7be9524f92e45e70149f4dacc0d0c7ad92b59ac875e4" dependencies = [ "bumpalo", "leb128", "memchr", "unicode-width 0.2.0", - "wasm-encoder 0.220.0", + "wasm-encoder 0.223.0", ] [[package]] name = "wat" -version = "1.220.0" +version = "1.223.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de4f1d7d59614ba690541360102b995c4eb1b9ed373701d5102cc1a968b1c5a3" +checksum = "662786915c427e4918ff01eabb3c4756d4d947cd8f635761526b4cc9da2eaaad" dependencies = [ "wast", ] @@ -857,9 +893,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "wit-bindgen" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e11ad55616555605a60a8b2d1d89e006c2076f46c465c892cc2c153b20d4b30" +checksum = "6a2b3e15cd6068f233926e7d8c7c588b2ec4fb7cc7bf3824115e7c7e2a8485a3" dependencies = [ "wit-bindgen-rt", "wit-bindgen-rust-macro", @@ -867,9 +903,9 @@ dependencies = [ [[package]] name = "wit-bindgen-core" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "163cee59d3d5ceec0b256735f3ab0dccac434afb0ec38c406276de9c5a11e906" +checksum = "b632a5a0fa2409489bd49c9e6d99fcc61bb3d4ce9d1907d44662e75a28c71172" dependencies = [ "anyhow", "heck 0.5.0", @@ -878,24 +914,24 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744845cde309b8fa32408d6fb67456449278c66ea4dcd96de29797b302721f02" +checksum = "7947d0131c7c9da3f01dfde0ab8bd4c4cf3c5bd49b6dba0ae640f1fa752572ea" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] name = "wit-bindgen-rust" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6919521fc7807f927a739181db93100ca7ed03c29509b84d5f96b27b2e49a9a" +checksum = "4329de4186ee30e2ef30a0533f9b3c123c019a237a7c82d692807bf1b3ee2697" dependencies = [ "anyhow", "heck 0.5.0", "indexmap", "prettyplease", - "syn 2.0.89", + "syn 2.0.96", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -903,35 +939,35 @@ dependencies = [ [[package]] name = "wit-bindgen-rust-macro" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967731fc5d50244d7241ecfc9302a8929db508eea3c601fbc5371b196ba38a5" +checksum = "177fb7ee1484d113b4792cc480b1ba57664bbc951b42a4beebe573502135b1fc" dependencies = [ "anyhow", "prettyplease", "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.96", "wit-bindgen-core", "wit-bindgen-rust", ] [[package]] name = "wit-component" -version = "0.219.1" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1673163c0cb14a6a19ddbf44dd4efe6f015ec1ebb8156710ac32501f19fba2" +checksum = "73ccedf54cc65f287da268d64d2bf4f7530d2cfb2296ffbe3ad5f65567e4cf53" dependencies = [ "anyhow", - "bitflags 2.6.0", + "bitflags 2.8.0", "indexmap", "log", "serde", "serde_derive", "serde_json", - "wasm-encoder 0.219.1", + "wasm-encoder 0.220.0", "wasm-metadata", - "wasmparser 0.219.1", + "wasmparser 0.220.0", "wat", "wit-parser", ] @@ -949,9 +985,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.219.1" +version = "0.220.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a86f669283257e8e424b9a4fc3518e3ade0b95deb9fbc0f93a1876be3eda598" +checksum = "5b7117ce3adc0b4354b46dc1cf3190b00b333e65243d244c613ffcc58bdec84d" dependencies = [ "anyhow", "id-arena", @@ -962,7 +998,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.219.1", + "wasmparser 0.220.0", ] [[package]] @@ -1018,5 +1054,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.89", + "syn 2.0.96", ] diff --git a/Cargo.toml b/Cargo.toml index 7b72b3ef8..d63708fe0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,27 +34,27 @@ rpath = false strip = true [workspace.dependencies] -anyhow = "1.0.91" +anyhow = "1.0.95" base64 = "0.22.1" heck = "0.5.0" log = "0.4.22" -semver = "1.0.23" +semver = "1.0.25" js-component-bindgen = { path = "./crates/js-component-bindgen" } structopt = "0.3.26" -wasm-encoder = "0.219.1" -wasm-metadata = "0.219.1" -wasmparser = "0.219.1" -wasmprinter = "0.219.1" -wasmtime-environ = { version = "27.0.0", features = [ +wasm-encoder = "0.220.0" +wasm-metadata = "0.220.0" +wasmparser = "0.220.0" +wasmprinter = "0.220.0" +wasmtime-environ = { version = "29.0.0", features = [ "component-model", "compile", ] } -wat = "1.218.0" -wit-bindgen = "0.34.0" -wit-bindgen-core = "0.34.0" -wit-component = { version = "0.219.1", features = ["dummy-module"] } -wit-parser = "0.219.1" +wat = "1.220.0" +wit-bindgen = "0.36.0" +wit-bindgen-core = "0.36.0" +wit-component = { version = "0.220.0", features = ["dummy-module"] } +wit-parser = "0.220.0" xshell = "0.2.6" [dev-dependencies] -anyhow = { workspace = true } \ No newline at end of file +anyhow = { workspace = true } diff --git a/crates/js-component-bindgen/src/core.rs b/crates/js-component-bindgen/src/core.rs index 4f4736085..2ff1f64f0 100644 --- a/crates/js-component-bindgen/src/core.rs +++ b/crates/js-component-bindgen/src/core.rs @@ -188,7 +188,9 @@ impl<'a> Translation<'a> { /// Returns the exports of this module, which are not modified by /// augmentation. - pub fn exports(&self) -> &IndexMap { + pub fn exports( + &self, + ) -> &wasmtime_environ::wasmparser::collections::IndexMap { match self { Translation::Normal(translation) => &translation.module.exports, Translation::Augmented { original, .. } => &original.module.exports, @@ -523,6 +525,7 @@ macro_rules! define_visit { (augment $self:ident I32Store16 $memarg:ident) => { $self.0.augment_op($memarg.memory, AugmentedOp::I32Store16); }; + (augment $self:ident MemorySize $mem:ident) => { $self.0.augment_op($mem, AugmentedOp::MemorySize); }; diff --git a/crates/js-component-bindgen/src/lib.rs b/crates/js-component-bindgen/src/lib.rs index 587babb79..827915531 100644 --- a/crates/js-component-bindgen/src/lib.rs +++ b/crates/js-component-bindgen/src/lib.rs @@ -80,7 +80,6 @@ pub fn generate_types( /// Outputs the file map and import and export metadata for the Transpilation #[cfg(feature = "transpile-bindgen")] pub fn transpile(component: &[u8], opts: TranspileOpts) -> Result { - use wasmparser::Validator; use wasmtime_environ::component::{Component, Translator}; let name = opts.name.clone(); @@ -116,7 +115,7 @@ pub fn transpile(component: &[u8], opts: TranspileOpts) -> Result=21.1.0" } @@ -403,9 +406,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", - "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz", + "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==", "dev": true, "license": "MIT", "engines": { @@ -413,9 +416,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -423,12 +426,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", + "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.10.0", "levn": "^0.4.1" }, "engines": { @@ -502,9 +506,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -864,14 +868,14 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.5.tgz", - "integrity": "sha512-kwUxR7J9WLutBbulqg1dfOrMTwhMdXLdcGUhcbCcGwnPLt3gz19uHVdwH1syKVDbE022ZS2vZxOWflFLS0YTjw==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.6.tgz", + "integrity": "sha512-z8YVS3XszxFTO73iwvFDNpQIzdMmSDTP/mB3E/ucR37V3Sx57hSExcXyMoNwaucWxnsWf4xfbZv0iZ30jr0M4Q==", "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.1.0", - "@emnapi/runtime": "^1.1.0", + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", "@tybys/wasm-util": "^0.9.0" } }, @@ -914,16 +918,16 @@ } }, "node_modules/@puppeteer/browsers": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.4.1.tgz", - "integrity": "sha512-0kdAbmic3J09I6dT8e9vE2JOCSt13wHCW5x/ly8TSt2bDtuIWe2TgLZZDHdcziw9AVCzflMAXCrVyRIhIs44Ng==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.7.0.tgz", + "integrity": "sha512-bO61XnTuopsz9kvtfqhVbH6LTM1koxK0IlBR+yuVrM2LB7mk8+5o1w18l5zqd5cs8xlf+ntgambqRqGifMDjog==", "dev": true, "license": "Apache-2.0", "dependencies": { - "debug": "^4.3.7", + "debug": "^4.4.0", "extract-zip": "^2.0.1", "progress": "^2.0.3", - "proxy-agent": "^6.4.0", + "proxy-agent": "^6.5.0", "semver": "^7.6.3", "tar-fs": "^3.0.6", "unbzip2-stream": "^1.4.3", @@ -1057,9 +1061,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz", - "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==", + "version": "20.17.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.14.tgz", + "integrity": "sha512-w6qdYetNL5KRBiSClK/KWai+2IMEJuAj+EujKCumalFOwXtvOXaEan9AuwcRID2IcOIAWSIfR495hBtgKlx2zg==", "dev": true, "license": "MIT", "dependencies": { @@ -1078,21 +1082,21 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.15.0.tgz", - "integrity": "sha512-+zkm9AR1Ds9uLWN3fkoeXgFppaQ+uEVtfOV62dDmsy9QCNqlRHWNEck4yarvRNrvRcHQLGfqBNui3cimoz8XAg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz", + "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/type-utils": "8.15.0", - "@typescript-eslint/utils": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/type-utils": "8.21.0", + "@typescript-eslint/utils": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1103,25 +1107,21 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz", - "integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz", + "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4" }, "engines": { @@ -1132,23 +1132,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.15.0.tgz", - "integrity": "sha512-QRGy8ADi4J7ii95xz4UoiymmmMd/zuy9azCaamnZ3FM8T5fZcex8UfJcjkiEZjJSztKfEBe3dZ5T/5RHAmw2mA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz", + "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0" + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1159,16 +1155,16 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.15.0.tgz", - "integrity": "sha512-UU6uwXDoI3JGSXmcdnP5d8Fffa2KayOhUUqr/AiBnG1Gl7+7ut/oyagVeSkh7bxQ0zSXV9ptRh/4N15nkCqnpw==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz", + "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.15.0", - "@typescript-eslint/utils": "8.15.0", + "@typescript-eslint/typescript-estree": "8.21.0", + "@typescript-eslint/utils": "8.21.0", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1178,18 +1174,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.15.0.tgz", - "integrity": "sha512-n3Gt8Y/KyJNe0S3yDCD2RVKrHBC4gTUcLTebVBXacPy091E6tNspFLKRXlk3hwT4G55nfr1n2AdFqi/XMxzmPQ==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz", + "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==", "dev": true, "license": "MIT", "engines": { @@ -1201,20 +1193,20 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.15.0.tgz", - "integrity": "sha512-1eMp2JgNec/niZsR7ioFBlsh/Fk0oJbhaqO0jRyQBMgkz7RrFfkqF9lYYmBoGBaSiLnu8TAPQTwoTUiSTUW9dg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz", + "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/visitor-keys": "8.15.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/visitor-keys": "8.21.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.0.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1223,23 +1215,21 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.15.0.tgz", - "integrity": "sha512-k82RI9yGhr0QM3Dnq+egEpz9qB6Un+WLYhmoNcvl8ltMEededhh7otBVVIDDsEEttauwdY/hQoSsOv13lxrFzQ==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz", + "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.15.0", - "@typescript-eslint/types": "8.15.0", - "@typescript-eslint/typescript-estree": "8.15.0" + "@typescript-eslint/scope-manager": "8.21.0", + "@typescript-eslint/types": "8.21.0", + "@typescript-eslint/typescript-estree": "8.21.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1249,22 +1239,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.15.0.tgz", - "integrity": "sha512-h8vYOulWec9LhpwfAdZf2bjr8xIp0KNKnpgqSz0qqYYKAW/QZKw3ktRndbiAtUz4acH4QLQavwZBYCc0wulA/Q==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz", + "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.15.0", + "@typescript-eslint/types": "8.21.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -1311,14 +1297,11 @@ } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -1427,54 +1410,72 @@ "license": "MIT" }, "node_modules/bare-events": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz", - "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", "dev": true, "license": "Apache-2.0", "optional": true }, "node_modules/bare-fs": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", - "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", + "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { "bare-events": "^2.0.0", - "bare-path": "^2.0.0", + "bare-path": "^3.0.0", "bare-stream": "^2.0.0" + }, + "engines": { + "bare": ">=1.7.0" } }, "node_modules/bare-os": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", - "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz", + "integrity": "sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==", "dev": true, "license": "Apache-2.0", - "optional": true + "optional": true, + "engines": { + "bare": ">=1.6.0" + } }, "node_modules/bare-path": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz", - "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { - "bare-os": "^2.1.0" + "bare-os": "^3.0.1" } }, "node_modules/bare-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.4.0.tgz", - "integrity": "sha512-sd96/aZ8LjF1uJbEHzIo1LrERPKRFPEy1nZ1eOILftBxrVsFDAQkimHIIq87xrHcubzjNeETsD9PwN0wp+vLiQ==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.4.tgz", + "integrity": "sha512-G6i3A74FjNq4nVrrSTUz5h3vgXzBJnjmWAVlBWaZETkgu+LgKd7AiyOml3EDJY1AHlIbBHKDXE+TUT53Ff8OaA==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { - "streamx": "^2.20.0" + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } } }, "node_modules/base64-js": { @@ -1662,9 +1663,9 @@ } }, "node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -1727,15 +1728,14 @@ } }, "node_modules/chromium-bidi": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.8.0.tgz", - "integrity": "sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.12.0.tgz", + "integrity": "sha512-xzXveJmX826GGq1MeE5okD8XxaDT8172CXByhFJ687eY65rbjOIebdbUuQh+jXKaNyGKI14Veb3KjLLmSueaxA==", "dev": true, "license": "Apache-2.0", "dependencies": { "mitt": "3.0.1", - "urlpattern-polyfill": "10.0.0", - "zod": "3.23.8" + "zod": "3.24.1" }, "peerDependencies": { "devtools-protocol": "*" @@ -1920,9 +1920,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "license": "MIT", "dependencies": { @@ -2069,9 +2069,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1367902", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", - "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", + "version": "0.0.1380148", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1380148.tgz", + "integrity": "sha512-1CJABgqLxbYxVI+uJY/UDUHJtJ0KZTSjNYJYKqd9FRoXT33WDakDHNxRapMEgzeJ/C3rcs01+avshMnPmKQbvA==", "dev": true, "license": "BSD-3-Clause" }, @@ -2121,9 +2121,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "license": "MIT" }, "node_modules/escalade": { @@ -2172,19 +2172,19 @@ } }, "node_modules/eslint": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", - "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz", + "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", + "@eslint/core": "^0.10.0", "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.15.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/js": "9.18.0", + "@eslint/plugin-kit": "^0.2.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.1", @@ -2192,7 +2192,7 @@ "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.2.0", @@ -2471,9 +2471,9 @@ "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -2481,7 +2481,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -2515,9 +2515,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { @@ -2622,21 +2622,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "license": "MIT" }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2695,16 +2680,15 @@ } }, "node_modules/get-uri": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", - "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", + "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", "dev": true, "license": "MIT", "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4", - "fs-extra": "^11.2.0" + "debug": "^4.3.4" }, "engines": { "node": ">= 14" @@ -2818,13 +2802,13 @@ } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -3101,19 +3085,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -3271,9 +3242,9 @@ } }, "node_modules/mime": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", - "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.6.tgz", + "integrity": "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -3566,20 +3537,20 @@ } }, "node_modules/pac-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", - "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz", + "integrity": "sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==", "dev": true, "license": "MIT", "dependencies": { "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", "get-uri": "^6.0.1", "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.5", + "https-proxy-agent": "^7.0.6", "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.4" + "socks-proxy-agent": "^8.0.5" }, "engines": { "node": ">= 14" @@ -3734,20 +3705,20 @@ } }, "node_modules/proxy-agent": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", - "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "^4.3.4", "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", + "https-proxy-agent": "^7.0.6", "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.1", + "pac-proxy-agent": "^7.1.0", "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.2" + "socks-proxy-agent": "^8.0.5" }, "engines": { "node": ">= 14" @@ -3782,18 +3753,18 @@ } }, "node_modules/puppeteer": { - "version": "23.9.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.9.0.tgz", - "integrity": "sha512-WfB8jGwFV+qrD9dcJJVvWPFJBU6kxeu2wxJz9WooDGfM3vIiKLgzImEDBxUQnCBK/2cXB3d4dV6gs/LLpgfLDg==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.1.0.tgz", + "integrity": "sha512-F+3yKILaosLToT7amR7LIkTKkKMR0EGQPjFBch+MtgS8vRPS+4cPnLJuXDVTfCj2NqfrCnShtOr7yD+9dEgHRQ==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.4.1", - "chromium-bidi": "0.8.0", + "@puppeteer/browsers": "2.7.0", + "chromium-bidi": "0.12.0", "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1367902", - "puppeteer-core": "23.9.0", + "devtools-protocol": "0.0.1380148", + "puppeteer-core": "24.1.0", "typed-query-selector": "^2.12.0" }, "bin": { @@ -3804,16 +3775,16 @@ } }, "node_modules/puppeteer-core": { - "version": "23.9.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.9.0.tgz", - "integrity": "sha512-hLVrav2HYMVdK0YILtfJwtnkBAwNOztUdR4aJ5YKDvgsbtagNr6urUJk9HyjRA9e+PaLI3jzJ0wM7A4jSZ7Qxw==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.1.0.tgz", + "integrity": "sha512-ReefWoQgqdyl67uWEBy/TMZ4mAB7hP0JB5HIxSE8B1ot/4ningX1gmzHCOSNfMbTiS/VJHCvaZAe3oJTXph7yw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.4.1", - "chromium-bidi": "0.8.0", - "debug": "^4.3.7", - "devtools-protocol": "0.0.1367902", + "@puppeteer/browsers": "2.7.0", + "chromium-bidi": "0.11.0", + "debug": "^4.4.0", + "devtools-protocol": "0.0.1380148", "typed-query-selector": "^2.12.0", "ws": "^8.18.0" }, @@ -3821,6 +3792,30 @@ "node": ">=18" } }, + "node_modules/puppeteer-core/node_modules/chromium-bidi": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", + "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "3.0.1", + "zod": "3.23.8" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/puppeteer-core/node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4088,13 +4083,13 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -4141,9 +4136,9 @@ } }, "node_modules/streamx": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz", - "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz", + "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==", "dev": true, "license": "MIT", "dependencies": { @@ -4241,9 +4236,9 @@ } }, "node_modules/tar-fs": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", - "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", + "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", "dev": true, "license": "MIT", "dependencies": { @@ -4251,8 +4246,8 @@ "tar-stream": "^3.1.5" }, "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" } }, "node_modules/tar-fs/node_modules/tar-stream": { @@ -4286,9 +4281,9 @@ } }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -4310,11 +4305,14 @@ "license": "MIT" }, "node_modules/text-decoder": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", - "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", "dev": true, - "license": "Apache-2.0" + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } }, "node_modules/through": { "version": "2.3.8", @@ -4342,16 +4340,16 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/tslib": { @@ -4382,9 +4380,9 @@ "license": "MIT" }, "node_modules/typescript": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", - "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4412,16 +4410,6 @@ "dev": true, "license": "MIT" }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -4432,13 +4420,6 @@ "punycode": "^2.1.0" } }, - "node_modules/urlpattern-polyfill": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", - "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", - "dev": true, - "license": "MIT" - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -4702,9 +4683,9 @@ } }, "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "dev": true, "license": "MIT", "funding": { diff --git a/package.json b/package.json index 556a28d02..8c88e97ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bytecodealliance/jco", - "version": "1.8.1", + "version": "1.9.1", "description": "JavaScript tooling for working with WebAssembly Components", "author": "Guy Bedford", "bin": { @@ -40,7 +40,7 @@ "eslint": "^9.9.0", "mime": "^4.0.4", "mocha": "^10.7.0", - "puppeteer": "^23.4.0", + "puppeteer": "^24.0.1", "typescript": "^5.5.4" }, "repository": { diff --git a/packages/preview2-shim/types/interfaces/wasi-filesystem-preopens.d.ts b/packages/preview2-shim/types/interfaces/wasi-filesystem-preopens.d.ts index 4625a7a75..e9ef1c8e4 100644 --- a/packages/preview2-shim/types/interfaces/wasi-filesystem-preopens.d.ts +++ b/packages/preview2-shim/types/interfaces/wasi-filesystem-preopens.d.ts @@ -1,6 +1,6 @@ export namespace WasiFilesystemPreopens { /** - * Return the set of preopened directories, and their path. + * Return the set of preopened directories, and their paths. */ export function getDirectories(): Array<[Descriptor, string]>; } diff --git a/packages/preview2-shim/types/interfaces/wasi-filesystem-types.d.ts b/packages/preview2-shim/types/interfaces/wasi-filesystem-types.d.ts index 7f2afd766..cf430296a 100644 --- a/packages/preview2-shim/types/interfaces/wasi-filesystem-types.d.ts +++ b/packages/preview2-shim/types/interfaces/wasi-filesystem-types.d.ts @@ -421,7 +421,7 @@ export class Descriptor { * May fail with an error-code describing why the file cannot be appended. * * Note: This allows using `write-stream`, which is similar to `write` with - * `O_APPEND` in in POSIX. + * `O_APPEND` in POSIX. */ appendViaStream(): OutputStream; /** @@ -639,7 +639,7 @@ export class Descriptor { * replaced. It may also include a secret value chosen by the * implementation and not otherwise exposed. * - * Implementations are encourated to provide the following properties: + * Implementations are encouraged to provide the following properties: * * - If the file is not modified or replaced, the computed hash value should * usually not change. diff --git a/packages/preview2-shim/types/interfaces/wasi-http-types.d.ts b/packages/preview2-shim/types/interfaces/wasi-http-types.d.ts index 25f2e978e..c5908c020 100644 --- a/packages/preview2-shim/types/interfaces/wasi-http-types.d.ts +++ b/packages/preview2-shim/types/interfaces/wasi-http-types.d.ts @@ -107,7 +107,7 @@ export interface FieldSizePayload { } /** * These cases are inspired by the IANA HTTP Proxy Error Types: - * https://www.iana.org/assignments/http-proxy-status/http-proxy-status.xhtml#table-http-proxy-error-types + * */ export type ErrorCode = ErrorCodeDnsTimeout | ErrorCodeDnsError | ErrorCodeDestinationNotFound | ErrorCodeDestinationUnavailable | ErrorCodeDestinationIpProhibited | ErrorCodeDestinationIpUnroutable | ErrorCodeConnectionRefused | ErrorCodeConnectionTerminated | ErrorCodeConnectionTimeout | ErrorCodeConnectionReadTimeout | ErrorCodeConnectionWriteTimeout | ErrorCodeConnectionLimitReached | ErrorCodeTlsProtocolError | ErrorCodeTlsCertificateError | ErrorCodeTlsAlertReceived | ErrorCodeHttpRequestDenied | ErrorCodeHttpRequestLengthRequired | ErrorCodeHttpRequestBodySize | ErrorCodeHttpRequestMethodInvalid | ErrorCodeHttpRequestUriInvalid | ErrorCodeHttpRequestUriTooLong | ErrorCodeHttpRequestHeaderSectionSize | ErrorCodeHttpRequestHeaderSize | ErrorCodeHttpRequestTrailerSectionSize | ErrorCodeHttpRequestTrailerSize | ErrorCodeHttpResponseIncomplete | ErrorCodeHttpResponseHeaderSectionSize | ErrorCodeHttpResponseHeaderSize | ErrorCodeHttpResponseBodySize | ErrorCodeHttpResponseTrailerSectionSize | ErrorCodeHttpResponseTrailerSize | ErrorCodeHttpResponseTransferCoding | ErrorCodeHttpResponseContentCoding | ErrorCodeHttpResponseTimeout | ErrorCodeHttpUpgradeFailed | ErrorCodeHttpProtocolError | ErrorCodeLoopDetected | ErrorCodeConfigurationError | ErrorCodeInternalError; export interface ErrorCodeDnsTimeout { diff --git a/submodules/WASI-Virt b/submodules/WASI-Virt index 4ea3e769b..655c743a2 160000 --- a/submodules/WASI-Virt +++ b/submodules/WASI-Virt @@ -1 +1 @@ -Subproject commit 4ea3e769b396df1f894b65a8095904846c6f3ca3 +Subproject commit 655c743a22d1cda4a30f9f0ac8ba27f80e9060f6 diff --git a/submodules/wasm-tools b/submodules/wasm-tools index 8f17e78ac..6e9164c5d 160000 --- a/submodules/wasm-tools +++ b/submodules/wasm-tools @@ -1 +1 @@ -Subproject commit 8f17e78ac927c8af60a46f81e2ee0e22d96c743b +Subproject commit 6e9164c5db03892c9dc603ba1f783e84d0eacdd7 diff --git a/submodules/wasmtime b/submodules/wasmtime index d9a6d5a9e..fd5409225 160000 --- a/submodules/wasmtime +++ b/submodules/wasmtime @@ -1 +1 @@ -Subproject commit d9a6d5a9edb07e1893725d89c71ec2795b1cf9a8 +Subproject commit fd540922590f1cefc49c79d44eec1851db2b5574 diff --git a/submodules/wit-bindgen b/submodules/wit-bindgen index d92b53b26..967d075e3 160000 --- a/submodules/wit-bindgen +++ b/submodules/wit-bindgen @@ -1 +1 @@ -Subproject commit d92b53b261433e946c144349298d079b14f1dbc1 +Subproject commit 967d075e31ca5c06ea2f82cfa271fd657af01e0b diff --git a/test/api.js b/test/api.js index 6428577af..8d4def89c 100644 --- a/test/api.js +++ b/test/api.js @@ -166,7 +166,7 @@ export async function apiTest(_fixtures) { [ "processed-by", [ - ["wit-component", "0.219.1"], + ["wit-component", "0.220.0"], ["dummy-gen", "test"], ], ], @@ -207,7 +207,7 @@ export async function apiTest(_fixtures) { [ "processed-by", [ - ["wit-component", "0.219.1"], + ["wit-component", "0.220.0"], ["dummy-gen", "test"], ], ], diff --git a/test/cli.js b/test/cli.js index 4e3e2af3b..5aae2cdde 100644 --- a/test/cli.js +++ b/test/cli.js @@ -478,7 +478,7 @@ export async function cliTest(_fixtures) { [ "processed-by", [ - ["wit-component", "0.219.1"], + ["wit-component", "0.220.0"], ["dummy-gen", "test"], ], ], diff --git a/test/fixtures/components/borrowing-duplicate-if-necessary.component.wasm b/test/fixtures/components/borrowing-duplicate-if-necessary.component.wasm index b4b890403..8fdf189ce 100644 Binary files a/test/fixtures/components/borrowing-duplicate-if-necessary.component.wasm and b/test/fixtures/components/borrowing-duplicate-if-necessary.component.wasm differ diff --git a/test/fixtures/components/borrowing.component.wasm b/test/fixtures/components/borrowing.component.wasm index bb70fb7ab..f37af2e0e 100644 Binary files a/test/fixtures/components/borrowing.component.wasm and b/test/fixtures/components/borrowing.component.wasm differ diff --git a/test/fixtures/components/flavorful.component.wasm b/test/fixtures/components/flavorful.component.wasm index 176e94185..7b7807847 100644 Binary files a/test/fixtures/components/flavorful.component.wasm and b/test/fixtures/components/flavorful.component.wasm differ diff --git a/test/fixtures/components/import-fn.component.wasm b/test/fixtures/components/import-fn.component.wasm index a92cf44fb..eaef186f7 100644 Binary files a/test/fixtures/components/import-fn.component.wasm and b/test/fixtures/components/import-fn.component.wasm differ diff --git a/test/fixtures/components/lists.component.wasm b/test/fixtures/components/lists.component.wasm index 9f828b594..666f56868 100644 Binary files a/test/fixtures/components/lists.component.wasm and b/test/fixtures/components/lists.component.wasm differ diff --git a/test/fixtures/components/many-arguments.component.wasm b/test/fixtures/components/many-arguments.component.wasm index 50b6a3205..9e1a006e5 100644 Binary files a/test/fixtures/components/many-arguments.component.wasm and b/test/fixtures/components/many-arguments.component.wasm differ diff --git a/test/fixtures/components/many_arguments.component.wasm b/test/fixtures/components/many_arguments.component.wasm index 07c9d7832..c0d2316f5 100644 Binary files a/test/fixtures/components/many_arguments.component.wasm and b/test/fixtures/components/many_arguments.component.wasm differ diff --git a/test/fixtures/components/numbers.component.wasm b/test/fixtures/components/numbers.component.wasm index 391e6f8a8..81f05c5df 100644 Binary files a/test/fixtures/components/numbers.component.wasm and b/test/fixtures/components/numbers.component.wasm differ diff --git a/test/fixtures/components/options.component.wasm b/test/fixtures/components/options.component.wasm index 2b022c7b8..569322929 100644 Binary files a/test/fixtures/components/options.component.wasm and b/test/fixtures/components/options.component.wasm differ diff --git a/test/fixtures/components/other-dependencies.component.wasm b/test/fixtures/components/other-dependencies.component.wasm index 72f17be81..64a6ca353 100644 Binary files a/test/fixtures/components/other-dependencies.component.wasm and b/test/fixtures/components/other-dependencies.component.wasm differ diff --git a/test/fixtures/components/owning.component.wasm b/test/fixtures/components/owning.component.wasm index 3b575fcd6..7171281b6 100644 Binary files a/test/fixtures/components/owning.component.wasm and b/test/fixtures/components/owning.component.wasm differ diff --git a/test/fixtures/components/records.component.wasm b/test/fixtures/components/records.component.wasm index 213d4d1d8..ae43431ec 100644 Binary files a/test/fixtures/components/records.component.wasm and b/test/fixtures/components/records.component.wasm differ diff --git a/test/fixtures/components/resource-borrow-simple.component.wasm b/test/fixtures/components/resource-borrow-simple.component.wasm new file mode 100644 index 000000000..0642d786a Binary files /dev/null and b/test/fixtures/components/resource-borrow-simple.component.wasm differ diff --git a/test/fixtures/components/resource-import-and-export.component.wasm b/test/fixtures/components/resource-import-and-export.component.wasm index 958ab3dca..217750d04 100644 Binary files a/test/fixtures/components/resource-import-and-export.component.wasm and b/test/fixtures/components/resource-import-and-export.component.wasm differ diff --git a/test/fixtures/components/resource_aggregates.component.wasm b/test/fixtures/components/resource_aggregates.component.wasm index 564295cf3..643cd91be 100644 Binary files a/test/fixtures/components/resource_aggregates.component.wasm and b/test/fixtures/components/resource_aggregates.component.wasm differ diff --git a/test/fixtures/components/resource_alias.component.wasm b/test/fixtures/components/resource_alias.component.wasm index b7c354a4c..2f8d9de99 100644 Binary files a/test/fixtures/components/resource_alias.component.wasm and b/test/fixtures/components/resource_alias.component.wasm differ diff --git a/test/fixtures/components/resource_alias_redux.component.wasm b/test/fixtures/components/resource_alias_redux.component.wasm index af69ad23f..23bdb936a 100644 Binary files a/test/fixtures/components/resource_alias_redux.component.wasm and b/test/fixtures/components/resource_alias_redux.component.wasm differ diff --git a/test/fixtures/components/resource_borrow_export.component.wasm b/test/fixtures/components/resource_borrow_export.component.wasm index 43315dce3..1032e35e4 100644 Binary files a/test/fixtures/components/resource_borrow_export.component.wasm and b/test/fixtures/components/resource_borrow_export.component.wasm differ diff --git a/test/fixtures/components/resource_borrow_import.component.wasm b/test/fixtures/components/resource_borrow_import.component.wasm index d6b53fe55..02fe7b336 100644 Binary files a/test/fixtures/components/resource_borrow_import.component.wasm and b/test/fixtures/components/resource_borrow_import.component.wasm differ diff --git a/test/fixtures/components/resource_borrow_in_record.component.wasm b/test/fixtures/components/resource_borrow_in_record.component.wasm index ee40d572a..c6df860fb 100644 Binary files a/test/fixtures/components/resource_borrow_in_record.component.wasm and b/test/fixtures/components/resource_borrow_in_record.component.wasm differ diff --git a/test/fixtures/components/resource_borrow_simple.component.wasm b/test/fixtures/components/resource_borrow_simple.component.wasm index 002fc0b2a..e5e342168 100644 Binary files a/test/fixtures/components/resource_borrow_simple.component.wasm and b/test/fixtures/components/resource_borrow_simple.component.wasm differ diff --git a/test/fixtures/components/resource_floats.component.wasm b/test/fixtures/components/resource_floats.component.wasm index 7be36ba95..7bdbc79ba 100644 Binary files a/test/fixtures/components/resource_floats.component.wasm and b/test/fixtures/components/resource_floats.component.wasm differ diff --git a/test/fixtures/components/resource_import_and_export.component.wasm b/test/fixtures/components/resource_import_and_export.component.wasm index 169437ec8..80796f51a 100644 Binary files a/test/fixtures/components/resource_import_and_export.component.wasm and b/test/fixtures/components/resource_import_and_export.component.wasm differ diff --git a/test/fixtures/components/resource_into_inner.component.wasm b/test/fixtures/components/resource_into_inner.component.wasm index e2ad6c17b..5d3f98ec3 100644 Binary files a/test/fixtures/components/resource_into_inner.component.wasm and b/test/fixtures/components/resource_into_inner.component.wasm differ diff --git a/test/fixtures/components/resource_with_lists.component.wasm b/test/fixtures/components/resource_with_lists.component.wasm index 3ef09bedc..2298a5657 100644 Binary files a/test/fixtures/components/resource_with_lists.component.wasm and b/test/fixtures/components/resource_with_lists.component.wasm differ diff --git a/test/fixtures/components/resources.component.wasm b/test/fixtures/components/resources.component.wasm index 58d5453ad..5303c8e41 100644 Binary files a/test/fixtures/components/resources.component.wasm and b/test/fixtures/components/resources.component.wasm differ diff --git a/test/fixtures/components/results.component.wasm b/test/fixtures/components/results.component.wasm index 7583f8804..b03dd5a48 100644 Binary files a/test/fixtures/components/results.component.wasm and b/test/fixtures/components/results.component.wasm differ diff --git a/test/fixtures/components/rust_xcrate.component.wasm b/test/fixtures/components/rust_xcrate.component.wasm index a5229f25a..1c91e9f17 100644 Binary files a/test/fixtures/components/rust_xcrate.component.wasm and b/test/fixtures/components/rust_xcrate.component.wasm differ diff --git a/test/fixtures/components/smoke.component.wasm b/test/fixtures/components/smoke.component.wasm index 51ef235b2..c45f5e6b0 100644 Binary files a/test/fixtures/components/smoke.component.wasm and b/test/fixtures/components/smoke.component.wasm differ diff --git a/test/fixtures/components/strings.component.wasm b/test/fixtures/components/strings.component.wasm index 3f6e6f7dc..649b96791 100644 Binary files a/test/fixtures/components/strings.component.wasm and b/test/fixtures/components/strings.component.wasm differ diff --git a/test/fixtures/components/type_section_suffix.component.wasm b/test/fixtures/components/type_section_suffix.component.wasm index 33df31622..8fd16fa5b 100644 Binary files a/test/fixtures/components/type_section_suffix.component.wasm and b/test/fixtures/components/type_section_suffix.component.wasm differ diff --git a/test/fixtures/components/variants.component.wasm b/test/fixtures/components/variants.component.wasm index e437cdb10..e4e57cb12 100644 Binary files a/test/fixtures/components/variants.component.wasm and b/test/fixtures/components/variants.component.wasm differ diff --git a/test/fixtures/components/versions.component.wasm b/test/fixtures/components/versions.component.wasm index 898edcf19..44194f663 100644 Binary files a/test/fixtures/components/versions.component.wasm and b/test/fixtures/components/versions.component.wasm differ diff --git a/test/fixtures/wit/deps/cli/command.wit b/test/fixtures/wit/deps/cli/command.wit index cc7a352c2..3a81766d6 100644 --- a/test/fixtures/wit/deps/cli/command.wit +++ b/test/fixtures/wit/deps/cli/command.wit @@ -1,4 +1,4 @@ -package wasi:cli@0.2.2; +package wasi:cli@0.2.3; @since(version = 0.2.0) world command { diff --git a/test/fixtures/wit/deps/cli/imports.wit b/test/fixtures/wit/deps/cli/imports.wit index ebd7ba173..8b4e3975e 100644 --- a/test/fixtures/wit/deps/cli/imports.wit +++ b/test/fixtures/wit/deps/cli/imports.wit @@ -1,17 +1,17 @@ -package wasi:cli@0.2.2; +package wasi:cli@0.2.3; @since(version = 0.2.0) world imports { @since(version = 0.2.0) - include wasi:clocks/imports@0.2.2; + include wasi:clocks/imports@0.2.3; @since(version = 0.2.0) - include wasi:filesystem/imports@0.2.2; + include wasi:filesystem/imports@0.2.3; @since(version = 0.2.0) - include wasi:sockets/imports@0.2.2; + include wasi:sockets/imports@0.2.3; @since(version = 0.2.0) - include wasi:random/imports@0.2.2; + include wasi:random/imports@0.2.3; @since(version = 0.2.0) - include wasi:io/imports@0.2.2; + include wasi:io/imports@0.2.3; @since(version = 0.2.0) import environment; diff --git a/test/fixtures/wit/deps/cli/stdio.wit b/test/fixtures/wit/deps/cli/stdio.wit index 860313eea..1b54f5318 100644 --- a/test/fixtures/wit/deps/cli/stdio.wit +++ b/test/fixtures/wit/deps/cli/stdio.wit @@ -1,7 +1,7 @@ @since(version = 0.2.0) interface stdin { @since(version = 0.2.0) - use wasi:io/streams@0.2.2.{input-stream}; + use wasi:io/streams@0.2.3.{input-stream}; @since(version = 0.2.0) get-stdin: func() -> input-stream; @@ -10,7 +10,7 @@ interface stdin { @since(version = 0.2.0) interface stdout { @since(version = 0.2.0) - use wasi:io/streams@0.2.2.{output-stream}; + use wasi:io/streams@0.2.3.{output-stream}; @since(version = 0.2.0) get-stdout: func() -> output-stream; @@ -19,7 +19,7 @@ interface stdout { @since(version = 0.2.0) interface stderr { @since(version = 0.2.0) - use wasi:io/streams@0.2.2.{output-stream}; + use wasi:io/streams@0.2.3.{output-stream}; @since(version = 0.2.0) get-stderr: func() -> output-stream; diff --git a/test/fixtures/wit/deps/clocks/monotonic-clock.wit b/test/fixtures/wit/deps/clocks/monotonic-clock.wit index 233cace4c..c676fb84d 100644 --- a/test/fixtures/wit/deps/clocks/monotonic-clock.wit +++ b/test/fixtures/wit/deps/clocks/monotonic-clock.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.2; +package wasi:clocks@0.2.3; /// WASI Monotonic Clock is a clock API intended to let users measure elapsed /// time. /// @@ -10,7 +10,7 @@ package wasi:clocks@0.2.2; @since(version = 0.2.0) interface monotonic-clock { @since(version = 0.2.0) - use wasi:io/poll@0.2.2.{pollable}; + use wasi:io/poll@0.2.3.{pollable}; /// An instant in time, in nanoseconds. An instant is relative to an /// unspecified initial value, and can only be compared to instances from diff --git a/test/fixtures/wit/deps/clocks/timezone.wit b/test/fixtures/wit/deps/clocks/timezone.wit index 349fb5703..b43e93b23 100644 --- a/test/fixtures/wit/deps/clocks/timezone.wit +++ b/test/fixtures/wit/deps/clocks/timezone.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.2; +package wasi:clocks@0.2.3; @unstable(feature = clocks-timezone) interface timezone { diff --git a/test/fixtures/wit/deps/clocks/wall-clock.wit b/test/fixtures/wit/deps/clocks/wall-clock.wit index ec05a1f1a..e00ce0893 100644 --- a/test/fixtures/wit/deps/clocks/wall-clock.wit +++ b/test/fixtures/wit/deps/clocks/wall-clock.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.2; +package wasi:clocks@0.2.3; /// WASI Wall Clock is a clock API intended to let users query the current /// time. The name "wall" makes an analogy to a "clock on the wall", which /// is not necessarily monotonic as it may be reset. diff --git a/test/fixtures/wit/deps/clocks/world.wit b/test/fixtures/wit/deps/clocks/world.wit index e36802cc8..05f04f797 100644 --- a/test/fixtures/wit/deps/clocks/world.wit +++ b/test/fixtures/wit/deps/clocks/world.wit @@ -1,4 +1,4 @@ -package wasi:clocks@0.2.2; +package wasi:clocks@0.2.3; @since(version = 0.2.0) world imports { diff --git a/test/fixtures/wit/deps/filesystem/preopens.wit b/test/fixtures/wit/deps/filesystem/preopens.wit index 410bec1dc..cea97495b 100644 --- a/test/fixtures/wit/deps/filesystem/preopens.wit +++ b/test/fixtures/wit/deps/filesystem/preopens.wit @@ -1,11 +1,11 @@ -package wasi:filesystem@0.2.2; +package wasi:filesystem@0.2.3; @since(version = 0.2.0) interface preopens { @since(version = 0.2.0) use types.{descriptor}; - /// Return the set of preopened directories, and their path. + /// Return the set of preopened directories, and their paths. @since(version = 0.2.0) get-directories: func() -> list>; } diff --git a/test/fixtures/wit/deps/filesystem/types.wit b/test/fixtures/wit/deps/filesystem/types.wit index 49e0a30bb..d229a21f4 100644 --- a/test/fixtures/wit/deps/filesystem/types.wit +++ b/test/fixtures/wit/deps/filesystem/types.wit @@ -1,4 +1,4 @@ -package wasi:filesystem@0.2.2; +package wasi:filesystem@0.2.3; /// WASI filesystem is a filesystem API primarily intended to let users run WASI /// programs that access their files on their existing filesystems, without /// significant overhead. @@ -26,9 +26,9 @@ package wasi:filesystem@0.2.2; @since(version = 0.2.0) interface types { @since(version = 0.2.0) - use wasi:io/streams@0.2.2.{input-stream, output-stream, error}; + use wasi:io/streams@0.2.3.{input-stream, output-stream, error}; @since(version = 0.2.0) - use wasi:clocks/wall-clock@0.2.2.{datetime}; + use wasi:clocks/wall-clock@0.2.3.{datetime}; /// File size or length of a region within a file. @since(version = 0.2.0) @@ -327,7 +327,7 @@ interface types { /// May fail with an error-code describing why the file cannot be appended. /// /// Note: This allows using `write-stream`, which is similar to `write` with - /// `O_APPEND` in in POSIX. + /// `O_APPEND` in POSIX. @since(version = 0.2.0) append-via-stream: func() -> result; @@ -623,7 +623,7 @@ interface types { /// replaced. It may also include a secret value chosen by the /// implementation and not otherwise exposed. /// - /// Implementations are encourated to provide the following properties: + /// Implementations are encouraged to provide the following properties: /// /// - If the file is not modified or replaced, the computed hash value should /// usually not change. diff --git a/test/fixtures/wit/deps/filesystem/world.wit b/test/fixtures/wit/deps/filesystem/world.wit index 8064bd64b..29405bc2c 100644 --- a/test/fixtures/wit/deps/filesystem/world.wit +++ b/test/fixtures/wit/deps/filesystem/world.wit @@ -1,4 +1,4 @@ -package wasi:filesystem@0.2.2; +package wasi:filesystem@0.2.3; @since(version = 0.2.0) world imports { diff --git a/test/fixtures/wit/deps/http/proxy.wit b/test/fixtures/wit/deps/http/proxy.wit index fadb89a3e..de3bbe8ae 100644 --- a/test/fixtures/wit/deps/http/proxy.wit +++ b/test/fixtures/wit/deps/http/proxy.wit @@ -1,4 +1,4 @@ -package wasi:http@0.2.2; +package wasi:http@0.2.3; /// The `wasi:http/imports` world imports all the APIs for HTTP proxies. /// It is intended to be `include`d in other worlds. @@ -6,25 +6,25 @@ package wasi:http@0.2.2; world imports { /// HTTP proxies have access to time and randomness. @since(version = 0.2.0) - import wasi:clocks/monotonic-clock@0.2.2; + import wasi:clocks/monotonic-clock@0.2.3; @since(version = 0.2.0) - import wasi:clocks/wall-clock@0.2.2; + import wasi:clocks/wall-clock@0.2.3; @since(version = 0.2.0) - import wasi:random/random@0.2.2; + import wasi:random/random@0.2.3; /// Proxies have standard output and error streams which are expected to /// terminate in a developer-facing console provided by the host. @since(version = 0.2.0) - import wasi:cli/stdout@0.2.2; + import wasi:cli/stdout@0.2.3; @since(version = 0.2.0) - import wasi:cli/stderr@0.2.2; + import wasi:cli/stderr@0.2.3; /// TODO: this is a temporary workaround until component tooling is able to /// gracefully handle the absence of stdin. Hosts must return an eof stream /// for this import, which is what wasi-libc + tooling will do automatically /// when this import is properly removed. @since(version = 0.2.0) - import wasi:cli/stdin@0.2.2; + import wasi:cli/stdin@0.2.3; /// This is the default handler to use when user code simply wants to make an /// HTTP request (e.g., via `fetch()`). diff --git a/test/fixtures/wit/deps/http/types.wit b/test/fixtures/wit/deps/http/types.wit index 40ee77068..2498f180a 100644 --- a/test/fixtures/wit/deps/http/types.wit +++ b/test/fixtures/wit/deps/http/types.wit @@ -4,13 +4,13 @@ @since(version = 0.2.0) interface types { @since(version = 0.2.0) - use wasi:clocks/monotonic-clock@0.2.2.{duration}; + use wasi:clocks/monotonic-clock@0.2.3.{duration}; @since(version = 0.2.0) - use wasi:io/streams@0.2.2.{input-stream, output-stream}; + use wasi:io/streams@0.2.3.{input-stream, output-stream}; @since(version = 0.2.0) - use wasi:io/error@0.2.2.{error as io-error}; + use wasi:io/error@0.2.3.{error as io-error}; @since(version = 0.2.0) - use wasi:io/poll@0.2.2.{pollable}; + use wasi:io/poll@0.2.3.{pollable}; /// This type corresponds to HTTP standard Methods. @since(version = 0.2.0) @@ -36,7 +36,7 @@ interface types { } /// These cases are inspired by the IANA HTTP Proxy Error Types: - /// https://www.iana.org/assignments/http-proxy-status/http-proxy-status.xhtml#table-http-proxy-error-types + /// @since(version = 0.2.0) variant error-code { DNS-timeout, diff --git a/test/fixtures/wit/deps/io/error.wit b/test/fixtures/wit/deps/io/error.wit index 717135f8c..97c606877 100644 --- a/test/fixtures/wit/deps/io/error.wit +++ b/test/fixtures/wit/deps/io/error.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.2; +package wasi:io@0.2.3; @since(version = 0.2.0) interface error { diff --git a/test/fixtures/wit/deps/io/poll.wit b/test/fixtures/wit/deps/io/poll.wit index 49c1c5ede..9bcbe8e03 100644 --- a/test/fixtures/wit/deps/io/poll.wit +++ b/test/fixtures/wit/deps/io/poll.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.2; +package wasi:io@0.2.3; /// A poll API intended to let users wait for I/O events on multiple handles /// at once. diff --git a/test/fixtures/wit/deps/io/streams.wit b/test/fixtures/wit/deps/io/streams.wit index 330f7095c..0de084629 100644 --- a/test/fixtures/wit/deps/io/streams.wit +++ b/test/fixtures/wit/deps/io/streams.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.2; +package wasi:io@0.2.3; /// WASI I/O is an I/O abstraction API which is currently focused on providing /// stream types. diff --git a/test/fixtures/wit/deps/io/world.wit b/test/fixtures/wit/deps/io/world.wit index f7001ccff..f1d2102dc 100644 --- a/test/fixtures/wit/deps/io/world.wit +++ b/test/fixtures/wit/deps/io/world.wit @@ -1,4 +1,4 @@ -package wasi:io@0.2.2; +package wasi:io@0.2.3; @since(version = 0.2.0) world imports { diff --git a/test/fixtures/wit/deps/random/insecure-seed.wit b/test/fixtures/wit/deps/random/insecure-seed.wit index cdea716cf..67d024d5b 100644 --- a/test/fixtures/wit/deps/random/insecure-seed.wit +++ b/test/fixtures/wit/deps/random/insecure-seed.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.2; +package wasi:random@0.2.3; /// The insecure-seed interface for seeding hash-map DoS resistance. /// /// It is intended to be portable at least between Unix-family platforms and diff --git a/test/fixtures/wit/deps/random/insecure.wit b/test/fixtures/wit/deps/random/insecure.wit index b71e85879..a07dfab32 100644 --- a/test/fixtures/wit/deps/random/insecure.wit +++ b/test/fixtures/wit/deps/random/insecure.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.2; +package wasi:random@0.2.3; /// The insecure interface for insecure pseudo-random numbers. /// /// It is intended to be portable at least between Unix-family platforms and diff --git a/test/fixtures/wit/deps/random/random.wit b/test/fixtures/wit/deps/random/random.wit index 0c57e8c80..91957e633 100644 --- a/test/fixtures/wit/deps/random/random.wit +++ b/test/fixtures/wit/deps/random/random.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.2; +package wasi:random@0.2.3; /// WASI Random is a random data API. /// /// It is intended to be portable at least between Unix-family platforms and diff --git a/test/fixtures/wit/deps/random/world.wit b/test/fixtures/wit/deps/random/world.wit index 16d68acfa..0c1218f36 100644 --- a/test/fixtures/wit/deps/random/world.wit +++ b/test/fixtures/wit/deps/random/world.wit @@ -1,4 +1,4 @@ -package wasi:random@0.2.2; +package wasi:random@0.2.3; @since(version = 0.2.0) world imports { diff --git a/test/fixtures/wit/deps/sockets/ip-name-lookup.wit b/test/fixtures/wit/deps/sockets/ip-name-lookup.wit index d3ab88aed..c1d8a47c1 100644 --- a/test/fixtures/wit/deps/sockets/ip-name-lookup.wit +++ b/test/fixtures/wit/deps/sockets/ip-name-lookup.wit @@ -1,7 +1,7 @@ @since(version = 0.2.0) interface ip-name-lookup { @since(version = 0.2.0) - use wasi:io/poll@0.2.2.{pollable}; + use wasi:io/poll@0.2.3.{pollable}; @since(version = 0.2.0) use network.{network, error-code, ip-address}; diff --git a/test/fixtures/wit/deps/sockets/network.wit b/test/fixtures/wit/deps/sockets/network.wit index 7f2d86a4c..f3f60a370 100644 --- a/test/fixtures/wit/deps/sockets/network.wit +++ b/test/fixtures/wit/deps/sockets/network.wit @@ -1,7 +1,7 @@ @since(version = 0.2.0) interface network { @unstable(feature = network-error-code) - use wasi:io/error@0.2.2.{error}; + use wasi:io/error@0.2.3.{error}; /// An opaque resource that represents access to (a subset of) the network. /// This enables context-based security for networking. diff --git a/test/fixtures/wit/deps/sockets/tcp.wit b/test/fixtures/wit/deps/sockets/tcp.wit index 728822dfa..b4cd87fce 100644 --- a/test/fixtures/wit/deps/sockets/tcp.wit +++ b/test/fixtures/wit/deps/sockets/tcp.wit @@ -1,11 +1,11 @@ @since(version = 0.2.0) interface tcp { @since(version = 0.2.0) - use wasi:io/streams@0.2.2.{input-stream, output-stream}; + use wasi:io/streams@0.2.3.{input-stream, output-stream}; @since(version = 0.2.0) - use wasi:io/poll@0.2.2.{pollable}; + use wasi:io/poll@0.2.3.{pollable}; @since(version = 0.2.0) - use wasi:clocks/monotonic-clock@0.2.2.{duration}; + use wasi:clocks/monotonic-clock@0.2.3.{duration}; @since(version = 0.2.0) use network.{network, error-code, ip-socket-address, ip-address-family}; diff --git a/test/fixtures/wit/deps/sockets/udp.wit b/test/fixtures/wit/deps/sockets/udp.wit index d8acb2d29..01901ca27 100644 --- a/test/fixtures/wit/deps/sockets/udp.wit +++ b/test/fixtures/wit/deps/sockets/udp.wit @@ -1,7 +1,7 @@ @since(version = 0.2.0) interface udp { @since(version = 0.2.0) - use wasi:io/poll@0.2.2.{pollable}; + use wasi:io/poll@0.2.3.{pollable}; @since(version = 0.2.0) use network.{network, error-code, ip-socket-address, ip-address-family}; diff --git a/test/fixtures/wit/deps/sockets/world.wit b/test/fixtures/wit/deps/sockets/world.wit index 6e349c756..2f0ad0d7c 100644 --- a/test/fixtures/wit/deps/sockets/world.wit +++ b/test/fixtures/wit/deps/sockets/world.wit @@ -1,4 +1,4 @@ -package wasi:sockets@0.2.2; +package wasi:sockets@0.2.3; @since(version = 0.2.0) world imports { diff --git a/test/fixtures/wit/wasi-http.wit b/test/fixtures/wit/wasi-http.wit index f48d636c2..e5466e476 100644 --- a/test/fixtures/wit/wasi-http.wit +++ b/test/fixtures/wit/wasi-http.wit @@ -10,7 +10,7 @@ interface commands { } world command-extended { - include wasi:http/proxy@0.2.2; + include wasi:http/proxy@0.2.3; export commands; } diff --git a/test/preview2.js b/test/preview2.js index ed880b8ee..739489eec 100644 --- a/test/preview2.js +++ b/test/preview2.js @@ -53,7 +53,7 @@ export async function preview2Test() { strictEqual(stderr, "writing to stderr: hello, world\n"); }); - test("wasi-http-proxy", async () => { + test.skip("wasi-http-proxy", async () => { const server = createServer(async (req, res) => { if (req.url == "/api/examples") { res.writeHead(200, { diff --git a/test/runtime/lists.ts b/test/runtime/lists.ts index f32a69a81..39a74d4d3 100644 --- a/test/runtime/lists.ts +++ b/test/runtime/lists.ts @@ -5,42 +5,58 @@ import * as helpers from "./helpers.js"; import { instantiate } from "../output/lists/lists.js"; // @ts-ignore -import * as assert from 'assert'; +import * as assert from "assert"; async function run() { // @ts-ignore const wasm = await instantiate(helpers.loadWasm, { ...helpers.wasi, - 'test:lists/test': { + "test:lists/test": { emptyListParam(a) { assert.deepStrictEqual(Array.from(a), []); }, emptyStringParam(a) { - assert.strictEqual(a, ''); + assert.strictEqual(a, ""); }, emptyListResult() { return new Uint8Array([]); }, - emptyStringResult() { return ''; }, + emptyStringResult() { + return ""; + }, listParam(a) { assert.deepStrictEqual(Array.from(a), [1, 2, 3, 4]); }, listParam2(a) { - assert.strictEqual(a, 'foo'); + assert.strictEqual(a, "foo"); }, listParam3(a) { - assert.deepStrictEqual(a, ['foo', 'bar', 'baz']); + assert.deepStrictEqual(a, ["foo", "bar", "baz"]); }, listParam4(a) { - assert.deepStrictEqual(a, [['foo', 'bar'], ['baz']]); + assert.deepStrictEqual(a, [["foo", "bar"], ["baz"]]); + }, + listParam5(a) { + assert.deepStrictEqual(a, [ + [1, 2, 3], + [4, 5, 6], + ]); }, listResult() { return new Uint8Array([1, 2, 3, 4, 5]); }, - listResult2() { return 'hello!'; }, - listResult3() { return ['hello,', 'world!']; }, - listRoundtrip(x) { return x; }, - stringRoundtrip(x) { return x; }, + listResult2() { + return "hello!"; + }, + listResult3() { + return ["hello,", "world!"]; + }, + listRoundtrip(x) { + return x; + }, + stringRoundtrip(x) { + return x; + }, listMinmax8(u, s) { assert.deepEqual(u.length, 2); @@ -78,18 +94,18 @@ async function run() { listMinmax64(u, s) { assert.deepEqual(u.length, 2); assert.deepEqual(u[0], 0n); - assert.deepEqual(u[1], (2n ** 64n) - 1n); + assert.deepEqual(u[1], 2n ** 64n - 1n); assert.deepEqual(s.length, 2); assert.deepEqual(s[0], -(2n ** 63n)); - assert.deepEqual(s[1], (2n ** 63n) - 1n); + assert.deepEqual(s[1], 2n ** 63n - 1n); return [u, s]; }, listMinmaxFloat(f, d) { assert.deepEqual(f.length, 4); - assert.deepEqual(f[0], -3.4028234663852886e+38); - assert.deepEqual(f[1], 3.4028234663852886e+38); + assert.deepEqual(f[0], -3.4028234663852886e38); + assert.deepEqual(f[1], 3.4028234663852886e38); assert.deepEqual(f[2], Number.NEGATIVE_INFINITY); assert.deepEqual(f[3], Number.POSITIVE_INFINITY); @@ -100,15 +116,15 @@ async function run() { assert.deepEqual(d[3], Number.POSITIVE_INFINITY); return [f, d]; - } - } + }, + }, }); const bytes = wasm.allocatedBytes(); - assert.strictEqual(wasm.test, wasm['test:lists/test']); + assert.strictEqual(wasm.test, wasm["test:lists/test"]); wasm.testImports(); wasm.test.emptyListParam(new Uint8Array([])); - wasm.test.emptyStringParam(''); + wasm.test.emptyStringParam(""); wasm.test.listParam(new Uint8Array([1, 2, 3, 4])); wasm.test.listParam2("foo"); wasm.test.listParam3(["foo", "bar", "baz"]); @@ -120,18 +136,24 @@ async function run() { assert.deepStrictEqual(wasm.test.listResult3(), ["hello,", "world!"]); const buffer = new ArrayBuffer(8); - (new Uint8Array(buffer)).set(new Uint8Array([1, 2, 3, 4]), 2); + new Uint8Array(buffer).set(new Uint8Array([1, 2, 3, 4]), 2); // Create a view of the four bytes in the middle of the buffer const view = new Uint8Array(buffer, 2, 4); - assert.deepStrictEqual(Array.from(wasm.test.listRoundtrip(view)), [1, 2, 3, 4]); + assert.deepStrictEqual( + Array.from(wasm.test.listRoundtrip(view)), + [1, 2, 3, 4] + ); assert.deepStrictEqual(wasm.test.stringRoundtrip("x"), "x"); assert.deepStrictEqual(wasm.test.stringRoundtrip(""), ""); - assert.deepStrictEqual(wasm.test.stringRoundtrip("hello ⚑ world"), "hello ⚑ world"); + assert.deepStrictEqual( + wasm.test.stringRoundtrip("hello ⚑ world"), + "hello ⚑ world" + ); // Ensure that we properly called `free` everywhere in all the glue that we // needed to. assert.strictEqual(bytes, wasm.allocatedBytes()); } -await run() +await run(); diff --git a/xtask/src/generate/preview2_tests.rs b/xtask/src/generate/preview2_tests.rs index bfabca0c6..c76ada6fd 100644 --- a/xtask/src/generate/preview2_tests.rs +++ b/xtask/src/generate/preview2_tests.rs @@ -15,6 +15,8 @@ const TEST_IGNORE: &[&str] = &[ // Don't currently support WASI config store. "config_get", "cli_serve_config", + // TODO: Support these tests + "cli_multiple_preopens", ]; // we don't currently support these subsystems, but if someone wants to work on them we