Take the pain out of keeping all your calendars together

feat: add leptos SSR server

We've chosen to go with leptos as our server as, since as we're writing
in rust, it'll allow us to write the backend/frontend in the same
language and nicely call between them.

This is their example project, modified to use a later edition of rust
and to remove the license (their sample is Unlicense) since as I plan to
AGPL this.

If you're interested in creating something like this yourself, please
look here:

https://book.leptos.dev/ssr/21_cargo_leptos.html

a.starrysky.fyi 3acdeb50 a4c80610

verified
+2
.gitignore
··· 1 .direnv/ 2 .envrc 3 /target
··· 1 .direnv/ 2 .envrc 3 + .sass-cache 4 + /debug 5 /target
+2661
Cargo.lock
··· 3 version = 4 4 5 [[package]] 6 name = "calpoll" 7 version = "0.1.0"
··· 3 version = 4 4 5 [[package]] 6 + name = "aho-corasick" 7 + version = "1.1.3" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 10 + dependencies = [ 11 + "memchr", 12 + ] 13 + 14 + [[package]] 15 + name = "any_spawner" 16 + version = "0.3.0" 17 + source = "registry+https://github.com/rust-lang/crates.io-index" 18 + checksum = "1384d3fe1eecb464229fcf6eebb72306591c56bf27b373561489458a7c73027d" 19 + dependencies = [ 20 + "futures", 21 + "thiserror 2.0.17", 22 + "tokio", 23 + "wasm-bindgen-futures", 24 + ] 25 + 26 + [[package]] 27 + name = "anyhow" 28 + version = "1.0.100" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 31 + 32 + [[package]] 33 + name = "async-lock" 34 + version = "3.4.1" 35 + source = "registry+https://github.com/rust-lang/crates.io-index" 36 + checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" 37 + dependencies = [ 38 + "event-listener", 39 + "event-listener-strategy", 40 + "pin-project-lite", 41 + ] 42 + 43 + [[package]] 44 + name = "async-once-cell" 45 + version = "0.5.4" 46 + source = "registry+https://github.com/rust-lang/crates.io-index" 47 + checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a" 48 + 49 + [[package]] 50 + name = "async-trait" 51 + version = "0.1.89" 52 + source = "registry+https://github.com/rust-lang/crates.io-index" 53 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 54 + dependencies = [ 55 + "proc-macro2", 56 + "quote", 57 + "syn", 58 + ] 59 + 60 + [[package]] 61 + name = "atomic-waker" 62 + version = "1.1.2" 63 + source = "registry+https://github.com/rust-lang/crates.io-index" 64 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 65 + 66 + [[package]] 67 + name = "attribute-derive" 68 + version = "0.10.5" 69 + source = "registry+https://github.com/rust-lang/crates.io-index" 70 + checksum = "05832cdddc8f2650cc2cc187cc2e952b8c133a48eb055f35211f61ee81502d77" 71 + dependencies = [ 72 + "attribute-derive-macro", 73 + "derive-where", 74 + "manyhow", 75 + "proc-macro2", 76 + "quote", 77 + "syn", 78 + ] 79 + 80 + [[package]] 81 + name = "attribute-derive-macro" 82 + version = "0.10.5" 83 + source = "registry+https://github.com/rust-lang/crates.io-index" 84 + checksum = "0a7cdbbd4bd005c5d3e2e9c885e6fa575db4f4a3572335b974d8db853b6beb61" 85 + dependencies = [ 86 + "collection_literals", 87 + "interpolator", 88 + "manyhow", 89 + "proc-macro-utils", 90 + "proc-macro2", 91 + "quote", 92 + "quote-use", 93 + "syn", 94 + ] 95 + 96 + [[package]] 97 + name = "axum" 98 + version = "0.8.6" 99 + source = "registry+https://github.com/rust-lang/crates.io-index" 100 + checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" 101 + dependencies = [ 102 + "axum-core", 103 + "base64", 104 + "bytes", 105 + "form_urlencoded", 106 + "futures-util", 107 + "http", 108 + "http-body", 109 + "http-body-util", 110 + "hyper", 111 + "hyper-util", 112 + "itoa", 113 + "matchit", 114 + "memchr", 115 + "mime", 116 + "multer", 117 + "percent-encoding", 118 + "pin-project-lite", 119 + "serde_core", 120 + "serde_json", 121 + "serde_path_to_error", 122 + "serde_urlencoded", 123 + "sha1", 124 + "sync_wrapper", 125 + "tokio", 126 + "tokio-tungstenite", 127 + "tower", 128 + "tower-layer", 129 + "tower-service", 130 + "tracing", 131 + ] 132 + 133 + [[package]] 134 + name = "axum-core" 135 + version = "0.5.5" 136 + source = "registry+https://github.com/rust-lang/crates.io-index" 137 + checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" 138 + dependencies = [ 139 + "bytes", 140 + "futures-core", 141 + "http", 142 + "http-body", 143 + "http-body-util", 144 + "mime", 145 + "pin-project-lite", 146 + "sync_wrapper", 147 + "tower-layer", 148 + "tower-service", 149 + "tracing", 150 + ] 151 + 152 + [[package]] 153 + name = "base16" 154 + version = "0.2.1" 155 + source = "registry+https://github.com/rust-lang/crates.io-index" 156 + checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" 157 + 158 + [[package]] 159 + name = "base64" 160 + version = "0.22.1" 161 + source = "registry+https://github.com/rust-lang/crates.io-index" 162 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 163 + 164 + [[package]] 165 + name = "bitflags" 166 + version = "2.10.0" 167 + source = "registry+https://github.com/rust-lang/crates.io-index" 168 + checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 169 + 170 + [[package]] 171 + name = "block-buffer" 172 + version = "0.10.4" 173 + source = "registry+https://github.com/rust-lang/crates.io-index" 174 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 175 + dependencies = [ 176 + "generic-array", 177 + ] 178 + 179 + [[package]] 180 + name = "bumpalo" 181 + version = "3.19.0" 182 + source = "registry+https://github.com/rust-lang/crates.io-index" 183 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 184 + 185 + [[package]] 186 + name = "bytes" 187 + version = "1.10.1" 188 + source = "registry+https://github.com/rust-lang/crates.io-index" 189 + checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 190 + 191 + [[package]] 192 name = "calpoll" 193 version = "0.1.0" 194 + dependencies = [ 195 + "axum", 196 + "console_error_panic_hook", 197 + "leptos", 198 + "leptos_axum", 199 + "leptos_meta", 200 + "leptos_router", 201 + "tokio", 202 + "wasm-bindgen", 203 + ] 204 + 205 + [[package]] 206 + name = "camino" 207 + version = "1.2.1" 208 + source = "registry+https://github.com/rust-lang/crates.io-index" 209 + checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" 210 + 211 + [[package]] 212 + name = "cfg-if" 213 + version = "1.0.4" 214 + source = "registry+https://github.com/rust-lang/crates.io-index" 215 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 216 + 217 + [[package]] 218 + name = "codee" 219 + version = "0.3.3" 220 + source = "registry+https://github.com/rust-lang/crates.io-index" 221 + checksum = "774365d8238a8dbd57c3047f865187fe6417e765d9955ba8e99e794678a41a0e" 222 + dependencies = [ 223 + "serde", 224 + "serde_json", 225 + "thiserror 2.0.17", 226 + ] 227 + 228 + [[package]] 229 + name = "collection_literals" 230 + version = "1.0.3" 231 + source = "registry+https://github.com/rust-lang/crates.io-index" 232 + checksum = "2550f75b8cfac212855f6b1885455df8eaee8fe8e246b647d69146142e016084" 233 + 234 + [[package]] 235 + name = "concurrent-queue" 236 + version = "2.5.0" 237 + source = "registry+https://github.com/rust-lang/crates.io-index" 238 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 239 + dependencies = [ 240 + "crossbeam-utils", 241 + ] 242 + 243 + [[package]] 244 + name = "config" 245 + version = "0.15.18" 246 + source = "registry+https://github.com/rust-lang/crates.io-index" 247 + checksum = "180e549344080374f9b32ed41bf3b6b57885ff6a289367b3dbc10eea8acc1918" 248 + dependencies = [ 249 + "convert_case 0.6.0", 250 + "pathdiff", 251 + "serde_core", 252 + "toml", 253 + "winnow", 254 + ] 255 + 256 + [[package]] 257 + name = "console_error_panic_hook" 258 + version = "0.1.7" 259 + source = "registry+https://github.com/rust-lang/crates.io-index" 260 + checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 261 + dependencies = [ 262 + "cfg-if", 263 + "wasm-bindgen", 264 + ] 265 + 266 + [[package]] 267 + name = "const-str" 268 + version = "0.6.4" 269 + source = "registry+https://github.com/rust-lang/crates.io-index" 270 + checksum = "451d0640545a0553814b4c646eb549343561618838e9b42495f466131fe3ad49" 271 + 272 + [[package]] 273 + name = "const_format" 274 + version = "0.2.35" 275 + source = "registry+https://github.com/rust-lang/crates.io-index" 276 + checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" 277 + dependencies = [ 278 + "const_format_proc_macros", 279 + ] 280 + 281 + [[package]] 282 + name = "const_format_proc_macros" 283 + version = "0.2.34" 284 + source = "registry+https://github.com/rust-lang/crates.io-index" 285 + checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" 286 + dependencies = [ 287 + "proc-macro2", 288 + "quote", 289 + "unicode-xid", 290 + ] 291 + 292 + [[package]] 293 + name = "const_str_slice_concat" 294 + version = "0.1.0" 295 + source = "registry+https://github.com/rust-lang/crates.io-index" 296 + checksum = "f67855af358fcb20fac58f9d714c94e2b228fe5694c1c9b4ead4a366343eda1b" 297 + 298 + [[package]] 299 + name = "convert_case" 300 + version = "0.6.0" 301 + source = "registry+https://github.com/rust-lang/crates.io-index" 302 + checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" 303 + dependencies = [ 304 + "unicode-segmentation", 305 + ] 306 + 307 + [[package]] 308 + name = "convert_case" 309 + version = "0.8.0" 310 + source = "registry+https://github.com/rust-lang/crates.io-index" 311 + checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" 312 + dependencies = [ 313 + "unicode-segmentation", 314 + ] 315 + 316 + [[package]] 317 + name = "cpufeatures" 318 + version = "0.2.17" 319 + source = "registry+https://github.com/rust-lang/crates.io-index" 320 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 321 + dependencies = [ 322 + "libc", 323 + ] 324 + 325 + [[package]] 326 + name = "crossbeam-utils" 327 + version = "0.8.21" 328 + source = "registry+https://github.com/rust-lang/crates.io-index" 329 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 330 + 331 + [[package]] 332 + name = "crypto-common" 333 + version = "0.1.6" 334 + source = "registry+https://github.com/rust-lang/crates.io-index" 335 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 336 + dependencies = [ 337 + "generic-array", 338 + "typenum", 339 + ] 340 + 341 + [[package]] 342 + name = "dashmap" 343 + version = "6.1.0" 344 + source = "registry+https://github.com/rust-lang/crates.io-index" 345 + checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 346 + dependencies = [ 347 + "cfg-if", 348 + "crossbeam-utils", 349 + "hashbrown 0.14.5", 350 + "lock_api", 351 + "once_cell", 352 + "parking_lot_core", 353 + ] 354 + 355 + [[package]] 356 + name = "data-encoding" 357 + version = "2.9.0" 358 + source = "registry+https://github.com/rust-lang/crates.io-index" 359 + checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 360 + 361 + [[package]] 362 + name = "derive-where" 363 + version = "1.6.0" 364 + source = "registry+https://github.com/rust-lang/crates.io-index" 365 + checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" 366 + dependencies = [ 367 + "proc-macro2", 368 + "quote", 369 + "syn", 370 + ] 371 + 372 + [[package]] 373 + name = "digest" 374 + version = "0.10.7" 375 + source = "registry+https://github.com/rust-lang/crates.io-index" 376 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 377 + dependencies = [ 378 + "block-buffer", 379 + "crypto-common", 380 + ] 381 + 382 + [[package]] 383 + name = "displaydoc" 384 + version = "0.2.5" 385 + source = "registry+https://github.com/rust-lang/crates.io-index" 386 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 387 + dependencies = [ 388 + "proc-macro2", 389 + "quote", 390 + "syn", 391 + ] 392 + 393 + [[package]] 394 + name = "drain_filter_polyfill" 395 + version = "0.1.3" 396 + source = "registry+https://github.com/rust-lang/crates.io-index" 397 + checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" 398 + 399 + [[package]] 400 + name = "either" 401 + version = "1.15.0" 402 + source = "registry+https://github.com/rust-lang/crates.io-index" 403 + checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 404 + 405 + [[package]] 406 + name = "either_of" 407 + version = "0.1.6" 408 + source = "registry+https://github.com/rust-lang/crates.io-index" 409 + checksum = "216d23e0ec69759a17f05e1c553f3a6870e5ec73420fbb07807a6f34d5d1d5a4" 410 + dependencies = [ 411 + "paste", 412 + "pin-project-lite", 413 + ] 414 + 415 + [[package]] 416 + name = "encoding_rs" 417 + version = "0.8.35" 418 + source = "registry+https://github.com/rust-lang/crates.io-index" 419 + checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 420 + dependencies = [ 421 + "cfg-if", 422 + ] 423 + 424 + [[package]] 425 + name = "equivalent" 426 + version = "1.0.2" 427 + source = "registry+https://github.com/rust-lang/crates.io-index" 428 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 429 + 430 + [[package]] 431 + name = "erased" 432 + version = "0.1.2" 433 + source = "registry+https://github.com/rust-lang/crates.io-index" 434 + checksum = "a1731451909bde27714eacba19c2566362a7f35224f52b153d3f42cf60f72472" 435 + 436 + [[package]] 437 + name = "event-listener" 438 + version = "5.4.1" 439 + source = "registry+https://github.com/rust-lang/crates.io-index" 440 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" 441 + dependencies = [ 442 + "concurrent-queue", 443 + "parking", 444 + "pin-project-lite", 445 + ] 446 + 447 + [[package]] 448 + name = "event-listener-strategy" 449 + version = "0.5.4" 450 + source = "registry+https://github.com/rust-lang/crates.io-index" 451 + checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 452 + dependencies = [ 453 + "event-listener", 454 + "pin-project-lite", 455 + ] 456 + 457 + [[package]] 458 + name = "fnv" 459 + version = "1.0.7" 460 + source = "registry+https://github.com/rust-lang/crates.io-index" 461 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 462 + 463 + [[package]] 464 + name = "form_urlencoded" 465 + version = "1.2.2" 466 + source = "registry+https://github.com/rust-lang/crates.io-index" 467 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 468 + dependencies = [ 469 + "percent-encoding", 470 + ] 471 + 472 + [[package]] 473 + name = "futures" 474 + version = "0.3.31" 475 + source = "registry+https://github.com/rust-lang/crates.io-index" 476 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 477 + dependencies = [ 478 + "futures-channel", 479 + "futures-core", 480 + "futures-executor", 481 + "futures-io", 482 + "futures-sink", 483 + "futures-task", 484 + "futures-util", 485 + ] 486 + 487 + [[package]] 488 + name = "futures-channel" 489 + version = "0.3.31" 490 + source = "registry+https://github.com/rust-lang/crates.io-index" 491 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 492 + dependencies = [ 493 + "futures-core", 494 + "futures-sink", 495 + ] 496 + 497 + [[package]] 498 + name = "futures-core" 499 + version = "0.3.31" 500 + source = "registry+https://github.com/rust-lang/crates.io-index" 501 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 502 + 503 + [[package]] 504 + name = "futures-executor" 505 + version = "0.3.31" 506 + source = "registry+https://github.com/rust-lang/crates.io-index" 507 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 508 + dependencies = [ 509 + "futures-core", 510 + "futures-task", 511 + "futures-util", 512 + "num_cpus", 513 + ] 514 + 515 + [[package]] 516 + name = "futures-io" 517 + version = "0.3.31" 518 + source = "registry+https://github.com/rust-lang/crates.io-index" 519 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 520 + 521 + [[package]] 522 + name = "futures-macro" 523 + version = "0.3.31" 524 + source = "registry+https://github.com/rust-lang/crates.io-index" 525 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 526 + dependencies = [ 527 + "proc-macro2", 528 + "quote", 529 + "syn", 530 + ] 531 + 532 + [[package]] 533 + name = "futures-sink" 534 + version = "0.3.31" 535 + source = "registry+https://github.com/rust-lang/crates.io-index" 536 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 537 + 538 + [[package]] 539 + name = "futures-task" 540 + version = "0.3.31" 541 + source = "registry+https://github.com/rust-lang/crates.io-index" 542 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 543 + 544 + [[package]] 545 + name = "futures-util" 546 + version = "0.3.31" 547 + source = "registry+https://github.com/rust-lang/crates.io-index" 548 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 549 + dependencies = [ 550 + "futures-channel", 551 + "futures-core", 552 + "futures-io", 553 + "futures-macro", 554 + "futures-sink", 555 + "futures-task", 556 + "memchr", 557 + "pin-project-lite", 558 + "pin-utils", 559 + "slab", 560 + ] 561 + 562 + [[package]] 563 + name = "generic-array" 564 + version = "0.14.9" 565 + source = "registry+https://github.com/rust-lang/crates.io-index" 566 + checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 567 + dependencies = [ 568 + "typenum", 569 + "version_check", 570 + ] 571 + 572 + [[package]] 573 + name = "getrandom" 574 + version = "0.3.4" 575 + source = "registry+https://github.com/rust-lang/crates.io-index" 576 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 577 + dependencies = [ 578 + "cfg-if", 579 + "js-sys", 580 + "libc", 581 + "r-efi", 582 + "wasip2", 583 + "wasm-bindgen", 584 + ] 585 + 586 + [[package]] 587 + name = "gloo-net" 588 + version = "0.6.0" 589 + source = "registry+https://github.com/rust-lang/crates.io-index" 590 + checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" 591 + dependencies = [ 592 + "futures-channel", 593 + "futures-core", 594 + "futures-sink", 595 + "gloo-utils", 596 + "http", 597 + "js-sys", 598 + "pin-project", 599 + "serde", 600 + "serde_json", 601 + "thiserror 1.0.69", 602 + "wasm-bindgen", 603 + "wasm-bindgen-futures", 604 + "web-sys", 605 + ] 606 + 607 + [[package]] 608 + name = "gloo-utils" 609 + version = "0.2.0" 610 + source = "registry+https://github.com/rust-lang/crates.io-index" 611 + checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 612 + dependencies = [ 613 + "js-sys", 614 + "serde", 615 + "serde_json", 616 + "wasm-bindgen", 617 + "web-sys", 618 + ] 619 + 620 + [[package]] 621 + name = "guardian" 622 + version = "1.3.0" 623 + source = "registry+https://github.com/rust-lang/crates.io-index" 624 + checksum = "17e2ac29387b1aa07a1e448f7bb4f35b500787971e965b02842b900afa5c8f6f" 625 + 626 + [[package]] 627 + name = "hashbrown" 628 + version = "0.14.5" 629 + source = "registry+https://github.com/rust-lang/crates.io-index" 630 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 631 + 632 + [[package]] 633 + name = "hashbrown" 634 + version = "0.16.0" 635 + source = "registry+https://github.com/rust-lang/crates.io-index" 636 + checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 637 + 638 + [[package]] 639 + name = "hermit-abi" 640 + version = "0.5.2" 641 + source = "registry+https://github.com/rust-lang/crates.io-index" 642 + checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 643 + 644 + [[package]] 645 + name = "html-escape" 646 + version = "0.2.13" 647 + source = "registry+https://github.com/rust-lang/crates.io-index" 648 + checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" 649 + dependencies = [ 650 + "utf8-width", 651 + ] 652 + 653 + [[package]] 654 + name = "http" 655 + version = "1.3.1" 656 + source = "registry+https://github.com/rust-lang/crates.io-index" 657 + checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 658 + dependencies = [ 659 + "bytes", 660 + "fnv", 661 + "itoa", 662 + ] 663 + 664 + [[package]] 665 + name = "http-body" 666 + version = "1.0.1" 667 + source = "registry+https://github.com/rust-lang/crates.io-index" 668 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 669 + dependencies = [ 670 + "bytes", 671 + "http", 672 + ] 673 + 674 + [[package]] 675 + name = "http-body-util" 676 + version = "0.1.3" 677 + source = "registry+https://github.com/rust-lang/crates.io-index" 678 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 679 + dependencies = [ 680 + "bytes", 681 + "futures-core", 682 + "http", 683 + "http-body", 684 + "pin-project-lite", 685 + ] 686 + 687 + [[package]] 688 + name = "http-range-header" 689 + version = "0.4.2" 690 + source = "registry+https://github.com/rust-lang/crates.io-index" 691 + checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" 692 + 693 + [[package]] 694 + name = "httparse" 695 + version = "1.10.1" 696 + source = "registry+https://github.com/rust-lang/crates.io-index" 697 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 698 + 699 + [[package]] 700 + name = "httpdate" 701 + version = "1.0.3" 702 + source = "registry+https://github.com/rust-lang/crates.io-index" 703 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 704 + 705 + [[package]] 706 + name = "hydration_context" 707 + version = "0.3.0" 708 + source = "registry+https://github.com/rust-lang/crates.io-index" 709 + checksum = "e8714ae4adeaa846d838f380fbd72f049197de629948f91bf045329e0cf0a283" 710 + dependencies = [ 711 + "futures", 712 + "js-sys", 713 + "once_cell", 714 + "or_poisoned", 715 + "pin-project-lite", 716 + "serde", 717 + "throw_error", 718 + "wasm-bindgen", 719 + ] 720 + 721 + [[package]] 722 + name = "hyper" 723 + version = "1.7.0" 724 + source = "registry+https://github.com/rust-lang/crates.io-index" 725 + checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" 726 + dependencies = [ 727 + "atomic-waker", 728 + "bytes", 729 + "futures-channel", 730 + "futures-core", 731 + "http", 732 + "http-body", 733 + "httparse", 734 + "httpdate", 735 + "itoa", 736 + "pin-project-lite", 737 + "pin-utils", 738 + "smallvec", 739 + "tokio", 740 + ] 741 + 742 + [[package]] 743 + name = "hyper-util" 744 + version = "0.1.17" 745 + source = "registry+https://github.com/rust-lang/crates.io-index" 746 + checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" 747 + dependencies = [ 748 + "bytes", 749 + "futures-core", 750 + "http", 751 + "http-body", 752 + "hyper", 753 + "pin-project-lite", 754 + "tokio", 755 + "tower-service", 756 + ] 757 + 758 + [[package]] 759 + name = "icu_collections" 760 + version = "2.0.0" 761 + source = "registry+https://github.com/rust-lang/crates.io-index" 762 + checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 763 + dependencies = [ 764 + "displaydoc", 765 + "potential_utf", 766 + "yoke", 767 + "zerofrom", 768 + "zerovec", 769 + ] 770 + 771 + [[package]] 772 + name = "icu_locale_core" 773 + version = "2.0.0" 774 + source = "registry+https://github.com/rust-lang/crates.io-index" 775 + checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 776 + dependencies = [ 777 + "displaydoc", 778 + "litemap", 779 + "tinystr", 780 + "writeable", 781 + "zerovec", 782 + ] 783 + 784 + [[package]] 785 + name = "icu_normalizer" 786 + version = "2.0.0" 787 + source = "registry+https://github.com/rust-lang/crates.io-index" 788 + checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 789 + dependencies = [ 790 + "displaydoc", 791 + "icu_collections", 792 + "icu_normalizer_data", 793 + "icu_properties", 794 + "icu_provider", 795 + "smallvec", 796 + "zerovec", 797 + ] 798 + 799 + [[package]] 800 + name = "icu_normalizer_data" 801 + version = "2.0.0" 802 + source = "registry+https://github.com/rust-lang/crates.io-index" 803 + checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 804 + 805 + [[package]] 806 + name = "icu_properties" 807 + version = "2.0.1" 808 + source = "registry+https://github.com/rust-lang/crates.io-index" 809 + checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 810 + dependencies = [ 811 + "displaydoc", 812 + "icu_collections", 813 + "icu_locale_core", 814 + "icu_properties_data", 815 + "icu_provider", 816 + "potential_utf", 817 + "zerotrie", 818 + "zerovec", 819 + ] 820 + 821 + [[package]] 822 + name = "icu_properties_data" 823 + version = "2.0.1" 824 + source = "registry+https://github.com/rust-lang/crates.io-index" 825 + checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 826 + 827 + [[package]] 828 + name = "icu_provider" 829 + version = "2.0.0" 830 + source = "registry+https://github.com/rust-lang/crates.io-index" 831 + checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 832 + dependencies = [ 833 + "displaydoc", 834 + "icu_locale_core", 835 + "stable_deref_trait", 836 + "tinystr", 837 + "writeable", 838 + "yoke", 839 + "zerofrom", 840 + "zerotrie", 841 + "zerovec", 842 + ] 843 + 844 + [[package]] 845 + name = "idna" 846 + version = "1.1.0" 847 + source = "registry+https://github.com/rust-lang/crates.io-index" 848 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 849 + dependencies = [ 850 + "idna_adapter", 851 + "smallvec", 852 + "utf8_iter", 853 + ] 854 + 855 + [[package]] 856 + name = "idna_adapter" 857 + version = "1.2.1" 858 + source = "registry+https://github.com/rust-lang/crates.io-index" 859 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 860 + dependencies = [ 861 + "icu_normalizer", 862 + "icu_properties", 863 + ] 864 + 865 + [[package]] 866 + name = "indexmap" 867 + version = "2.12.0" 868 + source = "registry+https://github.com/rust-lang/crates.io-index" 869 + checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 870 + dependencies = [ 871 + "equivalent", 872 + "hashbrown 0.16.0", 873 + ] 874 + 875 + [[package]] 876 + name = "interpolator" 877 + version = "0.5.0" 878 + source = "registry+https://github.com/rust-lang/crates.io-index" 879 + checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8" 880 + 881 + [[package]] 882 + name = "inventory" 883 + version = "0.3.21" 884 + source = "registry+https://github.com/rust-lang/crates.io-index" 885 + checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" 886 + dependencies = [ 887 + "rustversion", 888 + ] 889 + 890 + [[package]] 891 + name = "itertools" 892 + version = "0.14.0" 893 + source = "registry+https://github.com/rust-lang/crates.io-index" 894 + checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 895 + dependencies = [ 896 + "either", 897 + ] 898 + 899 + [[package]] 900 + name = "itoa" 901 + version = "1.0.15" 902 + source = "registry+https://github.com/rust-lang/crates.io-index" 903 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 904 + 905 + [[package]] 906 + name = "js-sys" 907 + version = "0.3.77" 908 + source = "registry+https://github.com/rust-lang/crates.io-index" 909 + checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 910 + dependencies = [ 911 + "once_cell", 912 + "wasm-bindgen", 913 + ] 914 + 915 + [[package]] 916 + name = "leptos" 917 + version = "0.8.11" 918 + source = "registry+https://github.com/rust-lang/crates.io-index" 919 + checksum = "9d916b7c270615f493e43a43c389725094b8e08eb635fe2469c5c767750c62a0" 920 + dependencies = [ 921 + "any_spawner", 922 + "base64", 923 + "cfg-if", 924 + "either_of", 925 + "futures", 926 + "getrandom", 927 + "hydration_context", 928 + "leptos_config", 929 + "leptos_dom", 930 + "leptos_hot_reload", 931 + "leptos_macro", 932 + "leptos_server", 933 + "oco_ref", 934 + "or_poisoned", 935 + "paste", 936 + "rand", 937 + "reactive_graph", 938 + "rustc-hash", 939 + "rustc_version", 940 + "send_wrapper", 941 + "serde", 942 + "serde_json", 943 + "serde_qs", 944 + "server_fn", 945 + "slotmap", 946 + "tachys", 947 + "thiserror 2.0.17", 948 + "throw_error", 949 + "typed-builder", 950 + "typed-builder-macro", 951 + "wasm-bindgen", 952 + "wasm-bindgen-futures", 953 + "wasm_split_helpers", 954 + "web-sys", 955 + ] 956 + 957 + [[package]] 958 + name = "leptos_axum" 959 + version = "0.8.6" 960 + source = "registry+https://github.com/rust-lang/crates.io-index" 961 + checksum = "1ba0d920d78828a8811bc52bdb25c7982d3c707f3497c3bdbb8a6c796d843a9c" 962 + dependencies = [ 963 + "any_spawner", 964 + "axum", 965 + "dashmap", 966 + "futures", 967 + "hydration_context", 968 + "leptos", 969 + "leptos_integration_utils", 970 + "leptos_macro", 971 + "leptos_meta", 972 + "leptos_router", 973 + "parking_lot", 974 + "server_fn", 975 + "tachys", 976 + "tokio", 977 + "tower", 978 + "tower-http", 979 + ] 980 + 981 + [[package]] 982 + name = "leptos_config" 983 + version = "0.8.7" 984 + source = "registry+https://github.com/rust-lang/crates.io-index" 985 + checksum = "240b4cb96284256a44872563cf029f24d6fe14bc341dcf0f4164e077cb5a1471" 986 + dependencies = [ 987 + "config", 988 + "regex", 989 + "serde", 990 + "thiserror 2.0.17", 991 + "typed-builder", 992 + ] 993 + 994 + [[package]] 995 + name = "leptos_dom" 996 + version = "0.8.7" 997 + source = "registry+https://github.com/rust-lang/crates.io-index" 998 + checksum = "78f4330c88694c5575e0bfe4eecf81b045d14e76a4f8b00d5fd2a63f8779f895" 999 + dependencies = [ 1000 + "js-sys", 1001 + "or_poisoned", 1002 + "reactive_graph", 1003 + "send_wrapper", 1004 + "tachys", 1005 + "wasm-bindgen", 1006 + "web-sys", 1007 + ] 1008 + 1009 + [[package]] 1010 + name = "leptos_hot_reload" 1011 + version = "0.8.5" 1012 + source = "registry+https://github.com/rust-lang/crates.io-index" 1013 + checksum = "0d61ec3e1ff8aaee8c5151688550c0363f85bc37845450764c31ff7584a33f38" 1014 + dependencies = [ 1015 + "anyhow", 1016 + "camino", 1017 + "indexmap", 1018 + "parking_lot", 1019 + "proc-macro2", 1020 + "quote", 1021 + "rstml", 1022 + "serde", 1023 + "syn", 1024 + "walkdir", 1025 + ] 1026 + 1027 + [[package]] 1028 + name = "leptos_integration_utils" 1029 + version = "0.8.6" 1030 + source = "registry+https://github.com/rust-lang/crates.io-index" 1031 + checksum = "b530341b8fa93a33b590efe4d235ea109a1fd08b7676b503e9aa3d35f575edfb" 1032 + dependencies = [ 1033 + "futures", 1034 + "hydration_context", 1035 + "leptos", 1036 + "leptos_config", 1037 + "leptos_meta", 1038 + "leptos_router", 1039 + "reactive_graph", 1040 + ] 1041 + 1042 + [[package]] 1043 + name = "leptos_macro" 1044 + version = "0.8.10" 1045 + source = "registry+https://github.com/rust-lang/crates.io-index" 1046 + checksum = "18e29d53c342a1ebb63c4578b4d398057a25967166e7eaa3759f25bb74263472" 1047 + dependencies = [ 1048 + "attribute-derive", 1049 + "cfg-if", 1050 + "convert_case 0.8.0", 1051 + "html-escape", 1052 + "itertools", 1053 + "leptos_hot_reload", 1054 + "prettyplease", 1055 + "proc-macro-error2", 1056 + "proc-macro2", 1057 + "quote", 1058 + "rstml", 1059 + "rustc_version", 1060 + "server_fn_macro", 1061 + "syn", 1062 + "uuid", 1063 + ] 1064 + 1065 + [[package]] 1066 + name = "leptos_meta" 1067 + version = "0.8.5" 1068 + source = "registry+https://github.com/rust-lang/crates.io-index" 1069 + checksum = "2d489e38d3f541e9e43ecc2e3a815527840345a2afca629b3e23fcc1dd254578" 1070 + dependencies = [ 1071 + "futures", 1072 + "indexmap", 1073 + "leptos", 1074 + "or_poisoned", 1075 + "send_wrapper", 1076 + "wasm-bindgen", 1077 + "web-sys", 1078 + ] 1079 + 1080 + [[package]] 1081 + name = "leptos_router" 1082 + version = "0.8.9" 1083 + source = "registry+https://github.com/rust-lang/crates.io-index" 1084 + checksum = "21f482679fc1856ca368560fe7d827d7a34b5bbaa12c8b7c4daf1c02eaf8f09a" 1085 + dependencies = [ 1086 + "any_spawner", 1087 + "either_of", 1088 + "futures", 1089 + "gloo-net", 1090 + "js-sys", 1091 + "leptos", 1092 + "leptos_router_macro", 1093 + "or_poisoned", 1094 + "percent-encoding", 1095 + "reactive_graph", 1096 + "rustc_version", 1097 + "send_wrapper", 1098 + "tachys", 1099 + "thiserror 2.0.17", 1100 + "url", 1101 + "wasm-bindgen", 1102 + "web-sys", 1103 + ] 1104 + 1105 + [[package]] 1106 + name = "leptos_router_macro" 1107 + version = "0.8.5" 1108 + source = "registry+https://github.com/rust-lang/crates.io-index" 1109 + checksum = "571042420d79f4f5b6b0d149dc1561b03f47e08c37c8fa0dfc80c73ad67be8af" 1110 + dependencies = [ 1111 + "proc-macro-error2", 1112 + "proc-macro2", 1113 + "quote", 1114 + "syn", 1115 + ] 1116 + 1117 + [[package]] 1118 + name = "leptos_server" 1119 + version = "0.8.5" 1120 + source = "registry+https://github.com/rust-lang/crates.io-index" 1121 + checksum = "38acbf32649a4b127c8d4ccaed8fb388e19a746430a0ea8f8160e51e28c36e2d" 1122 + dependencies = [ 1123 + "any_spawner", 1124 + "base64", 1125 + "codee", 1126 + "futures", 1127 + "hydration_context", 1128 + "or_poisoned", 1129 + "reactive_graph", 1130 + "send_wrapper", 1131 + "serde", 1132 + "serde_json", 1133 + "server_fn", 1134 + "tachys", 1135 + ] 1136 + 1137 + [[package]] 1138 + name = "libc" 1139 + version = "0.2.177" 1140 + source = "registry+https://github.com/rust-lang/crates.io-index" 1141 + checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 1142 + 1143 + [[package]] 1144 + name = "linear-map" 1145 + version = "1.2.0" 1146 + source = "registry+https://github.com/rust-lang/crates.io-index" 1147 + checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" 1148 + 1149 + [[package]] 1150 + name = "litemap" 1151 + version = "0.8.0" 1152 + source = "registry+https://github.com/rust-lang/crates.io-index" 1153 + checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 1154 + 1155 + [[package]] 1156 + name = "lock_api" 1157 + version = "0.4.14" 1158 + source = "registry+https://github.com/rust-lang/crates.io-index" 1159 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 1160 + dependencies = [ 1161 + "scopeguard", 1162 + ] 1163 + 1164 + [[package]] 1165 + name = "log" 1166 + version = "0.4.28" 1167 + source = "registry+https://github.com/rust-lang/crates.io-index" 1168 + checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 1169 + 1170 + [[package]] 1171 + name = "manyhow" 1172 + version = "0.11.4" 1173 + source = "registry+https://github.com/rust-lang/crates.io-index" 1174 + checksum = "b33efb3ca6d3b07393750d4030418d594ab1139cee518f0dc88db70fec873587" 1175 + dependencies = [ 1176 + "manyhow-macros", 1177 + "proc-macro2", 1178 + "quote", 1179 + "syn", 1180 + ] 1181 + 1182 + [[package]] 1183 + name = "manyhow-macros" 1184 + version = "0.11.4" 1185 + source = "registry+https://github.com/rust-lang/crates.io-index" 1186 + checksum = "46fce34d199b78b6e6073abf984c9cf5fd3e9330145a93ee0738a7443e371495" 1187 + dependencies = [ 1188 + "proc-macro-utils", 1189 + "proc-macro2", 1190 + "quote", 1191 + ] 1192 + 1193 + [[package]] 1194 + name = "matchit" 1195 + version = "0.8.4" 1196 + source = "registry+https://github.com/rust-lang/crates.io-index" 1197 + checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" 1198 + 1199 + [[package]] 1200 + name = "memchr" 1201 + version = "2.7.6" 1202 + source = "registry+https://github.com/rust-lang/crates.io-index" 1203 + checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 1204 + 1205 + [[package]] 1206 + name = "mime" 1207 + version = "0.3.17" 1208 + source = "registry+https://github.com/rust-lang/crates.io-index" 1209 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1210 + 1211 + [[package]] 1212 + name = "mime_guess" 1213 + version = "2.0.5" 1214 + source = "registry+https://github.com/rust-lang/crates.io-index" 1215 + checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 1216 + dependencies = [ 1217 + "mime", 1218 + "unicase", 1219 + ] 1220 + 1221 + [[package]] 1222 + name = "mio" 1223 + version = "1.1.0" 1224 + source = "registry+https://github.com/rust-lang/crates.io-index" 1225 + checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 1226 + dependencies = [ 1227 + "libc", 1228 + "wasi", 1229 + "windows-sys 0.61.2", 1230 + ] 1231 + 1232 + [[package]] 1233 + name = "multer" 1234 + version = "3.1.0" 1235 + source = "registry+https://github.com/rust-lang/crates.io-index" 1236 + checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" 1237 + dependencies = [ 1238 + "bytes", 1239 + "encoding_rs", 1240 + "futures-util", 1241 + "http", 1242 + "httparse", 1243 + "memchr", 1244 + "mime", 1245 + "spin", 1246 + "version_check", 1247 + ] 1248 + 1249 + [[package]] 1250 + name = "next_tuple" 1251 + version = "0.1.0" 1252 + source = "registry+https://github.com/rust-lang/crates.io-index" 1253 + checksum = "60993920e071b0c9b66f14e2b32740a4e27ffc82854dcd72035887f336a09a28" 1254 + 1255 + [[package]] 1256 + name = "num_cpus" 1257 + version = "1.17.0" 1258 + source = "registry+https://github.com/rust-lang/crates.io-index" 1259 + checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" 1260 + dependencies = [ 1261 + "hermit-abi", 1262 + "libc", 1263 + ] 1264 + 1265 + [[package]] 1266 + name = "oco_ref" 1267 + version = "0.2.1" 1268 + source = "registry+https://github.com/rust-lang/crates.io-index" 1269 + checksum = "ed0423ff9973dea4d6bd075934fdda86ebb8c05bdf9d6b0507067d4a1226371d" 1270 + dependencies = [ 1271 + "serde", 1272 + "thiserror 2.0.17", 1273 + ] 1274 + 1275 + [[package]] 1276 + name = "once_cell" 1277 + version = "1.21.3" 1278 + source = "registry+https://github.com/rust-lang/crates.io-index" 1279 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1280 + 1281 + [[package]] 1282 + name = "or_poisoned" 1283 + version = "0.1.0" 1284 + source = "registry+https://github.com/rust-lang/crates.io-index" 1285 + checksum = "8c04f5d74368e4d0dfe06c45c8627c81bd7c317d52762d118fb9b3076f6420fd" 1286 + 1287 + [[package]] 1288 + name = "parking" 1289 + version = "2.2.1" 1290 + source = "registry+https://github.com/rust-lang/crates.io-index" 1291 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 1292 + 1293 + [[package]] 1294 + name = "parking_lot" 1295 + version = "0.12.5" 1296 + source = "registry+https://github.com/rust-lang/crates.io-index" 1297 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 1298 + dependencies = [ 1299 + "lock_api", 1300 + "parking_lot_core", 1301 + ] 1302 + 1303 + [[package]] 1304 + name = "parking_lot_core" 1305 + version = "0.9.12" 1306 + source = "registry+https://github.com/rust-lang/crates.io-index" 1307 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 1308 + dependencies = [ 1309 + "cfg-if", 1310 + "libc", 1311 + "redox_syscall", 1312 + "smallvec", 1313 + "windows-link", 1314 + ] 1315 + 1316 + [[package]] 1317 + name = "paste" 1318 + version = "1.0.15" 1319 + source = "registry+https://github.com/rust-lang/crates.io-index" 1320 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1321 + 1322 + [[package]] 1323 + name = "pathdiff" 1324 + version = "0.2.3" 1325 + source = "registry+https://github.com/rust-lang/crates.io-index" 1326 + checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 1327 + 1328 + [[package]] 1329 + name = "percent-encoding" 1330 + version = "2.3.2" 1331 + source = "registry+https://github.com/rust-lang/crates.io-index" 1332 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 1333 + 1334 + [[package]] 1335 + name = "pin-project" 1336 + version = "1.1.10" 1337 + source = "registry+https://github.com/rust-lang/crates.io-index" 1338 + checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 1339 + dependencies = [ 1340 + "pin-project-internal", 1341 + ] 1342 + 1343 + [[package]] 1344 + name = "pin-project-internal" 1345 + version = "1.1.10" 1346 + source = "registry+https://github.com/rust-lang/crates.io-index" 1347 + checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 1348 + dependencies = [ 1349 + "proc-macro2", 1350 + "quote", 1351 + "syn", 1352 + ] 1353 + 1354 + [[package]] 1355 + name = "pin-project-lite" 1356 + version = "0.2.16" 1357 + source = "registry+https://github.com/rust-lang/crates.io-index" 1358 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1359 + 1360 + [[package]] 1361 + name = "pin-utils" 1362 + version = "0.1.0" 1363 + source = "registry+https://github.com/rust-lang/crates.io-index" 1364 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1365 + 1366 + [[package]] 1367 + name = "potential_utf" 1368 + version = "0.1.3" 1369 + source = "registry+https://github.com/rust-lang/crates.io-index" 1370 + checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 1371 + dependencies = [ 1372 + "zerovec", 1373 + ] 1374 + 1375 + [[package]] 1376 + name = "ppv-lite86" 1377 + version = "0.2.21" 1378 + source = "registry+https://github.com/rust-lang/crates.io-index" 1379 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1380 + dependencies = [ 1381 + "zerocopy", 1382 + ] 1383 + 1384 + [[package]] 1385 + name = "prettyplease" 1386 + version = "0.2.37" 1387 + source = "registry+https://github.com/rust-lang/crates.io-index" 1388 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 1389 + dependencies = [ 1390 + "proc-macro2", 1391 + "syn", 1392 + ] 1393 + 1394 + [[package]] 1395 + name = "proc-macro-error-attr2" 1396 + version = "2.0.0" 1397 + source = "registry+https://github.com/rust-lang/crates.io-index" 1398 + checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" 1399 + dependencies = [ 1400 + "proc-macro2", 1401 + "quote", 1402 + ] 1403 + 1404 + [[package]] 1405 + name = "proc-macro-error2" 1406 + version = "2.0.1" 1407 + source = "registry+https://github.com/rust-lang/crates.io-index" 1408 + checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" 1409 + dependencies = [ 1410 + "proc-macro-error-attr2", 1411 + "proc-macro2", 1412 + "quote", 1413 + "syn", 1414 + ] 1415 + 1416 + [[package]] 1417 + name = "proc-macro-utils" 1418 + version = "0.10.0" 1419 + source = "registry+https://github.com/rust-lang/crates.io-index" 1420 + checksum = "eeaf08a13de400bc215877b5bdc088f241b12eb42f0a548d3390dc1c56bb7071" 1421 + dependencies = [ 1422 + "proc-macro2", 1423 + "quote", 1424 + "smallvec", 1425 + ] 1426 + 1427 + [[package]] 1428 + name = "proc-macro2" 1429 + version = "1.0.103" 1430 + source = "registry+https://github.com/rust-lang/crates.io-index" 1431 + checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 1432 + dependencies = [ 1433 + "unicode-ident", 1434 + ] 1435 + 1436 + [[package]] 1437 + name = "proc-macro2-diagnostics" 1438 + version = "0.10.1" 1439 + source = "registry+https://github.com/rust-lang/crates.io-index" 1440 + checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" 1441 + dependencies = [ 1442 + "proc-macro2", 1443 + "quote", 1444 + "syn", 1445 + "version_check", 1446 + "yansi", 1447 + ] 1448 + 1449 + [[package]] 1450 + name = "quote" 1451 + version = "1.0.41" 1452 + source = "registry+https://github.com/rust-lang/crates.io-index" 1453 + checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 1454 + dependencies = [ 1455 + "proc-macro2", 1456 + ] 1457 + 1458 + [[package]] 1459 + name = "quote-use" 1460 + version = "0.8.4" 1461 + source = "registry+https://github.com/rust-lang/crates.io-index" 1462 + checksum = "9619db1197b497a36178cfc736dc96b271fe918875fbf1344c436a7e93d0321e" 1463 + dependencies = [ 1464 + "quote", 1465 + "quote-use-macros", 1466 + ] 1467 + 1468 + [[package]] 1469 + name = "quote-use-macros" 1470 + version = "0.8.4" 1471 + source = "registry+https://github.com/rust-lang/crates.io-index" 1472 + checksum = "82ebfb7faafadc06a7ab141a6f67bcfb24cb8beb158c6fe933f2f035afa99f35" 1473 + dependencies = [ 1474 + "proc-macro-utils", 1475 + "proc-macro2", 1476 + "quote", 1477 + "syn", 1478 + ] 1479 + 1480 + [[package]] 1481 + name = "r-efi" 1482 + version = "5.3.0" 1483 + source = "registry+https://github.com/rust-lang/crates.io-index" 1484 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1485 + 1486 + [[package]] 1487 + name = "rand" 1488 + version = "0.9.2" 1489 + source = "registry+https://github.com/rust-lang/crates.io-index" 1490 + checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 1491 + dependencies = [ 1492 + "rand_chacha", 1493 + "rand_core", 1494 + ] 1495 + 1496 + [[package]] 1497 + name = "rand_chacha" 1498 + version = "0.9.0" 1499 + source = "registry+https://github.com/rust-lang/crates.io-index" 1500 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1501 + dependencies = [ 1502 + "ppv-lite86", 1503 + "rand_core", 1504 + ] 1505 + 1506 + [[package]] 1507 + name = "rand_core" 1508 + version = "0.9.3" 1509 + source = "registry+https://github.com/rust-lang/crates.io-index" 1510 + checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 1511 + dependencies = [ 1512 + "getrandom", 1513 + ] 1514 + 1515 + [[package]] 1516 + name = "reactive_graph" 1517 + version = "0.2.9" 1518 + source = "registry+https://github.com/rust-lang/crates.io-index" 1519 + checksum = "77cbe7c61b939523104883fd00d431f6c681c7005fd350f01a9ff2fc96509399" 1520 + dependencies = [ 1521 + "any_spawner", 1522 + "async-lock", 1523 + "futures", 1524 + "guardian", 1525 + "hydration_context", 1526 + "indexmap", 1527 + "or_poisoned", 1528 + "pin-project-lite", 1529 + "rustc-hash", 1530 + "rustc_version", 1531 + "send_wrapper", 1532 + "serde", 1533 + "slotmap", 1534 + "thiserror 2.0.17", 1535 + "web-sys", 1536 + ] 1537 + 1538 + [[package]] 1539 + name = "reactive_stores" 1540 + version = "0.3.0" 1541 + source = "registry+https://github.com/rust-lang/crates.io-index" 1542 + checksum = "25b73d94139821e0a2f31fb4e0eaf6ebbcf4d15c5e2fb353dc3babd4f6d35674" 1543 + dependencies = [ 1544 + "dashmap", 1545 + "guardian", 1546 + "itertools", 1547 + "or_poisoned", 1548 + "paste", 1549 + "reactive_graph", 1550 + "reactive_stores_macro", 1551 + "rustc-hash", 1552 + "send_wrapper", 1553 + ] 1554 + 1555 + [[package]] 1556 + name = "reactive_stores_macro" 1557 + version = "0.2.6" 1558 + source = "registry+https://github.com/rust-lang/crates.io-index" 1559 + checksum = "4fa40919eb2975100283b2a70e68eafce1e8bcf81f0622ff168e4c2b3f8d46bb" 1560 + dependencies = [ 1561 + "convert_case 0.8.0", 1562 + "proc-macro-error2", 1563 + "proc-macro2", 1564 + "quote", 1565 + "syn", 1566 + ] 1567 + 1568 + [[package]] 1569 + name = "redox_syscall" 1570 + version = "0.5.18" 1571 + source = "registry+https://github.com/rust-lang/crates.io-index" 1572 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 1573 + dependencies = [ 1574 + "bitflags", 1575 + ] 1576 + 1577 + [[package]] 1578 + name = "regex" 1579 + version = "1.12.2" 1580 + source = "registry+https://github.com/rust-lang/crates.io-index" 1581 + checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 1582 + dependencies = [ 1583 + "aho-corasick", 1584 + "memchr", 1585 + "regex-automata", 1586 + "regex-syntax", 1587 + ] 1588 + 1589 + [[package]] 1590 + name = "regex-automata" 1591 + version = "0.4.13" 1592 + source = "registry+https://github.com/rust-lang/crates.io-index" 1593 + checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 1594 + dependencies = [ 1595 + "aho-corasick", 1596 + "memchr", 1597 + "regex-syntax", 1598 + ] 1599 + 1600 + [[package]] 1601 + name = "regex-syntax" 1602 + version = "0.8.8" 1603 + source = "registry+https://github.com/rust-lang/crates.io-index" 1604 + checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 1605 + 1606 + [[package]] 1607 + name = "rstml" 1608 + version = "0.12.1" 1609 + source = "registry+https://github.com/rust-lang/crates.io-index" 1610 + checksum = "61cf4616de7499fc5164570d40ca4e1b24d231c6833a88bff0fe00725080fd56" 1611 + dependencies = [ 1612 + "derive-where", 1613 + "proc-macro2", 1614 + "proc-macro2-diagnostics", 1615 + "quote", 1616 + "syn", 1617 + "syn_derive", 1618 + "thiserror 2.0.17", 1619 + ] 1620 + 1621 + [[package]] 1622 + name = "rustc-hash" 1623 + version = "2.1.1" 1624 + source = "registry+https://github.com/rust-lang/crates.io-index" 1625 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1626 + 1627 + [[package]] 1628 + name = "rustc_version" 1629 + version = "0.4.1" 1630 + source = "registry+https://github.com/rust-lang/crates.io-index" 1631 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 1632 + dependencies = [ 1633 + "semver", 1634 + ] 1635 + 1636 + [[package]] 1637 + name = "rustversion" 1638 + version = "1.0.22" 1639 + source = "registry+https://github.com/rust-lang/crates.io-index" 1640 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1641 + 1642 + [[package]] 1643 + name = "ryu" 1644 + version = "1.0.20" 1645 + source = "registry+https://github.com/rust-lang/crates.io-index" 1646 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1647 + 1648 + [[package]] 1649 + name = "same-file" 1650 + version = "1.0.6" 1651 + source = "registry+https://github.com/rust-lang/crates.io-index" 1652 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1653 + dependencies = [ 1654 + "winapi-util", 1655 + ] 1656 + 1657 + [[package]] 1658 + name = "scopeguard" 1659 + version = "1.2.0" 1660 + source = "registry+https://github.com/rust-lang/crates.io-index" 1661 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1662 + 1663 + [[package]] 1664 + name = "semver" 1665 + version = "1.0.27" 1666 + source = "registry+https://github.com/rust-lang/crates.io-index" 1667 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1668 + 1669 + [[package]] 1670 + name = "send_wrapper" 1671 + version = "0.6.0" 1672 + source = "registry+https://github.com/rust-lang/crates.io-index" 1673 + checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 1674 + dependencies = [ 1675 + "futures-core", 1676 + ] 1677 + 1678 + [[package]] 1679 + name = "serde" 1680 + version = "1.0.228" 1681 + source = "registry+https://github.com/rust-lang/crates.io-index" 1682 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1683 + dependencies = [ 1684 + "serde_core", 1685 + "serde_derive", 1686 + ] 1687 + 1688 + [[package]] 1689 + name = "serde_core" 1690 + version = "1.0.228" 1691 + source = "registry+https://github.com/rust-lang/crates.io-index" 1692 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1693 + dependencies = [ 1694 + "serde_derive", 1695 + ] 1696 + 1697 + [[package]] 1698 + name = "serde_derive" 1699 + version = "1.0.228" 1700 + source = "registry+https://github.com/rust-lang/crates.io-index" 1701 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 1702 + dependencies = [ 1703 + "proc-macro2", 1704 + "quote", 1705 + "syn", 1706 + ] 1707 + 1708 + [[package]] 1709 + name = "serde_json" 1710 + version = "1.0.145" 1711 + source = "registry+https://github.com/rust-lang/crates.io-index" 1712 + checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 1713 + dependencies = [ 1714 + "itoa", 1715 + "memchr", 1716 + "ryu", 1717 + "serde", 1718 + "serde_core", 1719 + ] 1720 + 1721 + [[package]] 1722 + name = "serde_path_to_error" 1723 + version = "0.1.20" 1724 + source = "registry+https://github.com/rust-lang/crates.io-index" 1725 + checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" 1726 + dependencies = [ 1727 + "itoa", 1728 + "serde", 1729 + "serde_core", 1730 + ] 1731 + 1732 + [[package]] 1733 + name = "serde_qs" 1734 + version = "0.15.0" 1735 + source = "registry+https://github.com/rust-lang/crates.io-index" 1736 + checksum = "f3faaf9e727533a19351a43cc5a8de957372163c7d35cc48c90b75cdda13c352" 1737 + dependencies = [ 1738 + "percent-encoding", 1739 + "serde", 1740 + "thiserror 2.0.17", 1741 + ] 1742 + 1743 + [[package]] 1744 + name = "serde_spanned" 1745 + version = "1.0.3" 1746 + source = "registry+https://github.com/rust-lang/crates.io-index" 1747 + checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" 1748 + dependencies = [ 1749 + "serde_core", 1750 + ] 1751 + 1752 + [[package]] 1753 + name = "serde_urlencoded" 1754 + version = "0.7.1" 1755 + source = "registry+https://github.com/rust-lang/crates.io-index" 1756 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1757 + dependencies = [ 1758 + "form_urlencoded", 1759 + "itoa", 1760 + "ryu", 1761 + "serde", 1762 + ] 1763 + 1764 + [[package]] 1765 + name = "server_fn" 1766 + version = "0.8.8" 1767 + source = "registry+https://github.com/rust-lang/crates.io-index" 1768 + checksum = "fdc30228718f62d80a376964baf990edbcb5e97688fdc71183a8ef3d44cb6c89" 1769 + dependencies = [ 1770 + "axum", 1771 + "base64", 1772 + "bytes", 1773 + "const-str", 1774 + "const_format", 1775 + "dashmap", 1776 + "futures", 1777 + "gloo-net", 1778 + "http", 1779 + "http-body-util", 1780 + "hyper", 1781 + "inventory", 1782 + "js-sys", 1783 + "pin-project-lite", 1784 + "rustc_version", 1785 + "rustversion", 1786 + "send_wrapper", 1787 + "serde", 1788 + "serde_json", 1789 + "serde_qs", 1790 + "server_fn_macro_default", 1791 + "thiserror 2.0.17", 1792 + "throw_error", 1793 + "tokio", 1794 + "tower", 1795 + "tower-layer", 1796 + "url", 1797 + "wasm-bindgen", 1798 + "wasm-bindgen-futures", 1799 + "wasm-streams", 1800 + "web-sys", 1801 + "xxhash-rust", 1802 + ] 1803 + 1804 + [[package]] 1805 + name = "server_fn_macro" 1806 + version = "0.8.8" 1807 + source = "registry+https://github.com/rust-lang/crates.io-index" 1808 + checksum = "950b8cfc9ff5f39ca879c5a7c5e640de2695a199e18e424c3289d0964cabe642" 1809 + dependencies = [ 1810 + "const_format", 1811 + "convert_case 0.8.0", 1812 + "proc-macro2", 1813 + "quote", 1814 + "rustc_version", 1815 + "syn", 1816 + "xxhash-rust", 1817 + ] 1818 + 1819 + [[package]] 1820 + name = "server_fn_macro_default" 1821 + version = "0.8.5" 1822 + source = "registry+https://github.com/rust-lang/crates.io-index" 1823 + checksum = "63eb08f80db903d3c42f64e60ebb3875e0305be502bdc064ec0a0eab42207f00" 1824 + dependencies = [ 1825 + "server_fn_macro", 1826 + "syn", 1827 + ] 1828 + 1829 + [[package]] 1830 + name = "sha1" 1831 + version = "0.10.6" 1832 + source = "registry+https://github.com/rust-lang/crates.io-index" 1833 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1834 + dependencies = [ 1835 + "cfg-if", 1836 + "cpufeatures", 1837 + "digest", 1838 + ] 1839 + 1840 + [[package]] 1841 + name = "sha2" 1842 + version = "0.10.9" 1843 + source = "registry+https://github.com/rust-lang/crates.io-index" 1844 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 1845 + dependencies = [ 1846 + "cfg-if", 1847 + "cpufeatures", 1848 + "digest", 1849 + ] 1850 + 1851 + [[package]] 1852 + name = "slab" 1853 + version = "0.4.11" 1854 + source = "registry+https://github.com/rust-lang/crates.io-index" 1855 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 1856 + 1857 + [[package]] 1858 + name = "slotmap" 1859 + version = "1.0.7" 1860 + source = "registry+https://github.com/rust-lang/crates.io-index" 1861 + checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 1862 + dependencies = [ 1863 + "version_check", 1864 + ] 1865 + 1866 + [[package]] 1867 + name = "smallvec" 1868 + version = "1.15.1" 1869 + source = "registry+https://github.com/rust-lang/crates.io-index" 1870 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1871 + 1872 + [[package]] 1873 + name = "socket2" 1874 + version = "0.6.1" 1875 + source = "registry+https://github.com/rust-lang/crates.io-index" 1876 + checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 1877 + dependencies = [ 1878 + "libc", 1879 + "windows-sys 0.60.2", 1880 + ] 1881 + 1882 + [[package]] 1883 + name = "spin" 1884 + version = "0.9.8" 1885 + source = "registry+https://github.com/rust-lang/crates.io-index" 1886 + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1887 + 1888 + [[package]] 1889 + name = "stable_deref_trait" 1890 + version = "1.2.1" 1891 + source = "registry+https://github.com/rust-lang/crates.io-index" 1892 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 1893 + 1894 + [[package]] 1895 + name = "syn" 1896 + version = "2.0.108" 1897 + source = "registry+https://github.com/rust-lang/crates.io-index" 1898 + checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" 1899 + dependencies = [ 1900 + "proc-macro2", 1901 + "quote", 1902 + "unicode-ident", 1903 + ] 1904 + 1905 + [[package]] 1906 + name = "syn_derive" 1907 + version = "0.2.0" 1908 + source = "registry+https://github.com/rust-lang/crates.io-index" 1909 + checksum = "cdb066a04799e45f5d582e8fc6ec8e6d6896040d00898eb4e6a835196815b219" 1910 + dependencies = [ 1911 + "proc-macro-error2", 1912 + "proc-macro2", 1913 + "quote", 1914 + "syn", 1915 + ] 1916 + 1917 + [[package]] 1918 + name = "sync_wrapper" 1919 + version = "1.0.2" 1920 + source = "registry+https://github.com/rust-lang/crates.io-index" 1921 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 1922 + 1923 + [[package]] 1924 + name = "synstructure" 1925 + version = "0.13.2" 1926 + source = "registry+https://github.com/rust-lang/crates.io-index" 1927 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1928 + dependencies = [ 1929 + "proc-macro2", 1930 + "quote", 1931 + "syn", 1932 + ] 1933 + 1934 + [[package]] 1935 + name = "tachys" 1936 + version = "0.2.10" 1937 + source = "registry+https://github.com/rust-lang/crates.io-index" 1938 + checksum = "f88be37609c1891b748ed1feb9b08b0e772156a80d586b38726253f80859134d" 1939 + dependencies = [ 1940 + "any_spawner", 1941 + "async-trait", 1942 + "const_str_slice_concat", 1943 + "drain_filter_polyfill", 1944 + "either_of", 1945 + "erased", 1946 + "futures", 1947 + "html-escape", 1948 + "indexmap", 1949 + "itertools", 1950 + "js-sys", 1951 + "linear-map", 1952 + "next_tuple", 1953 + "oco_ref", 1954 + "or_poisoned", 1955 + "parking_lot", 1956 + "paste", 1957 + "reactive_graph", 1958 + "reactive_stores", 1959 + "rustc-hash", 1960 + "rustc_version", 1961 + "send_wrapper", 1962 + "slotmap", 1963 + "throw_error", 1964 + "wasm-bindgen", 1965 + "web-sys", 1966 + ] 1967 + 1968 + [[package]] 1969 + name = "thiserror" 1970 + version = "1.0.69" 1971 + source = "registry+https://github.com/rust-lang/crates.io-index" 1972 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1973 + dependencies = [ 1974 + "thiserror-impl 1.0.69", 1975 + ] 1976 + 1977 + [[package]] 1978 + name = "thiserror" 1979 + version = "2.0.17" 1980 + source = "registry+https://github.com/rust-lang/crates.io-index" 1981 + checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 1982 + dependencies = [ 1983 + "thiserror-impl 2.0.17", 1984 + ] 1985 + 1986 + [[package]] 1987 + name = "thiserror-impl" 1988 + version = "1.0.69" 1989 + source = "registry+https://github.com/rust-lang/crates.io-index" 1990 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1991 + dependencies = [ 1992 + "proc-macro2", 1993 + "quote", 1994 + "syn", 1995 + ] 1996 + 1997 + [[package]] 1998 + name = "thiserror-impl" 1999 + version = "2.0.17" 2000 + source = "registry+https://github.com/rust-lang/crates.io-index" 2001 + checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 2002 + dependencies = [ 2003 + "proc-macro2", 2004 + "quote", 2005 + "syn", 2006 + ] 2007 + 2008 + [[package]] 2009 + name = "throw_error" 2010 + version = "0.3.1" 2011 + source = "registry+https://github.com/rust-lang/crates.io-index" 2012 + checksum = "dc0ed6038fcbc0795aca7c92963ddda636573b956679204e044492d2b13c8f64" 2013 + dependencies = [ 2014 + "pin-project-lite", 2015 + ] 2016 + 2017 + [[package]] 2018 + name = "tinystr" 2019 + version = "0.8.1" 2020 + source = "registry+https://github.com/rust-lang/crates.io-index" 2021 + checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 2022 + dependencies = [ 2023 + "displaydoc", 2024 + "zerovec", 2025 + ] 2026 + 2027 + [[package]] 2028 + name = "tokio" 2029 + version = "1.48.0" 2030 + source = "registry+https://github.com/rust-lang/crates.io-index" 2031 + checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 2032 + dependencies = [ 2033 + "bytes", 2034 + "libc", 2035 + "mio", 2036 + "pin-project-lite", 2037 + "socket2", 2038 + "tokio-macros", 2039 + "windows-sys 0.61.2", 2040 + ] 2041 + 2042 + [[package]] 2043 + name = "tokio-macros" 2044 + version = "2.6.0" 2045 + source = "registry+https://github.com/rust-lang/crates.io-index" 2046 + checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" 2047 + dependencies = [ 2048 + "proc-macro2", 2049 + "quote", 2050 + "syn", 2051 + ] 2052 + 2053 + [[package]] 2054 + name = "tokio-tungstenite" 2055 + version = "0.28.0" 2056 + source = "registry+https://github.com/rust-lang/crates.io-index" 2057 + checksum = "d25a406cddcc431a75d3d9afc6a7c0f7428d4891dd973e4d54c56b46127bf857" 2058 + dependencies = [ 2059 + "futures-util", 2060 + "log", 2061 + "tokio", 2062 + "tungstenite", 2063 + ] 2064 + 2065 + [[package]] 2066 + name = "tokio-util" 2067 + version = "0.7.16" 2068 + source = "registry+https://github.com/rust-lang/crates.io-index" 2069 + checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 2070 + dependencies = [ 2071 + "bytes", 2072 + "futures-core", 2073 + "futures-sink", 2074 + "pin-project-lite", 2075 + "tokio", 2076 + ] 2077 + 2078 + [[package]] 2079 + name = "toml" 2080 + version = "0.9.8" 2081 + source = "registry+https://github.com/rust-lang/crates.io-index" 2082 + checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 2083 + dependencies = [ 2084 + "serde_core", 2085 + "serde_spanned", 2086 + "toml_datetime", 2087 + "toml_parser", 2088 + "winnow", 2089 + ] 2090 + 2091 + [[package]] 2092 + name = "toml_datetime" 2093 + version = "0.7.3" 2094 + source = "registry+https://github.com/rust-lang/crates.io-index" 2095 + checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" 2096 + dependencies = [ 2097 + "serde_core", 2098 + ] 2099 + 2100 + [[package]] 2101 + name = "toml_parser" 2102 + version = "1.0.4" 2103 + source = "registry+https://github.com/rust-lang/crates.io-index" 2104 + checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 2105 + dependencies = [ 2106 + "winnow", 2107 + ] 2108 + 2109 + [[package]] 2110 + name = "tower" 2111 + version = "0.5.2" 2112 + source = "registry+https://github.com/rust-lang/crates.io-index" 2113 + checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 2114 + dependencies = [ 2115 + "futures-core", 2116 + "futures-util", 2117 + "pin-project-lite", 2118 + "sync_wrapper", 2119 + "tokio", 2120 + "tower-layer", 2121 + "tower-service", 2122 + "tracing", 2123 + ] 2124 + 2125 + [[package]] 2126 + name = "tower-http" 2127 + version = "0.6.6" 2128 + source = "registry+https://github.com/rust-lang/crates.io-index" 2129 + checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 2130 + dependencies = [ 2131 + "bitflags", 2132 + "bytes", 2133 + "futures-core", 2134 + "futures-util", 2135 + "http", 2136 + "http-body", 2137 + "http-body-util", 2138 + "http-range-header", 2139 + "httpdate", 2140 + "mime", 2141 + "mime_guess", 2142 + "percent-encoding", 2143 + "pin-project-lite", 2144 + "tokio", 2145 + "tokio-util", 2146 + "tower-layer", 2147 + "tower-service", 2148 + "tracing", 2149 + ] 2150 + 2151 + [[package]] 2152 + name = "tower-layer" 2153 + version = "0.3.3" 2154 + source = "registry+https://github.com/rust-lang/crates.io-index" 2155 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 2156 + 2157 + [[package]] 2158 + name = "tower-service" 2159 + version = "0.3.3" 2160 + source = "registry+https://github.com/rust-lang/crates.io-index" 2161 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 2162 + 2163 + [[package]] 2164 + name = "tracing" 2165 + version = "0.1.41" 2166 + source = "registry+https://github.com/rust-lang/crates.io-index" 2167 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 2168 + dependencies = [ 2169 + "log", 2170 + "pin-project-lite", 2171 + "tracing-core", 2172 + ] 2173 + 2174 + [[package]] 2175 + name = "tracing-core" 2176 + version = "0.1.34" 2177 + source = "registry+https://github.com/rust-lang/crates.io-index" 2178 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 2179 + dependencies = [ 2180 + "once_cell", 2181 + ] 2182 + 2183 + [[package]] 2184 + name = "tungstenite" 2185 + version = "0.28.0" 2186 + source = "registry+https://github.com/rust-lang/crates.io-index" 2187 + checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442" 2188 + dependencies = [ 2189 + "bytes", 2190 + "data-encoding", 2191 + "http", 2192 + "httparse", 2193 + "log", 2194 + "rand", 2195 + "sha1", 2196 + "thiserror 2.0.17", 2197 + "utf-8", 2198 + ] 2199 + 2200 + [[package]] 2201 + name = "typed-builder" 2202 + version = "0.21.2" 2203 + source = "registry+https://github.com/rust-lang/crates.io-index" 2204 + checksum = "fef81aec2ca29576f9f6ae8755108640d0a86dd3161b2e8bca6cfa554e98f77d" 2205 + dependencies = [ 2206 + "typed-builder-macro", 2207 + ] 2208 + 2209 + [[package]] 2210 + name = "typed-builder-macro" 2211 + version = "0.21.2" 2212 + source = "registry+https://github.com/rust-lang/crates.io-index" 2213 + checksum = "1ecb9ecf7799210407c14a8cfdfe0173365780968dc57973ed082211958e0b18" 2214 + dependencies = [ 2215 + "proc-macro2", 2216 + "quote", 2217 + "syn", 2218 + ] 2219 + 2220 + [[package]] 2221 + name = "typenum" 2222 + version = "1.19.0" 2223 + source = "registry+https://github.com/rust-lang/crates.io-index" 2224 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 2225 + 2226 + [[package]] 2227 + name = "unicase" 2228 + version = "2.8.1" 2229 + source = "registry+https://github.com/rust-lang/crates.io-index" 2230 + checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 2231 + 2232 + [[package]] 2233 + name = "unicode-ident" 2234 + version = "1.0.20" 2235 + source = "registry+https://github.com/rust-lang/crates.io-index" 2236 + checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" 2237 + 2238 + [[package]] 2239 + name = "unicode-segmentation" 2240 + version = "1.12.0" 2241 + source = "registry+https://github.com/rust-lang/crates.io-index" 2242 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2243 + 2244 + [[package]] 2245 + name = "unicode-xid" 2246 + version = "0.2.6" 2247 + source = "registry+https://github.com/rust-lang/crates.io-index" 2248 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 2249 + 2250 + [[package]] 2251 + name = "url" 2252 + version = "2.5.7" 2253 + source = "registry+https://github.com/rust-lang/crates.io-index" 2254 + checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 2255 + dependencies = [ 2256 + "form_urlencoded", 2257 + "idna", 2258 + "percent-encoding", 2259 + "serde", 2260 + ] 2261 + 2262 + [[package]] 2263 + name = "utf-8" 2264 + version = "0.7.6" 2265 + source = "registry+https://github.com/rust-lang/crates.io-index" 2266 + checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 2267 + 2268 + [[package]] 2269 + name = "utf8-width" 2270 + version = "0.1.7" 2271 + source = "registry+https://github.com/rust-lang/crates.io-index" 2272 + checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" 2273 + 2274 + [[package]] 2275 + name = "utf8_iter" 2276 + version = "1.0.4" 2277 + source = "registry+https://github.com/rust-lang/crates.io-index" 2278 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2279 + 2280 + [[package]] 2281 + name = "uuid" 2282 + version = "1.18.1" 2283 + source = "registry+https://github.com/rust-lang/crates.io-index" 2284 + checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" 2285 + dependencies = [ 2286 + "getrandom", 2287 + "js-sys", 2288 + "wasm-bindgen", 2289 + ] 2290 + 2291 + [[package]] 2292 + name = "version_check" 2293 + version = "0.9.5" 2294 + source = "registry+https://github.com/rust-lang/crates.io-index" 2295 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2296 + 2297 + [[package]] 2298 + name = "walkdir" 2299 + version = "2.5.0" 2300 + source = "registry+https://github.com/rust-lang/crates.io-index" 2301 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 2302 + dependencies = [ 2303 + "same-file", 2304 + "winapi-util", 2305 + ] 2306 + 2307 + [[package]] 2308 + name = "wasi" 2309 + version = "0.11.1+wasi-snapshot-preview1" 2310 + source = "registry+https://github.com/rust-lang/crates.io-index" 2311 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 2312 + 2313 + [[package]] 2314 + name = "wasip2" 2315 + version = "1.0.1+wasi-0.2.4" 2316 + source = "registry+https://github.com/rust-lang/crates.io-index" 2317 + checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 2318 + dependencies = [ 2319 + "wit-bindgen", 2320 + ] 2321 + 2322 + [[package]] 2323 + name = "wasm-bindgen" 2324 + version = "0.2.100" 2325 + source = "registry+https://github.com/rust-lang/crates.io-index" 2326 + checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 2327 + dependencies = [ 2328 + "cfg-if", 2329 + "once_cell", 2330 + "rustversion", 2331 + "wasm-bindgen-macro", 2332 + ] 2333 + 2334 + [[package]] 2335 + name = "wasm-bindgen-backend" 2336 + version = "0.2.100" 2337 + source = "registry+https://github.com/rust-lang/crates.io-index" 2338 + checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 2339 + dependencies = [ 2340 + "bumpalo", 2341 + "log", 2342 + "proc-macro2", 2343 + "quote", 2344 + "syn", 2345 + "wasm-bindgen-shared", 2346 + ] 2347 + 2348 + [[package]] 2349 + name = "wasm-bindgen-futures" 2350 + version = "0.4.50" 2351 + source = "registry+https://github.com/rust-lang/crates.io-index" 2352 + checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 2353 + dependencies = [ 2354 + "cfg-if", 2355 + "js-sys", 2356 + "once_cell", 2357 + "wasm-bindgen", 2358 + "web-sys", 2359 + ] 2360 + 2361 + [[package]] 2362 + name = "wasm-bindgen-macro" 2363 + version = "0.2.100" 2364 + source = "registry+https://github.com/rust-lang/crates.io-index" 2365 + checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 2366 + dependencies = [ 2367 + "quote", 2368 + "wasm-bindgen-macro-support", 2369 + ] 2370 + 2371 + [[package]] 2372 + name = "wasm-bindgen-macro-support" 2373 + version = "0.2.100" 2374 + source = "registry+https://github.com/rust-lang/crates.io-index" 2375 + checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 2376 + dependencies = [ 2377 + "proc-macro2", 2378 + "quote", 2379 + "syn", 2380 + "wasm-bindgen-backend", 2381 + "wasm-bindgen-shared", 2382 + ] 2383 + 2384 + [[package]] 2385 + name = "wasm-bindgen-shared" 2386 + version = "0.2.100" 2387 + source = "registry+https://github.com/rust-lang/crates.io-index" 2388 + checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 2389 + dependencies = [ 2390 + "unicode-ident", 2391 + ] 2392 + 2393 + [[package]] 2394 + name = "wasm-streams" 2395 + version = "0.4.2" 2396 + source = "registry+https://github.com/rust-lang/crates.io-index" 2397 + checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 2398 + dependencies = [ 2399 + "futures-util", 2400 + "js-sys", 2401 + "wasm-bindgen", 2402 + "wasm-bindgen-futures", 2403 + "web-sys", 2404 + ] 2405 + 2406 + [[package]] 2407 + name = "wasm_split_helpers" 2408 + version = "0.1.2" 2409 + source = "registry+https://github.com/rust-lang/crates.io-index" 2410 + checksum = "c50e0e45d0d871605a21fc4ee93a5380b7bdc41b5eda22e42f0777a4ce79b65c" 2411 + dependencies = [ 2412 + "async-once-cell", 2413 + "or_poisoned", 2414 + "wasm_split_macros", 2415 + ] 2416 + 2417 + [[package]] 2418 + name = "wasm_split_macros" 2419 + version = "0.1.3" 2420 + source = "registry+https://github.com/rust-lang/crates.io-index" 2421 + checksum = "aecbaea69b61abedb9b8199720e65a529a2dd2294d27113bfa1b7c1db598f672" 2422 + dependencies = [ 2423 + "base16", 2424 + "digest", 2425 + "quote", 2426 + "sha2", 2427 + "syn", 2428 + "wasm-bindgen", 2429 + ] 2430 + 2431 + [[package]] 2432 + name = "web-sys" 2433 + version = "0.3.77" 2434 + source = "registry+https://github.com/rust-lang/crates.io-index" 2435 + checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 2436 + dependencies = [ 2437 + "js-sys", 2438 + "wasm-bindgen", 2439 + ] 2440 + 2441 + [[package]] 2442 + name = "winapi-util" 2443 + version = "0.1.11" 2444 + source = "registry+https://github.com/rust-lang/crates.io-index" 2445 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 2446 + dependencies = [ 2447 + "windows-sys 0.61.2", 2448 + ] 2449 + 2450 + [[package]] 2451 + name = "windows-link" 2452 + version = "0.2.1" 2453 + source = "registry+https://github.com/rust-lang/crates.io-index" 2454 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 2455 + 2456 + [[package]] 2457 + name = "windows-sys" 2458 + version = "0.60.2" 2459 + source = "registry+https://github.com/rust-lang/crates.io-index" 2460 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 2461 + dependencies = [ 2462 + "windows-targets", 2463 + ] 2464 + 2465 + [[package]] 2466 + name = "windows-sys" 2467 + version = "0.61.2" 2468 + source = "registry+https://github.com/rust-lang/crates.io-index" 2469 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 2470 + dependencies = [ 2471 + "windows-link", 2472 + ] 2473 + 2474 + [[package]] 2475 + name = "windows-targets" 2476 + version = "0.53.5" 2477 + source = "registry+https://github.com/rust-lang/crates.io-index" 2478 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 2479 + dependencies = [ 2480 + "windows-link", 2481 + "windows_aarch64_gnullvm", 2482 + "windows_aarch64_msvc", 2483 + "windows_i686_gnu", 2484 + "windows_i686_gnullvm", 2485 + "windows_i686_msvc", 2486 + "windows_x86_64_gnu", 2487 + "windows_x86_64_gnullvm", 2488 + "windows_x86_64_msvc", 2489 + ] 2490 + 2491 + [[package]] 2492 + name = "windows_aarch64_gnullvm" 2493 + version = "0.53.1" 2494 + source = "registry+https://github.com/rust-lang/crates.io-index" 2495 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 2496 + 2497 + [[package]] 2498 + name = "windows_aarch64_msvc" 2499 + version = "0.53.1" 2500 + source = "registry+https://github.com/rust-lang/crates.io-index" 2501 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 2502 + 2503 + [[package]] 2504 + name = "windows_i686_gnu" 2505 + version = "0.53.1" 2506 + source = "registry+https://github.com/rust-lang/crates.io-index" 2507 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 2508 + 2509 + [[package]] 2510 + name = "windows_i686_gnullvm" 2511 + version = "0.53.1" 2512 + source = "registry+https://github.com/rust-lang/crates.io-index" 2513 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 2514 + 2515 + [[package]] 2516 + name = "windows_i686_msvc" 2517 + version = "0.53.1" 2518 + source = "registry+https://github.com/rust-lang/crates.io-index" 2519 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 2520 + 2521 + [[package]] 2522 + name = "windows_x86_64_gnu" 2523 + version = "0.53.1" 2524 + source = "registry+https://github.com/rust-lang/crates.io-index" 2525 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 2526 + 2527 + [[package]] 2528 + name = "windows_x86_64_gnullvm" 2529 + version = "0.53.1" 2530 + source = "registry+https://github.com/rust-lang/crates.io-index" 2531 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 2532 + 2533 + [[package]] 2534 + name = "windows_x86_64_msvc" 2535 + version = "0.53.1" 2536 + source = "registry+https://github.com/rust-lang/crates.io-index" 2537 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 2538 + 2539 + [[package]] 2540 + name = "winnow" 2541 + version = "0.7.13" 2542 + source = "registry+https://github.com/rust-lang/crates.io-index" 2543 + checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 2544 + dependencies = [ 2545 + "memchr", 2546 + ] 2547 + 2548 + [[package]] 2549 + name = "wit-bindgen" 2550 + version = "0.46.0" 2551 + source = "registry+https://github.com/rust-lang/crates.io-index" 2552 + checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 2553 + 2554 + [[package]] 2555 + name = "writeable" 2556 + version = "0.6.1" 2557 + source = "registry+https://github.com/rust-lang/crates.io-index" 2558 + checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 2559 + 2560 + [[package]] 2561 + name = "xxhash-rust" 2562 + version = "0.8.15" 2563 + source = "registry+https://github.com/rust-lang/crates.io-index" 2564 + checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" 2565 + 2566 + [[package]] 2567 + name = "yansi" 2568 + version = "1.0.1" 2569 + source = "registry+https://github.com/rust-lang/crates.io-index" 2570 + checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 2571 + 2572 + [[package]] 2573 + name = "yoke" 2574 + version = "0.8.0" 2575 + source = "registry+https://github.com/rust-lang/crates.io-index" 2576 + checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 2577 + dependencies = [ 2578 + "serde", 2579 + "stable_deref_trait", 2580 + "yoke-derive", 2581 + "zerofrom", 2582 + ] 2583 + 2584 + [[package]] 2585 + name = "yoke-derive" 2586 + version = "0.8.0" 2587 + source = "registry+https://github.com/rust-lang/crates.io-index" 2588 + checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 2589 + dependencies = [ 2590 + "proc-macro2", 2591 + "quote", 2592 + "syn", 2593 + "synstructure", 2594 + ] 2595 + 2596 + [[package]] 2597 + name = "zerocopy" 2598 + version = "0.8.27" 2599 + source = "registry+https://github.com/rust-lang/crates.io-index" 2600 + checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 2601 + dependencies = [ 2602 + "zerocopy-derive", 2603 + ] 2604 + 2605 + [[package]] 2606 + name = "zerocopy-derive" 2607 + version = "0.8.27" 2608 + source = "registry+https://github.com/rust-lang/crates.io-index" 2609 + checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 2610 + dependencies = [ 2611 + "proc-macro2", 2612 + "quote", 2613 + "syn", 2614 + ] 2615 + 2616 + [[package]] 2617 + name = "zerofrom" 2618 + version = "0.1.6" 2619 + source = "registry+https://github.com/rust-lang/crates.io-index" 2620 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 2621 + dependencies = [ 2622 + "zerofrom-derive", 2623 + ] 2624 + 2625 + [[package]] 2626 + name = "zerofrom-derive" 2627 + version = "0.1.6" 2628 + source = "registry+https://github.com/rust-lang/crates.io-index" 2629 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 2630 + dependencies = [ 2631 + "proc-macro2", 2632 + "quote", 2633 + "syn", 2634 + "synstructure", 2635 + ] 2636 + 2637 + [[package]] 2638 + name = "zerotrie" 2639 + version = "0.2.2" 2640 + source = "registry+https://github.com/rust-lang/crates.io-index" 2641 + checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 2642 + dependencies = [ 2643 + "displaydoc", 2644 + "yoke", 2645 + "zerofrom", 2646 + ] 2647 + 2648 + [[package]] 2649 + name = "zerovec" 2650 + version = "0.11.4" 2651 + source = "registry+https://github.com/rust-lang/crates.io-index" 2652 + checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 2653 + dependencies = [ 2654 + "yoke", 2655 + "zerofrom", 2656 + "zerovec-derive", 2657 + ] 2658 + 2659 + [[package]] 2660 + name = "zerovec-derive" 2661 + version = "0.11.1" 2662 + source = "registry+https://github.com/rust-lang/crates.io-index" 2663 + checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 2664 + dependencies = [ 2665 + "proc-macro2", 2666 + "quote", 2667 + "syn", 2668 + ]
+96
Cargo.toml
··· 3 version = "0.1.0" 4 edition = "2024" 5 6 [dependencies]
··· 3 version = "0.1.0" 4 edition = "2024" 5 6 + [lib] 7 + crate-type = ["cdylib", "rlib"] 8 + 9 [dependencies] 10 + leptos = { version = "0.8.0" } 11 + leptos_router = { version = "0.8.0" } 12 + axum = { version = "0.8.0", optional = true } 13 + console_error_panic_hook = { version = "0.1", optional = true } 14 + leptos_axum = { version = "0.8.0", optional = true } 15 + leptos_meta = { version = "0.8.0" } 16 + tokio = { version = "1", features = ["rt-multi-thread"], optional = true } 17 + wasm-bindgen = { version = "=0.2.100", optional = true } 18 + 19 + [features] 20 + hydrate = [ 21 + "leptos/hydrate", 22 + "dep:console_error_panic_hook", 23 + "dep:wasm-bindgen", 24 + ] 25 + ssr = [ 26 + "dep:axum", 27 + "dep:tokio", 28 + "dep:leptos_axum", 29 + "leptos/ssr", 30 + "leptos_meta/ssr", 31 + "leptos_router/ssr", 32 + ] 33 + 34 + # Defines a size-optimized profile for the WASM bundle in release mode 35 + [profile.wasm-release] 36 + inherits = "release" 37 + opt-level = 'z' 38 + lto = true 39 + codegen-units = 1 40 + panic = "abort" 41 + 42 + [package.metadata.leptos] 43 + # The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name 44 + output-name = "calpoll" 45 + 46 + # The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup. 47 + site-root = "target/site" 48 + 49 + # The site-root relative folder where all compiled output (JS, WASM and CSS) is written 50 + # Defaults to pkg 51 + site-pkg-dir = "pkg" 52 + 53 + # [Optional] The source CSS file. If it ends with .sass or .scss then it will be compiled by dart-sass into CSS. The CSS is optimized by Lightning CSS before being written to <site-root>/<site-pkg>/app.css 54 + style-file = "style/main.scss" 55 + # Assets source dir. All files found here will be copied and synchronized to site-root. 56 + # The assets-dir cannot have a sub directory with the same name/path as site-pkg-dir. 57 + # 58 + # Optional. Env: LEPTOS_ASSETS_DIR. 59 + assets-dir = "public" 60 + 61 + # The IP and port (ex: 127.0.0.1:3000) where the server serves the content. Use it in your server setup. 62 + site-addr = "127.0.0.1:3000" 63 + 64 + # The port to use for automatic reload monitoring 65 + reload-port = 3001 66 + 67 + # [Optional] Command to use when running end2end tests. It will run in the end2end dir. 68 + # [Windows] for non-WSL use "npx.cmd playwright test" 69 + # This binary name can be checked in Powershell with Get-Command npx 70 + end2end-cmd = "npx playwright test" 71 + end2end-dir = "end2end" 72 + 73 + # The browserlist query used for optimizing the CSS. 74 + browserquery = "defaults" 75 + 76 + # The environment Leptos will run in, usually either "DEV" or "PROD" 77 + env = "DEV" 78 + 79 + # The features to use when compiling the bin target 80 + # 81 + # Optional. Can be over-ridden with the command line parameter --bin-features 82 + bin-features = ["ssr"] 83 + 84 + # If the --no-default-features flag should be used when compiling the bin target 85 + # 86 + # Optional. Defaults to false. 87 + bin-default-features = false 88 + 89 + # The features to use when compiling the lib target 90 + # 91 + # Optional. Can be over-ridden with the command line parameter --lib-features 92 + lib-features = ["hydrate"] 93 + 94 + # If the --no-default-features flag should be used when compiling the lib target 95 + # 96 + # Optional. Defaults to false. 97 + lib-default-features = false 98 + 99 + # The profile to use for the lib target when compiling for release 100 + # 101 + # Optional. Defaults to "release". 102 + lib-profile-release = "wasm-release"
+3
end2end/.gitignore
···
··· 1 + node_modules 2 + playwright-report 3 + test-results
+167
end2end/package-lock.json
···
··· 1 + { 2 + "name": "end2end", 3 + "version": "1.0.0", 4 + "lockfileVersion": 2, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "end2end", 9 + "version": "1.0.0", 10 + "license": "ISC", 11 + "devDependencies": { 12 + "@playwright/test": "^1.44.1", 13 + "@types/node": "^20.12.12", 14 + "typescript": "^5.4.5" 15 + } 16 + }, 17 + "node_modules/@playwright/test": { 18 + "version": "1.44.1", 19 + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", 20 + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", 21 + "dev": true, 22 + "license": "Apache-2.0", 23 + "dependencies": { 24 + "playwright": "1.44.1" 25 + }, 26 + "bin": { 27 + "playwright": "cli.js" 28 + }, 29 + "engines": { 30 + "node": ">=16" 31 + } 32 + }, 33 + "node_modules/@types/node": { 34 + "version": "20.12.12", 35 + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", 36 + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", 37 + "dev": true, 38 + "license": "MIT", 39 + "dependencies": { 40 + "undici-types": "~5.26.4" 41 + } 42 + }, 43 + "node_modules/fsevents": { 44 + "version": "2.3.2", 45 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 46 + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 47 + "dev": true, 48 + "hasInstallScript": true, 49 + "license": "MIT", 50 + "optional": true, 51 + "os": [ 52 + "darwin" 53 + ], 54 + "engines": { 55 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 56 + } 57 + }, 58 + "node_modules/playwright": { 59 + "version": "1.44.1", 60 + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", 61 + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", 62 + "dev": true, 63 + "license": "Apache-2.0", 64 + "dependencies": { 65 + "playwright-core": "1.44.1" 66 + }, 67 + "bin": { 68 + "playwright": "cli.js" 69 + }, 70 + "engines": { 71 + "node": ">=16" 72 + }, 73 + "optionalDependencies": { 74 + "fsevents": "2.3.2" 75 + } 76 + }, 77 + "node_modules/playwright-core": { 78 + "version": "1.44.1", 79 + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", 80 + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", 81 + "dev": true, 82 + "license": "Apache-2.0", 83 + "bin": { 84 + "playwright-core": "cli.js" 85 + }, 86 + "engines": { 87 + "node": ">=16" 88 + } 89 + }, 90 + "node_modules/typescript": { 91 + "version": "5.4.5", 92 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", 93 + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", 94 + "dev": true, 95 + "license": "Apache-2.0", 96 + "bin": { 97 + "tsc": "bin/tsc", 98 + "tsserver": "bin/tsserver" 99 + }, 100 + "engines": { 101 + "node": ">=14.17" 102 + } 103 + }, 104 + "node_modules/undici-types": { 105 + "version": "5.26.5", 106 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 107 + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 108 + "dev": true, 109 + "license": "MIT" 110 + } 111 + }, 112 + "dependencies": { 113 + "@playwright/test": { 114 + "version": "1.44.1", 115 + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", 116 + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", 117 + "dev": true, 118 + "requires": { 119 + "playwright": "1.44.1" 120 + } 121 + }, 122 + "@types/node": { 123 + "version": "20.12.12", 124 + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", 125 + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", 126 + "dev": true, 127 + "requires": { 128 + "undici-types": "~5.26.4" 129 + } 130 + }, 131 + "fsevents": { 132 + "version": "2.3.2", 133 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 134 + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 135 + "dev": true, 136 + "optional": true 137 + }, 138 + "playwright": { 139 + "version": "1.44.1", 140 + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", 141 + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", 142 + "dev": true, 143 + "requires": { 144 + "fsevents": "2.3.2", 145 + "playwright-core": "1.44.1" 146 + } 147 + }, 148 + "playwright-core": { 149 + "version": "1.44.1", 150 + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", 151 + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", 152 + "dev": true 153 + }, 154 + "typescript": { 155 + "version": "5.4.5", 156 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", 157 + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", 158 + "dev": true 159 + }, 160 + "undici-types": { 161 + "version": "5.26.5", 162 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 163 + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", 164 + "dev": true 165 + } 166 + } 167 + }
+15
end2end/package.json
···
··· 1 + { 2 + "name": "end2end", 3 + "version": "1.0.0", 4 + "description": "", 5 + "main": "index.js", 6 + "scripts": {}, 7 + "keywords": [], 8 + "author": "", 9 + "license": "ISC", 10 + "devDependencies": { 11 + "@playwright/test": "^1.44.1", 12 + "@types/node": "^20.12.12", 13 + "typescript": "^5.4.5" 14 + } 15 + }
+105
end2end/playwright.config.ts
···
··· 1 + import type { PlaywrightTestConfig } from "@playwright/test"; 2 + import { devices, defineConfig } from "@playwright/test"; 3 + 4 + /** 5 + * Read environment variables from file. 6 + * https://github.com/motdotla/dotenv 7 + */ 8 + // require('dotenv').config(); 9 + 10 + /** 11 + * See https://playwright.dev/docs/test-configuration. 12 + */ 13 + export default defineConfig({ 14 + testDir: "./tests", 15 + /* Maximum time one test can run for. */ 16 + timeout: 30 * 1000, 17 + expect: { 18 + /** 19 + * Maximum time expect() should wait for the condition to be met. 20 + * For example in `await expect(locator).toHaveText();` 21 + */ 22 + timeout: 5000, 23 + }, 24 + /* Run tests in files in parallel */ 25 + fullyParallel: true, 26 + /* Fail the build on CI if you accidentally left test.only in the source code. */ 27 + forbidOnly: !!process.env.CI, 28 + /* Retry on CI only */ 29 + retries: process.env.CI ? 2 : 0, 30 + /* Opt out of parallel tests on CI. */ 31 + workers: process.env.CI ? 1 : undefined, 32 + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ 33 + reporter: "html", 34 + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ 35 + use: { 36 + /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ 37 + actionTimeout: 0, 38 + /* Base URL to use in actions like `await page.goto('/')`. */ 39 + // baseURL: 'http://localhost:3000', 40 + 41 + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ 42 + trace: "on-first-retry", 43 + }, 44 + 45 + /* Configure projects for major browsers */ 46 + projects: [ 47 + { 48 + name: "chromium", 49 + use: { 50 + ...devices["Desktop Chrome"], 51 + }, 52 + }, 53 + 54 + { 55 + name: "firefox", 56 + use: { 57 + ...devices["Desktop Firefox"], 58 + }, 59 + }, 60 + 61 + { 62 + name: "webkit", 63 + use: { 64 + ...devices["Desktop Safari"], 65 + }, 66 + }, 67 + 68 + /* Test against mobile viewports. */ 69 + // { 70 + // name: 'Mobile Chrome', 71 + // use: { 72 + // ...devices['Pixel 5'], 73 + // }, 74 + // }, 75 + // { 76 + // name: 'Mobile Safari', 77 + // use: { 78 + // ...devices['iPhone 12'], 79 + // }, 80 + // }, 81 + 82 + /* Test against branded browsers. */ 83 + // { 84 + // name: 'Microsoft Edge', 85 + // use: { 86 + // channel: 'msedge', 87 + // }, 88 + // }, 89 + // { 90 + // name: 'Google Chrome', 91 + // use: { 92 + // channel: 'chrome', 93 + // }, 94 + // }, 95 + ], 96 + 97 + /* Folder for test artifacts such as screenshots, videos, traces, etc. */ 98 + // outputDir: 'test-results/', 99 + 100 + /* Run your local dev server before starting the tests */ 101 + // webServer: { 102 + // command: 'npm run start', 103 + // port: 3000, 104 + // }, 105 + });
+9
end2end/tests/example.spec.ts
···
··· 1 + import { test, expect } from "@playwright/test"; 2 + 3 + test("homepage has title and heading text", async ({ page }) => { 4 + await page.goto("http://localhost:3000/"); 5 + 6 + await expect(page).toHaveTitle("Welcome to Leptos"); 7 + 8 + await expect(page.locator("h1")).toHaveText("Welcome to Leptos!"); 9 + });
+109
end2end/tsconfig.json
···
··· 1 + { 2 + "compilerOptions": { 3 + /* Visit https://aka.ms/tsconfig to read more about this file */ 4 + 5 + /* Projects */ 6 + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 + 13 + /* Language and Environment */ 14 + "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 + // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 + 27 + /* Modules */ 28 + "module": "commonjs", /* Specify what module code is generated. */ 29 + // "rootDir": "./", /* Specify the root folder within your source files. */ 30 + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 39 + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 40 + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 41 + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 42 + // "resolveJsonModule": true, /* Enable importing .json files. */ 43 + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 44 + // "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */ 45 + 46 + /* JavaScript Support */ 47 + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 48 + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 49 + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 50 + 51 + /* Emit */ 52 + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 53 + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 54 + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 55 + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 56 + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 57 + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 58 + // "outDir": "./", /* Specify an output folder for all emitted files. */ 59 + // "removeComments": true, /* Disable emitting comments. */ 60 + // "noEmit": true, /* Disable emitting files from a compilation. */ 61 + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 62 + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 63 + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 64 + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 65 + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 66 + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 67 + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 68 + // "newLine": "crlf", /* Set the newline character for emitting files. */ 69 + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 70 + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 71 + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 72 + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 73 + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 74 + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 75 + 76 + /* Interop Constraints */ 77 + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 78 + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 79 + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 80 + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 81 + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 82 + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 83 + 84 + /* Type Checking */ 85 + "strict": true, /* Enable all strict type-checking options. */ 86 + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 87 + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 88 + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 89 + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 90 + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 91 + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 92 + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 93 + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 94 + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 95 + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 96 + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 97 + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 98 + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 99 + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 100 + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 101 + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 102 + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 103 + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 104 + 105 + /* Completeness */ 106 + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 107 + "skipLibCheck": true /* Skip type checking all .d.ts files. */ 108 + } 109 + }
+8
nilla.nix
··· 24 { 25 bacon, 26 cargo, 27 mkShell, 28 pkgs, 29 reuse, 30 rust-analyzer, 31 rustc, 32 system, 33 ... 34 }: ··· 37 (config.inputs.npins.result { inherit pkgs system; }) 38 bacon 39 cargo 40 reuse 41 rust-analyzer 42 rustc 43 ]; 44 }; 45 };
··· 24 { 25 bacon, 26 cargo, 27 + cargo-leptos, 28 + llvmPackages, 29 mkShell, 30 pkgs, 31 reuse, 32 rust-analyzer, 33 rustc, 34 + rustPlatform, 35 + sass, 36 system, 37 ... 38 }: ··· 41 (config.inputs.npins.result { inherit pkgs system; }) 42 bacon 43 cargo 44 + cargo-leptos 45 + llvmPackages.bintools 46 reuse 47 rust-analyzer 48 rustc 49 + rustPlatform.bindgenHook 50 + sass 51 ]; 52 }; 53 };
public/favicon.ico

This is a binary file and will not be displayed.

+61
src/app.rs
···
··· 1 + use leptos::prelude::*; 2 + use leptos_meta::{provide_meta_context, MetaTags, Stylesheet, Title}; 3 + use leptos_router::{ 4 + components::{Route, Router, Routes}, 5 + StaticSegment, 6 + }; 7 + 8 + pub fn shell(options: LeptosOptions) -> impl IntoView { 9 + view! { 10 + <!DOCTYPE html> 11 + <html lang="en"> 12 + <head> 13 + <meta charset="utf-8"/> 14 + <meta name="viewport" content="width=device-width, initial-scale=1"/> 15 + <AutoReload options=options.clone() /> 16 + <HydrationScripts options/> 17 + <MetaTags/> 18 + </head> 19 + <body> 20 + <App/> 21 + </body> 22 + </html> 23 + } 24 + } 25 + 26 + #[component] 27 + pub fn App() -> impl IntoView { 28 + // Provides context that manages stylesheets, titles, meta tags, etc. 29 + provide_meta_context(); 30 + 31 + view! { 32 + // injects a stylesheet into the document <head> 33 + // id=leptos means cargo-leptos will hot-reload this stylesheet 34 + <Stylesheet id="leptos" href="/pkg/calpoll.css"/> 35 + 36 + // sets the document title 37 + <Title text="Welcome to Leptos"/> 38 + 39 + // content for this welcome page 40 + <Router> 41 + <main> 42 + <Routes fallback=|| "Page not found.".into_view()> 43 + <Route path=StaticSegment("") view=HomePage/> 44 + </Routes> 45 + </main> 46 + </Router> 47 + } 48 + } 49 + 50 + /// Renders the home page of your application. 51 + #[component] 52 + fn HomePage() -> impl IntoView { 53 + // Creates a reactive value to update the button 54 + let count = RwSignal::new(0); 55 + let on_click = move |_| *count.write() += 1; 56 + 57 + view! { 58 + <h1>"Welcome to Leptos!"</h1> 59 + <button on:click=on_click>"Click Me: " {count}</button> 60 + } 61 + }
+9
src/lib.rs
···
··· 1 + pub mod app; 2 + 3 + #[cfg(feature = "hydrate")] 4 + #[wasm_bindgen::prelude::wasm_bindgen] 5 + pub fn hydrate() { 6 + use crate::app::*; 7 + console_error_panic_hook::set_once(); 8 + leptos::mount::hydrate_body(App); 9 + }
+38 -2
src/main.rs
··· 1 - fn main() { 2 - println!("Hello, world!"); 3 }
··· 1 + 2 + #[cfg(feature = "ssr")] 3 + #[tokio::main] 4 + async fn main() { 5 + use axum::Router; 6 + use leptos::logging::log; 7 + use leptos::prelude::*; 8 + use leptos_axum::{generate_route_list, LeptosRoutes}; 9 + use calpoll::app::*; 10 + 11 + let conf = get_configuration(None).unwrap(); 12 + let addr = conf.leptos_options.site_addr; 13 + let leptos_options = conf.leptos_options; 14 + // Generate the list of routes in your Leptos App 15 + let routes = generate_route_list(App); 16 + 17 + let app = Router::new() 18 + .leptos_routes(&leptos_options, routes, { 19 + let leptos_options = leptos_options.clone(); 20 + move || shell(leptos_options.clone()) 21 + }) 22 + .fallback(leptos_axum::file_and_error_handler(shell)) 23 + .with_state(leptos_options); 24 + 25 + // run our app with hyper 26 + // `axum::Server` is a re-export of `hyper::Server` 27 + log!("listening on http://{}", &addr); 28 + let listener = tokio::net::TcpListener::bind(&addr).await.unwrap(); 29 + axum::serve(listener, app.into_make_service()) 30 + .await 31 + .unwrap(); 32 + } 33 + 34 + #[cfg(not(feature = "ssr"))] 35 + pub fn main() { 36 + // no client-side main function 37 + // unless we want this to work with e.g., Trunk for pure client-side testing 38 + // see lib.rs for hydration function instead 39 }
+4
style/main.scss
···
··· 1 + body { 2 + font-family: sans-serif; 3 + text-align: center; 4 + }