diff --git a/.cargo/docker-config.toml b/.cargo/docker-config.toml
index e055fb1..c37deef 100644
--- a/.cargo/docker-config.toml
+++ b/.cargo/docker-config.toml
@@ -3,14 +3,5 @@ rustflags = ["--cfg", "uuid_unstable"]
rustdocflags = ["--cfg", "uuid_unstable"]
[target.x86_64-unknown-linux-gnu]
-rustflags = [
- "--cfg",
- "uuid_unstable",
- "-C",
- "link-arg=-fuse-ld=/usr/bin/mold",
- "-C",
- "target-feature=+crt-static",
- "-C",
- "target-cpu=x86-64-v3",
-]
+rustflags = ["--cfg", "uuid_unstable", "-C", "link-arg=-fuse-ld=/usr/bin/mold", "-C", "target-feature=+crt-static", "-C", "target-cpu=x86-64-v3"]
linker = "clang"
diff --git a/.gitignore b/.gitignore
index 0e5f54b..5c57848 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ pkg
**/*.rs.bk
# node e2e test tools and outputs
+.sass-cache
node_modules/
test-results/
end2end/playwright-report/
diff --git a/Cargo.lock b/Cargo.lock
index fea8902..8c6d3f1 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8,6 +8,21 @@ version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+[[package]]
+name = "addr2line"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
[[package]]
name = "ahash"
version = "0.7.6"
@@ -32,9 +47,9 @@ dependencies = [
[[package]]
name = "aho-corasick"
-version = "0.7.20"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
dependencies = [
"memchr",
]
@@ -45,6 +60,18 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
[[package]]
name = "android_system_properties"
version = "0.1.5"
@@ -56,27 +83,29 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.70"
+version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
[[package]]
name = "app"
version = "0.1.0"
dependencies = [
- "base64 0.21.0",
+ "base64 0.21.2",
"broadcaster",
"cfg-if 1.0.0",
"convert_case 0.6.0",
"entity",
- "futures 0.3.28",
+ "futures",
"getrandom",
"http",
"js-sys",
"lazy_static",
"leptos",
+ "leptos-use",
"leptos_axum",
"leptos_dom",
+ "leptos_icons",
"leptos_meta",
"leptos_router",
"rand",
@@ -90,9 +119,9 @@ dependencies = [
[[package]]
name = "arrayvec"
-version = "0.7.2"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
[[package]]
name = "async-attributes"
@@ -106,9 +135,9 @@ dependencies = [
[[package]]
name = "async-channel"
-version = "1.8.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
dependencies = [
"concurrent-queue",
"event-listener",
@@ -117,9 +146,9 @@ dependencies = [
[[package]]
name = "async-executor"
-version = "1.5.0"
+version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
dependencies = [
"async-lock",
"async-task",
@@ -147,22 +176,22 @@ dependencies = [
[[package]]
name = "async-io"
-version = "1.12.0"
+version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
"async-lock",
"autocfg",
+ "cfg-if 1.0.0",
"concurrent-queue",
"futures-lite",
- "libc",
"log",
"parking",
"polling",
+ "rustix",
"slab",
"socket2",
"waker-fn",
- "windows-sys 0.42.0",
]
[[package]]
@@ -182,7 +211,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
@@ -214,9 +243,9 @@ dependencies = [
[[package]]
name = "async-stream"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad445822218ce64be7a341abfb0b1ea43b5c23aa83902542a4542e78309d8e5e"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
dependencies = [
"async-stream-impl",
"futures-core",
@@ -225,30 +254,30 @@ dependencies = [
[[package]]
name = "async-stream-impl"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4655ae1a7b0cdf149156f780c5bf3f1352bc53cbd9e0a361a7ef7b22947e965"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "async-task"
-version = "4.3.0"
+version = "4.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
[[package]]
name = "async-trait"
-version = "0.1.67"
+version = "0.1.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ea188f25f0255d8f92797797c97ebf5631fa88178beb1a46fdf5622c9a00e4"
+checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
@@ -262,36 +291,33 @@ dependencies = [
[[package]]
name = "atomic"
-version = "0.5.1"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c"
-dependencies = [
- "autocfg",
-]
+checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
[[package]]
name = "atomic-waker"
-version = "1.1.0"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599"
+checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
[[package]]
name = "attribute-derive"
-version = "0.5.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e60298dd99585df8fc75d757581178699612e21c42e7d8144f925f46a0fddf5"
+checksum = "c124f12ade4e670107b132722d0ad1a5c9790bcbc1b265336369ea05626b4498"
dependencies = [
"attribute-derive-macro",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "attribute-derive-macro"
-version = "0.5.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e19a193c5dc845887a55938582b5371ca98f395f6f8523670bf7f869f4004aae"
+checksum = "8b217a07446e0fb086f83401a98297e2d81492122f5874db5391bd270a185f88"
dependencies = [
"collection_literals",
"interpolator",
@@ -300,7 +326,7 @@ dependencies = [
"proc-macro2",
"quote",
"quote-use",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
@@ -311,15 +337,15 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "axum"
-version = "0.6.12"
+version = "0.6.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f8ccfd9221ee7d1f3d4b33e1f8319b3a81ed8f61f2ea40b37b859794b4491"
+checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39"
dependencies = [
"async-trait",
"axum-core",
"axum-macros",
- "bitflags",
- "bytes 1.4.0",
+ "bitflags 1.3.2",
+ "bytes",
"futures-util",
"http",
"http-body",
@@ -344,12 +370,12 @@ dependencies = [
[[package]]
name = "axum-core"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2f958c80c248b34b9a877a643811be8dbca03ca5ba827f2b63baf3a81e5fc4e"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
dependencies = [
"async-trait",
- "bytes 1.4.0",
+ "bytes",
"futures-util",
"http",
"http-body",
@@ -368,7 +394,22 @@ dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
]
[[package]]
@@ -392,15 +433,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
-version = "0.21.0"
+version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "bigdecimal"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6aaf33151a6429fe9211d1b276eafdf70cdff28b071e76c0b0e1503221ea3744"
+checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa"
dependencies = [
"num-bigint",
"num-integer",
@@ -413,6 +454,24 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+[[package]]
+name = "bitflags"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
[[package]]
name = "block-buffer"
version = "0.10.4"
@@ -424,9 +483,9 @@ dependencies = [
[[package]]
name = "blocking"
-version = "1.3.0"
+version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
dependencies = [
"async-channel",
"async-lock",
@@ -434,13 +493,14 @@ dependencies = [
"atomic-waker",
"fastrand",
"futures-lite",
+ "log",
]
[[package]]
name = "borsh"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40f9ca3698b2e4cb7c15571db0abc5551dca417a21ae8140460b50309bb2cc62"
+checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b"
dependencies = [
"borsh-derive",
"hashbrown 0.13.2",
@@ -448,9 +508,9 @@ dependencies = [
[[package]]
name = "borsh-derive"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598b3eacc6db9c3ee57b22707ad8f6a8d2f6d442bfe24ffeb8cbb70ca59e6a35"
+checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7"
dependencies = [
"borsh-derive-internal",
"borsh-schema-derive-internal",
@@ -461,9 +521,9 @@ dependencies = [
[[package]]
name = "borsh-derive-internal"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "186b734fa1c9f6743e90c95d7233c9faab6360d1a96d4ffa19d9cfd1e9350f8a"
+checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb"
dependencies = [
"proc-macro2",
"quote",
@@ -472,9 +532,9 @@ dependencies = [
[[package]]
name = "borsh-schema-derive-internal"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99b7ff1008316626f485991b960ade129253d4034014616b94f309a15366cc49"
+checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd"
dependencies = [
"proc-macro2",
"quote",
@@ -497,15 +557,15 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.12.0"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
[[package]]
name = "bytecheck"
-version = "0.6.10"
+version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13fe11640a23eb24562225322cd3e452b93a3d4091d62fab69c70542fcd17d1f"
+checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627"
dependencies = [
"bytecheck_derive",
"ptr_meta",
@@ -514,9 +574,9 @@ dependencies = [
[[package]]
name = "bytecheck_derive"
-version = "0.6.10"
+version = "0.6.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e31225543cb46f81a7e224762764f4a6a0f097b1db0b175f69e8065efaa42de5"
+checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61"
dependencies = [
"proc-macro2",
"quote",
@@ -531,25 +591,51 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
-version = "0.4.12"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+
+[[package]]
+name = "cached"
+version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+checksum = "b195e4fbc4b6862bbd065b991a34750399c119797efff72492f28a5864de8700"
dependencies = [
- "byteorder",
- "iovec",
+ "async-trait",
+ "cached_proc_macro",
+ "cached_proc_macro_types",
+ "futures",
+ "hashbrown 0.13.2",
+ "instant",
+ "once_cell",
+ "thiserror",
+ "tokio",
]
[[package]]
-name = "bytes"
-version = "1.4.0"
+name = "cached_proc_macro"
+version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "b48814962d2fd604c50d2b9433c2a41a0ab567779ee2c02f7fba6eca1221f082"
+dependencies = [
+ "cached_proc_macro_types",
+ "darling 0.14.4",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "cached_proc_macro_types"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
[[package]]
name = "camino"
-version = "1.1.4"
+version = "1.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
[[package]]
name = "cc"
@@ -571,13 +657,13 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "chrono"
-version = "0.4.24"
+version = "0.4.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
dependencies = [
+ "android-tzdata",
"iana-time-zone",
"js-sys",
- "num-integer",
"num-traits",
"serde",
"time 0.1.45",
@@ -587,9 +673,9 @@ dependencies = [
[[package]]
name = "ciborium"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
dependencies = [
"ciborium-io",
"ciborium-ll",
@@ -598,15 +684,15 @@ dependencies = [
[[package]]
name = "ciborium-io"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
[[package]]
name = "ciborium-ll"
-version = "0.2.0"
+version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
dependencies = [
"ciborium-io",
"half",
@@ -614,23 +700,23 @@ dependencies = [
[[package]]
name = "clap"
-version = "3.2.23"
+version = "3.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
"clap_derive",
"clap_lex",
- "indexmap",
+ "indexmap 1.9.3",
"once_cell",
"textwrap",
]
[[package]]
name = "clap_derive"
-version = "3.2.18"
+version = "3.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65"
+checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
dependencies = [
"heck 0.4.1",
"proc-macro-error",
@@ -654,17 +740,7 @@ version = "0.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
+ "bitflags 1.3.2",
]
[[package]]
@@ -681,9 +757,9 @@ checksum = "f3f6d59c71e7dc3af60f0af9db32364d96a16e9310f3f5db2b55ed642162dd35"
[[package]]
name = "concurrent-queue"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e"
+checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
dependencies = [
"crossbeam-utils",
]
@@ -703,7 +779,7 @@ dependencies = [
"rust-ini",
"serde",
"serde_json",
- "toml",
+ "toml 0.5.11",
"yaml-rust",
]
@@ -729,18 +805,18 @@ dependencies = [
[[package]]
name = "const_format"
-version = "0.2.30"
+version = "0.2.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7309d9b4d3d2c0641e018d449232f2e28f1b22933c137f157d3dbc14228b8c0e"
+checksum = "c990efc7a285731f9a4378d81aff2f0e85a2c8781a05ef0f8baa8dac54d0ff48"
dependencies = [
"const_format_proc_macros",
]
[[package]]
name = "const_format_proc_macros"
-version = "0.2.29"
+version = "0.2.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f47bf7270cf70d370f8f98c1abb6d2d4cf60a6845d30e05bfb90c6568650"
+checksum = "e026b6ce194a874cb9cf32cd5772d1ef9767cc8fcb5765948d74f37a9d8b2bf6"
dependencies = [
"proc-macro2",
"quote",
@@ -762,27 +838,17 @@ dependencies = [
"unicode-segmentation",
]
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
[[package]]
name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
[[package]]
name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
dependencies = [
"libc",
]
@@ -799,9 +865,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.15"
+version = "0.8.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
dependencies = [
"cfg-if 1.0.0",
]
@@ -817,68 +883,96 @@ dependencies = [
]
[[package]]
-name = "ctor"
-version = "0.1.26"
+name = "darling"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
dependencies = [
+ "darling_core 0.14.4",
+ "darling_macro 0.14.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+dependencies = [
+ "darling_core 0.20.3",
+ "darling_macro 0.20.3",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
"quote",
+ "strsim",
"syn 1.0.109",
]
[[package]]
-name = "cxx"
-version = "1.0.93"
+name = "darling_core"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.26",
]
[[package]]
-name = "cxx-build"
-version = "1.0.93"
+name = "darling_macro"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
+ "darling_core 0.14.4",
"quote",
- "scratch",
- "syn 2.0.12",
+ "syn 1.0.109",
]
[[package]]
-name = "cxxbridge-flags"
-version = "1.0.93"
+name = "darling_macro"
+version = "0.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+dependencies = [
+ "darling_core 0.20.3",
+ "quote",
+ "syn 2.0.26",
+]
[[package]]
-name = "cxxbridge-macro"
-version = "1.0.93"
+name = "default-struct-builder"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f"
+checksum = "4d935de49bbc61cf2487127ec53de614d7aabe0e5932cb6b1880f386976e9b4a"
dependencies = [
+ "darling 0.20.3",
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
name = "derive-where"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b3d434edc6a4e8326087d0954b71fa7d7cc6752802b51127e0ca69b7c90b3f5"
+checksum = "5bc1955a640c4464859ae700fbe48e666da6fdce99ce5fe1acd08dd295889d10"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
@@ -896,9 +990,9 @@ dependencies = [
[[package]]
name = "digest"
-version = "0.10.6"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
@@ -912,9 +1006,9 @@ checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
[[package]]
name = "dotenvy"
-version = "0.15.6"
+version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d8c417d7a8cb362e0c37e5d815f5eb7c37f79ff93707329d5a194e42e54ca0"
+checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]]
name = "drain_filter_polyfill"
@@ -924,9 +1018,9 @@ checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408"
[[package]]
name = "educe"
-version = "0.4.20"
+version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0188e3c3ba8df5753894d54461f0e39bc91741dc5b22e1c46999ec2c71f4e4"
+checksum = "079044df30bb07de7d846d41a184c4b00e66ebdac93ee459253474f3a47e50ae"
dependencies = [
"enum-ordinalize",
"proc-macro2",
@@ -967,27 +1061,32 @@ dependencies = [
[[package]]
name = "enum-ordinalize"
-version = "3.1.12"
+version = "3.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bb1df8b45ecb7ffa78dca1c17a438fb193eb083db0b1b494d2a61bcb5096a"
+checksum = "e4f76552f53cefc9a7f64987c3701b99d982f7690606fd67de1d09712fbf52f1"
dependencies = [
"num-bigint",
"num-traits",
"proc-macro2",
"quote",
- "rustc_version",
- "syn 1.0.109",
+ "syn 2.0.26",
]
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
[[package]]
name = "errno"
-version = "0.2.8"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
dependencies = [
"errno-dragonfly",
"libc",
- "winapi",
+ "windows-sys",
]
[[package]]
@@ -1017,16 +1116,16 @@ dependencies = [
[[package]]
name = "figment"
-version = "0.10.8"
+version = "0.10.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e56602b469b2201400dec66a66aec5a9b8761ee97cd1b8c96ab2483fcc16cc9"
+checksum = "4547e226f4c9ab860571e070a9034192b3175580ecea38da34fcdb53a018c9a5"
dependencies = [
"atomic",
"pear",
"serde",
"serde_json",
"serde_yaml",
- "toml",
+ "toml 0.7.6",
"uncased",
"version_check",
]
@@ -1049,46 +1148,20 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
[[package]]
name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
dependencies = [
"percent-encoding",
]
[[package]]
-name = "fs"
-version = "0.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94befb4c82414e638647f3f6fe8f908c39a7f2f40d556d318adb803ef263154"
-dependencies = [
- "bytes 0.4.12",
- "futures 0.1.31",
- "futures-cpupool",
-]
-
-[[package]]
-name = "futures"
-version = "0.1.31"
+name = "funty"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
[[package]]
name = "futures"
@@ -1121,16 +1194,6 @@ version = "0.3.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-[[package]]
-name = "futures-cpupool"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
-dependencies = [
- "futures 0.1.31",
- "num_cpus",
-]
-
[[package]]
name = "futures-executor"
version = "0.3.28"
@@ -1149,7 +1212,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5"
dependencies = [
"futures-core",
- "lock_api 0.4.9",
+ "lock_api 0.4.10",
"parking_lot 0.11.2",
]
@@ -1161,9 +1224,9 @@ checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
[[package]]
name = "futures-lite"
-version = "1.12.0"
+version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
dependencies = [
"fastrand",
"futures-core",
@@ -1182,7 +1245,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
@@ -1217,9 +1280,9 @@ dependencies = [
[[package]]
name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
@@ -1227,9 +1290,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.9"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -1238,6 +1301,12 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "gimli"
+version = "0.27.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+
[[package]]
name = "gloo-net"
version = "0.2.6"
@@ -1272,9 +1341,9 @@ dependencies = [
[[package]]
name = "gloo-utils"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8e8fc851e9c7b9852508bc6e3f690f452f474417e8545ec9857b7f7377036b5"
+checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e"
dependencies = [
"js-sys",
"serde",
@@ -1285,17 +1354,17 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.3.16"
+version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d"
+checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
dependencies = [
- "bytes 1.4.0",
+ "bytes",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
"http",
- "indexmap",
+ "indexmap 1.9.3",
"slab",
"tokio",
"tokio-util",
@@ -1326,13 +1395,23 @@ dependencies = [
"ahash 0.8.3",
]
+[[package]]
+name = "hashbrown"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+dependencies = [
+ "ahash 0.8.3",
+ "allocator-api2",
+]
+
[[package]]
name = "hashlink"
-version = "0.8.1"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa"
+checksum = "312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f"
dependencies = [
- "hashbrown 0.12.3",
+ "hashbrown 0.14.0",
]
[[package]]
@@ -1355,18 +1434,9 @@ dependencies = [
[[package]]
name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
[[package]]
name = "hex"
@@ -1389,7 +1459,7 @@ version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
dependencies = [
- "bytes 1.4.0",
+ "bytes",
"fnv",
"itoa",
]
@@ -1400,7 +1470,7 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [
- "bytes 1.4.0",
+ "bytes",
"http",
"pin-project-lite",
]
@@ -1425,11 +1495,11 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
[[package]]
name = "hyper"
-version = "0.14.25"
+version = "0.14.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899"
+checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
dependencies = [
- "bytes 1.4.0",
+ "bytes",
"futures-channel",
"futures-core",
"futures-util",
@@ -1447,48 +1517,82 @@ dependencies = [
"want",
]
-[[package]]
-name = "hyper-tls"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-dependencies = [
- "bytes 1.4.0",
- "hyper",
- "native-tls",
- "tokio",
- "tokio-native-tls",
-]
-
[[package]]
name = "iana-time-zone"
-version = "0.1.53"
+version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
dependencies = [
"android_system_properties",
"core-foundation-sys",
"iana-time-zone-haiku",
"js-sys",
"wasm-bindgen",
- "winapi",
+ "windows",
]
[[package]]
name = "iana-time-zone-haiku"
-version = "0.1.1"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "icondata"
+version = "0.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ffb16cf8cbf74c05967c0c12b492a10ad23d3511abdc77bc43c142004e3d435"
+dependencies = [
+ "icondata_core",
+ "icondata_io",
+ "icondata_macros",
+ "icondata_oc",
+]
+
+[[package]]
+name = "icondata_core"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1640a4c1d5ddd08ab1d9854ffa7a2fa3dc52339492676b6d3031e77ca579f434"
+
+[[package]]
+name = "icondata_io"
+version = "0.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+checksum = "1f82ea2cc4dc981729000c35e6ee141de3caef699b56e892a500f0c2689d76c7"
dependencies = [
- "cxx",
- "cxx-build",
+ "icondata_core",
]
+[[package]]
+name = "icondata_macros"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "764e3608a0f21fa9f43f9d9237c524a9e10316d97d89b413a9c45e5dddb9b162"
+
+[[package]]
+name = "icondata_oc"
+version = "0.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b406fa5eefaa6ec3fc0c97c6a59d0b019116d5f036215ed1a43d39ddce92854"
+dependencies = [
+ "icondata_core",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
[[package]]
name = "idna"
-version = "0.3.0"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
dependencies = [
"unicode-bidi",
"unicode-normalization",
@@ -1496,14 +1600,24 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.9.2"
+version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
dependencies = [
"autocfg",
"hashbrown 0.12.3",
]
+[[package]]
+name = "indexmap"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.0",
+]
+
[[package]]
name = "inlinable_string"
version = "0.1.15"
@@ -1521,35 +1635,32 @@ dependencies = [
[[package]]
name = "interpolator"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1482d8bbb520daf94c82af87f38cd27cdb3073c6fee7c5805fd2fa9d3a36d494"
+checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8"
[[package]]
-name = "io-lifetimes"
-version = "1.0.9"
+name = "inventory"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb"
-dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys 0.45.0",
-]
+checksum = "25b1d6b4b9fb75fc419bdef998b689df5080a32931cb3395b86202046b56a9ea"
[[package]]
-name = "iovec"
-version = "0.1.4"
+name = "io-lifetimes"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
dependencies = [
+ "hermit-abi",
"libc",
+ "windows-sys",
]
[[package]]
name = "ipnet"
-version = "2.7.1"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
[[package]]
name = "itertools"
@@ -1562,15 +1673,15 @@ dependencies = [
[[package]]
name = "itoa"
-version = "1.0.6"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
[[package]]
name = "js-sys"
-version = "0.3.61"
+version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
dependencies = [
"wasm-bindgen",
]
@@ -1603,9 +1714,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "leptos"
-version = "0.2.5"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a186fecd73b710a0405f81e84044c2a301198d0cf0e752a0d99df12c55eea1b"
+checksum = "138e81779863e63854fb45982bbb357de84deb5bd0aeb4a295f891b4bb096422"
dependencies = [
"cfg-if 1.0.0",
"leptos_config",
@@ -1618,32 +1729,53 @@ dependencies = [
"typed-builder",
]
+[[package]]
+name = "leptos-use"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8409590a2f14a16adeb2898ed26e4acea51dd05aff03db1dfb5adb39b7711135"
+dependencies = [
+ "cfg-if 1.0.0",
+ "default-struct-builder",
+ "js-sys",
+ "lazy_static",
+ "leptos",
+ "paste",
+ "serde",
+ "serde_json",
+ "wasm-bindgen",
+ "web-sys",
+]
+
[[package]]
name = "leptos_axum"
-version = "0.2.5"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b8157a5d2cfa3f958d82a0a1fe242feb13923c6c9cac7e9ef7107f248c7968"
+checksum = "577a13d941b8e6f8bf8ed134b11c5e1f2d7f58bfca4ce4b22db3e7b09deac84f"
dependencies = [
"axum",
- "futures 0.3.28",
+ "futures",
"http",
"hyper",
"leptos",
"leptos_integration_utils",
"leptos_meta",
"leptos_router",
+ "once_cell",
"parking_lot 0.12.1",
+ "serde_json",
"tokio",
+ "tokio-util",
+ "tracing",
]
[[package]]
name = "leptos_config"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e83666404adc371296d54dcc5f36ea2a11dd865f6409596e8ecbadc287dae75b"
+checksum = "dedd46acf2b56044276a90d67969a0ceea56c80231636467211099eb081328b8"
dependencies = [
"config",
- "fs",
"regex",
"serde",
"thiserror",
@@ -1652,17 +1784,17 @@ dependencies = [
[[package]]
name = "leptos_dom"
-version = "0.2.5"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e41f33273f55552aa52a776b0f14a72a466c40b23d47d6fe251b05cc6bfe9c3"
+checksum = "30e5e60af9ed1763368fcf49d0d7a0ef34ec36e365534c4eab5d4cf3e8e6adb8"
dependencies = [
"async-recursion",
"cfg-if 1.0.0",
"drain_filter_polyfill",
"educe",
- "futures 0.3.28",
+ "futures",
"html-escape",
- "indexmap",
+ "indexmap 1.9.3",
"itertools",
"js-sys",
"leptos_reactive",
@@ -1671,6 +1803,7 @@ dependencies = [
"paste",
"rustc-hash",
"serde_json",
+ "server_fn",
"smallvec",
"tracing",
"wasm-bindgen",
@@ -1680,40 +1813,52 @@ dependencies = [
[[package]]
name = "leptos_hot_reload"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d85b0935d1439780ddabc4809dd2ae93a1825e9d05b95c9812942b3fc858ff9e"
+checksum = "24375596c72ae14f8adb606ed8b2ee504aa6ebee44babda9ed1c2e94649fe4f4"
dependencies = [
"anyhow",
"camino",
- "indexmap",
+ "indexmap 2.0.0",
"parking_lot 0.12.1",
"proc-macro2",
"quote",
+ "rstml",
"serde",
- "syn 1.0.109",
- "syn-rsx",
+ "syn 2.0.26",
"walkdir",
]
+[[package]]
+name = "leptos_icons"
+version = "0.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c4cbfd152ac2449509618939d69b4ee5ea4e1b8697ca57c447021a9d84632e2"
+dependencies = [
+ "icondata",
+ "leptos",
+ "tracing",
+]
+
[[package]]
name = "leptos_integration_utils"
-version = "0.2.5"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c70d0be0904954bf4e3a38a348845825800f8844c3990fd47463a95e3977e1e4"
+checksum = "4096cfebc02af458d85747b564b48b7d42216a5db60ce19df22f26a9231acc75"
dependencies = [
- "futures 0.3.28",
+ "futures",
"leptos",
"leptos_config",
"leptos_hot_reload",
"leptos_meta",
+ "tracing",
]
[[package]]
name = "leptos_macro"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10d6349980934cc3b58b24d28e5c9a1e18108dd0aadef149d0615e1833d4dcd0"
+checksum = "107cff74abffce014426baff18d14a151d86a894c88ab7a50f000ed86c59a6cd"
dependencies = [
"attribute-derive",
"cfg-if 1.0.0",
@@ -1725,19 +1870,21 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
+ "rstml",
"server_fn_macro",
- "syn 1.0.109",
- "syn-rsx",
+ "syn 2.0.26",
+ "tracing",
"uuid",
]
[[package]]
name = "leptos_meta"
-version = "0.2.5"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "950533f057299e75f48471211dc9b46e0d00c640fd14bda92c34e2705add7b8d"
+checksum = "7ba9e44975fa7aecf630d6b604a6e51b32da6def36a2b502dcfa386152b3eff2"
dependencies = [
"cfg-if 1.0.0",
+ "indexmap 1.9.3",
"leptos",
"tracing",
"wasm-bindgen",
@@ -1746,16 +1893,17 @@ dependencies = [
[[package]]
name = "leptos_reactive"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e702730c3ac1f8a619bf2b139e650b792c96c66f2285a88a1c92c1a53ed262"
+checksum = "8c02851b21bcadee7a2f1182aa3dbbfc4065a71e0fe5a036196bcc95ab3c4d2d"
dependencies = [
- "base64 0.21.0",
+ "base64 0.21.2",
"cfg-if 1.0.0",
- "futures 0.3.28",
- "indexmap",
+ "futures",
+ "indexmap 2.0.0",
"js-sys",
"rustc-hash",
+ "self_cell",
"serde",
"serde-wasm-bindgen",
"serde_json",
@@ -1770,10 +1918,11 @@ dependencies = [
[[package]]
name = "leptos_router"
-version = "0.2.5"
+version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "214fca795824160eac59a0168607f3ff14ab09390a62938ee26e7ef077f27536"
+checksum = "61b5d6f6dcc342137e9f93d46096676e9061aa22ea97708284b17ccb9317a52b"
dependencies = [
+ "cached",
"cfg-if 1.0.0",
"common_macros",
"gloo-net",
@@ -1782,10 +1931,12 @@ dependencies = [
"leptos",
"linear-map",
"log",
+ "lru",
"percent-encoding",
"regex",
"serde",
- "serde_urlencoded",
+ "serde_json",
+ "serde_qs",
"thiserror",
"tracing",
"url",
@@ -1796,22 +1947,24 @@ dependencies = [
[[package]]
name = "leptos_server"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ba9c15e2e49ac38980446d199cd1a672cba9363c71aa9d565605cb77e1ca3e5"
+checksum = "49bb8d9764ae441d31cd9a79cd4cabeb685ef02d821c8139d397452bf1eecdd2"
dependencies = [
+ "inventory",
"lazy_static",
"leptos_reactive",
"serde",
"server_fn",
"thiserror",
+ "tracing",
]
[[package]]
name = "libc"
-version = "0.2.140"
+version = "0.2.147"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
name = "libsqlite3-sys"
@@ -1829,14 +1982,9 @@ name = "linear-map"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee"
-
-[[package]]
-name = "link-cplusplus"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
dependencies = [
- "cc",
+ "serde",
+ "serde_test",
]
[[package]]
@@ -1847,9 +1995,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
[[package]]
name = "linux-raw-sys"
-version = "0.1.4"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]]
name = "lock_api"
@@ -1862,9 +2010,9 @@ dependencies = [
[[package]]
name = "lock_api"
-version = "0.4.9"
+version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
dependencies = [
"autocfg",
"scopeguard",
@@ -1872,21 +2020,29 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.17"
+version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
dependencies = [
- "cfg-if 1.0.0",
"value-bag",
]
+[[package]]
+name = "lru"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"
+dependencies = [
+ "hashbrown 0.13.2",
+]
+
[[package]]
name = "matchers"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
dependencies = [
- "regex-automata",
+ "regex-automata 0.1.10",
]
[[package]]
@@ -1933,33 +2089,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
-name = "mio"
-version = "0.8.6"
+name = "miniz_oxide"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
dependencies = [
- "libc",
- "log",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.45.0",
+ "adler",
]
[[package]]
-name = "native-tls"
-version = "0.2.11"
+name = "mio"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
dependencies = [
- "lazy_static",
"libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys",
]
[[package]]
@@ -2013,65 +2159,29 @@ dependencies = [
]
[[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.17.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
-
-[[package]]
-name = "openssl"
-version = "0.10.47"
+name = "num_cpus"
+version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b277f87dacc05a6b709965d1cbafac4649d6ce9f3ce9ceb88508b5666dfec9"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
- "bitflags",
- "cfg-if 1.0.0",
- "foreign-types",
+ "hermit-abi",
"libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
]
[[package]]
-name = "openssl-macros"
-version = "0.1.0"
+name = "object"
+version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "memchr",
]
[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.82"
+name = "once_cell"
+version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a95792af3c4e0153c3914df2261bedd30a98476f94dc892b67dfe1d89d433a04"
-dependencies = [
- "autocfg",
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "ordered-multimap"
@@ -2085,9 +2195,9 @@ dependencies = [
[[package]]
name = "os_str_bytes"
-version = "6.5.0"
+version = "6.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
[[package]]
name = "ouroboros"
@@ -2126,9 +2236,9 @@ checksum = "56d80efc4b6721e8be2a10a5df21a30fa0b470f1539e53d8b4e6e75faf938b63"
[[package]]
name = "parking"
-version = "2.0.0"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
[[package]]
name = "parking_lot"
@@ -2147,7 +2257,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
dependencies = [
"instant",
- "lock_api 0.4.9",
+ "lock_api 0.4.10",
"parking_lot_core 0.8.6",
]
@@ -2157,8 +2267,8 @@ version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
dependencies = [
- "lock_api 0.4.9",
- "parking_lot_core 0.9.7",
+ "lock_api 0.4.10",
+ "parking_lot_core 0.9.8",
]
[[package]]
@@ -2191,22 +2301,22 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.7"
+version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
dependencies = [
"cfg-if 1.0.0",
"libc",
- "redox_syscall 0.2.16",
+ "redox_syscall 0.3.5",
"smallvec",
- "windows-sys 0.45.0",
+ "windows-targets",
]
[[package]]
name = "paste"
-version = "1.0.12"
+version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
[[package]]
name = "pathdiff"
@@ -2216,9 +2326,9 @@ checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
[[package]]
name = "pear"
-version = "0.2.3"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e44241c5e4c868e3eaa78b7c1848cadd6344ed4f54d029832d32b415a58702"
+checksum = "61a386cd715229d399604b50d1361683fe687066f42d56f54be995bc6868f71c"
dependencies = [
"inlinable_string",
"pear_codegen",
@@ -2227,27 +2337,27 @@ dependencies = [
[[package]]
name = "pear_codegen"
-version = "0.2.3"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82a5ca643c2303ecb740d506539deba189e16f2754040a42901cd8105d0282d0"
+checksum = "da9f0f13dac8069c139e8300a6510e3f4143ecf5259c60b116a9b271b4ca0d54"
dependencies = [
"proc-macro2",
"proc-macro2-diagnostics",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pest"
-version = "2.5.6"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7"
+checksum = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9"
dependencies = [
"thiserror",
"ucd-trie",
@@ -2255,9 +2365,9 @@ dependencies = [
[[package]]
name = "pest_derive"
-version = "2.5.6"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7"
+checksum = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b"
dependencies = [
"pest",
"pest_generator",
@@ -2265,22 +2375,22 @@ dependencies = [
[[package]]
name = "pest_generator"
-version = "2.5.6"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b"
+checksum = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190"
dependencies = [
"pest",
"pest_meta",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "pest_meta"
-version = "2.5.6"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80"
+checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0"
dependencies = [
"once_cell",
"pest",
@@ -2289,29 +2399,29 @@ dependencies = [
[[package]]
name = "pin-project"
-version = "1.0.12"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
-version = "1.0.12"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
[[package]]
name = "pin-utils"
@@ -2321,24 +2431,24 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "pkg-config"
-version = "0.3.26"
+version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
[[package]]
name = "polling"
-version = "2.6.0"
+version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
dependencies = [
"autocfg",
- "bitflags",
+ "bitflags 1.3.2",
"cfg-if 1.0.0",
"concurrent-queue",
"libc",
"log",
"pin-project-lite",
- "windows-sys 0.45.0",
+ "windows-sys",
]
[[package]]
@@ -2349,12 +2459,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "prettyplease"
-version = "0.1.25"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
+checksum = "92139198957b410250d43fad93e630d956499a625c527eda65175c8680f83387"
dependencies = [
"proc-macro2",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
@@ -2363,7 +2473,7 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
dependencies = [
- "toml",
+ "toml 0.5.11",
]
[[package]]
@@ -2392,32 +2502,33 @@ dependencies = [
[[package]]
name = "proc-macro-utils"
-version = "0.5.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d8be3a44b1f16d839703969bfffd7c866faf24591d2d614aa005280fd9108a"
+checksum = "3f59e109e2f795a5070e69578c4dc101068139f74616778025ae1011d4cd41a8"
dependencies = [
"proc-macro2",
+ "quote",
"smallvec",
]
[[package]]
name = "proc-macro2"
-version = "1.0.52"
+version = "1.0.66"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
dependencies = [
"unicode-ident",
]
[[package]]
name = "proc-macro2-diagnostics"
-version = "0.9.1"
+version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
"version_check",
"yansi",
]
@@ -2444,26 +2555,31 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.26"
+version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
dependencies = [
"proc-macro2",
]
[[package]]
name = "quote-use"
-version = "0.6.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23cb0082bf14d4943f5052d4caad1f80374eb7d883433458819a7846e2b465d5"
+checksum = "58e9a38ef862d7fec635661503289062bc5b3035e61859a8de3d3f81823accd2"
dependencies = [
"derive-where",
- "proc-macro-error",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
[[package]]
name = "rand"
version = "0.8.5"
@@ -2506,18 +2622,28 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
]
[[package]]
name = "regex"
-version = "1.7.1"
+version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
dependencies = [
"aho-corasick",
"memchr",
- "regex-syntax",
+ "regex-automata 0.3.3",
+ "regex-syntax 0.7.4",
]
[[package]]
@@ -2526,14 +2652,31 @@ version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
dependencies = [
- "regex-syntax",
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.7.4",
]
[[package]]
name = "regex-syntax"
-version = "0.6.28"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
[[package]]
name = "rend"
@@ -2546,12 +2689,12 @@ dependencies = [
[[package]]
name = "reqwest"
-version = "0.11.15"
+version = "0.11.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ba30cc2c0cd02af1222ed216ba659cdb2f879dfe3181852fe7c50b1d0005949"
+checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
dependencies = [
- "base64 0.21.0",
- "bytes 1.4.0",
+ "base64 0.21.2",
+ "bytes",
"encoding_rs",
"futures-core",
"futures-util",
@@ -2559,12 +2702,10 @@ dependencies = [
"http",
"http-body",
"hyper",
- "hyper-tls",
"ipnet",
"js-sys",
"log",
"mime",
- "native-tls",
"once_cell",
"percent-encoding",
"pin-project-lite",
@@ -2572,7 +2713,6 @@ dependencies = [
"serde_json",
"serde_urlencoded",
"tokio",
- "tokio-native-tls",
"tower-service",
"url",
"wasm-bindgen",
@@ -2598,23 +2738,26 @@ dependencies = [
[[package]]
name = "rkyv"
-version = "0.7.40"
+version = "0.7.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c30f1d45d9aa61cbc8cd1eb87705470892289bb2d01943e7803b873a57404dc3"
+checksum = "0200c8230b013893c0b2d6213d6ec64ed2b9be2e0e016682b7224ff82cff5c58"
dependencies = [
+ "bitvec",
"bytecheck",
"hashbrown 0.12.3",
"ptr_meta",
"rend",
"rkyv_derive",
"seahash",
+ "tinyvec",
+ "uuid",
]
[[package]]
name = "rkyv_derive"
-version = "0.7.40"
+version = "0.7.42"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff26ed6c7c4dfc2aa9480b86a60e3c7233543a270a680e10758a507c5a4ce476"
+checksum = "b2e06b915b5c230a17d7a736d1e2e63ee753c256a8614ef3f5147b13a4f5541d"
dependencies = [
"proc-macro2",
"quote",
@@ -2628,10 +2771,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
dependencies = [
"base64 0.13.1",
- "bitflags",
+ "bitflags 1.3.2",
"serde",
]
+[[package]]
+name = "rstml"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7afcc74cab5d3118523b1f75900e1fcbeae7cac6c6cb800430621bf58add0bd"
+dependencies = [
+ "proc-macro2",
+ "proc-macro2-diagnostics",
+ "quote",
+ "syn 2.0.26",
+ "syn_derive",
+ "thiserror",
+]
+
[[package]]
name = "rust-ini"
version = "0.18.0"
@@ -2644,15 +2801,15 @@ dependencies = [
[[package]]
name = "rust_decimal"
-version = "1.29.0"
+version = "1.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b1b21b8760b0ef8ae5b43d40913ff711a2053cb7ff892a34facff7a6365375a"
+checksum = "d0446843641c69436765a35a5a77088e28c2e6a12da93e84aa3ab1cd4aa5a042"
dependencies = [
"arrayvec",
"borsh",
"bytecheck",
"byteorder",
- "bytes 1.4.0",
+ "bytes",
"num-traits",
"rand",
"rkyv",
@@ -2660,6 +2817,12 @@ dependencies = [
"serde_json",
]
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
[[package]]
name = "rustc-hash"
version = "1.1.0"
@@ -2677,16 +2840,16 @@ dependencies = [
[[package]]
name = "rustix"
-version = "0.36.11"
+version = "0.37.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
"errno",
"io-lifetimes",
"libc",
"linux-raw-sys",
- "windows-sys 0.45.0",
+ "windows-sys",
]
[[package]]
@@ -2703,24 +2866,24 @@ dependencies = [
[[package]]
name = "rustls-pemfile"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
dependencies = [
- "base64 0.21.0",
+ "base64 0.21.2",
]
[[package]]
name = "rustversion"
-version = "1.0.12"
+version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
[[package]]
name = "ryu"
-version = "1.0.13"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
[[package]]
name = "same-file"
@@ -2731,27 +2894,12 @@ dependencies = [
"winapi-util",
]
-[[package]]
-name = "schannel"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
-dependencies = [
- "windows-sys 0.42.0",
-]
-
[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-[[package]]
-name = "scratch"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
-
[[package]]
name = "sct"
version = "0.7.0"
@@ -2764,15 +2912,15 @@ dependencies = [
[[package]]
name = "sea-orm"
-version = "0.11.2"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5d875e2fcd965320e50066028ac0b4877ff07edbb734a6ddfeff48a87dbab38"
+checksum = "fade86e8d41fd1a4721f84cb834f4ca2783f973cc30e6212b7fafc134f169214"
dependencies = [
"async-stream",
"async-trait",
"bigdecimal",
"chrono",
- "futures 0.3.28",
+ "futures",
"log",
"ouroboros",
"rust_decimal",
@@ -2784,7 +2932,7 @@ dependencies = [
"serde_json",
"sqlx",
"thiserror",
- "time 0.3.20",
+ "time 0.3.23",
"tracing",
"url",
"uuid",
@@ -2792,9 +2940,9 @@ dependencies = [
[[package]]
name = "sea-orm-cli"
-version = "0.11.2"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ead9f7dac975f10447f17d08edbb2046daa087b5e0b50bbf8211f303459078c"
+checksum = "efbf34a2caf70c2e3be9bb1e674e9540f6dfd7c8f40f6f05daf3b9740e476005"
dependencies = [
"chrono",
"clap",
@@ -2808,9 +2956,9 @@ dependencies = [
[[package]]
name = "sea-orm-macros"
-version = "0.11.2"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9b593e9c0cdbb18cafd4da7b92e67a9c2d9892934f3a2d8bbac73d5ba4a98a1"
+checksum = "28936f26d62234ff0be16f80115dbdeb3237fe9c25cf18fbcd1e3b3592360f20"
dependencies = [
"bae",
"heck 0.3.3",
@@ -2821,14 +2969,14 @@ dependencies = [
[[package]]
name = "sea-orm-migration"
-version = "0.11.2"
+version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edba7a6123c1035b0530deb713820688f0234431ab6c1893b14dce493ade76af"
+checksum = "278d3adfd0832b6ffc17d3cfbc574d3695a5c1b38814e0bc8ac238d33f3d87cf"
dependencies = [
"async-trait",
"clap",
"dotenvy",
- "futures 0.3.28",
+ "futures",
"sea-orm",
"sea-orm-cli",
"sea-schema",
@@ -2838,24 +2986,24 @@ dependencies = [
[[package]]
name = "sea-query"
-version = "0.28.3"
+version = "0.28.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fbe015dbdaa7d8829d71c1e14fb6289e928ac256b93dfda543c85cd89d6f03"
+checksum = "bbab99b8cd878ab7786157b7eb8df96333a6807cc6e45e8888c85b51534b401a"
dependencies = [
"bigdecimal",
"chrono",
"rust_decimal",
"sea-query-derive",
"serde_json",
- "time 0.3.20",
+ "time 0.3.23",
"uuid",
]
[[package]]
name = "sea-query-binder"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03548c63aec07afd4fd190923e0160d2f2fc92def27470b54154cf232da6203b"
+checksum = "4cea85029985b40dfbf18318d85fe985c04db7c1b4e5e8e0a0a0cdff5f1e30f9"
dependencies = [
"bigdecimal",
"chrono",
@@ -2863,7 +3011,7 @@ dependencies = [
"sea-query",
"serde_json",
"sqlx",
- "time 0.3.20",
+ "time 0.3.23",
"uuid",
]
@@ -2886,7 +3034,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eeb2940bb5a10bc6cd05b450ce6cd3993e27fddd7eface2becb97fc5af3a040e"
dependencies = [
- "futures 0.3.28",
+ "futures",
"sea-query",
"sea-schema-derive",
]
@@ -2932,39 +3080,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
[[package]]
-name = "security-framework"
-version = "2.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.8.0"
+name = "self_cell"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
+checksum = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6"
[[package]]
name = "semver"
-version = "1.0.17"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
[[package]]
name = "serde"
-version = "1.0.160"
+version = "1.0.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c"
+checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"
dependencies = [
"serde_derive",
]
@@ -2982,20 +3113,20 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.160"
+version = "1.0.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df"
+checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
name = "serde_json"
-version = "1.0.96"
+version = "1.0.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c"
dependencies = [
"itoa",
"ryu",
@@ -3004,9 +3135,39 @@ dependencies = [
[[package]]
name = "serde_path_to_error"
-version = "0.1.10"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+dependencies = [
+ "itoa",
+ "serde",
+]
+
+[[package]]
+name = "serde_qs"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c"
+dependencies = [
+ "percent-encoding",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_test"
+version = "1.0.171"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db0969fff533976baadd92e08b1d102c5a3d8a8049eadfd69d4d1e3c5b2ed189"
+checksum = "b6480a2f4e1449ec9757ea143362ad5cea79bc7f1cb7711c06e1c5d03b6b5a3a"
dependencies = [
"serde",
]
@@ -3025,11 +3186,11 @@ dependencies = [
[[package]]
name = "serde_yaml"
-version = "0.9.19"
+version = "0.9.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f82e6c8c047aa50a7328632d067bcae6ef38772a79e28daf32f735e0e4f3dd10"
+checksum = "da6075b41c7e3b079e5f246eb6094a44850d3a4c25a67c581c80796c80134012"
dependencies = [
- "indexmap",
+ "indexmap 2.0.0",
"itoa",
"ryu",
"serde",
@@ -3059,57 +3220,59 @@ dependencies = [
[[package]]
name = "server_fn"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f7e74a67ed331d9f30befd2a0c187bdc705a7063a287f337ae0420522c4425b"
+checksum = "66e7548322b4d4f1ff602883a5f47b3291d69523ef25a6521c334e2f723825f0"
dependencies = [
"ciborium",
"const_format",
"gloo-net",
+ "inventory",
"js-sys",
+ "lazy_static",
"once_cell",
"proc-macro2",
"quote",
"reqwest",
"serde",
"serde_json",
- "serde_urlencoded",
+ "serde_qs",
"server_fn_macro_default",
- "syn 1.0.109",
+ "syn 2.0.26",
"thiserror",
"xxhash-rust",
]
[[package]]
name = "server_fn_macro"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca31494981546bccc81a6b1972d07929a77fed59c8824a1a70d10fe8ee00c12"
+checksum = "534134dd0b3c4f12f4fa967aa9961323d8d3195f35450f56c7bfda991a4bd7ba"
dependencies = [
"const_format",
"proc-macro-error",
"proc-macro2",
"quote",
"serde",
- "syn 1.0.109",
+ "syn 2.0.26",
"xxhash-rust",
]
[[package]]
name = "server_fn_macro_default"
-version = "0.2.5"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aab30d5671e7758ea36e88f0860fbdd7d03f8ae1840c984b6d5b14cbe77c655d"
+checksum = "76fa0b34a9f1271b98c5b1e8eae8b498f63c1beeca7d7596ad527896f946d011"
dependencies = [
"server_fn_macro",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "sha2"
-version = "0.10.6"
+version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
dependencies = [
"cfg-if 1.0.0",
"cpufeatures",
@@ -3161,9 +3324,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.10.0"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
[[package]]
name = "socket2"
@@ -3187,7 +3350,7 @@ version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
- "lock_api 0.4.9",
+ "lock_api 0.4.10",
]
[[package]]
@@ -3203,9 +3366,9 @@ dependencies = [
[[package]]
name = "sqlx"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9249290c05928352f71c077cc44a464d880c63f26f7534728cca008e135c0428"
+checksum = "f8de3b03a925878ed54a954f621e64bf55a3c1bd29652d0d1a17830405350188"
dependencies = [
"sqlx-core",
"sqlx-macros",
@@ -3213,16 +3376,16 @@ dependencies = [
[[package]]
name = "sqlx-core"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105"
+checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029"
dependencies = [
"ahash 0.7.6",
"atoi",
"bigdecimal",
- "bitflags",
+ "bitflags 1.3.2",
"byteorder",
- "bytes 1.4.0",
+ "bytes",
"chrono",
"crossbeam-queue",
"dotenvy",
@@ -3236,7 +3399,7 @@ dependencies = [
"futures-util",
"hashlink",
"hex",
- "indexmap",
+ "indexmap 1.9.3",
"itoa",
"libc",
"libsqlite3-sys",
@@ -3256,7 +3419,7 @@ dependencies = [
"sqlx-rt",
"stringprep",
"thiserror",
- "time 0.3.20",
+ "time 0.3.23",
"tokio-stream",
"url",
"uuid",
@@ -3265,9 +3428,9 @@ dependencies = [
[[package]]
name = "sqlx-macros"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9"
+checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9"
dependencies = [
"dotenvy",
"either",
@@ -3284,9 +3447,9 @@ dependencies = [
[[package]]
name = "sqlx-rt"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396"
+checksum = "804d3f245f894e61b1e6263c84b23ca675d96753b5abfd5cc8597d86806e8024"
dependencies = [
"once_cell",
"tokio",
@@ -3295,14 +3458,20 @@ dependencies = [
[[package]]
name = "stringprep"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1"
+checksum = "db3737bde7edce97102e0e2b15365bf7a20bfdb5f60f4f9e8d7004258a51a8da"
dependencies = [
"unicode-bidi",
"unicode-normalization",
]
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
[[package]]
name = "syn"
version = "1.0.109"
@@ -3316,9 +3485,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.12"
+version = "2.0.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927"
+checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
dependencies = [
"proc-macro2",
"quote",
@@ -3326,15 +3495,15 @@ dependencies = [
]
[[package]]
-name = "syn-rsx"
-version = "0.9.0"
+name = "syn_derive"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b0f81c7d3e9bbe4b3005599a3e0b0bbb27bd3514f2b0567b478cc548c3736"
+checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e"
dependencies = [
+ "proc-macro-error",
"proc-macro2",
"quote",
- "syn 1.0.109",
- "thiserror",
+ "syn 2.0.26",
]
[[package]]
@@ -3344,26 +3513,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
-name = "tempfile"
-version = "3.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95"
-dependencies = [
- "cfg-if 1.0.0",
- "fastrand",
- "redox_syscall 0.2.16",
- "rustix",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
+name = "tap"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-dependencies = [
- "winapi-util",
-]
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "textwrap"
@@ -3373,22 +3526,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
[[package]]
name = "thiserror"
-version = "1.0.40"
+version = "1.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
+ "syn 2.0.26",
]
[[package]]
@@ -3414,9 +3567,9 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.20"
+version = "0.3.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446"
dependencies = [
"itoa",
"serde",
@@ -3426,15 +3579,15 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
[[package]]
name = "time-macros"
-version = "0.2.8"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4"
dependencies = [
"time-core",
]
@@ -3456,12 +3609,13 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.27.0"
+version = "1.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001"
+checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
dependencies = [
"autocfg",
- "bytes 1.4.0",
+ "backtrace",
+ "bytes",
"libc",
"mio",
"num_cpus",
@@ -3470,28 +3624,18 @@ dependencies = [
"signal-hook-registry",
"socket2",
"tokio-macros",
- "windows-sys 0.45.0",
+ "windows-sys",
]
[[package]]
name = "tokio-macros"
-version = "2.0.0"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce"
+checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.12",
-]
-
-[[package]]
-name = "tokio-native-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
-dependencies = [
- "native-tls",
- "tokio",
+ "syn 2.0.26",
]
[[package]]
@@ -3507,9 +3651,9 @@ dependencies = [
[[package]]
name = "tokio-stream"
-version = "0.1.12"
+version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
dependencies = [
"futures-core",
"pin-project-lite",
@@ -3518,13 +3662,15 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.7"
+version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2"
+checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
dependencies = [
- "bytes 1.4.0",
+ "bytes",
"futures-core",
"futures-sink",
+ "futures-util",
+ "hashbrown 0.12.3",
"pin-project-lite",
"tokio",
"tracing",
@@ -3539,6 +3685,40 @@ dependencies = [
"serde",
]
+[[package]]
+name = "toml"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+dependencies = [
+ "indexmap 2.0.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
[[package]]
name = "tower"
version = "0.4.13"
@@ -3557,12 +3737,12 @@ dependencies = [
[[package]]
name = "tower-http"
-version = "0.4.0"
+version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658"
+checksum = "a8bd22a874a2d0b70452d5597b12c537331d49060824a95f49f108994f94aa4c"
dependencies = [
- "bitflags",
- "bytes 1.4.0",
+ "bitflags 2.3.3",
+ "bytes",
"futures-core",
"futures-util",
"http",
@@ -3608,20 +3788,20 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.23"
+version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
+checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
]
[[package]]
name = "tracing-core"
-version = "0.1.30"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
dependencies = [
"once_cell",
"valuable",
@@ -3650,9 +3830,9 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.3.16"
+version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
+checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
dependencies = [
"matchers",
"nu-ansi-term",
@@ -3663,7 +3843,7 @@ dependencies = [
"sharded-slab",
"smallvec",
"thread_local",
- "time 0.3.20",
+ "time 0.3.23",
"tracing",
"tracing-core",
"tracing-log",
@@ -3706,15 +3886,15 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[package]]
name = "ucd-trie"
-version = "0.1.5"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
[[package]]
name = "uncased"
-version = "0.9.7"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622"
+checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68"
dependencies = [
"version_check",
]
@@ -3736,9 +3916,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]]
name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
[[package]]
name = "unicode-normalization"
@@ -3755,12 +3935,6 @@ version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
[[package]]
name = "unicode-xid"
version = "0.2.4"
@@ -3775,9 +3949,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
[[package]]
name = "unsafe-libyaml"
-version = "0.2.7"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad2024452afd3874bf539695e04af6732ba06517424dbf958fdb16a01f3bef6c"
+checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
[[package]]
name = "untrusted"
@@ -3787,9 +3961,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
[[package]]
name = "url"
-version = "2.3.1"
+version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
dependencies = [
"form_urlencoded",
"idna",
@@ -3804,9 +3978,9 @@ checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
[[package]]
name = "uuid"
-version = "1.3.1"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b55a3fef2a1e3b3a00ce878640918820d3c51081576ac657d23af9fc7928fdb"
+checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be"
dependencies = [
"atomic",
"getrandom",
@@ -3821,13 +3995,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "value-bag"
-version = "1.0.0-alpha.9"
+version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
-dependencies = [
- "ctor",
- "version_check",
-]
+checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3"
[[package]]
name = "vcpkg"
@@ -3859,11 +4029,10 @@ dependencies = [
[[package]]
name = "want"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
dependencies = [
- "log",
"try-lock",
]
@@ -3881,9 +4050,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
dependencies = [
"cfg-if 1.0.0",
"wasm-bindgen-macro",
@@ -3891,24 +4060,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.34"
+version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -3918,9 +4087,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -3928,22 +4097,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
dependencies = [
"proc-macro2",
"quote",
- "syn 1.0.109",
+ "syn 2.0.26",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
[[package]]
name = "wasm-lib"
@@ -3960,9 +4129,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.61"
+version = "0.3.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -4019,34 +4188,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
-name = "windows-sys"
-version = "0.42.0"
+name = "windows"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows-targets",
]
[[package]]
name = "windows-sys"
-version = "0.45.0"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
-version = "0.42.2"
+version = "0.48.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
@@ -4059,45 +4222,54 @@ dependencies = [
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
[[package]]
name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
[[package]]
name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+
+[[package]]
+name = "winnow"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
+dependencies = [
+ "memchr",
+]
[[package]]
name = "winreg"
@@ -4108,6 +4280,15 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
[[package]]
name = "xxhash-rust"
version = "0.8.6"
@@ -4125,6 +4306,6 @@ dependencies = [
[[package]]
name = "yansi"
-version = "0.5.1"
+version = "1.0.0-rc"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+checksum = "9ee746ad3851dd3bc40e4a028ab3b00b99278d929e48957bcb2d111874a7e43e"
diff --git a/Cargo.toml b/Cargo.toml
index 83bb684..23d57da 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -15,13 +15,24 @@ opt-level = 3
[workspace]
members = ["app", "entity", "migration", "server", "wasm-lib"]
+resolver = "2"
[workspace.dependencies]
-leptos = { version = "=0.2.5", default-features = false, features = ["serde"] }
-leptos_dom = { version = "=0.2.5", default-features = false }
-leptos_meta = { version = "=0.2.5", default-features = false }
-leptos_router = { version = "=0.2.5", default-features = false }
-leptos_axum = { version = "=0.2.5" }
+leptos = { version = "=0.4.2", default-features = false, features = ["serde", "nightly"] }
+leptos_dom = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_hot_reload = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_macro = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_meta = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_reactive = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_router = { version = "=0.4.2", default-features = false }
+leptos_server = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+server_fn = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+server_fn_macro = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+server_fn_macro_default = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_axum = { version = "=0.4.2" }
+leptos_config = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+leptos_integration_utils = { version = "=0.4.2", default-features = false, features = ["nightly"] }
+wasm-bindgen = "=0.2.87"
[[workspace.metadata.leptos]]
name = "todo-vault"
diff --git a/Dockerfile b/Dockerfile
index a68bb27..311787f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -31,15 +31,16 @@ RUN git clone https://github.com/rui314/mold.git -b v1.11.0 --depth 1 && \
# install leptos build helper cli
-RUN cargo install --git https://github.com/akesson/cargo-leptos cargo-leptos --force
+RUN cargo install cargo-leptos@0.1.11 --force
+
+# Build
+WORKDIR /build
ADD ./package.json ./package.json
ADD ./package-lock.json ./package-lock.json
RUN npm install
-# Build
-WORKDIR /build
# install rust toolchain
COPY rust-toolchain.toml .
diff --git a/app/Cargo.toml b/app/Cargo.toml
index 5c435c6..215688f 100644
--- a/app/Cargo.toml
+++ b/app/Cargo.toml
@@ -11,53 +11,29 @@ leptos_dom.workspace = true
leptos_meta.workspace = true
leptos_router.workspace = true
leptos_axum = { workspace = true, optional = true }
+leptos_icons = { version = "0.0.15", features = [ "IoSave", "OcFileAddedSm", "OcPencilLg", "OcTrashLg", "macros" ] }
+leptos-use = { version = "0.5.0", features = ["storage"]}
+wasm-bindgen = { workspace = true }
entity = { path = "../entity", default-features = false }
broadcaster = { version = "=1.0.0", optional = true }
cfg-if = "=1.0.0"
http = "=0.2.9"
-thiserror = "=1.0.40"
-serde = { version = "=1.0.160", features = [
- "derive",
- "serde_derive",
- "alloc",
- "rc",
-] }
+thiserror = "=1.0.43"
+serde = { version = "=1.0.171", features = ["derive", "serde_derive", "alloc", "rc"] }
lazy_static = "=1.4.0"
-getrandom = { version = "=0.2.9", features = ["js", "std"] }
+getrandom = { version = "=0.2.10", features = ["js", "std"] }
tracing = { version = "=0.1.37", features = ["async-await", "log"] }
-base64 = "=0.21.0"
+base64 = "=0.21.2"
convert_case = "=0.6.0"
rand = "=0.8.5"
-wasm-bindgen = "=0.2.84"
-web-sys = { version = "=0.3.61", features = [
- "console",
- "Document",
- "DomRect",
- "Element",
- "Event",
- "EventTarget",
- "Storage",
- "Window",
-] }
-js-sys = "=0.3.61"
-serde_json = { version = "=1.0.96", features = ["alloc"] }
+web-sys = { version = "=0.3.64", features = ["console", "Document", "DomRect", "Element", "Event", "EventTarget", "Storage", "Window"] }
+js-sys = "=0.3.64"
+serde_json = { version = "=1.0.100", features = ["alloc"] }
futures = "=0.3.28"
[features]
default = ["ssr"]
-hydrate = [
- "leptos/hydrate",
- "leptos_meta/hydrate",
- "leptos_router/hydrate",
- "entity/client-side",
-]
-ssr = [
- "entity/server-side",
- "leptos/ssr",
- "leptos_meta/ssr",
- "leptos_router/ssr",
- "dep:leptos_axum",
- "dep:broadcaster",
-]
+hydrate = ["leptos/hydrate", "leptos_meta/hydrate", "leptos_router/hydrate", "entity/client-side"]
+ssr = ["entity/server-side", "leptos/ssr", "leptos_meta/ssr", "leptos_router/ssr", "leptos-use/ssr", "dep:leptos_axum", "dep:broadcaster"]
diff --git a/app/src/components/button.rs b/app/src/components/button.rs
deleted file mode 100644
index d9ae77a..0000000
--- a/app/src/components/button.rs
+++ /dev/null
@@ -1,23 +0,0 @@
-use leptos::*;
-use leptos_dom::*;
-use leptos_router::*;
-
-// buttons styled with tailwind css
-#[component]
-pub fn Button(
- cx: Scope,
- children: Children,
- #[prop(optional, into)] b_type: String,
- #[prop(optional, into)] class: String,
-) -> impl IntoView {
- view! { cx,
-
- {children(cx)}
-
- }
-}
diff --git a/app/src/components/dropdown_button.rs b/app/src/components/dropdown_button.rs
deleted file mode 100644
index af8eb36..0000000
--- a/app/src/components/dropdown_button.rs
+++ /dev/null
@@ -1,153 +0,0 @@
-use leptos::*;
-use leptos_dom::*;
-use leptos_router::*;
-
-#[component]
-fn DropdownButton(cx: Scope) -> impl IntoView {
- let (dropdown_open, set_dropdown_open) = create_signal(cx, false);
- let toggle_modal = move || {
- set_dropdown_open(!dropdown_open());
- };
-
- view! { cx,
-
-
-
-
-
- "Last 30 days"
-
-
-
-
-
-
- }
-}
diff --git a/app/src/components/form_drawer.rs b/app/src/components/form_drawer.rs
deleted file mode 100644
index 3495eb0..0000000
--- a/app/src/components/form_drawer.rs
+++ /dev/null
@@ -1,251 +0,0 @@
-use std::{
- collections::hash_map::DefaultHasher,
- hash::{Hash, Hasher},
- thread,
- time,
-};
-
-use base64::Engine;
-use convert_case::{Case, Casing};
-use entity::{chrono, uuid};
-use leptos::{ev::MouseEvent, *};
-use leptos_dom::*;
-use leptos_router::*;
-use rand::Rng;
-
-use super::*;
-
-/// ### FormFieldInputType
-///
-/// Enumeration representing types of form field inputs.
-///
-/// * `Text`
-/// * `TextArea`
-/// * `Date`
-/// * `Hidden`
-///
-#[derive(Clone, Copy, Hash)]
-pub enum FormFieldInputType {
- Text,
- TextArea,
- Date,
- Hidden,
- Password,
-}
-
-/// ### FormField
-///
-/// Structure representing an individual form field.
-///
-/// * `id: String` - Unique identifier for the form field.
-/// * `label: Option` - Optional label for the form field. If not provided, no
-/// label is shown.
-/// * `input_type: FormFieldInputType` - Type of input for the form field, defined
-/// using `FormFieldInputType` enum.
-/// * `placeholder: String` - Placeholder text for the form field.
-/// * `value: String` - The pre-populated value for the form field.
-/// * `required: bool` - Determines if the form field is required to submit the form
-/// or not.
-#[derive(Clone, Hash)]
-pub struct FormField {
- pub id: String,
- pub label: Option,
- pub input_type: FormFieldInputType,
- pub placeholder: String,
- pub value: String,
- pub required: bool,
-}
-
-impl IntoView for FormField {
- fn into_view(self, cx: Scope) -> View {
- let label = match self.label {
- Some(label) => view! { cx,
-
- {label}
-
- }.into_view(cx),
- None => view! { cx, <>> }.into_view(cx)
- };
-
- match self.input_type {
- FormFieldInputType::Text => {
- view! { cx,
-
- {label}
-
-
- }.into_view(cx)
- }
- FormFieldInputType::TextArea => {
- view! { cx,
-
- {label}
-
-
- }.into_view(cx)
- }
- FormFieldInputType::Date => {
- view! { cx,
-
- {label}
-
-
- }.into_view(cx)
- }
- FormFieldInputType::Hidden => {
- view! { cx,
-
- }.into_view(cx)
- }
- FormFieldInputType::Password => {
- view! { cx,
-
- {label}
-
-
- }.into_view(cx)
- }
- }
- }
-}
-
-/// # FormDrawerButton Component
-///
-/// `FormDrawerButton` is a Leptos component for creating a collapsible form drawer
-/// that appears when clicking a button. The form drawer is customizable with the
-/// provided fields, a form action, icon, and title.
-///
-#[component]
-pub fn FormDrawerButton(
- cx: Scope,
- icon: Svg,
- title: String,
- action: MultiAction>,
- fields: Vec,
- #[prop(optional, into)] class: String,
-) -> impl IntoView
-where
- S: Clone + ServerFn + leptos::Serializable,
- O: Clone + Serializable + 'static,
-{
- let (drawer_open, set_drawer_open) = create_signal(cx, false);
- let sr_title = format!("Open {} drawer", title);
-
- let drawer = move || {
- let title = title.clone();
- let fields = fields.clone();
- match drawer_open() {
- true => {
- view! { cx,
-
-
- {icon}
- {title.clone()}
-
-
-
-
-
- "Close menu"
-
-
-
- {fields}
-
- {icon}
- {title.clone()}
-
-
-
-
- }.into_view(cx)
- }
- false => {
- view! { cx,
}.into_view(cx)
- }
- }
- };
-
- view! { cx,
-
-
-
- {icon}
- {sr_title}
-
- {drawer}
-
- }
-}
diff --git a/app/src/components/main_page.rs b/app/src/components/main_page.rs
deleted file mode 100644
index 7c06454..0000000
--- a/app/src/components/main_page.rs
+++ /dev/null
@@ -1,172 +0,0 @@
-use std::{
- path::Path,
- sync::{Arc, OnceLock},
-};
-
-use leptos::*;
-use leptos_dom::*;
-use leptos_router::*;
-
-use super::*;
-use crate::{components::*, functions::*};
-
-#[derive(Clone, Debug)]
-struct NavItem {
- path: String,
- name: String,
- active: bool,
-}
-
-impl NavItem {
- fn new(path: String, name: String, active: bool) -> Self {
- Self {
- path,
- name,
- active,
- }
- }
-
- fn href(&self) -> String {
- if !self.path.starts_with('/') {
- let mut href = self.path.clone();
- href.insert(0, '/');
- href
- } else {
- self.path.clone()
- }
- }
-}
-
-impl IntoView for NavItem {
- fn into_view(self, cx: Scope) -> View {
- if self.active {
- view! { cx,
-
- {self.name}
-
- }.into_view(cx)
- } else {
- view! { cx,
-
- {self.name}
-
- }.into_view(cx)
- }.into_view(cx)
- }
-}
-
-#[component]
-fn Navbar(cx: Scope) -> impl IntoView {
- let route_cx = use_route(cx);
-
- let items = move || {
- vec![
- NavItem {
- path: "".to_string(),
- name: "Home".to_string(),
- active: route_cx.path() == "",
- },
- NavItem {
- path: "/todo".to_string(),
- name: "My To-Dos".to_string(),
- active: route_cx.path().starts_with("/todo"),
- },
- ]
- };
- let (menu_open, set_menu_open) = create_signal(cx, false);
- let toggle_menu = move || set_menu_open.update(|curr| *curr = !*curr);
-
- view! { cx,
-
-
-
- }
-}
-
-#[component]
-fn Footer(cx: Scope) -> impl IntoView {
- view! { cx,
-
- }
-}
-
-#[component]
-fn MainCard(cx: Scope, children: Children) -> impl IntoView {
- view! { cx,
-
- }
-}
-
-#[component]
-pub fn MainPage(cx: Scope, children: Children) -> impl IntoView {
- view! { cx,
-
-
-
- {children(cx)}
-
-
-
- }
-}
diff --git a/app/src/components/mod.rs b/app/src/components/mod.rs
index 0e3cfbe..0e21251 100644
--- a/app/src/components/mod.rs
+++ b/app/src/components/mod.rs
@@ -1,13 +1,12 @@
-mod button;
-mod dropdown_button;
-mod form_drawer;
-mod main_page;
-mod svg;
-mod table;
+use leptos::*;
+use leptos_dom::*;
+use leptos_router::*;
-pub use button::*;
-pub use dropdown_button::*;
-pub use form_drawer::*;
-pub use main_page::*;
-pub use svg::*;
-pub use table::*;
+#[component]
+pub fn Typography(
+ cx: Scope,
+ children: Children,
+ #[prop(optional, into)] class: String,
+) -> impl IntoView {
+ view! { cx, {children(cx)}
}
+}
diff --git a/app/src/components/svg.rs b/app/src/components/svg.rs
deleted file mode 100644
index cc66b27..0000000
--- a/app/src/components/svg.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-use leptos::*;
-
-// asd
-// asd
-// asd
-#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
-pub enum Svg {
- AlertCircle,
- CheckmarkChecked,
- CheckmarkUnchecked,
- Edit2,
- FileEdit,
- FilePlus,
- Logo,
- Hamburger,
- Save,
- Search,
- Trash2,
-}
-
-impl IntoView for Svg {
- fn into_view(self, cx: Scope) -> View {
- view! { cx,
- include_str!("../../../style/inlined/alert-circle.svg"),
- Svg::CheckmarkChecked => include_str!("../../../style/inlined/check-circle.svg"),
- Svg::CheckmarkUnchecked => include_str!("../../../style/inlined/circle.svg"),
- Svg::Edit2 => include_str!("../../../style/inlined/edit-2.svg"),
- Svg::FilePlus => include_str!("../../../style/inlined/file-plus.svg"),
- Svg::FileEdit => include_str!("../../../style/inlined/file-edit.svg"),
- Svg::Logo => include_str!("../../../style/inlined/logo.svg"),
- Svg::Hamburger => include_str!("../../../style/inlined/hamburger.svg"),
- Svg::Save => include_str!("../../../style/inlined/save.svg"),
- Svg::Trash2 => include_str!("../../../style/inlined/trash-2.svg"),
- Svg::Search => include_str!("../../../style/inlined/search.svg"),
- }>
- }
- .into_view(cx)
- }
-}
diff --git a/app/src/components/table.rs b/app/src/components/table.rs
deleted file mode 100644
index c5ee952..0000000
--- a/app/src/components/table.rs
+++ /dev/null
@@ -1,72 +0,0 @@
-use leptos::*;
-use leptos_dom::*;
-use leptos_router::*;
-
-#[component]
-pub fn TableCell(
- cx: Scope,
- children: Children,
- #[prop(optional, into)] class: String,
- #[prop(optional, into, default = 1)] colspan: i32,
-) -> impl IntoView {
- view! { cx,
-
- {children(cx)}
-
- }
-}
-
-#[component]
-pub fn TableRow(
- cx: Scope,
- children: Children,
- #[prop(optional, into)] class: String,
-) -> impl IntoView {
- view! { cx,
- {children(cx)}
- }
-}
-
-#[derive(Clone, Debug)]
-pub struct ColumnHeader {
- pub id: String,
- pub label: String,
- pub width: Option,
- pub center: bool,
-}
-
-impl IntoView for ColumnHeader {
- fn into_view(self, cx: Scope) -> View {
- match self.width {
- Some(width) => view! { cx,
-
- {self.label}
-
- },
- None => view! { cx,
-
- {self.label}
-
- },
- }.into_view(cx)
- }
-}
-
-#[component]
-pub fn Table(
- cx: Scope,
- children: Children,
- // column_headers: Vec,
- column_headers: Vec,
-) -> impl IntoView {
- view! { cx,
-
- }
-}
diff --git a/app/src/functions.rs b/app/src/functions.rs
index edbc7c8..bd79b84 100644
--- a/app/src/functions.rs
+++ b/app/src/functions.rs
@@ -1,3 +1,4 @@
+use std::convert::Infallible;
#[cfg(feature = "ssr")]
use std::sync::{
atomic::{AtomicI32, Ordering},
@@ -26,22 +27,6 @@ use leptos::*;
use serde::{Deserialize, Serialize};
use thiserror::Error;
-#[cfg(feature = "ssr")]
-pub fn register_server_functions() -> Result<(), ServerFnError> {
- GetServerCount::register()?;
- AdjustServerCount::register()?;
- ClearServerCount::register()?;
- AddList::register()?;
- FindList::register()?;
- DeleteList::register()?;
- AddTodo::register()?;
- ListTodos::register()?;
- DeleteTodo::register()?;
- EditTodo::register()?;
- ToggleTodo::register()?;
- Ok(())
-}
-
#[cfg(feature = "ssr")]
static COUNT: AtomicI32 = AtomicI32::new(0);
@@ -86,13 +71,7 @@ pub async fn add_list(
) -> Result {
let db = db(cx)?;
- let list = lists::ActiveModel::new(title)
- .insert(db.conn())
- .await
- .map_err(|e| {
- let str = format!("{e}");
- ServerFnError::ServerError(str)
- })?;
+ let list = lists::ActiveModel::new(title).insert(db.conn()).await?;
Ok(list)
}
@@ -106,14 +85,12 @@ pub async fn find_list(
let list = lists::Entity::find_by_id(list_id)
.one(db.conn())
- .await
- .map_err(|e| ServerFnError::ServerError(format!("{e}")))?;
-
- if list.is_none() {
- return Err(ServerFnError::ServerError("No list found".to_string()));
- }
+ .await?
+ .ok_or_else(|| {
+ ServerFnError::ServerError("No list found".to_string())
+ })?;
- Ok(list.unwrap())
+ Ok(list)
}
#[server(DeleteList, "/api")]
@@ -123,22 +100,37 @@ pub async fn delete_list(
) -> Result<(), ServerFnError> {
let db = db(cx)?;
- let list = lists::Entity::find_by_id(list_id)
- .one(db.conn())
- .await
- .map_err(|e| ServerFnError::ServerError(format!("{e}")))?;
+ let list = lists::Entity::find_by_id(list_id).one(db.conn()).await?;
if list.is_none() {
return Err(ServerFnError::ServerError("No list found".to_string()));
}
- list.unwrap().delete(db.conn()).await.map_err(|_| {
- ServerFnError::ServerError("No list deleted".to_string())
- })?;
+ list.unwrap().delete(db.conn()).await?;
Ok(())
}
+#[server(EditList, "/api")]
+pub async fn edit_list(
+ cx: Scope,
+ list_id: uuid::Uuid,
+ title: String,
+) -> Result<(), ServerFnError> {
+ let db = db(cx)?;
+
+ let mut list: lists::ActiveModel = lists::Entity::find_by_id(list_id)
+ .one(db.conn())
+ .await?
+ .ok_or_else(|| ServerFnError::ServerError("No list found".to_string()))?
+ .into();
+
+ list.title = entity::sea_orm::Set(title);
+
+ list.update(db.conn()).await?;
+ Ok(())
+}
+
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum Order {
Asc,
@@ -156,14 +148,11 @@ pub async fn list_todos(
cx: Scope,
list_id: uuid::Uuid,
search: Option,
- order_by: Option,
+ _order_by: Option,
) -> Result, ServerFnError> {
let db = db(cx)?;
- let list = lists::Entity::find_by_id(list_id)
- .one(db.conn())
- .await
- .map_err(|e| ServerFnError::ServerError(format!("{e}")))?;
+ let list = lists::Entity::find_by_id(list_id).one(db.conn()).await?;
if list.is_none() {
return Err(ServerFnError::ServerError("No list found".to_string()));
@@ -184,11 +173,7 @@ pub async fn list_todos(
let todos = todos
.order_by_asc(todos::Column::CreatedAt)
.all(db.conn())
- .await
- .map_err(|err| {
- tracing::error!("Failed to list todos: {}", err);
- ServerFnError::ServerError("No todos found".to_string())
- })?;
+ .await?;
Ok(todos)
}
@@ -199,6 +184,7 @@ pub async fn add_todo(
list_id: uuid::Uuid,
title: String,
description: Option,
+ assignee: Option,
due_date: Option,
) -> Result<(), ServerFnError> {
let db = db(cx)?;
@@ -206,19 +192,14 @@ pub async fn add_todo(
let due_date = due_date
.and_then(|str| if str.is_empty() { None } else { Some(str) })
.map(|string| {
- let naive_date = NaiveDate::parse_from_str(&string, "%Y-%m-%d")
- .map_err(|op| ServerFnError::ServerError(format!("{}", op)))?;
- Ok(naive_date)
+ NaiveDate::parse_from_str(&string, "%Y-%m-%d")
+ .map_err(|op| ServerFnError::ServerError(format!("{}", op)))
})
.transpose()?;
- todos::ActiveModel::new(list_id, title, description, due_date)
+ todos::ActiveModel::new(list_id, title, description, assignee, due_date)
.insert(db.conn())
- .await
- .map_err(|e| {
- let str = format!("{e}");
- ServerFnError::ServerError(str)
- })?;
+ .await?;
Ok(())
}
@@ -233,12 +214,12 @@ pub async fn delete_todo(
let todo = todos::Entity::find_by_id(id)
.one(db.conn())
.await
- .map_err(|_| ServerFnError::ServerError("No todo found".to_string()))?
- .expect("should be unreachable #160");
+ .map_err(|_| ServerFnError::ServerError("No todo found".to_string()))?;
+
+ if let Some(todo) = todo {
+ todo.delete(db.conn()).await?;
+ }
- todo.delete(db.conn()).await.map_err(|_| {
- ServerFnError::ServerError("No todo deleted".to_string())
- })?;
Ok(())
}
@@ -255,26 +236,22 @@ pub async fn edit_todo(
let due_date = due_date
.and_then(|str| if str.is_empty() { None } else { Some(str) })
.map(|string| {
- let naive_date = NaiveDate::parse_from_str(&string, "%Y-%m-%d")
- .map_err(|op| ServerFnError::ServerError(format!("{}", op)))?;
- Ok(naive_date)
+ NaiveDate::parse_from_str(&string, "%Y-%m-%d")
+ .map_err(|op| ServerFnError::ServerError(format!("{}", op)))
})
.transpose()?;
let mut updated: todos::ActiveModel = todos::Entity::find_by_id(id)
.one(db.conn())
- .await
- .map_err(|_| ServerFnError::ServerError("No todo found".to_string()))?
- .expect("should be unreachable #183")
+ .await?
+ .ok_or_else(|| ServerFnError::ServerError("No todo found".to_string()))?
.into();
updated.title = entity::sea_orm::Set(title);
updated.description = entity::sea_orm::Set(description);
updated.due_date = entity::sea_orm::Set(due_date);
- updated.update(db.conn()).await.map_err(|_| {
- ServerFnError::ServerError("No to-do updated".to_string())
- })?;
+ updated.update(db.conn()).await?;
Ok(())
}
@@ -287,16 +264,32 @@ pub async fn toggle_todo(
let db = db(cx)?;
let mut updated: todos::ActiveModel = todos::Entity::find_by_id(id)
.one(db.conn())
- .await
- .map_err(|_| ServerFnError::ServerError("No to-do found".to_string()))?
- .unwrap()
+ .await?
+ .ok_or_else(|| {
+ ServerFnError::ServerError("No to-do found".to_string())
+ })?
.into();
updated.done = entity::sea_orm::Set(!updated.done.unwrap());
- updated.update(db.conn()).await.map_err(|_| {
- ServerFnError::ServerError("No to-do updated".to_string())
- })?;
+ updated.update(db.conn()).await?;
Ok(())
}
+
+#[server(FindTodo, "/api")]
+pub async fn find_todo(
+ cx: Scope,
+ id: uuid::Uuid,
+) -> Result {
+ let db = db(cx)?;
+
+ let todo = todos::Entity::find_by_id(id)
+ .one(db.conn())
+ .await?
+ .ok_or_else(|| {
+ ServerFnError::ServerError("No to-do found".to_string())
+ })?;
+
+ Ok(todo)
+}
diff --git a/app/src/lib.rs b/app/src/lib.rs
index 30038b8..aacc44c 100644
--- a/app/src/lib.rs
+++ b/app/src/lib.rs
@@ -8,8 +8,6 @@ mod functions;
mod pages;
mod utils;
-#[cfg(feature = "ssr")]
-pub use functions::register_server_functions;
use leptos::*;
use leptos_meta::*;
use leptos_router::*;
@@ -32,25 +30,7 @@ pub fn App(cx: Scope) -> impl IntoView {
}
- }
- />
- }
- }
- />
- }
- }
- />
- }
+ view! { cx, }
}
/>
diff --git a/app/src/pages/about.rs b/app/src/pages/about.rs
deleted file mode 100644
index 2d78469..0000000
--- a/app/src/pages/about.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-use leptos::*;
-
-use crate::components::*;
-
-#[component]
-pub fn AboutPage(cx: Scope) -> impl IntoView {
- view! { cx,
-
-
- "TodoVault: Your Privacy-Focused To-Do List Solution"
-
- "TodoVault is a free and open-source web application designed to manage your to-do lists and facilitate collaboration with others. Our goal is to offer an easy-to-use, self-hosted alternative to popular to-do list applications like Google Keep and Microsoft To-Do, while prioritizing privacy and security."
-
-
- "Though our current feature set is limited, we are working diligently to develop a comprehensive to-do list solution that meets the needs of individuals and teams alike."
-
- "Key Features of Our Current Minimum Viable Product (MVP) Include:"
-
- "Support for multiple to-do lists"
- "Create, read, update, and delete (CRUD) capabilities for tasks"
- " To-do list sharing via link"
- "Basic search functionality"
- "Compatibility with common desktop and mobile viewport sizes"
-
- "Exciting Additions on Our Development Roadmap:"
-
- "Optional passwords with server-side validation"
- "Support for multiple languages"
- "Real-time updates for seamless collaboration"
- "Optional passwords with client-side end-to-end (E2E) encryption"
-
- "We Are Committed to Avoiding the Following \"Anti-Features\":"
-
- "User tracking"
- "Email sign-up requirements"
- "Bundle size exceeding 2MB (gzipped)"
-
-
-
- }
-}
diff --git a/app/src/pages/index.rs b/app/src/pages/index.rs
index d5701e3..ec00d72 100644
--- a/app/src/pages/index.rs
+++ b/app/src/pages/index.rs
@@ -1,13 +1,283 @@
+use entity::{lists, todos::Entity as Todo, uuid};
use leptos::*;
+use leptos_icons::*;
use leptos_router::*;
-use crate::components::*;
+use crate::{components::*, functions::*};
+
+const STORAGE_KEY: &str = "my_todo_lists";
+
+fn retrieve_from_local_storage() -> Vec {
+ let storage = window().local_storage();
+
+ if let Ok(Some(storage)) = storage {
+ let list_ids_opt = storage
+ .get_item(STORAGE_KEY)
+ .ok()
+ .flatten()
+ .and_then(|lists| {
+ let lists: Vec =
+ serde_json::from_str(&lists).ok()?;
+ Some(lists)
+ });
+ if let Some(list_ids) = list_ids_opt {
+ list_ids
+ } else {
+ vec![]
+ }
+ } else {
+ vec![]
+ }
+}
+
+pub fn add_to_local_storage(list_id: uuid::Uuid) {
+ let storage = window().local_storage();
+
+ if let Ok(Some(storage)) = storage {
+ let mut list_ids = retrieve_from_local_storage();
+ if list_ids.contains(&list_id) {
+ return;
+ }
+ list_ids.push(list_id);
+ let list_ids = serde_json::to_string(&list_ids).unwrap();
+ storage.set_item(STORAGE_KEY, &list_ids).unwrap();
+ }
+}
+
+pub fn remove_from_local_storage(list_id: uuid::Uuid) {
+ let storage = window().local_storage();
+
+ if let Ok(Some(storage)) = storage {
+ let mut list_ids = retrieve_from_local_storage();
+ if !list_ids.contains(&list_id) {
+ return;
+ }
+ list_ids.retain(|id| id != &list_id);
+ let list_ids = serde_json::to_string(&list_ids).unwrap();
+ storage.set_item(STORAGE_KEY, &list_ids).unwrap();
+ }
+}
+
+#[component]
+fn Card(
+ cx: Scope,
+ children: Children,
+ #[prop(optional, into)] class: String,
+) -> impl IntoView {
+ view! { cx,
+
+ }
+}
+
+#[component]
+fn Spinner(
+ cx: Scope,
+ hidden: F,
+ #[prop(optional, into)] class: String,
+) -> impl IntoView
+where
+ F: Fn() -> bool + 'static,
+{
+ view! { cx,
+
+ }
+}
+
+#[component]
+fn ListCard(
+ cx: Scope,
+ id: uuid::Uuid,
+ my_lists: Resource<(), Vec>, // size = 16 (0x10), align = 0x8
+) -> impl IntoView {
+ let delete_list_action =
+ create_multi_action(cx, move |delete_list_p: &DeleteList| {
+ let delete_list_p = delete_list_p.clone();
+ async move {
+ tracing::info!("delete list: {:?}", delete_list_p.list_id);
+ // remove from resource
+ delete_list(cx, delete_list_p.list_id).await?;
+ my_lists.update(|lists| {
+ if let Some(lists) = lists {
+ lists.retain(|list| list.id != delete_list_p.list_id);
+ }
+ });
+ remove_from_local_storage(delete_list_p.list_id);
+ Ok::<(), ServerFnError>(())
+ }
+ })
+ .using_server_fn::();
+ let delete_list_pending = move || {
+ let submissions = delete_list_action.submissions().get();
+
+ let pending = submissions.iter().any(|s| s.pending().get());
+ tracing::info!("delete_list_pending: {}", pending);
+ pending
+ };
+
+ let edit_list_action =
+ create_multi_action(cx.clone(), move |edit_list_p: &EditList| {
+ let cx = cx.clone();
+ let edit_list_p = edit_list_p.clone();
+ async move {
+ edit_list(cx, edit_list_p.list_id, edit_list_p.title.clone())
+ .await?;
+ my_lists.update(move |lists| {
+ if let Some(lists) = lists {
+ lists.iter_mut().for_each(|list| {
+ if list.id == edit_list_p.list_id {
+ list.title = edit_list_p.title.clone();
+ }
+ });
+ }
+ });
+ Ok::<(), ServerFnError>(())
+ }
+ });
+ let todo = move || {
+ let id = id.clone();
+ let my_lists = my_lists
+ .read(cx.clone())
+ .expect("my_lists")
+ .iter()
+ .filter(|list| list.id == id)
+ .next()
+ .expect("no list found")
+ .to_owned();
+
+ my_lists
+ };
+ let (edit_mode, set_edit_mode) = create_signal(cx.clone(), false);
+ // show pencil button outside edit mode which starts edit mode
+ // show save button inside edit mode which saves the title (by submitting the form)
+ let edit_button = move || {
+ if edit_mode() {
+ view! {cx,
+
+ "Save"
+
+
+ }.into_view(cx)
+ } else {
+ view! {cx,
+
+ "Edit"
+
+
+ }.into_view(cx)
+ }
+ };
+
+ view! { cx,
+
+
+
+
+
+
{todo().title}
+
+
+
+ {move || edit_button()}
+
+
+
+
+
+
+ "Delete"
+
+
+
+
+
+
+
+
+
+ // {format!("todo: {id}")}
+
+
+ }
+}
+
+struct MyLists {
+ lists: Vec,
+}
#[component]
pub fn IndexPage(cx: Scope) -> impl IntoView {
+ let my_lists = create_local_resource(
+ cx,
+ move || (),
+ move |_| async move {
+ let list_ids = retrieve_from_local_storage();
+ let lists = list_ids
+ .into_iter()
+ .map(|list_id| find_list(cx, list_id))
+ .collect::>();
+
+ // TODO: handle errors better (for deleted lists this is fine,
+ // but for other errors we should probably show an error message)
+ futures::future::join_all(lists)
+ .await
+ .into_iter()
+ .filter_map(Result::ok)
+ .collect()
+ },
+ );
+
+ let add_list_action =
+ create_multi_action(cx, move |add_list_p: &AddList| {
+ let add_list_p = add_list_p.clone();
+ async move {
+ let list = add_list(cx, add_list_p.title).await?;
+ add_to_local_storage(list.id);
+ my_lists.update(|lists: &mut Option>| {
+ if let Some(lists) = lists {
+ lists.push(list);
+ }
+ });
+ tracing::info!("new_lists: {:?}", my_lists);
+ Ok::<(), ServerFnError>(())
+ }
+ })
+ .using_server_fn::();
+
+ let add_list_pending = move || {
+ let submissions = add_list_action.submissions().get();
+
+ let pending = submissions.iter().any(|s| s.pending().get());
+
+ tracing::info!("add_list_pending: {}", pending);
+ pending
+ };
+
view! { cx,
-
-
-
+
+
}
+ }
+ />
+
+
+
+
+
+
+
+ "Add List"
+
+
+
}
}
diff --git a/app/src/pages/mod.rs b/app/src/pages/mod.rs
index ad5a99c..575962f 100644
--- a/app/src/pages/mod.rs
+++ b/app/src/pages/mod.rs
@@ -1,9 +1,3 @@
-mod about;
mod index;
-mod my_todo_lists;
-mod todo_list;
-pub use about::*;
pub use index::*;
-pub use my_todo_lists::*;
-pub use todo_list::*;
diff --git a/app/src/pages/my_todo_lists.rs b/app/src/pages/my_todo_lists.rs
deleted file mode 100644
index e368fc3..0000000
--- a/app/src/pages/my_todo_lists.rs
+++ /dev/null
@@ -1,206 +0,0 @@
-use entity::uuid;
-use leptos::*;
-use leptos_dom::*;
-use leptos_router::*;
-
-use crate::{components::*, functions::*, utils};
-
-const STORAGE_KEY: &str = "my_todo_lists";
-
-fn retrieve_from_local_storage() -> Vec {
- let storage = window().local_storage();
-
- if let Ok(Some(storage)) = storage {
- let list_ids_opt = storage
- .get_item(STORAGE_KEY)
- .ok()
- .flatten()
- .and_then(|lists| {
- let lists: Vec =
- serde_json::from_str(&lists).ok()?;
- Some(lists)
- });
- if let Some(list_ids) = list_ids_opt {
- list_ids
- } else {
- vec![]
- }
- } else {
- vec![]
- }
-}
-
-pub fn add_to_local_storage(list_id: uuid::Uuid) {
- let storage = window().local_storage();
-
- if let Ok(Some(storage)) = storage {
- let mut list_ids = retrieve_from_local_storage();
- if list_ids.contains(&list_id) {
- return;
- }
- list_ids.push(list_id);
- let list_ids = serde_json::to_string(&list_ids).unwrap();
- storage.set_item(STORAGE_KEY, &list_ids).unwrap();
- }
-}
-
-pub fn remove_from_local_storage(list_id: uuid::Uuid) {
- let storage = window().local_storage();
-
- if let Ok(Some(storage)) = storage {
- let mut list_ids = retrieve_from_local_storage();
- if !list_ids.contains(&list_id) {
- return;
- }
- list_ids.retain(|id| id != &list_id);
- let list_ids = serde_json::to_string(&list_ids).unwrap();
- storage.set_item(STORAGE_KEY, &list_ids).unwrap();
- }
-}
-
-#[component]
-pub fn MyTodoListsPage(cx: Scope) -> impl IntoView {
- tracing::info!("MyTodoListsPage");
-
- let delete_list_action =
- create_multi_action(cx.clone(), move |delete_list_p: &DeleteList| {
- let cx = cx.clone();
- let delete_list_p = delete_list_p.clone();
- async move {
- remove_from_local_storage(delete_list_p.list_id);
- delete_list(cx, delete_list_p.list_id).await?;
- Ok(())
- }
- })
- .using_server_fn::();
-
- let add_list_action =
- create_multi_action(cx, move |add_list_p: &AddList| {
- let cx = cx.clone();
- let add_list_p = add_list_p.clone();
- async move {
- let list = add_list(cx, add_list_p.title).await?;
- add_to_local_storage(list.id);
- Ok(())
- }
- })
- .using_server_fn::();
-
- let add_list_fields = vec![FormField {
- id: "title".to_string(),
- label: Some("Title".to_string()),
- input_type: FormFieldInputType::Text,
- placeholder: "My To-Do List".to_string(),
- value: "".to_string(),
- required: true,
- }];
-
- let my_lists = create_local_resource(
- cx,
- move || {
- (
- add_list_action.version().get(),
- delete_list_action.version().get(),
- )
- },
- move |_| {
- let cx = cx.clone();
- async move {
- let list_ids = retrieve_from_local_storage();
- let lists = list_ids
- .into_iter()
- .map(|list_id| find_list(cx.clone(), list_id))
- .collect::>();
- let lists = futures::future::join_all(lists).await;
- let lists: Vec =
- lists.into_iter().filter_map(Result::ok).collect();
- lists
- }
- },
- );
-
- let column_headers = vec![
- ColumnHeader {
- id: "title".to_string(),
- label: "Title".to_string(),
- width: None,
- center: false,
- },
- ColumnHeader {
- id: "actions".to_string(),
- label: "".to_string(),
- width: Some(24),
- center: false,
- },
- ];
-
- let no_lists_row = move || {
- let lists = my_lists.read(cx);
- if lists.is_none() || lists.unwrap_or(vec![]).is_empty() {
- view! { cx,
-
-
-
-
-
{Svg::AlertCircle}
-
- "No lists found. "
- "Click the button on the top left of this panel to add a list."
-
-
-
-
-
- }
- .into_view(cx)
- } else {
- view! { cx, <>> }.into_view(cx)
- }
- };
-
- view! { cx,
-
-
- "My To-Do Lists"
-
-
-
-
-
-
- > }
- }>{no_lists_row()}
-
-
- {list.title}
-
-
-
-
-
- {Svg::Trash2}
-
-
-
-
- }
- }
- />
-
-
-
- }
-}
diff --git a/app/src/pages/todo_list.rs b/app/src/pages/todo_list.rs
deleted file mode 100644
index da5e431..0000000
--- a/app/src/pages/todo_list.rs
+++ /dev/null
@@ -1,354 +0,0 @@
-use std::{cell::RefCell, rc::Rc, sync::Arc};
-
-use entity::{
- chrono,
- todos::{self, Model},
- uuid,
-};
-use js_sys::Function;
-use leptos::{ev::MouseEvent, *};
-use leptos_dom::*;
-use leptos_router::*;
-use wasm_bindgen::{prelude::*, JsCast};
-use web_sys::{Document, DomRect, Element, Event, EventTarget, Window};
-
-use super::add_to_local_storage;
-use crate::{components::*, functions::*, utils::*};
-
-#[component]
-fn TodoRow(
- cx: Scope,
- todo: todos::Model,
- delete_todo: Action>,
- toggle_todo: Action>,
- edit_todo: MultiAction>,
-) -> impl IntoView {
- let edit_todo_fields = vec![
- FormField {
- id: "id".to_string(),
- label: None,
- input_type: FormFieldInputType::Hidden,
- placeholder: "".to_string(),
- value: todo.id.to_string(),
- required: true,
- },
- FormField {
- id: "title".to_string(),
- label: Some("Title".to_string()),
- input_type: FormFieldInputType::Text,
- placeholder: "Do things".to_string(),
- value: todo.title.clone(),
- required: true,
- },
- FormField {
- id: "description".to_string(),
- label: Some("Description".to_string()),
- input_type: FormFieldInputType::TextArea,
- placeholder: "".to_string(),
- value: todo.description.clone().unwrap_or("".to_string()),
- required: false,
- },
- FormField {
- id: "due_date".to_string(),
- label: Some("Due Date".to_string()),
- input_type: FormFieldInputType::Date,
- placeholder: "".to_string(),
- value: todo
- .due_date
- .map(|dd| dd.format("%Y-%m-%d").to_string())
- .unwrap_or_else(|| "".to_string()),
- required: false,
- },
- ];
-
- view! { cx,
-
-
-
-
-
-
-
- {todo.title.clone()}
-
-
- {todo.description.clone()}
-
-
-
- "Due Date: "
- {todo
- .due_date
- .map(|dd| dd.format("%d.%m.%Y").to_string())
- .unwrap_or_else(|| "".to_string())}
-
-
-
-
-
-
-
- {Svg::Trash2}
-
-
-
-
- }
-}
-
-#[component]
-fn AddTodoDrawer(
- cx: Scope,
- list_id: uuid::Uuid,
- add_todo: MultiAction>,
-) -> impl IntoView {
- let add_todo_fields = vec![
- FormField {
- id: "list_id".to_string(),
- label: None,
- input_type: FormFieldInputType::Hidden,
- placeholder: "".to_string(),
- value: list_id.to_string(),
- required: true,
- },
- FormField {
- id: "title".to_string(),
- label: Some("Title".to_string()),
- input_type: FormFieldInputType::Text,
- placeholder: "Do things".to_string(),
- value: "".to_string(),
- required: true,
- },
- FormField {
- id: "description".to_string(),
- label: Some("Description".to_string()),
- input_type: FormFieldInputType::TextArea,
- placeholder: "".to_string(),
- value: "".to_string(),
- required: false,
- },
- FormField {
- id: "due_date".to_string(),
- label: Some("Due Date".to_string()),
- input_type: FormFieldInputType::Date,
- placeholder: "".to_string(),
- value: "".to_string(),
- required: false,
- },
- ];
-
- view! { cx,
-
- }
-}
-
-#[component]
-fn TodoList(cx: Scope, list_id: uuid::Uuid) -> impl IntoView {
- let add_todo = create_server_multi_action::(cx);
- let edit_todo = create_server_multi_action::(cx);
- let delete_todo = create_server_action::(cx);
- let toggle_todo = create_server_action::(cx);
- let list_resource = create_resource(
- cx,
- move || (list_id,),
- move |_| async move { find_list(cx, list_id).await },
- );
-
- let (search, set_search) = create_signal(cx, "".to_string());
- let list_todos_resource = create_resource(
- cx,
- move || {
- (
- add_todo.version().get(),
- edit_todo.version().get(),
- delete_todo.version().get(),
- toggle_todo.version().get(),
- search(),
- list_id,
- )
- },
- move |_| async move {
- list_todos(cx, list_id, Some(search()), None)
- .await
- .unwrap_or_default()
- },
- );
-
- let column_headers = vec![
- ColumnHeader {
- id: "checkbox".to_string(),
- label: "".to_string(),
- width: Some(4),
- center: false,
- },
- ColumnHeader {
- id: "title".to_string(),
- label: "Title".to_string(),
- width: None,
- center: false,
- },
- ColumnHeader {
- id: "description".to_string(),
- label: "Description".to_string(),
- width: None,
- center: false,
- },
- ColumnHeader {
- id: "due_date".to_string(),
- label: "Due Date".to_string(),
- width: Some(16),
- center: false,
- },
- ColumnHeader {
- id: "action".to_string(),
- label: "Action".to_string(),
- width: Some(48),
- center: true,
- },
- ];
-
- let no_todos_row = move || {
- if list_todos_resource.read(cx).unwrap_or_default().is_empty() {
- if search().is_empty() {
- view! { cx,
-
-
-
-
-
{Svg::AlertCircle}
-
- "No to-dos found. Click the button on the top left to add a new to-do."
-
-
-
-
-
- }.into_view(cx)
- } else {
- view! { cx,
-
-
-
-
-
{Svg::AlertCircle}
-
- "No to-dos found for the search term: "
- {search()}
-
-
-
-
-
- }
- .into_view(cx)
- }
- } else {
- view! { cx, <>> }.into_view(cx)
- }
- };
-
- view! { cx,
- <>
- "Loading..." }
- }>
-
- {list_resource
- .read(cx)
- .map(|list| list.expect("no list").title.clone())
- .unwrap_or_else(|| "".to_string())}
-
-
-
-
-
"Loading..." }
- }>
-
- {no_todos_row()}
-
- }
- }
- />
-
-
-
- >
- }
-}
-
-#[component]
-pub fn TodoListPage(cx: Scope) -> impl IntoView {
- let params = use_params_map(cx);
- let list_id = move || {
- params.with(|params| {
- let str =
- params.get("list_id").cloned().unwrap_or_default().clone();
-
- uuid::Uuid::parse_str(&str).unwrap_or_default()
- })
- };
-
- create_effect(cx, move |_| {
- let list_id = list_id();
- add_to_local_storage(list_id);
- });
-
- view! { cx,
-
-
-
- }
-}
diff --git a/app/src/utils.rs b/app/src/utils.rs
index ba69939..226073b 100644
--- a/app/src/utils.rs
+++ b/app/src/utils.rs
@@ -69,8 +69,6 @@ where
let last_timeout_id = std::cell::RefCell::new(None);
let callback = Rc::new(callback);
- tracing::trace!("Setting up scroll listener");
-
let on_scroll = Closure::wrap(Box::new(move |_: Event| {
let now = js_sys::Date::now();
let mut last_event = last_event_time.borrow_mut();
@@ -82,7 +80,6 @@ where
}
}
- tracing::trace!("Scroll event");
callback();
// Cancel the previously scheduled catch_last_closure
@@ -92,7 +89,6 @@ where
let catch_last_callback = callback.clone();
let catch_last_closure = Closure::once(move || {
- tracing::trace!("Scroll event catch last");
catch_last_callback();
});
diff --git a/entity/Cargo.toml b/entity/Cargo.toml
index 696c467..54334dd 100644
--- a/entity/Cargo.toml
+++ b/entity/Cargo.toml
@@ -14,33 +14,18 @@ migration = { path = "../migration", optional = true }
async-std = { version = "=1.12.0", features = ["attributes", "tokio1"] }
derive_more = "=0.99.17"
-figment = { version = "=0.10.8", features = [
- "toml",
- "json",
- "env",
- "yaml",
-], optional = true }
-serde = { version = "=1.0.160", features = [
- "derive",
- "serde_derive",
- "alloc",
- "rc",
-] }
-thiserror = "=1.0.40"
+figment = { version = "=0.10.10", features = ["toml", "json", "env", "yaml"], optional = true }
+serde = { version = "=1.0.171", features = ["derive", "serde_derive", "alloc", "rc"] }
+thiserror = "=1.0.43"
tracing = { version = "=0.1.37" }
-uuid = { version = "=1.3.1", features = ["v4", "v7"] }
-chrono = { version = "=0.4.24", features = ["serde", "alloc"] }
+uuid = { version = "=1.4.0", features = ["v4", "v7"] }
+chrono = { version = "=0.4.26", features = ["serde", "alloc"] }
[dependencies.sea-orm]
-version = "=0.11.2"
+version = "=0.11.3"
features = ["with-time", "with-json", "with-uuid"]
[features]
default = ["server-side"]
-server-side = [
- "dep:migration",
- "dep:figment",
- "sea-orm/runtime-tokio-rustls",
- "sea-orm/sqlx-sqlite",
-]
+server-side = ["dep:migration", "dep:figment", "sea-orm/runtime-tokio-rustls", "sea-orm/sqlx-sqlite"]
client-side = []
diff --git a/entity/src/lists.rs b/entity/src/lists.rs
index 897da17..bf6d700 100644
--- a/entity/src/lists.rs
+++ b/entity/src/lists.rs
@@ -23,6 +23,15 @@ impl Related for Entity {
}
}
+impl Default for Model {
+ fn default() -> Self {
+ Self {
+ id: uuid::Uuid::new_v4(),
+ title: "default".to_string(),
+ }
+ }
+}
+
impl ActiveModelBehavior for ActiveModel {}
impl ActiveModel {
diff --git a/entity/src/prelude.rs b/entity/src/prelude.rs
index 16ba042..7157fa6 100644
--- a/entity/src/prelude.rs
+++ b/entity/src/prelude.rs
@@ -1,3 +1,3 @@
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.0
-pub use crate::todos::Entity as Todo;
+pub use crate::{lists::Entity as List, todos::Entity as Todo};
diff --git a/entity/src/todos.rs b/entity/src/todos.rs
index 838e883..986ce4b 100644
--- a/entity/src/todos.rs
+++ b/entity/src/todos.rs
@@ -19,6 +19,7 @@ pub struct Model {
pub list_id: Uuid,
pub title: String,
pub description: Option,
+ pub assignee: Option,
pub done: bool,
pub due_date: Option,
pub created_at: DateTimeUtc,
@@ -58,6 +59,7 @@ impl Default for Model {
list_id: uuid::Uuid::new_v4(),
title: "default".to_string(),
description: None,
+ assignee: None,
done: false,
due_date: None,
created_at: chrono::Utc::now(),
@@ -73,12 +75,14 @@ impl ActiveModel {
list_id: uuid::Uuid,
title: String,
description: Option,
+ assignee: Option,
due_date: Option,
) -> Self {
Self {
id: Set(uuid::Uuid::now_v7()),
list_id: Set(list_id),
title: Set(title),
+ assignee: Set(assignee),
description: Set(description),
due_date: Set(due_date),
done: Set(false),
diff --git a/migration/Cargo.toml b/migration/Cargo.toml
index 3a7115c..5396f20 100644
--- a/migration/Cargo.toml
+++ b/migration/Cargo.toml
@@ -12,15 +12,9 @@ path = "src/lib.rs"
async-std = { version = "=1.12.0", features = ["attributes", "tokio1"] }
[dependencies.sea-orm-migration]
-version = "=0.11.2"
+version = "=0.11.3"
features = ["runtime-tokio-rustls", "sqlx-sqlite"]
[dependencies.sea-orm]
-features = [
- "runtime-tokio-rustls",
- "sqlx-sqlite",
- "with-json",
- "with-uuid",
- "with-chrono",
-]
-version = "=0.11.2"
+features = ["runtime-tokio-rustls", "sqlx-sqlite", "with-json", "with-uuid", "with-chrono"]
+version = "=0.11.3"
diff --git a/migration/src/lib.rs b/migration/src/lib.rs
index 965b95c..76c3e1b 100644
--- a/migration/src/lib.rs
+++ b/migration/src/lib.rs
@@ -2,12 +2,16 @@
pub use sea_orm_migration::prelude::*;
mod m20220101_000001_create_todos_table;
+mod m20230415_105634_add_assignee_column;
pub struct Migrator;
#[async_trait::async_trait]
impl MigratorTrait for Migrator {
fn migrations() -> Vec> {
- vec![Box::new(m20220101_000001_create_todos_table::Migration)]
+ vec![
+ Box::new(m20220101_000001_create_todos_table::Migration),
+ Box::new(m20230415_105634_add_assignee_column::Migration),
+ ]
}
}
diff --git a/migration/src/m20230415_105634_add_assignee_column.rs b/migration/src/m20230415_105634_add_assignee_column.rs
new file mode 100644
index 0000000..99c3c10
--- /dev/null
+++ b/migration/src/m20230415_105634_add_assignee_column.rs
@@ -0,0 +1,36 @@
+use sea_orm_migration::prelude::*;
+
+#[derive(DeriveMigrationName)]
+pub struct Migration;
+
+#[async_trait::async_trait]
+impl MigrationTrait for Migration {
+ async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
+ manager
+ .alter_table(
+ Table::alter()
+ .table(Todos::Table)
+ .add_column(ColumnDef::new(Todos::Assignee).string())
+ .to_owned(),
+ )
+ .await
+ }
+
+ async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
+ manager
+ .alter_table(
+ Table::alter()
+ .table(Todos::Table)
+ .drop_column(Todos::Assignee)
+ .to_owned(),
+ )
+ .await
+ }
+}
+
+/// Learn more at https://docs.rs/sea-query#iden
+#[derive(Iden)]
+enum Todos {
+ Table,
+ Assignee,
+}
diff --git a/package-lock.json b/package-lock.json
index 3f5d373..5e74a57 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"devDependencies": {
"@tailwindcss/forms": "0.5.3",
"@tailwindcss/typography": "0.5.9",
+ "daisyui": "3.1.9",
"flowbite": "1.6.5",
"flowbite-typography": "1.0.3",
"rustywind": "0.15.3",
@@ -214,6 +215,12 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+ "dev": true
+ },
"node_modules/commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
@@ -229,6 +236,16 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
+ "node_modules/css-selector-tokenizer": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz",
+ "integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "fastparse": "^1.1.2"
+ }
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -241,6 +258,28 @@
"node": ">=4"
}
},
+ "node_modules/daisyui": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-3.1.9.tgz",
+ "integrity": "sha512-GkQR3iLnTfxNsQz7EZXS5bPY65iJM7jdiHtQZWDpRVmBrMlq8Nmrc+t8XmjGdOmJljAPFjtMSD9E9zAnhXF7qg==",
+ "dev": true,
+ "dependencies": {
+ "colord": "^2.9",
+ "css-selector-tokenizer": "^0.8",
+ "postcss-js": "^4",
+ "tailwindcss": "^3"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/daisyui"
+ },
+ "peerDependencies": {
+ "postcss": "^8"
+ }
+ },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -298,6 +337,12 @@
"node": ">= 6"
}
},
+ "node_modules/fastparse": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+ "dev": true
+ },
"node_modules/fastq": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
diff --git a/package.json b/package.json
index 62b44e4..ad8d5b0 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
"@tailwindcss/typography": "0.5.9",
"flowbite": "1.6.5",
"flowbite-typography": "1.0.3",
+ "daisyui": "3.1.9",
"rustywind": "0.15.3",
"tailwindcss": "3.3.1"
}
diff --git a/rust-toolchain.toml b/rust-toolchain.toml
index f57fce6..acdf534 100644
--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -1,5 +1,5 @@
[toolchain]
-channel = "nightly-2023-04-07"
-components = ["cargo", "rustfmt", "rustc-dev", "miri", "rust-src"]
+channel = "nightly-2023-07-16"
+components = ["cargo", "miri", "rustfmt", "rustc-dev", "rust-analyzer", "rust-src"]
profile = "default"
targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"]
diff --git a/server/Cargo.toml b/server/Cargo.toml
index b1fe6be..58abec5 100644
--- a/server/Cargo.toml
+++ b/server/Cargo.toml
@@ -11,33 +11,12 @@ leptos_axum = { workspace = true }
leptos_meta = { workspace = true, features = ["ssr"] }
leptos_router = { workspace = true, features = ["ssr"] }
-axum = "=0.6.12"
-tokio = "=1.27.0"
+axum = "=0.6.18"
+tokio = "=1.29.1"
tower = "=0.4.13"
-tower-http = { version = "=0.4.0", features = [
- "cors",
- "fs",
- "sensitive-headers",
- "tokio",
- "trace",
- "tracing",
- "uuid",
-] }
-thiserror = "=1.0.40"
+tower-http = { version = "=0.4.1", features = ["cors", "fs", "sensitive-headers", "tokio", "trace", "tracing", "uuid"] }
+thiserror = "=1.0.43"
tracing = { version = "=0.1.37", features = ["async-await", "log"] }
http = "=0.2.9"
-serde = { version = "=1.0.160", features = [
- "derive",
- "serde_derive",
- "unstable",
- "alloc",
- "rc",
-] }
-tracing-subscriber = { version = "=0.3.16", features = [
- "once_cell",
- "serde",
- "serde_json",
- "time",
- "tracing",
- "json",
-] }
+serde = { version = "=1.0.171", features = ["derive", "serde_derive", "unstable", "alloc", "rc"] }
+tracing-subscriber = { version = "=0.3.17", features = ["once_cell", "serde", "serde_json", "time", "tracing", "json"] }
diff --git a/server/src/fileserv.rs b/server/src/fileserv.rs
index 501de1d..1b94c71 100644
--- a/server/src/fileserv.rs
+++ b/server/src/fileserv.rs
@@ -1,9 +1,6 @@
-use std::sync::Arc;
-
-use app::error_template::{AppError, ErrorTemplate, ErrorTemplateProps};
use axum::{
body::{boxed, Body, BoxBody},
- extract::Extension,
+ extract::State,
http::{Request, Response, StatusCode, Uri},
response::{IntoResponse, Response as AxumResponse},
};
@@ -11,23 +8,22 @@ use leptos::*;
use tower::ServiceExt;
use tower_http::services::ServeDir;
+use super::App;
+
pub async fn file_and_error_handler(
uri: Uri,
- Extension(options): Extension>,
+ State(options): State,
req: Request,
) -> AxumResponse {
- let options = &*options;
let root = options.site_root.clone();
let res = get_static_file(uri.clone(), &root).await.unwrap();
if res.status() == StatusCode::OK {
res.into_response()
} else {
- let mut errors = Errors::default();
- errors.insert_with_default_key(AppError::NotFound);
let handler = leptos_axum::render_app_to_stream(
- options.clone(),
- move |cx| view! { cx, },
+ options.to_owned(),
+ move |cx| view! { cx, },
);
handler(req).await.into_response()
}
diff --git a/server/src/main.rs b/server/src/main.rs
index cc7933a..0917fc0 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -5,9 +5,10 @@ use std::sync::Arc;
use app::*;
use axum::{
body::Body,
- extract::{Extension, Path},
+ extract::{Path, RawQuery, State},
response::{IntoResponse, Response},
routing::{get, post},
+ Extension,
Router,
};
use entity::db::{Db, DbConfig};
@@ -29,12 +30,14 @@ async fn server_fn_handler(
Extension(db): Extension>,
path: Path,
headers: HeaderMap,
+ raw_query: RawQuery,
request: Request,
) -> impl IntoResponse {
tracing::info!("serverfn: {:?}", path);
handle_server_fns_with_context(
path,
headers,
+ raw_query,
move |cx| {
provide_context(cx, db.clone());
},
@@ -45,11 +48,11 @@ async fn server_fn_handler(
async fn leptos_routes_handler(
Extension(db): Extension>,
- Extension(options): Extension>,
+ State(options): State,
request: Request,
) -> Response {
let handler = leptos_axum::render_app_to_stream_with_context(
- (*options).clone(),
+ (options).clone(),
move |cx| {
provide_context(cx, db.clone());
},
@@ -62,8 +65,6 @@ async fn leptos_routes_handler(
async fn main() {
tracing_subscriber::fmt().with_max_level(Level::INFO).init();
- register_server_functions().expect("Failed to register server functions");
-
// Setting get_configuration(None) means we'll be using cargo-leptos's env values
let conf = get_configuration(None).await.unwrap();
let leptos_options = conf.leptos_options;
@@ -78,7 +79,7 @@ async fn main() {
.route("/api/*fn_name", post(server_fn_handler))
.leptos_routes_with_handler(routes, get(leptos_routes_handler))
.fallback(file_and_error_handler)
- .layer(Extension(Arc::new(leptos_options)))
+ .with_state(leptos_options)
.layer(Extension(Arc::new(db)))
.layer(SetSensitiveRequestHeadersLayer::new(vec![
header::AUTHORIZATION,
diff --git a/tailwind.config.js b/tailwind.config.js
index 4d79802..c00ba67 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -7,6 +7,7 @@ module.exports = {
"./node_modules/flowbite/**/*.js",
],
safelist: [
+ "hidden",
"shadow-lg",
"backdrop-blur-sm",
"rounded-l-lg",
@@ -57,5 +58,9 @@ module.exports = {
require("@tailwindcss/forms"),
require("flowbite/plugin"),
require("flowbite-typography"),
+ require("daisyui"),
],
+ daisyui: {
+ logs: false,
+ },
};
diff --git a/wasm-lib/Cargo.toml b/wasm-lib/Cargo.toml
index f49010a..3569335 100644
--- a/wasm-lib/Cargo.toml
+++ b/wasm-lib/Cargo.toml
@@ -9,7 +9,7 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
app = { path = "../app", default-features = false, features = ["hydrate"] }
leptos = { workspace = true, features = ["serde", "hydrate"] }
-wasm-bindgen = "=0.2.84"
+wasm-bindgen = { workspace = true }
console_log = "=1.0.0"
console_error_panic_hook = "=0.1.7"
tracing = "=0.1.37"