diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index f9d85a29..66615ad9 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -25,13 +25,13 @@ jobs: - name: Rust Setup uses: dtolnay/rust-toolchain@master with: - toolchain: "nightly-2024-09-23" + toolchain: "nightly-2024-12-07" targets: "x86_64-unknown-linux-musl,wasm32-unknown-unknown" components: "clippy,rustfmt" - uses: cargo-bins/cargo-binstall@main - name: cargo-leptos setup - run: cargo binstall --no-confirm cargo-leptos --version 0.2.19 + run: cargo binstall --no-confirm cargo-leptos --version 0.2.22 - name: Cache rust dependencies and build output uses: Swatinem/rust-cache@v2 diff --git a/Cargo.lock b/Cargo.lock index e2629e82..fd62c976 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,12 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] @@ -87,9 +87,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -106,17 +106,29 @@ dependencies = [ "libc", ] +[[package]] +name = "any_spawner" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41058deaa38c9d9dd933d6d238d825227cffa668e2839b52879f6619c63eee3b" +dependencies = [ + "futures", + "thiserror 2.0.4", + "tokio", + "wasm-bindgen-futures", +] + [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" [[package]] name = "arc-swap" @@ -147,9 +159,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "df895a515f70646414f4b45c0b79082783b80552b373a68283012928df56f522" dependencies = [ "flate2", "futures-core", @@ -169,22 +181,11 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "async-recursion" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -193,13 +194,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -210,7 +211,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -221,45 +222,45 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attribute-derive" -version = "0.9.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f1ee502851995027b06f99f5ffbeffa1406b38d0b318a1ebfa469332c6cbafd" +checksum = "0053e96dd3bec5b4879c23a138d6ef26f2cb936c9cdc96274ac2b9ed44b5bb54" dependencies = [ "attribute-derive-macro", "derive-where", "manyhow", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "attribute-derive-macro" -version = "0.9.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3601467f634cfe36c4780ca9c75dea9a5b34529c1f2810676a337e7e0997f954" +checksum = "463b53ad0fd5b460af4b1915fe045ff4d946d025fb6c4dc3337752eaa980f71b" dependencies = [ "collection_literals", "interpolator", "manyhow", - "proc-macro-utils 0.8.0", + "proc-macro-utils", "proc-macro2", "quote", "quote-use", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.6" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f43644eed690f5374f1af436ecd6aea01cd201f6fbdf0178adaf6907afb2cec" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", @@ -269,7 +270,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", "itoa", "matchit", @@ -283,7 +284,7 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tower 0.5.1", "tower-layer", @@ -293,9 +294,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6b8ba012a258d63c9adfa28b9ddcf66149da6f986c5b5452e629d5ee64bf00" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", @@ -306,7 +307,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", "tracing", @@ -314,25 +315,26 @@ dependencies = [ [[package]] name = "axum-extra" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73c3220b188aea709cf1b6c5f9b01c3bd936bb08bd2b5184a12b35ac8131b1f9" +checksum = "c794b30c904f0a1c2fb7740f7df7f7972dfaa14ef6f57cb6178dc63e5dca2f04" dependencies = [ "axum", "axum-core", "bytes", "cookie", + "fastrand", "futures-util", "http 1.1.0", "http-body 1.0.1", "http-body-util", "mime", + "multer", "pin-project-lite", "serde", "tower 0.5.1", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -343,7 +345,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -413,9 +415,9 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bb8" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10cf871f3ff2ce56432fddc2615ac7acc3aa22ca321f8fea800846fbb32f188" +checksum = "d89aabfae550a5c44b43ab941844ffcd2e993cb6900b342debf59e9ea74acdb8" dependencies = [ "async-trait", "futures-util", @@ -544,7 +546,7 @@ dependencies = [ "home", "http 1.1.0", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-named-pipe", "hyper-rustls 0.26.0", "hyper-util", @@ -553,14 +555,14 @@ dependencies = [ "pin-project-lite", "rustls 0.22.4", "rustls-native-certs 0.7.3", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_derive", "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 1.0.64", + "thiserror 1.0.69", "tokio", "tokio-util", "tower-service", @@ -581,9 +583,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" dependencies = [ "borsh-derive", "cfg_aliases", @@ -591,23 +593,22 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.87", - "syn_derive", + "syn 2.0.90", ] [[package]] name = "bstr" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "1a68f1f47cdf0ec8ee4b941b2eee2a80cb796db73118c0dd09ac63fbe405be22" dependencies = [ "memchr", "regex-automata", @@ -660,23 +661,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" - -[[package]] -name = "cached" -version = "0.45.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eb5776f28a149524d1d8623035760b4454ec881e8cf3838fa8d7e1b11254b3" -dependencies = [ - "cached_proc_macro", - "cached_proc_macro_types", - "hashbrown 0.13.2", - "instant", - "once_cell", - "thiserror 1.0.64", -] +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cached" @@ -688,27 +675,9 @@ dependencies = [ "hashbrown 0.14.5", "instant", "once_cell", - "thiserror 1.0.64", + "thiserror 1.0.69", ] -[[package]] -name = "cached_proc_macro" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c878c71c2821aa2058722038a59a67583a4240524687c6028571c9b395ded61f" -dependencies = [ - "darling 0.14.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "cached_proc_macro_types" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" - [[package]] name = "camino" version = "1.1.9" @@ -735,7 +704,7 @@ dependencies = [ "serde", "serde_bytes", "stacker", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -747,7 +716,7 @@ dependencies = [ "lazy_static", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -766,14 +735,14 @@ dependencies = [ "logos", "num-bigint", "pretty", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] name = "cc" -version = "1.1.21" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" dependencies = [ "shlex", ] @@ -856,13 +825,13 @@ checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" [[package]] name = "codee" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af40247be877a1e3353fb406aa27ab3ef4bd3ff18cef91e75e667bfa3fde701d" +checksum = "5d3ad3122b0001c7f140cf4d605ef9a9e2c24d96ab0b4fb4347b76de2425f445" dependencies = [ "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -952,12 +921,11 @@ dependencies = [ [[package]] name = "config" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7328b20597b53c2454f0b1919720c25c7339051c02b72b7e05409e00b14132be" +checksum = "68578f196d2a33ff61b27fae256c3164f65e36382648e30666dde05b8cc9dfdf" dependencies = [ "convert_case 0.6.0", - "lazy_static", "nom", "pathdiff", "serde", @@ -1010,6 +978,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "const_str_slice_concat" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f67855af358fcb20fac58f9d714c94e2b228fe5694c1c9b4ead4a366343eda1b" + [[package]] name = "convert_case" version = "0.4.0" @@ -1052,6 +1026,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1060,9 +1044,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1144,7 +1128,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1160,38 +1144,14 @@ dependencies = [ "zeroize", ] -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", -] - [[package]] name = "darling" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] @@ -1204,19 +1164,8 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", - "syn 2.0.87", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core 0.14.4", - "quote", - "syn 1.0.109", + "strsim", + "syn 2.0.90", ] [[package]] @@ -1225,18 +1174,19 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.10", + "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", @@ -1251,14 +1201,14 @@ checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "default-struct-builder" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fa90da96b8fd491f5754d1f7a731f73921e3b7aa0ce333c821a0e43666ac14" +checksum = "e0df63c21a4383f94bd5388564829423f35c316aed85dc4f8427aded372c7c0d" dependencies = [ - "darling 0.20.10", + "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1290,13 +1240,13 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "dfn_candid" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "dfn_core", @@ -1308,7 +1258,7 @@ dependencies = [ [[package]] name = "dfn_core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "ic-base-types", "on_wire", @@ -1317,7 +1267,7 @@ dependencies = [ [[package]] name = "dfn_protobuf" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "on_wire", "prost", @@ -1400,7 +1350,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1473,7 +1423,7 @@ dependencies = [ "rand_core", "serde", "sha2 0.9.9", - "thiserror 1.0.64", + "thiserror 1.0.69", "zeroize", ] @@ -1497,6 +1447,15 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +[[package]] +name = "either_of" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6e22feb4d5cacf9f2c64902a1c35ef0f2d766e42db316a98b93992bbce669cb" +dependencies = [ + "pin-project-lite", +] + [[package]] name = "elliptic-curve" version = "0.13.8" @@ -1532,9 +1491,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -1548,7 +1507,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1560,7 +1519,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1580,12 +1539,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1601,9 +1560,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ "event-listener", "pin-project-lite", @@ -1617,9 +1576,9 @@ checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "ff" @@ -1661,7 +1620,7 @@ dependencies = [ "futures", "gcloud-sdk", "hex", - "hyper 1.4.1", + "hyper 1.5.1", "rand", "rsb_derive", "rvstruct", @@ -1680,9 +1639,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -1726,9 +1685,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[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", @@ -1757,13 +1716,14 @@ 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", "futures-util", + "num_cpus", ] [[package]] @@ -1780,7 +1740,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1815,20 +1775,20 @@ dependencies = [ [[package]] name = "gcloud-sdk" -version = "0.25.6" +version = "0.25.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d92f38cbe5b8796d2ab3f3c5f3bc286aa778015d5c5f67e2d0cbbe5d348473f" +checksum = "0775bfa745cdf7287ae9765a685a813b91049b6b6d5ca3de20a3d5d16a80d8b2" dependencies = [ "async-trait", "bytes", "chrono", "futures", - "hyper 1.4.1", + "hyper 1.5.1", "jsonwebtoken", "once_cell", "prost", "prost-types", - "reqwest 0.12.7", + "reqwest 0.12.9", "secret-vault-value", "serde", "serde_json", @@ -1886,9 +1846,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gix" @@ -1928,7 +1888,7 @@ dependencies = [ "once_cell", "parking_lot", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -1941,26 +1901,26 @@ dependencies = [ "gix-date", "gix-utils", "itoa", - "thiserror 1.0.64", - "winnow 0.6.19", + "thiserror 1.0.69", + "winnow 0.6.20", ] [[package]] name = "gix-bitmap" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae" +checksum = "d48b897b4bbc881aea994b4a5bbb340a04979d7be9089791304e04a9fbc66b53" dependencies = [ - "thiserror 1.0.64", + "thiserror 2.0.4", ] [[package]] name = "gix-chunk" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52" +checksum = "c6ffbeb3a5c0b8b84c3fe4133a6f8c82fa962f4caefe8d0762eced025d3eb4f7" dependencies = [ - "thiserror 1.0.64", + "thiserror 2.0.4", ] [[package]] @@ -1974,7 +1934,7 @@ dependencies = [ "gix-features", "gix-hash", "memmap2", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -1993,22 +1953,22 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", "unicode-bom", - "winnow 0.6.19", + "winnow 0.6.20", ] [[package]] name = "gix-config-value" -version = "0.14.8" +version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c" +checksum = "49aaeef5d98390a3bcf9dbc6440b520b793d1bf3ed99317dc407b02be995b28e" dependencies = [ "bitflags 2.6.0", "bstr", "gix-path", "libc", - "thiserror 1.0.64", + "thiserror 2.0.4", ] [[package]] @@ -2019,7 +1979,7 @@ checksum = "9eed6931f21491ee0aeb922751bd7ec97b4b2fe8fbfedcb678e2a2dce5f3b8c0" dependencies = [ "bstr", "itoa", - "thiserror 1.0.64", + "thiserror 1.0.69", "time", ] @@ -2032,7 +1992,7 @@ dependencies = [ "bstr", "gix-hash", "gix-object", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2048,7 +2008,7 @@ dependencies = [ "gix-path", "gix-ref", "gix-sec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2066,7 +2026,7 @@ dependencies = [ "once_cell", "prodash", "sha1_smol", - "thiserror 1.0.64", + "thiserror 1.0.69", "walkdir", ] @@ -2100,7 +2060,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" dependencies = [ "faster-hex", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2139,7 +2099,7 @@ dependencies = [ "memmap2", "rustix", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2150,7 +2110,7 @@ checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" dependencies = [ "gix-tempfile", "gix-utils", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2161,7 +2121,7 @@ checksum = "999ce923619f88194171a67fb3e6d613653b8d4d6078b529b15a765da0edcc17" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2179,8 +2139,8 @@ dependencies = [ "gix-validate", "itoa", "smallvec", - "thiserror 1.0.64", - "winnow 0.6.19", + "thiserror 1.0.69", + "winnow 0.6.20", ] [[package]] @@ -2200,7 +2160,7 @@ dependencies = [ "gix-quote", "parking_lot", "tempfile", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2218,31 +2178,31 @@ dependencies = [ "gix-path", "memmap2", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] name = "gix-path" -version = "0.10.11" +version = "0.10.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" +checksum = "afc292ef1a51e340aeb0e720800338c805975724c1dfbd243185452efd8645b7" dependencies = [ "bstr", "gix-trace", "home", "once_cell", - "thiserror 1.0.64", + "thiserror 2.0.4", ] [[package]] name = "gix-quote" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" +checksum = "64a1e282216ec2ab2816cd57e6ed88f8009e634aec47562883c05ac8a7009a63" dependencies = [ "bstr", "gix-utils", - "thiserror 1.0.64", + "thiserror 2.0.4", ] [[package]] @@ -2263,8 +2223,8 @@ dependencies = [ "gix-utils", "gix-validate", "memmap2", - "thiserror 1.0.64", - "winnow 0.6.19", + "thiserror 1.0.69", + "winnow 0.6.20", ] [[package]] @@ -2278,7 +2238,7 @@ dependencies = [ "gix-revision", "gix-validate", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2292,7 +2252,7 @@ dependencies = [ "gix-hash", "gix-object", "gix-revwalk", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2307,14 +2267,14 @@ dependencies = [ "gix-hashtable", "gix-object", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] name = "gix-sec" -version = "0.10.8" +version = "0.10.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" +checksum = "a8b876ef997a955397809a2ec398d6a45b7a55b4918f2446344330f778d14fd6" dependencies = [ "bitflags 2.6.0", "gix-path", @@ -2337,9 +2297,9 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" +checksum = "04bdde120c29f1fc23a24d3e115aeeea3d60d8e65bab92cc5f9d90d9302eb952" [[package]] name = "gix-traverse" @@ -2355,7 +2315,7 @@ dependencies = [ "gix-object", "gix-revwalk", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2368,15 +2328,15 @@ dependencies = [ "gix-features", "gix-path", "home", - "thiserror 1.0.64", + "thiserror 1.0.69", "url", ] [[package]] name = "gix-utils" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" +checksum = "ba427e3e9599508ed98a6ddf8ed05493db114564e338e41f6a996d2e4790335f" dependencies = [ "fastrand", "unicode-normalization", @@ -2389,7 +2349,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82c27dd34a49b1addf193c92070bcbf3beaf6e10f16a78544de6372e146a0acf" dependencies = [ "bstr", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -2469,7 +2429,7 @@ dependencies = [ "serde", "serde-wasm-bindgen", "serde_urlencoded", - "thiserror 1.0.64", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] @@ -2486,10 +2446,10 @@ dependencies = [ "gloo-utils", "http 0.2.12", "js-sys", - "pin-project 1.1.5", + "pin-project 1.1.7", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2507,10 +2467,10 @@ dependencies = [ "gloo-utils", "http 1.1.0", "js-sys", - "pin-project 1.1.5", + "pin-project 1.1.7", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2536,7 +2496,7 @@ dependencies = [ "js-sys", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", ] @@ -2579,7 +2539,7 @@ dependencies = [ "js-sys", "pinned", "serde", - "thiserror 1.0.64", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2594,7 +2554,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2603,10 +2563,10 @@ version = "0.1.0" source = "git+https://github.com/yral-dapp/gob-cloudflare?rev=c847ba87ecc73a33520b24bd62503420d7e23e3e#c847ba87ecc73a33520b24bd62503420d7e23e3e" dependencies = [ "bytes", - "reqwest 0.12.7", + "reqwest 0.12.9", "serde", "serde_json", - "thiserror 1.0.64", + "thiserror 1.0.69", "url", ] @@ -2621,6 +2581,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "guardian" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "493913a18c0d7bebb75127a26a432162c59edbe06f6cf712001e3e769345e8b5" + [[package]] name = "h2" version = "0.3.26" @@ -2633,7 +2599,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.5.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2642,9 +2608,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -2652,7 +2618,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.5.0", + "indexmap 2.7.0", "slab", "tokio", "tokio-util", @@ -2684,12 +2650,6 @@ dependencies = [ "ahash 0.7.8", ] -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - [[package]] name = "hashbrown" version = "0.14.5" @@ -2700,6 +2660,12 @@ dependencies = [ "allocator-api2", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "heck" version = "0.5.0" @@ -2738,7 +2704,7 @@ dependencies = [ "ipnet", "once_cell", "rand", - "thiserror 1.0.64", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -2761,7 +2727,7 @@ dependencies = [ "rand", "resolv-conf", "smallvec", - "thiserror 1.0.64", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -2845,7 +2811,6 @@ dependencies = [ "leptos_meta", "leptos_router", "log", - "once_cell", "openidconnect", "priority-queue", "prost", @@ -2853,8 +2818,9 @@ dependencies = [ "rand_chacha", "redb", "redis", - "reqwest 0.12.7", + "reqwest 0.12.9", "rust_decimal", + "send_wrapper", "serde", "serde-wasm-bindgen", "serde_bytes", @@ -2863,13 +2829,13 @@ dependencies = [ "sns-validation", "speedate", "testcontainers", - "thiserror 1.0.64", + "thiserror 2.0.4", "tokio", "tonic", "tonic-build", "tonic-web-wasm-client", "tower 0.4.13", - "tower-http", + "tower-http 0.5.2", "tracing", "urlencoding", "uts2ts", @@ -2954,15 +2920,15 @@ dependencies = [ [[package]] name = "http-range-header" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" +checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -2976,11 +2942,27 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hydration_context" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef13071fe13b55c85fe2b70246d2e3b49d2c6a764fd3e0edaf262cc385ff1854" +dependencies = [ + "futures", + "js-sys", + "once_cell", + "or_poisoned", + "pin-project-lite", + "serde", + "throw_error", + "wasm-bindgen", +] + [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ "bytes", "futures-channel", @@ -3002,14 +2984,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", + "h2 0.4.7", "http 1.1.0", "http-body 1.0.1", "httparse", @@ -3028,7 +3010,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" dependencies = [ "hex", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", "pin-project-lite", "tokio", @@ -3044,7 +3026,7 @@ checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http 0.2.12", - "hyper 0.14.30", + "hyper 0.14.31", "rustls 0.21.12", "tokio", "tokio-rustls 0.24.1", @@ -3058,7 +3040,7 @@ checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", "log", "rustls 0.22.4", @@ -3077,24 +3059,24 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", - "rustls 0.23.13", - "rustls-native-certs 0.8.0", + "rustls 0.23.19", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", ] [[package]] name = "hyper-timeout" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", "pin-project-lite", "tokio", @@ -3109,7 +3091,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", "native-tls", "tokio", @@ -3119,16 +3101,16 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.5.1", "pin-project-lite", "socket2", "tokio", @@ -3144,7 +3126,7 @@ checksum = "acf569d43fa9848e510358c07b80f4adf34084ddc28c6a4a651ee8474c070dcc" dependencies = [ "hex", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-util", "pin-project-lite", "tokio", @@ -3176,13 +3158,14 @@ dependencies = [ [[package]] name = "ic-agent" -version = "0.38.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c2407d2c529d91d2956bd9d7536f2f497dbab747701f15eb35f41c52b472f2" +checksum = "17a656d3b25007f59ba0700e65b332efd56d5dbfc6014994000ab3dbb221f54a" dependencies = [ "async-lock", + "async-trait", "backoff", - "cached 0.52.0", + "cached", "candid", "ed25519-consensus", "futures-util", @@ -3201,7 +3184,7 @@ dependencies = [ "pkcs8", "rand", "rangemap", - "reqwest 0.12.7", + "reqwest 0.12.9", "ring", "rustls-webpki 0.102.8", "sec1", @@ -3211,9 +3194,10 @@ dependencies = [ "serde_repr", "sha2 0.10.8", "simple_asn1", - "thiserror 1.0.64", + "thiserror 1.0.69", "time", "tokio", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -3223,7 +3207,7 @@ dependencies = [ [[package]] name = "ic-base-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "byte-unit", "bytes", @@ -3253,7 +3237,7 @@ dependencies = [ [[package]] name = "ic-btc-replica-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "ic-btc-interface", @@ -3266,7 +3250,7 @@ dependencies = [ [[package]] name = "ic-canister-log" version = "0.2.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "serde", ] @@ -3295,7 +3279,7 @@ dependencies = [ "quote", "serde", "serde_tokenstream", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3313,7 +3297,7 @@ dependencies = [ [[package]] name = "ic-crypto-internal-sha2" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "sha2 0.10.8", ] @@ -3321,7 +3305,7 @@ dependencies = [ [[package]] name = "ic-crypto-sha2" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "ic-crypto-internal-sha2", ] @@ -3329,7 +3313,7 @@ dependencies = [ [[package]] name = "ic-error-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "ic-protobuf", "ic-utils", @@ -3341,7 +3325,7 @@ dependencies = [ [[package]] name = "ic-ledger-canister-core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "async-trait", "candid", @@ -3359,7 +3343,7 @@ dependencies = [ [[package]] name = "ic-ledger-core" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "ic-ledger-hash-of", @@ -3371,7 +3355,7 @@ dependencies = [ [[package]] name = "ic-ledger-hash-of" version = "0.1.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "hex", @@ -3381,12 +3365,12 @@ dependencies = [ [[package]] name = "ic-limits" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" [[package]] name = "ic-management-canister-types" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "ic-base-types", @@ -3406,7 +3390,7 @@ dependencies = [ [[package]] name = "ic-protobuf" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "bincode", "candid", @@ -3419,9 +3403,9 @@ dependencies = [ [[package]] name = "ic-transport-types" -version = "0.38.1" +version = "0.38.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a49e37736106da0dc2416935ffaf53abc6afc9e758314b7afc85fcebfb2e943" +checksum = "894b183f280e87b29aac98e7de0972cf632435e1f0a462969d9f5e0ccacc4d25" dependencies = [ "candid", "hex", @@ -3429,15 +3413,16 @@ dependencies = [ "leb128", "serde", "serde_bytes", + "serde_cbor", "serde_repr", "sha2 0.10.8", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] name = "ic-utils" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "hex", "scoped_threadpool", @@ -3490,7 +3475,7 @@ dependencies = [ "data-encoding", "serde", "sha2 0.10.8", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -3691,7 +3676,7 @@ dependencies = [ [[package]] name = "icp-ledger" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "comparable", @@ -3721,7 +3706,7 @@ dependencies = [ [[package]] name = "icrc-ledger-types" version = "0.1.6" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "base32", "candid", @@ -3853,7 +3838,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3906,12 +3891,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] @@ -3962,9 +3947,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "itertools" @@ -4004,15 +3989,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" dependencies = [ "wasm-bindgen", ] @@ -4060,7 +4045,7 @@ dependencies = [ "petgraph", "pico-args", "regex", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "string_cache", "term", "tiny-keccak", @@ -4094,18 +4079,35 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "leptos" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cbb3237c274dadf00dcc27db96c52601b40375117178fb24a991cda073624f0" +checksum = "ba5046c590aea121f6ad5e71fcb75453a933425d39527b9a3b1b295235afc8df" dependencies = [ + "any_spawner", + "base64 0.22.1", "cfg-if", + "either_of", + "futures", + "hydration_context", "leptos_config", "leptos_dom", + "leptos_hot_reload", "leptos_macro", - "leptos_reactive", "leptos_server", + "oco_ref", + "or_poisoned", + "paste", + "rand", + "reactive_graph", + "rustc-hash", + "send_wrapper", + "serde", + "serde_qs", "server_fn", - "tracing", + "slotmap", + "tachys", + "thiserror 2.0.4", + "throw_error", "typed-builder", "typed-builder-macro", "wasm-bindgen", @@ -4114,25 +4116,24 @@ dependencies = [ [[package]] name = "leptos-use" -version = "0.12.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268b9df23d8c68ed0518c39d6f0d3b99fcbe30190a6dce4a7e5f342027ab0033" +checksum = "5b50a99041c6685fdbca516bf6f90e75013e00a093d231c5f6a73b7b9dfff633" dependencies = [ - "async-trait", "cfg-if", "codee", "cookie", "default-struct-builder", "futures-util", "gloo-timers", - "gloo-utils", "http 1.1.0", "js-sys", "lazy_static", "leptos", "leptos_axum", "paste", - "thiserror 1.0.64", + "send_wrapper", + "thiserror 2.0.4", "unic-langid", "wasm-bindgen", "wasm-bindgen-futures", @@ -4141,14 +4142,15 @@ dependencies = [ [[package]] name = "leptos_axum" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910681b920c48a43508b2bd0261bdb67c4ef9456a0b3613f956a0d30e832e9de" +checksum = "7b0d388392939f629c45b8c7bcc83997cb6c6026813b57f50953651ad5be63d8" dependencies = [ + "any_spawner", "axum", - "cfg-if", + "dashmap", "futures", - "http-body-util", + "hydration_context", "leptos", "leptos_integration_utils", "leptos_macro", @@ -4156,114 +4158,93 @@ dependencies = [ "leptos_router", "once_cell", "parking_lot", - "serde_json", "server_fn", "tokio", - "tokio-util", - "tracing", + "tower 0.5.1", + "tower-http 0.6.2", ] [[package]] name = "leptos_config" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ed778611380ddea47568ac6ad6ec5158d39b5bd59e6c4dcd24efc15dc3dc0d" +checksum = "5e2d64c43e2554108c26da3127f8384d92ca76c6f0b7288d1c09c8cc68152064" dependencies = [ "config", "regex", "serde", - "thiserror 1.0.64", + "thiserror 2.0.4", "typed-builder", ] [[package]] name = "leptos_dom" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8401c46c86c1f4c16dcb7881ed319fcdca9cda9b9e78a6088955cb423afcf119" +checksum = "6c15aca81dc2edd040b51c46734f65c6f36e6ba8a31347c1354c94b958044ae0" dependencies = [ - "async-recursion", - "cfg-if", - "drain_filter_polyfill", - "futures", - "getrandom", - "html-escape", - "indexmap 2.5.0", - "itertools 0.12.1", "js-sys", - "leptos_reactive", - "once_cell", - "pad-adapter", - "paste", - "rustc-hash 1.1.0", - "serde", - "serde_json", - "server_fn", - "smallvec", - "tracing", + "or_poisoned", + "reactive_graph", + "send_wrapper", + "tachys", "wasm-bindgen", - "wasm-bindgen-futures", "web-sys", ] [[package]] name = "leptos_hot_reload" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb53d4794240b684a2f4be224b84bee9e62d2abc498cf2bcd643cd565e01d96" +checksum = "0445f3a62696d2d66bef288911af34405718880b4b8dd6c5cfb7751fd8ffcc6b" dependencies = [ "anyhow", "camino", - "indexmap 2.5.0", + "indexmap 2.7.0", "parking_lot", "proc-macro2", "quote", "rstml", "serde", - "syn 2.0.87", + "syn 2.0.90", "walkdir", ] [[package]] name = "leptos_icons" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9f8ac3d938dd22d605c01e2272cb6b816d3edcae3647610679b8b81c059ccb" +version = "0.4.0" +source = "git+https://github.com/ozpv/leptos-icons?rev=cd80dc418aa5da2865b79c7822c68aeb2486f30f#cd80dc418aa5da2865b79c7822c68aeb2486f30f" dependencies = [ - "bytes", - "encoding_rs", "icondata_core", - "lazy_static", "leptos", - "log", - "paste", ] [[package]] name = "leptos_integration_utils" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a96976631c2225ec116a7bf9c0ed5bf6999a19fed33f5e3cbcf37af44c384dc" +checksum = "d293a2f64a558d4ca10ef01125d055134f3582f27c407102c4259bb54ca8b55b" dependencies = [ "futures", + "hydration_context", "leptos", "leptos_config", - "leptos_hot_reload", "leptos_meta", - "tracing", + "leptos_router", + "reactive_graph", ] [[package]] name = "leptos_macro" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b13bc3db70715cd8218c4535a5af3ae3c0e5fea6f018531fc339377b36bc0e0" +checksum = "92f690c955274f1722ee6c66463ace79301d53a8c2bf7f6e4e61b978ca239e20" dependencies = [ "attribute-derive", "cfg-if", "convert_case 0.6.0", "html-escape", - "itertools 0.12.1", + "itertools 0.13.0", "leptos_hot_reload", "prettyplease", "proc-macro-error2", @@ -4271,112 +4252,93 @@ dependencies = [ "quote", "rstml", "server_fn_macro", - "syn 2.0.87", - "tracing", + "syn 2.0.90", "uuid", ] [[package]] name = "leptos_meta" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25acc2f63cf91932013e400a95bf6e35e5d3dbb44a7b7e25a8e3057d12005b3b" +checksum = "7c651d788bbbf1c57ee95dd3835f9d433b85a409b6256f338c3c7146eb8b7f53" dependencies = [ - "cfg-if", - "indexmap 2.5.0", + "futures", + "indexmap 2.7.0", "leptos", - "tracing", + "once_cell", + "or_poisoned", + "send_wrapper", "wasm-bindgen", "web-sys", ] [[package]] -name = "leptos_reactive" -version = "0.6.15" +name = "leptos_router" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4161acbf80f59219d8d14182371f57302bc7ff81ee41aba8ba1ff7295727f23" +checksum = "32a4f1784486ebf36805dac22faee21e3e610aa64b6662a7386f065eeec27ae8" dependencies = [ - "base64 0.22.1", - "cfg-if", + "any_spawner", + "either_of", "futures", - "indexmap 2.5.0", + "gloo-net 0.6.0", "js-sys", - "oco_ref", - "paste", - "pin-project 1.1.5", - "rustc-hash 1.1.0", - "self_cell", - "serde", - "serde-wasm-bindgen", - "serde_json", - "slotmap", - "thiserror 1.0.64", - "tokio", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_router" -version = "0.6.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d71dea7d42c0d29c40842750232d3425ed1cf10e313a1f898076d20871dad32" -dependencies = [ - "cached 0.45.1", - "cfg-if", - "gloo-net 0.6.0", - "itertools 0.12.1", - "js-sys", - "lazy_static", "leptos", - "leptos_integration_utils", - "leptos_meta", - "linear-map", - "lru", + "leptos_router_macro", "once_cell", + "or_poisoned", "percent-encoding", - "regex", + "reactive_graph", "send_wrapper", - "serde", - "serde_json", - "serde_qs 0.13.0", - "thiserror 1.0.64", - "tracing", + "tachys", + "thiserror 2.0.4", "url", "wasm-bindgen", - "wasm-bindgen-futures", "web-sys", ] +[[package]] +name = "leptos_router_macro" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee7ecef3f1c69b51864190c564e4873d84f200e44efb37934208f9525f02a5f" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", +] + [[package]] name = "leptos_server" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a97eb90a13f71500b831c7119ddd3bdd0d7ae0a6b0487cade4fddeed3b8c03f" +checksum = "93450589df3b3e398c7f5ea64d8f1c8369b1ba9b90e1f70f6cb996b8d443ca3e" dependencies = [ - "inventory", - "lazy_static", - "leptos_macro", - "leptos_reactive", + "any_spawner", + "base64 0.22.1", + "codee", + "futures", + "hydration_context", + "or_poisoned", + "reactive_graph", + "send_wrapper", "serde", + "serde_json", "server_fn", - "thiserror 1.0.64", - "tracing", + "tachys", ] [[package]] name = "libc" -version = "0.2.159" +version = "0.2.167" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -4394,10 +4356,6 @@ name = "linear-map" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" -dependencies = [ - "serde", - "serde_test", -] [[package]] name = "linked-hash-map" @@ -4413,9 +4371,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -4453,7 +4411,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.6.29", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4465,15 +4423,6 @@ dependencies = [ "logos-codegen", ] -[[package]] -name = "lru" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" -dependencies = [ - "hashbrown 0.14.5", -] - [[package]] name = "lru-cache" version = "0.1.2" @@ -4485,23 +4434,23 @@ dependencies = [ [[package]] name = "manyhow" -version = "0.10.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91ea592d76c0b6471965708ccff7e6a5d277f676b90ab31f4d3f3fc77fade64" +checksum = "b33efb3ca6d3b07393750d4030418d594ab1139cee518f0dc88db70fec873587" dependencies = [ "manyhow-macros", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "manyhow-macros" -version = "0.10.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64621e2c08f2576e4194ea8be11daf24ac01249a4f53cd8befcbb7077120ead" +checksum = "46fce34d199b78b6e6073abf984c9cf5fd3e9330145a93ee0738a7443e371495" dependencies = [ - "proc-macro-utils 0.8.0", + "proc-macro-utils", "proc-macro2", "quote", ] @@ -4566,11 +4515,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "wasi", "windows-sys 0.52.0", @@ -4611,7 +4559,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -4622,6 +4570,12 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" +[[package]] +name = "next_tuple" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60993920e071b0c9b66f14e2b32740a4e27ffc82854dcd72035887f336a09a28" + [[package]] name = "nom" version = "7.1.3" @@ -4696,6 +4650,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "num_threads" version = "0.1.7" @@ -4721,39 +4685,39 @@ dependencies = [ "serde_json", "serde_path_to_error", "sha2 0.10.8", - "thiserror 1.0.64", + "thiserror 1.0.69", "url", ] [[package]] name = "object" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" dependencies = [ "memchr", ] [[package]] name = "oco_ref" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51ebcefb2f0b9a5e0bea115532c8ae4215d1b01eff176d0f4ba4192895c2708" +checksum = "64b94982fe39a861561cf67ff17a7849f2cedadbbad960a797634032b7abb998" dependencies = [ "serde", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] name = "on_wire" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opaque-debug" @@ -4789,15 +4753,15 @@ dependencies = [ "serde_with", "sha2 0.10.8", "subtle", - "thiserror 1.0.64", + "thiserror 1.0.69", "url", ] [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -4816,7 +4780,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4827,9 +4791,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ "cc", "libc", @@ -4843,6 +4807,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "or_poisoned" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c04f5d74368e4d0dfe06c45c8627c81bd7c317d52762d118fb9b3076f6420fd" + [[package]] name = "ordered-float" version = "2.10.1" @@ -4876,12 +4846,6 @@ dependencies = [ "sha2 0.10.8", ] -[[package]] -name = "pad-adapter" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d80efc4b6721e8be2a10a5df21a30fa0b470f1539e53d8b4e6e75faf938b63" - [[package]] name = "pairing" version = "0.23.0" @@ -4928,7 +4892,7 @@ checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" dependencies = [ "parse-display-derive", "regex", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -4940,9 +4904,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "structmeta", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -4953,9 +4917,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathdiff" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "pem" @@ -4989,13 +4953,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.5.0", + "indexmap 2.7.0", ] [[package]] name = "phantom_newtype" version = "0.9.0" -source = "git+https://github.com/dfinity/ic?rev=tags/release-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" +source = "git+https://github.com/dfinity/ic?rev=tags%2Frelease-2024-10-17_03-07-base#e54d3fa34ded227c885d04e64505fa4b5d564743" dependencies = [ "candid", "num-traits", @@ -5029,11 +4993,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ - "pin-project-internal 1.1.5", + "pin-project-internal 1.1.7", ] [[package]] @@ -5049,20 +5013,20 @@ dependencies = [ [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -5078,7 +5042,7 @@ checksum = "a829027bd95e54cfe13e3e258a1ae7b645960553fb82b75ff852c29688ee595b" dependencies = [ "futures", "rustversion", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -5164,12 +5128,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5189,7 +5153,7 @@ checksum = "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d" dependencies = [ "autocfg", "equivalent", - "indexmap 2.5.0", + "indexmap 2.7.0", ] [[package]] @@ -5253,17 +5217,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", -] - -[[package]] -name = "proc-macro-utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f59e109e2f795a5070e69578c4dc101068139f74616778025ae1011d4cd41a8" -dependencies = [ - "proc-macro2", - "quote", - "smallvec", + "syn 2.0.90", ] [[package]] @@ -5279,9 +5233,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -5294,7 +5248,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "version_check", "yansi", ] @@ -5332,7 +5286,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.87", + "syn 2.0.90", "tempfile", ] @@ -5346,7 +5300,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5360,9 +5314,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +checksum = "200b9ff220857e53e184257720a14553b2f4aa02577d2ed9842d45d4b9654810" dependencies = [ "cc", ] @@ -5389,9 +5343,9 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666f0f59e259aea2d72e6012290c09877a780935cc3c18b1ceded41f3890d59c" +checksum = "f86ba2052aebccc42cbbb3ed234b8b13ce76f75c3551a303cb2bcffcff12bb14" dependencies = [ "bitflags 2.6.0", "getopts", @@ -5414,45 +5368,49 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", - "rustls 0.23.13", + "rustc-hash", + "rustls 0.23.19", "socket2", - "thiserror 1.0.64", + "thiserror 2.0.4", "tokio", "tracing", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", + "getrandom", "rand", "ring", - "rustc-hash 2.0.0", - "rustls 0.23.13", + "rustc-hash", + "rustls 0.23.19", + "rustls-pki-types", "slab", - "thiserror 1.0.64", + "thiserror 2.0.4", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -5485,10 +5443,10 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82ebfb7faafadc06a7ab141a6f67bcfb24cb8beb158c6fe933f2f035afa99f35" dependencies = [ - "proc-macro-utils 0.10.0", + "proc-macro-utils", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -5533,11 +5491,60 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" +[[package]] +name = "reactive_graph" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c27f54685c1416af1f323a0c40e71cbdae281a1ebc623591790d367222d0ac65" +dependencies = [ + "any_spawner", + "async-lock", + "futures", + "guardian", + "hydration_context", + "or_poisoned", + "pin-project-lite", + "rustc-hash", + "send_wrapper", + "serde", + "slotmap", + "thiserror 2.0.4", + "web-sys", +] + +[[package]] +name = "reactive_stores" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efe3f866edc7647e19a68a229a2e5cc9730549836d722eeaa073116f2b07966e" +dependencies = [ + "guardian", + "itertools 0.13.0", + "or_poisoned", + "paste", + "reactive_graph", + "reactive_stores_macro", + "rustc-hash", +] + +[[package]] +name = "reactive_stores_macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d86e4f08f361b05d11422398cef4bc4cf356f2fdd2f06a96646b0e9cd902226" +dependencies = [ + "convert_case 0.6.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "redb" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4760ad04a88ef77075ba86ba9ea79b919e6bab29c1764c5747237cd6eaedcaa" +checksum = "84b1de48a7cf7ba193e81e078d17ee2b786236eed1d3f7c60f8a09545efc4925" dependencies = [ "libc", ] @@ -5560,7 +5567,7 @@ dependencies = [ "pin-project-lite", "rustls 0.22.4", "rustls-native-certs 0.7.3", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "ryu", "socket2", @@ -5573,9 +5580,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62871f2d65009c0256aed1b9cfeeb8ac272833c404e13d53d400cd0dad7a2ac0" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -5588,30 +5595,30 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -5622,9 +5629,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "rend" @@ -5649,7 +5656,7 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.31", "hyper-rustls 0.24.2", "ipnet", "js-sys", @@ -5678,9 +5685,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "async-compression", "base64 0.22.1", @@ -5689,12 +5696,12 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.6", + "h2 0.4.7", "hickory-resolver", "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-rustls 0.27.3", "hyper-tls", "hyper-util", @@ -5708,14 +5715,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.13", - "rustls-native-certs 0.7.3", - "rustls-pemfile 2.1.3", + "rustls 0.23.19", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tokio", "tokio-native-tls", "tokio-rustls 0.26.0", @@ -5726,7 +5733,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", "windows-registry", ] @@ -5796,9 +5803,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest 0.10.7", @@ -5827,16 +5834,17 @@ dependencies = [ [[package]] name = "rstml" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe542870b8f59dd45ad11d382e5339c9a1047cde059be136a7016095bbdefa77" +checksum = "51187e564f12336ef40cd04f6f4d805d6919188001dcf1e0a021898ea0fe28ce" dependencies = [ + "derive-where", "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.87", + "syn 2.0.90", "syn_derive", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -5863,15 +5871,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustc_version" @@ -5884,9 +5886,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -5923,9 +5925,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.13" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "log", "once_cell", @@ -5943,23 +5945,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.0.1", ] [[package]] @@ -5973,19 +5974,21 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +dependencies = [ + "web-time", +] [[package]] name = "rustls-webpki" @@ -6010,9 +6013,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" [[package]] name = "rvs_derive" @@ -6051,9 +6054,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -6121,27 +6124,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "security-framework-sys", ] [[package]] -name = "security-framework-sys" -version = "2.12.0" +name = "security-framework" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", + "security-framework-sys", ] [[package]] -name = "self_cell" -version = "1.0.4" +name = "security-framework-sys" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +dependencies = [ + "core-foundation-sys", + "libc", +] [[package]] name = "semver" @@ -6160,9 +6170,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -6209,20 +6219,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -6249,17 +6259,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_qs" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" -dependencies = [ - "percent-encoding", - "serde", - "thiserror 1.0.64", -] - [[package]] name = "serde_qs" version = "0.13.0" @@ -6268,7 +6267,7 @@ checksum = "cd34f36fe4c5ba9654417139a9b3a20d2e1de6012ee678ad14d240c22c78d8d6" dependencies = [ "percent-encoding", "serde", - "thiserror 1.0.64", + "thiserror 1.0.69", ] [[package]] @@ -6279,23 +6278,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "serde_spanned" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_test" -version = "1.0.177" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f901ee573cab6b3060453d2d5f0bae4e6d628c23c0a962ff9b5f1d7c8d4f1ed" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -6309,7 +6299,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6326,15 +6316,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "8e28bdad6db2b8340e449f7108f020b3b092e8583a9e3fb82713e1d4e71fe817" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.5.0", + "indexmap 2.7.0", "serde", "serde_derive", "serde_json", @@ -6344,14 +6334,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "9d846214a9854ef724f3da161b426242d8de7c1fc7de2f89bb1efcb154dca79d" dependencies = [ - "darling 0.20.10", + "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6366,30 +6356,31 @@ dependencies = [ [[package]] name = "server_fn" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fae7a3038a32e5a34ba32c6c45eb4852f8affaf8b794ebfcd4b1099e2d62ebe" +checksum = "033cb8014aa86a7ce0c6ee58d23dce1a078b2e320dc6c53bb439663993199b1f" dependencies = [ "axum", "bytes", - "ciborium", "const_format", "dashmap", "futures", "gloo-net 0.6.0", "http 1.1.0", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "inventory", "js-sys", "once_cell", + "pin-project-lite", "send_wrapper", "serde", "serde_json", - "serde_qs 0.12.0", + "serde_qs", "server_fn_macro_default", - "thiserror 1.0.64", - "tower 0.4.13", + "thiserror 2.0.4", + "throw_error", + "tower 0.5.1", "tower-layer", "url", "wasm-bindgen", @@ -6401,26 +6392,26 @@ dependencies = [ [[package]] name = "server_fn_macro" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaaf648c6967aef78177c0610478abb5a3455811f401f3c62d10ae9bd3901a1" +checksum = "0249e8a55ca464a1e69f02a95d562f2c65e92e301093a02ebf15d21f68f2a99e" dependencies = [ "const_format", "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "xxhash-rust", ] [[package]] name = "server_fn_macro_default" -version = "0.6.15" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2aa8119b558a17992e0ac1fd07f080099564f24532858811ce04f742542440" +checksum = "91c54a6d43cd0f3d2bdf0c85b6119f378b6b89d528159af9cde77f229faeecbc" dependencies = [ "server_fn_macro", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6492,7 +6483,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror 1.0.64", + "thiserror 1.0.69", "time", ] @@ -6538,7 +6529,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" dependencies = [ - "serde", "version_check", ] @@ -6551,7 +6541,7 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "sns-validation" version = "0.1.0" -source = "git+https://github.com/yral-dapp/yral-common.git?rev=5e4414a3f1e0644d93f181949d533c6a9991da04#5e4414a3f1e0644d93f181949d533c6a9991da04" +source = "git+https://github.com/yral-dapp/yral-common.git?rev=6a40d189d5ff02e3b0eb7d17b90027219c75d641#6a40d189d5ff02e3b0eb7d17b90027219c75d641" dependencies = [ "candid", "humantime", @@ -6563,9 +6553,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -6629,12 +6619,6 @@ dependencies = [ "precomputed-hash", ] -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "strsim" version = "0.11.1" @@ -6659,7 +6643,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6670,7 +6654,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6692,7 +6676,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6720,9 +6704,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", @@ -6738,7 +6722,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6749,9 +6733,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -6764,7 +6748,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -6774,7 +6758,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -6788,6 +6772,38 @@ dependencies = [ "libc", ] +[[package]] +name = "tachys" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be68dfd4abf192e11a1bdd484239daa84ffa6fcd27c25cf4f011b2b0fb27ddb" +dependencies = [ + "any_spawner", + "const_str_slice_concat", + "drain_filter_polyfill", + "either_of", + "futures", + "html-escape", + "indexmap 2.7.0", + "itertools 0.13.0", + "js-sys", + "linear-map", + "next_tuple", + "oco_ref", + "once_cell", + "or_poisoned", + "parking_lot", + "paste", + "reactive_graph", + "reactive_stores", + "rustc-hash", + "send_wrapper", + "slotmap", + "throw_error", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "tap" version = "1.0.1" @@ -6796,9 +6812,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -6845,11 +6861,11 @@ dependencies = [ "memchr", "parse-display", "pin-project-lite", - "reqwest 0.12.7", + "reqwest 0.12.9", "serde", "serde_json", "serde_with", - "thiserror 1.0.64", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -6858,49 +6874,58 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.64", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "2f49a1853cf82743e3b7950f77e0f4d622ca36cf4317cba00c767838bac8d490" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.4", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "8381894bb3efe0c4acac3ded651301ceee58a15d47c2e34885ed1908ad667061" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", +] + +[[package]] +name = "throw_error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ef8bf264c6ae02a065a4a16553283f0656bd6266fc1fcb09fd2e6b5e91427b" +dependencies = [ + "pin-project-lite", ] [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -6922,9 +6947,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -6966,9 +6991,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" dependencies = [ "backtrace", "bytes", @@ -6990,7 +7015,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7009,7 +7034,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ - "pin-project 1.1.5", + "pin-project 1.1.7", "rand", "tokio", ] @@ -7041,7 +7066,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.13", + "rustls 0.23.19", "rustls-pki-types", "tokio", ] @@ -7066,8 +7091,6 @@ dependencies = [ "bytes", "futures-core", "futures-sink", - "futures-util", - "hashbrown 0.14.5", "pin-project-lite", "tokio", ] @@ -7099,7 +7122,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.7.0", "toml_datetime", "winnow 0.5.40", ] @@ -7110,35 +7133,35 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.7.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.19", + "winnow 0.6.20", ] [[package]] name = "tonic" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6f6ba989e4b2c58ae83d862d3a3e27690b6e3ae630d0deb59f3697f32aa88ad" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", "axum", "base64 0.22.1", "bytes", - "h2 0.4.6", + "h2 0.4.7", "http 1.1.0", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.5.1", "hyper-timeout", "hyper-util", "percent-encoding", - "pin-project 1.1.5", + "pin-project 1.1.7", "prost", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "socket2", "tokio", "tokio-rustls 0.26.0", @@ -7147,20 +7170,21 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "webpki-roots 0.26.6", + "webpki-roots 0.26.7", ] [[package]] name = "tonic-build" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4ee8877250136bd7e3d2331632810a4df4ea5e004656990d8d66d2f5ee8a67" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ "prettyplease", "proc-macro2", "prost-build", + "prost-types", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7178,8 +7202,8 @@ dependencies = [ "http-body-util", "httparse", "js-sys", - "pin-project 1.1.5", - "thiserror 1.0.64", + "pin-project 1.1.7", + "thiserror 1.0.69", "tonic", "tower-service", "wasm-bindgen", @@ -7197,7 +7221,7 @@ dependencies = [ "futures-core", "futures-util", "indexmap 1.9.3", - "pin-project 1.1.5", + "pin-project 1.1.7", "pin-project-lite", "rand", "slab", @@ -7249,6 +7273,31 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" +dependencies = [ + "bitflags 2.6.0", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "http-range-header", + "httpdate", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -7275,9 +7324,9 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -7287,20 +7336,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", ] @@ -7319,22 +7368,22 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typed-builder" -version = "0.18.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77739c880e00693faef3d65ea3aad725f196da38b22fdc7ea6ded6e1ce4d3add" +checksum = "7e14ed59dc8b7b26cacb2a92bad2e8b1f098806063898ab42a3bd121d7d45e75" dependencies = [ "typed-builder-macro", ] [[package]] name = "typed-builder-macro" -version = "0.18.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f718dfaf347dcb5b983bfc87608144b0bad87970aebcbea5ce44d2a30c08e63" +checksum = "560b82d656506509d43abe30e0ba64c56b1953ab3d4fe7ba5902747a7a3cedd5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -7363,18 +7412,15 @@ dependencies = [ [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-bom" @@ -7384,9 +7430,9 @@ checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -7433,9 +7479,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna 1.0.3", @@ -7475,9 +7521,9 @@ checksum = "259b17235452d88d066e35685df3fd9fd3875936eee5451d0533b604201f06a8" [[package]] name = "uuid" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" dependencies = [ "getrandom", ] @@ -7521,9 +7567,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" dependencies = [ "cfg-if", "once_cell", @@ -7532,36 +7578,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "951fe82312ed48443ac78b66fa43eded9999f738f6022e67aead7b708659e49a" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7569,28 +7616,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -7601,9 +7648,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "476364ff87d0ae6bfb661053a9104ab312542658c3d8f963b7ace80b6f9b26b9" dependencies = [ "js-sys", "wasm-bindgen", @@ -7627,9 +7674,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -7869,9 +7916,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c52ac009d615e79296318c1bcce2d422aaca15ad08515e344feeda07df67a587" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -7921,9 +7968,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -7933,20 +7980,20 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure", ] [[package]] name = "yral-canisters-client" version = "0.1.0" -source = "git+https://github.com/yral-dapp/yral-common.git?rev=5e4414a3f1e0644d93f181949d533c6a9991da04#5e4414a3f1e0644d93f181949d533c6a9991da04" +source = "git+https://github.com/yral-dapp/yral-common.git?rev=6a40d189d5ff02e3b0eb7d17b90027219c75d641#6a40d189d5ff02e3b0eb7d17b90027219c75d641" dependencies = [ "anyhow", "candid", @@ -7961,20 +8008,22 @@ dependencies = [ [[package]] name = "yral-canisters-common" version = "0.1.0" -source = "git+https://github.com/yral-dapp/yral-common.git?rev=5e4414a3f1e0644d93f181949d533c6a9991da04#5e4414a3f1e0644d93f181949d533c6a9991da04" +source = "git+https://github.com/yral-dapp/yral-common.git?rev=6a40d189d5ff02e3b0eb7d17b90027219c75d641#6a40d189d5ff02e3b0eb7d17b90027219c75d641" dependencies = [ "candid", "ciborium", "crc32fast", "futures-util", + "getrandom", "ic-agent", "k256", "log", - "reqwest 0.12.7", + "reqwest 0.12.9", "rust_decimal", + "send_wrapper", "serde", "sns-validation", - "thiserror 2.0.3", + "thiserror 2.0.4", "url", "web-time", "yral-canisters-client", @@ -7987,7 +8036,7 @@ dependencies = [ [[package]] name = "yral-grpc-traits" version = "0.1.0" -source = "git+https://github.com/yral-dapp/yral-common.git?rev=5e4414a3f1e0644d93f181949d533c6a9991da04#5e4414a3f1e0644d93f181949d533c6a9991da04" +source = "git+https://github.com/yral-dapp/yral-common.git?rev=6a40d189d5ff02e3b0eb7d17b90027219c75d641#6a40d189d5ff02e3b0eb7d17b90027219c75d641" dependencies = [ "serde", ] @@ -8000,7 +8049,7 @@ dependencies = [ "candid", "ic-agent", "serde", - "thiserror 1.0.64", + "thiserror 1.0.69", "web-time", ] @@ -8010,8 +8059,8 @@ version = "0.1.0" source = "git+https://github.com/yral-dapp/yral-metadata?rev=56e3f1f1f5f452673bee17739520c800c1264295#56e3f1f1f5f452673bee17739520c800c1264295" dependencies = [ "ic-agent", - "reqwest 0.12.7", - "thiserror 1.0.64", + "reqwest 0.12.9", + "thiserror 1.0.69", "yral-identity", "yral-metadata-types", ] @@ -8023,14 +8072,14 @@ source = "git+https://github.com/yral-dapp/yral-metadata?rev=56e3f1f1f5f452673be dependencies = [ "candid", "serde", - "thiserror 1.0.64", + "thiserror 1.0.69", "yral-identity", ] [[package]] name = "yral-qstash-types" version = "0.1.0" -source = "git+https://github.com/yral-dapp/yral-common.git?rev=5e4414a3f1e0644d93f181949d533c6a9991da04#5e4414a3f1e0644d93f181949d533c6a9991da04" +source = "git+https://github.com/yral-dapp/yral-common.git?rev=6a40d189d5ff02e3b0eb7d17b90027219c75d641#6a40d189d5ff02e3b0eb7d17b90027219c75d641" dependencies = [ "candid", "serde", @@ -8051,7 +8100,7 @@ dependencies = [ [[package]] name = "yral-types" version = "0.1.0" -source = "git+https://github.com/yral-dapp/yral-common.git?rev=5e4414a3f1e0644d93f181949d533c6a9991da04#5e4414a3f1e0644d93f181949d533c6a9991da04" +source = "git+https://github.com/yral-dapp/yral-common.git?rev=6a40d189d5ff02e3b0eb7d17b90027219c75d641#6a40d189d5ff02e3b0eb7d17b90027219c75d641" dependencies = [ "ic-agent", "k256", @@ -8076,27 +8125,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "synstructure", ] @@ -8117,7 +8166,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -8139,5 +8188,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] diff --git a/default.nix b/default.nix index 63f4193b..50311895 100644 --- a/default.nix +++ b/default.nix @@ -1,6 +1,6 @@ {}: let - rev = "df7c06fe940c83d735a8d4bcfe7185d1ac9c9222"; + rev = "1c26355e02ea8aa9bef6a7b3f59d74bd3c504c11"; nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz"; # nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/archive/master.tar.gz"; pkgs = import nixpkgs { }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f839b9a..a17d9f97 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,484 +1,308 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false -devDependencies: - tailwindcss: - specifier: ^3.4.0 - version: 3.4.0 +importers: + + .: + devDependencies: + tailwindcss: + specifier: ^3.4.0 + version: 3.4.0 packages: - /@alloc/quick-lru@5.2.0: + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - dev: true - /@isaacs/cliui@8.0.2: + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - /@jridgewell/gen-mapping@0.3.3: + '@jridgewell/gen-mapping@0.3.3': resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - dev: true - /@jridgewell/resolve-uri@3.1.1: + '@jridgewell/resolve-uri@3.1.1': resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/set-array@1.1.2: + '@jridgewell/set-array@1.1.2': resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true - /@jridgewell/sourcemap-codec@1.4.15: + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - /@jridgewell/trace-mapping@0.3.20: + '@jridgewell/trace-mapping@0.3.20': resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - /@nodelib/fs.scandir@2.1.5: + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 - dev: true - /@pkgjs/parseargs@0.11.0: + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true - /ansi-regex@6.0.1: + ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: true - /ansi-styles@4.3.0: + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - /ansi-styles@6.2.1: + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: true - /any-promise@1.3.0: + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - /anymatch@3.1.3: + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - /arg@5.0.2: + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - /binary-extensions@2.2.0: + binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true - /brace-expansion@2.0.1: + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - /braces@3.0.2: + braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - /camelcase-css@2.0.1: + camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - dev: true - /chokidar@3.5.3: + chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /color-convert@2.0.1: + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - /color-name@1.1.4: + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - /commander@4.1.1: + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: true - /cross-spawn@7.0.3: + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - /cssesc@3.0.0: + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - dev: true - /didyoumean@1.2.2: + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true - /dlv@1.1.3: + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - /eastasianwidth@0.2.0: + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - /emoji-regex@8.0.0: + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - /emoji-regex@9.2.2: + emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - /fast-glob@3.3.2: + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fastq@1.16.0: + fastq@1.16.0: resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} - dependencies: - reusify: 1.0.4 - dev: true - /fill-range@7.0.1: + fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - /foreground-child@3.1.1: + foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - /fsevents@2.3.3: + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - requiresBuild: true - dev: true - optional: true - /function-bind@1.1.2: + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true - /glob-parent@5.1.2: + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - /glob-parent@6.0.2: + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - /glob@10.3.10: + glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - dev: true - /hasown@2.0.0: + hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - /is-binary-path@2.1.0: + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - /is-core-module@2.13.1: + is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.0 - dev: true - /is-extglob@2.1.1: + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true - /is-fullwidth-code-point@3.0.0: + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - dev: true - /is-glob@4.0.3: + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-number@7.0.0: + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true - /isexe@2.0.0: + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - /jackspeak@2.3.6: + jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jiti@1.21.0: + jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - dev: true - /lilconfig@2.1.0: + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - dev: true - /lilconfig@3.0.0: + lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} - dev: true - /lines-and-columns@1.2.4: + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - /lru-cache@10.1.0: + lru-cache@10.1.0: resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} - dev: true - /merge2@1.4.1: + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true - /micromatch@4.0.5: + micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - /minimatch@9.0.3: + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minipass@7.0.4: + minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - dev: true - /mz@2.7.0: + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - /nanoid@3.3.7: + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true - /normalize-path@3.0.0: + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true - /object-assign@4.1.1: + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: true - /object-hash@3.0.0: + object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - dev: true - /path-key@3.1.1: + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true - /path-parse@1.0.7: + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - /path-scurry@1.10.1: + path-scurry@1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.1.0 - minipass: 7.0.4 - dev: true - /picocolors@1.0.0: + picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - /picomatch@2.3.1: + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true - /pify@2.3.0: + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - dev: true - /pirates@4.0.6: + pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - dev: true - /postcss-import@15.1.0(postcss@8.4.32): + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 - dependencies: - postcss: 8.4.32 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - dev: true - /postcss-js@4.0.1(postcss@8.4.32): + postcss-js@4.0.1: resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.32 - dev: true - /postcss-load-config@4.0.2(postcss@8.4.32): + postcss-load-config@4.0.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -489,138 +313,456 @@ packages: optional: true ts-node: optional: true - dependencies: - lilconfig: 3.0.0 - postcss: 8.4.32 - yaml: 2.3.4 - dev: true - /postcss-nested@6.0.1(postcss@8.4.32): + postcss-nested@6.0.1: resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 - dev: true - /postcss-selector-parser@6.0.15: + postcss-selector-parser@6.0.15: resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - /postcss-value-parser@4.2.0: + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - /postcss@8.4.32: + postcss@8.4.32: resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /queue-microtask@1.2.3: + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - /read-cache@1.0.0: + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true - /readdirp@3.6.0: + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - /resolve@1.22.8: + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /reusify@1.0.4: + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - /run-parallel@1.2.0: + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - /shebang-command@2.0.0: + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - /shebang-regex@3.0.0: + shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true - /signal-exit@4.1.0: + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true - /source-map-js@1.0.2: + source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true - /string-width@4.2.3: + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tailwindcss@3.4.0: + resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + engines: {node: '>=14.0.0'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.3': + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + '@jridgewell/resolve-uri@3.1.1': {} + + '@jridgewell/set-array@1.1.2': {} + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.20': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.2.0: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + camelcase-css@2.0.1: {} + + chokidar@3.5.3: + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@4.1.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + didyoumean@1.2.2: {} + + dlv@1.1.3: {} + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + fastq@1.16.0: + dependencies: + reusify: 1.0.4 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + foreground-child@3.1.1: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.3.10: + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + + hasown@2.0.0: + dependencies: + function-bind: 1.1.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.2.0 + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.0 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isexe@2.0.0: {} + + jackspeak@2.3.6: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.0: {} + + lilconfig@2.1.0: {} + + lilconfig@3.0.0: {} + + lines-and-columns@1.2.4: {} + + lru-cache@10.1.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.0.4: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + normalize-path@3.0.0: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.10.1: + dependencies: + lru-cache: 10.1.0 + minipass: 7.0.4 + + picocolors@1.0.0: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + postcss-import@15.1.0(postcss@8.4.32): + dependencies: + postcss: 8.4.32 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.32): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.32 + + postcss-load-config@4.0.2(postcss@8.4.32): + dependencies: + lilconfig: 3.0.0 + postcss: 8.4.32 + yaml: 2.3.4 + + postcss-nested@6.0.1(postcss@8.4.32): + dependencies: + postcss: 8.4.32 + postcss-selector-parser: 6.0.15 + + postcss-selector-parser@6.0.15: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.32: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + queue-microtask@1.2.3: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + resolve@1.22.8: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@4.1.0: {} + + source-map-js@1.0.2: {} + + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - dev: true - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - dev: true - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - dev: true - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + strip-ansi@7.1.0: dependencies: ansi-regex: 6.0.1 - dev: true - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 @@ -629,17 +771,10 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /tailwindcss@3.4.0: - resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@3.4.0: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -665,63 +800,37 @@ packages: sucrase: 3.35.0 transitivePeerDependencies: - ts-node - dev: true - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 - dev: true - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thenify@3.3.1: dependencies: any-promise: 1.3.0 - dev: true - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - dev: true - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true + ts-interface-checker@0.1.13: {} - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: true - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - dev: true - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true + yaml@2.3.4: {} diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 9bd9f22a..11afbbc3 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2024-09-23" \ No newline at end of file +channel = "nightly-2024-12-07" \ No newline at end of file diff --git a/ssr/Cargo.toml b/ssr/Cargo.toml index b2d3912f..7f4c3114 100644 --- a/ssr/Cargo.toml +++ b/ssr/Cargo.toml @@ -10,10 +10,10 @@ crate-type = ["cdylib", "rlib"] axum = { version = "0.7", optional = true, features = ["macros"] } console_error_panic_hook = "0.1" console_log = "1" -leptos = { version = "0.6", features = ["nightly"] } -leptos_axum = { version = "0.6", optional = true } -leptos_meta = { version = "0.6", features = ["nightly"] } -leptos_router = { version = "0.6", features = ["nightly"] } +leptos = { version = "0.7", features = ["nightly"] } +leptos_axum = { version = "0.7", optional = true } +leptos_meta = "0.7" +leptos_router = { version = "0.7", features = ["nightly"] } log = "0.4" simple_logger = "4.0" tokio = { version = "1", optional = true, features = [ @@ -23,8 +23,8 @@ tokio = { version = "1", optional = true, features = [ ] } tower = { version = "0.4", optional = true } tower-http = { version = "0.5", features = ["fs"], optional = true } -wasm-bindgen = "=0.2.93" -thiserror = "1.0" +wasm-bindgen = "=0.2.96" +thiserror = "2.0" tracing = { version = "0.1.37", optional = true } http = "1.1.0" serde.workspace = true @@ -34,18 +34,17 @@ ic-base-types = { git = "https://github.com/dfinity/ic", rev = "tags/release-202 icp-ledger = { git = "https://github.com/dfinity/ic", rev = "tags/release-2024-10-17_03-07-base" } serde-wasm-bindgen = "0.6.5" futures = "0.3.30" -leptos-use = "0.12.0" -codee = { version = "0.1.2", features = ["json_serde"] } +leptos-use = "0.14.0" +codee = { version = "0.2.0", features = ["json_serde"] } reqwest = { version = "0.12", default-features = false, features = [ "json", "http2", ] } serde_bytes.workspace = true hex = "0.4.3" -leptos_icons = "0.3.0" +leptos_icons = { git = "https://github.com/ozpv/leptos-icons", rev = "cd80dc418aa5da2865b79c7822c68aeb2486f30f" } icondata = "0.3.0" gloo = { version = "0.11.0", features = ["futures", "net", "net"] } -once_cell = "1.19.0" web-time.workspace = true k256 = { version = "0.13.4", default-features = false, features = [ "std", @@ -90,8 +89,8 @@ hmac = { version = "0.12.1", optional = true } wasm-bindgen-futures = { version = "0.4.42" } testcontainers = { version = "0.20.0", optional = true } yral-testcontainers = { git = "https://github.com/yral-dapp/yral-testcontainers", rev = "7438ba7cb281e7f195cf81f2a8532f63ce005771", optional = true } -sns-validation = { git = "https://github.com/yral-dapp/yral-common.git", rev = "5e4414a3f1e0644d93f181949d533c6a9991da04" } -yral-grpc-traits = { git = "https://github.com/yral-dapp/yral-common.git", rev = "5e4414a3f1e0644d93f181949d533c6a9991da04" } +sns-validation = { git = "https://github.com/yral-dapp/yral-common.git", rev = "6a40d189d5ff02e3b0eb7d17b90027219c75d641" } +yral-grpc-traits = { git = "https://github.com/yral-dapp/yral-common.git", rev = "6a40d189d5ff02e3b0eb7d17b90027219c75d641" } js-sys = "0.3.69" tonic-web-wasm-client = { version = "0.6" } tonic = { version = "0.12.0", default-features = false, features = [ @@ -106,16 +105,16 @@ firestore = { version = "0.43.1", default-features = false, features = [ ], optional = true } speedate = { version = "0.14.4", optional = true } urlencoding = "2.1.3" -yral-types = { git = "https://github.com/yral-dapp/yral-common.git", rev = "5e4414a3f1e0644d93f181949d533c6a9991da04" } -yral-qstash-types = { git = "https://github.com/yral-dapp/yral-common.git", rev = "5e4414a3f1e0644d93f181949d533c6a9991da04" } -yral-canisters-client = { git = "https://github.com/yral-dapp/yral-common.git", rev = "5e4414a3f1e0644d93f181949d533c6a9991da04", features = ["full"] } -yral-canisters-common = { git = "https://github.com/yral-dapp/yral-common.git", rev = "5e4414a3f1e0644d93f181949d533c6a9991da04" } +yral-types = { git = "https://github.com/yral-dapp/yral-common.git", rev = "6a40d189d5ff02e3b0eb7d17b90027219c75d641" } +yral-qstash-types = { git = "https://github.com/yral-dapp/yral-common.git", rev = "6a40d189d5ff02e3b0eb7d17b90027219c75d641" } +yral-canisters-client = { git = "https://github.com/yral-dapp/yral-common.git", rev = "6a40d189d5ff02e3b0eb7d17b90027219c75d641", features = ["full"] } +yral-canisters-common = { git = "https://github.com/yral-dapp/yral-common.git", rev = "6a40d189d5ff02e3b0eb7d17b90027219c75d641" } pulldown-cmark = "0.12.1" ic-certification = "2.6.0" ciborium = "0.2.2" yral-metadata-client = { git = "https://github.com/yral-dapp/yral-metadata", rev = "56e3f1f1f5f452673bee17739520c800c1264295", optional = true } yral-metadata-types = { git = "https://github.com/yral-dapp/yral-metadata", rev = "56e3f1f1f5f452673bee17739520c800c1264295", optional = true } - +send_wrapper = { version = "0.6.0", optional = true, features = ["futures"] } [build-dependencies] tonic-build = { version = "0.12.0", default-features = false, features = [ @@ -126,14 +125,14 @@ anyhow = "1.0.86" [features] hydrate = [ "leptos/hydrate", - "leptos_meta/hydrate", - "leptos_router/hydrate", "ic-agent/wasm-bindgen", "dep:web-sys", "reqwest/native-tls", "dep:rand_chacha", "tonic/codegen", - "speedate" + "speedate", + "yral-canisters-common/js", + "dep:send_wrapper" ] ssr = [ "dep:axum", diff --git a/ssr/build.rs b/ssr/build.rs index e3a4ef1a..5be3c81e 100644 --- a/ssr/build.rs +++ b/ssr/build.rs @@ -15,7 +15,7 @@ mod build_common { .build_client(true) .build_server(false) .out_dir(out_dir.clone()) - .compile( + .compile_protos( &[ml_feed_proto, icpump_search_proto, nsfw_proto], &["proto"], )?; @@ -27,7 +27,7 @@ mod build_common { .build_client(true) .build_server(false) .out_dir(out_dir) - .compile(&[ml_feed_proto], &["proto"])?; + .compile_protos(&[ml_feed_proto], &["proto"])?; Ok(()) } @@ -54,7 +54,7 @@ mod build_ssr { .build_client(true) .build_server(false) .out_dir(out_dir) - .compile(&[warehouse_events_proto, off_chain_proto], &["proto"])?; + .compile_protos(&[warehouse_events_proto, off_chain_proto], &["proto"])?; Ok(()) } diff --git a/ssr/src/app.rs b/ssr/src/app.rs index cafe4904..6704729e 100644 --- a/ssr/src/app.rs +++ b/ssr/src/app.rs @@ -30,11 +30,12 @@ use crate::{ state::{audio_state::AudioState, content_seed_client::ContentSeedClient, history::HistoryCtx}, utils::event_streaming::EventHistory, }; +use leptos_router::hooks::use_location; use yral_canisters_common::Canisters; -use leptos::*; +use leptos::prelude::*; use leptos_meta::*; -use leptos_router::*; +use leptos_router::{components::*, path, MatchNestedRoutes}; #[component] fn NotFound() -> impl IntoView { @@ -44,30 +45,48 @@ fn NotFound() -> impl IntoView { } #[component(transparent)] -fn GoogleAuthRedirectHandlerRoute() -> impl IntoView { - let path = "/auth/google_redirect"; +fn GoogleAuthRedirectHandlerRoute() -> impl MatchNestedRoutes + Clone { + let path = path!("/auth/google_redirect"); #[cfg(any(feature = "oauth-ssr", feature = "oauth-hydrate"))] { use crate::page::google_redirect::GoogleRedirectHandler; - view! { } + view! { }.into_inner() } #[cfg(not(any(feature = "oauth-ssr", feature = "oauth-hydrate")))] { - view! { } + view! { }.into_inner() } } #[component(transparent)] -fn GoogleAuthRedirectorRoute() -> impl IntoView { - let path = "/auth/perform_google_redirect"; +fn GoogleAuthRedirectorRoute() -> impl MatchNestedRoutes + Clone { + let path = path!("/auth/perform_google_redirect"); #[cfg(any(feature = "oauth-ssr", feature = "oauth-hydrate"))] { use crate::page::google_redirect::GoogleRedirector; - view! { } + view! { }.into_inner() } #[cfg(not(any(feature = "oauth-ssr", feature = "oauth-hydrate")))] { - view! { } + view! { }.into_inner() + } +} + +pub fn shell(options: LeptosOptions) -> impl IntoView { + view! { + + + + + + + + + + + + + } } @@ -92,13 +111,13 @@ pub fn App() -> impl IntoView { // History Tracking let history_ctx = HistoryCtx::default(); provide_context(history_ctx.clone()); - create_effect(move |_| { + Effect::new(move || { let loc = use_location(); history_ctx.push(&loc.pathname.get()); }); // Analytics - let enable_ga4_script = create_rw_signal(false); + let enable_ga4_script = RwSignal::new(false); #[cfg(feature = "ga4")] { enable_ga4_script.set(true); @@ -134,41 +153,40 @@ pub fn App() -> impl IntoView { // // content for this welcome page - }.into_view()> +
- + }> // auth redirect routes exist outside main context - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/ssr/src/auth/mod.rs b/ssr/src/auth/mod.rs index 70715cef..5581b087 100644 --- a/ssr/src/auth/mod.rs +++ b/ssr/src/auth/mod.rs @@ -7,7 +7,7 @@ use ic_agent::{ Identity, }; use k256::elliptic_curve::JwkEcKey; -use leptos::{server, server_fn::codec::Json, ServerFnError}; +use leptos::{prelude::ServerFnError, server, server_fn::codec::Json}; use rand_chacha::rand_core::OsRng; use serde::{Deserialize, Serialize}; use web_time::Duration; diff --git a/ssr/src/auth/server_impl/google.rs b/ssr/src/auth/server_impl/google.rs index 9cd76fb6..16f46ea9 100644 --- a/ssr/src/auth/server_impl/google.rs +++ b/ssr/src/auth/server_impl/google.rs @@ -4,7 +4,7 @@ use axum_extra::extract::{ }; use candid::Principal; use ic_agent::{identity::Secp256k1Identity, Identity}; -use leptos::{expect_context, ServerFnError}; +use leptos::prelude::{expect_context, ServerFnError}; use leptos_axum::{extract_with_state, ResponseOptions}; use openidconnect::{ core::{CoreAuthenticationFlow, CoreIdTokenVerifier}, diff --git a/ssr/src/auth/server_impl/mod.rs b/ssr/src/auth/server_impl/mod.rs index a9f6db4e..09fc28dd 100644 --- a/ssr/src/auth/server_impl/mod.rs +++ b/ssr/src/auth/server_impl/mod.rs @@ -11,7 +11,7 @@ use candid::Principal; use http::header; use ic_agent::{identity::Secp256k1Identity, Identity}; use k256::elliptic_curve::JwkEcKey; -use leptos::{expect_context, ServerFnError}; +use leptos::prelude::{expect_context, ServerFnError}; use leptos_axum::{extract_with_state, ResponseOptions}; use rand_chacha::rand_core::OsRng; use yral_canisters_common::utils::time::current_epoch; diff --git a/ssr/src/component/airdrop_logo.rs b/ssr/src/component/airdrop_logo.rs index 4b1be629..de4a1a46 100644 --- a/ssr/src/component/airdrop_logo.rs +++ b/ssr/src/component/airdrop_logo.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; #[component] pub fn AirdropLogo() -> impl IntoView { diff --git a/ssr/src/component/auth_providers/google.rs b/ssr/src/component/auth_providers/google.rs index 0c71630e..c30fe241 100644 --- a/ssr/src/component/auth_providers/google.rs +++ b/ssr/src/component/auth_providers/google.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::{ev, prelude::*}; use leptos_icons::*; use leptos_use::{use_event_listener, use_interval_fn, use_window}; @@ -22,10 +22,10 @@ pub fn GoogleAuthProvider() -> impl IntoView { "Google Sign-In" } }; - let done_guard = create_rw_signal(false); - let close_popup_store = store_value::>>(None); + let done_guard = RwSignal::new(false); + let close_popup_store = StoredValue::>>::new(None); let close_popup = - move || _ = close_popup_store.with_value(|cb| cb.as_ref().map(|close_cb| close_cb(()))); + move || _ = close_popup_store.with_value(|cb| cb.as_ref().map(|close_cb| close_cb.run(()))); let on_click = move || { let window = window(); diff --git a/ssr/src/component/auth_providers/local_storage.rs b/ssr/src/component/auth_providers/local_storage.rs index ced6f2c1..ff9fcb7e 100644 --- a/ssr/src/component/auth_providers/local_storage.rs +++ b/ssr/src/component/auth_providers/local_storage.rs @@ -1,7 +1,7 @@ use codee::string::JsonSerdeCodec; use ic_agent::identity::Secp256k1Identity; use k256::elliptic_curve::JwkEcKey; -use leptos::*; +use leptos::prelude::*; use leptos_use::storage::use_local_storage; use yral_types::delegated_identity::DelegatedIdentityWire; @@ -43,7 +43,7 @@ pub fn LocalStorageProvider() -> impl IntoView { let ctx: LoginProvCtx = expect_context(); - let do_login_action = create_action(move |()| async move { + let do_login_action = Action::new(move |()| async move { let secp256k1_key = jwk_identity.get_untracked(); let (delegation, jwk) = perform_local_storage_auth(secp256k1_key).await?; set_jwk_identity(Some(jwk)); diff --git a/ssr/src/component/auth_providers/mod.rs b/ssr/src/component/auth_providers/mod.rs index 1a25d3a2..24236489 100644 --- a/ssr/src/component/auth_providers/mod.rs +++ b/ssr/src/component/auth_providers/mod.rs @@ -6,17 +6,14 @@ mod local_storage; use candid::Principal; use codee::string::FromToStringCodec; use ic_agent::Identity; -use leptos::*; +use leptos::{ev, prelude::*, reactive::wrappers::write::SignalSetter}; use leptos_use::storage::use_local_storage; use yral_types::delegated_identity::DelegatedIdentityWire; use crate::{ consts::ACCOUNT_CONNECTED_STORE, state::{auth::auth_state, local_storage::use_referrer_store}, - utils::{ - event_streaming::events::{LoginMethodSelected, LoginSuccessful}, - MockPartialEq, - }, + utils::event_streaming::events::{LoginMethodSelected, LoginSuccessful}, }; use yral_canisters_common::Canisters; @@ -81,12 +78,12 @@ fn LoginProvButton( prov: ProviderKind, #[prop(into)] class: Oco<'static, str>, on_click: Cb, - #[prop(optional, into)] disabled: MaybeSignal, + #[prop(optional, into)] disabled: Signal, children: Children, ) -> impl IntoView { let ctx: LoginProvCtx = expect_context(); - let click_action = create_action(move |()| async move { + let click_action = Action::new(move |()| async move { LoginMethodSelected.send_event(prov); }); @@ -112,32 +109,29 @@ pub fn LoginProviders(show_modal: RwSignal, lock_closing: RwSignal) use_local_storage::(ACCOUNT_CONNECTED_STORE); let auth = auth_state(); - let new_identity = create_rw_signal::>(None); + let new_identity = RwSignal::>::new(None); - let processing = create_rw_signal(None); + let processing = RwSignal::new(None); - create_local_resource( - move || MockPartialEq(new_identity()), - move |identity| async move { - let Some(identity) = identity.0 else { - return Ok(()); - }; + LocalResource::new(move || async move { + let Some(identity) = new_identity() else { + return Ok(()); + }; - let (referrer_store, _, _) = use_referrer_store(); - let referrer = referrer_store.get_untracked(); + let (referrer_store, _, _) = use_referrer_store(); + let referrer = referrer_store.get_untracked(); - // This is some redundant work, but saves us 100+ lines of resource handling - let canisters = Canisters::authenticate_with_network(identity, referrer).await?; + // This is some redundant work, but saves us 100+ lines of resource handling + let canisters = Canisters::authenticate_with_network(identity, referrer).await?; - if let Err(e) = handle_user_login(canisters.clone(), referrer).await { - log::warn!("failed to handle user login, err {e}. skipping"); - } + if let Err(e) = handle_user_login(canisters.clone(), referrer).await { + log::warn!("failed to handle user login, err {e}. skipping"); + } - LoginSuccessful.send_event(canisters); + LoginSuccessful.send_event(canisters); - Ok::<_, ServerFnError>(()) - }, - ); + Ok::<_, ServerFnError>(()) + }); let ctx = LoginProvCtx { processing: processing.read_only(), @@ -189,7 +183,7 @@ mod server_fn_impl { #[cfg(feature = "backend-admin")] mod backend_admin { use candid::Principal; - use leptos::ServerFnError; + use leptos::prelude::ServerFnError; use crate::state::canisters::unauth_canisters; use yral_canisters_client::individual_user_template::KnownPrincipalType; @@ -296,7 +290,7 @@ mod server_fn_impl { #[cfg(not(feature = "backend-admin"))] mod mock { use candid::Principal; - use leptos::ServerFnError; + use leptos::prelude::ServerFnError; pub async fn issue_referral_rewards_impl( _referee_canister: Principal, diff --git a/ssr/src/component/back_btn.rs b/ssr/src/component/back_btn.rs index c251e610..0682e149 100644 --- a/ssr/src/component/back_btn.rs +++ b/ssr/src/component/back_btn.rs @@ -1,7 +1,7 @@ use gloo::history::{BrowserHistory, History}; -use leptos::*; +use leptos::prelude::*; use leptos_icons::Icon; -use leptos_router::use_navigate; +use leptos_router::hooks::use_navigate; use reqwest::Url; use crate::state::history::HistoryCtx; @@ -38,7 +38,7 @@ pub fn go_back_or_fallback(fallback: &str) { } #[component] -pub fn BackButton(#[prop(into)] fallback: MaybeSignal) -> impl IntoView { +pub fn BackButton(#[prop(into)] fallback: Signal) -> impl IntoView { view! { diff --git a/ssr/src/component/feed_popup.rs b/ssr/src/component/feed_popup.rs index c0caa80f..b0d7d3a1 100644 --- a/ssr/src/component/feed_popup.rs +++ b/ssr/src/component/feed_popup.rs @@ -1,4 +1,4 @@ -use leptos::{ev::MouseEvent, *}; +use leptos::{ev::MouseEvent, prelude::*}; use crate::component::connect::ConnectLogin; diff --git a/ssr/src/component/infinite_scroller.rs b/ssr/src/component/infinite_scroller.rs index f838036a..733d6af0 100644 --- a/ssr/src/component/infinite_scroller.rs +++ b/ssr/src/component/infinite_scroller.rs @@ -1,6 +1,9 @@ use super::bullet_loader::BulletLoader; -use leptos::{html::ElementDescriptor, *}; -use leptos_use::{use_intersection_observer_with_options, UseIntersectionObserverOptions}; +use leptos::{html::ElementType, prelude::*}; +use leptos_use::{ + core::{IntoElementsMaybeSignal, SignalVecMarker}, + use_intersection_observer_with_options, UseIntersectionObserverOptions, +}; use std::marker::PhantomData; use yral_canisters_common::cursored_data::{CursoredDataProvider, KeyedData, PageEntry}; @@ -22,16 +25,18 @@ pub(crate) fn InfiniteScroller( #[prop(optional)] _rn: PhantomData, ) -> impl IntoView where - RootNode: ElementDescriptor + Clone + 'static, - Prov: CursoredDataProvider + Clone + 'static, - EF: Fn(InferData, Option>) -> N + Clone + 'static, + RootNode: ElementType + Clone + 'static, + NodeRef: IntoElementsMaybeSignal, + Prov: CursoredDataProvider + Clone + 'static + Send + Sync, + ::Data: Send + Sync, + EF: Fn(InferData, Option>) -> N + Clone + 'static + Send + Sync, N: IntoView + 'static, { - let data = create_rw_signal(Vec::>::new()); - let end = create_rw_signal(false); - let cursor = create_rw_signal(0); + let data = RwSignal::new(Vec::>::new()); + let end = RwSignal::new(false); + let cursor = RwSignal::new(0); - let fetch_res = create_resource(cursor, move |cursor| { + let fetch_res = Resource::new(cursor, move |cursor| { let provider = provider.clone(); async move { let PageEntry { @@ -52,14 +57,15 @@ where } }); let upper_data = move || { - with!(|data| data - .iter() - .take(data.len().saturating_sub(1)) - .cloned() - .collect::>()) + data.with(|data| { + data.iter() + .take(data.len().saturating_sub(1)) + .cloned() + .collect::>() + }) }; - let last_data = move || with!(|data| data.last().cloned()); - let last_elem = create_node_ref::(); + let last_data = move || data.with(|data| data.last().cloned()); + let last_elem = NodeRef::::new(); use_intersection_observer_with_options( last_elem, @@ -74,8 +80,8 @@ where }, UseIntersectionObserverOptions::default().thresholds(vec![0.1]), ); - let data_loading = fetch_res.loading(); - let children = store_value(children); + let data_loading = move || fetch_res.with(|d| d.is_none()); + let children = StoredValue::new(children); let loader = custom_loader.unwrap_or_else(|| BulletLoader.into()); view! { diff --git a/ssr/src/component/loading.rs b/ssr/src/component/loading.rs index 3809372f..bf4351d4 100644 --- a/ssr/src/component/loading.rs +++ b/ssr/src/component/loading.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; #[component] pub fn Loading(text: String, children: Children) -> impl IntoView { diff --git a/ssr/src/component/login_modal.rs b/ssr/src/component/login_modal.rs index ce75a82b..b4cd8178 100644 --- a/ssr/src/component/login_modal.rs +++ b/ssr/src/component/login_modal.rs @@ -2,11 +2,11 @@ use super::{ auth_providers::LoginProviders, overlay::{ShadowOverlay, ShowOverlay}, }; -use leptos::*; +use leptos::prelude::*; #[component] pub fn LoginModal(#[prop(into)] show: RwSignal) -> impl IntoView { - let lock_closing = create_rw_signal(false); + let lock_closing = RwSignal::new(false); view! { , + #[prop(into)] href: Signal, #[prop(into)] icon: icondata_core::Icon, #[prop(optional)] filled_icon: Option, cur_selected: Memo, @@ -97,9 +97,9 @@ fn UploadIcon(idx: usize, cur_selected: Memo) -> impl IntoView { #[component] pub fn NavBar() -> impl IntoView { let cur_location = use_location(); - let home_path = create_rw_signal("/".to_string()); + let home_path = RwSignal::new("/".to_string()); let (user_principal, _) = use_cookie::(USER_PRINCIPAL_STORE); - let cur_selected = create_memo(move |_| { + let cur_selected = Memo::new(move |_| { let path = cur_location.pathname.get(); match path.as_str() { diff --git a/ssr/src/component/onboarding_flow.rs b/ssr/src/component/onboarding_flow.rs index dd486b25..2a7df8c1 100644 --- a/ssr/src/component/onboarding_flow.rs +++ b/ssr/src/component/onboarding_flow.rs @@ -1,9 +1,9 @@ -use leptos::*; +use leptos::prelude::*; use leptos_icons::Icon; #[component] pub fn OnboardingPopUp(onboard_on_click: WriteSignal) -> impl IntoView { - let onboarding_page_no = create_rw_signal(1); + let onboarding_page_no = RwSignal::new(1); let style = move || { if onboarding_page_no.get() == 2 { diff --git a/ssr/src/component/option.rs b/ssr/src/component/option.rs index fd2bea58..f990bf11 100644 --- a/ssr/src/component/option.rs +++ b/ssr/src/component/option.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; #[component] pub fn SelectOption(#[prop(into)] is: String, value: ReadSignal) -> impl IntoView { @@ -6,7 +6,7 @@ pub fn SelectOption(#[prop(into)] is: String, value: ReadSignal) -> impl view! { } } diff --git a/ssr/src/component/overlay.rs b/ssr/src/component/overlay.rs index 9bf96db2..331ca1bc 100644 --- a/ssr/src/component/overlay.rs +++ b/ssr/src/component/overlay.rs @@ -1,5 +1,5 @@ use super::spinner::Spinner; -use leptos::*; +use leptos::{portal::Portal, prelude::*}; #[derive(Clone, Copy)] pub enum ShowOverlay { @@ -32,7 +32,17 @@ impl From> for ShowOverlay { } } -impl SignalGet for ShowOverlay { +impl DefinedAt for ShowOverlay { + fn defined_at(&self) -> Option<&'static std::panic::Location<'static>> { + match self { + ShowOverlay::Closable(s) => s.defined_at(), + ShowOverlay::AlwaysLocked(s) => s.defined_at(), + ShowOverlay::MaybeClosable { show, .. } => show.defined_at(), + } + } +} + +impl Get for ShowOverlay { type Value = bool; fn get(&self) -> bool { @@ -52,7 +62,7 @@ impl SignalGet for ShowOverlay { } } -impl SignalSet for ShowOverlay { +impl Set for ShowOverlay { type Value = bool; fn set(&self, value: bool) { @@ -84,7 +94,7 @@ impl SignalSet for ShowOverlay { #[component] pub fn ShadowOverlay(#[prop(into)] show: ShowOverlay, children: ChildrenFn) -> impl IntoView { - let children_s = store_value(children); + let children_s = StoredValue::new(children); view! { // Portal is necessary @@ -107,7 +117,7 @@ pub fn ShadowOverlay(#[prop(into)] show: ShowOverlay, children: ChildrenFn) -> i class="flex cursor-pointer modal-bg w-dvw h-dvh fixed left-0 top-0 bg-black/60 z-[99] justify-center items-center overflow-hidden" > - {(children_s())()} + {(children_s.read_value())()} @@ -143,12 +153,13 @@ pub fn PopupOverlay(#[prop(into)] show: ShowOverlay, children: ChildrenFn) -> im /// close -> Set this signal to true to close the modal (automatically reset upon closing) #[component] pub fn ActionTrackerPopup< - S: 'static, - R: 'static + Clone, - V: IntoView, - IV: Fn(R) -> V + Clone + 'static, + S: 'static + Send + Sync, + R: 'static + Clone + Send + Sync, + Store: Storage>, + V: IntoView + 'static, + IV: Fn(R) -> V + Clone + 'static + Send + Sync, >( - action: Action, + action: Action, #[prop(into)] loading_message: String, modal: IV, #[prop(optional, into)] close: RwSignal, @@ -163,11 +174,11 @@ pub fn ActionTrackerPopup< }); let show_popup = Signal::derive(move || { let show = (pending() || res.with(|r| r.is_some())) && !close(); - close.set_untracked(false); + close.update_untracked(|c| *c = false); show }); - let modal_s = store_value(modal); - let loading_msg_s = store_value(loading_message); + let modal_s = StoredValue::new(modal); + let loading_msg_s = StoredValue::new(loading_message); view! { @@ -178,7 +189,7 @@ pub fn ActionTrackerPopup< } >
- {move || (modal_s.get_value())(res().unwrap())} + {move || (modal_s.read_value())(res().unwrap())}
diff --git a/ssr/src/component/scrolling_post_view.rs b/ssr/src/component/scrolling_post_view.rs index 8f33c64c..272bd890 100644 --- a/ssr/src/component/scrolling_post_view.rs +++ b/ssr/src/component/scrolling_post_view.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::{html, prelude::*}; use leptos_icons::*; use leptos_use::{use_intersection_observer_with_options, UseIntersectionObserverOptions}; @@ -25,7 +25,7 @@ pub fn MuteIconOverlay(show_mute_icon: RwSignal) -> impl IntoView { } #[component] -pub fn ScrollingPostView V + Clone + 'static, V>( +pub fn ScrollingPostView V + Clone + 'static + Send + Sync, V>( video_queue: RwSignal>, current_idx: RwSignal, #[prop(optional)] fetch_next_videos: Option, @@ -40,12 +40,12 @@ pub fn ScrollingPostView V + Clone + 'static, V>( .. } = AudioState::get(); - let scroll_root: NodeRef = create_node_ref(); + let scroll_root: NodeRef = NodeRef::new(); let var_name = view! {
@@ -56,7 +56,7 @@ pub fn ScrollingPostView V + Clone + 'static, V>( each=move || video_queue().into_iter().enumerate() key=move |(_, details)| (details.canister_id, details.post_id) children=move |(queue_idx, _details)| { - let container_ref = create_node_ref::(); + let container_ref = NodeRef::::new(); let next_videos = fetch_next_videos.clone(); use_intersection_observer_with_options( container_ref, @@ -82,8 +82,8 @@ pub fn ScrollingPostView V + Clone + 'static, V>( .thresholds(vec![0.83]) .root(Some(scroll_root)), ); - create_effect(move |_| { - let Some(container) = container_ref() else { + Effect::new(move || { + let Some(container) = container_ref.get() else { return; }; if current_idx() == queue_idx && recovering_state.get_untracked() { @@ -91,11 +91,11 @@ pub fn ScrollingPostView V + Clone + 'static, V>( recovering_state.set(false); } }); - let show_video = create_memo(move |_| { + let show_video = Memo::new(move |_| { queue_idx.abs_diff(current_idx()) <= 20 }); view! { -
+
- {&share_link.clone()} + {share_link.clone()} @@ -122,7 +122,7 @@ pub fn ShareButtonWithFallbackPopup( #[prop(optional)] style: String, ) -> impl IntoView { let base_url = get_host(); - let show_fallback = create_rw_signal(false); + let show_fallback = RwSignal::new(false); let share_link_c = share_link.clone(); let on_share_click = move |ev: ev::MouseEvent| { ev.stop_propagation(); diff --git a/ssr/src/component/social.rs b/ssr/src/component/social.rs index 28509de4..53331871 100644 --- a/ssr/src/component/social.rs +++ b/ssr/src/component/social.rs @@ -1,5 +1,5 @@ use super::ic_symbol::IcSymbol; -use leptos::*; +use leptos::prelude::*; use leptos_icons::*; #[component] diff --git a/ssr/src/component/spinner.rs b/ssr/src/component/spinner.rs index 04be813c..ff530462 100644 --- a/ssr/src/component/spinner.rs +++ b/ssr/src/component/spinner.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; /// Spinner with constant size #[component] diff --git a/ssr/src/component/title.rs b/ssr/src/component/title.rs index 51d03845..75a71659 100644 --- a/ssr/src/component/title.rs +++ b/ssr/src/component/title.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; #[component] pub fn Title( diff --git a/ssr/src/component/toggle.rs b/ssr/src/component/toggle.rs index 5fa7fc91..df92530b 100644 --- a/ssr/src/component/toggle.rs +++ b/ssr/src/component/toggle.rs @@ -1,4 +1,4 @@ -use leptos::{html::Input, *}; +use leptos::{html::Input, prelude::*}; #[component] fn ToggleInner( diff --git a/ssr/src/component/token_confetti_symbol.rs b/ssr/src/component/token_confetti_symbol.rs index 88e8a9e6..c3985a74 100644 --- a/ssr/src/component/token_confetti_symbol.rs +++ b/ssr/src/component/token_confetti_symbol.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; #[component] pub fn TokenConfettiSymbol(#[prop(into)] class: String) -> impl IntoView { diff --git a/ssr/src/component/token_logo_sanitize.rs b/ssr/src/component/token_logo_sanitize.rs index 91d24985..084366dd 100644 --- a/ssr/src/component/token_logo_sanitize.rs +++ b/ssr/src/component/token_logo_sanitize.rs @@ -1,15 +1,15 @@ -use leptos::*; +use leptos::{ev, html, prelude::*, reactive::wrappers::write::SignalSetter}; use leptos_use::use_event_listener; use crate::utils::web::FileWithUrl; #[component] pub fn TokenLogoSanitize( - #[prop(into)] img_file: Signal>, + #[prop(into)] img_file: Signal, LocalStorage>, #[prop(into)] output_b64: SignalSetter>, ) -> impl IntoView { - let img_ref: NodeRef = create_node_ref(); - let canvas_ref: NodeRef = create_node_ref(); + let img_ref: NodeRef = NodeRef::new(); + let canvas_ref: NodeRef = NodeRef::new(); _ = use_event_listener(img_ref, ev::load, move |_| { #[cfg(feature = "hydrate")] @@ -67,10 +67,10 @@ pub fn TokenLogoSanitize( }); view! { - + diff --git a/ssr/src/component/video_player.rs b/ssr/src/component/video_player.rs index 856ecdab..aefb1aeb 100644 --- a/ssr/src/component/video_player.rs +++ b/ssr/src/component/video_player.rs @@ -1,5 +1,4 @@ -use leptos::*; -use leptos_dom::html::Video; +use leptos::{html::Video, prelude::*}; use crate::state::audio_state::AudioState; @@ -18,7 +17,7 @@ pub fn VideoPlayer( class="sr-only" />
- } - .into_view() - } else { - view! {<>}.into_view() - } - }); + }; + + let tokens_view = if tokens_len == 0 { + view! { <> }; + Either::Left(()) + } else { + Either::Right(view! { + {tokens_view_list} +
+ +
+ }) + }; view! {
@@ -321,6 +318,8 @@ pub fn ICPumpAiPage3( search_action: Action<(), ()>, reset_state: Action<(), ()>, ) -> impl IntoView { + let search_pending = search_action.pending(); + view! {
@@ -336,47 +335,39 @@ pub fn ICPumpAiPage3(
- { - move || { - if search_action.pending().get() { - return view! { - <> -
-
-
Thinking
-
- - }; - } - view! { - <>
- } - } - } - +
+ }> + <> +
+
+
Thinking
+
+ + { - view! { + Either::Left(view! {
{query}
- } + }) } ICPumpAiChatItem::ResponseItem{response, tokens} => { - view! { + Either::Right(view! {
- } + }) } } } @@ -410,15 +401,15 @@ pub fn ICPumpAiPage3( #[component] pub fn ICPumpAi() -> impl IntoView { - let page_no = create_rw_signal(1); - let query = create_rw_signal("".to_string()); - let chat = create_rw_signal(ICPumpAiChat { + let page_no = RwSignal::new(1); + let query = RwSignal::new("".to_string()); + let chat = RwSignal::new(ICPumpAiChat { items: VecDeque::new(), rag_data: "".to_string(), interactions: vec![], }); - let search_action = create_action(move |()| async move { + let search_action = Action::new(move |()| async move { page_no.set(3); let q = query.get(); @@ -470,7 +461,7 @@ pub fn ICPumpAi() -> impl IntoView { query.set("".to_string()); }); - let reset_state = create_action(move |()| async move { + let reset_state = Action::new(move |()| async move { query.set("".to_string()); chat.set(ICPumpAiChat { items: VecDeque::new(), @@ -490,26 +481,27 @@ pub fn ICPumpAi() -> impl IntoView { move || { match page_no.get() { 1 => { - view! { + EitherOf4::A(view! { - }.into_view() + }) } 2 => { - view! { + EitherOf4::B(view! { - }.into_view() + }) } 3 => { - view! { + EitherOf4::C(view! { - }.into_view() + }) } _ => { view! { <> - }.into_view() + }; + EitherOf4::D(()) } } } diff --git a/ssr/src/page/icpump/mod.rs b/ssr/src/page/icpump/mod.rs index 22f3d0dd..d6453c06 100644 --- a/ssr/src/page/icpump/mod.rs +++ b/ssr/src/page/icpump/mod.rs @@ -2,7 +2,8 @@ use std::collections::HashMap; use std::collections::VecDeque; use futures::StreamExt; -use leptos::*; +use leptos::prelude::*; +use leptos::task::spawn_local; use leptos_icons::*; use crate::component::spinner::FullScreenSpinner; @@ -21,7 +22,7 @@ pub fn TokenListing( ) -> impl IntoView { view! { @@ -29,7 +30,7 @@ pub fn TokenListing( details.token_name.clone() - {details.token_name} + {details.token_name.clone()} "$" - {details.token_symbol} + {details.token_symbol.clone()}
- {details.description} + {details.description.clone()}
"Created by: "{details.user_id}
- {details.formatted_created_at} + {details.formatted_created_at.clone()}
@@ -77,13 +78,13 @@ pub fn TokenListing( #[component] pub fn ICPumpListing() -> impl IntoView { - let page = create_rw_signal(1); - let token_list: RwSignal> = create_rw_signal(vec![]); - let end_of_list = create_rw_signal(false); - let cache = create_rw_signal(HashMap::>::new()); - let new_token_list: RwSignal> = create_rw_signal(VecDeque::new()); + let page = RwSignal::new(1); + let token_list: RwSignal> = RwSignal::new(vec![]); + let end_of_list = RwSignal::new(false); + let cache = RwSignal::new(HashMap::>::new()); + let new_token_list: RwSignal> = RwSignal::new(VecDeque::new()); - let act = create_resource(page, move |page| async move { + let act = Resource::new(page, move |page| async move { // reset new_token_list new_token_list.set(VecDeque::new()); @@ -94,7 +95,7 @@ pub fn ICPumpListing() -> impl IntoView { get_paginated_token_list(page as u32).await.unwrap() }); - create_effect(move |_| { + Effect::new(move || { spawn_local(async move { let (_app, firestore) = init_firebase(); let mut stream = listen_to_documents(&firestore); @@ -119,12 +120,10 @@ pub fn ICPumpListing() -> impl IntoView { if res.len() < ICPUMP_LISTING_PAGE_SIZE { end_of_list.set(true); } - update!( - move |token_list, cache| { - *token_list = res.clone(); - cache.insert(page.get_untracked(), res.clone()); - } - ); + let mut token_list = token_list.write(); + let mut cache = cache.write(); + *token_list = res.clone(); + cache.insert(page.get_untracked(), res.clone()); }); view! {
diff --git a/ssr/src/page/leaderboard.rs b/ssr/src/page/leaderboard.rs index 8bfd8c56..933adbfa 100644 --- a/ssr/src/page/leaderboard.rs +++ b/ssr/src/page/leaderboard.rs @@ -1,5 +1,5 @@ use crate::component::coming_soon::ComingSoonGraphic; -use leptos::*; +use leptos::prelude::*; use leptos_icons::*; #[component] diff --git a/ssr/src/page/logout.rs b/ssr/src/page/logout.rs index 60d0b8d4..72f41aeb 100644 --- a/ssr/src/page/logout.rs +++ b/ssr/src/page/logout.rs @@ -1,6 +1,6 @@ use codee::string::FromToStringCodec; -use leptos::*; -use leptos_router::Redirect; +use leptos::prelude::*; +use leptos_router::components::Redirect; use leptos_use::storage::use_local_storage; use crate::{ @@ -19,7 +19,7 @@ pub fn Logout() -> impl IntoView { LogoutClicked.send_event(canister_store); let auth = auth_state(); - let auth_res = create_blocking_resource( + let auth_res = Resource::new_blocking( || (), move |_| async move { let id = try_or_redirect_opt!(logout_identity().await); diff --git a/ssr/src/page/menu.rs b/ssr/src/page/menu.rs index 9550b266..a37fb1b6 100644 --- a/ssr/src/page/menu.rs +++ b/ssr/src/page/menu.rs @@ -1,5 +1,5 @@ use crate::component::canisters_prov::with_cans; -use crate::component::canisters_prov::{AuthCansProvider, WithAuthCans}; +use crate::component::canisters_prov::AuthCansProvider; use crate::component::content_upload::YoutubeUpload; use crate::component::modal::Modal; use crate::component::spinner::Spinner; @@ -9,12 +9,13 @@ use crate::consts::{social, NSFW_TOGGLE_STORE}; use crate::state::auth::account_connected_reader; use crate::state::content_seed_client::ContentSeedClient; use crate::utils::notifications::get_token_for_principal; +use crate::utils::send_wrap; use candid::Principal; use codee::string::FromToStringCodec; use leptos::html::Input; -use leptos::*; +use leptos::{ev, prelude::*}; use leptos_icons::*; -use leptos_router::use_query_map; +use leptos_router::hooks::use_query_map; use leptos_use::storage::use_local_storage; use leptos_use::use_event_listener; use yral_canisters_common::utils::profile::ProfileDetails; @@ -119,7 +120,7 @@ fn ProfileInfo() -> impl IntoView { fn NsfwToggle() -> impl IntoView { let (nsfw_enabled, set_nsfw_enabled, _) = use_local_storage::(NSFW_TOGGLE_STORE); - let toggle_ref = create_node_ref::(); + let toggle_ref = NodeRef::::new(); _ = use_event_listener(toggle_ref, ev::change, move |_| { set_nsfw_enabled( @@ -143,11 +144,13 @@ fn NsfwToggle() -> impl IntoView { } } +// TODO: Leptos needs a hot patch for us to remove #[allow(dead_code)] #[component] +#[allow(dead_code)] fn EnableNotifications(user_details: ProfileDetails) -> impl IntoView { let (_, _) = account_connected_reader(); - let on_token_click = create_action(move |()| async move { + let on_token_click: Action<_, _, LocalStorage> = Action::new_unsync(move |()| async move { get_token_for_principal(user_details.principal.to_string()).await; }); @@ -160,7 +163,7 @@ fn EnableNotifications(user_details: ProfileDetails) -> impl IntoView {
@@ -173,13 +176,13 @@ fn EnableNotifications(user_details: ProfileDetails) -> impl IntoView { pub fn Menu() -> impl IntoView { let (is_connected, _) = account_connected_reader(); let query_map = use_query_map(); - let show_content_modal = create_rw_signal(false); + let show_content_modal = RwSignal::new(false); let is_authorized_to_seed_content: AuthorizedUserToSeedContent = expect_context(); - create_effect(move |_| { + Effect::new(move |_| { //check whether query param is right if right set the show_modal_content as true. let query_params = query_map.get(); - let url = query_params.0.get("text")?; + let url = query_params.get("text")?; if !url.is_empty() && is_connected.get() { show_content_modal.set(true); } @@ -189,29 +192,30 @@ pub fn Menu() -> impl IntoView { let authorized_fetch = with_cans(move |cans| async move { let user_principal = cans.user_principal(); match is_authorized_to_seed_content.0.get_untracked() { - Some((auth, principal)) if principal == user_principal => return auth, + Some((auth, principal)) if principal == user_principal => return Ok((auth, principal)), _ => (), } let content_seed_client: ContentSeedClient = expect_context(); - content_seed_client - .check_if_authorized(user_principal) + let auth = send_wrap(content_seed_client.check_if_authorized(user_principal)) .await - .unwrap_or_default() + .unwrap_or_default(); + Ok((auth, user_principal)) }); view! { - - {is_authorized_to_seed_content - .0 - .set(Some((authorized.1, authorized.0.user_principal())))} - + + {move || Suspend::new(async move { + let authorized = authorized_fetch.await.unwrap_or_else(|_| (false, Principal::anonymous())); + is_authorized_to_seed_content.0.set(Some(authorized)); + })} + diff --git a/ssr/src/page/notifs/mod.rs b/ssr/src/page/notifs/mod.rs index 0300abaa..26d1da86 100644 --- a/ssr/src/page/notifs/mod.rs +++ b/ssr/src/page/notifs/mod.rs @@ -1,4 +1,4 @@ -use leptos::*; +use leptos::prelude::*; use crate::{ component::canisters_prov::AuthCansProvider, state::auth::account_connected_reader, @@ -10,7 +10,8 @@ use yral_canisters_common::utils::profile::ProfileDetails; fn NotifInnerComponent(details: ProfileDetails) -> impl IntoView { let (_, _) = account_connected_reader(); - let on_token_click = create_action(move |()| async move { + // TODO: switch to Action::new_local + let on_token_click: Action<_, _, LocalStorage> = Action::new_unsync(move |()| async move { get_token_for_principal(details.principal.to_string()).await; }); @@ -21,7 +22,7 @@ fn NotifInnerComponent(details: ProfileDetails) -> impl IntoView {
diff --git a/ssr/src/page/post_view/bet.rs b/ssr/src/page/post_view/bet.rs index 93a75fec..7a502e4a 100644 --- a/ssr/src/page/post_view/bet.rs +++ b/ssr/src/page/post_view/bet.rs @@ -1,4 +1,7 @@ -use leptos::*; +use leptos::{ + either::{Either, EitherOf3}, + prelude::*, +}; use leptos_icons::*; use leptos_use::use_interval_fn; use web_time::Duration; @@ -10,9 +13,9 @@ use crate::{ spinner::SpinnerFit, }, page::post_view::BetEligiblePostCtx, - state::canisters::unauth_canisters, + state::canisters::{authenticated_canisters, unauth_canisters}, try_or_redirect_opt, - utils::{time::to_hh_mm_ss, MockPartialEq}, + utils::{send_wrap, time::to_hh_mm_ss, MockPartialEq}, }; use yral_canisters_common::{ utils::{ @@ -59,7 +62,7 @@ impl From for u64 { #[component] fn CoinStateView( - #[prop(into)] coin: MaybeSignal, + #[prop(into)] coin: Signal, #[prop(into)] class: String, #[prop(optional, into)] disabled: Signal, ) -> impl IntoView { @@ -82,7 +85,7 @@ fn HNButton( kind: VoteKind, #[prop(into)] disabled: Signal, ) -> impl IntoView { - let grayscale = create_memo(move |_| bet_direction() != Some(kind) && disabled()); + let grayscale = Memo::new(move |_| bet_direction() != Some(kind) && disabled()); let show_spinner = move || disabled() && bet_direction() == Some(kind); let icon = if kind == VoteKind::Hot { HotIcon @@ -111,7 +114,8 @@ fn HNButtonOverlay( bet_direction: RwSignal>, refetch_bet: Trigger, ) -> impl IntoView { - let place_bet_action = create_action( + // TODO: use Action::new_local + let place_bet_action: Action<_, _, LocalStorage> = Action::new_unsync( move |(canisters, bet_direction, bet_amount): &(Canisters, VoteKind, u64)| { let post_can_id = post.canister_id; let post_id = post.post_id; @@ -133,7 +137,7 @@ fn HNButtonOverlay( }, ); let place_bet_res = place_bet_action.value(); - create_effect(move |_| { + Effect::new(move || { if place_bet_res().flatten().is_some() { refetch_bet.notify(); } @@ -142,7 +146,7 @@ fn HNButtonOverlay( let BetEligiblePostCtx { can_place_bet } = expect_context(); - create_effect(move |_| { + Effect::new(move || { if !running.get() { can_place_bet.set(true) } else { @@ -154,7 +158,7 @@ fn HNButtonOverlay( { - create_effect(move |_| { + Effect::new(move || { let Some(bet_direction) = bet_direction() else { return; }; @@ -262,9 +266,9 @@ fn HNWonLost(participation: VoteDetails) -> impl IntoView {
{if won { - view! { } + Either::Left(view! { }) } else { - view! { } + Either::Right(view! { }) }}
@@ -276,7 +280,7 @@ fn HNWonLost(participation: VoteDetails) -> impl IntoView { #[component] fn BetTimer(post: PostDetails, participation: VoteDetails, refetch_bet: Trigger) -> impl IntoView { let bet_duration = participation.vote_duration().as_secs(); - let time_remaining = create_rw_signal(participation.time_remaining(post.created_at)); + let time_remaining = RwSignal::new(participation.time_remaining(post.created_at)); _ = use_interval_fn( move || { time_remaining.try_update(|t| *t = t.saturating_sub(Duration::from_secs(1))); @@ -288,7 +292,7 @@ fn BetTimer(post: PostDetails, participation: VoteDetails, refetch_bet: Trigger) 1000, ); - let percentage = create_memo(move |_| { + let percentage = Memo::new(move |_| { let remaining_secs = time_remaining().as_secs(); 100 - ((remaining_secs * 100) / bet_duration).min(100) }); @@ -363,17 +367,13 @@ pub fn HNUserParticipation( view! { {match participation.outcome { VoteOutcome::AwaitingResult => { - view! { } - } - VoteOutcome::Won(_) => { - view! { } + EitherOf3::A(view! { }) } - VoteOutcome::Draw(_) => view! { "Draw" }.into_view(), - VoteOutcome::Lost => { - view! { } + VoteOutcome::Won(_) | VoteOutcome::Lost => { + EitherOf3::B(view! { }) } - } - .into_view()} + VoteOutcome::Draw(_) => EitherOf3::C(view! { "Draw" }), + }} } } @@ -385,46 +385,37 @@ fn MaybeHNButtons( coin: RwSignal, refetch_bet: Trigger, ) -> impl IntoView { - let post = store_value(post); - let is_betting_enabled: Resource<(), Option> = create_resource( - move || (), - move |_| { - let post = post.get_value(); - async move { - let canisters = unauth_canisters(); - let user = canisters.individual_user(post.canister_id).await; - let res = user - .get_hot_or_not_bet_details_for_this_post(post.post_id) - .await - .ok()?; - Some(matches!(res, BettingStatus::BettingOpen { .. })) - } - }, - ); + let post_store = StoredValue::new(post); + + let canisters = unauth_canisters(); + let post = post_store.get_value(); + let is_betting_enabled: OnceResource> = OnceResource::new(send_wrap(async move { + let user = canisters.individual_user(post.canister_id).await; + let res = user + .get_hot_or_not_bet_details_for_this_post(post.post_id) + .await + .ok()?; + Some(matches!(res, BettingStatus::BettingOpen { .. })) + })); let BetEligiblePostCtx { can_place_bet } = expect_context(); view! { - {move || { - is_betting_enabled() - .and_then(|enabled| { - if !enabled.unwrap_or_default() { - can_place_bet.set(false); - return None; - } - Some( - view! { - - }, - ) - }) - }} - + {move || Suspend::new(async move { + let enabled = is_betting_enabled.await; + if !enabled.unwrap_or_default() { + can_place_bet.set(false); + return None; + } + Some(view! { + + }) + })} } } @@ -449,66 +440,57 @@ fn ShadowBg() -> impl IntoView { #[component] pub fn HNGameOverlay(post: PostDetails) -> impl IntoView { - let bet_direction = create_rw_signal(None::); - let coin = create_rw_signal(CoinState::C50); - - let refetch_bet = create_trigger(); - let post = store_value(post); - - let create_bet_participation_outcome = move |canisters: Canisters| { - // TODO: leptos 0.7, switch to `create_resource` - create_local_resource( - // MockPartialEq is necessary - // See: https://github.com/leptos-rs/leptos/issues/2661 - move || { - refetch_bet.track(); - MockPartialEq(()) - }, - move |_| { - let cans = canisters.clone(); - async move { - let post = post.get_value(); - let user = cans.authenticated_user().await; - let bet_participation = user - .get_individual_hot_or_not_bet_placed_by_this_profile( - post.canister_id, - post.post_id, - ) - .await?; - Ok::<_, ServerFnError>(bet_participation.map(VoteDetails::from)) - } - }, - ) - }; + let bet_direction = RwSignal::new(None::); + let coin = RwSignal::new(CoinState::C50); - view! { - + let refetch_bet = Trigger::new(); + let post = StoredValue::new(post); - { - let bet_participation_outcome = create_bet_participation_outcome(canisters); - view! { - {move || { - bet_participation_outcome() - .and_then(|res| { - let participation = try_or_redirect_opt!(res); - let post = post.get_value(); - Some( - if let Some(participation) = participation { - view! { - - } - } else { - view! { - - } - }, - ) - }) - .unwrap_or_else(|| view! { }) - }} - } - } + let auth_cans_res = authenticated_canisters(); + let base_cans = unauth_canisters(); + let bet_participation_outcome = Resource::new( + // MockPartialEq is necessary + // See: https://github.com/leptos-rs/leptos/issues/2661 + move || { + refetch_bet.track(); + auth_cans_res.track(); + MockPartialEq(()) + }, + move |_| { + let base_cans = base_cans.clone(); + send_wrap(async move { + let cans_wire = auth_cans_res.await?; + let cans = Canisters::from_wire(cans_wire, base_cans)?; + let post = post.get_value(); + let user = cans.authenticated_user().await; + let bet_participation = user + .get_individual_hot_or_not_bet_placed_by_this_profile( + post.canister_id, + post.post_id, + ) + .await?; + Ok::<_, ServerFnError>(bet_participation.map(VoteDetails::from)) + }) + }, + ); - + view! { + + {move || Suspend::new(async move { + let res = try_or_redirect_opt!(bet_participation_outcome.await); + let post = post.get_value(); + Some( + if let Some(participation) = res { + Either::Left(view! { + + }) + } else { + Either::Right(view! { + + }) + } + ) + })} + } } diff --git a/ssr/src/page/post_view/mod.rs b/ssr/src/page/post_view/mod.rs index eeb254a1..41718063 100644 --- a/ssr/src/page/post_view/mod.rs +++ b/ssr/src/page/post_view/mod.rs @@ -12,13 +12,16 @@ use crate::{ consts::NSFW_TOGGLE_STORE, state::canisters::{authenticated_canisters, unauth_canisters}, try_or_redirect, - utils::{posts::FetchCursor, route::failure_redirect}, + utils::{posts::FetchCursor, route::failure_redirect, send_wrap}, }; use candid::Principal; use codee::string::FromToStringCodec; use futures::StreamExt; -use leptos::*; -use leptos_router::*; +use leptos::prelude::*; +use leptos_router::{ + hooks::{use_navigate, use_params}, + params::Params, +}; use leptos_use::{storage::use_local_storage, use_debounce_fn}; use video_iter::{FeedResultType, VideoFetchStream}; @@ -51,9 +54,9 @@ pub struct PostViewCtx { } #[component] -pub fn CommonPostViewWithUpdates( +pub fn CommonPostViewWithUpdates>>( initial_post: Option, - fetch_video_action: Action<(), ()>, + fetch_video_action: Action<(), (), S>, threshold_trigger_fetch: usize, ) -> impl IntoView { let PostViewCtx { @@ -64,7 +67,7 @@ pub fn CommonPostViewWithUpdates( .. } = expect_context(); - let recovering_state = create_rw_signal(false); + let recovering_state = RwSignal::new(false); if let Some(initial_post) = initial_post.clone() { fetch_cursor.update_untracked(|f| { // we've already fetched the first posts @@ -86,7 +89,7 @@ pub fn CommonPostViewWithUpdates( }) } - create_effect(move |_| { + Effect::new(move || { if !recovering_state.get_untracked() { fetch_video_action.dispatch(()); } @@ -94,21 +97,21 @@ pub fn CommonPostViewWithUpdates( let next_videos = use_debounce_fn( move || { if !fetch_video_action.pending().get_untracked() && !queue_end.get_untracked() { - fetch_video_action.dispatch(()) + fetch_video_action.dispatch(()); } }, 500.0, ); - let current_post_base = create_memo(move |_| { - with!(|video_queue| { + let current_post_base = Memo::new(move |_| { + video_queue.with(|q| { let cur_idx = current_idx(); - let details = video_queue.get(cur_idx)?; + let details = q.get(cur_idx)?; Some((details.canister_id, details.post_id)) }) }); - create_effect(move |_| { + Effect::new(move || { let Some((canister_id, post_id)) = current_post_base() else { return; }; @@ -142,7 +145,8 @@ pub fn PostViewWithUpdates(initial_post: Option) -> impl IntoView { let (nsfw_enabled, _, _) = use_local_storage::(NSFW_TOGGLE_STORE); let auth_canisters: RwSignal>> = expect_context(); - let fetch_video_action = create_action(move |_| async move { + // TODO: switch to Action::new_local + let fetch_video_action: Action<_, _, LocalStorage> = Action::new_unsync(move |_| async move { loop { let Some(cursor) = fetch_cursor.try_get_untracked() else { return; @@ -203,8 +207,9 @@ pub fn PostViewWithUpdatesMLFeed(initial_post: Option) -> impl Into let auth_cans = authenticated_canisters(); - let fetch_video_action = create_action(move |_| { - let auth_cans = auth_cans.clone(); + // TODO: use Action::new_local + let fetch_video_action: Action<_, _, LocalStorage> = Action::new_unsync(move |_| { + let auth_cans = auth_cans; async move { while priority_q.with_untracked(|q| q.len()) < 15 { let Some(cursor) = fetch_cursor.try_get_untracked() else { @@ -217,7 +222,7 @@ pub fn PostViewWithUpdatesMLFeed(initial_post: Option) -> impl Into return; }; - let canisters = auth_cans.wait_untracked().await; + let canisters = auth_cans.await; let cans_true = Canisters::from_wire(canisters.unwrap(), expect_context()).unwrap(); let mut fetch_stream = VideoFetchStream::new(&cans_true, cursor); @@ -227,21 +232,19 @@ pub fn PostViewWithUpdatesMLFeed(initial_post: Option) -> impl Into let res = try_or_redirect!(chunks); let mut chunks = res.posts_stream; - let cnt = create_rw_signal(0); + let mut cnt = 0usize; while let Some(chunk) = chunks.next().await { - update!(move |video_queue, priority_q, cnt| { - for uid in chunk { - let post_detail = try_or_redirect!(uid); - - if video_queue.len() < 10 { - video_queue.push(post_detail); - } else { - priority_q.push(post_detail, (batch_cnt_val, Reverse(*cnt))); - } - - *cnt += 1; + for uid in chunk { + let post_detail = try_or_redirect!(uid); + if video_queue.with_untracked(|vq| vq.len() < 10) { + video_queue.update(|vq| vq.push(post_detail)); + } else { + priority_q.update(|pq| { + pq.push(post_detail, (batch_cnt_val, Reverse(cnt))); + }); } - }); + cnt += 1; + } } leptos::logging::log!("feed type: {:?}", res.res_type); @@ -259,16 +262,16 @@ pub fn PostViewWithUpdatesMLFeed(initial_post: Option) -> impl Into batch_cnt.update(|x| *x += 1); } - update!(move |video_queue, priority_q| { - let mut cnt = 0; - while let Some((next, _)) = priority_q.pop_max() { - video_queue.push(next); - cnt += 1; - if cnt >= 10 { - break; - } + let mut prio_q = priority_q.write(); + let mut video_q = video_queue.write(); + let mut cnt = 0; + while let Some((next, _)) = prio_q.pop_max() { + video_q.push(next); + cnt += 1; + if cnt >= 10 { + break; } - }); + } } }); @@ -278,9 +281,9 @@ pub fn PostViewWithUpdatesMLFeed(initial_post: Option) -> impl Into #[component] pub fn PostView() -> impl IntoView { let params = use_params::(); - let initial_canister_and_post = create_rw_signal(params.get_untracked().ok()); + let initial_canister_and_post = RwSignal::new(params.get_untracked().ok()); - create_isomorphic_effect(move |_| { + Effect::new_isomorphic(move |_| { if initial_canister_and_post.with_untracked(|p| p.is_some()) { return None; } @@ -296,7 +299,7 @@ pub fn PostView() -> impl IntoView { } = expect_context(); let canisters = unauth_canisters(); - let fetch_first_video_uid = create_resource(initial_canister_and_post, move |params| { + let fetch_first_video_uid = Resource::new(initial_canister_and_post, move |params| { let canisters = canisters.clone(); async move { let Some(params) = params else { @@ -311,10 +314,7 @@ pub fn PostView() -> impl IntoView { return Ok(Some(post)); } - match canisters - .get_post_details(params.canister_id, params.post_id) - .await - { + match send_wrap(canisters.get_post_details(params.canister_id, params.post_id)).await { Ok(post) => Ok(post), Err(e) => { failure_redirect(e); @@ -326,20 +326,13 @@ pub fn PostView() -> impl IntoView { view! { - - {{ - move || { - fetch_first_video_uid() - .and_then(|initial_post| { - let initial_post = initial_post.ok()?; - #[cfg(any(feature = "local-bin", feature = "local-lib"))] - { Some(view! { }) } - #[cfg(not(any(feature = "local-bin", feature = "local-lib")))] - { Some(view! { }) } - }) - } - }} - + {move || Suspend::new(async move { + let initial_post = fetch_first_video_uid.await.ok()?; + #[cfg(any(feature = "local-bin", feature = "local-lib"))] + { Some(view! { }) } + #[cfg(not(any(feature = "local-bin", feature = "local-lib")))] + { Some(view! { }) } + })} } } diff --git a/ssr/src/page/post_view/overlay.rs b/ssr/src/page/post_view/overlay.rs index 6647f8e2..8fb5b5fa 100644 --- a/ssr/src/page/post_view/overlay.rs +++ b/ssr/src/page/post_view/overlay.rs @@ -1,21 +1,18 @@ use crate::{ component::{ - canisters_prov::{with_cans, WithAuthCans}, - hn_icons::HomeFeedShareIcon, - modal::Modal, - option::SelectOption, + canisters_prov::with_cans, hn_icons::HomeFeedShareIcon, modal::Modal, option::SelectOption, }, state::canisters::auth_canisters_store, utils::{ event_streaming::events::{LikeVideo, ShareVideo}, report::ReportOption, - route::failure_redirect, + send_wrap, user::UserDetails, web::{copy_to_clipboard, share_url}, }, }; use gloo::timers::callback::Timeout; -use leptos::*; +use leptos::{prelude::*, task::spawn_local}; use leptos_icons::*; use leptos_use::use_window; use yral_canisters_common::{utils::posts::PostDetails, Canisters}; @@ -24,9 +21,9 @@ use super::bet::HNGameOverlay; #[component] fn LikeAndAuthCanLoader(post: PostDetails) -> impl IntoView { - let likes = create_rw_signal(post.likes); + let likes = RwSignal::new(post.likes); - let liked = create_rw_signal(None::); + let liked = RwSignal::new(None::); let icon_name = Signal::derive(move || { if liked().unwrap_or_default() { "/img/heart-icon-liked.svg" @@ -40,7 +37,8 @@ fn LikeAndAuthCanLoader(post: PostDetails) -> impl IntoView { let initial_liked = (post.liked_by_user, post.likes); let canisters = auth_canisters_store(); - let like_toggle = create_action(move |&()| { + // TODO: use Action::new_local + let like_toggle: Action<_, _, LocalStorage> = Action::new_unsync(move |&()| { let post_details = post.clone(); let canister_store = canisters; @@ -49,17 +47,20 @@ fn LikeAndAuthCanLoader(post: PostDetails) -> impl IntoView { log::warn!("Trying to toggle like without auth"); return; }; - batch(move || { - if liked.get_untracked().unwrap_or_default() { - likes.update(|l| *l -= 1); - liked.set(Some(false)); - } else { - likes.update(|l| *l += 1); - liked.set(Some(true)); - LikeVideo.send_event(post_details, likes, canister_store); - } - }); + let mut likes_w = likes.write(); + let mut liked_w = liked.write(); + if liked_w.unwrap_or_default() { + *likes_w -= 1; + *liked_w = Some(false); + } else { + *likes_w -= 1; + *liked_w = Some(true); + LikeVideo.send_event(post_details, likes, canister_store); + } + // this is important to commit the writes to the signal + std::mem::drop((likes_w, liked_w)); + let individual = canisters.individual_user(post_canister).await; match individual .update_post_toggle_like_status_by_caller(post_id) @@ -76,16 +77,11 @@ fn LikeAndAuthCanLoader(post: PostDetails) -> impl IntoView { let liked_fetch = with_cans(move |cans: Canisters| async move { if let Some(liked) = initial_liked.0 { - return (liked, initial_liked.1); + return Ok((liked, initial_liked.1)); } - match cans.post_like_info(post_canister, post_id).await { - Ok(liked) => liked, - Err(e) => { - failure_redirect(e); - (false, likes.try_get_untracked().unwrap_or_default()) - } - } + let fut = send_wrap(cans.post_like_info(post_canister, post_id)); + Ok(fut.await?) }); let liking = like_toggle.pending(); @@ -93,30 +89,35 @@ fn LikeAndAuthCanLoader(post: PostDetails) -> impl IntoView { view! {
{likes} - - {move || { - likes.set(d.1.1); - liked.set(Some(d.1.0)) - }} - - + + {move || Suspend::new(async move { + match liked_fetch.await { + Ok(res) => { + likes.set(res.1); + liked.set(Some(res.0)) + }, + Err(e) => { + log::warn!("failed to fetch like status {e}"); + } + } + })} +
} } #[component] pub fn VideoDetailsOverlay(post: PostDetails) -> impl IntoView { - let show_share = create_rw_signal(false); - let show_report = create_rw_signal(false); - let (report_option, set_report_option) = - create_signal(ReportOption::Nudity.as_str().to_string()); - let show_copied_popup = create_rw_signal(false); + let show_share = RwSignal::new(false); + let show_report = RwSignal::new(false); + let (report_option, set_report_option) = signal(ReportOption::Nudity.as_str().to_string()); + let show_copied_popup = RwSignal::new(false); let base_url = || { use_window() .as_ref() @@ -152,7 +153,7 @@ pub fn VideoDetailsOverlay(post: PostDetails) -> impl IntoView { }; let post_details_report = post.clone(); - let click_report = create_action(move |()| { + let click_report = Action::new(move |()| { #[cfg(feature = "ga4")] { use crate::utils::report::send_report_offchain; @@ -282,7 +283,7 @@ pub fn VideoDetailsOverlay(post: PostDetails) -> impl IntoView { />
-
@@ -292,7 +293,7 @@ pub fn VideoDetailsOverlay(post: PostDetails) -> impl IntoView { #[component] fn ExpandableText(description: String) -> impl IntoView { - let truncated = create_rw_signal(true); + let truncated = RwSignal::new(true); view! { impl IntoView { pub fn SinglePost() -> impl IntoView { let params = use_params::(); let auth_cans = auth_canisters_store(); - let fetch_post = create_resource(params, move |params| async move { - let params = params.map_err(|_| PostFetchError::Invalid)?; - let post_uid = if let Some(canisters) = auth_cans.get_untracked() { - canisters - .get_post_details(params.canister_id, params.post_id) - .await - } else { - let canisters = unauth_canisters(); - canisters - .get_post_details(params.canister_id, params.post_id) - .await - }; - post_uid - .map_err(|e| PostFetchError::GetUid(e.to_string())) - .and_then(|post| post.ok_or(PostFetchError::Unavailable)) + let fetch_post = Resource::new(params, move |params| { + send_wrap(async move { + let params = params.map_err(|_| PostFetchError::Invalid)?; + let post_uid = if let Some(canisters) = auth_cans.get_untracked() { + canisters + .get_post_details(params.canister_id, params.post_id) + .await + } else { + let canisters = unauth_canisters(); + canisters + .get_post_details(params.canister_id, params.post_id) + .await + }; + post_uid + .map_err(|e| PostFetchError::GetUid(e.to_string())) + .and_then(|post| post.ok_or(PostFetchError::Unavailable)) + }) }); view! { {move || { - fetch_post() + fetch_post.get() .map(|post| match post { - Ok(post) => view! { }, - Err(PostFetchError::Invalid) => view! { }, - Err(PostFetchError::Unavailable) => view! { }, + Ok(post) => EitherOf3::A(view! { }), + Err(PostFetchError::Invalid) => EitherOf3::B(view! { }), + Err(PostFetchError::Unavailable) => EitherOf3::C(view! { }), Err(PostFetchError::GetUid(e)) => { - view! { } + EitherOf3::B(view! { }) } }) }} diff --git a/ssr/src/page/post_view/video_iter.rs b/ssr/src/page/post_view/video_iter.rs index 4f3dfbc4..6e44ad33 100644 --- a/ssr/src/page/post_view/video_iter.rs +++ b/ssr/src/page/post_view/video_iter.rs @@ -3,7 +3,7 @@ use std::pin::Pin; use candid::Principal; use codee::string::JsonSerdeCodec; use futures::{stream::FuturesOrdered, Stream, StreamExt}; -use leptos::*; +use leptos::prelude::*; use leptos_use::storage::use_local_storage; use yral_canisters_client::post_cache::{self, NsfwFilter}; diff --git a/ssr/src/page/post_view/video_loader.rs b/ssr/src/page/post_view/video_loader.rs index 094d5995..c5940a80 100644 --- a/ssr/src/page/post_view/video_loader.rs +++ b/ssr/src/page/post_view/video_loader.rs @@ -1,7 +1,7 @@ use std::cmp::Ordering; use codee::string::FromToStringCodec; -use leptos::{html::Video, *}; +use leptos::{ev, html::Video, prelude::*}; use leptos_use::storage::use_local_storage; use leptos_use::use_event_listener; @@ -30,32 +30,31 @@ pub fn BgView( idx: usize, children: Children, ) -> impl IntoView { - let post = create_memo(move |_| video_queue.with(|q| q.get(idx).cloned())); + let post = Memo::new(move |_| video_queue.with(|q| q.get(idx).cloned())); let uid = move || post().as_ref().map(|q| q.uid.clone()).unwrap_or_default(); let (is_connected, _) = account_connected_reader(); - let (show_login_popup, set_show_login_popup) = create_signal(true); + let (show_login_popup, set_show_login_popup) = signal(true); - let (show_refer_login_popup, set_show_refer_login_popup) = create_signal(true); + let (show_refer_login_popup, set_show_refer_login_popup) = signal(true); let (referrer_store, _, _) = use_referrer_store(); let onboarding_eligible_post_context = BetEligiblePostCtx::default(); provide_context(onboarding_eligible_post_context.clone()); - let (show_onboarding_popup, set_show_onboarding_popup) = create_signal(false); + let (show_onboarding_popup, set_show_onboarding_popup) = signal(false); let (is_onboarded, set_onboarded, _) = use_local_storage::(USER_ONBOARDING_STORE); - create_effect(move |_| { + Effect::new(move || { if current_idx.get() % 5 != 0 { set_show_login_popup.update(|n| *n = false); } else { set_show_login_popup.update(|n| *n = true); } - Some(()) }); - create_effect(move |_| { + Effect::new(move || { if onboarding_eligible_post_context.can_place_bet.get() && (!is_onboarded.get()) { set_show_onboarding_popup.update(|show| *show = true); } else { @@ -105,25 +104,25 @@ pub fn BgView( #[component] pub fn VideoView( - #[prop(into)] post: MaybeSignal>, + #[prop(into)] post: Signal>, #[prop(optional)] _ref: NodeRef