diff --git a/Cargo.lock b/Cargo.lock index 7fff19c7..3d513b3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,17 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + [[package]] name = "ahash" version = "0.8.11" @@ -81,6 +92,12 @@ version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +[[package]] +name = "append-only-vec" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7992085ec035cfe96992dd31bfd495a2ebd31969bb95f624471cb6c0b349e571" + [[package]] name = "arboard" version = "3.4.1" @@ -100,14 +117,46 @@ dependencies = [ ] [[package]] -name = "ast_node" -version = "3.0.0" +name = "arcstr" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03918c3dbd7701a85c6b9887732e2921175f26c350b4563841d0958c21d57e6d" + +[[package]] +name = "ariadne" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31beedec3ce83ae6da3a79592b3d8d7afd146a5b15bb9bb940279aced60faa89" +dependencies = [ + "unicode-width 0.1.14", + "yansi", +] + +[[package]] +name = "assert-unchecked" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7330592adf847ee2e3513587b4db2db410a0d751378654e7e993d9adcbe5c795" + +[[package]] +name = "async-scoped" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" +dependencies = [ + "futures", + "pin-project", + "tokio", +] + +[[package]] +name = "async-trait" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fb5864e2f5bf9fd9797b94b2dfd1554d4c3092b535008b27d7e15c86675a2f" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "swc_macros_common", "syn 2.0.95", ] @@ -134,17 +183,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "auto_impl" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "autocfg" version = "1.4.0" @@ -166,6 +204,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "base-encode" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a17bd29f7c70f32e9387f4d4acfa5ea7b7749ef784fb78cf382df97069337b8c" + [[package]] name = "base64" version = "0.21.7" @@ -188,12 +232,13 @@ dependencies = [ ] [[package]] -name = "better_scoped_tls" -version = "1.0.0" +name = "base64-simd" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50fd297a11c709be8348aec039c8b91de16075d2b2bdaee1bd562c0875993664" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "scoped-tls", + "outref 0.5.1", + "vsimd", ] [[package]] @@ -286,6 +331,28 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bytemuck" version = "1.21.0" @@ -364,7 +431,7 @@ checksum = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924" dependencies = [ "camino", "cargo-platform", - "semver 1.0.24", + "semver", "serde", "serde_json", "thiserror 2.0.9", @@ -380,6 +447,15 @@ dependencies = [ "toml 0.8.19", ] +[[package]] +name = "castaway" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" +dependencies = [ + "rustversion", +] + [[package]] name = "cc" version = "1.2.5" @@ -490,12 +566,55 @@ dependencies = [ "memchr", ] +[[package]] +name = "compact_str" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" +dependencies = [ + "castaway", + "cfg-if", + "itoa 1.0.14", + "rustversion", + "ryu", + "static_assertions", +] + +[[package]] +name = "const-str" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21077772762a1002bb421c3af42ac1725fa56066bfc53d9a55bb79905df2aaf3" +dependencies = [ + "const-str-proc-macro", +] + +[[package]] +name = "const-str-proc-macro" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1e0fdd2e5d3041e530e1b21158aeeef8b5d0e306bc5c1e3d6cf0930d10e25a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "convert_case" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "cookie" version = "0.18.1" @@ -580,6 +699,12 @@ dependencies = [ "libc", ] +[[package]] +name = "cow-utils" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" + [[package]] name = "cpufeatures" version = "0.2.16" @@ -589,21 +714,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" - [[package]] name = "crc32fast" version = "1.4.2" @@ -657,6 +767,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "css-module-lexer" +version = "0.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b51940c54c6ca015d3add383571ec5610114466eb67aa0a27096e1dcf3c9e29" +dependencies = [ + "smallvec", +] + [[package]] name = "cssparser" version = "0.27.2" @@ -674,6 +793,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "cssparser" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be934d936a0fbed5bcdc01042b770de1398bf79d0e192f49fa7faea0e99281e" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 1.0.14", + "phf 0.10.1", + "smallvec", +] + +[[package]] +name = "cssparser-color" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556c099a61d85989d7af52b692e35a8d68a57e7df8c6d07563dc0778b3960c9f" +dependencies = [ + "cssparser 0.33.0", +] + [[package]] name = "cssparser-macros" version = "0.6.1" @@ -694,6 +835,12 @@ dependencies = [ "syn 2.0.95", ] +[[package]] +name = "daachorse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b7ef7a4be509357f4804d0a22e830daddb48f19fd604e4ad32ddce04a94c36" + [[package]] name = "darling" version = "0.20.10" @@ -742,6 +889,20 @@ dependencies = [ "parking_lot_core", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "data-encoding" version = "2.6.0" @@ -749,13 +910,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] -name = "debugid" -version = "0.8.0" +name = "data-url" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +checksum = "3a30bfce702bcfa94e906ef82421f2c0e61c076ad76030c16ee5d2e9a32fe193" dependencies = [ - "serde", - "uuid", + "matches", ] [[package]] @@ -768,47 +928,16 @@ dependencies = [ "serde", ] -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.95", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.95", -] - [[package]] name = "derive_more" version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "convert_case", + "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.1", + "rustc_version", "syn 2.0.95", ] @@ -832,13 +961,16 @@ dependencies = [ "deskulpt-plugin", "deskulpt-plugin-fs", "deskulpt-plugin-sys", + "dunce", "objc2", "once_cell", "open", + "oxc", "path-clean", + "rolldown", + "rolldown_common", "serde", "serde_json", - "swc_core", "sysinfo", "tauri", "tauri-plugin-global-shortcut", @@ -1006,7 +1138,7 @@ checksum = "b68b6f9f63a0b6a38bc447d4ce84e2b388f3ec95c99c641c8ff0dd3ef89a6379" dependencies = [ "cc", "memchr", - "rustc_version 0.4.1", + "rustc_version", "toml 0.8.19", "vswhom", "winreg", @@ -1072,7 +1204,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ "memoffset", - "rustc_version 0.4.1", + "rustc_version", +] + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", ] [[package]] @@ -1097,6 +1241,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.5.0" @@ -1134,14 +1284,12 @@ dependencies = [ ] [[package]] -name = "from_variant" -version = "2.0.0" +name = "fsevent-sys" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d7ccf961415e7aa17ef93dcb6c2441faaa8e768abe09e659b908089546f74c5" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" dependencies = [ - "proc-macro2", - "swc_macros_common", - "syn 2.0.95", + "libc", ] [[package]] @@ -1160,6 +1308,21 @@ dependencies = [ "new_debug_unreachable", ] +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.31" @@ -1167,6 +1330,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -1221,6 +1385,7 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ + "futures-channel", "futures-core", "futures-io", "futures-macro", @@ -1473,6 +1638,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "glob-match" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985c9503b412198aa4197559e9a318524ebc4519c229bfa05a535828c950b9d" + [[package]] name = "global-hotkey" version = "0.6.3" @@ -1558,6 +1729,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] [[package]] name = "hashbrown" @@ -1565,7 +1739,7 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash", + "ahash 0.8.11", "allocator-api2", ] @@ -1574,6 +1748,11 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "heck" @@ -1587,32 +1766,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hstr" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d6824358c0fd9a68bb23999ed2ef76c84f79408a26ef7ae53d5f370c94ad36" -dependencies = [ - "hashbrown 0.14.5", - "new_debug_unreachable", - "once_cell", - "phf 0.11.2", - "rustc-hash", - "triomphe", -] - [[package]] name = "html5ever" version = "0.26.0" @@ -1883,12 +2042,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - [[package]] name = "image" version = "0.25.5" @@ -1934,30 +2087,47 @@ dependencies = [ ] [[package]] -name = "ipnet" -version = "2.10.1" +name = "inotify" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] [[package]] -name = "is-docker" -version = "0.2.0" +name = "inotify-sys" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" dependencies = [ - "once_cell", + "libc", ] [[package]] -name = "is-macro" -version = "0.3.7" +name = "instant" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.95", + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", ] [[package]] @@ -1970,6 +2140,24 @@ dependencies = [ "once_cell", ] +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -2055,6 +2243,15 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "json-strip-comments" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b271732a960335e715b6b2ae66a086f115c74eb97360e996d2bd809bfc063bba" +dependencies = [ + "memchr", +] + [[package]] name = "jsonptr" version = "0.6.3" @@ -2076,13 +2273,33 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + [[package]] name = "kuchikiki" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" dependencies = [ - "cssparser", + "cssparser 0.27.2", "html5ever", "indexmap 1.9.3", "matches", @@ -2143,6 +2360,46 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", + "redox_syscall", +] + +[[package]] +name = "lightningcss" +version = "1.0.0-alpha.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a75fcbcdbcc84fc1ae7c60c31f99337560b620757a9bfc1c9f84df3cff8ac24" +dependencies = [ + "ahash 0.8.11", + "bitflags 2.6.0", + "const-str", + "cssparser 0.33.0", + "cssparser-color", + "dashmap 5.5.3", + "data-encoding", + "getrandom 0.2.15", + "indexmap 2.7.0", + "itertools 0.10.5", + "lazy_static", + "lightningcss-derive", + "parcel_selectors", + "parcel_sourcemap", + "paste", + "pathdiff", + "rayon", + "serde", + "smallvec", +] + +[[package]] +name = "lightningcss-derive" +version = "1.0.0-alpha.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12744d1279367caed41739ef094c325d53fb0ffcd4f9b84a368796f870252" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -2202,6 +2459,15 @@ dependencies = [ "tendril", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matches" version = "0.1.10" @@ -2229,6 +2495,12 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.2" @@ -2246,6 +2518,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ "libc", + "log", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -2312,6 +2585,50 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonmax" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" + +[[package]] +name = "notify" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c533b4c39709f9ba5005d8002048266593c1cfaf3c5f0739d5b8ab0c6c504009" +dependencies = [ + "bitflags 2.6.0", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "notify-types", + "walkdir", + "windows-sys 0.52.0", +] + +[[package]] +name = "notify-types" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585d3cb5e12e01aed9e8a1f70d5c6b5e86fe2a6e48fc8cd0b3e0b8df6f6eb174" +dependencies = [ + "instant", +] + [[package]] name = "ntapi" version = "0.4.1" @@ -2321,6 +2638,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -2329,7 +2656,6 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "serde", ] [[package]] @@ -2356,16 +2682,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.7.3" @@ -2653,1547 +2969,1908 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" [[package]] -name = "pango" -version = "0.18.3" +name = "outref" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" -dependencies = [ - "gio", - "glib", - "libc", - "once_cell", - "pango-sys", -] +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" [[package]] -name = "pango-sys" -version = "0.18.0" +name = "overload" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" + +[[package]] +name = "oxc" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffa5054ed33c5e29d18a86245db0290fb4f610b2101014a979b5aad4a7b4a609" dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", + "oxc_allocator", + "oxc_ast", + "oxc_codegen", + "oxc_diagnostics", + "oxc_mangler", + "oxc_minifier", + "oxc_parser", + "oxc_regular_expression", + "oxc_semantic", + "oxc_span", + "oxc_syntax", + "oxc_transformer", ] [[package]] -name = "parking_lot" -version = "0.12.3" +name = "oxc-browserslist" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "1b585351ba1b93f0bf9683df23285cc0978ec35a6e3074794815756086770c14" dependencies = [ - "lock_api", - "parking_lot_core", + "nom", + "rustc-hash", + "serde", + "serde_json", + "thiserror 2.0.9", + "time", ] [[package]] -name = "parking_lot_core" -version = "0.9.10" +name = "oxc-miette" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "e03e63fd113c068b82d07c9c614b0b146c08a3ac0a4dface3ea1d1a9d14d549e" dependencies = [ "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", + "owo-colors", + "oxc-miette-derive", + "textwrap", + "thiserror 1.0.69", + "unicode-width 0.2.0", ] [[package]] -name = "path-clean" -version = "1.0.1" +name = "oxc-miette-derive" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" +checksum = "e21f680e8c5f1900297d394627d495351b9e37761f7bbf90116bd5eeb6e80967" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.95", +] [[package]] -name = "pathdiff" -version = "0.2.3" +name = "oxc_allocator" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" +checksum = "976149f05de0a4b51ac5b10a408db597e6c95268e29ef0f09204475ca0c42830" +dependencies = [ + "allocator-api2", + "bumpalo", + "simdutf8", +] [[package]] -name = "percent-encoding" -version = "2.3.1" +name = "oxc_ast" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "ecee7578bc2eba24c1f30ca3e2eaa496e5448e0c08f4b53d84148040e48cf037" +dependencies = [ + "bitflags 2.6.0", + "cow-utils", + "num-bigint", + "num-traits", + "oxc_allocator", + "oxc_ast_macros", + "oxc_estree", + "oxc_regular_expression", + "oxc_span", + "oxc_syntax", +] [[package]] -name = "petgraph" -version = "0.6.5" +name = "oxc_ast_macros" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "a67bbb9e762397c69e1b21bea50225145fd5dc391f05c65fb8f57c227b5fd799" dependencies = [ - "fixedbitset", - "indexmap 2.7.0", + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] -name = "phf" -version = "0.8.0" +name = "oxc_cfg" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +checksum = "663c66a31d49c57f9fe16e92d91b1ac2e8968b50f27b551ec2afcce6bcf1a529" dependencies = [ - "phf_macros 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", + "bitflags 2.6.0", + "itertools 0.13.0", + "nonmax", + "oxc_index", + "oxc_syntax", + "petgraph", + "rustc-hash", ] [[package]] -name = "phf" -version = "0.10.1" +name = "oxc_codegen" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +checksum = "9c16288143636dba33b4663a0933311141d8d2717e8c518239bd9d3eaa27370d" dependencies = [ - "phf_shared 0.10.0", + "assert-unchecked", + "bitflags 2.6.0", + "cow-utils", + "nonmax", + "oxc_allocator", + "oxc_ast", + "oxc_index", + "oxc_mangler", + "oxc_sourcemap", + "oxc_span", + "oxc_syntax", + "rustc-hash", ] [[package]] -name = "phf" -version = "0.11.2" +name = "oxc_data_structures" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "b49cb97e20f41099468b0b9091824a9ea707c58a05f1562841fc58f09dfe0a1a" dependencies = [ - "phf_macros 0.11.2", - "phf_shared 0.11.2", + "assert-unchecked", + "ropey", ] [[package]] -name = "phf_codegen" -version = "0.8.0" +name = "oxc_diagnostics" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +checksum = "72057eef849a7ef203f8d06c434b46758c3eb68f0e7687bade236370c4b6aacf" dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", + "oxc-miette", + "rustc-hash", ] [[package]] -name = "phf_codegen" -version = "0.10.0" +name = "oxc_ecmascript" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +checksum = "859aa965b338b4758d609e524b53a29bed3071a252994fc8d41b08c17a1a32bc" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", + "num-bigint", + "num-traits", + "oxc_ast", + "oxc_span", + "oxc_syntax", ] [[package]] -name = "phf_generator" -version = "0.8.0" +name = "oxc_estree" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" -dependencies = [ - "phf_shared 0.8.0", - "rand 0.7.3", -] +checksum = "57fc3b874dd6c2bf1399bee70464023d482c4d9b92d9b6596fbf5401f1aae6a6" [[package]] -name = "phf_generator" -version = "0.10.0" +name = "oxc_index" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +checksum = "5eca5d9726cd0a6e433debe003b7bc88b2ecad0bb6109f0cef7c55e692139a34" dependencies = [ - "phf_shared 0.10.0", - "rand 0.8.5", + "rayon", ] [[package]] -name = "phf_generator" -version = "0.11.2" +name = "oxc_mangler" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "06c11a4e69322befbd80e7785e952d80151d3de52fec578c72e5b1eb6ed69f66" dependencies = [ - "phf_shared 0.11.2", - "rand 0.8.5", + "itertools 0.13.0", + "oxc_ast", + "oxc_index", + "oxc_semantic", + "oxc_span", ] [[package]] -name = "phf_macros" -version = "0.8.0" +name = "oxc_minifier" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +checksum = "28e289e51abdc0602e9f48192a6d4b778bd038af903169e9f19bb7d53ca8526c" dependencies = [ - "phf_generator 0.8.0", - "phf_shared 0.8.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.109", + "cow-utils", + "oxc_allocator", + "oxc_ast", + "oxc_codegen", + "oxc_ecmascript", + "oxc_mangler", + "oxc_parser", + "oxc_semantic", + "oxc_span", + "oxc_syntax", + "oxc_traverse", ] [[package]] -name = "phf_macros" -version = "0.11.2" +name = "oxc_parser" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +checksum = "42b9ffdf1fd1fac4e96315b3d200093223507038fcd22ff4ef6d21f3674640a7" dependencies = [ - "phf_generator 0.11.2", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.95", + "assert-unchecked", + "bitflags 2.6.0", + "cow-utils", + "memchr", + "num-bigint", + "num-traits", + "oxc_allocator", + "oxc_ast", + "oxc_diagnostics", + "oxc_ecmascript", + "oxc_regular_expression", + "oxc_span", + "oxc_syntax", + "rustc-hash", + "seq-macro", ] [[package]] -name = "phf_shared" -version = "0.8.0" +name = "oxc_regular_expression" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +checksum = "63084df3c8432e87f5e241f3dd4a45e2f009dcfd08db4131c89ca88280fa5aeb" dependencies = [ - "siphasher", + "oxc_allocator", + "oxc_ast_macros", + "oxc_diagnostics", + "oxc_estree", + "oxc_span", + "phf 0.11.2", + "rustc-hash", + "unicode-id-start", ] [[package]] -name = "phf_shared" -version = "0.10.0" +name = "oxc_resolver" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +checksum = "bed381b6ab4bbfebfc7a011ad43b110ace8d201d02a39c0e09855f16b8f3f741" dependencies = [ - "siphasher", + "cfg-if", + "dashmap 6.1.0", + "indexmap 2.7.0", + "json-strip-comments", + "once_cell", + "rustc-hash", + "serde", + "serde_json", + "simdutf8", + "thiserror 1.0.69", + "tracing", ] [[package]] -name = "phf_shared" -version = "0.11.2" +name = "oxc_semantic" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "62d8f502555081cf4a474a0e499fd3841e56ac7c43f48d62ea97f82e809d8491" dependencies = [ - "siphasher", + "assert-unchecked", + "hashbrown 0.15.2", + "itertools 0.13.0", + "oxc_allocator", + "oxc_ast", + "oxc_cfg", + "oxc_data_structures", + "oxc_diagnostics", + "oxc_ecmascript", + "oxc_index", + "oxc_span", + "oxc_syntax", + "phf 0.11.2", + "rustc-hash", + "self_cell", ] [[package]] -name = "pin-project-lite" -version = "0.2.15" +name = "oxc_sourcemap" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "48557f779d04c8bfa8a930db5a3c35c0a86ff4e6bf1552ce446b9596a6e77c42" +dependencies = [ + "base64-simd 0.8.0", + "cfg-if", + "cow-utils", + "rayon", + "rustc-hash", + "serde", + "serde_json", +] [[package]] -name = "pin-utils" -version = "0.1.0" +name = "oxc_span" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "ad2094100a1f1d4cac1d7ac22e95b13f18643e1381447fd354df45c3dbc62ccb" +dependencies = [ + "compact_str", + "oxc-miette", + "oxc_allocator", + "oxc_ast_macros", + "oxc_estree", +] [[package]] -name = "pkg-config" -version = "0.3.31" +name = "oxc_syntax" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "6c293839b37b16105210bc76b13417e4239f49670de91d41d70a3e69f41f6f7b" +dependencies = [ + "assert-unchecked", + "bitflags 2.6.0", + "nonmax", + "oxc_allocator", + "oxc_ast_macros", + "oxc_estree", + "oxc_index", + "oxc_span", + "phf 0.11.2", + "rustc-hash", + "ryu-js", + "unicode-id-start", +] [[package]] -name = "plist" -version = "1.7.0" +name = "oxc_transformer" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" +checksum = "6cbad270a00a0a1c8d03190a942180697ab977c754eda651bbb98b3997225b35" dependencies = [ "base64 0.22.1", + "compact_str", + "cow-utils", + "dashmap 6.1.0", "indexmap 2.7.0", - "quick-xml", + "itoa 1.0.14", + "lazy_static", + "oxc-browserslist", + "oxc_allocator", + "oxc_ast", + "oxc_data_structures", + "oxc_diagnostics", + "oxc_ecmascript", + "oxc_parser", + "oxc_regular_expression", + "oxc_semantic", + "oxc_span", + "oxc_syntax", + "oxc_traverse", + "rustc-hash", "serde", - "time", + "serde_json", + "sha1", ] [[package]] -name = "png" -version = "0.17.16" +name = "oxc_traverse" +version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +checksum = "57a3fab85b35924798950cd178f28083449288c3be24323322ad296af62bb30a" dependencies = [ - "bitflags 1.3.2", - "crc32fast", - "fdeflate", - "flate2", - "miniz_oxide", + "compact_str", + "itoa 1.0.14", + "oxc_allocator", + "oxc_ast", + "oxc_data_structures", + "oxc_ecmascript", + "oxc_semantic", + "oxc_span", + "oxc_syntax", + "rustc-hash", ] [[package]] -name = "powerfmt" -version = "0.2.0" +name = "pango" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +dependencies = [ + "gio", + "glib", + "libc", + "once_cell", + "pango-sys", +] [[package]] -name = "ppv-lite86" -version = "0.2.20" +name = "pango-sys" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" dependencies = [ - "zerocopy", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", ] [[package]] -name = "precomputed-hash" -version = "0.1.1" +name = "parcel_selectors" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +checksum = "dccbc6fb560df303a44e511618256029410efbc87779018f751ef12c488271fe" +dependencies = [ + "bitflags 2.6.0", + "cssparser 0.33.0", + "log", + "phf 0.11.2", + "phf_codegen 0.11.3", + "precomputed-hash", + "rustc-hash", + "smallvec", +] [[package]] -name = "proc-macro-crate" -version = "1.3.1" +name = "parcel_sourcemap" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "485b74d7218068b2b7c0e3ff12fbc61ae11d57cb5d8224f525bd304c6be05bbb" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "base64-simd 0.7.0", + "data-url", + "rkyv", + "serde", + "serde_json", + "vlq", ] [[package]] -name = "proc-macro-crate" -version = "2.0.0" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "toml_edit 0.20.7", + "lock_api", + "parking_lot_core", ] [[package]] -name = "proc-macro-crate" -version = "3.2.0" +name = "parking_lot_core" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "toml_edit 0.22.22", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "path-clean" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] +checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" [[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" +name = "pathdiff" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] -name = "proc-macro2" -version = "1.0.92" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "psm" -version = "0.1.24" +name = "petgraph" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "cc", + "fixedbitset", + "indexmap 2.7.0", ] [[package]] -name = "ptr_meta" -version = "0.3.0" +name = "phf" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" dependencies = [ - "ptr_meta_derive", + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", ] [[package]] -name = "ptr_meta_derive" -version = "0.3.0" +name = "phf" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", ] [[package]] -name = "quick-xml" -version = "0.32.0" +name = "phf" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ - "memchr", + "phf_macros 0.11.2", + "phf_shared 0.11.2", ] [[package]] -name = "quote" -version = "1.0.38" +name = "phf_codegen" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" dependencies = [ - "proc-macro2", + "phf_generator 0.8.0", + "phf_shared 0.8.0", ] [[package]] -name = "radium" -version = "0.7.0" +name = "phf_codegen" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", +] [[package]] -name = "radix_fmt" -version = "1.0.0" +name = "phf_codegen" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator 0.11.2", + "phf_shared 0.11.2", +] [[package]] -name = "rand" -version = "0.7.3" +name = "phf_generator" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", - "rand_pcg", + "phf_shared 0.8.0", + "rand 0.7.3", ] [[package]] -name = "rand" -version = "0.8.5" +name = "phf_generator" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "phf_shared 0.10.0", + "rand 0.8.5", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "phf_generator" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "phf_shared 0.11.2", + "rand 0.8.5", ] [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "phf_macros" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "phf_macros" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" dependencies = [ - "getrandom 0.1.16", + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "rand_core" -version = "0.6.4" +name = "phf_macros" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ - "getrandom 0.2.15", + "phf_generator 0.11.2", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "phf_shared" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" dependencies = [ - "rand_core 0.5.1", + "siphasher", ] [[package]] -name = "rand_pcg" -version = "0.2.1" +name = "phf_shared" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" dependencies = [ - "rand_core 0.5.1", + "siphasher", ] [[package]] -name = "raw-window-handle" -version = "0.6.2" +name = "phf_shared" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] [[package]] -name = "rayon" -version = "1.10.0" +name = "pin-project" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ - "either", - "rayon-core", + "pin-project-internal", ] [[package]] -name = "rayon-core" -version = "1.12.1" +name = "pin-project-internal" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ - "crossbeam-deque", - "crossbeam-utils", + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] -name = "redox_syscall" -version = "0.5.8" +name = "pin-project-lite" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" -dependencies = [ - "bitflags 2.6.0", -] +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] -name = "redox_users" -version = "0.4.6" +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.15", - "libredox", - "thiserror 1.0.69", -] +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "regex" -version = "1.11.1" +name = "pkg-config" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] -name = "regex-automata" -version = "0.4.9" +name = "plist" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "base64 0.22.1", + "indexmap 2.7.0", + "quick-xml", + "serde", + "time", ] [[package]] -name = "regex-syntax" -version = "0.8.5" +name = "png" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] [[package]] -name = "relative-path" -version = "1.9.3" +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] -name = "reqwest" -version = "0.12.10" +name = "ppv-lite86" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3536321cfc54baa8cf3e273d5e1f63f889067829c4b410fcdbac8ca7b80994" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "base64 0.22.1", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-util", - "tower", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "windows-registry", + "zerocopy", ] [[package]] -name = "rustc-demangle" -version = "0.1.24" +name = "precomputed-hash" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] -name = "rustc-hash" -version = "1.1.0" +name = "proc-macro-crate" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] [[package]] -name = "rustc_version" -version = "0.2.3" +name = "proc-macro-crate" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "semver 0.9.0", + "toml_edit 0.20.7", ] [[package]] -name = "rustc_version" -version = "0.4.1" +name = "proc-macro-crate" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "semver 1.0.24", + "toml_edit 0.22.22", ] [[package]] -name = "rustix" -version = "0.38.42" +name = "proc-macro-error" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", ] [[package]] -name = "rustversion" -version = "1.0.19" +name = "proc-macro-error-attr" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] [[package]] -name = "ryu-js" -version = "1.0.1" +name = "proc-macro-hack" +version = "0.5.20+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] -name = "same-file" -version = "1.0.6" +name = "proc-macro2" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ - "winapi-util", + "unicode-ident", ] [[package]] -name = "schemars" -version = "0.8.21" +name = "ptr_meta" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" dependencies = [ - "dyn-clone", - "indexmap 1.9.3", - "schemars_derive", - "serde", - "serde_json", - "url", - "uuid", + "ptr_meta_derive", ] [[package]] -name = "schemars_derive" -version = "0.8.21" +name = "ptr_meta_derive" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" dependencies = [ "proc-macro2", "quote", - "serde_derive_internals", - "syn 2.0.95", + "syn 1.0.109", ] [[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" +name = "quick-xml" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +dependencies = [ + "memchr", +] [[package]] -name = "selectors" -version = "0.22.0" +name = "quote" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ - "bitflags 1.3.2", - "cssparser", - "derive_more", - "fxhash", - "log", - "matches", - "phf 0.8.0", - "phf_codegen 0.8.0", - "precomputed-hash", - "servo_arc", - "smallvec", - "thin-slice", + "proc-macro2", ] [[package]] -name = "semver" -version = "0.9.0" +name = "radium" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "semver" -version = "1.0.24" +name = "rand" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "serde", + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", + "rand_pcg", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] [[package]] -name = "serde" -version = "1.0.216" +name = "rand_chacha" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ - "serde_derive", + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] -name = "serde-untagged" -version = "0.1.6" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "erased-serde", - "serde", - "typeid", + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] -name = "serde_derive" -version = "1.0.216" +name = "rand_core" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", + "getrandom 0.1.16", ] [[package]] -name = "serde_derive_internals" -version = "0.29.1" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", + "getrandom 0.2.15", ] [[package]] -name = "serde_json" -version = "1.0.134" +name = "rand_hc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "itoa 1.0.14", - "memchr", - "ryu", - "serde", + "rand_core 0.5.1", ] [[package]] -name = "serde_repr" -version = "0.1.19" +name = "rand_pcg" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", + "rand_core 0.5.1", ] [[package]] -name = "serde_spanned" -version = "0.6.8" +name = "raw-window-handle" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "form_urlencoded", - "itoa 1.0.14", - "ryu", - "serde", + "either", + "rayon-core", ] [[package]] -name = "serde_with" -version = "3.12.0" +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.7.0", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] -name = "serde_with_macros" -version = "3.12.0" +name = "redox_syscall" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.95", + "bitflags 2.6.0", ] [[package]] -name = "serialize-to-javascript" -version = "0.1.1" +name = "redox_users" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "serde", - "serde_json", - "serialize-to-javascript-impl", + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", ] [[package]] -name = "serialize-to-javascript-impl" -version = "0.1.1" +name = "regex" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] -name = "servo_arc" -version = "0.1.1" +name = "regex-automata" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "nodrop", - "stable_deref_trait", + "regex-syntax 0.6.29", ] [[package]] -name = "sha1" -version = "0.10.6" +name = "regex-automata" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ - "cfg-if", - "cpufeatures", - "digest", + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", ] [[package]] -name = "sha2" -version = "0.10.8" +name = "regex-syntax" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "regress" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1541daf4e4ed43a0922b7969bdc2170178bcacc5dabf7e39bc508a9fa3953a7a" dependencies = [ - "cfg-if", - "cpufeatures", - "digest", + "hashbrown 0.14.5", + "memchr", ] [[package]] -name = "shlex" -version = "1.3.0" +name = "rend" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] [[package]] -name = "simd-abstraction" -version = "0.7.1" +name = "reqwest" +version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +checksum = "3d3536321cfc54baa8cf3e273d5e1f63f889067829c4b410fcdbac8ca7b80994" dependencies = [ - "outref", + "base64 0.22.1", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-util", + "tower", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "windows-registry", ] [[package]] -name = "simd-adler32" -version = "0.3.7" +name = "rkyv" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] [[package]] -name = "siphasher" -version = "0.3.11" +name = "rkyv_derive" +version = "0.7.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] -name = "slab" -version = "0.4.9" +name = "rolldown" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "append-only-vec", + "arcstr", + "css-module-lexer", + "daachorse", + "dunce", + "futures", + "indexmap 2.7.0", + "itertools 0.13.0", + "itoa 1.0.14", + "memchr", + "notify", + "oxc", + "oxc_index", + "rolldown_common", + "rolldown_ecmascript", + "rolldown_ecmascript_utils", + "rolldown_error", + "rolldown_fs", + "rolldown_loader_utils", + "rolldown_plugin", + "rolldown_plugin_data_url", + "rolldown_resolver", + "rolldown_rstr", + "rolldown_sourcemap", + "rolldown_std_utils", + "rolldown_tracing", + "rolldown_utils", + "rustc-hash", + "sanitize-filename", + "string_wizard", + "sugar_path", + "tokio", + "tracing", + "tracing-chrome", + "xxhash-rust", +] + +[[package]] +name = "rolldown_common" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "arcstr", + "bitflags 2.6.0", + "dashmap 6.1.0", + "either", + "glob-match", + "itertools 0.13.0", + "lightningcss", + "oxc", + "oxc_index", + "oxc_resolver", + "rolldown_ecmascript", + "rolldown_error", + "rolldown_fs", + "rolldown_rstr", + "rolldown_sourcemap", + "rolldown_std_utils", + "rolldown_utils", + "rustc-hash", + "serde_json", + "string_wizard", + "sugar_path", +] + +[[package]] +name = "rolldown_ecmascript" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "arcstr", + "either", + "oxc", + "oxc_sourcemap", + "rolldown_error", + "self_cell", +] + +[[package]] +name = "rolldown_ecmascript_utils" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "oxc", + "rolldown_common", + "smallvec", +] + +[[package]] +name = "rolldown_error" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "arcstr", + "ariadne", + "heck 0.5.0", + "oxc", + "oxc_resolver", + "oxc_sourcemap", + "sugar_path", +] + +[[package]] +name = "rolldown_fs" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "oxc_resolver", + "vfs", +] + +[[package]] +name = "rolldown_loader_utils" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "itoa 1.0.14", + "rolldown_common", + "rolldown_utils", + "serde_json", +] + +[[package]] +name = "rolldown_plugin" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "arcstr", + "async-trait", + "dashmap 6.1.0", + "oxc_index", + "rolldown_common", + "rolldown_ecmascript", + "rolldown_error", + "rolldown_resolver", + "rolldown_sourcemap", + "rolldown_utils", + "rustc-hash", + "string_wizard", + "sugar_path", + "tokio", + "tracing", + "typedmap", +] + +[[package]] +name = "rolldown_plugin_data_url" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "base64-simd 0.8.0", + "regex", + "rolldown_common", + "rolldown_plugin", + "rolldown_utils", + "urlencoding", +] + +[[package]] +name = "rolldown_resolver" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "arcstr", + "dashmap 6.1.0", + "itertools 0.13.0", + "oxc_resolver", + "rolldown_common", + "rolldown_fs", + "rolldown_utils", + "sugar_path", +] + +[[package]] +name = "rolldown_rstr" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "oxc", +] + +[[package]] +name = "rolldown_sourcemap" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "memchr", + "oxc", + "oxc_sourcemap", + "rolldown_utils", + "rustc-hash", +] + +[[package]] +name = "rolldown_std_utils" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "regex", +] + +[[package]] +name = "rolldown_tracing" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "tracing", + "tracing-chrome", + "tracing-subscriber", +] + +[[package]] +name = "rolldown_utils" +version = "0.1.0" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" +dependencies = [ + "anyhow", + "arcstr", + "async-scoped", + "base-encode", + "base64-simd 0.8.0", + "dashmap 6.1.0", + "futures", + "glob-match", + "indexmap 2.7.0", + "infer", + "memchr", + "mime", + "oxc", + "oxc_index", + "phf 0.11.2", + "rayon", + "regex", + "regress", + "rolldown_std_utils", + "rustc-hash", + "simdutf8", + "xxhash-rust", +] + +[[package]] +name = "ropey" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5" dependencies = [ - "autocfg", + "smallvec", + "str_indices", ] [[package]] -name = "smallvec" -version = "1.13.2" +name = "rustc-demangle" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] -name = "smartstring" -version = "1.0.1" +name = "rustc-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" + +[[package]] +name = "rustc_version" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "autocfg", - "static_assertions", - "version_check", + "semver", ] [[package]] -name = "socket2" -version = "0.5.8" +name = "rustix" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ + "bitflags 2.6.0", + "errno", "libc", - "windows-sys 0.52.0", + "linux-raw-sys", + "windows-sys 0.59.0", ] [[package]] -name = "softbuffer" -version = "0.4.6" +name = "rustversion" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "ryu-js" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "bytemuck", - "cfg_aliases", - "core-graphics 0.24.0", - "foreign-types", - "js-sys", - "log", - "objc2", - "objc2-foundation", - "objc2-quartz-core", - "raw-window-handle", - "redox_syscall", - "wasm-bindgen", - "web-sys", - "windows-sys 0.59.0", + "winapi-util", +] + +[[package]] +name = "sanitize-filename" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc984f4f9ceb736a7bb755c3e3bd17dc56370af2600c9780dcc48c66453da34d" +dependencies = [ + "regex", +] + +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "indexmap 1.9.3", + "schemars_derive", + "serde", + "serde_json", + "url", + "uuid", ] [[package]] -name = "soup3" -version = "0.5.0" +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.95", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "seahash" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" -dependencies = [ - "futures-channel", - "gio", - "glib", - "libc", - "soup3-sys", -] +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] -name = "soup3-sys" -version = "0.5.0" +name = "selectors" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", + "bitflags 1.3.2", + "cssparser 0.27.2", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen 0.8.0", + "precomputed-hash", + "servo_arc", + "smallvec", + "thin-slice", ] [[package]] -name = "sourcemap" -version = "9.1.2" +name = "self_cell" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" + +[[package]] +name = "semver" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c4ea7042fd1a155ad95335b5d505ab00d5124ea0332a06c8390d200bb1a76a" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" dependencies = [ - "base64-simd", - "bitvec", - "data-encoding", - "debugid", - "if_chain", - "rustc-hash", - "rustc_version 0.2.3", "serde", - "serde_json", - "unicode-id-start", - "url", ] [[package]] -name = "stable_deref_trait" -version = "1.2.0" +name = "seq-macro" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] -name = "stacker" -version = "0.1.17" +name = "serde" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799c883d55abdb5e98af1a7b3f23b9b6de8ecada0ecac058672d7635eb48ca7b" +checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" dependencies = [ - "cc", - "cfg-if", - "libc", - "psm", - "windows-sys 0.59.0", + "serde_derive", ] [[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "string_cache" -version = "0.8.7" +name = "serde-untagged" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +checksum = "2676ba99bd82f75cae5cbd2c8eda6fa0b8760f18978ea840e980dd5567b5c5b6" dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", + "erased-serde", "serde", + "typeid", ] [[package]] -name = "string_cache_codegen" -version = "0.5.2" +name = "serde_derive" +version = "1.0.216" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", "proc-macro2", "quote", + "syn 2.0.95", ] [[package]] -name = "string_enum" -version = "1.0.0" +name = "serde_derive_internals" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9fe66b8ee349846ce2f9557a26b8f1e74843c4a13fb381f9a3d73617a5f956a" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "swc_macros_common", "syn 2.0.95", ] [[package]] -name = "strsim" -version = "0.11.1" +name = "serde_json" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" +dependencies = [ + "indexmap 2.7.0", + "itoa 1.0.14", + "memchr", + "ryu", + "serde", +] [[package]] -name = "swc_allocator" -version = "2.0.0" +name = "serde_repr" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117d5d3289663f53022ebf157df8a42b3872d7ac759e63abf96b5987b85d4af3" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ - "bumpalo", - "hashbrown 0.14.5", - "ptr_meta", - "rustc-hash", - "triomphe", + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] -name = "swc_atoms" -version = "3.0.2" +name = "serde_spanned" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a640bf2e4430a149c87b5eaf377477ce8615ca7cb808054dd20e79e42da5d6ba" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "hstr", - "once_cell", - "rustc-hash", "serde", ] [[package]] -name = "swc_bundler" -version = "6.0.0" +name = "serde_urlencoded" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0559f887cf8b7356eb8d6305bae3b3f79285bb44b083e67e8a5a93107be237" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ - "anyhow", - "crc", - "indexmap 2.7.0", - "is-macro", - "once_cell", - "parking_lot", - "petgraph", - "radix_fmt", - "relative-path", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_codegen", - "swc_ecma_loader", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_optimization", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_fast_graph", - "swc_graph_analyzer", - "tracing", + "form_urlencoded", + "itoa 1.0.14", + "ryu", + "serde", ] [[package]] -name = "swc_cached" -version = "1.0.0" +name = "serde_with" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b6a5ef4cfec51d3fa30b73600f206453a37fc30cf1141e4644a57b1ed88616" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ - "ahash", - "anyhow", - "dashmap", - "once_cell", - "regex", + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.7.0", "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", ] [[package]] -name = "swc_common" -version = "5.0.0" +name = "serde_with_macros" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a521e8120dc0401580864a643b5bffa035c29fc3fc41697c972743d4f008ed22" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "ast_node", - "better_scoped_tls", - "cfg-if", - "either", - "from_variant", - "new_debug_unreachable", - "num-bigint", - "once_cell", - "rustc-hash", - "serde", - "siphasher", - "swc_allocator", - "swc_atoms", - "swc_eq_ignore_macros", - "swc_visit", - "tracing", - "unicode-width", - "url", + "darling", + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] -name = "swc_config" -version = "1.0.0" +name = "serialize-to-javascript" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa30931f9b26af8edcb4cce605909d15dcfd7577220b22c50a2988f2a53c4c1" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" dependencies = [ - "anyhow", - "indexmap 2.7.0", "serde", "serde_json", - "swc_cached", - "swc_config_macro", + "serialize-to-javascript-impl", ] [[package]] -name = "swc_config_macro" -version = "1.0.0" +name = "serialize-to-javascript-impl" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2ebd37ef52a8555c8c9be78b694d64adcb5e3bc16c928f030d82f1d65fac57" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ "proc-macro2", "quote", - "swc_macros_common", - "syn 2.0.95", + "syn 1.0.109", ] [[package]] -name = "swc_core" -version = "9.0.6" +name = "servo_arc" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92218aa213e8cf7d25b93594eb1517290c114eba9fcc54c3c844162438db8f2b" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" dependencies = [ - "swc_allocator", - "swc_atoms", - "swc_bundler", - "swc_common", - "swc_ecma_ast", - "swc_ecma_codegen", - "swc_ecma_loader", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_react", - "swc_ecma_transforms_typescript", - "swc_ecma_visit", - "vergen", + "nodrop", + "stable_deref_trait", ] [[package]] -name = "swc_ecma_ast" -version = "5.0.1" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82f448db2d1c52ffd2bd3788d89cafd8b5a75b97f0dc8aae00874dda2647f6b6" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "bitflags 2.6.0", - "is-macro", - "num-bigint", - "phf 0.11.2", - "scoped-tls", - "string_enum", - "swc_atoms", - "swc_common", - "swc_visit", - "unicode-id-start", + "cfg-if", + "cpufeatures", + "digest", ] [[package]] -name = "swc_ecma_codegen" -version = "5.0.1" +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f93692de35a77d920ce8d96a46217735e5f86bf42f76cc8f1a60628c347c4c8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "memchr", - "num-bigint", - "once_cell", - "regex", - "serde", - "sourcemap", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_codegen_macros", - "tracing", + "cfg-if", + "cpufeatures", + "digest", ] [[package]] -name = "swc_ecma_codegen_macros" -version = "1.0.0" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9a42f479a6475647e248fa9750982c87cd985e19d1016a1fc18a70682305d1" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.95", + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "simd-abstraction" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +dependencies = [ + "outref 0.1.0", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", ] [[package]] -name = "swc_ecma_loader" -version = "5.0.0" +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smawk" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a19b132079bfcd19d6fdabce7e55ece93a30787f3b8684c8646ddaf2237812d" -dependencies = [ - "anyhow", - "pathdiff", - "serde", - "swc_atoms", - "swc_common", - "tracing", -] +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] -name = "swc_ecma_parser" -version = "6.0.1" +name = "socket2" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92ea41c3c3f0fe77991fee96b91bc4c7af43b55fdb6564fdc31b8c2d0b1e220" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ - "either", - "new_debug_unreachable", - "num-bigint", - "num-traits", - "phf 0.11.2", - "serde", - "smallvec", - "smartstring", - "stacker", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "tracing", - "typed-arena", + "libc", + "windows-sys 0.52.0", ] [[package]] -name = "swc_ecma_transforms_base" -version = "6.0.2" +name = "softbuffer" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31557485025a2fd1f833d63601c53010857e45633f44bcc87510f3578bde0c5" +checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" dependencies = [ - "better_scoped_tls", - "bitflags 2.6.0", - "indexmap 2.7.0", - "once_cell", - "phf 0.11.2", - "rustc-hash", - "serde", - "smallvec", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_utils", - "swc_ecma_visit", - "tracing", + "bytemuck", + "cfg_aliases", + "core-graphics 0.24.0", + "foreign-types", + "js-sys", + "log", + "objc2", + "objc2-foundation", + "objc2-quartz-core", + "raw-window-handle", + "redox_syscall", + "wasm-bindgen", + "web-sys", + "windows-sys 0.59.0", ] [[package]] -name = "swc_ecma_transforms_macros" -version = "1.0.0" +name = "soup3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6845dfb88569f3e8cd05901505916a8ebe98be3922f94769ca49f84e8ccec8f7" +checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.95", + "futures-channel", + "gio", + "glib", + "libc", + "soup3-sys", ] [[package]] -name = "swc_ecma_transforms_optimization" -version = "6.0.0" +name = "soup3-sys" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350a4965abfada7d5b23b3140896652acc11e110ac042a160bcea5bf8b08d367" +checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" dependencies = [ - "dashmap", - "indexmap 2.7.0", - "once_cell", - "petgraph", - "rustc-hash", - "serde_json", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_fast_graph", - "tracing", + "gio-sys", + "glib-sys", + "gobject-sys", + "libc", + "system-deps", ] [[package]] -name = "swc_ecma_transforms_react" -version = "6.0.0" +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cabf9375cfb71fc0e3d98e07e6fca39a18daa23d4878d8d2daa4c2b6c07b379" -dependencies = [ - "base64 0.21.7", - "dashmap", - "indexmap 2.7.0", - "once_cell", - "serde", - "sha1", - "string_enum", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_macros", - "swc_ecma_utils", - "swc_ecma_visit", -] +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] -name = "swc_ecma_transforms_typescript" -version = "6.0.0" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77346c37397fb238f991d6dccc027881caca539628e9a6c629299c7b94bdb08a" -dependencies = [ - "ryu-js", - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_react", - "swc_ecma_utils", - "swc_ecma_visit", -] +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "swc_ecma_utils" -version = "6.0.0" +name = "str_indices" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527fad9bdb16883782d55291fd3330925b3572f512ef89b3d92a29e2f713fe4f" -dependencies = [ - "indexmap 2.7.0", - "num_cpus", - "once_cell", - "rustc-hash", - "ryu-js", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_visit", - "tracing", - "unicode-id", -] +checksum = "d08889ec5408683408db66ad89e0e1f93dff55c73a4ccc71c427d5b277ee47e6" [[package]] -name = "swc_ecma_visit" -version = "5.0.0" +name = "string_cache" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04c06c1805bda18c27165560f1617a57453feb9fb0638d90839053641af42d4" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" dependencies = [ "new_debug_unreachable", - "num-bigint", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_visit", - "tracing", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", + "serde", ] [[package]] -name = "swc_eq_ignore_macros" -version = "1.0.0" +name = "string_cache_codegen" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96e15288bf385ab85eb83cff7f9e2d834348da58d0a31b33bdb572e66ee413e" +checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", "proc-macro2", "quote", - "syn 2.0.95", ] [[package]] -name = "swc_fast_graph" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22e0a0478b1b06610453a97c8371cafa742e371a79aff860ccfbabe1ab160a7" +name = "string_wizard" +version = "0.0.25" +source = "git+https://github.com/rolldown/rolldown.git?tag=v1.0.0-beta.1#713b181e666610284c820ae53b359299e149c1b0" dependencies = [ - "indexmap 2.7.0", - "petgraph", + "oxc_index", + "oxc_sourcemap", "rustc-hash", - "swc_common", -] - -[[package]] -name = "swc_graph_analyzer" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79b9841af596d2ddb37e56defca81387b60a14863e251cede839d1e349e6209d" -dependencies = [ - "auto_impl", - "petgraph", - "swc_common", - "swc_fast_graph", - "tracing", ] [[package]] -name = "swc_macros_common" -version = "1.0.0" +name = "strsim" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a509f56fca05b39ba6c15f3e58636c3924c78347d63853632ed2ffcb6f5a0ac7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "swc_visit" -version = "2.0.0" +name = "sugar_path" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9138b6a36bbe76dd6753c4c0794f7e26480ea757bee499738bedbbb3ae3ec5f3" -dependencies = [ - "either", - "new_debug_unreachable", -] +checksum = "8230d5b8a65a6d4d4a7e5ee8dbdd9312ba447a8b8329689a390a0945d69b57ce" [[package]] name = "swift-rs" @@ -4400,7 +5077,7 @@ dependencies = [ "json-patch", "quote", "schemars", - "semver 1.0.24", + "semver", "serde", "serde_json", "tauri-codegen", @@ -4424,7 +5101,7 @@ dependencies = [ "png", "proc-macro2", "quote", - "semver 1.0.24", + "semver", "serde", "serde_json", "sha2", @@ -4566,7 +5243,7 @@ dependencies = [ "quote", "regex", "schemars", - "semver 1.0.24", + "semver", "serde", "serde-untagged", "serde_json", @@ -4615,6 +5292,17 @@ dependencies = [ "utf-8", ] +[[package]] +name = "textwrap" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width 0.1.14", +] + [[package]] name = "thin-slice" version = "0.1.1" @@ -4661,6 +5349,16 @@ dependencies = [ "syn 2.0.95", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "tiff" version = "0.9.1" @@ -4713,6 +5411,21 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tinyvec" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "tokio" version = "1.43.0" @@ -4725,9 +5438,21 @@ dependencies = [ "mio", "pin-project-lite", "socket2", + "tokio-macros", "windows-sys 0.52.0", ] +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.95", +] + [[package]] name = "tokio-util" version = "0.7.13" @@ -4860,6 +5585,17 @@ dependencies = [ "syn 2.0.95", ] +[[package]] +name = "tracing-chrome" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724" +dependencies = [ + "serde_json", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-core" version = "0.1.33" @@ -4867,6 +5603,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", ] [[package]] @@ -4890,16 +5656,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "triomphe" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" -dependencies = [ - "serde", - "stable_deref_trait", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -4907,10 +5663,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "typed-arena" -version = "2.0.2" +name = "typedmap" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" +checksum = "bb0a883093b9d4733a7a5ceb14b05bc2c51c21d8bbf1fd3d9de72a0821f4b910" +dependencies = [ + "dashmap 5.5.3", +] [[package]] name = "typeid" @@ -4965,12 +5724,6 @@ dependencies = [ "unic-common", ] -[[package]] -name = "unicode-id" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561" - [[package]] name = "unicode-id-start" version = "1.3.1" @@ -4983,6 +5736,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -4995,6 +5754,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "url" version = "2.5.4" @@ -5007,6 +5772,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "urlpattern" version = "0.3.0" @@ -5048,29 +5819,10 @@ dependencies = [ ] [[package]] -name = "vergen" -version = "9.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f25fc8f8f05df455c7941e87f093ad22522a9ff33d7a027774815acf6f0639" -dependencies = [ - "anyhow", - "cargo_metadata", - "derive_builder", - "regex", - "rustversion", - "vergen-lib", -] - -[[package]] -name = "vergen-lib" -version = "0.1.5" +name = "valuable" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c767e6751c09fc85cde58722cf2f1007e80e4c8d5a4321fc90d83dc54ca147" -dependencies = [ - "anyhow", - "derive_builder", - "rustversion", -] +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "version-compare" @@ -5084,6 +5836,27 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vfs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654cd097e182a71dbf899178e6b5662c2157dd0b8afd5975de18008f6fc173d1" +dependencies = [ + "filetime", +] + +[[package]] +name = "vlq" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65dd7eed29412da847b0f78bcec0ac98588165988a8cfe41d4ea1d429f8ccfff" + +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + [[package]] name = "vswhom" version = "0.1.0" @@ -5333,7 +6106,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -5846,6 +6619,18 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yoke" version = "0.7.5" diff --git a/Cargo.toml b/Cargo.toml index 27248020..e5536841 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,13 +13,16 @@ repository = "https://github.com/CSCI-SHU-410-SE-Project/Deskulpt" [workspace.dependencies] anyhow = "1.0.87" bincode = "1.3.3" -path-clean = "1.0.1" +dunce = "1.0.5" objc2 = "0.5.2" once_cell = "1.20.2" open = "5.3.1" +oxc = "0.43.0" +path-clean = "1.0.1" +rolldown = { git = "https://github.com/rolldown/rolldown.git", tag = "v1.0.0-beta.1" } +rolldown_common = { git = "https://github.com/rolldown/rolldown.git", tag = "v1.0.0-beta.1" } serde = "1.0.210" serde_json = "1.0.128" -swc_core = "9.0.6" tauri = "2.2.0" tauri-build = "2.0.4" tauri-plugin-clipboard-manager = "2.2.0" diff --git a/crates/deskulpt-core/Cargo.toml b/crates/deskulpt-core/Cargo.toml index 2660b8c2..522d38cd 100644 --- a/crates/deskulpt-core/Cargo.toml +++ b/crates/deskulpt-core/Cargo.toml @@ -11,12 +11,15 @@ repository = { workspace = true } [dependencies] anyhow = { workspace = true } bincode = { workspace = true } +dunce = { workspace = true } once_cell = { workspace = true } open = { workspace = true } +oxc = { workspace = true } path-clean = { workspace = true } +rolldown = { workspace = true } +rolldown_common = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } -swc_core = { workspace = true, features = ["__common", "bundler", "ecma_ast", "ecma_codegen", "ecma_loader", "ecma_parser", "ecma_transforms_react", "ecma_transforms_typescript", "ecma_visit"] } tauri = { workspace = true, features = ["tray-icon"] } tauri-plugin-global-shortcut = { workspace = true } tempfile = { workspace = true } diff --git a/crates/deskulpt-core/src/bundler/alias.rs b/crates/deskulpt-core/src/bundler/alias.rs new file mode 100644 index 00000000..81c44536 --- /dev/null +++ b/crates/deskulpt-core/src/bundler/alias.rs @@ -0,0 +1,60 @@ +//! Deskulpt alias plugin for rolldown. + +use std::borrow::Cow; +use std::collections::HashMap; +use std::sync::Arc; + +use rolldown::plugin::{ + HookResolveIdArgs, HookResolveIdOutput, HookResolveIdReturn, Plugin, PluginContext, + PluginContextResolveOptions, +}; + +/// Deskulpt alias plugin. +/// +/// This is a simplified version of the rolldown built-in alias plugin since we +/// only need a subset of its functionalities. +/// +/// Based on the given alias mapping, this plugin will replace the original +/// imports with the aliased imports. Note that the aliased imports need to be +/// either resolvable or externalized to avoid bundling errors. +#[derive(Debug)] +pub struct AliasPlugin( + /// The alias mapping from original imports to aliased imports. + pub HashMap, +); + +impl Plugin for AliasPlugin { + fn name(&self) -> Cow<'static, str> { + Cow::Borrowed("deskulpt:alias") + } + + async fn resolve_id( + &self, + ctx: &PluginContext, + args: &HookResolveIdArgs<'_>, + ) -> HookResolveIdReturn { + let importee = args.specifier; + let update_id = match self.0.get(importee) { + Some(alias) => alias, + None => return Ok(None), + }; + + Ok(ctx + .resolve( + update_id, + None, + Some(PluginContextResolveOptions { + import_kind: args.kind, + skip_self: true, + custom: Arc::clone(&args.custom), + }), + ) + .await? + .map(|resolved_id| { + Some(HookResolveIdOutput { + id: resolved_id.id.to_string(), + ..Default::default() + }) + })?) + } +} diff --git a/crates/deskulpt-core/src/bundler/common.rs b/crates/deskulpt-core/src/bundler/common.rs deleted file mode 100644 index f001b8e4..00000000 --- a/crates/deskulpt-core/src/bundler/common.rs +++ /dev/null @@ -1,259 +0,0 @@ -//! This module contains common bundling routines and utilities. - -use std::fs::File; -use std::io::{Read, Write}; -use std::path::{Component, Path, PathBuf}; - -use anyhow::{bail, Context, Result}; -use path_clean::PathClean; -use swc_core::bundler::{Hook, Load, ModuleData, ModuleRecord, Resolve}; -use swc_core::common::comments::SingleThreadedComments; -use swc_core::common::errors::Handler; -use swc_core::common::sync::Lrc; -use swc_core::common::{FileName, Mark, SourceMap, Span}; -use swc_core::ecma::ast::{KeyValueProp, Module, Program}; -use swc_core::ecma::codegen::text_writer::{JsWriter, WriteJs}; -use swc_core::ecma::codegen::Emitter; -use swc_core::ecma::loader::resolve::Resolution; -use swc_core::ecma::parser::{parse_file_as_module, EsSyntax, Syntax, TsSyntax}; -use swc_core::ecma::transforms::react::react; -use swc_core::ecma::transforms::typescript::typescript; -use tempfile::NamedTempFile; - -/// The file extensions to try when an import is given without an extension -static EXTENSIONS: &[&str] = &["js", "jsx", "ts", "tsx"]; - -pub trait ModuleExt { - /// Emit a module into a buffer. - fn emit_to_buf(&self, cm: Lrc, buf: W); -} - -impl ModuleExt for Module { - fn emit_to_buf(&self, cm: Lrc, buf: W) { - let wr = JsWriter::new(cm.clone(), "\n", buf, None); - let mut emitter = Emitter { - cfg: swc_core::ecma::codegen::Config::default().with_minify(true), - cm: cm.clone(), - comments: None, - wr: Box::new(wr) as Box, - }; - emitter.emit_module(self).unwrap(); - } -} - -/// Deskulpt-customized path loader for SWC bundler. -/// -/// It is in charge of parsing the source file into a module AST. TypeScript -/// types are stripped off and JSX syntax is transformed during the parsing. -pub struct PathLoader(pub Lrc); - -impl Load for PathLoader { - fn load(&self, file: &FileName) -> Result { - let path = match file { - FileName::Real(path) => path, - _ => unreachable!(), - }; - let fm = self.0.load_file(path)?; - - let syntax = match path.extension() { - Some(ext) if ext == "ts" || ext == "tsx" => Syntax::Typescript(TsSyntax { - tsx: true, - ..Default::default() - }), - _ => Syntax::Es(EsSyntax { - jsx: true, - ..Default::default() - }), - }; - - // Parse the file as a module - match parse_file_as_module(&fm, syntax, Default::default(), None, &mut vec![]) { - Ok(module) => { - let unresolved_mark = Mark::new(); - let top_level_mark = Mark::new(); - - // Strip off TypeScript types - let ts_transform = - typescript::typescript(Default::default(), unresolved_mark, top_level_mark); - - // We use the automatic JSX transform (in contrast to the classic - // transform) here so that there is no need to bring anything into scope - // just for syntax which could be unused; to enable the `css` prop from - // Emotion, we specify the import source to be `@deskulpt-test/emotion`, - // so that the JSX runtime utilities will be automatically imported from - // `@deskulpt-test/emotion/jsx-runtime` - let jsx_transform = react::( - self.0.clone(), - None, - swc_core::ecma::transforms::react::Options { - runtime: Some(swc_core::ecma::transforms::react::Runtime::Automatic), - import_source: Some("@deskulpt-test/emotion".to_string()), - ..Default::default() - }, - top_level_mark, - unresolved_mark, - ); - - match Program::Module(module) - .apply(ts_transform) - .apply(jsx_transform) - .module() - { - Some(module) => Ok(ModuleData { - fm, - module, - helpers: Default::default(), - }), - None => bail!("Failed to parse the file as a module"), - } - }, - Err(err) => { - // The error handler requires a destination for the emitter writer that - // implements `Write`; a buffer implements `Write` but its borrowed - // reference does not, causing the handler to take ownership of the - // buffer, making us unable to read from it later (and the buffer is - // made private in the handler); the workaround is to use a temporary - // file and access its content later by its path (we require the file to - // live only for a short time so this is relatively safe) - let mut err_msg = String::new(); - { - let context = format!( - "Parsing error occurred but failed to emit the formatted error analysis; \ - falling back to raw version: {err:?}" - ); - let buffer = NamedTempFile::new().context(context.clone())?; - let buffer_path = buffer.path().to_path_buf(); - let handler = - Handler::with_emitter_writer(Box::new(buffer), Some(self.0.clone())); - err.into_diagnostic(&handler).emit(); - File::open(buffer_path) - .context(context.clone())? - .read_to_string(&mut err_msg) - .context(context.clone())?; - } - bail!(err_msg); - }, - } - } -} - -/// The Deskulpt-customized path resolver for SWC bundler. -/// -/// It is in charge of resolving the module specifiers in the import statements. -/// Note that module specifiers that are ignored in the first place will not go -/// through this resolver at all. -/// -/// This path resolver intends to resolve the following types of imports: -/// -/// - Extension-less relative paths, e.g., `import foo from "./foo"` -/// - Relative paths, e.g., `import foo from "./foo.js"` -/// -/// It is not designed to resolve the following types of imports: -/// -/// - Absolute path imports, e.g., `import foo from "/foo"` -/// - URL imports, e.g., `import foo from "https://example.com/foo"` -/// - Node resolution imports, e.g., `import globals from "globals"` -/// - Relative imports that go beyond the root -pub struct PathResolver(pub PathBuf); - -impl PathResolver { - /// Helper function for resolving a path by treating it as a file. - /// - /// If `path` refers to a file then it is directly returned. Otherwise, - /// `path` with each extension in [`EXTENSIONS`] is tried in order. - fn resolve_as_file(&self, path: &Path) -> Result { - if path.is_file() { - // Early return if `path` is directly a file - return Ok(path.to_path_buf()); - } - - if let Some(name) = path.file_name() { - let mut ext_path = path.to_path_buf(); - let name = name.to_string_lossy(); - - // Try all extensions we support for importing - for ext in EXTENSIONS { - ext_path.set_file_name(format!("{name}.{ext}")); - if ext_path.is_file() { - return Ok(ext_path); - } - } - } - bail!("File resolution failed") - } - - /// Helper function for the [`Resolve`] trait. - /// - /// Note that errors emitted here do not need to provide information about - /// `base` and `module_specifier` because the call to this function - /// should have already been wrapped in an SWC context that provides - /// this information. - fn resolve_filename(&self, base: &FileName, module_specifier: &str) -> Result { - let base = match base { - FileName::Real(v) => v, - _ => bail!("Invalid base for resolution: '{base}'"), - }; - - // Determine the base directory (or `base` itself if already a directory) - let base_dir = if base.is_file() { - // If failed to get the parent directory then use the cwd - base.parent().unwrap_or_else(|| Path::new(".")) - } else { - base - }; - - let spec_path = Path::new(module_specifier); - // Absolute paths are not supported - if spec_path.is_absolute() { - bail!("Absolute imports are not supported; use relative imports instead"); - } - - // If not absolute, then it should be either relative, a node module, or a URL; - // we support only relative import among these types - let mut components = spec_path.components(); - if let Some(Component::CurDir | Component::ParentDir) = components.next() { - let path = base_dir.join(module_specifier).clean(); - - // Try to resolve by treating `path` as a file first, otherwise try by - // looking for an `index` file under `path` as a directory - let resolved_path = self - .resolve_as_file(&path) - .or_else(|_| self.resolve_as_file(&path.join("index")))?; - - // Reject if the resolved path goes beyond the root - if !resolved_path.starts_with(&self.0) { - bail!( - "Relative imports should not go beyond the root '{}'", - self.0.display(), - ); - } - return Ok(FileName::Real(resolved_path)); - } - - bail!( - "node_modules imports should be explicitly included in package.json to avoid being \ - bundled at runtime; URL imports are not supported, one should vendor its source to \ - local and use a relative import instead" - ) - } -} - -impl Resolve for PathResolver { - fn resolve(&self, base: &FileName, module_specifier: &str) -> Result { - self.resolve_filename(base, module_specifier) - .map(|filename| Resolution { - filename, - slug: None, - }) - } -} - -/// A no-op hook for SWC bundler. -pub struct NoopHook; - -impl Hook for NoopHook { - fn get_import_meta_props(&self, _: Span, _: &ModuleRecord) -> Result> { - // XXX: figure out a better way than panicking - unimplemented!(); - } -} diff --git a/crates/deskulpt-core/src/bundler/mod.rs b/crates/deskulpt-core/src/bundler/mod.rs index 47687114..ede651c2 100644 --- a/crates/deskulpt-core/src/bundler/mod.rs +++ b/crates/deskulpt-core/src/bundler/mod.rs @@ -1,140 +1,127 @@ //! Bundler for Deskulpt widgets. -use std::collections::{HashMap, HashSet}; -use std::path::PathBuf; +mod alias; -use anyhow::{bail, Result}; -use common::{ModuleExt, NoopHook, PathLoader, PathResolver}; -use swc_core::atoms::Atom; -use swc_core::bundler::Bundler; -use swc_core::common::sync::Lrc; -use swc_core::common::{FileName, FilePathMapping, Globals, SourceMap, GLOBALS}; -use swc_core::ecma::ast::{Module, Program}; -use swc_core::ecma::visit::visit_mut_pass; +use std::path::PathBuf; +use std::sync::Arc; -mod common; -mod transforms; +use alias::AliasPlugin; +use anyhow::{anyhow, bail, Result}; +use oxc::transformer::{JsxOptions, JsxRuntime}; +use rolldown::{Bundler, BundlerOptions, Jsx, OutputFormat, Platform}; +use rolldown_common::Output; -/// The Deskulpt widget bundler. -pub struct WidgetBundler { +/// Builder for the Deskulpt widget bundler. +pub struct WidgetBundlerBuilder { /// Absolute path to the widget directory. root: PathBuf, - /// Absolute path to the entry file of the widget. - /// - /// This file must be within the `root` directory and share the exact same - /// path prefix. - entry: PathBuf, + /// Entry file relative to the widget directory. + entry: String, /// The base URL to resolve local path imports. base_url: String, /// URL to the widget APIs blob. apis_blob_url: String, - /// External dependencies. - external_deps: HashSet, } -impl WidgetBundler { - /// Create a new bundler instance. - /// - /// Note that `root` and `entry` must be absolute paths, and `entry` must - /// be within the `root` directory and share the exact same path prefix. - pub fn new( - root: PathBuf, - entry: PathBuf, - base_url: String, - apis_blob_url: String, - external_deps: HashSet, - ) -> Self { +impl WidgetBundlerBuilder { + /// Create a new widget bundler builder instance. + pub fn new(root: PathBuf, entry: String, base_url: String, apis_blob_url: String) -> Self { Self { root, entry, base_url, apis_blob_url, - external_deps, } } - /// Bundle the widget into a raw module. - /// - /// This does not apply any AST transforms and also leaves imports of - /// default and external dependencies as is. - fn bundle_into_raw_module(&self, globals: &Globals, cm: Lrc) -> Result { - if !self.entry.exists() { - bail!("Entry point does not exist: '{}'", self.entry.display()); - } - - // Get the list of external modules not to resolve; this should include default - // dependencies and (if any) external dependencies obtained from the dependency - // map - let external_modules = { - let mut dependencies = HashSet::from([ - Atom::from("@deskulpt-test/apis"), - Atom::from("@deskulpt-test/emotion/jsx-runtime"), - Atom::from("@deskulpt-test/react"), - Atom::from("@deskulpt-test/ui"), - ]); - dependencies.extend(self.external_deps.iter().map(|k| Atom::from(k.clone()))); - Vec::from_iter(dependencies) - }; + /// Build the Deskulpt widget bundler. + pub fn build(self) -> WidgetBundler { + let jsx_runtime_url = self.base_url.clone() + "/.scripts/jsx-runtime.js"; + let raw_apis_url = self.base_url.clone() + "/.scripts/raw-apis.js"; + let react_url = self.base_url.clone() + "/.scripts/react.js"; + let ui_url = self.base_url.clone() + "/.scripts/ui.js"; - // The root of the path resolver will be used to determine whether a resolved - // import goes beyond the root; the comparison is done via path prefixes so - // we must be consistent with how SWC resolves paths, see: - // https://github.com/swc-project/swc/blob/f584ef76d75e86da15d0725ac94be35a88a1c946/crates/swc_bundler/src/bundler/mod.rs#L159-L166 - #[cfg(target_os = "windows")] - let path_resolver_root = self.root.canonicalize()?; - #[cfg(not(target_os = "windows"))] - let path_resolver_root = self.root.to_path_buf(); - - let mut bundler = Bundler::new( - globals, - cm.clone(), - PathLoader(cm.clone()), - PathResolver(path_resolver_root), - // Do not resolve the external modules - swc_core::bundler::Config { - external_modules, + let bundler_options = BundlerOptions { + input: Some(vec![self.entry.into()]), + cwd: Some(self.root), + format: Some(OutputFormat::Esm), + platform: Some(Platform::Browser), + minify: Some(true), + // Use automatic runtime for JSX transforms, which will refer to + // `@deskulpt-test/emotion/jsx-runtime` + jsx: Some(Jsx::Enable(JsxOptions { + runtime: JsxRuntime::Automatic, + import_source: Some("@deskulpt-test/emotion".to_string()), ..Default::default() - }, - Box::new(NoopHook), - ); + })), + // Externalize default dependencies available at runtime + external: Some( + vec![ + jsx_runtime_url.clone(), + raw_apis_url.clone(), + react_url.clone(), + ui_url.clone(), + self.apis_blob_url.clone(), + ] + .into(), + ), + ..Default::default() + }; - // SWC bundler requires a map of entries to bundle; we provide a single entry - // point and expect there to be only one generated bundle; we use the target - // path as the key for convenience - let mut entries = HashMap::new(); - entries.insert( - self.entry.to_string_lossy().to_string(), - FileName::Real(self.entry.to_path_buf()), + // Alias the default dependencies to URLs resolvable at runtime + let alias_plugin = AliasPlugin( + [ + ( + "@deskulpt-test/emotion/jsx-runtime".to_string(), + jsx_runtime_url, + ), + ("@deskulpt-test/raw-apis".to_string(), raw_apis_url), + ("@deskulpt-test/react".to_string(), react_url), + ("@deskulpt-test/ui".to_string(), ui_url), + ("@deskulpt-test/apis".to_string(), self.apis_blob_url), + ] + .into(), ); - let mut bundles = bundler.bundle(entries)?; - if bundles.len() != 1 { - bail!("Expected a single bundle, got {}", bundles.len()); + WidgetBundler { + bundler: Bundler::with_plugins(bundler_options, vec![Arc::new(alias_plugin)]), } - Ok(bundles.pop().unwrap().module) } +} - /// Bundle the widget into a single ESM code string. - pub fn bundle(&self) -> Result { - let globals = Globals::default(); - let cm = Lrc::new(SourceMap::new(FilePathMapping::empty())); +/// The Deskulpt widget bundler. +pub struct WidgetBundler { + bundler: Bundler, +} - let module = self.bundle_into_raw_module(&globals, cm.clone())?; - let code = GLOBALS.set(&globals, || { - // Redirect `@deskulpt-test/*` imports - let import_renamer = visit_mut_pass(transforms::ImportRenamer { - base_url: self.base_url.clone(), - apis_blob_url: self.apis_blob_url.clone(), - }); - let program = Program::Module(module); - let module = program.apply(import_renamer).expect_module(); +impl WidgetBundler { + /// Bundle the widget into a single ESM code string. + pub async fn bundle(&mut self) -> Result { + let result = self.bundler.generate().await.map_err(|e| { + anyhow!(e + .into_vec() + .iter() + .map(|diagnostic| diagnostic.to_diagnostic().to_string()) + .collect::>() + .join("\n")) + })?; - // Emit the bundled module as string into a buffer - let mut buf = vec![]; - module.emit_to_buf(cm.clone(), &mut buf); - String::from_utf8_lossy(&buf).to_string() - }); + // We have supplied a single entry file, so we expect a single output + // bundle; this can be broken if widget code contains e.g. dynamic + // imports, which we do not allow + if result.assets.len() != 1 { + bail!( + "Expected 1 bundled output, found {}; ensure that widget code does not contain \ + e.g. dynamic imports that may result in extra chunks", + result.assets.len() + ); + } + let output = &result.assets[0]; + let code = match output { + Output::Asset(asset) => asset.source.clone().try_into_string()?, + Output::Chunk(chunk) => chunk.code.clone(), + }; Ok(code) } } diff --git a/crates/deskulpt-core/src/bundler/transforms.rs b/crates/deskulpt-core/src/bundler/transforms.rs deleted file mode 100644 index ae511232..00000000 --- a/crates/deskulpt-core/src/bundler/transforms.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! This module implements custom AST transforms. - -use swc_core::ecma::ast::ImportDecl; -use swc_core::ecma::visit::{noop_visit_mut_type, VisitMut, VisitMutWith}; - -/// An AST transformer that redirects `@deskulpt-test/*` imports. -pub struct ImportRenamer { - /// The base URL to resolve local path imports. - pub base_url: String, - /// The blob URL to redirect `@deskulpt-test/apis` imports to. - pub apis_blob_url: String, -} - -impl VisitMut for ImportRenamer { - noop_visit_mut_type!(); - - fn visit_mut_import_decl(&mut self, n: &mut ImportDecl) { - n.visit_mut_children_with(self); - - if n.src.value.as_str() == "@deskulpt-test/apis" { - n.src = Box::new(self.apis_blob_url.clone().into()); - } else if n.src.value.as_str() == "@deskulpt-test/emotion/jsx-runtime" { - n.src = Box::new(format!("{}/.scripts/jsx-runtime.js", self.base_url).into()); - } else if n.src.value.as_str() == "@deskulpt-test/raw-apis" { - n.src = Box::new(format!("{}/.scripts/raw-apis.js", self.base_url).into()); - } else if n.src.value.as_str() == "@deskulpt-test/react" { - n.src = Box::new(format!("{}/.scripts/react.js", self.base_url).into()); - } else if n.src.value.as_str() == "@deskulpt-test/ui" { - n.src = Box::new(format!("{}/.scripts/ui.js", self.base_url).into()); - } - } -} diff --git a/crates/deskulpt-core/src/commands/bundle_widget.rs b/crates/deskulpt-core/src/commands/bundle_widget.rs index 5a7ce3f8..a3d27e51 100644 --- a/crates/deskulpt-core/src/commands/bundle_widget.rs +++ b/crates/deskulpt-core/src/commands/bundle_widget.rs @@ -2,7 +2,7 @@ use anyhow::Context; use tauri::{command, AppHandle, Runtime}; use super::error::{cmderr, CmdResult}; -use crate::bundler::WidgetBundler; +use crate::bundler::WidgetBundlerBuilder; use crate::path::PathExt; use crate::states::StatesExtWidgetCollection; @@ -23,19 +23,19 @@ pub async fn bundle_widget( let widgets_dir = app_handle.widgets_dir(); let widget_dir = widgets_dir.join(&widget_id); - let bundler = app_handle.with_widget_collection(|collection| { + let mut bundler = app_handle.with_widget_collection(|collection| { collection .get(&widget_id) .ok_or_else(|| cmderr!("Widget (id={}) does not exist in the collection", widget_id))? .as_ref() .map(|config| { - WidgetBundler::new( + let builder = WidgetBundlerBuilder::new( widget_dir.to_path_buf(), - widget_dir.join(config.entry()), + config.entry(), base_url, apis_blob_url, - config.external_deps(), - ) + ); + builder.build() }) // Propagate the configuration error message .map_err(|e| cmderr!(e.to_string())) @@ -43,6 +43,7 @@ pub async fn bundle_widget( let code = bundler .bundle() + .await .context(format!("Failed to bundle widget (id={})", widget_id))?; Ok(code) } diff --git a/crates/deskulpt-core/src/config.rs b/crates/deskulpt-core/src/config.rs index 3cd01292..6c332be5 100644 --- a/crates/deskulpt-core/src/config.rs +++ b/crates/deskulpt-core/src/config.rs @@ -85,8 +85,8 @@ impl WidgetConfig { } /// Get the entry file of the widget. - pub fn entry(&self) -> &str { - &self.entry + pub fn entry(&self) -> String { + self.entry.to_string() } /// Get the set of external dependencies of the widget. diff --git a/crates/deskulpt-core/src/lib.rs b/crates/deskulpt-core/src/lib.rs index 8b6f6e33..f437f70f 100644 --- a/crates/deskulpt-core/src/lib.rs +++ b/crates/deskulpt-core/src/lib.rs @@ -4,7 +4,6 @@ html_favicon_url = "https://github.com/CSCI-SHU-410-SE-Project/Deskulpt/raw/main/src/public/deskulpt.svg" )] -// pub mod apis; mod bundler; pub mod commands; mod config; diff --git a/crates/deskulpt-core/src/path.rs b/crates/deskulpt-core/src/path.rs index 8c4bf13b..9dd26f4d 100644 --- a/crates/deskulpt-core/src/path.rs +++ b/crates/deskulpt-core/src/path.rs @@ -23,6 +23,7 @@ pub trait PathExt: Manager { fn init_widgets_dir(&self) -> Result<()> { let widgets_dir = WIDGETS_DIR.get_or_init(|| { let resource_dir = self.path().resource_dir().unwrap(); + let resource_dir = dunce::simplified(&resource_dir); Arc::new(resource_dir.join("widgets")) });