diff --git a/Cargo.lock b/Cargo.lock index 9a81c1f..4dd813a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ "flate2", "futures-core", "h2", - "http", + "http 0.2.9", "httparse", "httpdate", "itoa", @@ -98,7 +98,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" dependencies = [ "bytestring", - "http", + "http 0.2.9", "regex", "serde", "tracing", @@ -189,7 +189,7 @@ dependencies = [ "bytes", "bytestring", "cfg-if", - "cookie", + "cookie 0.16.2", "derive_more", "encoding_rs", "futures-core", @@ -357,7 +357,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -368,7 +368,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -389,7 +389,7 @@ dependencies = [ "attribute-derive-macro", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -405,7 +405,7 @@ dependencies = [ "proc-macro2", "quote", "quote-use", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -806,6 +806,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "cookie" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -939,7 +950,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -961,7 +972,20 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core 0.20.3", "quote", - "syn 2.0.28", + "syn 2.0.48", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.0", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] @@ -973,7 +997,7 @@ dependencies = [ "darling 0.20.3", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -995,7 +1019,7 @@ checksum = "5bc1955a640c4464859ae700fbe48e666da6fdce99ce5fe1acd08dd295889d10" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -1235,7 +1259,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -1319,7 +1343,28 @@ dependencies = [ "futures-channel", "futures-core", "futures-sink", - "gloo-utils", + "gloo-utils 0.1.7", + "js-sys", + "pin-project", + "serde", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-net" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils 0.2.0", + "http 0.2.9", "js-sys", "pin-project", "serde", @@ -1355,6 +1400,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "gloo-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" +dependencies = [ + "js-sys", + "serde", + "serde_json", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "h2" version = "0.3.19" @@ -1366,7 +1424,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.9", "indexmap 1.9.3", "slab", "tokio", @@ -1505,14 +1563,14 @@ dependencies = [ ] [[package]] -name = "http-body" -version = "0.4.5" +name = "http" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" dependencies = [ "bytes", - "http", - "pin-project-lite", + "fnv", + "itoa", ] [[package]] @@ -1539,30 +1597,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.14.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.9", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "iana-time-zone" version = "0.1.57" @@ -1658,12 +1692,6 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a53088c87cf71c9d4f3372a2cb9eea1e7b8a0b1bf8b7f7d23fe5b76dbb07e63b" -[[package]] -name = "ipnet" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" - [[package]] name = "is-terminal" version = "0.4.9" @@ -1734,9 +1762,9 @@ dependencies = [ [[package]] name = "leptos" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "269ba4ba91ffa73d9559c975e0be17bd4eb34c6b6abd7fdd5704106132d89d2a" +checksum = "0c115de7c6fca2164133e18328777d02c371434ace38049ac02886b5cffd22dc" dependencies = [ "cfg-if", "leptos_config", @@ -1754,18 +1782,22 @@ dependencies = [ [[package]] name = "leptos-use" -version = "0.8.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1932eb047df16a30da3af0019b209f80026f5581ed75f76b356ef2b8efcb835" +checksum = "15ed84fe279526a751332fa18524f55003d3ec0b940704b077354c16d0a539e7" dependencies = [ + "async-trait", "cfg-if", + "cookie 0.18.0", "default-struct-builder", "futures-util", "gloo-timers", + "gloo-utils 0.2.0", "js-sys", "lazy_static", "leptos", "paste", + "thiserror", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1773,29 +1805,31 @@ dependencies = [ [[package]] name = "leptos_actix" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89db4657bdcd28193e9d8cd640ec5d76b55abdf4b16cd5066f1b03f8aea49758" +checksum = "44d3fc0f3b938e14c1132aee443ab56141eceab79e21da282a6cc3d9f65aa458" dependencies = [ "actix-http", "actix-web", "futures", "leptos", "leptos_integration_utils", + "leptos_macro", "leptos_meta", "leptos_router", "parking_lot", "regex", "serde_json", + "server_fn", "tokio", "tracing", ] [[package]] name = "leptos_config" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e72d8689d54737991831e9b279bb4fba36d27a93aa975c75cd4241d9a4a425ec" +checksum = "055262ff3660e95ec95cadd8a05a02070d624354e08e30b99c14a81023feb2dc" dependencies = [ "config", "regex", @@ -1806,9 +1840,9 @@ dependencies = [ [[package]] name = "leptos_dom" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad314950d41acb1bfdb8b5924811b2983484a8d6f69a20b834a173a682657ed4" +checksum = "adfea7feb9c488448db466ca0673b691ec2a05efb0b2bc6626b7248ee04bb39c" dependencies = [ "async-recursion", "cfg-if", @@ -1836,9 +1870,9 @@ dependencies = [ [[package]] name = "leptos_hot_reload" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f62dcab17728877f2d2f16d2c8a6701c4c5fbdfb4964792924acb0b50529659" +checksum = "3ba8f68f7c3135975eb34ed19210272ebef2d6f422d138ff87a726b8793fe105" dependencies = [ "anyhow", "camino", @@ -1848,15 +1882,15 @@ dependencies = [ "quote", "rstml", "serde", - "syn 2.0.28", + "syn 2.0.48", "walkdir", ] [[package]] name = "leptos_integration_utils" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fddda3a3b768dad90f80fb56ac6e250bc5c60755f8e3df225913aba4364ed7ee" +checksum = "700bdb6d9d754964b576fa3b76a28a68adbd6ced6d7dc84a18e29e91a82c2376" dependencies = [ "futures", "leptos", @@ -1868,9 +1902,9 @@ dependencies = [ [[package]] name = "leptos_macro" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57955d66f624265222444a5c565fea38efa5b0152a1dfc7c060a78e5fb62a852" +checksum = "039c510dafb7d9997e4b8accfcced5675fabc65720caf544592df32432d6d65a" dependencies = [ "attribute-derive", "cfg-if", @@ -1884,16 +1918,16 @@ dependencies = [ "quote", "rstml", "server_fn_macro", - "syn 2.0.28", + "syn 2.0.48", "tracing", "uuid", ] [[package]] name = "leptos_meta" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc25c0f7f14ed5daf42b8d0d273ed790b0449e8ba8cff1c2fa800dc90a75acb" +checksum = "4bbbbd77839b4d3189c06319b32aaa3bc43510fb43f9c1bffb8e124a33decd6c" dependencies = [ "cfg-if", "indexmap 2.0.0", @@ -1905,9 +1939,9 @@ dependencies = [ [[package]] name = "leptos_reactive" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f54a525a0edfc8c2bf3ee92aae411800b8b10892c9cd819f8e8a6d4f0d62f3" +checksum = "b30c5bc7f3496d6ba399578171cf133c50d2172f9791fe292db4da2fd0d8cec4" dependencies = [ "base64 0.21.2", "cfg-if", @@ -1932,13 +1966,13 @@ dependencies = [ [[package]] name = "leptos_router" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b31087173c60e25c329a1c6786756dd9ee97750b378622df4d780db160a09040" +checksum = "498159479603569e1d7c969cffa0817b73249e96f825c295743f8f4607a68cbe" dependencies = [ "cached", "cfg-if", - "gloo-net", + "gloo-net 0.2.6", "itertools 0.12.0", "js-sys", "lazy_static", @@ -1950,6 +1984,7 @@ dependencies = [ "once_cell", "percent-encoding", "regex", + "send_wrapper", "serde", "serde_json", "serde_qs", @@ -1963,9 +1998,9 @@ dependencies = [ [[package]] name = "leptos_server" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1517c2024bc47d764e96053e55b927f8a2159e735a0cc47232542b493df9d" +checksum = "f06b9b860479385991fad54cbee372382aee3c1e75ca78b5da6f8bda90c153e1" dependencies = [ "inventory", "lazy_static", @@ -2068,7 +2103,7 @@ dependencies = [ "manyhow-macros", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -2315,7 +2350,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -2382,7 +2417,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ "proc-macro2", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -2431,9 +2466,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.63" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -2446,7 +2481,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", "version_check", "yansi", ] @@ -2488,9 +2523,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.28" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -2504,7 +2539,7 @@ dependencies = [ "derive-where", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -2590,40 +2625,6 @@ dependencies = [ "bytecheck", ] -[[package]] -name = "reqwest" -version = "0.11.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" -dependencies = [ - "base64 0.21.2", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - [[package]] name = "rezervator" version = "0.1.0" @@ -2730,7 +2731,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.28", + "syn 2.0.48", "syn_derive", "thiserror", ] @@ -2869,20 +2870,29 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +dependencies = [ + "futures-core", +] + [[package]] name = "serde" -version = "1.0.164" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde-wasm-bindgen" -version = "0.5.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" +checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132" dependencies = [ "js-sys", "serde", @@ -2891,13 +2901,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.164" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -2954,52 +2964,57 @@ dependencies = [ [[package]] name = "server_fn" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c265de965fe48e09ad8899d0ab1ffebdfa1a9914e4de5ff107b07bd94cf7541" +checksum = "97fab54d9dd2d7e9eba4efccac41d2ec3e7c6e9973d14c0486d662a32662320c" dependencies = [ + "actix-web", + "bytes", "ciborium", "const_format", - "gloo-net", + "dashmap", + "futures", + "gloo-net 0.5.0", + "http 1.0.0", "inventory", "js-sys", - "lazy_static", "once_cell", - "proc-macro2", - "quote", - "reqwest", + "send_wrapper", "serde", "serde_json", "serde_qs", "server_fn_macro_default", - "syn 2.0.28", "thiserror", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", "xxhash-rust", ] [[package]] name = "server_fn_macro" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f77000541a62ceeec01eef3ee0f86c155c33dac5fae750ad04a40852c6d5469a" +checksum = "3be6011b586a0665546b7ced372b0be690d9e005d3f8524795da2843274d7720" dependencies = [ "const_format", - "proc-macro-error", + "convert_case 0.6.0", "proc-macro2", "quote", - "serde", - "syn 2.0.28", + "syn 2.0.48", "xxhash-rust", ] [[package]] name = "server_fn_macro_default" -version = "0.5.7" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3353f22e2bcc451074d4feaa37317d9d17dff11d4311928384734ea17ab9ca" +checksum = "752ed78ec49132d154b922cf5ab6485680cab039a75740c48ea2db621ad481da" dependencies = [ "server_fn_macro", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -3401,9 +3416,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -3419,7 +3434,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -3467,7 +3482,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -3597,12 +3612,6 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - [[package]] name = "tracing" version = "0.1.37" @@ -3624,7 +3633,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -3636,12 +3645,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - [[package]] name = "typed-builder" version = "0.18.1" @@ -3659,7 +3662,7 @@ checksum = "563b3b88238ec95680aef36bdece66896eaa7ce3c0f1b4f39d38fb2435261352" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", ] [[package]] @@ -3829,15 +3832,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3846,9 +3840,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3856,16 +3850,16 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", "wasm-bindgen-shared", ] @@ -3883,9 +3877,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3893,22 +3887,35 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] [[package]] name = "web-sys" @@ -4050,15 +4057,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - [[package]] name = "wyz" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 52bc1c6..1f2c500 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,12 +12,12 @@ actix-web = { version = "4.4.0", optional = true, features = ["macros"] } actix-session = { version = "0.8.0", optional = true, features = ["cookie-session"] } console_error_panic_hook = "0.1" cfg-if = "1" -leptos = { version = "0.5.7" } -leptos_meta = { version = "0.5.7" } -leptos_actix = { version = "0.5.7", optional = true } -leptos_router = { version = "0.5.7" } +leptos = { version = "0.6.5" } +leptos_meta = { version = "0.6.5" } +leptos_actix = { version = "0.6.5", optional = true } +leptos_router = { version = "0.6.5" } serde = { version = "1", features = ["derive"] } -wasm-bindgen = "=0.2.87" +wasm-bindgen = "=0.2.90" web-sys = { version = "0.3.61", features = ["Navigator"] } lazy_static = "1.4.0" chrono = { version = "0.4.31", features = ["serde"]} @@ -32,7 +32,7 @@ toml = "0.8.8" log = "0.4.20" env_logger = "0.10.1" getopts = "0.2.21" -leptos-use = "0.8.2" +leptos-use = "0.10.1" [features] csr = ["leptos/csr", "leptos_meta/csr", "leptos_router/csr"] diff --git a/src/backend/company.rs b/src/backend/company.rs index 29bd42d..a93d8cd 100644 --- a/src/backend/company.rs +++ b/src/backend/company.rs @@ -7,6 +7,7 @@ use crate::components::data_form::ForValidation; cfg_if! { if #[cfg(feature = "ssr")] { use sqlx::{query_as, PgPool, query}; use crate::error::AppError; + use crate::backend::get_pool; use log::info; pub async fn check_company(pool: &PgPool) -> Result<(), AppError> { @@ -26,14 +27,11 @@ cfg_if! { if #[cfg(feature = "ssr")] { #[server(GetCompany, "/api", "Url", "get_company")] pub async fn get_company() -> Result, ServerFnError> { - use crate::backend::AppData; - use actix_web::web::Data; - use leptos_actix::extract; use crate::perm_check; perm_check!(is_logged_in); - let pool = extract(|data: Data| async move { data.db_pool().clone() }).await?; + let pool = get_pool().await?; let cmp = sqlx::query_as::<_, Company>("SELECT * FROM company") .fetch_one(&pool) @@ -44,14 +42,11 @@ pub async fn get_company() -> Result, ServerFnError> { #[server(UpdateCompany, "/api", "Url", "update_company")] pub async fn update_company(company: Company) -> Result, ServerFnError> { - use crate::backend::AppData; - use actix_web::web::Data; - use leptos_actix::extract; use crate::perm_check; perm_check!(is_admin); - let pool = extract(|data: Data| async move { data.db_pool().clone() }).await?; + let pool = get_pool().await?; sqlx::query( "UPDATE company SET name = $1, street = $2, house_number = $3, zip_code = $4, city = $5 \ diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 13b5ce8..8d34538 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -72,7 +72,8 @@ cfg_if!{ } pub async fn get_pool() -> Result { - extract(|data: Data| async move { data.db_pool().clone() }).await + let data = extract::>().await?; + Ok(data.db_pool().clone()) } } } \ No newline at end of file diff --git a/src/backend/user.rs b/src/backend/user.rs index 2b6dc44..ebfcf57 100644 --- a/src/backend/user.rs +++ b/src/backend/user.rs @@ -42,9 +42,14 @@ cfg_if! { if #[cfg(feature = "ssr")] { } pub async fn logged_in_user() -> Option { - extract(|session: Session| async move { - session.get::("user").unwrap_or(None) - }).await.unwrap_or(None) + let session = extract::().await; + + if session.is_err() { + return None + } + + session.unwrap().get::("user").unwrap_or(None) + /*let mut usr = User::default(); usr.full_name = Some("PokAdm".to_string()); usr.admin = true; @@ -77,10 +82,8 @@ pub async fn login(username: String, password: String) -> Result let user = user_from_login(&pool, &username).await.unwrap_or(User::default()); if !user.login.is_empty() && pwhash::bcrypt::verify(password, &user.password) { - extract(|session: Session| async move { - let _ = session.insert("user", user); - }) - .await?; + let session = extract::().await?; + let _ = session.insert("user", user); info!("User {} logged in", username); @@ -97,9 +100,8 @@ pub async fn login(username: String, password: String) -> Result #[server] pub async fn logout() -> Result<(), ServerFnError> { - extract(|session: Session| async move { - session.clear(); - }).await?; + let session = extract::().await?; + session.clear(); redirect("/login"); Ok(()) @@ -160,9 +162,8 @@ pub async fn update_profile(user: UserProfile) -> Result, Server if logged_in_user().await.unwrap_or_default().login == user.login() { let usr = user_from_login(&pool, user.login()).await?; - extract(|session: Session| async move { - let _ = session.insert("user", usr); - }).await?; + let session = extract::().await?; + let _ = session.insert("user", usr); } Ok(ApiResponse::Data(())) diff --git a/src/components/data_form.rs b/src/components/data_form.rs index fe17e1f..99a41f1 100644 --- a/src/components/data_form.rs +++ b/src/components/data_form.rs @@ -1,7 +1,12 @@ use crate::backend::data::ApiResponse; use crate::components::modal_box::{DialogOpener, ModalBody, ModalDialog, ModalFooter}; use leptos::*; +use leptos::server_fn::client::browser::BrowserClient; +use leptos::server_fn::codec::{Json, PostUrl}; +use leptos::server_fn::error::NoCustomError; +use leptos::server_fn::ServerFn; use leptos_router::*; +use serde::de::DeserializeOwned; use validator::Validate; use crate::components::server_err::ServerErr; use crate::components::validation_err::ValidationErr; @@ -13,7 +18,13 @@ pub trait ForValidation { } #[component] -pub fn data_form + Clone + ForValidation>( +pub fn data_form> + + DeserializeOwned + ForValidation>( opener: DialogOpener, action: Action, ServerFnError>>, title: &'static str, @@ -54,7 +65,14 @@ pub fn data_form + Clone + ForValidation>( } #[component] -pub fn question_dialog + Clone>( +pub fn question_dialog> + + DeserializeOwned + + Clone>( opener: DialogOpener, action: Action, ServerFnError>>, title: &'static str,