diff --git a/Cargo.lock b/Cargo.lock index 6ba38cc..992b439 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ab_glyph" @@ -33,6 +33,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aead" version = "0.5.2" @@ -65,14 +71,29 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "android-activity" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.5.0", + "bitflags 2.8.0", "cc", "cesu8", "jni", @@ -83,7 +104,7 @@ dependencies = [ "ndk-context", "ndk-sys", "num_enum", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -169,11 +190,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" dependencies = [ "clipboard-win", + "core-graphics", + "image", "log", - "objc2 0.5.2", + "objc2", "objc2-app-kit", "objc2-foundation", "parking_lot", + "windows-sys 0.48.0", "x11rb", ] @@ -195,12 +219,6 @@ dependencies = [ "password-hash", ] -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - [[package]] name = "async-attributes" version = "1.1.2" @@ -234,6 +252,22 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "async-compression" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "zstd", + "zstd-safe", +] + [[package]] name = "async-executor" version = "1.12.0" @@ -362,7 +396,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -404,7 +438,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.7.4", "object", "rustc-demangle", ] @@ -429,9 +463,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "blake2" @@ -451,32 +485,13 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" -dependencies = [ - "objc-sys", -] - -[[package]] -name = "block2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" -dependencies = [ - "block-sys", - "objc2 0.4.1", -] - [[package]] name = "block2" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2 0.5.2", + "objc2", ] [[package]] @@ -512,10 +527,31 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", "syn_derive", ] +[[package]] +name = "brotli" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bs58" version = "0.5.1" @@ -533,22 +569,22 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.16.3" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" +checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -569,44 +605,18 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" -[[package]] -name = "calloop" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" -dependencies = [ - "bitflags 2.5.0", - "log", - "polling 3.7.2", - "rustix 0.38.34", - "slab", - "thiserror", -] - [[package]] name = "calloop" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "log", "polling 3.7.2", "rustix 0.38.34", "slab", - "thiserror", -] - -[[package]] -name = "calloop-wayland-source" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" -dependencies = [ - "calloop 0.12.4", - "rustix 0.38.34", - "wayland-backend", - "wayland-client", + "thiserror 1.0.61", ] [[package]] @@ -615,7 +625,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" dependencies = [ - "calloop 0.13.0", + "calloop", "rustix 0.38.34", "wayland-backend", "wayland-client", @@ -650,7 +660,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -734,7 +744,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01c631c2cf4b95746cf065f732219ec0f2eb1497cd4c7fe07cb336ddf0d7c503" dependencies = [ "js-sys", - "thiserror", + "thiserror 1.0.61", "wasm-bindgen", "wasm-bindgen-futures", ] @@ -750,7 +760,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -792,10 +802,10 @@ version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -884,6 +894,34 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa" +dependencies = [ + "cookie", + "idna 0.5.0", + "log", + "publicsuffix", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -954,7 +992,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "crossterm_winapi", "libc", "mio", @@ -1083,11 +1121,17 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" + [[package]] name = "ecolor" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e6b451ff1143f6de0f33fc7f1b68fecfd2c7de06e104de96c4514de3f5396f8" +checksum = "878e9005799dd739e5d5d89ff7480491c12d0af571d44399bcaefa1ee172dd76" dependencies = [ "bytemuck", "emath", @@ -1095,9 +1139,9 @@ dependencies = [ [[package]] name = "eframe" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6490ef800b2e41ee129b1f32f9ac15f713233fe3bc18e241a1afe1e4fb6811e0" +checksum = "eba4c50d905804fe9ec4e159fde06b9d38f9440228617ab64a03d7a2091ece63" dependencies = [ "ahash", "bytemuck", @@ -1111,46 +1155,51 @@ dependencies = [ "image", "js-sys", "log", - "objc2 0.5.2", + "objc2", "objc2-app-kit", "objc2-foundation", "parking_lot", "percent-encoding", - "raw-window-handle 0.5.2", - "raw-window-handle 0.6.2", + "profiling", + "raw-window-handle", "static_assertions", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "web-time", "winapi", + "windows-sys 0.59.0", "winit", ] [[package]] name = "egui" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c97e70a2768de630f161bb5392cbd3874fcf72868f14df0e002e82e06cb798" +checksum = "7d2768eaa6d5c80a6e2a008da1f0e062dff3c83eb2b28605ea2d0732d46e74d6" dependencies = [ "ahash", + "bitflags 2.8.0", "emath", "epaint", "log", "nohash-hasher", + "profiling", ] [[package]] name = "egui-winit" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4e066af341bf92559f60dbdf2020b2a03c963415349af5f3f8d79ff7a4926" +checksum = "ace791b367c1f63e6044aef2f3834904509d1d1a6912fd23ebf3f6a9af92cd84" dependencies = [ "ahash", "arboard", + "bytemuck", "egui", "log", - "raw-window-handle 0.6.2", + "profiling", + "raw-window-handle", "smithay-clipboard", "web-time", "webbrowser", @@ -1159,9 +1208,9 @@ dependencies = [ [[package]] name = "egui_glow" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2bdc8b38cfa17cc712c4ae079e30c71c00cd4c2763c9e16dc7860a02769103" +checksum = "9a53e2374a964c3c793cb0b8ead81bca631f24974bc0b747d1a5622f4e39fdd0" dependencies = [ "ahash", "bytemuck", @@ -1169,6 +1218,7 @@ dependencies = [ "glow", "log", "memoffset", + "profiling", "wasm-bindgen", "web-sys", ] @@ -1181,9 +1231,9 @@ checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "emath" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6a21708405ea88f63d8309650b4d77431f4bc28fb9d8e6f77d3963b51249e6" +checksum = "55b7b6be5ad1d247f11738b0e4699d9c20005ed366f2c29f5ec1f8e1de180bc2" dependencies = [ "bytemuck", ] @@ -1203,22 +1253,42 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "enum-as-inner" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "epaint" -version = "0.28.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f0dcc0a0771e7500e94cd1cb797bd13c9f23b9409bdc3c824e2cbc562b7fa01" +checksum = "275b665a7b9611d8317485187e5458750850f9e64604d3c58434bb3fc1d22915" dependencies = [ "ab_glyph", "ahash", "bytemuck", "ecolor", "emath", + "epaint_default_fonts", "log", "nohash-hasher", "parking_lot", + "profiling", ] +[[package]] +name = "epaint_default_fonts" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9343d356d7cac894dacafc161b4654e0881301097bdf32a122ed503d97cb94b6" + [[package]] name = "equivalent" version = "1.0.1" @@ -1270,10 +1340,11 @@ dependencies = [ [[package]] name = "faster-hex" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" +checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73" dependencies = [ + "heapless", "serde", ] @@ -1303,24 +1374,24 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox 0.1.3", + "windows-sys 0.59.0", ] [[package]] name = "flate2" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -1356,7 +1427,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -1382,9 +1453,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -1397,9 +1468,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -1407,15 +1478,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -1424,9 +1495,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -1458,32 +1529,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1561,9 +1632,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.13.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -1573,65 +1644,53 @@ dependencies = [ [[package]] name = "glutin" -version = "0.31.3" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fcd4ae4e86d991ad1300b8f57166e5be0c95ef1f63f3f5b827f8a164548746" +checksum = "03642b8b0cce622392deb0ee3e88511f75df2daac806102597905c3ea1974848" dependencies = [ - "bitflags 2.5.0", - "cfg_aliases 0.1.1", + "bitflags 2.8.0", + "cfg_aliases 0.2.1", "cgl", "core-foundation", "dispatch", "glutin_egl_sys", - "glutin_glx_sys", "glutin_wgl_sys", - "icrate", "libloading", - "objc2 0.4.1", + "objc2", + "objc2-app-kit", + "objc2-foundation", "once_cell", - "raw-window-handle 0.5.2", - "wayland-sys", - "windows-sys 0.48.0", - "x11-dl", + "raw-window-handle", + "windows-sys 0.52.0", ] [[package]] name = "glutin-winit" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebcdfba24f73b8412c5181e56f092b5eff16671c514ce896b258a0a64bd7735" +checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" dependencies = [ - "cfg_aliases 0.1.1", + "cfg_aliases 0.2.1", "glutin", - "raw-window-handle 0.5.2", + "raw-window-handle", "winit", ] [[package]] name = "glutin_egl_sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77cc5623f5309ef433c3dd4ca1223195347fe62c413da8e2fdd0eb76db2d9bcd" -dependencies = [ - "gl_generator", - "windows-sys 0.48.0", -] - -[[package]] -name = "glutin_glx_sys" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a165fd686c10dcc2d45380b35796e577eacfd43d4660ee741ec8ebe2201b3b4f" +checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" dependencies = [ "gl_generator", - "x11-dl", + "windows-sys 0.52.0", ] [[package]] name = "glutin_wgl_sys" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" dependencies = [ "gl_generator", ] @@ -1655,12 +1714,37 @@ dependencies = [ "tracing", ] +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "heapless" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +dependencies = [ + "hash32", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "heck" version = "0.5.0" @@ -1698,13 +1782,69 @@ dependencies = [ "termcolor", ] +[[package]] +name = "hickory-proto" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" +dependencies = [ + "async-trait", + "cfg-if 1.0.0", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand", + "thiserror 1.0.61", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243" +dependencies = [ + "cfg-if 1.0.0", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot", + "rand", + "resolv-conf", + "smallvec", + "thiserror 1.0.61", + "tokio", + "tracing", +] + [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", ] [[package]] @@ -1778,10 +1918,12 @@ dependencies = [ "hyper", "hyper-util", "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", + "webpki-roots", ] [[package]] @@ -1844,14 +1986,23 @@ dependencies = [ ] [[package]] -name = "icrate" -version = "0.0.4" +name = "idna" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "block2 0.3.0", - "dispatch", - "objc2 0.4.1", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1874,6 +2025,7 @@ dependencies = [ "byteorder-lite", "num-traits", "png", + "tiff", ] [[package]] @@ -1931,6 +2083,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "ipconfig" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +dependencies = [ + "socket2 0.5.7", + "widestring", + "windows-sys 0.48.0", + "winreg 0.50.0", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -1945,9 +2109,9 @@ checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" [[package]] name = "itertools" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] @@ -1969,7 +2133,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.61", "walkdir", "windows-sys 0.45.0", ] @@ -1989,12 +2153,19 @@ dependencies = [ "libc", ] +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" + [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2032,7 +2203,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if 1.0.0", - "windows-targets 0.52.5", + "windows-targets 0.48.5", ] [[package]] @@ -2041,7 +2212,7 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "libc", "redox_syscall 0.4.1", ] @@ -2052,10 +2223,17 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "libc", + "redox_syscall 0.5.2", ] +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -2093,6 +2271,15 @@ dependencies = [ "value-bag", ] +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "manual_future" version = "0.1.1" @@ -2103,8 +2290,14 @@ dependencies = [ ] [[package]] -name = "memchr" -version = "2.7.4" +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "memchr" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" @@ -2142,6 +2335,15 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" version = "0.8.11" @@ -2173,18 +2375,17 @@ dependencies = [ [[package]] name = "ndk" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "jni-sys", "log", "ndk-sys", "num_enum", - "raw-window-handle 0.5.2", - "raw-window-handle 0.6.2", - "thiserror", + "raw-window-handle", + "thiserror 1.0.61", ] [[package]] @@ -2195,9 +2396,9 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] name = "ndk-sys" -version = "0.5.0+25.2.9519653" +version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ "jni-sys", ] @@ -2208,7 +2409,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "cfg-if 1.0.0", "cfg_aliases 0.1.1", "libc", @@ -2276,7 +2477,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -2294,12 +2495,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" -[[package]] -name = "numtoa" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" - [[package]] name = "numtoa" version = "0.2.4" @@ -2314,7 +2509,7 @@ checksum = "8ebcbbf8ce75f465eea419ed8396efaf9ad9da87ad83fe9fce9c8789de00ca79" dependencies = [ "cfg-if 1.0.0", "js-sys", - "thiserror", + "thiserror 1.0.61", "wasm-bindgen", "web-sys", ] @@ -2325,16 +2520,6 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" -[[package]] -name = "objc2" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" -dependencies = [ - "objc-sys", - "objc2-encode 3.0.0", -] - [[package]] name = "objc2" version = "0.5.2" @@ -2342,7 +2527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" dependencies = [ "objc-sys", - "objc2-encode 4.0.3", + "objc2-encode", ] [[package]] @@ -2351,25 +2536,49 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.5.0", - "block2 0.5.1", + "bitflags 2.8.0", + "block2", "libc", - "objc2 0.5.2", + "objc2", "objc2-core-data", "objc2-core-image", "objc2-foundation", "objc2-quartz-core", ] +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + [[package]] name = "objc2-core-data" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.5.0", - "block2 0.5.1", - "objc2 0.5.2", + "bitflags 2.8.0", + "block2", + "objc2", "objc2-foundation", ] @@ -2379,17 +2588,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", + "block2", + "objc2", "objc2-foundation", "objc2-metal", ] [[package]] -name = "objc2-encode" -version = "3.0.0" +name = "objc2-core-location" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] [[package]] name = "objc2-encode" @@ -2403,10 +2618,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.5.0", - "block2 0.5.1", + "bitflags 2.8.0", + "block2", + "dispatch", "libc", - "objc2 0.5.2", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", ] [[package]] @@ -2415,9 +2643,9 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.5.0", - "block2 0.5.1", - "objc2 0.5.2", + "bitflags 2.8.0", + "block2", + "objc2", "objc2-foundation", ] @@ -2427,13 +2655,68 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.5.0", - "block2 0.5.1", - "objc2 0.5.2", + "bitflags 2.8.0", + "block2", + "objc2", "objc2-foundation", "objc2-metal", ] +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + [[package]] name = "object" version = "0.36.0" @@ -2461,7 +2744,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "cfg-if 1.0.0", "foreign-types 0.3.2", "libc", @@ -2478,7 +2761,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -2568,14 +2851,14 @@ dependencies = [ "libc", "redox_syscall 0.5.2", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] name = "parse-variants" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f048110646aae15ec0e4299c37a012739d28d92c82b7ad945c0578c188cbe3" +checksum = "e247165e48a400a318ef0500c4f30402528d79c8b6cbf205815fe7243b7fb940" dependencies = [ "parse-variants-derive", ] @@ -2588,7 +2871,7 @@ checksum = "70df726c43c645ef1dde24c7ae14692036ebe5457c92c5f0ec4cfceb99634ff6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -2625,7 +2908,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -2667,7 +2950,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.7.4", ] [[package]] @@ -2764,27 +3047,103 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] +[[package]] +name = "profiling" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" +dependencies = [ + "idna 0.3.0", + "psl-types", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + [[package]] name = "quick-xml" -version = "0.34.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4" +checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" dependencies = [ "memchr", ] +[[package]] +name = "quinn" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.5.7", + "thiserror 1.0.61", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash", + "rustls", + "slab", + "thiserror 1.0.61", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +dependencies = [ + "libc", + "once_cell", + "socket2 0.5.7", + "tracing", + "windows-sys 0.52.0", +] + [[package]] name = "quote" -version = "1.0.36" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2819,27 +3178,12 @@ dependencies = [ "getrandom", ] -[[package]] -name = "raw-window-handle" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" - [[package]] name = "raw-window-handle" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -2855,7 +3199,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", ] [[package]] @@ -2872,7 +3216,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox 0.1.3", - "thiserror", + "thiserror 1.0.61", ] [[package]] @@ -2910,13 +3254,17 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ + "async-compression", "base64", "bytes", + "cookie", + "cookie_store", "encoding_rs", "futures-channel", "futures-core", "futures-util", "h2", + "hickory-resolver", "http", "http-body", "http-body-util", @@ -2932,7 +3280,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", + "rustls-native-certs", "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", @@ -2940,12 +3292,26 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls", + "tokio-socks", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "webpki-roots", + "winreg 0.52.0", +] + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", ] [[package]] @@ -2971,62 +3337,62 @@ checksum = "80eb5f11ebcdd09266eb7897503d7451c2fceea3881538c63dd2651e2c5ebe0c" [[package]] name = "rlimit" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3560f70f30a0f16d11d01ed078a07740fe6b489667abc7c7b029155d9f21c3d8" +checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" dependencies = [ "libc", ] [[package]] name = "rpc-example-client-browser" -version = "0.15.0" +version = "0.18.0" dependencies = [ "rpc-example-client-common", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-html 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-rpc 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-html", + "workflow-log", + "workflow-rpc", + "workflow-wasm", ] [[package]] name = "rpc-example-client-common" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-std", "rpc-example-messages", "tokio", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-rpc 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-rpc", ] [[package]] name = "rpc-example-client-native" -version = "0.15.0" +version = "0.18.0" dependencies = [ "clap", "rpc-example-client-common", "tokio", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-log", ] [[package]] name = "rpc-example-messages" -version = "0.15.0" +version = "0.18.0" dependencies = [ "borsh", "serde", "serde_json", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", ] [[package]] name = "rpc-example-server" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-trait", "borsh", @@ -3035,10 +3401,10 @@ dependencies = [ "tokio", "tokio-tungstenite", "tungstenite", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-rpc 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-rpc", + "workflow-task", ] [[package]] @@ -3047,6 +3413,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc_version" version = "0.4.0" @@ -3076,7 +3448,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys 0.4.14", @@ -3090,6 +3462,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" dependencies = [ "once_cell", + "ring", "rustls-pki-types", "rustls-webpki", "subtle", @@ -3193,7 +3566,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "core-foundation", "core-foundation-sys", "libc", @@ -3253,7 +3626,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -3367,52 +3740,27 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" -[[package]] -name = "smithay-client-toolkit" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" -dependencies = [ - "bitflags 2.5.0", - "calloop 0.12.4", - "calloop-wayland-source 0.2.0", - "cursor-icon", - "libc", - "log", - "memmap2", - "rustix 0.38.34", - "thiserror", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols 0.31.2", - "wayland-protocols-wlr 0.2.0", - "wayland-scanner", - "xkeysym", -] - [[package]] name = "smithay-client-toolkit" version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.5.0", - "calloop 0.13.0", - "calloop-wayland-source 0.3.0", + "bitflags 2.8.0", + "calloop", + "calloop-wayland-source", "cursor-icon", "libc", "log", "memmap2", "rustix 0.38.34", - "thiserror", + "thiserror 1.0.61", "wayland-backend", "wayland-client", "wayland-csd-frame", "wayland-cursor", - "wayland-protocols 0.32.3", - "wayland-protocols-wlr 0.3.3", + "wayland-protocols", + "wayland-protocols-wlr", "wayland-scanner", "xkeysym", ] @@ -3424,7 +3772,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846" dependencies = [ "libc", - "smithay-client-toolkit 0.19.2", + "smithay-client-toolkit", "wayland-backend", ] @@ -3500,9 +3848,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -3518,7 +3866,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -3571,30 +3919,30 @@ dependencies = [ [[package]] name = "terminal-example-cli" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-trait", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-terminal 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-terminal", ] [[package]] name = "terminal-example-native" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-std", "async-trait", "cfg-if 1.0.0", "terminal-example-cli", "tokio", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-terminal 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-log", + "workflow-terminal", ] [[package]] name = "terminal-example-wasm" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-trait", "console_error_panic_hook", @@ -3602,19 +3950,19 @@ dependencies = [ "terminal-example-cli", "wasm-bindgen", "wasm-bindgen-futures", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-terminal 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-log", + "workflow-terminal", ] [[package]] name = "termion" -version = "4.0.2" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccce68e518d1173e80876edd54760b60b792750d0cab6444a79101c6ea03848" +checksum = "7eaa98560e51a2cf4f0bb884d8b2098a9ea11ecf3b7078e9c68242c74cc923a7" dependencies = [ "libc", - "libredox 0.0.2", - "numtoa 0.1.0", + "libredox 0.1.3", + "numtoa", "redox_termios", ] @@ -3635,7 +3983,16 @@ version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.61", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", ] [[package]] @@ -3646,7 +4003,29 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", ] [[package]] @@ -3722,7 +4101,7 @@ checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -3746,6 +4125,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-socks" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" +dependencies = [ + "either", + "futures-util", + "thiserror 1.0.61", + "tokio", +] + [[package]] name = "tokio-tungstenite" version = "0.23.1" @@ -3829,9 +4220,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "pin-project-lite", + "tracing-attributes", "tracing-core", ] +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "tracing-core" version = "0.1.32" @@ -3855,9 +4258,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttf-parser" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8686b91785aff82828ed725225925b33b4fde44c4bb15876e5f7c832724c420a" +checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" [[package]] name = "tungstenite" @@ -3876,7 +4279,7 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror", + "thiserror 1.0.61", "utf-8", ] @@ -3948,7 +4351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", - "idna", + "idna 0.5.0", "percent-encoding", ] @@ -4030,46 +4433,48 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if 1.0.0", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if 1.0.0", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4077,28 +4482,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wayland-backend" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993" +checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" dependencies = [ "cc", "downcast-rs", @@ -4110,11 +4518,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943" +checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "rustix 0.38.34", "wayland-backend", "wayland-scanner", @@ -4126,16 +4534,16 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "cursor-icon", "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.31.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef9489a8df197ebf3a8ce8a7a7f0a2320035c3743f3c1bd0bdbccf07ce64f95" +checksum = "3a94697e66e76c85923b0d28a0c251e8f0666f58fc47d316c0f4da6da75d37cb" dependencies = [ "rustix 0.38.34", "wayland-client", @@ -4144,83 +4552,45 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.31.2" +version = "0.32.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "wayland-backend", "wayland-client", "wayland-scanner", ] [[package]] -name = "wayland-protocols" -version = "0.32.3" +name = "wayland-protocols-wlr" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62989625a776e827cc0f15d41444a3cea5205b963c3a25be48ae1b52d6b4daaa" +checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "wayland-backend", "wayland-client", + "wayland-protocols", "wayland-scanner", ] [[package]] -name = "wayland-protocols-plasma" -version = "0.2.0" +name = "wayland-scanner" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" +checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-protocols 0.31.2", - "wayland-scanner", + "proc-macro2", + "quick-xml", + "quote", ] [[package]] -name = "wayland-protocols-wlr" -version = "0.2.0" +name = "wayland-sys" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-protocols 0.31.2", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-wlr" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd993de54a40a40fbe5601d9f1fbcaef0aebcc5fda447d7dc8f6dcbaae4f8953" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-protocols 0.32.3", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6" -dependencies = [ - "proc-macro2", - "quick-xml", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148" +checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" dependencies = [ "dlib", "log", @@ -4230,9 +4600,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -4240,9 +4610,9 @@ dependencies = [ [[package]] name = "web-time" -version = "0.2.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -4254,13 +4624,13 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" dependencies = [ - "block2 0.5.1", + "block2", "core-foundation", "home", "jni", "log", "ndk-context", - "objc2 0.5.2", + "objc2", "objc2-foundation", "url", "web-sys", @@ -4277,37 +4647,49 @@ dependencies = [ [[package]] name = "websocket-example-client-browser" -version = "0.15.0" +version = "0.18.0" dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "websocket-example-client-common", - "workflow-html 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-websocket 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-html", + "workflow-log", + "workflow-websocket", ] [[package]] name = "websocket-example-client-common" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-std", "tokio", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-websocket 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-websocket", ] [[package]] name = "websocket-example-client-native" -version = "0.15.0" +version = "0.18.0" dependencies = [ "tokio", "websocket-example-client-common", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-log", ] +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + [[package]] name = "winapi" version = "0.3.9" @@ -4345,7 +4727,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4372,7 +4754,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -4407,18 +4798,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -4435,9 +4826,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -4453,9 +4844,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -4471,15 +4862,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -4495,9 +4886,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -4513,9 +4904,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -4531,9 +4922,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -4549,55 +4940,47 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.29.15" +version = "0.30.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" +checksum = "a809eacf18c8eca8b6635091543f02a5a06ddf3dad846398795460e6e0ae3cc0" dependencies = [ - "ahash", "android-activity", "atomic-waker", - "bitflags 2.5.0", - "bytemuck", - "calloop 0.12.4", - "cfg_aliases 0.1.1", + "bitflags 2.8.0", + "block2", + "calloop", + "cfg_aliases 0.2.1", + "concurrent-queue", "core-foundation", "core-graphics", "cursor-icon", - "icrate", + "dpi", "js-sys", "libc", - "log", - "memmap2", "ndk", - "ndk-sys", - "objc2 0.4.1", - "once_cell", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", "orbclient", - "percent-encoding", - "raw-window-handle 0.5.2", - "raw-window-handle 0.6.2", - "redox_syscall 0.3.5", + "pin-project", + "raw-window-handle", + "redox_syscall 0.4.1", "rustix 0.38.34", - "smithay-client-toolkit 0.18.1", "smol_str", + "tracing", "unicode-segmentation", "wasm-bindgen", "wasm-bindgen-futures", - "wayland-backend", - "wayland-client", - "wayland-protocols 0.31.2", - "wayland-protocols-plasma", "web-sys", "web-time", - "windows-sys 0.48.0", - "x11-dl", - "x11rb", + "windows-sys 0.52.0", "xkbcommon-dl", ] @@ -4612,45 +4995,40 @@ dependencies = [ [[package]] name = "winreg" -version = "0.52.0" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if 1.0.0", "windows-sys 0.48.0", ] [[package]] -name = "workflow-chrome" -version = "0.15.0" +name = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ "cfg-if 1.0.0", - "chrome-sys", - "js-sys", - "thiserror", - "wasm-bindgen", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "windows-sys 0.48.0", ] [[package]] name = "workflow-chrome" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2752ac67d1a571d034279a9af0519890dd49638789c273399c095433ee4198d5" +version = "0.18.0" dependencies = [ "cfg-if 1.0.0", "chrome-sys", "js-sys", - "thiserror", + "thiserror 2.0.11", "wasm-bindgen", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", ] [[package]] name = "workflow-core" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-channel 2.3.1", "async-std", @@ -4668,52 +5046,20 @@ dependencies = [ "rlimit", "serde", "serde-wasm-bindgen", - "thiserror", - "tokio", - "triggered", - "vergen", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "workflow-core-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-core" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3e4fbdb34a153dae3cb7ecb6f84960015b7cba37465ff02fb982ded2d1b79bf" -dependencies = [ - "async-channel 2.3.1", - "async-std", - "borsh", - "bs58", - "cfg-if 1.0.0", - "chrono", - "dirs", - "faster-hex", - "futures", - "getrandom", - "instant", - "js-sys", - "rand", - "serde", - "serde-wasm-bindgen", - "thiserror", + "thiserror 2.0.11", "tokio", "triggered", "vergen", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-core-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core-macros", + "workflow-log", ] [[package]] name = "workflow-core-macros" -version = "0.15.0" +version = "0.18.0" dependencies = [ "convert_case", "parse-variants", @@ -4723,79 +5069,44 @@ dependencies = [ "regex", "sha2", "syn 1.0.109", - "workflow-macro-tools 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-core-macros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3c5924a19620185bdbfdbd66211e1aa0e55e65497e6c2501b2e29f4ddb4d2b" -dependencies = [ - "convert_case", - "parse-variants", - "proc-macro-error", - "proc-macro2", - "quote", - "regex", - "sha2", - "syn 1.0.109", - "workflow-macro-tools 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-macro-tools", ] [[package]] name = "workflow-d3" -version = "0.15.0" +version = "0.18.0" dependencies = [ "atomic_float", "js-sys", - "thiserror", + "thiserror 2.0.11", "wasm-bindgen", "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-dom", + "workflow-log", + "workflow-wasm", ] [[package]] name = "workflow-dom" -version = "0.15.0" +version = "0.18.0" dependencies = [ "futures", "js-sys", "regex", - "thiserror", + "thiserror 2.0.11", "tokio", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-dom" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfb07aa5b3da1f943cba196777afb1ee7c189372846b2d8de3c8510de8c8a0c" -dependencies = [ - "futures", - "js-sys", - "regex", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-wasm", ] [[package]] name = "workflow-egui" -version = "0.15.0" +version = "0.18.0" dependencies = [ "ahash", "async-channel 2.3.1", @@ -4818,22 +5129,22 @@ dependencies = [ "safer_owning_ref", "serde", "serde-wasm-bindgen", - "thiserror", + "thiserror 2.0.11", "tokio", "triggered", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-dom", "workflow-egui-macros", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-log", + "workflow-wasm", ] [[package]] name = "workflow-egui-macros" -version = "0.15.0" +version = "0.18.0" dependencies = [ "convert_case", "parse-variants", @@ -4847,71 +5158,44 @@ dependencies = [ [[package]] name = "workflow-encryption" -version = "0.15.0" +version = "0.18.0" dependencies = [ "argon2", "borsh", "chacha20poly1305", "serde", "sha2", - "thiserror", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-serializer 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.11", + "workflow-core", + "workflow-serializer", "zeroize", ] [[package]] name = "workflow-gpt" -version = "0.15.0" +version = "0.18.0" dependencies = [ "reqwest", "serde", "serde_json", - "thiserror", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.11", + "workflow-core", ] [[package]] name = "workflow-html" -version = "0.15.0" +version = "0.18.0" dependencies = [ "lazy_static", "regex", "wasm-bindgen", "web-sys", - "workflow-html-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-html" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aac0b433ccdf682e728dbdef24e963137883337fa9e9b91a7fb35a9808b9e39" -dependencies = [ - "lazy_static", - "regex", - "wasm-bindgen", - "web-sys", - "workflow-html-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-html-macros" -version = "0.15.0" -dependencies = [ - "lazy_static", - "proc-macro-error", - "proc-macro2", - "quote", - "rand", - "syn 1.0.109", + "workflow-html-macros", ] [[package]] name = "workflow-html-macros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63ce89c10b1c390ff11bf052e64f831bef3fec69fb44647f69a1872dfbf6d355" +version = "0.18.0" dependencies = [ "lazy_static", "proc-macro-error", @@ -4923,37 +5207,21 @@ dependencies = [ [[package]] name = "workflow-http" -version = "0.15.0" +version = "0.18.0" dependencies = [ "cfg-if 1.0.0", "reqwest", "serde", "serde_json", - "thiserror", + "thiserror 2.0.11", "tokio", "wasm-bindgen", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-http" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924411a6fa2d3e2ddd591fe9056fcd6a753e62d6e4a6bc882158efb130c4bb1d" -dependencies = [ - "cfg-if 1.0.0", - "reqwest", - "serde", - "serde_json", - "thiserror", - "tokio", - "wasm-bindgen", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", ] [[package]] name = "workflow-i18n" -version = "0.15.0" +version = "0.18.0" dependencies = [ "arc-swap", "cfg-if 1.0.0", @@ -4962,44 +5230,12 @@ dependencies = [ "ritehash", "serde", "serde_json", - "thiserror", -] - -[[package]] -name = "workflow-i18n" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3eb8b87af5283e5569c2f98e911a636081153ca45e217b1301347d20dbfcf3b" -dependencies = [ - "arc-swap", - "cfg-if 1.0.0", - "itertools", - "reqwest", - "ritehash", - "serde", - "serde_json", - "thiserror", + "thiserror 2.0.11", ] [[package]] name = "workflow-log" -version = "0.15.0" -dependencies = [ - "cfg-if 1.0.0", - "console", - "downcast", - "hexplay", - "lazy_static", - "log", - "termcolor", - "wasm-bindgen", -] - -[[package]] -name = "workflow-log" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ef6324e476d8fe35c97493b796cd5edb77ad1c9fc41b141ddd898b874c822f" +version = "0.18.0" dependencies = [ "cfg-if 1.0.0", "console", @@ -5013,7 +5249,7 @@ dependencies = [ [[package]] name = "workflow-macro-tools" -version = "0.15.0" +version = "0.18.0" dependencies = [ "convert_case", "parse-variants", @@ -5022,43 +5258,9 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "workflow-macro-tools" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2a006332e207a538701b09db662467d6cd612465aafad1057eb44847a652e" -dependencies = [ - "convert_case", - "parse-variants", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "workflow-node" -version = "0.15.0" -dependencies = [ - "borsh", - "futures", - "js-sys", - "lazy_static", - "node-sys", - "serde", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "workflow-node" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8035a06ca9213aae806e7839ab15050e818c7b616eef7905c4387bdc07fcad4c" +version = "0.18.0" dependencies = [ "borsh", "futures", @@ -5066,18 +5268,18 @@ dependencies = [ "lazy_static", "node-sys", "serde", - "thiserror", + "thiserror 2.0.11", "wasm-bindgen", "wasm-bindgen-futures", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-task", + "workflow-wasm", ] [[package]] name = "workflow-nw" -version = "0.15.0" +version = "0.18.0" dependencies = [ "ahash", "async-trait", @@ -5088,92 +5290,27 @@ dependencies = [ "rand", "serde", "serde-wasm-bindgen", - "thiserror", + "thiserror 2.0.11", "wasm-bindgen", "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-nw" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4fd7c2bee6f542cb01de7d4200a5999bd718578f28bd126bf853f93265b4b1" -dependencies = [ - "ahash", - "async-trait", - "borsh", - "futures", - "js-sys", - "nw-sys", - "rand", - "serde", - "serde-wasm-bindgen", - "thiserror", - "wasm-bindgen", - "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-dom", + "workflow-log", + "workflow-wasm", ] [[package]] name = "workflow-panic-hook" -version = "0.15.0" +version = "0.18.0" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen", "web-sys", ] -[[package]] -name = "workflow-panic-hook" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9324ed149bb13b633fda77b823ef98ff58c0072c9fc9ce70af1d74b83189b42c" -dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "workflow-rpc" -version = "0.15.0" -dependencies = [ - "ahash", - "async-std", - "async-trait", - "borsh", - "downcast-rs", - "futures", - "futures-util", - "getrandom", - "manual_future", - "rand", - "serde", - "serde_json", - "thiserror", - "tokio", - "tungstenite", - "wasm-bindgen", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-rpc-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-websocket 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "workflow-rpc" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a8d999bb77b939021f658447e83b3feb7205254eff6499f302a893d38111f0" +version = "0.18.0" dependencies = [ "ahash", "async-std", @@ -5187,34 +5324,21 @@ dependencies = [ "rand", "serde", "serde_json", - "thiserror", + "thiserror 2.0.11", "tokio", "tungstenite", "wasm-bindgen", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-rpc-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-websocket 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-rpc-macros", + "workflow-task", + "workflow-wasm", + "workflow-websocket", ] [[package]] name = "workflow-rpc-macros" -version = "0.15.0" -dependencies = [ - "parse-variants", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "workflow-rpc-macros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d940809c8856e40391337c212677bfa4b81af15ff5c5e5a023bf4a98e08d2898" +version = "0.18.0" dependencies = [ "parse-variants", "proc-macro-error", @@ -5225,37 +5349,26 @@ dependencies = [ [[package]] name = "workflow-rs" -version = "0.15.0" +version = "0.18.0" dependencies = [ - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-html 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-i18n 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-node 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-nw 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-panic-hook 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-rpc 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-store 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-terminal 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-websocket 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-dom", + "workflow-html", + "workflow-i18n", + "workflow-log", + "workflow-node", + "workflow-nw", + "workflow-panic-hook", + "workflow-rpc", + "workflow-store", + "workflow-terminal", + "workflow-wasm", + "workflow-websocket", ] [[package]] name = "workflow-serializer" -version = "0.15.0" -dependencies = [ - "ahash", - "borsh", - "serde", -] - -[[package]] -name = "workflow-serializer" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6d60f84ae0bbcb5df48aa8d755656729d5173cf8041f1da26ced4e6badd1607" +version = "0.18.0" dependencies = [ "ahash", "borsh", @@ -5264,21 +5377,21 @@ dependencies = [ [[package]] name = "workflow-service" -version = "0.15.0" +version = "0.18.0" dependencies = [ "ahash", "async-trait", "cfg-if 1.0.0", "ctrlc", "futures-util", - "thiserror", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.11", + "workflow-core", + "workflow-log", ] [[package]] name = "workflow-store" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-std", "base64", @@ -5291,87 +5404,31 @@ dependencies = [ "lazy_static", "serde", "serde_json", - "thiserror", + "thiserror 2.0.11", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-chrome 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-node 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-store" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ce9b637375a9c329401177bdeed625ae89a46c3089167dde89432856834154" -dependencies = [ - "async-std", - "base64", - "cfg-if 1.0.0", - "chrome-sys", - "faster-hex", - "filetime", - "home", - "js-sys", - "lazy_static", - "serde", - "serde_json", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "workflow-chrome 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-node 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-chrome", + "workflow-core", + "workflow-log", + "workflow-node", + "workflow-wasm", ] [[package]] name = "workflow-task" -version = "0.15.0" +version = "0.18.0" dependencies = [ "futures", - "thiserror", + "thiserror 2.0.11", "tokio", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-task" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b0efdb7d1c17f962e967d82815712149d5b50a3657bc3a19b7e4a1c8c4c05b" -dependencies = [ - "futures", - "thiserror", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-task-macros" -version = "0.15.0" -dependencies = [ - "convert_case", - "parse-variants", - "proc-macro-error", - "proc-macro2", - "quote", - "sha2", - "syn 1.0.109", - "workflow-macro-tools 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-task-macros", ] [[package]] name = "workflow-task-macros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b859c5a882b80b6b942f83afe020d1c2ebd0c610370e922ba35e7d5653f88f" +version = "0.18.0" dependencies = [ "convert_case", "parse-variants", @@ -5380,12 +5437,12 @@ dependencies = [ "quote", "sha2", "syn 1.0.109", - "workflow-macro-tools 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-macro-tools", ] [[package]] name = "workflow-terminal" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-std", "async-trait", @@ -5394,72 +5451,27 @@ dependencies = [ "downcast", "futures", "js-sys", - "numtoa 0.2.4", + "numtoa", "nw-sys", "pad", "regex", "termion", "textwrap", - "thiserror", + "thiserror 2.0.11", "tokio", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-terminal-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-terminal" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f90f17fd25f45de3441f6cc8d34569f035787549d798819f4508b9bbb194bc" -dependencies = [ - "async-std", - "async-trait", - "cfg-if 1.0.0", - "crossterm", - "downcast", - "futures", - "js-sys", - "numtoa 0.2.4", - "nw-sys", - "pad", - "regex", - "textwrap", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-dom 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-terminal-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-terminal-macros" -version = "0.15.0" -dependencies = [ - "convert_case", - "parse-variants", - "proc-macro-error", - "proc-macro2", - "quote", - "sha2", - "syn 1.0.109", - "workflow-macro-tools 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-dom", + "workflow-log", + "workflow-terminal-macros", + "workflow-wasm", ] [[package]] name = "workflow-terminal-macros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7978dc5e66d329ad9749e5965af0d83ee216347ed52d35f86d9b760f7e85b384" +version = "0.18.0" dependencies = [ "convert_case", "parse-variants", @@ -5468,26 +5480,26 @@ dependencies = [ "quote", "sha2", "syn 1.0.109", - "workflow-macro-tools 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-macro-tools", ] [[package]] name = "workflow-utils" -version = "0.15.0" +version = "0.18.0" dependencies = [ "ahash", "cliclack", "reqwest", "separator", "serde", - "thiserror", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-http 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.11", + "workflow-core", + "workflow-http", ] [[package]] name = "workflow-wasm" -version = "0.15.0" +version = "0.18.0" dependencies = [ "cfg-if 1.0.0", "faster-hex", @@ -5495,53 +5507,18 @@ dependencies = [ "js-sys", "serde", "serde-wasm-bindgen", - "thiserror", + "thiserror 2.0.11", "wasm-bindgen", "wasm-bindgen-futures", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-panic-hook 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-wasm" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99adc368acba2fd1c017bdeddca479fa0c170f0a8b2955652ceb07ac3e28bb57" -dependencies = [ - "cfg-if 1.0.0", - "faster-hex", - "futures", - "js-sys", - "serde", - "serde-wasm-bindgen", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-panic-hook 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm-macros 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-panic-hook", + "workflow-wasm-macros", ] [[package]] name = "workflow-wasm-macros" -version = "0.15.0" -dependencies = [ - "js-sys", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "wasm-bindgen", -] - -[[package]] -name = "workflow-wasm-macros" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353dd87151d9e95940ab252c7d61f87c5c76f0a1e6ff0fce4114f5e645e8b6f7" +version = "0.18.0" dependencies = [ "js-sys", "proc-macro-error", @@ -5553,7 +5530,7 @@ dependencies = [ [[package]] name = "workflow-websocket" -version = "0.15.0" +version = "0.18.0" dependencies = [ "ahash", "async-channel 2.3.1", @@ -5564,7 +5541,7 @@ dependencies = [ "futures", "futures-util", "js-sys", - "thiserror", + "thiserror 2.0.11", "tokio", "tokio-tungstenite", "triggered", @@ -5572,60 +5549,20 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "workflow-websocket" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2343a4bbac5c0e51ee1c8dea0d581ca9387dba2d73fce3a05d82495d559ab797" -dependencies = [ - "ahash", - "async-channel 2.3.1", - "async-std", - "async-trait", - "cfg-if 1.0.0", - "downcast-rs", - "futures", - "futures-util", - "js-sys", - "thiserror", - "tokio", - "tokio-tungstenite", - "triggered", - "tungstenite", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "workflow-core 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-task 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-wasm 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "workflow-core", + "workflow-log", + "workflow-task", + "workflow-wasm", ] [[package]] name = "workflow-websocket-example-server" -version = "0.15.0" +version = "0.18.0" dependencies = [ "async-trait", "tokio", - "workflow-log 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", - "workflow-websocket 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", + "workflow-log", + "workflow-websocket", ] [[package]] @@ -5634,11 +5571,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" dependencies = [ - "as-raw-xcb-connection", "gethostname", - "libc", - "libloading", - "once_cell", "rustix 0.38.34", "x11rb-protocol", ] @@ -5651,9 +5584,9 @@ checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" [[package]] name = "xcursor" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d491ee231a51ae64a5b762114c3ac2104b967aadba1de45c86ca42cf051513b7" +checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" [[package]] name = "xkbcommon-dl" @@ -5661,7 +5594,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.8.0", "dlib", "log", "once_cell", @@ -5676,9 +5609,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" [[package]] name = "zerocopy" @@ -5697,7 +5630,7 @@ checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", ] [[package]] @@ -5717,5 +5650,33 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.98", +] + +[[package]] +name = "zstd" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", ] diff --git a/Cargo.toml b/Cargo.toml index 9bbc612..5eea8d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ members = [ ] [workspace.package] -version = "0.15.0" +version = "0.18.0" authors = ["WORKFLOW-RS developers"] license = "MIT OR Apache-2.0" edition = "2021" @@ -59,38 +59,38 @@ repository = "https://github.com/workflow-rs/workflow-rs" # internal dependencies -workflow-chrome = { version = "0.15.0"} -workflow-core = { version = "0.15.0"} -workflow-core-macros = { version = "0.15.0"} -workflow-d3 = { version = "0.15.0"} -workflow-dom = { version = "0.15.0"} -workflow-egui = { version = "0.15.0", path = "egui" } -workflow-egui-macros = { version = "0.15.0", path = "egui/macros" } -workflow-encryption = { version = "0.15.0"} -workflow-gpt = { version = "0.15.0"} -workflow-html = { version = "0.15.0"} -workflow-html-macros = { version = "0.15.0"} -workflow-http = { version = "0.15.0"} -workflow-i18n = { version = "0.15.0"} -workflow-log = { version = "0.15.0"} -workflow-macro-tools = { version = "0.15.0"} -workflow-node = { version = "0.15.0"} -workflow-nw = { version = "0.15.0"} -workflow-panic-hook = { version = "0.15.0"} -workflow-rpc = { version = "0.15.0"} -workflow-rpc-macros = { version = "0.15.0"} -workflow-rs = { version = "0.15.0"} -workflow-store = { version = "0.15.0"} -workflow-serializer = { version = "0.15.0"} -workflow-service = { version = "0.15.0", path = "service" } -workflow-task = { version = "0.15.0"} -workflow-task-macros = { version = "0.15.0"} -workflow-terminal = { version = "0.15.0"} -workflow-terminal-macros = { version = "0.15.0"} -workflow-utils = { version = "0.15.0"} -workflow-wasm = { version = "0.15.0"} -workflow-wasm-macros = { version = "0.15.0"} -workflow-websocket = { version = "0.15.0"} +# workflow-chrome = { version = "0.15.0"} +# workflow-core = { version = "0.15.0"} +# workflow-core-macros = { version = "0.15.0"} +# workflow-d3 = { version = "0.15.0"} +# workflow-dom = { version = "0.15.0"} +# workflow-egui = { version = "0.15.0", path = "egui" } +# workflow-egui-macros = { version = "0.15.0", path = "egui/macros" } +# workflow-encryption = { version = "0.15.0"} +# workflow-gpt = { version = "0.15.0"} +# workflow-html = { version = "0.15.0"} +# workflow-html-macros = { version = "0.15.0"} +# workflow-http = { version = "0.15.0"} +# workflow-i18n = { version = "0.15.0"} +# workflow-log = { version = "0.15.0"} +# workflow-macro-tools = { version = "0.15.0"} +# workflow-node = { version = "0.15.0"} +# workflow-nw = { version = "0.15.0"} +# workflow-panic-hook = { version = "0.15.0"} +# workflow-rpc = { version = "0.15.0"} +# workflow-rpc-macros = { version = "0.15.0"} +# workflow-rs = { version = "0.15.0"} +# workflow-store = { version = "0.15.0"} +# workflow-serializer = { version = "0.15.0"} +# workflow-service = { version = "0.15.0", path = "service" } +# workflow-task = { version = "0.15.0"} +# workflow-task-macros = { version = "0.15.0"} +# workflow-terminal = { version = "0.15.0"} +# workflow-terminal-macros = { version = "0.15.0"} +# workflow-utils = { version = "0.15.0"} +# workflow-wasm = { version = "0.15.0"} +# workflow-wasm-macros = { version = "0.15.0"} +# workflow-websocket = { version = "0.15.0"} # workflow-chrome = { version = "0.15.0"} # workflow-core = { version = "0.15.0"} @@ -124,37 +124,37 @@ workflow-websocket = { version = "0.15.0"} # workflow-wasm-macros = { version = "0.15.0"} # workflow-websocket = { version = "0.15.0"} -# workflow-chrome = { version = "0.15.0", path = "chrome" } -# workflow-core = { version = "0.15.0", path = "core" } -# workflow-core-macros = { version = "0.15.0", path = "core/macros" } -# workflow-d3 = { version = "0.15.0", path = "d3" } -# workflow-dom = { version = "0.15.0", path = "dom" } -# workflow-egui = { version = "0.15.0", path = "egui" } -# workflow-egui-macros = { version = "0.15.0", path = "egui/macros" } -# workflow-encryption = { version = "0.15.0", path = "encryption" } -# workflow-gpt = { version = "0.15.0", path = "gpt" } -# workflow-html = { version = "0.15.0", path = "html" } -# workflow-html-macros = { version = "0.15.0", path = "html/macros" } -# workflow-http = { version = "0.15.0", path = "http" } -# workflow-i18n = { version = "0.15.0", path = "i18n" } -# workflow-log = { version = "0.15.0", path = "log" } -# workflow-macro-tools = { version = "0.15.0", path = "macro-tools" } -# workflow-node = { version = "0.15.0", path = "node" } -# workflow-nw = { version = "0.15.0", path = "nw" } -# workflow-panic-hook = { version = "0.15.0", path = "panic-hook" } -# workflow-rpc = { version = "0.15.0", path = "rpc" } -# workflow-rpc-macros = { version = "0.15.0", path = "rpc/macros" } -# workflow-rs = { version = "0.15.0", path = "features" } -# workflow-store = { version = "0.15.0", path = "store" } -# workflow-serializer = { version = "0.15.0", path = "serializer" } -# workflow-task = { version = "0.15.0", path = "task" } -# workflow-task-macros = { version = "0.15.0", path = "task/macros" } -# workflow-terminal = { version = "0.15.0", path = "terminal" } -# workflow-terminal-macros = { version = "0.15.0", path = "terminal/macros" } -# workflow-utils = { version = "0.15.0", path = "utils" } -# workflow-wasm = { version = "0.15.0", path = "wasm" } -# workflow-wasm-macros = { version = "0.15.0", path = "wasm/macros" } -# workflow-websocket = { version = "0.15.0", path = "websocket" } +workflow-chrome = { version = "0.18.0", path = "chrome" , default-features = false } +workflow-core = { version = "0.18.0", path = "core" , default-features = false } +workflow-core-macros = { version = "0.18.0", path = "core/macros" , default-features = false } +workflow-d3 = { version = "0.18.0", path = "d3" , default-features = false } +workflow-dom = { version = "0.18.0", path = "dom" , default-features = false } +workflow-egui = { version = "0.18.0", path = "egui" , default-features = false } +workflow-egui-macros = { version = "0.18.0", path = "egui/macros" , default-features = false } +workflow-encryption = { version = "0.18.0", path = "encryption" , default-features = false } +workflow-gpt = { version = "0.18.0", path = "gpt" , default-features = false } +workflow-html = { version = "0.18.0", path = "html" , default-features = false } +workflow-html-macros = { version = "0.18.0", path = "html/macros" , default-features = false } +workflow-http = { version = "0.18.0", path = "http" , default-features = false } +workflow-i18n = { version = "0.18.0", path = "i18n" , default-features = false } +workflow-log = { version = "0.18.0", path = "log" , default-features = false } +workflow-macro-tools = { version = "0.18.0", path = "macro-tools" , default-features = false } +workflow-node = { version = "0.18.0", path = "node" , default-features = false } +workflow-nw = { version = "0.18.0", path = "nw" , default-features = false } +workflow-panic-hook = { version = "0.18.0", path = "panic-hook" , default-features = false } +workflow-rpc = { version = "0.18.0", path = "rpc" , default-features = false } +workflow-rpc-macros = { version = "0.18.0", path = "rpc/macros" , default-features = false } +workflow-rs = { version = "0.18.0", path = "features" , default-features = false } +workflow-store = { version = "0.18.0", path = "store" , default-features = false } +workflow-serializer = { version = "0.18.0", path = "serializer" , default-features = false } +workflow-task = { version = "0.18.0", path = "task" , default-features = false } +workflow-task-macros = { version = "0.18.0", path = "task/macros" , default-features = false } +workflow-terminal = { version = "0.18.0", path = "terminal" , default-features = false } +workflow-terminal-macros = { version = "0.18.0", path = "terminal/macros" , default-features = false } +workflow-utils = { version = "0.18.0", path = "utils" , default-features = false } +workflow-wasm = { version = "0.18.0", path = "wasm" , default-features = false } +workflow-wasm-macros = { version = "0.18.0", path = "wasm/macros" , default-features = false } +workflow-websocket = { version = "0.18.0", path = "websocket" , default-features = false } # external dependencies @@ -179,16 +179,16 @@ ctrlc = { version = "3.2", features = ["termination"] } dirs = "5.0.1" downcast = "0.11.0" downcast-rs = "1.2.0" -faster-hex = "0.9.0" -filetime = "0.2.22" -futures = "0.3.29" +faster-hex = "0.10.0" +filetime = "0.2.25" +futures = "0.3.31" futures-util = { version = "0.3.29", default-features = false, features = ["sink", "std"] } getrandom = {version = "0.2.10", features=["js"]} hexplay = "0.3.0" -home = "0.5.5" +home = "0.5.11" instant = { version ="0.1.12", features = ['wasm-bindgen'] } -itertools = "0.13.0" -js-sys = "0.3.64" +itertools = "0.14.0" +js-sys = "0.3.77" lazy_static = "1.4.0" log = "0.4.20" manual_future = "0.1.1" @@ -198,13 +198,13 @@ numtoa = "0.2.4" # nw-sys= { path = "../nw-sys" } nw-sys = { version = "0.1.6" } pad = "0.1.6" -parse-variants = "1.0.1" +parse-variants = "1.0.4" proc-macro-error = { version = "1.0.4", default-features = false } proc-macro2 = { version = "1.0.50" } -quote = "1.0.23" +quote = "1.0.38" rand = { version = "0.8.5", features = ["getrandom"] } regex = "1.10.2" -reqwest = { version = "0.12.4", features = ["json"] } +reqwest = { version = "0.12.4", default-features = false } ritehash = "0.2.0" rlimit = "0.10.1" safer_owning_ref = "0.5.0" @@ -216,16 +216,16 @@ sha2 = "0.10.8" # syn = {version="2.0",features=["full","fold","extra-traits","parsing","proc-macro"]} syn = {version="1.0.107",features=["full","fold","extra-traits","parsing","proc-macro"]} termcolor="1.3.0" -termion = "4.0.2" +termion = "4.0.3" textwrap = "0.16.0" -thiserror = "1.0.50" +thiserror = "2.0.11" tokio = { version = "1.33.0", default-features = false, features = ['io-util','time','sync','macros','rt','rt-multi-thread'] } -tokio-tungstenite = { version = "0.23.1", features = ["handshake"] } +tokio-tungstenite = { version = "0.23.1", default-features = false, features = ["handshake", "connect"] } +tungstenite = { version = "0.23.0", default-features = false } triggered = "0.1.2" -tungstenite = { version = "0.23.0", features = ["handshake"] } -wasm-bindgen = "0.2.90" -wasm-bindgen-futures = "0.4.40" -web-sys = "0.3.67" +wasm-bindgen = "0.2.100" +wasm-bindgen-futures = "0.4.50" +web-sys = "0.3.77" # chrome-sys = {path = "../chrome-sys"} chrome-sys = { version = "0.2.0" } chacha20poly1305 = "0.10.1" @@ -233,13 +233,13 @@ zeroize = { version = "1.6.0", default-features = false, features = ["alloc"] } -egui = "0.28.1" +egui = "0.31.0" # epaint = "=0.28.1" # egui_plot = "=0.28.1" # egui_extras = { version = "=0.28.1", features = ["svg","image"] } # eframe = "0.28.1" -eframe = { version = "0.28.1", default-features = false, features = [ -# # "accesskit", # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies. +eframe = { version = "0.31.0", default-features = false, features = [ +# # "accesskit", # Make egui compatible with screen readers. NOTE: adds a lot of dependencies. # # "default_fonts", # Embed the default egui fonts. "glow", # Use the glow rendering backend. Alternative: "wgpu". # # "persistence", # Enable restoring app state when restarting the app. diff --git a/core/macros/src/enums.rs b/core/macros/src/enums.rs index 00bb6e0..58c83f0 100644 --- a/core/macros/src/enums.rs +++ b/core/macros/src/enums.rs @@ -106,6 +106,9 @@ pub fn macro_handler(item: TokenStream) -> TokenStream { let mut descr: Vec = Vec::new(); let mut docs: Vec = Vec::new(); + let wrappers = regex::Regex::new(r#"(^\"|\"$)"#).unwrap(); + let collapse_spaces_regex = regex::Regex::new(r"\s+").unwrap(); + for e in enums.iter() { let have_key = e.args.has("default"); if !have_key { @@ -125,8 +128,6 @@ pub fn macro_handler(item: TokenStream) -> TokenStream { .map(|doc| doc.to_token_stream().to_string()) .collect::>() .join(" "); - let collapse_spaces_regex = regex::Regex::new(r"\s+").unwrap(); - let wrappers = regex::Regex::new(r#"(^\"|\"$)"#).unwrap(); let doc = wrappers .replace_all(&doc, "") .replace("\\\"", "\"") diff --git a/core/src/enums.rs b/core/src/enums.rs index aa2a31e..da2c6bf 100644 --- a/core/src/enums.rs +++ b/core/src/enums.rs @@ -115,7 +115,6 @@ pub use u32_try_from; /// assert_eq!(v1, v2); /// ``` /// - #[macro_export] macro_rules! u16_try_from { ($(#[$meta:meta])* $vis:vis enum $name:ident { @@ -173,7 +172,6 @@ pub use u16_try_from; /// assert_eq!(v1, v2); /// ``` /// - #[macro_export] macro_rules! u8_try_from { ($(#[$meta:meta])* $vis:vis enum $name:ident { diff --git a/core/src/utils.rs b/core/src/utils.rs index 0e764d7..1ae9f6c 100644 --- a/core/src/utils.rs +++ b/core/src/utils.rs @@ -22,7 +22,7 @@ pub fn buffer_as_slice_mut<'data, T: 'data>( data: &'data mut [u8], byte_offset: usize, elements: usize, -) -> &mut [T] { +) -> &'data mut [T] { unsafe { std::slice::from_raw_parts_mut::( std::mem::transmute::<*mut u8, *mut T>(data.as_mut_ptr().add(byte_offset)), diff --git a/core/src/wasm/overrides.rs b/core/src/wasm/overrides.rs index 4a2f290..85e44e2 100644 --- a/core/src/wasm/overrides.rs +++ b/core/src/wasm/overrides.rs @@ -61,9 +61,11 @@ impl TimerManager { blob_parts.push(&JsValue::from_str(code)); // Create a blob with the code + let blob_properties = BlobPropertyBag::new(); + blob_properties.set_type("application/javascript"); let blob = Blob::new_with_str_sequence_and_options( &blob_parts.into(), // Convert the array to a sequence - BlobPropertyBag::new().type_("application/javascript"), // Set the type to JavaScript + &blob_properties, // Set the type to JavaScript ) .expect("failed to create blob"); diff --git a/d3/src/graph.rs b/d3/src/graph.rs index 9eb2c34..b5dfa61 100644 --- a/d3/src/graph.rs +++ b/d3/src/graph.rs @@ -16,7 +16,7 @@ static mut DOM_INIT: bool = false; const ONE_DAY_MSEC: u64 = DAYS; const ONE_DAY_SEC: u64 = DAYS / 1000; -const LOWREW_CELL_SIZE: u64 = ONE_DAY_SEC / 4096; +const LOWREZ_CELL_SIZE: u64 = ONE_DAY_SEC / 4096; #[derive(Clone)] pub struct GraphDuration; @@ -588,7 +588,7 @@ impl Graph { context.begin_path(); context.move_to(0.0, height as f64); context.line_to(width as f64, height as f64); - context.set_stroke_style(&JsValue::from(&options.x_axis_color)); + context.set_stroke_style_str(&options.x_axis_color); context.stroke(); context.begin_path(); @@ -604,14 +604,14 @@ impl Graph { context.move_to(x, height as f64); context.line_to(x, height as f64 + tick_size); } - context.set_stroke_style(&JsValue::from(&options.x_axis_color)); + context.set_stroke_style_str(&options.x_axis_color); context.stroke(); // used for debugging context.set_text_align("center"); context.set_text_baseline("top"); - context.set_fill_style(&JsValue::from(&options.x_axis_color)); + context.set_fill_style_str(&options.x_axis_color); context.set_font(&options.x_axis_font); // context.fill_text( // &format!("{tick_width}/{width}/{count}/{count2}"), @@ -663,7 +663,7 @@ impl Graph { context.move_to(0.0, y); context.line_to(-tick_size, y); } - context.set_stroke_style(&JsValue::from(&options.y_axis_color)); + context.set_stroke_style_str(&options.y_axis_color); context.stroke(); let height = self.height(); context.begin_path(); @@ -671,12 +671,12 @@ impl Graph { context.line_to(0.0, 0.0); context.line_to(0.0, height as f64); context.line_to(-tick_size, height as f64); - context.set_stroke_style(&JsValue::from(&options.y_axis_color)); + context.set_stroke_style_str(&options.y_axis_color); context.stroke(); context.set_text_align("right"); context.set_text_baseline("middle"); - context.set_fill_style(&JsValue::from(&options.y_axis_color)); + context.set_fill_style_str(&options.y_axis_color); context.set_font(&options.y_axis_font); for tick in ticks { let y = self @@ -704,7 +704,7 @@ impl Graph { context.save(); context.set_text_baseline("top"); context.set_font(&title_font); - context.set_fill_style(&JsValue::from(&title_color)); + context.set_fill_style_str(&title_color); let metrics = if let Some(title) = self.title.as_ref() { context.measure_text(&format!("{} {}", title, self.value()))? } else { @@ -743,7 +743,7 @@ impl Graph { context.set_text_align("right"); context.set_text_baseline("top"); context.set_font(&y_caption_font); - context.set_fill_style(&JsValue::from(&y_caption_color)); + context.set_fill_style_str(&y_caption_color); context.fill_text(&self.y_caption, -10.0, 10.0)?; context.restore(); @@ -760,7 +760,7 @@ impl Graph { context.set_text_align("left"); context.set_text_baseline("top"); context.set_font(&title_font); - context.set_fill_style(&JsValue::from(&title_color)); + context.set_fill_style_str(&title_color); { let (y, height, width) = { @@ -877,7 +877,7 @@ impl Graph { self.data_hirez.push(&item.into()); let lowrez_cell = self.lowrez_cell.fetch_add(1, Ordering::SeqCst); - if lowrez_cell % LOWREW_CELL_SIZE == 0 { + if lowrez_cell % LOWREZ_CELL_SIZE == 0 { let lowrez_cell_value = self.lowrez_cell_value.load(Ordering::SeqCst); let lowrez_value = JsValue::from(lowrez_cell_value); let item = js_sys::Object::new(); @@ -931,7 +931,7 @@ impl Graph { let data = if secs > ONE_DAY_SEC as u32 { let len = self.data_lowrez.length(); - let cells = secs / LOWREW_CELL_SIZE as u32; + let cells = secs / LOWREZ_CELL_SIZE as u32; if let Some(start) = len.checked_sub(cells) { self.data_lowrez.slice(start, len) } else { @@ -953,8 +953,8 @@ impl Graph { let context = &self.context; context.begin_path(); self.area.call1(&JsValue::NULL, &data)?; - context.set_fill_style(&JsValue::from(&area_fill_color)); - context.set_stroke_style(&JsValue::from(&area_stroke_color)); + context.set_fill_style_str(&area_fill_color); + context.set_stroke_style_str(&area_stroke_color); context.fill(); context.stroke(); diff --git a/dom/src/download.rs b/dom/src/download.rs index e4a9f16..cc85907 100644 --- a/dom/src/download.rs +++ b/dom/src/download.rs @@ -9,8 +9,8 @@ pub fn data(filename: &str, content: &[u8], mime: &str) -> Result<()> { let args = Array::new_with_length(1); args.set(0, unsafe { Uint8Array::view(content).into() }); - let mut options = web_sys::BlobPropertyBag::new(); - options.type_(mime); + let options = web_sys::BlobPropertyBag::new(); + options.set_type(mime); let blob = Blob::new_with_u8_array_sequence_and_options(&args, &options)?; let url = Url::create_object_url_with_blob(&blob)?; diff --git a/dom/src/inject.rs b/dom/src/inject.rs index 2141376..22f57d1 100644 --- a/dom/src/inject.rs +++ b/dom/src/inject.rs @@ -102,8 +102,8 @@ where let args = Array::new_with_length(1); args.set(0, unsafe { Uint8Array::view(content.as_bytes()).into() }); - let mut options = web_sys::BlobPropertyBag::new(); - options.type_("application/javascript"); + let options = web_sys::BlobPropertyBag::new(); + options.set_type("application/javascript"); let blob = Blob::new_with_u8_array_sequence_and_options(&args, &options)?; let url = Url::create_object_url_with_blob(&blob)?; diff --git a/dom/src/loader.rs b/dom/src/loader.rs index d3ebdb6..82d319b 100644 --- a/dom/src/loader.rs +++ b/dom/src/loader.rs @@ -181,13 +181,13 @@ impl Content { let content = self.content(ctx)?; let args = Array::new_with_length(1); args.set(0, unsafe { Uint8Array::view(content.as_bytes()).into() }); - let mut options = web_sys::BlobPropertyBag::new(); + let options = web_sys::BlobPropertyBag::new(); match self.content_type { ContentType::Module | ContentType::Script => { - options.type_("application/javascript"); + options.set_type("application/javascript"); } ContentType::Style => { - options.type_("text/css"); + options.set_type("text/css"); } } diff --git a/egui/Cargo.toml b/egui/Cargo.toml index 5c56941..946c17f 100644 --- a/egui/Cargo.toml +++ b/egui/Cargo.toml @@ -36,17 +36,13 @@ borsh.workspace = true cfg-if.workspace = true wasm-bindgen.workspace = true workflow-core.workspace = true -# workflow-core-macros.workspace = true workflow-log.workspace = true workflow-wasm.workspace = true workflow-dom.workspace = true -# [target.'cfg(not(target_arch = "bpf"))'.dependencies] -# getrandom = {version = "^0.2", features=["js"]} async-channel.workspace = true async-std.workspace = true async-trait.workspace = true -# bs58.workspace = true futures.workspace = true getrandom.workspace = true instant.workspace = true @@ -54,17 +50,11 @@ rand.workspace = true serde.workspace = true thiserror.workspace = true triggered.workspace = true -# wasm-bindgen.workspace = true js-sys.workspace = true serde-wasm-bindgen.workspace = true dirs.workspace = true -# faster-hex.workspace = true -# workflow-log.workspace = true log.workspace = true - - - [target.'cfg(not(any(target_arch = "bpf", target_arch = "wasm32")))'.dependencies] tokio.workspace = true chrono.workspace = true @@ -77,19 +67,9 @@ wasm-bindgen-futures.workspace = true [dependencies.web-sys] workspace = true features = [ - # 'Window', - # 'Navigator', 'VisibilityState', - # 'Worker', - # 'Blob', - # 'BlobPropertyBag', - # 'Url', - # 'MessageEvent', + 'HtmlCanvasElement', ] -# [build-dependencies] -# vergen = { version = "8.2.6", features = ["build", "git", "gitcl", "rustc", "cargo"] } - - [lints.clippy] empty_docs = "allow" diff --git a/egui/README.md b/egui/README.md new file mode 100644 index 0000000..ff884b5 --- /dev/null +++ b/egui/README.md @@ -0,0 +1 @@ +WIP: Components for applications based on workflow-rs + EGUI. diff --git a/egui/src/fonts.rs b/egui/src/fonts.rs index aaab630..5f89220 100644 --- a/egui/src/fonts.rs +++ b/egui/src/fonts.rs @@ -1,4 +1,7 @@ -use egui::{FontData, FontDefinitions, FontFamily}; +use { + egui::{FontData, FontDefinitions, FontFamily}, + std::sync::Arc, +}; pub trait RegisterStaticFont { fn add_static(&mut self, family: FontFamily, name: &str, bytes: &'static [u8]); @@ -7,7 +10,7 @@ pub trait RegisterStaticFont { impl RegisterStaticFont for FontDefinitions { fn add_static(&mut self, family: FontFamily, name: &str, bytes: &'static [u8]) { self.font_data - .insert(name.to_owned(), FontData::from_static(bytes)); + .insert(name.to_owned(), Arc::new(FontData::from_static(bytes))); self.families .entry(family) diff --git a/egui/src/frame/app.rs b/egui/src/frame/app.rs index 8bea9b1..7dacad4 100644 --- a/egui/src/frame/app.rs +++ b/egui/src/frame/app.rs @@ -33,7 +33,6 @@ pub trait App: Sized + 'static { fn init(&mut self, _runtime: &Runtime, _cc: &eframe::CreationContext<'_>) {} - // fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame); fn render(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame); fn save(&mut self, _storage: &mut dyn eframe::Storage) {} diff --git a/egui/src/frame/mod.rs b/egui/src/frame/mod.rs index a1e97fa..dd6f475 100644 --- a/egui/src/frame/mod.rs +++ b/egui/src/frame/mod.rs @@ -110,6 +110,8 @@ cfg_if! { where T : App { use workflow_dom::utils::document; + use web_sys::HtmlCanvasElement; + use wasm_bindgen::JsCast; // Redirect `log` message to `console.log` and friends: eframe::WebLogger::init(log::LevelFilter::Debug).ok(); @@ -118,9 +120,14 @@ cfg_if! { element.remove(); } + let Some(canvas) = document().get_element_by_id(options.canvas_id.as_str()) else { + return Err(Error::custom("canvas_id is required (workflow-egui/frame.rs)")); + }; + eframe::WebRunner::new() .start( - options.canvas_id.as_str(), + canvas.dyn_into::() + .map_err(|_| Error::custom("Element is not a canvas"))?, options.web_options, Box::new(move |cc| { let runtime = Runtime::new(&cc.egui_ctx, events); diff --git a/egui/src/imports.rs b/egui/src/imports.rs index 11333d3..2a90c35 100644 --- a/egui/src/imports.rs +++ b/egui/src/imports.rs @@ -31,4 +31,4 @@ pub use egui::{Rect, Vec2}; pub use owning_ref::{OwningRef, OwningRefMut}; pub use std::collections::VecDeque; pub use std::marker::PhantomData; -pub use web_sys::VisibilityState; +pub use web_sys::{HtmlCanvasElement, VisibilityState}; diff --git a/egui/src/module/module.rs b/egui/src/module/module.rs index f20cd29..a3457cf 100644 --- a/egui/src/module/module.rs +++ b/egui/src/module/module.rs @@ -1,34 +1,5 @@ -// use std::any::type_name; - use crate::imports::*; -// workflow_egui_macros::register_modules!( -// register_generic_modules, -// [ -// account_create, -// account_manager, -// donations, -// export, -// import, -// overview, -// private_key_create, -// request, -// scanner, -// settings, -// testing, -// wallet_create, -// wallet_open, -// wallet_secret, -// welcome, -// ] -// ); - -// #[cfg(not(target_arch = "wasm32"))] -// kaspa_ng_macros::register_modules!(register_native_modules, [changelog, logs, node,]); - -// #[cfg(not(feature = "lean"))] -// kaspa_ng_macros::register_modules!(register_advanced_modules, [block_dag, metrics,]); - pub enum ModuleStyle { Mobile, Default, @@ -60,19 +31,12 @@ pub trait ModuleT: Downcast { } fn style(&self) -> ModuleStyle { - // ModuleStyle::Large ModuleStyle::Default } - // fn status_bar(&self, _core: &mut Core, _ui: &mut Ui) {} fn activate(&mut self, _core: &mut Self::Context) {} + fn deactivate(&mut self, _core: &mut Self::Context) {} - // fn reset(&mut self, _core: &mut Core) {} - // fn connect(&mut self, _core: &mut Core, _network: Network) {} - // fn disconnect(&mut self, _core: &mut Core) {} - // fn network_change(&mut self, _core: &mut Core, _network: Network) {} - // fn hide(&mut self, _core: &mut Self::Core) {} - // fn show(&mut self, _core: &mut Self::Core) {} fn main(&mut self, _core: &mut Self::Context) {} diff --git a/egui/src/runtime/panic.rs b/egui/src/runtime/panic.rs index df3ceb2..219f26b 100644 --- a/egui/src/runtime/panic.rs +++ b/egui/src/runtime/panic.rs @@ -9,10 +9,10 @@ pub fn init_graceful_panic_handler() { let backtrace = Backtrace::capture(); // println!("panic! \n{:#?}\n{:#?}", panic_info, backtrace); let _ = fs::write( - "kaspa-ng.log", + "application-panic.log", format!("{:#?}\n{:#?}", panic_info, backtrace), ); - println!("An unexpected condition (panic) has occurred. Additional information has been written to `kaspa-ng.log`"); + println!("An unexpected condition (panic) has occurred. Additional information has been written to `application-panic.log`"); default_hook(panic_info); Runtime::abort(); })); @@ -23,11 +23,11 @@ pub fn init_ungraceful_panic_handler() { panic::set_hook(Box::new(move |panic_info| { let backtrace = Backtrace::capture(); let _ = fs::write( - "kaspa-ng-service.log", + "service-panic.log", format!("{:#?}\n{:#?}", panic_info, backtrace), ); default_hook(panic_info); - println!("An unexpected condition (panic) has occurred. Additional information has been written to `kaspa-ng-service.log`"); + println!("An unexpected condition (panic) has occurred. Additional information has been written to `service-panic.log`"); println!("Exiting..."); std::process::exit(1); })); diff --git a/gpt/Cargo.toml b/gpt/Cargo.toml index c6367f0..0dfd08c 100644 --- a/gpt/Cargo.toml +++ b/gpt/Cargo.toml @@ -13,7 +13,7 @@ Utilities for interfacing with OpenAI ChatGPT. """ [dependencies] -reqwest.workspace = true +reqwest = { workspace = true, features = ["json"] } serde_json.workspace = true serde.workspace = true thiserror.workspace = true diff --git a/html/macros/src/attributes.rs b/html/macros/src/attributes.rs index 602fa97..83c81a0 100644 --- a/html/macros/src/attributes.rs +++ b/html/macros/src/attributes.rs @@ -31,7 +31,7 @@ pub struct Attributes<'a> { list: Vec>, } -impl<'a> Attributes<'a> { +impl Attributes<'_> { /* pub fn get_names(&self)->Vec{ let mut list = vec![]; @@ -230,7 +230,7 @@ impl<'a> Attribute<'a> { } } -impl<'a> Parse for Attribute<'a> { +impl Parse for Attribute<'_> { fn parse(input: ParseStream) -> Result { let mut attr_type = AttributeType::Str; if input.peek(Token![?]) { diff --git a/html/macros/src/element.rs b/html/macros/src/element.rs index c45a008..a064397 100644 --- a/html/macros/src/element.rs +++ b/html/macros/src/element.rs @@ -39,7 +39,7 @@ pub struct Element<'a> { pub children: Option>, } -impl<'a> Parse for Element<'a> { +impl Parse for Element<'_> { fn parse(input: ParseStream) -> Result { //println!("================== start: Element parsing #######################"); let span = input.span(); @@ -66,7 +66,7 @@ impl<'a> Parse for Element<'a> { } } -impl<'a> Element<'a> { +impl Element<'_> { fn is_custom_element(&self) -> bool { self.tag.name.is_custom_element() } @@ -89,7 +89,7 @@ impl<'a> Element<'a> { } } -impl<'a> ToTokens for Element<'a> { +impl ToTokens for Element<'_> { fn to_tokens(&self, tokens: &mut TokenStream) { //let mut properties:Vec = vec![]; let children = self.children_stream(); @@ -143,7 +143,7 @@ pub struct OpeningTag<'a> { fn get_fragment_tag_name() -> TagName { Punctuated::new() // Ident::new("x", Span::call_site()) } -impl<'a> Parse for OpeningTag<'a> { +impl Parse for OpeningTag<'_> { fn parse(input: ParseStream) -> Result { let mut self_closing = false; let name; @@ -221,7 +221,7 @@ pub struct Nodes<'a> { list: Vec>, } -impl<'a> Nodes<'a> { +impl Nodes<'_> { pub fn len(&self) -> usize { self.list.len() } @@ -246,7 +246,7 @@ impl<'a> Nodes<'a> { } } -impl<'a> Parse for Nodes<'a> { +impl Parse for Nodes<'_> { fn parse(input: ParseStream) -> Result { let mut list: Vec = vec![]; //println!("================== start: Nodes parsing =================="); @@ -260,7 +260,7 @@ impl<'a> Parse for Nodes<'a> { Ok(Nodes { list }) } } -impl<'a> ToTokens for Nodes<'a> { +impl ToTokens for Nodes<'_> { fn to_tokens(&self, tokens: &mut TokenStream) { self.get_tuples().to_tokens(tokens); } @@ -273,7 +273,7 @@ pub enum Node<'a> { Literal(Literal), } -impl<'a> Parse for Node<'a> { +impl Parse for Node<'_> { fn parse(input: ParseStream) -> Result { let node = if input.peek(Token![<]) { Node::Element(input.parse::()?) @@ -314,7 +314,8 @@ impl<'a> Parse for Node<'a> { Ok(node) } } -impl<'a> ToTokens for Node<'a> { + +impl ToTokens for Node<'_> { fn to_tokens(&self, tokens: &mut TokenStream) { match self { Node::Element(el) => { diff --git a/http/Cargo.toml b/http/Cargo.toml index 41c6da4..16d2fcd 100644 --- a/http/Cargo.toml +++ b/http/Cargo.toml @@ -27,3 +27,36 @@ reqwest.workspace = true [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio.workspace = true + + +[features] +default = ["reqwest/default"] + +http2 = ["reqwest/http2"] + +native-tls = ["reqwest/native-tls"] +native-tls-alpn = ["reqwest/native-tls-alpn"] +native-tls-vendored = ["reqwest/native-tls-vendored"] + +rustls-tls = ["reqwest/rustls-tls"] +rustls-tls-no-provider = ["reqwest/rustls-tls-no-provider"] + +rustls-tls-manual-roots = ["reqwest/rustls-tls-manual-roots"] +rustls-tls-webpki-roots = ["reqwest/rustls-tls-webpki-roots"] +rustls-tls-native-roots = ["reqwest/rustls-tls-native-roots"] +rustls-tls-manual-roots-no-provider = ["reqwest/rustls-tls-manual-roots-no-provider"] + +charset = ["reqwest/charset"] +cookies = ["reqwest/cookies"] + +gzip = ["reqwest/gzip"] +brotli = ["reqwest/brotli"] +zstd = ["reqwest/zstd"] +deflate = ["reqwest/deflate"] + +hickory-dns = ["reqwest/hickory-dns"] + +socks = ["reqwest/socks"] + +# Use the system's proxy configuration. +macos-system-configuration = ["reqwest/macos-system-configuration"] \ No newline at end of file diff --git a/i18n/src/i18n.rs b/i18n/src/i18n.rs index 1a1f669..5d9aa8a 100644 --- a/i18n/src/i18n.rs +++ b/i18n/src/i18n.rs @@ -610,7 +610,7 @@ pub struct Data<'data> { translations: FxHashMap<&'data str, Arc>>, } -impl<'data> Default for Data<'data> { +impl Default for Data<'_> { fn default() -> Self { let languages = Languages::default().into_inner(); diff --git a/nw/src/ipc/ipc.rs b/nw/src/ipc/ipc.rs index f86bcb3..765c983 100644 --- a/nw/src/ipc/ipc.rs +++ b/nw/src/ipc/ipc.rs @@ -171,9 +171,9 @@ where Ok(()) } - pub async fn handle_message<'data>( + pub async fn handle_message( &self, - message: BorshMessage<'data, IpcId>, + message: BorshMessage<'_, IpcId>, source: Option, ) -> Result<()> { let BorshMessage:: { header, payload } = message; diff --git a/nw/src/media.rs b/nw/src/media.rs index 30f8cdd..e50334a 100644 --- a/nw/src/media.rs +++ b/nw/src/media.rs @@ -207,10 +207,9 @@ pub fn get_user_media( let audio_constraints = audio_constraints.unwrap_or_else(|| JsValue::from(false)); - let mut constraints = web_sys::MediaStreamConstraints::new(); - constraints - .audio(&audio_constraints) - .video(&JsValue::from(&video_constraints)); + let constraints = web_sys::MediaStreamConstraints::new(); + constraints.set_audio(&audio_constraints); + constraints.set_video(&JsValue::from(&video_constraints)); log_debug!("constraints: {:?}", constraints); diff --git a/panic-hook/src/lib.rs b/panic-hook/src/lib.rs index 4476431..f0151d3 100644 --- a/panic-hook/src/lib.rs +++ b/panic-hook/src/lib.rs @@ -99,7 +99,7 @@ cfg_if! { } else { use std::io::{self, Write}; - fn hook(info: &panic::PanicInfo) { + fn hook(info: &panic::PanicHookInfo) { let _ = writeln!(io::stderr(), "{info}"); } diff --git a/rpc/src/server/interface/notification.rs b/rpc/src/server/interface/notification.rs index d06e532..92cc5b5 100644 --- a/rpc/src/server/interface/notification.rs +++ b/rpc/src/server/interface/notification.rs @@ -37,7 +37,6 @@ pub type NotificationFnReturn = Pin>)>>; /// RPC notification wrapper. Contains the notification closure function. - pub struct Notification where ServerContext: Send + Sync + 'static, diff --git a/serializer/src/payload.rs b/serializer/src/payload.rs index d85479b..eec0430 100644 --- a/serializer/src/payload.rs +++ b/serializer/src/payload.rs @@ -10,7 +10,7 @@ pub mod ser { where T: Serializer; - impl<'a, T> Serializer for Payload<'a, T> + impl Serializer for Payload<'_, T> where T: Serializer, { diff --git a/wasm/macros/src/derive_cast_from_js.rs b/wasm/macros/src/derive_cast_from_js.rs index 711c3f1..0e014f4 100644 --- a/wasm/macros/src/derive_cast_from_js.rs +++ b/wasm/macros/src/derive_cast_from_js.rs @@ -21,10 +21,14 @@ pub fn derive_cast_from_js(input: TokenStream) -> TokenStream { Data::Struct(_) => { quote! { impl ::workflow_wasm::convert::CastFromJs for #name { - fn try_ref_from_js_value(js: impl AsRef<::wasm_bindgen::JsValue>) -> std::result::Result<::Anchor, ::workflow_wasm::error::Error> { + fn try_ref_from_js_value<'a, R>(js: &'a R) -> std::result::Result<::Anchor, ::workflow_wasm::error::Error> + where R: AsRef<::wasm_bindgen::JsValue> + 'a + { ::workflow_wasm::convert::try_ref_from_abi_safe::(::core::stringify!(#name), js) } - fn try_long_ref_from_js_value(js: impl AsRef<::wasm_bindgen::JsValue>) -> std::result::Result<::Anchor, ::workflow_wasm::error::Error> { + fn try_long_ref_from_js_value<'a, R>(js: &'a R) -> std::result::Result<::Anchor, ::workflow_wasm::error::Error> + where R: AsRef<::wasm_bindgen::JsValue> + 'a + { ::workflow_wasm::convert::try_long_ref_from_abi_safe::(::core::stringify!(#name), js) } } @@ -34,7 +38,7 @@ pub fn derive_cast_from_js(input: TokenStream) -> TokenStream { quote! { impl #name { // pub fn try_from_js_value(js: &::wasm_bindgen::JsValue) -> std::result::Result { - pub fn try_cast_from(js: &::wasm_bindgen::JsValue) -> std::result::Result { + pub fn try_enum_from(js: &::wasm_bindgen::JsValue) -> std::result::Result { ::try_from_js_value(js.clone()) .map_err(|err| ::workflow_wasm::error::Error::from(err)) } diff --git a/wasm/macros/src/derive_try_from_jsvalue_v1.rs b/wasm/macros/src/derive_try_from_jsvalue_v1.rs deleted file mode 100644 index 09028b5..0000000 --- a/wasm/macros/src/derive_try_from_jsvalue_v1.rs +++ /dev/null @@ -1,284 +0,0 @@ -/*! -This module is based on [`wasm-bindgen-derive`](https://crates.io/crates/wasm-bindgen-derive) crate -with customizations to use `std::result::Result` (otherwise it may conflict with a local `Result` declaration). - -This is a specialized module exporting a derive macro `TryFromJsValue` -that serves as a basis for workarounds for some lapses of functionality in -[`wasm-bindgen`](https://crates.io/crates/wasm-bindgen). - - -## Optional arguments - -`wasm-bindgen` supports method arguments of the form `Option`, -where `T` is an exported type, but it has an unexpected side effect on the JS side: -the value passed to a method this way gets consumed (mimicking Rust semantics). -See [this issue](https://github.com/rustwasm/wasm-bindgen/issues/2370). -`Option<&T>` is not currently supported, but an equivalent behavior can be implemented manually. - -```ignore -extern crate alloc; -use js_sys::Error; -use wasm_bindgen::prelude::{wasm_bindgen, JsValue}; -use wasm_bindgen_derive::TryFromJsValue; - -// Derive `TryFromJsValue` for the target structure (note that it has to come -// before the `[#wasm_bindgen]` attribute, and requires `Clone`): -#[derive(TryFromJsValue)] -#[wasm_bindgen] -#[derive(Clone)] -struct MyType(usize); - -// To have a correct typing annotation generated for TypeScript, declare a custom type. -#[wasm_bindgen] -extern "C" { - #[wasm_bindgen(typescript_type = "MyType | null")] - pub type OptionMyType; -} - -// Use this type in the function signature. -pub fn foo(value: &OptionMyType) -> Result { - let js_value: &JsValue = value.as_ref(); - let typed_value: Option = if js_value.is_null() { - None - } else { - Some(MyType::try_from(js_value).map_err(|err| Error::new(&err))?) - }; - // Use the typed value - Ok(typed_value.map(|value| value.0).unwrap_or_default()) -} -``` - -## Vector arguments - -`wasm-bindgen` currently does not support vector arguments with elements having an exported type. -See [this issue](https://github.com/rustwasm/wasm-bindgen/issues/111), -which, although it is mainly about returning vectors, will probably allow taking vectors too -when fixed. - -The workaround is similar to that for the optional arguments, with one step added, -where we try to cast the [`JsValue`](`wasm_bindgen::JsValue`) into [`Array`](`js_sys::Array`). -The following example also shows how to return an array with elements having an exported type. - -```ignore -extern crate alloc; -use js_sys::Error; -use wasm_bindgen::JsCast; -use wasm_bindgen::prelude::{wasm_bindgen, JsValue}; -use wasm_bindgen_derive::TryFromJsValue; - -#[derive(TryFromJsValue)] -#[wasm_bindgen] -#[derive(Clone)] -struct MyType(usize); - -// To have a correct typing annotation generated for TypeScript, declare a custom type. -#[wasm_bindgen] -extern "C" { - #[wasm_bindgen(typescript_type = "MyType[]")] - pub type MyTypeArray; -} - -// Use this type in the function signature. -pub fn foo(val: &MyTypeArray) -> Result { - - // Unpack the array - - let js_val: &JsValue = val.as_ref(); - if !js_sys::Array::is_array(js_val) { - return Err(Error::new("The argument must be an array")); - } - let array = js_sys::Array::from(js_val); - let length: usize = array.length().try_into().map_err(|err| Error::new(&format!("{}", err)))?; - let mut typed_array = Vec::::with_capacity(length); - for js in array.iter() { - let typed_elem = MyType::try_from(&js).map_err(|err| Error::new(&err))?; - typed_array.push(typed_elem); - } - - // Now we have `typed_array: Vec`. - - // Return the array - - Ok(typed_array - .into_iter() - .map(JsValue::from) - .collect::() - .unchecked_into::()) -} -``` -*/ -#![warn(missing_docs, unused_qualifications)] - -extern crate alloc; - -use alloc::format; -use alloc::string::ToString; - -use proc_macro::TokenStream; -use proc_macro2::{Span, TokenStream as TokenStream2}; -use quote::quote; -use syn::{parse_macro_input, Data, DeriveInput, Error}; - -macro_rules! derive_error { - ($string: tt) => { - Error::new(Span::call_site(), $string) - .to_compile_error() - .into() - }; -} - -/** Derives a `TryFrom<&JsValue>` for a type exported using `#[wasm_bindgen]`. - -Note that: -* this derivation must be be positioned before `#[wasm_bindgen]`; -* the type must implement [`Clone`]. -* `extern crate alloc` must be declared in scope. - -The macro is authored by [**@AlexKorn**](https://github.com/AlexKorn) -based on the idea of [**@aweinstock314**](https://github.com/aweinstock314). -See [this](https://github.com/rustwasm/wasm-bindgen/issues/2231#issuecomment-656293288) -and [this](https://github.com/rustwasm/wasm-bindgen/issues/2231#issuecomment-1169658111) -GitHub comments. -*/ -// #[proc_macro_derive(TryFromJsValue)] -pub fn derive_try_from_jsvalue(input: TokenStream) -> TokenStream { - let input: DeriveInput = parse_macro_input!(input as DeriveInput); - - let name = input.ident; - let data = input.data; - - match data { - Data::Struct(_) => {} - _ => return derive_error!("TryFromJsValue may only be derived on structs"), - }; - - let wasm_bindgen_meta = input.attrs.iter().find_map(|attr| { - attr.parse_meta() - .ok() - .and_then(|meta| match meta.path().is_ident("wasm_bindgen") { - true => Some(meta), - false => None, - }) - }); - if wasm_bindgen_meta.is_none() { - return derive_error!( - "TryFromJsValue can be defined only on struct exported to wasm with #[wasm_bindgen]" - ); - } - - let maybe_js_class = wasm_bindgen_meta - .and_then(|meta| match meta { - syn::Meta::List(list) => Some(list), - _ => None, - }) - .and_then(|meta_list| { - meta_list.nested.iter().find_map(|nested_meta| { - let maybe_meta = match nested_meta { - syn::NestedMeta::Meta(meta) => Some(meta), - _ => None, - }; - - maybe_meta - .and_then(|meta| match meta { - syn::Meta::NameValue(name_value) => Some(name_value), - _ => None, - }) - .and_then(|name_value| match name_value.path.is_ident("js_name") { - true => Some(name_value.lit.clone()), - false => None, - }) - .and_then(|lit| match lit { - syn::Lit::Str(str) => Some(str.value()), - _ => None, - }) - }) - }); - - let wasm_bindgen_macro_invocaton = match maybe_js_class { - Some(class) => format!("wasm_bindgen(js_class = \"{class}\")"), - None => "wasm_bindgen".to_string(), - } - .parse::() - .unwrap(); - - let expanded = quote! { - impl #name { - pub fn __get_classname() -> &'static str { - ::core::stringify!(#name) - } - } - - #[#wasm_bindgen_macro_invocaton] - impl #name { - #[wasm_bindgen(js_name = "__getClassname")] - pub fn __js_get_classname(&self) -> String { - use ::alloc::borrow::ToOwned; - ::core::stringify!(#name).to_owned() - } - // } - - // impl ::core::convert::TryFrom<&::wasm_bindgen::JsValue> for #name { - // type Error = String; - - // fn try_from(js: &::wasm_bindgen::JsValue) -> std::result::Result { - fn try_clone_from_js_value(js: &::wasm_bindgen::JsValue) -> std::result::Result { - try_ref_from_js_value(js).map(|instance| instance.clone()) - } - - fn try_ref_from_js_value(js: &::wasm_bindgen::JsValue) -> std::result::Result, Self::Error> { - use ::alloc::borrow::ToOwned; - use ::alloc::string::ToString; - use ::wasm_bindgen::JsCast; - use ::wasm_bindgen::convert::RefFromWasmAbi; - - let classname = Self::__get_classname(); - - if !js.is_object() { - return Err(format!("Value supplied as {} is not an object", classname)); - } - - let no_get_classname_msg = concat!( - "no __getClassname method specified for object; ", - "did you forget to derive TryFromJsObject for this type?"); - - let get_classname = ::js_sys::Reflect::get( - js, - &::wasm_bindgen::JsValue::from("__getClassname"), - ) - .or(Err(no_get_classname_msg.to_string()))?; - - if get_classname.is_undefined() { - return Err(no_get_classname_msg.to_string()); - } - - let get_classname = get_classname - .dyn_into::<::js_sys::Function>() - .map_err(|err| format!("__getClassname is not a function, {:?}", err))?; - - let object_classname: String = ::js_sys::Reflect::apply( - &get_classname, - js, - &::js_sys::Array::new(), - ) - .ok() - .and_then(|v| v.as_string()) - .ok_or_else(|| "Failed to get classname".to_owned())?; - - if object_classname.as_str() == classname { - let ptr = ::js_sys::Reflect::get(js, &::wasm_bindgen::JsValue::from_str("__wbg_ptr")) - .map_err(|err| format!("{:?}", err))?; - let ptr_u32: u32 = ptr.as_f64().ok_or(::wasm_bindgen::JsValue::NULL) - .map_err(|err| format!("{:?}", err))? - as u32; - let instance_ref = unsafe { #name::ref_from_abi(ptr_u32) }; - Ok(instance_ref) - // Ok(instance_ref.clone()) - } else { - Err(format!("Cannot convert {} to {}", object_classname, classname)) - } - } - } - }; - - TokenStream::from(expanded) -} diff --git a/wasm/src/convert.rs b/wasm/src/convert.rs index 29d0832..df4f021 100644 --- a/wasm/src/convert.rs +++ b/wasm/src/convert.rs @@ -76,65 +76,107 @@ pub fn validate_class_names() -> bool { /// [`Cast`] then provides [`Cast::as_ref()`] to obtain the internally held /// reference and [`Cast::into_owned()`] where the latter will consume the /// value or clone the reference. -pub enum Cast +pub enum Cast<'a, T> +where + T: RefFromWasmAbi + LongRefFromWasmAbi + 'a, +{ + Ref { + anchor: ::Anchor, + }, + OwnedRef { + js_value: Option, + anchor: Option<::Anchor>, + }, + LongRef { + anchor: ::Anchor, + }, + Value { + value: Option, + }, + _Unreachable(std::convert::Infallible, &'a std::marker::PhantomData), +} + +impl Drop for Cast<'_, T> where T: RefFromWasmAbi + LongRefFromWasmAbi, { - Ref(::Anchor), - LongRef(::Anchor), - Value(T), + fn drop(&mut self) { + if let Cast::OwnedRef { js_value, anchor } = self { + // ensure anchor is dropped before js_value + // as anchor holds a borrow, while js_value Drop impl requires a borrow + drop(anchor.take()); + drop(js_value.take()); + } + } } -impl Deref for Cast +impl Deref for Cast<'_, T> where T: RefFromWasmAbi + LongRefFromWasmAbi + Deref, { type Target = T; fn deref(&self) -> &Self::Target { match self { - Cast::Ref(r) => r, - Cast::LongRef(r) => r.borrow(), - Cast::Value(v) => v, + Cast::Ref { anchor } => anchor, + Cast::OwnedRef { anchor, .. } => anchor.as_ref().unwrap(), + Cast::LongRef { anchor } => anchor.borrow(), + Cast::Value { value } => value.as_ref().unwrap(), + Cast::_Unreachable(_, _) => unreachable!(), } } } -impl AsRef for Cast +impl AsRef for Cast<'_, T> where T: RefFromWasmAbi + LongRefFromWasmAbi, { /// Obtain a reference to the internally held value. fn as_ref(&self) -> &T { match self { - Cast::Ref(r) => r, - Cast::LongRef(r) => r.borrow(), - Cast::Value(v) => v, + Cast::Ref { anchor } => anchor, + Cast::OwnedRef { anchor, .. } => anchor.as_ref().unwrap(), + Cast::LongRef { anchor } => anchor.borrow(), + Cast::Value { value } => value.as_ref().unwrap(), + Cast::_Unreachable(_, _) => unreachable!(), } } } -impl Cast +impl Cast<'_, T> where - T: RefFromWasmAbi + LongRefFromWasmAbi + Clone, // + ToOwned, + T: RefFromWasmAbi + LongRefFromWasmAbi + Clone, { /// Consume the [`Cast`] and return the owned value. If the /// [`Cast`] holds a reference, it will be cloned. - pub fn into_owned(self) -> T { - match self { - Cast::Ref(r) => (*r).clone(), - Cast::LongRef(r) => r.borrow().clone(), - Cast::Value(v) => v, + pub fn into_owned(mut self) -> T { + match &mut self { + Cast::Ref { anchor } => (*anchor).clone(), + Cast::OwnedRef { js_value, anchor } => { + let value = (*anchor.as_ref().unwrap()).clone(); + drop(anchor.take()); + drop(js_value.take()); + value + } + Cast::LongRef { anchor } => (*anchor).borrow().clone(), + Cast::Value { value } => value.take().unwrap(), + Cast::_Unreachable(_, _) => unreachable!(), } } + + pub fn value(value: T) -> Self { + Cast::Value { value: Some(value) } + } + + // pub fn captured_ref(js_value : impl AsRef) } /// Cast T value (struct) into `Cast` -impl From for Cast +impl<'a, T> From for Cast<'a, T> where T: RefFromWasmAbi + LongRefFromWasmAbi, { - fn from(value: T) -> Cast { - Cast::Value(value) + fn from(value: T) -> Cast<'a, T> { + Cast::Value { value: Some(value) } } } @@ -146,25 +188,35 @@ where Self: Sized + RefFromWasmAbi + LongRefFromWasmAbi, { /// Obtain safe reference from [`JsValue`] - fn try_ref_from_js_value( - js: impl AsRef, - ) -> std::result::Result<::Anchor, Error>; - - fn try_ref_from_js_value_as_cast( - js: impl AsRef, - ) -> std::result::Result, Error> { - Self::try_ref_from_js_value(js).map(Cast::Ref) + fn try_ref_from_js_value<'a, R>( + js_value: &'a R, + ) -> std::result::Result<::Anchor, Error> + where + R: AsRef + 'a; + + fn try_ref_from_js_value_as_cast<'a, R>( + js_value: &'a R, + ) -> std::result::Result, Error> + where + R: AsRef + 'a, + { + Self::try_ref_from_js_value(js_value).map(|anchor| Cast::Ref { anchor }) } /// Obtain safe long reference from [`JsValue`] - fn try_long_ref_from_js_value( - js: impl AsRef, - ) -> std::result::Result<::Anchor, Error>; - - fn try_long_ref_from_js_value_as_cast( - js: impl AsRef, - ) -> std::result::Result, Error> { - Self::try_long_ref_from_js_value(js).map(Cast::LongRef) + fn try_long_ref_from_js_value<'a, R>( + js: &'a R, + ) -> std::result::Result<::Anchor, Error> + where + R: AsRef + 'a; + + fn try_long_ref_from_js_value_as_cast<'a, R>( + js: &'a R, + ) -> std::result::Result, Error> + where + R: AsRef + 'a, + { + Self::try_long_ref_from_js_value(js).map(|anchor| Cast::LongRef { anchor }) } } @@ -183,25 +235,42 @@ where /// attempts to cast a JsValue into a Rust object /// or interpret a source data and create a /// temporary struct owned by by the [`Cast`]. - fn try_cast_from(value: impl AsRef) -> std::result::Result, Self::Error>; + fn try_cast_from<'a, R>(value: &'a R) -> std::result::Result, Self::Error> + where + R: AsRef + 'a; /// Perform a user cast and consume the [`Cast`] container. /// This function will return a temporary user-created /// object created during [`try_cast_from`] or a clone of the casted reference. fn try_owned_from(value: impl AsRef) -> std::result::Result { - Self::try_cast_from(value).map(|c| c.into_owned()) + Self::try_cast_from(&value).map(|c| c.into_owned()) + } + + fn try_captured_cast_from( + js_value: impl AsRef, + ) -> std::result::Result, Self::Error> { + let js_value = js_value.as_ref().clone(); + Ok( + Self::try_ref_from_js_value(&js_value).map(|anchor| Cast::OwnedRef { + js_value: Some(js_value), + anchor: Some(anchor), + })?, + ) } /// Try to cast a JsValue into a Rust object, in cast of failure /// invoke a user-supplied closure that can try to create an instance /// of the object based on the supplied JsValue. - fn resolve( - js: impl AsRef, + fn resolve<'a, R>( + js: &'a R, create: impl FnOnce() -> std::result::Result, - ) -> std::result::Result, Self::Error> { + ) -> std::result::Result, Self::Error> + where + R: AsRef + 'a, + { Self::try_ref_from_js_value(js) - .map(Cast::::Ref) - .or_else(|_| create().map(Cast::::Value)) + .map(|anchor| Cast::Ref { anchor }) + .or_else(|_| create().map(|value| Cast::Value { value: Some(value) })) } /// Try to cast a JsValue into a Rust object, in cast of failure @@ -210,12 +279,15 @@ where /// function, this function expects `create` closure to return a [`Cast`]. /// This is useful when routing the creation of the object to another /// function that is capable of creating a compatible Cast wrapper. - fn resolve_cast( - js: impl AsRef, - create: impl FnOnce() -> std::result::Result, Self::Error>, - ) -> std::result::Result, Self::Error> { + fn resolve_cast<'a, R>( + js: &'a R, + create: impl FnOnce() -> std::result::Result, Self::Error>, + ) -> std::result::Result, Self::Error> + where + R: AsRef + 'a, + { Self::try_ref_from_js_value(js) - .map(Cast::::Ref) + .map(|anchor| Cast::Ref { anchor }) .or_else(|_| create()) } } diff --git a/wasm/src/extensions/object.rs b/wasm/src/extensions/object.rs index 0a95bb5..68cfe11 100644 --- a/wasm/src/extensions/object.rs +++ b/wasm/src/extensions/object.rs @@ -25,14 +25,24 @@ pub trait ObjectExtension { >::Error: std::fmt::Display; /// Obtain a [`Cast`] from a property of the [`Object`]. - fn get_cast(&self, prop: &str) -> Result, Error> + fn cast_into(&self, prop: &str) -> Result + where + T: TryCastFromJs, + ::Error: std::fmt::Display; + + fn cast_from(&self, prop: &str) -> Result, Error> where T: TryCastFromJs, ::Error: std::fmt::Display; /// Try to obtain a [`Cast`] from a property of the [`Object`]. /// Returns `Ok(None)` if the property does not exist (`null` or `undefined`). - fn try_get_cast(&self, prop: &str) -> Result>, Error> + fn try_cast_into(&self, prop: &str) -> Result, Error> + where + T: TryCastFromJs, + ::Error: std::fmt::Display; + + fn try_cast_from(&self, prop: &str) -> Result>, Error> where T: TryCastFromJs, ::Error: std::fmt::Display; @@ -103,16 +113,38 @@ impl ObjectExtension for Object { } } - fn get_cast(&self, prop: &str) -> Result, Error> + fn cast_into(&self, prop: &str) -> Result + where + T: TryCastFromJs, + ::Error: std::fmt::Display, + { + let js_value = Reflect::get(self, &JsValue::from(prop))?; + T::try_owned_from(&js_value).map_err(Error::custom) + } + + fn cast_from(&self, prop: &str) -> Result, Error> where T: TryCastFromJs, ::Error: std::fmt::Display, { let js_value = Reflect::get(self, &JsValue::from(prop))?; - T::try_cast_from(js_value).map_err(Error::custom) + T::try_captured_cast_from(&js_value).map_err(Error::custom) + } + + fn try_cast_into(&self, prop: &str) -> Result, Error> + where + T: TryCastFromJs, + ::Error: std::fmt::Display, + { + let js_value = Reflect::get(self, &JsValue::from(prop))?; + if js_value.is_undefined() { + Ok(None) + } else { + Ok(Some(T::try_owned_from(js_value).map_err(Error::custom)?)) + } } - fn try_get_cast(&self, prop: &str) -> Result>, Error> + fn try_cast_from(&self, prop: &str) -> Result>, Error> where T: TryCastFromJs, ::Error: std::fmt::Display, @@ -121,7 +153,9 @@ impl ObjectExtension for Object { if js_value.is_undefined() { Ok(None) } else { - Ok(Some(T::try_cast_from(js_value).map_err(Error::custom)?)) + Ok(Some( + T::try_captured_cast_from(js_value).map_err(Error::custom)?, + )) } }