Live location tracking and playback for the game "manhunt"

Add tauri plugins log and notifications

bwc9876.dev 0b98ca2f 69cc328e

verified
+404 -10
+351
backend/Cargo.lock
··· 59 59 ] 60 60 61 61 [[package]] 62 + name = "ahash" 63 + version = "0.7.8" 64 + source = "registry+https://github.com/rust-lang/crates.io-index" 65 + checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 66 + dependencies = [ 67 + "getrandom 0.2.16", 68 + "once_cell", 69 + "version_check", 70 + ] 71 + 72 + [[package]] 62 73 name = "aho-corasick" 63 74 version = "1.1.3" 64 75 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 89 100 checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 90 101 91 102 [[package]] 103 + name = "android_log-sys" 104 + version = "0.3.2" 105 + source = "registry+https://github.com/rust-lang/crates.io-index" 106 + checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" 107 + 108 + [[package]] 109 + name = "android_logger" 110 + version = "0.15.0" 111 + source = "registry+https://github.com/rust-lang/crates.io-index" 112 + checksum = "f6f39be698127218cca460cb624878c9aa4e2b47dba3b277963d2bf00bad263b" 113 + dependencies = [ 114 + "android_log-sys", 115 + "env_filter", 116 + "log", 117 + ] 118 + 119 + [[package]] 92 120 name = "android_system_properties" 93 121 version = "0.1.5" 94 122 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 108 136 version = "1.7.1" 109 137 source = "registry+https://github.com/rust-lang/crates.io-index" 110 138 checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" 139 + 140 + [[package]] 141 + name = "arrayvec" 142 + version = "0.7.6" 143 + source = "registry+https://github.com/rust-lang/crates.io-index" 144 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 111 145 112 146 [[package]] 113 147 name = "asn1-rs" ··· 486 520 ] 487 521 488 522 [[package]] 523 + name = "bitvec" 524 + version = "1.0.1" 525 + source = "registry+https://github.com/rust-lang/crates.io-index" 526 + checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 527 + dependencies = [ 528 + "funty", 529 + "radium", 530 + "tap", 531 + "wyz", 532 + ] 533 + 534 + [[package]] 489 535 name = "block-buffer" 490 536 version = "0.10.4" 491 537 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 535 581 ] 536 582 537 583 [[package]] 584 + name = "borsh" 585 + version = "1.5.7" 586 + source = "registry+https://github.com/rust-lang/crates.io-index" 587 + checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" 588 + dependencies = [ 589 + "borsh-derive", 590 + "cfg_aliases", 591 + ] 592 + 593 + [[package]] 594 + name = "borsh-derive" 595 + version = "1.5.7" 596 + source = "registry+https://github.com/rust-lang/crates.io-index" 597 + checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" 598 + dependencies = [ 599 + "once_cell", 600 + "proc-macro-crate 3.3.0", 601 + "proc-macro2", 602 + "quote", 603 + "syn 2.0.103", 604 + ] 605 + 606 + [[package]] 538 607 name = "brotli" 539 608 version = "7.0.0" 540 609 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 562 631 checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" 563 632 564 633 [[package]] 634 + name = "byte-unit" 635 + version = "5.1.6" 636 + source = "registry+https://github.com/rust-lang/crates.io-index" 637 + checksum = "e1cd29c3c585209b0cbc7309bfe3ed7efd8c84c21b7af29c8bfae908f8777174" 638 + dependencies = [ 639 + "rust_decimal", 640 + "serde", 641 + "utf8-width", 642 + ] 643 + 644 + [[package]] 645 + name = "bytecheck" 646 + version = "0.6.12" 647 + source = "registry+https://github.com/rust-lang/crates.io-index" 648 + checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" 649 + dependencies = [ 650 + "bytecheck_derive", 651 + "ptr_meta", 652 + "simdutf8", 653 + ] 654 + 655 + [[package]] 656 + name = "bytecheck_derive" 657 + version = "0.6.12" 658 + source = "registry+https://github.com/rust-lang/crates.io-index" 659 + checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" 660 + dependencies = [ 661 + "proc-macro2", 662 + "quote", 663 + "syn 1.0.109", 664 + ] 665 + 666 + [[package]] 565 667 name = "bytemuck" 566 668 version = "1.23.1" 567 669 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1279 1381 ] 1280 1382 1281 1383 [[package]] 1384 + name = "env_filter" 1385 + version = "0.1.3" 1386 + source = "registry+https://github.com/rust-lang/crates.io-index" 1387 + checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" 1388 + dependencies = [ 1389 + "log", 1390 + "regex", 1391 + ] 1392 + 1393 + [[package]] 1282 1394 name = "equivalent" 1283 1395 version = "1.0.2" 1284 1396 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1344 1456 checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" 1345 1457 dependencies = [ 1346 1458 "simd-adler32", 1459 + ] 1460 + 1461 + [[package]] 1462 + name = "fern" 1463 + version = "0.7.1" 1464 + source = "registry+https://github.com/rust-lang/crates.io-index" 1465 + checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" 1466 + dependencies = [ 1467 + "log", 1347 1468 ] 1348 1469 1349 1470 [[package]] ··· 1425 1546 ] 1426 1547 1427 1548 [[package]] 1549 + name = "funty" 1550 + version = "2.0.0" 1551 + source = "registry+https://github.com/rust-lang/crates.io-index" 1552 + checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 1553 + 1554 + [[package]] 1428 1555 name = "futf" 1429 1556 version = "0.1.5" 1430 1557 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1903 2030 version = "0.12.3" 1904 2031 source = "registry+https://github.com/rust-lang/crates.io-index" 1905 2032 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 2033 + dependencies = [ 2034 + "ahash", 2035 + ] 1906 2036 1907 2037 [[package]] 1908 2038 name = "hashbrown" ··· 2508 2638 checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 2509 2639 2510 2640 [[package]] 2641 + name = "mac-notification-sys" 2642 + version = "0.6.4" 2643 + source = "registry+https://github.com/rust-lang/crates.io-index" 2644 + checksum = "0b95dfb34071d1592b45622bf93e315e3a72d414b6782aca9a015c12bec367ef" 2645 + dependencies = [ 2646 + "cc", 2647 + "objc2 0.6.1", 2648 + "objc2-foundation 0.3.1", 2649 + "time", 2650 + ] 2651 + 2652 + [[package]] 2511 2653 name = "manhunt-app" 2512 2654 version = "0.1.0" 2513 2655 dependencies = [ 2514 2656 "chrono", 2515 2657 "futures", 2658 + "log", 2516 2659 "matchbox_socket", 2517 2660 "rand 0.9.1", 2518 2661 "rand_chacha 0.9.0", ··· 2524 2667 "tauri", 2525 2668 "tauri-build", 2526 2669 "tauri-plugin-geolocation", 2670 + "tauri-plugin-log", 2671 + "tauri-plugin-notification", 2527 2672 "tauri-plugin-opener", 2528 2673 "tauri-plugin-store", 2529 2674 "tauri-specta", ··· 2762 2907 ] 2763 2908 2764 2909 [[package]] 2910 + name = "notify-rust" 2911 + version = "4.11.7" 2912 + source = "registry+https://github.com/rust-lang/crates.io-index" 2913 + checksum = "6442248665a5aa2514e794af3b39661a8e73033b1cc5e59899e1276117ee4400" 2914 + dependencies = [ 2915 + "futures-lite", 2916 + "log", 2917 + "mac-notification-sys", 2918 + "serde", 2919 + "tauri-winrt-notification", 2920 + "zbus", 2921 + ] 2922 + 2923 + [[package]] 2765 2924 name = "num-bigint" 2766 2925 version = "0.4.6" 2767 2926 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2814 2973 "proc-macro2", 2815 2974 "quote", 2816 2975 "syn 2.0.103", 2976 + ] 2977 + 2978 + [[package]] 2979 + name = "num_threads" 2980 + version = "0.1.7" 2981 + source = "registry+https://github.com/rust-lang/crates.io-index" 2982 + checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" 2983 + dependencies = [ 2984 + "libc", 2817 2985 ] 2818 2986 2819 2987 [[package]] ··· 3552 3720 ] 3553 3721 3554 3722 [[package]] 3723 + name = "ptr_meta" 3724 + version = "0.1.4" 3725 + source = "registry+https://github.com/rust-lang/crates.io-index" 3726 + checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" 3727 + dependencies = [ 3728 + "ptr_meta_derive", 3729 + ] 3730 + 3731 + [[package]] 3732 + name = "ptr_meta_derive" 3733 + version = "0.1.4" 3734 + source = "registry+https://github.com/rust-lang/crates.io-index" 3735 + checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" 3736 + dependencies = [ 3737 + "proc-macro2", 3738 + "quote", 3739 + "syn 1.0.109", 3740 + ] 3741 + 3742 + [[package]] 3555 3743 name = "quick-xml" 3556 3744 version = "0.37.5" 3557 3745 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3574 3762 version = "5.2.0" 3575 3763 source = "registry+https://github.com/rust-lang/crates.io-index" 3576 3764 checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 3765 + 3766 + [[package]] 3767 + name = "radium" 3768 + version = "0.7.0" 3769 + source = "registry+https://github.com/rust-lang/crates.io-index" 3770 + checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 3577 3771 3578 3772 [[package]] 3579 3773 name = "rand" ··· 3755 3949 checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 3756 3950 3757 3951 [[package]] 3952 + name = "rend" 3953 + version = "0.4.2" 3954 + source = "registry+https://github.com/rust-lang/crates.io-index" 3955 + checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" 3956 + dependencies = [ 3957 + "bytecheck", 3958 + ] 3959 + 3960 + [[package]] 3758 3961 name = "reqwest" 3759 3962 version = "0.12.20" 3760 3963 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3814 4017 ] 3815 4018 3816 4019 [[package]] 4020 + name = "rkyv" 4021 + version = "0.7.45" 4022 + source = "registry+https://github.com/rust-lang/crates.io-index" 4023 + checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" 4024 + dependencies = [ 4025 + "bitvec", 4026 + "bytecheck", 4027 + "bytes", 4028 + "hashbrown 0.12.3", 4029 + "ptr_meta", 4030 + "rend", 4031 + "rkyv_derive", 4032 + "seahash", 4033 + "tinyvec", 4034 + "uuid", 4035 + ] 4036 + 4037 + [[package]] 4038 + name = "rkyv_derive" 4039 + version = "0.7.45" 4040 + source = "registry+https://github.com/rust-lang/crates.io-index" 4041 + checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" 4042 + dependencies = [ 4043 + "proc-macro2", 4044 + "quote", 4045 + "syn 1.0.109", 4046 + ] 4047 + 4048 + [[package]] 3817 4049 name = "rmp" 3818 4050 version = "0.8.14" 3819 4051 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3862 4094 ] 3863 4095 3864 4096 [[package]] 4097 + name = "rust_decimal" 4098 + version = "1.37.2" 4099 + source = "registry+https://github.com/rust-lang/crates.io-index" 4100 + checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" 4101 + dependencies = [ 4102 + "arrayvec", 4103 + "borsh", 4104 + "bytes", 4105 + "num-traits", 4106 + "rand 0.8.5", 4107 + "rkyv", 4108 + "serde", 4109 + "serde_json", 4110 + ] 4111 + 4112 + [[package]] 3865 4113 name = "rustc-demangle" 3866 4114 version = "0.1.25" 3867 4115 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4040 4288 ] 4041 4289 4042 4290 [[package]] 4291 + name = "seahash" 4292 + version = "4.1.0" 4293 + source = "registry+https://github.com/rust-lang/crates.io-index" 4294 + checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" 4295 + 4296 + [[package]] 4043 4297 name = "sec1" 4044 4298 version = "0.7.3" 4045 4299 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4305 4559 version = "0.3.7" 4306 4560 source = "registry+https://github.com/rust-lang/crates.io-index" 4307 4561 checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 4562 + 4563 + [[package]] 4564 + name = "simdutf8" 4565 + version = "0.1.5" 4566 + source = "registry+https://github.com/rust-lang/crates.io-index" 4567 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 4308 4568 4309 4569 [[package]] 4310 4570 name = "siphasher" ··· 4650 4910 ] 4651 4911 4652 4912 [[package]] 4913 + name = "tap" 4914 + version = "1.0.1" 4915 + source = "registry+https://github.com/rust-lang/crates.io-index" 4916 + checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 4917 + 4918 + [[package]] 4653 4919 name = "target-lexicon" 4654 4920 version = "0.12.16" 4655 4921 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4802 5068 ] 4803 5069 4804 5070 [[package]] 5071 + name = "tauri-plugin-log" 5072 + version = "2.4.0" 5073 + source = "registry+https://github.com/rust-lang/crates.io-index" 5074 + checksum = "8d2b582d860eb214f28323f4ce4f2797ae3b78f197e27b11677f976f9f52aedb" 5075 + dependencies = [ 5076 + "android_logger", 5077 + "byte-unit", 5078 + "fern", 5079 + "log", 5080 + "objc2 0.6.1", 5081 + "objc2-foundation 0.3.1", 5082 + "serde", 5083 + "serde_json", 5084 + "serde_repr", 5085 + "swift-rs", 5086 + "tauri", 5087 + "tauri-plugin", 5088 + "thiserror 2.0.12", 5089 + "time", 5090 + ] 5091 + 5092 + [[package]] 5093 + name = "tauri-plugin-notification" 5094 + version = "2.2.2" 5095 + source = "registry+https://github.com/rust-lang/crates.io-index" 5096 + checksum = "c474c7cc524385e682ccc1e149e13913a66fd8586ac4c2319cf01b78f070d309" 5097 + dependencies = [ 5098 + "log", 5099 + "notify-rust", 5100 + "rand 0.8.5", 5101 + "serde", 5102 + "serde_json", 5103 + "serde_repr", 5104 + "tauri", 5105 + "tauri-plugin", 5106 + "thiserror 2.0.12", 5107 + "time", 5108 + "url", 5109 + ] 5110 + 5111 + [[package]] 4805 5112 name = "tauri-plugin-opener" 4806 5113 version = "2.2.7" 4807 5114 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4966 5273 ] 4967 5274 4968 5275 [[package]] 5276 + name = "tauri-winrt-notification" 5277 + version = "0.7.2" 5278 + source = "registry+https://github.com/rust-lang/crates.io-index" 5279 + checksum = "0b1e66e07de489fe43a46678dd0b8df65e0c973909df1b60ba33874e297ba9b9" 5280 + dependencies = [ 5281 + "quick-xml", 5282 + "thiserror 2.0.12", 5283 + "windows", 5284 + "windows-version", 5285 + ] 5286 + 5287 + [[package]] 4969 5288 name = "tempfile" 4970 5289 version = "3.20.0" 4971 5290 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5043 5362 dependencies = [ 5044 5363 "deranged", 5045 5364 "itoa 1.0.15", 5365 + "libc", 5046 5366 "num-conv", 5367 + "num_threads", 5047 5368 "powerfmt", 5048 5369 "serde", 5049 5370 "time-core", ··· 5075 5396 "displaydoc", 5076 5397 "zerovec", 5077 5398 ] 5399 + 5400 + [[package]] 5401 + name = "tinyvec" 5402 + version = "1.9.0" 5403 + source = "registry+https://github.com/rust-lang/crates.io-index" 5404 + checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 5405 + dependencies = [ 5406 + "tinyvec_macros", 5407 + ] 5408 + 5409 + [[package]] 5410 + name = "tinyvec_macros" 5411 + version = "0.1.1" 5412 + source = "registry+https://github.com/rust-lang/crates.io-index" 5413 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 5078 5414 5079 5415 [[package]] 5080 5416 name = "tokio" ··· 5451 5787 version = "0.7.6" 5452 5788 source = "registry+https://github.com/rust-lang/crates.io-index" 5453 5789 checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 5790 + 5791 + [[package]] 5792 + name = "utf8-width" 5793 + version = "0.1.7" 5794 + source = "registry+https://github.com/rust-lang/crates.io-index" 5795 + checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" 5454 5796 5455 5797 [[package]] 5456 5798 name = "utf8_iter" ··· 6450 6792 "wasm-bindgen", 6451 6793 "wasm-bindgen-futures", 6452 6794 "web-sys", 6795 + ] 6796 + 6797 + [[package]] 6798 + name = "wyz" 6799 + version = "0.5.1" 6800 + source = "registry+https://github.com/rust-lang/crates.io-index" 6801 + checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 6802 + dependencies = [ 6803 + "tap", 6453 6804 ] 6454 6805 6455 6806 [[package]]
+5 -1
backend/Cargo.toml
··· 4 4 description = "A mobile app for playing the game \"manhunt\"" 5 5 authors = ["Ben C <bwc9876@gmail.com>"] 6 6 edition = "2021" 7 + default-run = "manhunt-app" 7 8 8 9 [lib] 9 10 name = "manhunt_app_lib" ··· 24 25 chrono = { version = "0.4", features = ["serde", "now"] } 25 26 tokio = { version = "1.45", features = ["sync", "macros", "time", "fs"] } 26 27 rand = { version = "0.9", features = ["thread_rng"] } 27 - tauri-plugin-geolocation = "2.2" 28 + tauri-plugin-geolocation = "2" 28 29 rand_chacha = "0.9.0" 29 30 futures = "0.3.31" 30 31 matchbox_socket = "0.12.0" ··· 34 35 specta = { version = "=2.0.0-rc.22", features = ["chrono", "uuid"] } 35 36 tauri-specta = { version = "=2.0.0-rc.21", features = ["derive", "typescript"] } 36 37 specta-typescript = "0.0.9" 38 + tauri-plugin-log = "2" 39 + tauri-plugin-notification = "2" 40 + log = "0.4.27"
+13 -5
backend/capabilities/default.json
··· 1 1 { 2 - "$schema": "../gen/schemas/desktop-schema.json", 3 - "identifier": "default", 4 - "description": "Capability for the main window", 5 - "windows": ["main"], 6 - "permissions": ["core:default", "opener:default"] 2 + "$schema": "../gen/schemas/desktop-schema.json", 3 + "identifier": "default", 4 + "description": "Capability for the main window", 5 + "windows": [ 6 + "main" 7 + ], 8 + "permissions": [ 9 + "core:default", 10 + "opener:default", 11 + "notification:default", 12 + "log:default", 13 + "geolocation:default" 14 + ] 7 15 }
+3 -1
backend/src/lib.rs
··· 303 303 let builder = mk_specta(); 304 304 305 305 tauri::Builder::default() 306 - .manage(state) 306 + .plugin(tauri_plugin_notification::init()) 307 + .plugin(tauri_plugin_log::Builder::new().build()) 307 308 .plugin(tauri_plugin_opener::init()) 308 309 .plugin(tauri_plugin_geolocation::init()) 309 310 .plugin(tauri_plugin_store::Builder::default().build()) 310 311 .invoke_handler(builder.invoke_handler()) 312 + .manage(state) 311 313 .setup(|app| { 312 314 let handle = app.handle().clone(); 313 315 tauri::async_runtime::spawn(async move {
+20
frontend/package-lock.json
··· 10 10 "dependencies": { 11 11 "@tauri-apps/api": "^2", 12 12 "@tauri-apps/plugin-geolocation": "^2.2.4", 13 + "@tauri-apps/plugin-log": "^2.4.0", 14 + "@tauri-apps/plugin-notification": "^2.2.2", 13 15 "@tauri-apps/plugin-opener": "^2", 14 16 "react": "^19.1.0", 15 17 "react-dom": "^19.1.0" ··· 1593 1595 "version": "2.2.4", 1594 1596 "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-geolocation/-/plugin-geolocation-2.2.4.tgz", 1595 1597 "integrity": "sha512-c/kqxMW3DjCl+EzFRRBc2B9J22DqzmQOt02i9IWy3WYXIRF8/krTqZpqNIi2Db2/eWS5dEtS6z5S9sBk6UIr2g==", 1598 + "license": "MIT OR Apache-2.0", 1599 + "dependencies": { 1600 + "@tauri-apps/api": "^2.0.0" 1601 + } 1602 + }, 1603 + "node_modules/@tauri-apps/plugin-log": { 1604 + "version": "2.4.0", 1605 + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-log/-/plugin-log-2.4.0.tgz", 1606 + "integrity": "sha512-j7yrDtLNmayCBOO2esl3aZv9jSXy2an8MDLry3Ys9ZXerwUg35n1Y2uD8HoCR+8Ng/EUgx215+qOUfJasjYrHw==", 1607 + "license": "MIT OR Apache-2.0", 1608 + "dependencies": { 1609 + "@tauri-apps/api": "^2.0.0" 1610 + } 1611 + }, 1612 + "node_modules/@tauri-apps/plugin-notification": { 1613 + "version": "2.2.2", 1614 + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.2.2.tgz", 1615 + "integrity": "sha512-d71rJdtkFUTcG4dqydnv6d7ZwlNZVcdjrVOPwc9GsF6y9DgVN1WCZ9T/vbfD2qrJslf7ai+rnNJc62TLLC2IdA==", 1596 1616 "license": "MIT OR Apache-2.0", 1597 1617 "dependencies": { 1598 1618 "@tauri-apps/api": "^2.0.0"
+2
frontend/package.json
··· 15 15 "@tauri-apps/api": "^2", 16 16 "@tauri-apps/plugin-geolocation": "^2.2.4", 17 17 "@tauri-apps/plugin-opener": "^2", 18 + "@tauri-apps/plugin-log": "^2.4.0", 19 + "@tauri-apps/plugin-notification": "^2.2.2", 18 20 "react": "^19.1.0", 19 21 "react-dom": "^19.1.0" 20 22 },
+10 -3
justfile
··· 1 1 _default: 2 2 @just --list --unsorted --justfile {{justfile()}} 3 3 4 + 5 + # Perform setup for the frontend using `npm` 4 6 [working-directory: 'frontend'] 5 - # Perform setup for the frontend using `npm` 6 7 setup-frontend: 7 8 npm install --no-fund --no-audit 8 9 ··· 10 11 dev: 11 12 cargo tauri dev 12 13 14 + # Format everything 15 + fmt: 16 + cd backend && cargo fmt 17 + cd frontend && npm run format 18 + 13 19 # Connect and run on an Android VM/Physical device 14 20 dev-android: 15 21 cargo tauri android dev 16 22 17 - [working-directory: 'backend'] 18 23 # Run a check on the backend 24 + [working-directory: 'backend'] 19 25 check-backend: 20 26 cargo check 21 27 cargo clippy --fix --allow-dirty --allow-staged -- -D warnings 22 28 29 + 30 + # Run lint on the frontend 23 31 [working-directory: 'frontend'] 24 - # Run lint on the frontend 25 32 check-frontend: 26 33 npm run lint 27 34