From f8b0db9d1b159bf307d0748bfa0a5c99c29fe641 Mon Sep 17 00:00:00 2001 From: rupansh Date: Thu, 7 Mar 2024 18:54:03 +0530 Subject: [PATCH 1/8] fix(post_view): add GC for video queue when recovering state --- src/page/post_view/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/page/post_view/mod.rs b/src/page/post_view/mod.rs index 63e4d0a9..26736246 100644 --- a/src/page/post_view/mod.rs +++ b/src/page/post_view/mod.rs @@ -156,6 +156,10 @@ pub fn PostViewWithUpdates(initial_post: Option) -> impl IntoView { }); video_queue.update_untracked(|v| { if v.len() > 1 { + // Safe to do a GC here + let rem = 0..(current_idx.get_untracked().saturating_sub(3)); + current_idx.update(|c| *c -= rem.len()); + v.drain(rem); return; } *v = vec![initial_post]; From abb2277fa6a1fb29773c10f66040e13cda9f0705 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Mar 2024 11:06:00 +0530 Subject: [PATCH 2/8] feat: add overlay for post view --- Cargo.lock | 1 + Cargo.toml | 3 +- src/page/post_view/mod.rs | 48 ++++--- src/page/post_view/overlay.rs | 216 +++++++++++++++++++++++++++++ src/page/post_view/video_iter.rs | 84 ++++++++--- src/page/post_view/video_loader.rs | 10 +- src/page/refer_earn/mod.rs | 8 +- src/utils/mod.rs | 1 + src/utils/web.rs | 32 +++++ 9 files changed, 358 insertions(+), 45 deletions(-) create mode 100644 src/page/post_view/overlay.rs create mode 100644 src/utils/web.rs diff --git a/Cargo.lock b/Cargo.lock index e091ad01..fab88428 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1557,6 +1557,7 @@ dependencies = [ "tracing", "uts2ts", "wasm-bindgen", + "web-sys", "web-time", ] diff --git a/Cargo.toml b/Cargo.toml index 5ef6846b..761facec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,6 +43,7 @@ serde_json = "1.0" crc32fast = "1.4.0" uts2ts = "0.4.1" rand_chacha = { version = "0.3.1", optional = true } +web-sys = { version = "0.3", features = ["Clipboard", "Navigator", "ShareData"], optional = true } [build-dependencies] serde = { version = "1.0", features = ["derive"] } @@ -51,7 +52,7 @@ serde_json = "1.0.110" convert_case = "0.6.0" [features] -hydrate = ["leptos/hydrate", "leptos_meta/hydrate", "leptos_router/hydrate", "ic-agent/wasm-bindgen", "reqwest/native-tls"] +hydrate = ["leptos/hydrate", "leptos_meta/hydrate", "leptos_router/hydrate", "ic-agent/wasm-bindgen", "reqwest/native-tls", "web-sys"] ssr = [ "dep:axum", "dep:tokio", diff --git a/src/page/post_view/mod.rs b/src/page/post_view/mod.rs index 26736246..0a12bc4c 100644 --- a/src/page/post_view/mod.rs +++ b/src/page/post_view/mod.rs @@ -1,9 +1,8 @@ mod error; +mod overlay; mod video_iter; mod video_loader; -use std::pin::pin; - use candid::Principal; use futures::StreamExt; use leptos::*; @@ -17,14 +16,15 @@ use leptos_use::{ use crate::{ component::spinner::FullScreenSpinner, consts::NSFW_TOGGLE_STORE, - state::canisters::unauth_canisters, + state::canisters::{authenticated_canisters, unauth_canisters}, try_or_redirect, utils::route::{failure_redirect, go_to_root}, }; use video_iter::{get_post_uid, VideoFetchStream}; use video_loader::{BgView, VideoView}; -use self::video_iter::{FetchCursor, PostDetails}; +use overlay::HomeButtonOverlay; +use video_iter::{FetchCursor, PostDetails}; #[derive(Params, PartialEq)] struct PostParams { @@ -65,10 +65,11 @@ pub fn ScrollingView NVR + Clone + 'static, NVR>( class="snap-mandatory snap-y overflow-y-scroll h-dvh w-dvw bg-black" style:scroll-snap-points-y="repeat(100vh)" > + (); let next_videos = next_videos.clone(); use_intersection_observer_with_options( @@ -107,11 +108,10 @@ pub fn ScrollingView NVR + Clone + 'static, NVR>( } }); let show_video = create_memo(move |_| queue_idx.abs_diff(current_idx()) <= 20); - let uid = move || details.uid.clone(); view! {
- + @@ -166,17 +166,25 @@ pub fn PostViewWithUpdates(initial_post: Option) -> impl IntoView { }) } let (nsfw_enabled, _, _) = use_local_storage::(NSFW_TOGGLE_STORE); + let auth_cans_res = authenticated_canisters(); let fetch_video_action = create_action(move |()| async move { loop { - let canisters = unauth_canisters(); - let fetch_stream = VideoFetchStream::new(&canisters, fetch_cursor.get_untracked()); - let chunks = try_or_redirect!( - fetch_stream - .fetch_post_uids_chunked(3, nsfw_enabled.get_untracked()) - .await - ); - let mut chunks = pin!(chunks); + let auth_canisters = leptos::untrack(|| auth_cans_res.get().transpose()); + let auth_canisters = try_or_redirect!(auth_canisters).flatten(); + let cursor = fetch_cursor.get_untracked(); + let nsfw_enabled = nsfw_enabled.get_untracked(); + let unauth_canisters = unauth_canisters(); + + let chunks = if let Some(canisters) = auth_canisters.as_ref() { + let fetch_stream = VideoFetchStream::new(canisters, cursor); + fetch_stream.fetch_post_uids_chunked(3, nsfw_enabled).await + } else { + let fetch_stream = VideoFetchStream::new(&unauth_canisters, cursor); + fetch_stream.fetch_post_uids_chunked(3, nsfw_enabled).await + }; + + let mut chunks = try_or_redirect!(chunks); let mut cnt = 0; while let Some(chunk) = chunks.next().await { cnt += chunk.len(); @@ -196,9 +204,11 @@ pub fn PostViewWithUpdates(initial_post: Option) -> impl IntoView { fetch_cursor.update(|c| c.advance()); }); - if !recovering_state.get_untracked() { - fetch_video_action.dispatch(()); - } + create_effect(move |_| { + if !recovering_state.get_untracked() { + fetch_video_action.dispatch(()); + } + }); let next_videos = use_debounce_fn( move || { if !fetch_video_action.pending().get_untracked() { @@ -262,7 +272,7 @@ pub fn PostView() -> impl IntoView { } } - let canisters = expect_context(); + let canisters = unauth_canisters(); match get_post_uid(&canisters, canister, post_id).await { Ok(Some(uid)) => Some(uid), Err(e) => { diff --git a/src/page/post_view/overlay.rs b/src/page/post_view/overlay.rs new file mode 100644 index 00000000..e1503406 --- /dev/null +++ b/src/page/post_view/overlay.rs @@ -0,0 +1,216 @@ +use crate::{ + component::{modal::Modal, nav_icons::HomeSymbolFilled}, + state::canisters::{authenticated_canisters, Canisters}, + try_or_redirect_opt, + utils::{ + web::{copy_to_clipboard, share_url}, + MockPartialEq, + }, +}; +use leptos::*; +use leptos_icons::*; +use leptos_use::use_window; + +use super::video_iter::{post_liked_by_me, PostDetails}; +use candid::Principal; + +#[component] +fn DisabledLikeButton() -> impl IntoView { + view! { + + } +} + +#[component] +fn LikeButton( + canisters: Canisters, + post_canister: Principal, + post_id: u64, + initial_liked: bool, + likes: RwSignal, +) -> impl IntoView { + let liked = create_rw_signal(initial_liked); + let icon_class = Signal::derive(move || { + if liked() { + TextProp::from("fill-[url(#like-gradient)]") + } else { + TextProp::from("text-white") + } + }); + let icon_style = Signal::derive(move || { + if liked() { + Some(TextProp::from("filter: drop-shadow(2px 0 0 white) drop-shadow(-2px 0 0 white) drop-shadow(0 2px 0 white) drop-shadow(0 -2px 0 white);")) + } else { + None + } + }); + let like_toggle = create_action(move |&()| { + let canisters = canisters.clone(); + batch(move || { + if liked() { + likes.update(|l| *l -= 1); + liked.set(false) + } else { + likes.update(|l| *l += 1); + liked.set(true); + } + }); + + async move { + let individual = canisters.individual_user(post_canister); + match individual + .update_post_toggle_like_status_by_caller(post_id) + .await + { + Ok(_) => (), + Err(e) => { + log::warn!("Error toggling like status: {:?}", e); + liked.update(|l| *l = !*l); + } + } + } + }); + + view! { + + + } +} + +#[component] +pub fn VideoDetailsOverlay(post: PostDetails) -> impl IntoView { + let show_share = create_rw_signal(false); + let base_url = || { + use_window() + .as_ref() + .and_then(|w| w.location().origin().ok()) + }; + let video_url = move || { + base_url() + .map(|b| format!("{b}/hot-or-not/{}/{}", post.canister_id, post.post_id)) + .unwrap_or_default() + }; + + let share = move || { + let url = video_url(); + if share_url(&url).is_some() { + return Some(()); + } + show_share.set(true); + Some(()) + }; + + let auth_cans = authenticated_canisters(); + let auth_cans_reader = move || MockPartialEq(auth_cans.get().transpose()); + let liked_fetch = create_local_resource(auth_cans_reader, move |cans| async move { + let canisters = try_or_redirect_opt!(cans.0)??; + if let Some(liked) = post.liked_by_user { + return Some((liked, canisters)); + } + let liked = post_liked_by_me(&canisters, post.canister_id, post.post_id) + .await + .ok()?; + Some((liked, canisters)) + }); + let profile_url = format!("/profile/{}", post.poster_principal.to_text()); + let likes = create_rw_signal(post.likes); + + view! { +
+
+
+ + + +
+ + {post.display_name} + + + + {post.views} + +
+
+ + {post.description} + +
+
+ + + +
+ + {move || { + liked_fetch() + .flatten() + .map(|(liked, canisters)| { + view! { + + } + }) + }} + + + {likes} +
+ +
+
+ +
+ Share +
+

+ {video_url} +

+ +
+
+
+ } +} + +#[component] +pub fn HomeButtonOverlay() -> impl IntoView { + view! { +
+
+
+ + Home +
+
+
+ } +} diff --git a/src/page/post_view/video_iter.rs b/src/page/post_view/video_iter.rs index f255f2f9..503857e0 100644 --- a/src/page/post_view/video_iter.rs +++ b/src/page/post_view/video_iter.rs @@ -1,10 +1,13 @@ +use std::pin::Pin; + use candid::Principal; use futures::{stream::FuturesOrdered, Stream, StreamExt}; use serde::{Deserialize, Serialize}; use crate::{ - canister::post_cache::{self}, + canister::{individual_user_template::PostDetailsForFrontend, post_cache}, state::canisters::Canisters, + utils::profile::propic_from_principal, }; use super::error::PostViewError; @@ -31,8 +34,8 @@ impl FetchCursor { } } -pub async fn get_post_uid( - canisters: &Canisters, +pub async fn get_post_uid( + canisters: &Canisters, user_canister: Principal, post_id: u64, ) -> Result, PostViewError> { @@ -48,7 +51,7 @@ pub async fn get_post_uid( } }; - let post_uuid = post_details.video_uid; + let post_uuid = &post_details.video_uid; let req_url = format!( "https://customer-2p3jflss4r4hmpnz.cloudflarestream.com/{}/manifest/video.m3u8", post_uuid, @@ -58,11 +61,23 @@ pub async fn get_post_uid( return Ok(None); } - Ok(Some(PostDetails { - canister_id: user_canister, - post_id, - uid: post_uuid, - })) + Ok(Some(PostDetails::from_canister_post( + AUTH, + user_canister, + post_details, + ))) +} + +pub async fn post_liked_by_me( + canisters: &Canisters, + post_canister: Principal, + post_id: u64, +) -> Result { + let individual = canisters.individual_user(post_canister); + let post = individual + .get_individual_post_details_by_id(post_id) + .await?; + Ok(post.liked_by_me) } #[derive(Clone, PartialEq, Debug, Hash, Eq, PartialOrd, Ord, Serialize, Deserialize)] @@ -70,15 +85,50 @@ pub struct PostDetails { pub canister_id: Principal, pub post_id: u64, pub uid: String, + pub description: String, + pub views: u64, + pub likes: u64, + pub display_name: String, + pub propic_url: String, + /// Whether post is liked by the authenticated + /// user or not, None if unknown + pub liked_by_user: Option, + pub poster_principal: Principal, } -pub struct VideoFetchStream<'a> { - canisters: &'a Canisters, +impl PostDetails { + pub fn from_canister_post( + authenticated: bool, + canister_id: Principal, + details: PostDetailsForFrontend, + ) -> Self { + Self { + canister_id, + post_id: details.id, + uid: details.video_uid, + description: details.description, + views: details.total_view_count, + likes: details.like_count, + display_name: details + .created_by_display_name + .or(details.created_by_unique_user_name) + .unwrap_or_else(|| details.created_by_user_principal_id.to_text()), + propic_url: details + .created_by_profile_photo_url + .unwrap_or_else(|| propic_from_principal(details.created_by_user_principal_id)), + liked_by_user: authenticated.then_some(details.liked_by_me), + poster_principal: details.created_by_user_principal_id, + } + } +} + +pub struct VideoFetchStream<'a, const AUTH: bool> { + canisters: &'a Canisters, cursor: FetchCursor, } -impl<'a> VideoFetchStream<'a> { - pub fn new(canisters: &'a Canisters, cursor: FetchCursor) -> Self { +impl<'a, const AUTH: bool> VideoFetchStream<'a, AUTH> { + pub fn new(canisters: &'a Canisters, cursor: FetchCursor) -> Self { Self { canisters, cursor } } @@ -86,8 +136,10 @@ impl<'a> VideoFetchStream<'a> { self, chunks: usize, allow_nsfw: bool, - ) -> Result>> + 'a, PostViewError> - { + ) -> Result< + Pin>> + 'a>>, + PostViewError, + > { let post_cache = self.canisters.post_cache(); let top_posts_fut = post_cache .get_top_posts_aggregated_from_canisters_on_this_network_for_hot_or_not_feed_cursor( @@ -109,6 +161,6 @@ impl<'a> VideoFetchStream<'a> { .filter_map(|res| async { res.transpose() }) .chunks(chunks); - Ok(chunk_stream) + Ok(Box::pin(chunk_stream)) } } diff --git a/src/page/post_view/video_loader.rs b/src/page/post_view/video_loader.rs index e204e191..aebb4d34 100644 --- a/src/page/post_view/video_loader.rs +++ b/src/page/post_view/video_loader.rs @@ -1,17 +1,21 @@ use crate::canister::utils::{bg_url, mp4_url}; use leptos::{html::Video, *}; -use super::PostViewCtx; +use super::{overlay::VideoDetailsOverlay, PostViewCtx}; #[component] -pub fn BgView(uid: String, children: Children) -> impl IntoView { +pub fn BgView(idx: usize, children: Children) -> impl IntoView { + let PostViewCtx { video_queue, .. } = expect_context(); + let post = move || video_queue.with(|q| q.get(idx).cloned()); + let uid = move || post().as_ref().map(|q| q.uid.clone()).unwrap_or_default(); view! {
+ {move || post().map(|post| view! { })} {children()}
} diff --git a/src/page/refer_earn/mod.rs b/src/page/refer_earn/mod.rs index f160822a..88df873e 100644 --- a/src/page/refer_earn/mod.rs +++ b/src/page/refer_earn/mod.rs @@ -10,6 +10,7 @@ use crate::{ component::connect::ConnectLogin, state::{auth::account_connected_reader, canisters::authenticated_canisters}, try_or_redirect_opt, + utils::web::copy_to_clipboard, }; use history::HistoryView; @@ -40,16 +41,11 @@ fn ReferLoaded(user_canister: Principal) -> impl IntoView { )) }) .unwrap_or_default(); - let copy_link = move || { - let navigator = window.navigator()?; - _ = navigator.clipboard()?.write_text(&refer_link); - Some(()) - }; view! {
{refer_code} -
diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 8d9a467e..8032b581 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -4,6 +4,7 @@ pub mod icon; pub mod profile; pub mod route; pub mod timestamp; +pub mod web; pub fn current_epoch() -> Duration { web_time::SystemTime::now() diff --git a/src/utils/web.rs b/src/utils/web.rs new file mode 100644 index 00000000..e5bfe7a4 --- /dev/null +++ b/src/utils/web.rs @@ -0,0 +1,32 @@ +use leptos_use::use_window; + +/// Share a URL with the Web Share API +/// returns None if the API is not available +pub fn share_url(url: &str) -> Option<()> { + #[cfg(not(feature = "hydrate"))] + { + _ = url; + None + } + #[cfg(feature = "hydrate")] + { + use leptos::window; + use wasm_bindgen::JsValue; + use web_sys::{js_sys::Reflect, ShareData}; + let window = window(); + let nav = window.navigator(); + if !Reflect::has(&nav, &JsValue::from_str("share")).unwrap_or_default() { + return None; + } + _ = nav.share_with_data(ShareData::new().url(url)); + Some(()) + } +} + +/// Copy text to clipboard +/// returns None if the API is not available +pub fn copy_to_clipboard(text: &str) -> Option<()> { + let navigator = use_window().navigator()?; + _ = navigator.clipboard()?.write_text(text); + Some(()) +} From 016815c13f2df8ae7af930946bd160c4ea13b170 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Mar 2024 14:10:08 +0530 Subject: [PATCH 3/8] fix: workaround hydration bugs --- Cargo.lock | 613 ++++++++++++++++----------------- Cargo.toml | 12 +- src/component/auth_provider.rs | 8 +- src/page/post_view/mod.rs | 43 ++- src/page/post_view/overlay.rs | 134 ++++--- 5 files changed, 424 insertions(+), 386 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fab88428..fda3bd7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ "getrandom", "once_cell", @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -57,9 +57,9 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "arbitrary" @@ -90,7 +90,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -101,7 +101,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -113,7 +113,7 @@ dependencies = [ "attribute-derive-macro", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -129,7 +129,7 @@ dependencies = [ "proc-macro2", "quote", "quote-use", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -149,7 +149,7 @@ dependencies = [ "axum-macros", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "hyper", @@ -183,7 +183,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "mime", @@ -204,7 +204,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -362,15 +362,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytecheck" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" dependencies = [ "bytecheck_derive", "ptr_meta", @@ -380,9 +380,9 @@ dependencies = [ [[package]] name = "bytecheck_derive" -version = "0.6.11" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" dependencies = [ "proc-macro2", "quote", @@ -421,7 +421,7 @@ version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7c8c50262271cdf5abc979a5f76515c234e764fa025d1ba4862c0f0bcda0e95" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "hashbrown 0.14.3", "instant", "once_cell", @@ -454,9 +454,9 @@ checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" [[package]] name = "candid" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "182543fbc03b4ad0bfc384e6b68346e0b0aad0b11d075b71b4fcaa5d07f8862c" +checksum = "088c2e3d22a0fb1ada78b968946b0f7b96027ac8669973fe7c0815a98e8d13ef" dependencies = [ "anyhow", "binread", @@ -477,21 +477,21 @@ dependencies = [ [[package]] name = "candid_derive" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "970c220da8aa2fa6f7ef5dbbf3ea5b620a59eb3ac107cfb95ae8c6eebdfb7a08" +checksum = "3de398570c386726e7a59d9887b68763c481477f9a043fb998a2e09d428df1a9" dependencies = [ "lazy_static", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "candid_parser" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111f6d09c81e7c109d4cf21cbca0afd33378c7c2032e8c18ef751e267d6fb82c" +checksum = "48a3da76f989cd350b7342c64c6c6008341bb6186f6832ef04e56dc50ba0fd76" dependencies = [ "anyhow", "candid", @@ -508,12 +508,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "cfg-if" @@ -545,7 +542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", - "half 2.3.1", + "half 2.4.0", ] [[package]] @@ -740,12 +737,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ - "darling_core 0.20.5", - "darling_macro 0.20.5", + "darling_core 0.20.8", + "darling_macro 0.20.8", ] [[package]] @@ -764,16 +761,16 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -789,13 +786,13 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ - "darling_core 0.20.5", + "darling_core 0.20.8", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -823,10 +820,10 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fa90da96b8fd491f5754d1f7a731f73921e3b7aa0ce333c821a0e43666ac14" dependencies = [ - "darling 0.20.5", + "darling 0.20.8", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -857,15 +854,9 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "digest" version = "0.9.0" @@ -945,9 +936,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -1127,7 +1118,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1302,7 +1293,7 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils 0.2.0", - "http 0.2.11", + "http 0.2.12", "js-sys", "pin-project", "serde", @@ -1404,7 +1395,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1440,7 +1431,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 1.0.0", + "http 1.1.0", "indexmap", "slab", "tokio", @@ -1450,15 +1441,15 @@ dependencies = [ [[package]] name = "half" -version = "1.8.2" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" +checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" [[package]] name = "half" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" dependencies = [ "cfg-if", "crunchy", @@ -1470,7 +1461,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.7", + "ahash 0.7.8", ] [[package]] @@ -1485,7 +1476,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.7", + "ahash 0.8.11", "allocator-api2", ] @@ -1497,9 +1488,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.4" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -1530,7 +1521,7 @@ dependencies = [ "futures", "gloo", "hex", - "http 1.0.0", + "http 1.1.0", "ic-agent", "icondata", "icondata_core", @@ -1572,9 +1563,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -1583,9 +1574,9 @@ dependencies = [ [[package]] name = "http" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -1599,7 +1590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.11", + "http 0.2.12", "pin-project-lite", ] @@ -1610,18 +1601,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http 1.0.0", + "http 1.1.0", ] [[package]] name = "http-body-util" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" dependencies = [ "bytes", - "futures-util", - "http 1.0.0", + "futures-core", + "http 1.1.0", "http-body 1.0.0", "pin-project-lite", ] @@ -1646,20 +1637,21 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" dependencies = [ "bytes", "futures-channel", "futures-util", "h2", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "httparse", "httpdate", "itoa", "pin-project-lite", + "smallvec", "tokio", "want", ] @@ -1671,7 +1663,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" dependencies = [ "futures-util", - "http 1.0.0", + "http 1.1.0", "hyper", "hyper-util", "rustls", @@ -1706,7 +1698,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "hyper", "pin-project-lite", @@ -1730,7 +1722,7 @@ dependencies = [ "futures-util", "getrandom", "hex", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "ic-certification", "ic-transport-types", @@ -2030,9 +2022,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.1" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2068,22 +2060,11 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" -[[package]] -name = "is-terminal" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" -dependencies = [ - "hermit-abi", - "rustix", - "windows-sys 0.52.0", -] - [[package]] name = "itertools" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] @@ -2105,9 +2086,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -2128,34 +2109,33 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ "ascii-canvas", "bit-set", - "diff", "ena", - "is-terminal", - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop-util", "petgraph", "pico-args", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", "string_cache", "term", "tiny-keccak", "unicode-xid", + "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "regex", + "regex-automata", ] [[package]] @@ -2172,9 +2152,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "leptos" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c0772cef6b7f26966b9243797a27e3e7f69f91cd444cb0c42e0d67e67e605ac" +checksum = "56d079555ff18158a1ed28d2a8ac529b4cb5904490384064346eb2d321addde6" dependencies = [ "cfg-if", "leptos_config", @@ -2192,9 +2172,9 @@ dependencies = [ [[package]] name = "leptos-use" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885ab55e844f9dda9f1394bce011b5ff5332e0a1782c165c78d53f3138cbbd38" +checksum = "bf01f0fa065f39b536cfe25c1b19d856aeb3f0b40dfa629b824f68e88c7f094a" dependencies = [ "async-trait", "cfg-if", @@ -2215,9 +2195,9 @@ dependencies = [ [[package]] name = "leptos_axum" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51fed8933d2adcf3ff3b46dd6a9cb0cbd02f496c78becb7bd1e354ed1fe8a994" +checksum = "2276bb8b97638d67c7b704a1351ef88ff3b41a286fc46d48aa59da9f1916bd3c" dependencies = [ "axum", "cfg-if", @@ -2239,9 +2219,9 @@ dependencies = [ [[package]] name = "leptos_config" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5719d204ebc69b99c8bd11391ee1e49f4fcc32e9905f2a59b36e7305d0d9a774" +checksum = "2d80b4ed5f0447996b9a28879002f995d3770687630f568be41307f362f84cb7" dependencies = [ "config", "regex", @@ -2252,9 +2232,9 @@ dependencies = [ [[package]] name = "leptos_dom" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e887108a724ee0bd10911d1e68cc1338aa4b7859d321cfdbe146d09b095bc1bb" +checksum = "2a4b4da3cb6a4dde22e68717482a4b926fb5dd182c12461b27efa37764b29d9a" dependencies = [ "async-recursion", "cfg-if", @@ -2282,9 +2262,9 @@ dependencies = [ [[package]] name = "leptos_hot_reload" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2779cc3506242e228988828dfa7f28b966b8bc48ae2a26d5aaae251225cd3e25" +checksum = "fb051c7b3bce8368ee30fb57e7b14cdcd573019ea6cd1858b9c697a3519ea099" dependencies = [ "anyhow", "camino", @@ -2294,7 +2274,7 @@ dependencies = [ "quote", "rstml", "serde", - "syn 2.0.48", + "syn 2.0.52", "walkdir", ] @@ -2315,9 +2295,9 @@ dependencies = [ [[package]] name = "leptos_integration_utils" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037fd59a507bd003d04f7bd9edb870833eeac08f45e416ffb2f887e8c6b79bbd" +checksum = "ff00799857159434d31b6bd1898e21c63f69f39289621da5a554fcab1c3e7300" dependencies = [ "futures", "leptos", @@ -2329,9 +2309,9 @@ dependencies = [ [[package]] name = "leptos_macro" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dc6d21ed1e78a3eb9cfc8c333338c443d34f263a0d0ccc1884f617d5f722dc" +checksum = "e82c33c8baa07a36c1f0d6149af821be885e6863779bcb24954bf865ad8402b4" dependencies = [ "attribute-derive", "cfg-if", @@ -2345,16 +2325,16 @@ dependencies = [ "quote", "rstml", "server_fn_macro", - "syn 2.0.48", + "syn 2.0.52", "tracing", "uuid", ] [[package]] name = "leptos_meta" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f13f7146816452cd040394d51fb6a8eaf3c12d1b1dc911ca8ac03120d92cac27" +checksum = "12b9dac59a2f88f5235dbe17cfa81b738a6f47238a64e4f23b921f1a90a9bf11" dependencies = [ "cfg-if", "indexmap", @@ -2366,9 +2346,9 @@ dependencies = [ [[package]] name = "leptos_reactive" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d938ec3134755240c79c4a41ccc112dc039fdec30c649a54e5816e0798e6c2f" +checksum = "93bdcebc9822cc22a72cc9528dd794e1396152c75749ee09959f8272a8c99657" dependencies = [ "base64", "cfg-if", @@ -2394,9 +2374,9 @@ dependencies = [ [[package]] name = "leptos_router" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac85523a2d11d135955670b89eb3c0cadf2f51547779dece5e74584380767276" +checksum = "9460a5dc184fa05d8eb635b687ad3220d02d2d23d6f49c3bf146aa71e427f423" dependencies = [ "cached 0.45.1", "cfg-if", @@ -2426,9 +2406,9 @@ dependencies = [ [[package]] name = "leptos_server" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d09f0f572ac15e118a7eb14f4344c41bf9f0b708dcfa4af31103f83015fbcc69" +checksum = "654b6ff6a24e79977641b5214452373b1e12fdf4c8a563fadf656c139694b4b9" dependencies = [ "inventory", "lazy_static", @@ -2485,9 +2465,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "logos" @@ -2509,7 +2489,7 @@ dependencies = [ "proc-macro2", "quote", "regex-syntax 0.6.29", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2539,7 +2519,7 @@ dependencies = [ "manyhow-macros", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2589,18 +2569,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi", @@ -2616,7 +2596,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http 1.0.0", + "http 1.1.0", "httparse", "log", "memchr", @@ -2671,21 +2651,26 @@ dependencies = [ "serde", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -2702,9 +2687,9 @@ dependencies = [ [[package]] name = "num_threads" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" dependencies = [ "libc", ] @@ -2726,15 +2711,15 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ "bitflags 2.4.2", "cfg-if", @@ -2753,7 +2738,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2764,9 +2749,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" dependencies = [ "cc", "libc", @@ -2888,22 +2873,22 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2941,9 +2926,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "powerfmt" @@ -2981,7 +2966,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -3039,9 +3024,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -3054,7 +3039,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "version_check", "yansi", ] @@ -3105,7 +3090,7 @@ checksum = "a7b5abe3fe82fdeeb93f44d66a7b444dedf2e4827defb0a8e69c437b2de2ef94" dependencies = [ "quote", "quote-use-macros", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -3117,7 +3102,7 @@ dependencies = [ "derive-where", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -3158,9 +3143,9 @@ dependencies = [ [[package]] name = "rangemap" -version = "1.4.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991" +checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" [[package]] name = "redox_syscall" @@ -3196,9 +3181,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -3211,12 +3196,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.2" @@ -3225,17 +3204,17 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rend" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" dependencies = [ "bytecheck", ] [[package]] name = "reqwest" -version = "0.11.24" -source = "git+https://github.com/seanmonstar/reqwest.git?branch=hyper-v1#a819add89c7129a4eeaa5feab1c43a8d724215cd" +version = "0.11.25" +source = "git+https://github.com/seanmonstar/reqwest.git?rev=e3192638518d577759dd89da489175b8f992b12f#e3192638518d577759dd89da489175b8f992b12f" dependencies = [ "base64", "bytes", @@ -3244,7 +3223,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "hyper", @@ -3308,23 +3287,24 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rkyv" -version = "0.7.43" +version = "0.7.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" dependencies = [ "bitvec", "bytecheck", @@ -3340,9 +3320,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.43" +version = "0.7.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" dependencies = [ "proc-macro2", "quote", @@ -3358,7 +3338,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.48", + "syn 2.0.52", "syn_derive", "thiserror", ] @@ -3377,9 +3357,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ "bitflags 2.4.2", "errno", @@ -3395,7 +3375,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki 0.102.2", "subtle", @@ -3413,9 +3393,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" +checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" [[package]] name = "rustls-webpki" @@ -3423,7 +3403,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -3433,7 +3413,7 @@ version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "rustls-pki-types", "untrusted 0.9.0", ] @@ -3446,9 +3426,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -3534,18 +3514,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde-wasm-bindgen" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132" +checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" dependencies = [ "js-sys", "serde", @@ -3567,26 +3547,26 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" dependencies = [ - "half 1.8.2", + "half 1.8.3", "serde", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -3595,9 +3575,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" dependencies = [ "itoa", "serde", @@ -3622,7 +3602,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -3657,9 +3637,9 @@ dependencies = [ [[package]] name = "server_fn" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbe027777b6bcb1fff76eb2ff3596cd68dbc52e5b703a0264db31fb6eb870ba" +checksum = "2955da1dc5fcd970c182ebf1089af6c5f19051e1f286a21f7b96490a49b7a531" dependencies = [ "axum", "bytes", @@ -3668,7 +3648,7 @@ dependencies = [ "dashmap", "futures", "gloo-net 0.5.0", - "http 1.0.0", + "http 1.1.0", "http-body-util", "hyper", "inventory", @@ -3692,26 +3672,26 @@ dependencies = [ [[package]] name = "server_fn_macro" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51c788951450843a3ed4b9df0268e48ea00be44b8a5f453e299ef4abb5c86b8c" +checksum = "adfdd051ef905fdb3da20942b0c52d536158d7489a724e14cc2fd47323e7ca91" dependencies = [ "const_format", "convert_case", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "xxhash-rust", ] [[package]] name = "server_fn_macro_default" -version = "0.6.6" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89732cbf095803f0a23dff6a9d2f469049d48affdaa80edee0d826c986330ced" +checksum = "060af1def72353a779fcc184c53e1965d3055a38b9e827f2259b2bff2d9c371e" dependencies = [ "server_fn_macro", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -3811,12 +3791,12 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3898,9 +3878,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -3916,7 +3896,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -3954,13 +3934,12 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.9.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", "windows-sys 0.52.0", ] @@ -3987,34 +3966,35 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", "js-sys", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -4030,10 +4010,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -4063,9 +4044,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -4086,7 +4067,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4128,14 +4109,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.6", + "toml_edit 0.22.7", ] [[package]] @@ -4155,20 +4136,20 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime", - "winnow 0.5.36", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.22.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.2", + "winnow 0.6.5", ] [[package]] @@ -4189,14 +4170,14 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da193277a4e2c33e59e09b5861580c33dd0a637c3883d0fa74ba40c0374af2e" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.4.2", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "http-range-header", @@ -4244,7 +4225,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4285,7 +4266,7 @@ checksum = "563b3b88238ec95680aef36bdece66896eaa7ce3c0f1b4f39d38fb2435261352" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4317,18 +4298,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" @@ -4400,9 +4381,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -4425,9 +4406,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -4435,24 +4416,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -4462,9 +4443,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4472,22 +4453,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-streams" @@ -4504,9 +4485,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -4514,9 +4495,9 @@ dependencies = [ [[package]] name = "web-time" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee269d72cc29bf77a2c4bc689cc750fb39f5cbd493d2205bbb3f5c7779cf7b0" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -4577,7 +4558,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -4597,17 +4578,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -4618,9 +4599,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -4630,9 +4611,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -4642,9 +4623,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -4654,9 +4635,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -4666,9 +4647,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -4678,9 +4659,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -4690,24 +4671,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" -version = "0.5.36" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818ce546a11a9986bc24f93d0cdf38a8a1a400f1473ea8c82e59f6e0ffab9249" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.6.2" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -4733,15 +4714,15 @@ dependencies = [ [[package]] name = "xxhash-rust" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61" +checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03" [[package]] name = "yansi" -version = "1.0.0-rc.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" +checksum = "6c2861d76f58ec8fc95708b9b1e417f7b12fd72ad33c01fa6886707092dea0d3" [[package]] name = "zerocopy" @@ -4760,7 +4741,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 761facec..11913d97 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ simple_logger = "4.0" tokio = { version = "1", optional = true } tower = { version = "0.4", optional = true } tower-http = { version = "0.5", features = ["fs"], optional = true } -wasm-bindgen = "0.2" +wasm-bindgen = "=0.2.92" thiserror = "1.0" tracing = { version = "0.1.37", optional = true } http = "1.0" @@ -29,7 +29,7 @@ ic-agent = { version = "0.33.0", default-features = false, features = ["pem", "r serde-wasm-bindgen = { version = "0.6.3" } futures = "0.3.30" leptos-use = "0.10.2" -reqwest = { version = "0.11.24", default-features = false, features = ["json"] } +reqwest = { version = "0.11.24", default-features = false, features = ["json", "http2"] } serde_bytes = "0.11.14" hex = "0.4.3" leptos_icons = "0.3.0" @@ -76,8 +76,8 @@ release-bin = ["ssr", "cloudflare"] release-lib = ["hydrate", "cloudflare"] [patch.crates-io] -# https://github.com/seanmonstar/reqwest/pull/2059 -reqwest = { git = "https://github.com/seanmonstar/reqwest.git", branch = "hyper-v1"} +# release with hyper v1 is not out yet +reqwest = { git = "https://github.com/seanmonstar/reqwest.git", rev = "e3192638518d577759dd89da489175b8f992b12f"} # Defines a size-optimized profile for the WASM bundle in release mode [profile.wasm-release] @@ -107,6 +107,10 @@ tailwind-input-file = "style/input.css" # The tailwind config file. tailwind-config-file = "tailwind.config.js" +# Enables additional file hashes on outputted css, js, and wasm files +# +# Optional: Defaults to false. Can also be set with the LEPTOS_HASH_FILES=false env var +hash-files = true # Assets source dir. All files found here will be copied and synchronized to site-root. # The assets-dir cannot have a sub directory with the same name/path as site-pkg-dir. diff --git a/src/component/auth_provider.rs b/src/component/auth_provider.rs index 77c8f10c..30346a65 100644 --- a/src/component/auth_provider.rs +++ b/src/component/auth_provider.rs @@ -35,8 +35,10 @@ pub fn AuthFrame(auth: RwSignal>) -> impl IntoView { pub fn AuthProvider() -> impl IntoView { let auth = auth_state().identity; view! { - - - + } } diff --git a/src/page/post_view/mod.rs b/src/page/post_view/mod.rs index 0a12bc4c..c0b0e57f 100644 --- a/src/page/post_view/mod.rs +++ b/src/page/post_view/mod.rs @@ -252,25 +252,32 @@ pub fn PostView() -> impl IntoView { }) }; + let PostViewCtx { + video_queue, + current_idx, + .. + } = expect_context(); + + let cached_post = move || { + let Some((canister, post_id)) = canister_and_post() else { + go_to_root(); + return None; + }; + + let post = video_queue + .with_untracked(|q| q.get(current_idx.get_untracked()).cloned()) + .filter(|post| post.canister_id == canister && post.post_id == post_id); + + post + }; + let fetch_first_video_uid = create_resource( || (), move |_| async move { - let PostViewCtx { - video_queue, - current_idx, - .. - } = expect_context(); let Some((canister, post_id)) = canister_and_post() else { go_to_root(); return None; }; - if let Some(post) = - video_queue.with_untracked(|q| q.get(current_idx.get_untracked()).cloned()) - { - if post.canister_id == canister && post.post_id == post_id { - return Some(post); - } - } let canisters = unauth_canisters(); match get_post_uid(&canisters, canister, post_id).await { @@ -286,11 +293,15 @@ pub fn PostView() -> impl IntoView { view! { - {move || { - fetch_first_video_uid - .get() - .map(|post| view! { }) + if let Some(post) = cached_post() { + Some(view! { }) + } else { + fetch_first_video_uid() + .map(|initial_post| { + view! { } + }) + } }} diff --git a/src/page/post_view/overlay.rs b/src/page/post_view/overlay.rs index e1503406..9c8aa6dd 100644 --- a/src/page/post_view/overlay.rs +++ b/src/page/post_view/overlay.rs @@ -3,8 +3,8 @@ use crate::{ state::canisters::{authenticated_canisters, Canisters}, try_or_redirect_opt, utils::{ + route::failure_redirect, web::{copy_to_clipboard, share_url}, - MockPartialEq, }, }; use leptos::*; @@ -15,7 +15,7 @@ use super::video_iter::{post_liked_by_me, PostDetails}; use candid::Principal; #[component] -fn DisabledLikeButton() -> impl IntoView { +fn LikeButtonPlaceHolder() -> impl IntoView { view! { From 94a03404ef00f7c3d31f50c00749a63120476844 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Mar 2024 14:35:46 +0530 Subject: [PATCH 4/8] fix(post_view): prevent blur from bleeding --- src/page/post_view/video_loader.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/page/post_view/video_loader.rs b/src/page/post_view/video_loader.rs index aebb4d34..7003c582 100644 --- a/src/page/post_view/video_loader.rs +++ b/src/page/post_view/video_loader.rs @@ -9,7 +9,7 @@ pub fn BgView(idx: usize, children: Children) -> impl IntoView { let post = move || video_queue.with(|q| q.get(idx).cloned()); let uid = move || post().as_ref().map(|q| q.uid.clone()).unwrap_or_default(); view! { -
+
Date: Tue, 12 Mar 2024 14:56:11 +0530 Subject: [PATCH 5/8] fix: reactive improvements for modal --- src/component/modal.rs | 8 ++++---- src/page/upload/video_upload.rs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/component/modal.rs b/src/component/modal.rs index 9534658a..edd916c3 100644 --- a/src/component/modal.rs +++ b/src/component/modal.rs @@ -22,16 +22,16 @@ pub fn Modal(#[prop(into)] show: RwSignal, children: Children) -> impl Int class="cursor-pointer modal-bg w-dvw h-dvh absolute left-0 top-0 bg-black/60 z-[99] justify-center items-center" style:display=move || if show() { "flex" } else { "none" } > -
-
+
+
- {children()} +
{children()}
} diff --git a/src/page/upload/video_upload.rs b/src/page/upload/video_upload.rs index 6d82a4c5..a45ffc9d 100644 --- a/src/page/upload/video_upload.rs +++ b/src/page/upload/video_upload.rs @@ -128,7 +128,7 @@ pub fn PreVideoUpload(file_blob: WriteSignal>) -> impl IntoV
- + Please ensure that the video is shorter than 60 seconds From 350fd8bb5c5639dfe01bbd2bd99d9502f4fed7ba Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Mar 2024 15:10:08 +0530 Subject: [PATCH 6/8] fix: add legacy fetching for user canister by principal --- src/consts.rs | 3 +++ src/page/profile/mod.rs | 6 ++--- src/state/canisters.rs | 55 ++++++++++++++++++++++++++++++++--------- 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/src/consts.rs b/src/consts.rs index 39102ae6..f90c0a32 100644 --- a/src/consts.rs +++ b/src/consts.rs @@ -1,3 +1,4 @@ +use candid::Principal; use once_cell::sync::Lazy; use reqwest::Url; @@ -10,6 +11,8 @@ pub static AUTH_URL: Lazy = Lazy::new(|| Url::parse("https://hot-or-not-auth.fly.dev/").unwrap()); pub const ACCOUNT_CONNECTED_STORE: &str = "account-connected"; pub const NSFW_TOGGLE_STORE: &str = "nsfw-enabled"; +pub static LEGACY_USER_INDEX: Lazy = + Lazy::new(|| Principal::from_text("rimrc-piaaa-aaaao-aaljq-cai").unwrap()); pub mod social { pub const TELEGRAM: &str = "https://t.me/+c-LTX0Cp-ENmMzI1"; diff --git a/src/page/profile/mod.rs b/src/page/profile/mod.rs index c6f344a0..be6f77b8 100644 --- a/src/page/profile/mod.rs +++ b/src/page/profile/mod.rs @@ -8,8 +8,7 @@ use leptos_icons::*; use leptos_router::*; use crate::{ - component::spinner::FullScreenSpinner, - state::{auth::auth_client, canisters::unauth_canisters}, + component::spinner::FullScreenSpinner, state::canisters::unauth_canisters, utils::profile::ProfileDetails, }; @@ -120,8 +119,7 @@ pub fn ProfileView() -> impl IntoView { let user_details = create_resource(principal, |principal| async move { let canisters = unauth_canisters(); - let auth = auth_client(); - let user_canister = auth + let user_canister = canisters .get_individual_canister_by_user_principal(principal?) .await .ok()??; diff --git a/src/state/canisters.rs b/src/state/canisters.rs index fe40955a..56e9b2e7 100644 --- a/src/state/canisters.rs +++ b/src/state/canisters.rs @@ -1,7 +1,7 @@ use std::{collections::HashSet, sync::Arc}; use candid::Principal; -use ic_agent::{identity::DelegatedIdentity, Identity}; +use ic_agent::{identity::DelegatedIdentity, AgentError, Identity}; use leptos::*; use crate::{ @@ -12,10 +12,12 @@ use crate::{ user_index::UserIndex, AGENT_URL, }, + consts::LEGACY_USER_INDEX, utils::MockPartialEq, }; use super::auth::{types::DelegationIdentity, AuthClient, AuthError}; +use thiserror::Error; #[derive(Clone)] pub struct Canisters { @@ -83,6 +85,20 @@ impl Canisters { } } +#[derive(Error, Debug, Clone)] +pub enum CanistersError { + #[error("Auth service error: {0}")] + Auth(#[from] AuthError), + #[error("IC-Agent error: {0}")] + Agent(String), +} + +impl From for CanistersError { + fn from(e: AgentError) -> Self { + CanistersError::Agent(e.to_string()) + } +} + impl Canisters { pub fn post_cache(&self) -> PostCache<'_> { PostCache(post_cache::CANISTER_ID, &self.agent) @@ -99,28 +115,47 @@ impl Canisters { pub fn orchestrator(&self) -> PlatformOrchestrator<'_> { PlatformOrchestrator(platform_orchestrator::CANISTER_ID, &self.agent) } + + pub async fn get_individual_canister_by_user_principal( + &self, + user_canister: Principal, + ) -> Result, CanistersError> { + let can = self + .auth_client + .get_individual_canister_by_user_principal(user_canister) + .await?; + if let Some(can) = can { + return Ok(Some(can)); + } + // Fallback to legacy fetch + let user_idx = self.user_index_with(*LEGACY_USER_INDEX); + let can = user_idx + .get_user_canister_id_from_user_principal_id(user_canister) + .await?; + Ok(can) + } } pub fn unauth_canisters() -> Canisters { expect_context() } -pub type AuthCanistersResource = - Resource>, Result>, AuthError>>; +pub type AuthCanistersResource = Resource< + MockPartialEq>, + Result>, CanistersError>, +>; async fn create_individual_canister( canisters: &Canisters, delegation_id: DelegationIdentity, referrer: Option, -) -> Result { +) -> Result { // TODO: this is temporary let blacklisted = HashSet::from([Principal::from_text("rimrc-piaaa-aaaao-aaljq-cai").unwrap()]); let orchestrator = canisters.orchestrator(); - // TODO: error handling let subnet_idxs: Vec<_> = orchestrator .get_all_available_subnet_orchestrators() - .await - .unwrap() + .await? .into_iter() .filter(|subnet| !blacklisted.contains(subnet)) .collect(); @@ -134,13 +169,11 @@ async fn create_individual_canister( let discrim = u128::from_be_bytes(by); let subnet_idx = subnet_idxs[(discrim % subnet_idxs.len() as u128) as usize]; let idx = canisters.user_index_with(subnet_idx); - // TODO: error handling let user_canister = idx .get_requester_principals_canister_id_create_if_not_exists_and_optionally_allow_referrer( referrer, ) - .await - .unwrap(); + .await?; canisters .auth_client @@ -152,7 +185,7 @@ async fn create_individual_canister( pub async fn do_canister_auth( auth: Option, referrer: Option, -) -> Result>, AuthError> { +) -> Result>, CanistersError> { let Some(delegation_identity) = auth else { return Ok(None); }; From ca1123034d26e3c8ecfdd53b317c3ddfabcd32b5 Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Mar 2024 15:22:14 +0530 Subject: [PATCH 7/8] chore: lint check --- src/state/auth/types.rs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/state/auth/types.rs b/src/state/auth/types.rs index 97e802d5..54d3cfc9 100644 --- a/src/state/auth/types.rs +++ b/src/state/auth/types.rs @@ -6,13 +6,6 @@ use serde::{Deserialize, Serialize}; use super::AuthError; -#[derive(Debug, Serialize, Clone)] -struct PrincipalId { - _arr: String, - #[serde(rename = "_isPrincipal")] - _is_principal: bool, -} - #[derive(Debug, Serialize, Deserialize, Clone)] pub struct DelegationIdentity { pub _inner: Vec>, From cd861778d57387e389ad66f15a3d004228e5c4fd Mon Sep 17 00:00:00 2001 From: rupansh Date: Tue, 12 Mar 2024 15:32:46 +0530 Subject: [PATCH 8/8] fix!(workflows/build-check): use latest cargo-leptos build --- .github/workflows/build-check.yml | 1 + default.nix | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index 596ed221..bcbe5615 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -36,6 +36,7 @@ jobs: nix-shell --run 'rustup target add wasm32-unknown-unknown' nix-shell --run "rustup component add rustfmt" nix-shell --run "rustup component add clippy" + nix-shell --run "cargo install --locked cargo-leptos" - name: lint check run: | nix-shell --run "cargo fmt --check" diff --git a/default.nix b/default.nix index f32f5b0c..06cdfce8 100644 --- a/default.nix +++ b/default.nix @@ -8,7 +8,6 @@ in pkgs.mkShell { buildInputs = with pkgs; [ binaryen - cargo-leptos flyctl leptosfmt nodejs_21