diff --git a/Cargo.lock b/Cargo.lock index 1468184..d4dc50f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,15 +43,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "aes-kw" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" -dependencies = [ - "aes", -] - [[package]] name = "ahash" version = "0.8.12" @@ -174,15 +165,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "ar_archive_writer" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb93bbb63b9c227414f6eb3a0adfddca591a8ce1e9b60661bb08969b87e340b" -dependencies = [ - "object", -] - [[package]] name = "arrayref" version = "0.3.9" @@ -195,12 +177,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "ascii" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" - [[package]] name = "askama_escape" version = "0.10.3" @@ -213,17 +189,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3df27b8d5ddb458c5fb1bbc1ce172d4a38c614a97d550b0ac89003897fb01de4" -[[package]] -name = "ast_node" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb025ef00a6da925cf40870b9c8d008526b6004ece399cb0974209720f0b194" -dependencies = [ - "quote", - "swc_macros_common", - "syn 2.0.117", -] - [[package]] name = "async-stream" version = "0.3.6" @@ -315,7 +280,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" dependencies = [ "aws-lc-sys", - "untrusted 0.7.1", "zeroize", ] @@ -528,12 +492,6 @@ dependencies = [ "urlencoding", ] -[[package]] -name = "az" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be5eb007b7cacc6c660343e96f650fedf4b5a77512399eb952ca6642cf8d13f7" - [[package]] name = "base16" version = "0.2.1" @@ -558,75 +516,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "base64-simd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" -dependencies = [ - "outref", - "vsimd", -] - [[package]] name = "base64ct" version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "better_scoped_tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd228125315b132eed175bf47619ac79b945b26e56b848ba203ae4ea8603609" -dependencies = [ - "scoped-tls", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.11.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.117", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - [[package]] name = "bitflags" version = "1.3.2" @@ -642,18 +537,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blake3" version = "1.8.3" @@ -683,15 +566,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - [[package]] name = "block2" version = "0.6.2" @@ -701,16 +575,6 @@ dependencies = [ "objc2", ] -[[package]] -name = "boxed_error" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d4f95e880cfd28c4ca5a006cf7f6af52b4bcb7b5866f573b2faa126fb7affb" -dependencies = [ - "quote", - "syn 2.0.117", -] - [[package]] name = "brotli" version = "3.5.0" @@ -737,9 +601,6 @@ name = "bumpalo" version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" -dependencies = [ - "allocator-api2", -] [[package]] name = "bytemuck" @@ -762,16 +623,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bytes-str" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c60b5ce37e0b883c37eb89f79a1e26fbe9c1081945d024eee93e8d91a7e18b3" -dependencies = [ - "bytes", - "serde", -] - [[package]] name = "bytestring" version = "1.5.0" @@ -807,36 +658,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "calendrical_calculations" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a0b39595c6ee54a8d0900204ba4c401d0ab4eb45adaf07178e8d017541529e7" -dependencies = [ - "core_maths", - "displaydoc", -] - -[[package]] -name = "capacity_builder" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f2d24a6dcf0cd402a21b65d35340f3a49ff3475dc5fdac91d22d2733e6641c6" -dependencies = [ - "capacity_builder_macros", - "itoa", -] - -[[package]] -name = "capacity_builder_macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b4a6cae9efc04cc6cbb8faf338d2c497c165c83e74509cf4dbedea948bbf6e5" -dependencies = [ - "quote", - "syn 2.0.117", -] - [[package]] name = "cast" version = "0.3.0" @@ -852,15 +673,6 @@ dependencies = [ "rustversion", ] -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - [[package]] name = "cc" version = "1.2.57" @@ -879,15 +691,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - [[package]] name = "cfb" version = "0.7.3" @@ -988,17 +791,6 @@ dependencies = [ "inout", ] -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading 0.8.9", -] - [[package]] name = "clap" version = "4.6.0" @@ -1090,19 +882,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "compact_str" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f" -dependencies = [ - "castaway", - "cfg-if 1.0.4", - "itoa", - "ryu", - "static_assertions", -] - [[package]] name = "console" version = "0.16.3" @@ -1246,12 +1025,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "cooked-waker" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147be55d677052dabc6b22252d5dd0fd4c29c8c27aa4f2fbef0f94aa003b406f" - [[package]] name = "cookie" version = "0.18.1" @@ -1348,15 +1121,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core_maths" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" -dependencies = [ - "libm", -] - [[package]] name = "cpufeatures" version = "0.2.17" @@ -1493,7 +1257,7 @@ dependencies = [ "cpufeatures", "curve25519-dalek-derive", "digest", - "fiat-crypto 0.2.9", + "fiat-crypto", "rustc_version", "subtle", "zeroize", @@ -1607,22 +1371,6 @@ version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" -[[package]] -name = "data-url" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" - -[[package]] -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "serde", - "uuid", -] - [[package]] name = "decorum" version = "0.3.1" @@ -1633,318 +1381,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "deno_ast" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30c2f6f65154faed61e45d6578566f9fab9d2a330c35c87366706883701cce51" -dependencies = [ - "base64 0.22.1", - "capacity_builder", - "deno_error", - "deno_media_type 0.3.3", - "deno_terminal", - "dprint-swc-ext", - "percent-encoding", - "serde", - "swc_atoms", - "swc_common", - "swc_config", - "swc_config_macro", - "swc_ecma_ast", - "swc_ecma_codegen", - "swc_ecma_codegen_macros", - "swc_ecma_lexer", - "swc_ecma_loader", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_transforms_classes", - "swc_ecma_transforms_macros", - "swc_ecma_transforms_proposal", - "swc_ecma_transforms_react", - "swc_ecma_transforms_typescript", - "swc_ecma_utils", - "swc_ecma_visit", - "swc_eq_ignore_macros", - "swc_macros_common", - "swc_sourcemap", - "swc_visit", - "text_lines", - "thiserror 2.0.18", - "unicode-width", - "url", -] - -[[package]] -name = "deno_console" -version = "0.222.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7dede3d073a7d19e5e127756d80a1a8b570d8345e51192968da142ed290319" - -[[package]] -name = "deno_core" -version = "0.380.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9168bc280b6dfbebba5dc381909f25d2aafe7f9917fbe9a6548504eed250b362" -dependencies = [ - "anyhow", - "az", - "bincode", - "bit-set", - "bit-vec", - "boxed_error", - "bytes", - "capacity_builder", - "cooked-waker", - "deno_core_icudata", - "deno_error", - "deno_ops", - "deno_path_util", - "deno_unsync", - "futures", - "indexmap 2.13.0", - "libc", - "parking_lot", - "percent-encoding", - "pin-project", - "serde", - "serde_json", - "serde_v8", - "smallvec", - "sourcemap", - "static_assertions", - "thiserror 2.0.18", - "tokio", - "url", - "v8", - "wasm_dep_analyzer", -] - -[[package]] -name = "deno_core_icudata" -version = "0.74.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4dccb6147bb3f3ba0c7a48e993bfeb999d2c2e47a81badee80e2b370c8d695" - -[[package]] -name = "deno_crypto" -version = "0.242.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54ff2c441b15be4f332e1a44ed7cac94030934d743ac252b92c40908a0e48b5" -dependencies = [ - "aes", - "aes-gcm", - "aes-kw", - "aws-lc-rs", - "base64 0.22.1", - "cbc", - "const-oid", - "ctr", - "curve25519-dalek", - "deno_core", - "deno_error", - "deno_web", - "ecdsa", - "ed448-goldilocks", - "elliptic-curve", - "num-traits", - "ocb3", - "once_cell", - "p256", - "p384", - "p521", - "rand 0.8.5", - "rsa", - "serde", - "serde_bytes", - "sha1", - "sha2", - "sha3", - "signature", - "spki", - "thiserror 2.0.18", - "tokio", - "uuid", - "x25519-dalek", -] - -[[package]] -name = "deno_error" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfafd2219b29886a71aecbb3449e462deed1b2c474dc5b12f855f0e58c478931" -dependencies = [ - "deno_error_macro", - "libc", - "serde", - "serde_json", - "tokio", - "url", -] - -[[package]] -name = "deno_error_macro" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c28ede88783f14cd8aae46ca89f230c226b40e4a81ab06fa52ed72af84beb2f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "deno_features" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ba41e5b22deadeb38505b9d0102e192abe0b0d32f1d1811985bd78af73f016" -dependencies = [ - "deno_core", - "serde", - "serde_json", -] - -[[package]] -name = "deno_media_type" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ec0dada9dc5ac4733b4175d36f6a150b7dd68fab46db35cb1ef00dd7366acb" -dependencies = [ - "data-url", - "serde", - "url", -] - -[[package]] -name = "deno_media_type" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd0af4161f90b092feb363864a64d7c74e0efc13a15905d0d09df73bb72a123" -dependencies = [ - "data-url", - "serde", - "url", -] - -[[package]] -name = "deno_ops" -version = "0.256.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca88fda306cb23dc660f4740ca8be45b00ccfb78f09b178772c0b9a8cc49fbb1" -dependencies = [ - "indexmap 2.13.0", - "proc-macro2", - "quote", - "stringcase", - "strum 0.27.2", - "strum_macros 0.27.2", - "syn 2.0.117", - "syn-match", - "thiserror 2.0.18", -] - -[[package]] -name = "deno_path_util" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c7e98943f0d068928906db0c7bde89de684fa32c6a8018caacc4cee2cdd72b" -dependencies = [ - "deno_error", - "percent-encoding", - "sys_traits", - "thiserror 2.0.18", - "url", -] - -[[package]] -name = "deno_permissions" -version = "0.87.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c4c087e5db52092c37b05eca9669054348a39519ade39f9bd5fee7f2ac011ad" -dependencies = [ - "capacity_builder", - "chrono", - "deno_error", - "deno_path_util", - "deno_terminal", - "deno_unsync", - "fqdn", - "ipnetwork", - "libc", - "log", - "nix", - "once_cell", - "parking_lot", - "percent-encoding", - "serde", - "serde_json", - "sys_traits", - "thiserror 2.0.18", - "url", - "which 8.0.2", - "winapi", - "windows-sys 0.59.0", -] - -[[package]] -name = "deno_terminal" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ba8041ae7319b3ca6a64c399df4112badcbbe0868b4517637647614bede4be" -dependencies = [ - "once_cell", - "termcolor", -] - -[[package]] -name = "deno_unsync" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6742a724e8becb372a74c650a1aefb8924a5b8107f7d75b3848763ea24b27a87" -dependencies = [ - "futures-util", - "parking_lot", - "tokio", -] - -[[package]] -name = "deno_url" -version = "0.222.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c190c36940b8ba25043e2258775df3cd4af06f28c8a9efd28b50799efe2977" - -[[package]] -name = "deno_web" -version = "0.259.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1817063a120490b8d53432033987b0188dad40db2e00cd0291b2ebd483ca241a" -dependencies = [ - "async-trait", - "base64-simd", - "bytes", - "deno_core", - "deno_error", - "deno_features", - "deno_permissions", - "encoding_rs", - "flate2", - "futures", - "serde", - "thiserror 2.0.18", - "tokio", - "urlpattern", - "uuid", -] - -[[package]] -name = "deno_webidl" -version = "0.228.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92411419291a6849bd48185f8b185375f9c92d80444c1993c6f53e31fff05025" -dependencies = [ - "deno_core", -] - [[package]] name = "der" version = "0.7.10" @@ -2736,38 +2172,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "diplomat" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9adb46b05e2f53dcf6a7dfc242e4ce9eb60c369b6b6eb10826a01e93167f59c6" -dependencies = [ - "diplomat_core", - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "diplomat-runtime" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0569bd3caaf13829da7ee4e83dbf9197a0e1ecd72772da6d08f0b4c9285c8d29" - -[[package]] -name = "diplomat_core" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51731530ed7f2d4495019abc7df3744f53338e69e2863a6a64ae91821c763df1" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "smallvec", - "strck", - "syn 2.0.117", -] - [[package]] name = "dirs" version = "6.0.0" @@ -2850,22 +2254,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" -[[package]] -name = "dprint-swc-ext" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33175ddb7a6d418589cab2966bd14a710b3b1139459d3d5ca9edf783c4833f4c" -dependencies = [ - "num-bigint", - "rustc-hash 2.1.1", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_lexer", - "swc_ecma_parser", - "text_lines", -] - [[package]] name = "dtoa" version = "1.0.11" @@ -2931,18 +2319,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ed448-goldilocks" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06924531e9e90130842b012e447f85bdaf9161bc8a0f8092be8cb70b01ebe092" -dependencies = [ - "fiat-crypto 0.1.20", - "hex", - "subtle", - "zeroize", -] - [[package]] name = "either" version = "1.15.0" @@ -2956,7 +2332,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", - "base64ct", "crypto-bigint", "digest", "ff", @@ -2967,8 +2342,6 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", - "serde_json", - "serdect", "subtle", "zeroize", ] @@ -3116,12 +2489,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "fiat-crypto" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" - [[package]] name = "fiat-crypto" version = "0.2.9" @@ -3264,44 +2631,12 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fqdn" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "886ac788f62d16d6b0f26b2fa762b34ef16ebfb4b624c2c15fbcadc9173c0f72" - -[[package]] -name = "from_variant" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ff35a391aef949120a0340d690269b3d9f63460a6106e99bd07b961f345ea9" -dependencies = [ - "swc_macros_common", - "syn 2.0.117", -] - [[package]] name = "fs_extra" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" -[[package]] -name = "fslock" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - [[package]] name = "futf" version = "0.1.5" @@ -3530,7 +2865,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" dependencies = [ - "rustix 1.1.4", + "rustix", "windows-link 0.2.1", ] @@ -3674,12 +3009,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "glob" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" - [[package]] name = "global-hotkey" version = "0.7.0" @@ -3817,15 +3146,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "gzip-header" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95cc527b92e6029a62960ad99aa8a6660faa4555fe5f731aab13aa6a921795a2" -dependencies = [ - "crc32fast", -] - [[package]] name = "h2" version = "0.3.27" @@ -3888,7 +3208,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", - "allocator-api2", ] [[package]] @@ -3985,12 +3304,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" - [[package]] name = "hex" version = "0.4.3" @@ -4024,20 +3337,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "hstr" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa57007c3c9dab34df2fa4c1fb52fe9c34ec5a27ed9d8edea53254b50cd7887" -dependencies = [ - "hashbrown 0.14.5", - "new_debug_unreachable", - "once_cell", - "rustc-hash 2.1.1", - "serde", - "triomphe", -] - [[package]] name = "html-escape" version = "0.2.13" @@ -4299,28 +3598,6 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_calendar" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6f0e52e009b6b16ba9c0693578796f2dd4aaa59a7f8f920423706714a89ac4e" -dependencies = [ - "calendrical_calculations", - "displaydoc", - "icu_calendar_data", - "icu_locale", - "icu_locale_core", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_calendar_data" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527f04223b17edfe0bd43baf14a0cb1b017830db65f3950dc00224860a9a446d" - [[package]] name = "icu_collections" version = "2.1.1" @@ -4334,21 +3611,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locale" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532b11722e350ab6bf916ba6eb0efe3ee54b932666afec989465f9243fe6dd60" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_locale_data", - "icu_provider", - "potential_utf", - "tinystr", - "zerovec", -] - [[package]] name = "icu_locale_core" version = "2.1.1" @@ -4357,18 +3619,11 @@ checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", - "serde", "tinystr", "writeable", "zerovec", ] -[[package]] -name = "icu_locale_data" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c5f1d16b4c3a2642d3a719f18f6b06070ab0aef246a6418130c955ae08aa831" - [[package]] name = "icu_normalizer" version = "2.1.1" @@ -4417,8 +3672,6 @@ checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "serde", - "stable_deref_trait", "writeable", "yoke", "zerofrom", @@ -4459,12 +3712,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "if_chain" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd62e6b5e86ea8eeeb8db1de02880a6abc01a397b2ebb64b5d74ac255318f5cb" - [[package]] name = "indexmap" version = "1.9.3" @@ -4503,7 +3750,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ - "block-padding", "generic-array", ] @@ -4543,15 +3789,6 @@ version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" -[[package]] -name = "ipnetwork" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" -dependencies = [ - "serde", -] - [[package]] name = "iri-string" version = "0.7.11" @@ -4562,18 +3799,6 @@ dependencies = [ "serde", ] -[[package]] -name = "is-macro" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57a3e447e24c22647738e4607f1df1e0ec6f72e16182c4cd199f647cdfb0e4" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -4598,27 +3823,12 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" -[[package]] -name = "ixdtf" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84de9d95a6d2547d9b77ee3f25fa0ee32e3c3a6484d47a55adebc0439c077992" - [[package]] name = "javascriptcore-rs" version = "1.1.2" @@ -4898,12 +4108,6 @@ dependencies = [ "x11", ] -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -5060,7 +4264,6 @@ dependencies = [ "mize", "reqwest 0.13.2", "rusqlite", - "rustyscript", "serde", "serde_json", "tokio", @@ -5104,15 +4307,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" -[[package]] -name = "maybe_path" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c9329bd78af28f0d589085c383e5af47a24fbe070bc282cc7aa54a021c285b" -dependencies = [ - "serde", -] - [[package]] name = "memchr" version = "2.8.0" @@ -5125,7 +4319,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix 1.1.4", + "rustix", ] [[package]] @@ -5178,12 +4372,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -5378,16 +4566,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "ntapi" version = "0.4.3" @@ -5406,18 +4584,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "rand 0.8.5", - "serde", -] - [[package]] name = "num-bigint-dig" version = "0.8.6" @@ -5470,16 +4636,6 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.7.6" @@ -5637,27 +4793,6 @@ dependencies = [ "objc", ] -[[package]] -name = "object" -version = "0.37.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" -dependencies = [ - "memchr", -] - -[[package]] -name = "ocb3" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c196e0276c471c843dd5777e7543a36a298a4be942a2a688d8111cd43390dedb" -dependencies = [ - "aead", - "cipher", - "ctr", - "subtle", -] - [[package]] name = "once_cell" version = "1.21.4" @@ -5778,12 +4913,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "outref" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" - [[package]] name = "p256" version = "0.13.2" @@ -5808,20 +4937,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "p521" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2" -dependencies = [ - "base16ct", - "ecdsa", - "elliptic-curve", - "primeorder", - "rand_core 0.6.4", - "sha2", -] - [[package]] name = "pango" version = "0.18.3" @@ -5847,15 +4962,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "par-core" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96cbd21255b7fb29a5d51ef38a779b517a91abd59e2756c039583f43ef4c90f" -dependencies = [ - "once_cell", -] - [[package]] name = "parking_lot" version = "0.12.5" @@ -5885,12 +4991,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pathdiff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" - [[package]] name = "pem-rfc7468" version = "0.7.0" @@ -5931,7 +5031,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "phf_macros 0.10.0", + "phf_macros", "phf_shared 0.10.0", "proc-macro-hack", ] @@ -5942,7 +5042,6 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ - "phf_macros 0.11.3", "phf_shared 0.11.3", ] @@ -6010,19 +5109,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "phf_shared" version = "0.8.0" @@ -6152,8 +5238,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ - "serde_core", - "writeable", "zerovec", ] @@ -6361,16 +5445,6 @@ version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" -[[package]] -name = "psm" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852766467df634d74f0b2d7819bf8dc483a0eb2e3b0f50f756f9cfe8b0d18d8" -dependencies = [ - "ar_archive_writer", - "cc", -] - [[package]] name = "publicsuffix" version = "2.3.0" @@ -6458,12 +5532,6 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - [[package]] name = "rand" version = "0.7.3" @@ -6814,16 +5882,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "resb" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a067ab3b5ca3b4dc307d0de9cf75f9f5e6ca9717b192b2f28a36c83e5de9e76" -dependencies = [ - "potential_utf", - "serde_core", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -6868,7 +5926,7 @@ dependencies = [ "cfg-if 1.0.4", "getrandom 0.2.17", "libc", - "untrusted 0.9.0", + "untrusted", "windows-sys 0.52.0", ] @@ -6927,19 +5985,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.11.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.4" @@ -6949,7 +5994,7 @@ dependencies = [ "bitflags 2.11.0", "errno", "libc", - "linux-raw-sys 0.12.1", + "linux-raw-sys", "windows-sys 0.61.2", ] @@ -7055,7 +6100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -7067,7 +6112,7 @@ dependencies = [ "aws-lc-rs", "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -7076,43 +6121,12 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "rustyscript" -version = "0.12.3" -source = "git+https://github.com/rscarson/rustyscript?rev=e39529eac2c5d37cfcbb7d7d63da7264d7a5afdb#e39529eac2c5d37cfcbb7d7d63da7264d7a5afdb" -dependencies = [ - "async-trait", - "base64-simd", - "deno_ast", - "deno_console", - "deno_core", - "deno_crypto", - "deno_error", - "deno_features", - "deno_media_type 0.2.9", - "deno_terminal", - "deno_url", - "deno_webidl", - "maybe_path", - "paste", - "serde", - "thiserror 2.0.18", - "tokio", - "tokio-util", -] - [[package]] name = "ryu" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "ryu-js" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd29631678d6fb0903b69223673e122c32e9ae559d0960a38d574695ebc0ea15" - [[package]] name = "same-file" version = "1.0.6" @@ -7174,7 +6188,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -7187,7 +6201,6 @@ dependencies = [ "der", "generic-array", "pkcs8", - "serdect", "subtle", "zeroize", ] @@ -7267,12 +6280,6 @@ dependencies = [ "futures-core", ] -[[package]] -name = "seq-macro" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" - [[package]] name = "serde" version = "1.0.228" @@ -7304,16 +6311,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "serde_bytes" -version = "0.11.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" -dependencies = [ - "serde", - "serde_core", -] - [[package]] name = "serde_core" version = "1.0.228" @@ -7340,7 +6337,6 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.13.0", "itoa", "memchr", "serde", @@ -7420,20 +6416,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_v8" -version = "0.289.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781b7703bd6f995cc753c371b8ede9e0b09c0c47b3848d7d1cade89666520a92" -dependencies = [ - "deno_error", - "num-bigint", - "serde", - "smallvec", - "thiserror 2.0.18", - "v8", -] - [[package]] name = "serde_with" version = "3.18.0" @@ -7465,16 +6447,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - [[package]] name = "servo_arc" version = "0.2.0" @@ -7653,17 +6625,6 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -[[package]] -name = "smartstring" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" -dependencies = [ - "autocfg", - "static_assertions", - "version_check", -] - [[package]] name = "socket2" version = "0.5.10" @@ -7710,24 +6671,6 @@ dependencies = [ "system-deps", ] -[[package]] -name = "sourcemap" -version = "9.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "314d62a489431668f719ada776ca1d49b924db951b7450f8974c9ae51ab05ad7" -dependencies = [ - "base64-simd", - "bitvec", - "data-encoding", - "debugid", - "if_chain", - "rustc-hash 2.1.1", - "serde", - "serde_json", - "unicode-id-start", - "url", -] - [[package]] name = "spacetimedb" version = "2.1.0" @@ -7792,7 +6735,7 @@ dependencies = [ "spacetimedb-lib", "spacetimedb-primitives", "spacetimedb-sats", - "strum 0.25.0", + "strum", "thiserror 1.0.69", ] @@ -8022,34 +6965,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" -[[package]] -name = "stacker" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d74a23609d509411d10e2176dc2a4346e3b4aea2e7b1869f19fdedbc71c013" -dependencies = [ - "cc", - "cfg-if 1.0.4", - "libc", - "psm", - "windows-sys 0.59.0", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strck" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42316e70da376f3d113a68d138a60d8a9883c604fe97942721ec2068dab13a9f" -dependencies = [ - "unicode-ident", -] - [[package]] name = "string_cache" version = "0.8.9" @@ -8075,23 +6990,6 @@ dependencies = [ "quote", ] -[[package]] -name = "string_enum" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae36a4951ca7bd1cfd991c241584a9824a70f6aff1e7d4f693fb3f2465e4030e" -dependencies = [ - "quote", - "swc_macros_common", - "syn 2.0.117", -] - -[[package]] -name = "stringcase" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72abeda133c49d7bddece6c154728f83eec8172380c80ab7096da9487e20d27c" - [[package]] name = "strsim" version = "0.11.1" @@ -8104,16 +7002,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ - "strum_macros 0.25.3", -] - -[[package]] -name = "strum" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" -dependencies = [ - "strum_macros 0.27.2", + "strum_macros", ] [[package]] @@ -8129,18 +7018,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "strum_macros" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "subsecond" version = "0.7.3" @@ -8175,387 +7052,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "swc_allocator" -version = "4.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d7eefd2c8b228a8c73056482b2ae4b3a1071fbe07638e3b55ceca8570cc48bb" -dependencies = [ - "allocator-api2", - "bumpalo", - "hashbrown 0.14.5", - "rustc-hash 2.1.1", -] - -[[package]] -name = "swc_atoms" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ccbe2ecad10ad7432100f878a107b1d972a8aee83ca53184d00c23a078bb8a" -dependencies = [ - "hstr", - "once_cell", - "serde", -] - -[[package]] -name = "swc_common" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259b675d633a26d24efe3802a9d88858c918e6e8f062d3222d3aa02d56a2cf4c" -dependencies = [ - "anyhow", - "ast_node", - "better_scoped_tls", - "bytes-str", - "either", - "from_variant", - "new_debug_unreachable", - "num-bigint", - "once_cell", - "rustc-hash 2.1.1", - "serde", - "siphasher 0.3.11", - "swc_atoms", - "swc_eq_ignore_macros", - "swc_sourcemap", - "swc_visit", - "tracing", - "unicode-width", - "url", -] - -[[package]] -name = "swc_config" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e90b52ee734ded867104612218101722ad87ff4cf74fe30383bd244a533f97" -dependencies = [ - "anyhow", - "bytes-str", - "indexmap 2.13.0", - "serde", - "serde_json", - "swc_config_macro", -] - -[[package]] -name = "swc_config_macro" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b416e8ce6de17dc5ea496e10c7012b35bbc0e3fef38d2e065eed936490db0b3" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.117", -] - -[[package]] -name = "swc_ecma_ast" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a573a0c72850dec8d4d8085f152d5778af35a2520c3093b242d2d1d50776da7c" -dependencies = [ - "bitflags 2.11.0", - "is-macro", - "num-bigint", - "once_cell", - "phf 0.11.3", - "rustc-hash 2.1.1", - "serde", - "string_enum", - "swc_atoms", - "swc_common", - "swc_visit", - "unicode-id-start", -] - -[[package]] -name = "swc_ecma_codegen" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff2a6ee1ec49dda8dedeac54e4147b4e8b3f278d9bb34ab28983257a393d34ed" -dependencies = [ - "ascii", - "compact_str", - "memchr", - "num-bigint", - "once_cell", - "regex", - "rustc-hash 2.1.1", - "ryu-js", - "serde", - "swc_allocator", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_codegen_macros", - "swc_sourcemap", - "tracing", -] - -[[package]] -name = "swc_ecma_codegen_macros" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e276dc62c0a2625a560397827989c82a93fd545fcf6f7faec0935a82cc4ddbb8" -dependencies = [ - "proc-macro2", - "swc_macros_common", - "syn 2.0.117", -] - -[[package]] -name = "swc_ecma_lexer" -version = "26.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e82f7747e052c6ff6e111fa4adeb14e33b46ee6e94fe5ef717601f651db48fc" -dependencies = [ - "bitflags 2.11.0", - "either", - "num-bigint", - "rustc-hash 2.1.1", - "seq-macro", - "serde", - "smallvec", - "smartstring", - "stacker", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_parser", - "tracing", -] - -[[package]] -name = "swc_ecma_loader" -version = "17.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbcababb48f0d46587a0a854b2c577eb3a56fa99687de558338021e93cd2c8f5" -dependencies = [ - "anyhow", - "pathdiff", - "rustc-hash 2.1.1", - "serde", - "swc_atoms", - "swc_common", - "tracing", -] - -[[package]] -name = "swc_ecma_parser" -version = "27.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1a51af1a92cd4904c073b293e491bbc0918400a45d58227b34c961dd6f52d7" -dependencies = [ - "bitflags 2.11.0", - "either", - "num-bigint", - "phf 0.11.3", - "rustc-hash 2.1.1", - "seq-macro", - "serde", - "smartstring", - "stacker", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "tracing", -] - -[[package]] -name = "swc_ecma_transforms_base" -version = "30.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "250f6f165578ca4fee47bd57585c1b9597c94bf4ea6591df47f2b5fa5b1883fe" -dependencies = [ - "better_scoped_tls", - "indexmap 2.13.0", - "once_cell", - "par-core", - "phf 0.11.3", - "rustc-hash 2.1.1", - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_utils", - "swc_ecma_visit", - "tracing", -] - -[[package]] -name = "swc_ecma_transforms_classes" -version = "30.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3ab35eff4a980e02d708798ae4c35bc017612292adbffe7b7b554df772fdf5" -dependencies = [ - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_macros" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc777288799bf6786e5200325a56e4fbabba590264a4a48a0c70b16ad0cf5cd8" -dependencies = [ - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.117", -] - -[[package]] -name = "swc_ecma_transforms_proposal" -version = "30.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d7748d4112c87ce1885260035e4a43cebfe7661a40174b7d77a0a04760a257" -dependencies = [ - "either", - "rustc-hash 2.1.1", - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_classes", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_react" -version = "33.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03de12e38e47ac1c96ac576f793ad37a9d7b16fbf4f2203881f89152f2498682" -dependencies = [ - "base64 0.22.1", - "bytes-str", - "indexmap 2.13.0", - "once_cell", - "rustc-hash 2.1.1", - "serde", - "sha1", - "string_enum", - "swc_atoms", - "swc_common", - "swc_config", - "swc_ecma_ast", - "swc_ecma_parser", - "swc_ecma_transforms_base", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_transforms_typescript" -version = "33.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4408800fdeb541fabf3659db622189a0aeb386f57b6103f9294ff19dfde4f7b0" -dependencies = [ - "bytes-str", - "rustc-hash 2.1.1", - "serde", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_transforms_base", - "swc_ecma_transforms_react", - "swc_ecma_utils", - "swc_ecma_visit", -] - -[[package]] -name = "swc_ecma_utils" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fb99e179988cabd473779a4452ab942bcb777176983ca3cbaf22a8f056a65b0" -dependencies = [ - "indexmap 2.13.0", - "num_cpus", - "once_cell", - "par-core", - "rustc-hash 2.1.1", - "ryu-js", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_visit", - "tracing", -] - -[[package]] -name = "swc_ecma_visit" -version = "18.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9611a72a4008d62608547a394e5d72a5245413104db096d95a52368a8cc1d63" -dependencies = [ - "new_debug_unreachable", - "num-bigint", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_visit", - "tracing", -] - -[[package]] -name = "swc_eq_ignore_macros" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c16ce73424a6316e95e09065ba6a207eba7765496fed113702278b7711d4b632" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "swc_macros_common" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1efbaa74943dc5ad2a2fb16cbd78b77d7e4d63188f3c5b4df2b4dcd2faaae" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "swc_sourcemap" -version = "9.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de08ef00f816acdd1a58ee8a81c0e1a59eefef2093aefe5611f256fa6b64c4d7" -dependencies = [ - "base64-simd", - "bitvec", - "bytes-str", - "data-encoding", - "debugid", - "if_chain", - "rustc-hash 2.1.1", - "serde", - "serde_json", - "unicode-id-start", - "url", -] - -[[package]] -name = "swc_visit" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fb71484b486c185e34d2172f0eabe7f4722742aad700f426a494bb2de232a2" -dependencies = [ - "either", - "new_debug_unreachable", -] - [[package]] name = "syn" version = "1.0.109" @@ -8578,17 +7074,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn-match" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b8f0a9004d6aafa6a588602a1119e6cdaacec9921aa1605383e6e7d6258fd6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "sync_wrapper" version = "0.1.2" @@ -8615,26 +7100,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "sys_traits" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4121e69c72108134f9daf82cf6580269f018f5d8fb8cd3063df17699fbb84cb1" -dependencies = [ - "sys_traits_macros", -] - -[[package]] -name = "sys_traits_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "181f22127402abcf8ee5c83ccd5b408933fec36a6095cf82cda545634692657e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "sysinfo" version = "0.30.13" @@ -8755,12 +7220,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "tar" version = "0.4.45" @@ -8787,43 +7246,10 @@ dependencies = [ "fastrand", "getrandom 0.4.2", "once_cell", - "rustix 1.1.4", + "rustix", "windows-sys 0.61.2", ] -[[package]] -name = "temporal_capi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a151e402c2bdb6a3a2a2f3f225eddaead2e7ce7dd5d3fa2090deb11b17aa4ed8" -dependencies = [ - "diplomat", - "diplomat-runtime", - "icu_calendar", - "icu_locale", - "num-traits", - "temporal_rs", - "timezone_provider", - "writeable", - "zoneinfo64", -] - -[[package]] -name = "temporal_rs" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88afde3bd75d2fc68d77a914bece426aa08aa7649ffd0cdd4a11c3d4d33474d1" -dependencies = [ - "core_maths", - "icu_calendar", - "icu_locale", - "ixdtf", - "num-traits", - "timezone_provider", - "tinystr", - "writeable", -] - [[package]] name = "tendril" version = "0.4.3" @@ -8844,15 +7270,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "text_lines" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd5828de7deaa782e1dd713006ae96b3bee32d3279b79eb67ecf8072c059bcf" -dependencies = [ - "serde", -] - [[package]] name = "thiserror" version = "1.0.69" @@ -8933,18 +7350,6 @@ dependencies = [ "time-core", ] -[[package]] -name = "timezone_provider" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9ba0000e9e73862f3e7ca1ff159e2ddf915c9d8bb11e38a7874760f445d993" -dependencies = [ - "tinystr", - "zerotrie", - "zerovec", - "zoneinfo64", -] - [[package]] name = "tinystr" version = "0.8.2" @@ -8952,7 +7357,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", - "serde_core", "zerovec", ] @@ -9463,16 +7867,6 @@ dependencies = [ "windows-sys 0.60.2", ] -[[package]] -name = "triomphe" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" -dependencies = [ - "serde", - "stable_deref_trait", -] - [[package]] name = "try-lock" version = "0.2.5" @@ -9547,12 +7941,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" -[[package]] -name = "unicode-id-start" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b79ad29b5e19de4260020f8919b443b2ef0277d242ce532ec7b7a2cc8b6007" - [[package]] name = "unicode-ident" version = "1.0.24" @@ -9574,12 +7962,6 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da36089a805484bcccfffe0739803392c8298778a2d2f09febf76fac5ad9025b" -[[package]] -name = "unicode-width" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" - [[package]] name = "unicode-xid" version = "0.2.6" @@ -9596,12 +7978,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -9627,18 +8003,6 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" -[[package]] -name = "urlpattern" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f805818f843b548bacc19609eb3619dd2850e54746f5cada37927393c2ef4ec" -dependencies = [ - "icu_properties", - "regex", - "serde", - "url", -] - [[package]] name = "utf-8" version = "0.7.6" @@ -9671,27 +8035,9 @@ checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom 0.4.2", "js-sys", - "serde_core", "wasm-bindgen", ] -[[package]] -name = "v8" -version = "142.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f566072bd76b2631d0dca1d90a766c943863b1fd6b01312281dc919816de976d" -dependencies = [ - "bindgen", - "bitflags 2.11.0", - "fslock", - "gzip-header", - "home", - "miniz_oxide", - "paste", - "temporal_capi", - "which 6.0.3", -] - [[package]] name = "valuable" version = "0.1.1" @@ -9716,12 +8062,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "vsimd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" - [[package]] name = "walkdir" version = "2.5.0" @@ -9926,16 +8266,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "wasm_dep_analyzer" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a10e6b67c951a84de7029487e0e0a496860dae49f6699edd279d5ff35b8fbf54" -dependencies = [ - "deno_error", - "thiserror 2.0.18", -] - [[package]] name = "wasmparser" version = "0.244.0" @@ -10035,7 +8365,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ "ring", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -10119,24 +8449,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "which" -version = "6.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" -dependencies = [ - "either", - "home", - "rustix 0.38.44", - "winsafe", -] - -[[package]] -name = "which" -version = "8.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81995fafaaaf6ae47a7d0cc83c67caf92aeb7e5331650ae6ff856f7c0c60c459" - [[package]] name = "winapi" version = "0.3.9" @@ -10689,12 +9001,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winsafe" -version = "0.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" - [[package]] name = "wit-bindgen" version = "0.51.0" @@ -10832,15 +9138,6 @@ dependencies = [ "windows-version", ] -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - [[package]] name = "x11" version = "2.21.0" @@ -10869,7 +9166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" dependencies = [ "gethostname", - "rustix 1.1.4", + "rustix", "x11rb-protocol", ] @@ -10879,18 +9176,6 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" -[[package]] -name = "x25519-dalek" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" -dependencies = [ - "curve25519-dalek", - "rand_core 0.6.4", - "serde", - "zeroize", -] - [[package]] name = "xattr" version = "1.6.1" @@ -10898,7 +9183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.1.4", + "rustix", ] [[package]] @@ -10982,20 +9267,6 @@ name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] [[package]] name = "zerotrie" @@ -11014,7 +9285,6 @@ version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ - "serde", "yoke", "zerofrom", "zerovec-derive", @@ -11036,16 +9306,3 @@ name = "zmij" version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" - -[[package]] -name = "zoneinfo64" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2e5597efbe7c421da8a7fd396b20b571704e787c21a272eecf35dfe9d386f0" -dependencies = [ - "calendrical_calculations", - "icu_locale_core", - "potential_utf", - "resb", - "serde", -] diff --git a/flake.nix b/flake.nix index 2b5a3f8..08fe4c4 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,7 @@ let ]; wasmCrane = (crane.mkLib pkgs).overrideToolchain wasmToolchain; - osToolchain = fenix.packages.${system}.nightly.toolchain; + osToolchain = fenix.packages.${system}.latest.toolchain; osCrane = (crane.mkLib pkgs).overrideToolchain osToolchain; @@ -120,11 +120,67 @@ in { }); }; }; - - default = osCrane.buildPackage { - src = "${self}"; - cargoExtraArgs = "--bin mize --features target-os"; + fileSetForCrate = + crate: + pkgs.lib.fileset.toSource { + root = ./.; + fileset = pkgs.lib.fileset.unions [ + ./Cargo.toml + ./Cargo.lock + (craneLib.fileset.commonCargoSources ./packages/marts) + (craneLib.fileset.commonCargoSources ./packages/mize) + (craneLib.fileset.commonCargoSources ./packages/ppc/spacetimedb) + (craneLib.fileset.commonCargoSources ./packages/mme) + (craneLib.fileset.commonCargoSources ./packages/vic) + (craneLib.fileset.commonCargoSources ./packages/ac_mize_macros) + (craneLib.fileset.commonCargoSources crate) + ]; + }; + ppc = osCrane.buildPackage { + src = fileSetForCrate ./packages/ppc; + cargoExtraArgs = "-p ppc"; + nativeBuildInputs = [ + pkgs.pkg-config + pkgs.gobject-introspection + pkgs.gobject-introspection.dev + ]; + + buildInputs = with pkgs; [ + git # needed to build spacetimedb as it needs to get it's git hash for setting it's version + at-spi2-atk + atkmm + cairo + gdk-pixbuf + glib + gtk3 + harfbuzz + librsvg + libsoup_3 + pango + webkitgtk_4_1 + openssl + wasm-bindgen-cli + lld_20 + xdotool + ]; + + LD_LIBRARY_PATH = with pkgs; pkgs.lib.makeLibraryPath [ + xdotool + webkitgtk_4_1 + pango + openssl + at-spi2-atk + atkmm + cairo + gdk-pixbuf + glib + gtk3 + harfbuzz + librsvg + libsoup_3 + ]; }; + #SPACETIMEDB_NIX_BUILD_GIT_COMMIT = wasm = wasmCrane.buildPackage { src = "${self}"; @@ -213,6 +269,81 @@ in { #default = (mizeLib.buildMizeForSystem system).modules.mize.devShell; + buildShell = pkgs.mkShell { + + MIZE_BUILD_CONFIG = let + settingsFormat = pkgs.formats.toml { }; + in settingsFormat.generate "mize-build-config.toml" { + config = { + namespace = "mize.buildtime.ns"; + module_url = "c2vi.dev"; + }; + }; + shellHook = '' + mize_project_root=$(${pkgs.lib.getExe pkgs.git} rev-parse --show-toplevel) + export MIZE_CONFIG_FILES=$mize_project_root/mize_config.toml + ''; + nativeBuildInputs = [ + pkgs.wasm-pack + pkgs.pkg-config + pkgs.gobject-introspection + pkgs.gobject-introspection.dev + + # thanks to: https://github.com/NixOS/nixpkgs/pull/496279/changes + (pkgs.buildWasmBindgenCli rec { + src = pkgs.fetchCrate { + pname = "wasm-bindgen-cli"; + version = "0.2.114"; + hash = "sha256-xrCym+rFY6EUQFWyWl6OPA+LtftpUAE5pIaElAIVqW0="; + }; + + cargoDeps = pkgs.rustPlatform.fetchCargoVendor { + inherit src; + inherit (src) pname version; + hash = "sha256-Z8+dUXPQq7S+Q7DWNr2Y9d8GMuEdSnq00quUR0wDNPM="; + }; + }) + (fenix.packages.${system}.combine [ + fenix.packages.${system}.latest.toolchain + fenix.packages.${system}.targets.wasm32-unknown-unknown.latest.toolchain + ]) + ]; + + buildInputs = with pkgs; [ + at-spi2-atk + atkmm + cairo + gdk-pixbuf + glib + gtk3 + harfbuzz + librsvg + libsoup_3 + pango + webkitgtk_4_1 + openssl + wasm-bindgen-cli + lld_20 + xdotool + ]; + + LD_LIBRARY_PATH = with pkgs; pkgs.lib.makeLibraryPath [ + xdotool + webkitgtk_4_1 + pango + openssl + at-spi2-atk + atkmm + cairo + gdk-pixbuf + glib + gtk3 + harfbuzz + librsvg + libsoup_3 + ]; + + }; default = pkgs.mkShell { MIZE_BUILD_CONFIG = let diff --git a/md b/md index 1cef9ef..8c33bf3 100755 --- a/md +++ b/md @@ -2,7 +2,7 @@ set -e MIZE_SRC="/home/me/work/mize" # hardcoded for now -RSYNC_EXCLUDES="--exclude=.git --exclude=node_modules --exclude=target --exclude=mize_config.toml --exclude=rust_dist --exclude=deno_dist --exclude=dist --exclude=result --exclude=pkg" +RSYNC_EXCLUDES="--exclude=node_modules --exclude=target --exclude=mize_config.toml --exclude=rust_dist --exclude=deno_dist --exclude=dist --exclude=result --exclude=pkg" function main { if [[ "$1" == "dlu" ]]; then @@ -23,13 +23,22 @@ function deploy_lush { echo "c2vi: Deploying to lush..." # Copy files to lush - rsync -r -u -v --delete --mkpath $RSYNC_EXCLUDES $MIZE_SRC/* lush:here/mize + rsync -r -u -v -a --delete --include=".git/" --include=".git/**" --mkpath $RSYNC_EXCLUDES $MIZE_SRC lush:here # compile - ssh lush nix develop /home/me/here/mize --impure -v -L -c sh -c "cargo build --release --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" - - # restart service - ssh lush "sudo systemctl restart ppc" + ssh lush << EOF + if ! tmux has-session -t ppc-deploy 2>/dev/null; then + echo "Created new tmux session...." + tmux new-session -d -s ppc-deploy "nix develop git+file:///home/me/here/mize#buildShell" + tmux send-keys -t ppc-deploy "cargo build --featuers desktop --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" Enter + tmux send-keys -t ppc-deploy "systemctl --user restart ppc" Enter + else + echo "using existing session..." + tmux send-keys -t ppc-deploy "cargo build --features desktop --manifest-path /home/me/here/mize/packages/ppc/Cargo.toml" Enter + tmux send-keys -t ppc-deploy "systemctl --user restart ppc" Enter + fi +EOF + } function deploy_main_website { diff --git a/packages/marts/Cargo.toml b/packages/marts/Cargo.toml index 5912d1b..9a68aed 100644 --- a/packages/marts/Cargo.toml +++ b/packages/marts/Cargo.toml @@ -11,7 +11,7 @@ futures = "0.3.32" mize = { path = "../mize/", default-features = false } tokio = "1.49.0" # https://github.com/rscarson/rustyscript/pull/415 -rustyscript = { git = 'https://github.com/rscarson/rustyscript', rev = 'e39529eac2c5d37cfcbb7d7d63da7264d7a5afdb', optional = true } +#rustyscript = { git = 'https://github.com/rscarson/rustyscript', rev = 'e39529eac2c5d37cfcbb7d7d63da7264d7a5afdb', optional = true } #deno_core = { version = "0.380.1", optional = true } chrono = "0.4.44" reqwest = { version = "0.13.2", features = ["blocking", "json"] } @@ -22,7 +22,7 @@ dioxus = { version = "0.7.1", optional = true } [features] default = ["target-os", "desktop", "server"] -target-os = [ "clap", "mize/target-os", "rustyscript", "rusqlite", "dioxus" ] +target-os = [ "clap", "mize/target-os", "rusqlite", "dioxus" ] desktop = ["dioxus/desktop"] server = [] target-js = [ "mize/target-js" ] diff --git a/packages/marts/c2vi/mod.rs b/packages/marts/c2vi/mod.rs index ee88940..6ffbfcf 100644 --- a/packages/marts/c2vi/mod.rs +++ b/packages/marts/c2vi/mod.rs @@ -51,7 +51,7 @@ pub fn c2vi(mize: &mut Mize) -> MizeResult<()> { pub fn c2vi_client(mize: &mut Mize) -> MizeResult<()> { //let storage_path = mize.get_config("c2vi.local_storage_path")?.as_ let storage_path = "/home/me/work/app-data/ppc"; - println!("storage_path: {}", storage_path); + //println!("storage_path: {}", storage_path); let db_path = std::path::PathBuf::from(&storage_path).join("data.db"); let conn = Connection::open(&db_path) .map_err(|e| mize_err!("Failed to open C2vi database at {:?}: {}", db_path, e))?; diff --git a/packages/mize/src/core/config.rs b/packages/mize/src/core/config.rs index e6ad279..c51f35b 100644 --- a/packages/mize/src/core/config.rs +++ b/packages/mize/src/core/config.rs @@ -51,14 +51,11 @@ pub fn gather_config(mize: &mut Mize) -> MizeResult<()> { println!("reading config file: {config_file_path}"); let content = std::fs::read_to_string(config_file_path)?; let mut data = ItemData::from_toml(content.as_str())?; - println!("config data: {data}"); for path in data.get_paths_recursive()? { let mut conf_name = path.replace("/", "."); if conf_name.starts_with(".") { conf_name.remove(0); } - println!("adding config {conf_name} from config file {config_file_path}"); - println!("path: {:?}", path); let val = data.get_path(path.split("/").filter(|s| s != &"").collect::>())?; match config_opts.get_mut(&conf_name) { Some(opt) => { diff --git a/packages/mize/src/core/instance/mod.rs b/packages/mize/src/core/instance/mod.rs index f67a643..ee158d8 100644 --- a/packages/mize/src/core/instance/mod.rs +++ b/packages/mize/src/core/instance/mod.rs @@ -869,7 +869,7 @@ impl Mize { // get the cached value if let Some(val) = opt.val.clone() { - println!("get_config: {name} has cached value: {val}"); + //println!("get_config: {name} has cached value: {val}"); return Ok(val); } diff --git a/packages/ppc/Cargo.toml b/packages/ppc/Cargo.toml index 8edf469..277f770 100644 --- a/packages/ppc/Cargo.toml +++ b/packages/ppc/Cargo.toml @@ -47,7 +47,7 @@ path = "lib.rs" name = "ppc" [features] -default = ["target-os", "server", "client"] +default = ["target-os", "server", "client", "desktop"] target-os = [ "clap", "mize/target-os", "marts/target-os", "tracing", "webbrowser", "base64", "serde_json", "serde" ] target-obsidian = [ "js-sys", "wasm-bindgen", "mize/target-js", "marts/target-js", "base64", "serde_json", "serde", "openidconnect", "dioxus", "dioxus-web", "web-sys", "web-sys/Document", "dioxus/web" ] server = [ "axum", "axum-extra", "openidconnect", "serde", "serde_json", "reqwest", "rand", "url", "time", "tokio", "dioxus/ssr", "dioxus/server", "dioxus/fullstack", "dioxus/router", "dioxus-ssr", "html-escape", "axum-oidc", "tower", "tower-sessions", "marts/server", "target-os" ] diff --git a/packages/ppc/auth/client.rs b/packages/ppc/auth/client.rs index 92fb26e..45b0e5b 100644 --- a/packages/ppc/auth/client.rs +++ b/packages/ppc/auth/client.rs @@ -3,17 +3,19 @@ use base64::{ alphabet::STANDARD, engine::{DecodePaddingMode, GeneralPurpose, GeneralPurposeConfig}, }; +use dioxus::{fullstack::ClientResponse, html::ol}; use mize::{Mize, MizeError, MizePart, MizeResult, item::ItemData, mize_err, mize_part}; use openidconnect::{ - AuthorizationCode, ClientId, CsrfToken, DeviceAuthorizationResponse, + AccessToken, AuthorizationCode, ClientId, CsrfToken, DeviceAuthorizationResponse, EmptyExtraDeviceAuthorizationFields, IssuerUrl, Nonce, OAuth2TokenResponse, PkceCodeChallenge, - PkceCodeVerifier, RedirectUrl, RefreshToken, Scope, + PkceCodeVerifier, RedirectUrl, RefreshToken, Scope, TokenResponse, core::{CoreAuthenticationFlow, CoreClient, CoreProviderMetadata}, }; use serde::{Deserialize, Serialize}; use std::{ io::{self, Write}, path::PathBuf, + thread, }; // console_log macro @@ -45,7 +47,7 @@ pub struct ClientAuth { secrets: Option, } -#[derive(Default, Serialize, Deserialize)] +#[derive(Default, Serialize, Deserialize, Clone, Debug)] pub struct ClientSecrets { id_token: String, access_token: String, @@ -79,23 +81,64 @@ impl ClientAuth { } Ok(&self.secrets.as_ref().unwrap().refresh_token) } + + pub fn refresh(&mut self) -> MizeResult<()> { + let secrets = self.secrets.clone().ok_or(mize_err!( + "no client secrets, meaning the refresh thread can't use the refresh token" + ))?; + self.mize.spawn_async_blocking( + "auth.refresh_flow", + refresh_flow(self.mize.clone(), secrets), + )?; + Ok(()) + } + + pub fn start_refresh_thread(&mut self) -> MizeResult<()> { + let mut mize_clone = self.mize.clone(); + self.mize.spawn_background("auth.refresh", move || { + loop { + thread::sleep(Duration::from_hours(23)); + let mut auth = mize_clone.get_part_native::("auth")?; + auth.refresh()?; + drop(auth); + } + })?; + Ok(()) + } } pub fn client_auth(mize: &mut Mize) -> MizeResult<()> { let mize_clone = mize.clone(); - let secrets = match read_secrets(mize) { + let mut secrets = match read_secrets(mize) { Ok(secrets) => Some(secrets), - Err(_) => None, + Err(err) => { + println!("err reading secrets: {:?}", err); + None + } }; #[cfg(feature = "target-os")] { let mut cli = mize.get_part_native::("cli")?; cli.subcommand(Command::new("login"), |_, mut mize| { - let secrets = mize.spawn_async_blocking("client_auth", auth_flow(mize_clone))?; - write_secrets(&mut mize, &secrets)?; let mut auth = mize.get_part_native::("client_auth")?; + println!("secrets: {:?}", auth.secrets); + let secrets = if auth.secrets.is_some() { + match mize.spawn_async_blocking( + "client_auth", + refresh_flow(mize.clone(), auth.secrets.clone().unwrap()), + ) { + Ok(secrets) => secrets, + Err(err) => { + println!("err refreshing secrets: {:?}", err); + mize.spawn_async_blocking("client_auth", auth_flow(mize_clone))? + } + } + } else { + mize.spawn_async_blocking("client_auth", auth_flow(mize_clone))? + }; + write_secrets(&mut mize, &secrets)?; auth.secrets = Some(secrets); Ok(()) }); @@ -104,6 +147,16 @@ pub fn client_auth(mize: &mut Mize) -> MizeResult<()> { #[cfg(feature = "target-obsidian")] {} + // check if login token is stil valid refresh if not + /* + if secrets.is_some() { + secrets = Some(mize.spawn_async_blocking( + "client_auth", + refresh_flow(mize.clone(), secrets.clone().unwrap()), + )?); + } + */ + mize.register_part(Box::new(ClientAuth { secrets, mize: mize.clone(), @@ -143,13 +196,79 @@ struct Combined<'a> { state: &'a str, } +use openidconnect::DeviceAuthorizationUrl; use openidconnect::reqwest::Client as HttpClient; -use openidconnect::{AuthUrl, DeviceAuthorizationUrl}; use std::time::Duration; -use tokio::time::sleep; + +async fn refresh_flow(mut mize: Mize, old_secrets: ClientSecrets) -> MizeResult { + println!("Refresh flow..."); + let issuer = mize.get_config("auth.client.issuer")?.value_string()?; + let client_id = mize.get_config("auth.client.client_id")?.value_string()?; + + let issuer = IssuerUrl::new(issuer)?; + let client_id = ClientId::new(client_id); + + let http_client = HttpClient::new(); + + // Teach openidconnect-rs about the device authorization url. + #[derive(Clone, Debug, Deserialize, Serialize)] + struct MyExtraProviderMetadata { + device_authorization_endpoint: String, + } + use openidconnect::AdditionalProviderMetadata; + use openidconnect::ProviderMetadata; + use openidconnect::core::{ + CoreAuthDisplay, CoreClaimName, CoreClaimType, CoreClient, CoreClientAuthMethod, + CoreDeviceAuthorizationResponse, CoreGrantType, CoreJsonWebKey, CoreJsonWebKeyType, + CoreJsonWebKeyUse, CoreJweContentEncryptionAlgorithm, CoreJweKeyManagementAlgorithm, + CoreJwsSigningAlgorithm, CoreResponseMode, CoreResponseType, CoreSubjectIdentifierType, + }; + impl AdditionalProviderMetadata for MyExtraProviderMetadata {} + type MyProviderMetadata = ProviderMetadata< + MyExtraProviderMetadata, + CoreAuthDisplay, + CoreClientAuthMethod, + CoreClaimName, + CoreClaimType, + CoreGrantType, + CoreJweContentEncryptionAlgorithm, + CoreJweKeyManagementAlgorithm, + CoreJsonWebKey, + CoreResponseMode, + CoreResponseType, + CoreSubjectIdentifierType, + >; + + // Discover provider metadata + let provider_metadata: MyProviderMetadata = + MyProviderMetadata::discover_async(issuer, &http_client).await?; + + let device_auth_url = provider_metadata + .additional_metadata() + .device_authorization_endpoint + .clone(); + + let client = CoreClient::from_provider_metadata( + provider_metadata, + client_id, + None, // public client + ) + .set_device_authorization_url(DeviceAuthorizationUrl::new(device_auth_url)?); + + let refresh_token = RefreshToken::new(old_secrets.refresh_token); + let res = client + .exchange_refresh_token(&refresh_token)? + .request_async(&http_client) + .await?; + + return Ok(ClientSecrets { + id_token: res.id_token().unwrap().to_string(), + access_token: res.access_token().secret().to_owned(), + refresh_token: res.refresh_token().unwrap().secret().to_owned(), + }); +} async fn auth_flow(mut mize: Mize) -> MizeResult { - // ===== CONFIG ===== let issuer = mize.get_config("auth.client.issuer")?.value_string()?; let client_id = mize.get_config("auth.client.client_id")?.value_string()?; diff --git a/packages/ppc/generated/action_type.rs b/packages/ppc/generated/action_type.rs new file mode 100644 index 0000000..33dfc43 --- /dev/null +++ b/packages/ppc/generated/action_type.rs @@ -0,0 +1,60 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#![allow(unused, clippy::all)] +use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; + +#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)] +#[sats(crate = __lib)] +pub struct Action { + pub name: String, + pub activity: Option, + pub task: Option, + pub start: Option<__sdk::Timestamp>, + pub end: Option<__sdk::Timestamp>, + pub duration: Option, +} + +impl __sdk::InModule for Action { + type Module = super::RemoteModule; +} + +/// Column accessor struct for the table `Action`. +/// +/// Provides typed access to columns for query building. +pub struct ActionCols { + pub name: __sdk::__query_builder::Col, + pub activity: __sdk::__query_builder::Col>, + pub task: __sdk::__query_builder::Col>, + pub start: __sdk::__query_builder::Col>, + pub end: __sdk::__query_builder::Col>, + pub duration: __sdk::__query_builder::Col>, +} + +impl __sdk::__query_builder::HasCols for Action { + type Cols = ActionCols; + fn cols(table_name: &'static str) -> Self::Cols { + ActionCols { + name: __sdk::__query_builder::Col::new(table_name, "name"), + activity: __sdk::__query_builder::Col::new(table_name, "activity"), + task: __sdk::__query_builder::Col::new(table_name, "task"), + start: __sdk::__query_builder::Col::new(table_name, "start"), + end: __sdk::__query_builder::Col::new(table_name, "end"), + duration: __sdk::__query_builder::Col::new(table_name, "duration"), + } + } +} + +/// Indexed column accessor struct for the table `Action`. +/// +/// Provides typed access to indexed columns for query building. +pub struct ActionIxCols {} + +impl __sdk::__query_builder::HasIxCols for Action { + type IxCols = ActionIxCols; + fn ix_cols(table_name: &'static str) -> Self::IxCols { + ActionIxCols {} + } +} + +impl __sdk::__query_builder::CanBeLookupTable for Action {} diff --git a/packages/ppc/generated/event_type.rs b/packages/ppc/generated/event_type.rs deleted file mode 100644 index 8f30d8b..0000000 --- a/packages/ppc/generated/event_type.rs +++ /dev/null @@ -1,53 +0,0 @@ -// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE -// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. - -#![allow(unused, clippy::all)] -use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; - -use super::activity_type::Activity; - -#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)] -#[sats(crate = __lib)] -pub struct Event { - pub start: __sdk::Timestamp, - pub end: __sdk::Timestamp, - pub activity: Activity, -} - -impl __sdk::InModule for Event { - type Module = super::RemoteModule; -} - -/// Column accessor struct for the table `Event`. -/// -/// Provides typed access to columns for query building. -pub struct EventCols { - pub start: __sdk::__query_builder::Col, - pub end: __sdk::__query_builder::Col, - pub activity: __sdk::__query_builder::Col, -} - -impl __sdk::__query_builder::HasCols for Event { - type Cols = EventCols; - fn cols(table_name: &'static str) -> Self::Cols { - EventCols { - start: __sdk::__query_builder::Col::new(table_name, "start"), - end: __sdk::__query_builder::Col::new(table_name, "end"), - activity: __sdk::__query_builder::Col::new(table_name, "activity"), - } - } -} - -/// Indexed column accessor struct for the table `Event`. -/// -/// Provides typed access to indexed columns for query building. -pub struct EventIxCols {} - -impl __sdk::__query_builder::HasIxCols for Event { - type IxCols = EventIxCols; - fn ix_cols(table_name: &'static str) -> Self::IxCols { - EventIxCols {} - } -} - -impl __sdk::__query_builder::CanBeLookupTable for Event {} diff --git a/packages/ppc/generated/events_table.rs b/packages/ppc/generated/events_table.rs deleted file mode 100644 index 82589a9..0000000 --- a/packages/ppc/generated/events_table.rs +++ /dev/null @@ -1,112 +0,0 @@ -// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE -// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. - -#![allow(unused, clippy::all)] -use super::activity_type::Activity; -use super::event_type::Event; -use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; - -/// Table handle for the table `events`. -/// -/// Obtain a handle from the [`EventsTableAccess::events`] method on [`super::RemoteTables`], -/// like `ctx.db.events()`. -/// -/// Users are encouraged not to explicitly reference this type, -/// but to directly chain method calls, -/// like `ctx.db.events().on_insert(...)`. -pub struct EventsTableHandle<'ctx> { - imp: __sdk::TableHandle, - ctx: std::marker::PhantomData<&'ctx super::RemoteTables>, -} - -#[allow(non_camel_case_types)] -/// Extension trait for access to the table `events`. -/// -/// Implemented for [`super::RemoteTables`]. -pub trait EventsTableAccess { - #[allow(non_snake_case)] - /// Obtain a [`EventsTableHandle`], which mediates access to the table `events`. - fn events(&self) -> EventsTableHandle<'_>; -} - -impl EventsTableAccess for super::RemoteTables { - fn events(&self) -> EventsTableHandle<'_> { - EventsTableHandle { - imp: self.imp.get_table::("events"), - ctx: std::marker::PhantomData, - } - } -} - -pub struct EventsInsertCallbackId(__sdk::CallbackId); -pub struct EventsDeleteCallbackId(__sdk::CallbackId); - -impl<'ctx> __sdk::Table for EventsTableHandle<'ctx> { - type Row = Event; - type EventContext = super::EventContext; - - fn count(&self) -> u64 { - self.imp.count() - } - fn iter(&self) -> impl Iterator + '_ { - self.imp.iter() - } - - type InsertCallbackId = EventsInsertCallbackId; - - fn on_insert( - &self, - callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static, - ) -> EventsInsertCallbackId { - EventsInsertCallbackId(self.imp.on_insert(Box::new(callback))) - } - - fn remove_on_insert(&self, callback: EventsInsertCallbackId) { - self.imp.remove_on_insert(callback.0) - } - - type DeleteCallbackId = EventsDeleteCallbackId; - - fn on_delete( - &self, - callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static, - ) -> EventsDeleteCallbackId { - EventsDeleteCallbackId(self.imp.on_delete(Box::new(callback))) - } - - fn remove_on_delete(&self, callback: EventsDeleteCallbackId) { - self.imp.remove_on_delete(callback.0) - } -} - -#[doc(hidden)] -pub(super) fn register_table(client_cache: &mut __sdk::ClientCache) { - let _table = client_cache.get_or_make_table::("events"); -} - -#[doc(hidden)] -pub(super) fn parse_table_update( - raw_updates: __ws::v2::TableUpdate, -) -> __sdk::Result<__sdk::TableUpdate> { - __sdk::TableUpdate::parse_table_update(raw_updates).map_err(|e| { - __sdk::InternalError::failed_parse("TableUpdate", "TableUpdate") - .with_cause(e) - .into() - }) -} - -#[allow(non_camel_case_types)] -/// Extension trait for query builder access to the table `Event`. -/// -/// Implemented for [`__sdk::QueryTableAccessor`]. -pub trait eventsQueryTableAccess { - #[allow(non_snake_case)] - /// Get a query builder for the table `Event`. - fn events(&self) -> __sdk::__query_builder::Table; -} - -impl eventsQueryTableAccess for __sdk::QueryTableAccessor { - fn events(&self) -> __sdk::__query_builder::Table { - __sdk::__query_builder::Table::new("events") - } -} diff --git a/packages/ppc/generated/log_event_type.rs b/packages/ppc/generated/log_event_type.rs new file mode 100644 index 0000000..ed0ba04 --- /dev/null +++ b/packages/ppc/generated/log_event_type.rs @@ -0,0 +1,60 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#![allow(unused, clippy::all)] +use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; + +use super::action_type::Action; + +#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)] +#[sats(crate = __lib)] +pub struct LogEvent { + pub id: u64, + pub start: __sdk::Timestamp, + pub end: __sdk::Timestamp, + pub action: Action, +} + +impl __sdk::InModule for LogEvent { + type Module = super::RemoteModule; +} + +/// Column accessor struct for the table `LogEvent`. +/// +/// Provides typed access to columns for query building. +pub struct LogEventCols { + pub id: __sdk::__query_builder::Col, + pub start: __sdk::__query_builder::Col, + pub end: __sdk::__query_builder::Col, + pub action: __sdk::__query_builder::Col, +} + +impl __sdk::__query_builder::HasCols for LogEvent { + type Cols = LogEventCols; + fn cols(table_name: &'static str) -> Self::Cols { + LogEventCols { + id: __sdk::__query_builder::Col::new(table_name, "id"), + start: __sdk::__query_builder::Col::new(table_name, "start"), + end: __sdk::__query_builder::Col::new(table_name, "end"), + action: __sdk::__query_builder::Col::new(table_name, "action"), + } + } +} + +/// Indexed column accessor struct for the table `LogEvent`. +/// +/// Provides typed access to indexed columns for query building. +pub struct LogEventIxCols { + pub id: __sdk::__query_builder::IxCol, +} + +impl __sdk::__query_builder::HasIxCols for LogEvent { + type IxCols = LogEventIxCols; + fn ix_cols(table_name: &'static str) -> Self::IxCols { + LogEventIxCols { + id: __sdk::__query_builder::IxCol::new(table_name, "id"), + } + } +} + +impl __sdk::__query_builder::CanBeLookupTable for LogEvent {} diff --git a/packages/ppc/generated/log_events_table.rs b/packages/ppc/generated/log_events_table.rs new file mode 100644 index 0000000..f855859 --- /dev/null +++ b/packages/ppc/generated/log_events_table.rs @@ -0,0 +1,160 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#![allow(unused, clippy::all)] +use super::action_type::Action; +use super::log_event_type::LogEvent; +use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; + +/// Table handle for the table `log_events`. +/// +/// Obtain a handle from the [`LogEventsTableAccess::log_events`] method on [`super::RemoteTables`], +/// like `ctx.db.log_events()`. +/// +/// Users are encouraged not to explicitly reference this type, +/// but to directly chain method calls, +/// like `ctx.db.log_events().on_insert(...)`. +pub struct LogEventsTableHandle<'ctx> { + imp: __sdk::TableHandle, + ctx: std::marker::PhantomData<&'ctx super::RemoteTables>, +} + +#[allow(non_camel_case_types)] +/// Extension trait for access to the table `log_events`. +/// +/// Implemented for [`super::RemoteTables`]. +pub trait LogEventsTableAccess { + #[allow(non_snake_case)] + /// Obtain a [`LogEventsTableHandle`], which mediates access to the table `log_events`. + fn log_events(&self) -> LogEventsTableHandle<'_>; +} + +impl LogEventsTableAccess for super::RemoteTables { + fn log_events(&self) -> LogEventsTableHandle<'_> { + LogEventsTableHandle { + imp: self.imp.get_table::("log_events"), + ctx: std::marker::PhantomData, + } + } +} + +pub struct LogEventsInsertCallbackId(__sdk::CallbackId); +pub struct LogEventsDeleteCallbackId(__sdk::CallbackId); + +impl<'ctx> __sdk::Table for LogEventsTableHandle<'ctx> { + type Row = LogEvent; + type EventContext = super::EventContext; + + fn count(&self) -> u64 { + self.imp.count() + } + fn iter(&self) -> impl Iterator + '_ { + self.imp.iter() + } + + type InsertCallbackId = LogEventsInsertCallbackId; + + fn on_insert( + &self, + callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static, + ) -> LogEventsInsertCallbackId { + LogEventsInsertCallbackId(self.imp.on_insert(Box::new(callback))) + } + + fn remove_on_insert(&self, callback: LogEventsInsertCallbackId) { + self.imp.remove_on_insert(callback.0) + } + + type DeleteCallbackId = LogEventsDeleteCallbackId; + + fn on_delete( + &self, + callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static, + ) -> LogEventsDeleteCallbackId { + LogEventsDeleteCallbackId(self.imp.on_delete(Box::new(callback))) + } + + fn remove_on_delete(&self, callback: LogEventsDeleteCallbackId) { + self.imp.remove_on_delete(callback.0) + } +} + +pub struct LogEventsUpdateCallbackId(__sdk::CallbackId); + +impl<'ctx> __sdk::TableWithPrimaryKey for LogEventsTableHandle<'ctx> { + type UpdateCallbackId = LogEventsUpdateCallbackId; + + fn on_update( + &self, + callback: impl FnMut(&Self::EventContext, &Self::Row, &Self::Row) + Send + 'static, + ) -> LogEventsUpdateCallbackId { + LogEventsUpdateCallbackId(self.imp.on_update(Box::new(callback))) + } + + fn remove_on_update(&self, callback: LogEventsUpdateCallbackId) { + self.imp.remove_on_update(callback.0) + } +} + +/// Access to the `id` unique index on the table `log_events`, +/// which allows point queries on the field of the same name +/// via the [`LogEventsIdUnique::find`] method. +/// +/// Users are encouraged not to explicitly reference this type, +/// but to directly chain method calls, +/// like `ctx.db.log_events().id().find(...)`. +pub struct LogEventsIdUnique<'ctx> { + imp: __sdk::UniqueConstraintHandle, + phantom: std::marker::PhantomData<&'ctx super::RemoteTables>, +} + +impl<'ctx> LogEventsTableHandle<'ctx> { + /// Get a handle on the `id` unique index on the table `log_events`. + pub fn id(&self) -> LogEventsIdUnique<'ctx> { + LogEventsIdUnique { + imp: self.imp.get_unique_constraint::("id"), + phantom: std::marker::PhantomData, + } + } +} + +impl<'ctx> LogEventsIdUnique<'ctx> { + /// Find the subscribed row whose `id` column value is equal to `col_val`, + /// if such a row is present in the client cache. + pub fn find(&self, col_val: &u64) -> Option { + self.imp.find(col_val) + } +} + +#[doc(hidden)] +pub(super) fn register_table(client_cache: &mut __sdk::ClientCache) { + let _table = client_cache.get_or_make_table::("log_events"); + _table.add_unique_constraint::("id", |row| &row.id); +} + +#[doc(hidden)] +pub(super) fn parse_table_update( + raw_updates: __ws::v2::TableUpdate, +) -> __sdk::Result<__sdk::TableUpdate> { + __sdk::TableUpdate::parse_table_update(raw_updates).map_err(|e| { + __sdk::InternalError::failed_parse("TableUpdate", "TableUpdate") + .with_cause(e) + .into() + }) +} + +#[allow(non_camel_case_types)] +/// Extension trait for query builder access to the table `LogEvent`. +/// +/// Implemented for [`__sdk::QueryTableAccessor`]. +pub trait log_eventsQueryTableAccess { + #[allow(non_snake_case)] + /// Get a query builder for the table `LogEvent`. + fn log_events(&self) -> __sdk::__query_builder::Table; +} + +impl log_eventsQueryTableAccess for __sdk::QueryTableAccessor { + fn log_events(&self) -> __sdk::__query_builder::Table { + __sdk::__query_builder::Table::new("log_events") + } +} diff --git a/packages/ppc/generated/mod.rs b/packages/ppc/generated/mod.rs index b4f0124..4faaa6b 100644 --- a/packages/ppc/generated/mod.rs +++ b/packages/ppc/generated/mod.rs @@ -6,11 +6,13 @@ #![allow(unused, clippy::all)] use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; +pub mod action_type; pub mod activities_table; pub mod activity_type; pub mod add_activity_reducer; -pub mod event_type; -pub mod events_table; +pub mod log_event_type; +pub mod log_events_table; +pub mod next_action_reducer; pub mod profile_type; pub mod profiles_table; pub mod remove_activity_reducer; @@ -20,12 +22,15 @@ pub mod task_part_type; pub mod task_type; pub mod tasks_table; pub mod update_activity_reducer; +pub mod update_upcoming_reducer; +pub use action_type::Action; pub use activities_table::*; pub use activity_type::Activity; pub use add_activity_reducer::add_activity; -pub use event_type::Event; -pub use events_table::*; +pub use log_event_type::LogEvent; +pub use log_events_table::*; +pub use next_action_reducer::next_action; pub use profile_type::Profile; pub use profiles_table::*; pub use remove_activity_reducer::remove_activity; @@ -35,6 +40,7 @@ pub use task_part_type::TaskPart; pub use task_type::Task; pub use tasks_table::*; pub use update_activity_reducer::update_activity; +pub use update_upcoming_reducer::update_upcoming; #[derive(Clone, PartialEq, Debug)] @@ -45,9 +51,11 @@ pub use update_activity_reducer::update_activity; pub enum Reducer { AddActivity { name: String }, + NextAction, RemoveActivity { activity: Activity }, SetActivityName { id: u64, name: String }, UpdateActivity { activity: Activity }, + UpdateUpcoming { upcoming: Vec }, } impl __sdk::InModule for Reducer { @@ -58,9 +66,11 @@ impl __sdk::Reducer for Reducer { fn reducer_name(&self) -> &'static str { match self { Reducer::AddActivity { .. } => "add_activity", + Reducer::NextAction => "next_action", Reducer::RemoveActivity { .. } => "remove_activity", Reducer::SetActivityName { .. } => "set_activity_name", Reducer::UpdateActivity { .. } => "update_activity", + Reducer::UpdateUpcoming { .. } => "update_upcoming", _ => unreachable!(), } } @@ -70,6 +80,7 @@ impl __sdk::Reducer for Reducer { Reducer::AddActivity { name } => { __sats::bsatn::to_vec(&add_activity_reducer::AddActivityArgs { name: name.clone() }) } + Reducer::NextAction => __sats::bsatn::to_vec(&next_action_reducer::NextActionArgs {}), Reducer::RemoveActivity { activity } => { __sats::bsatn::to_vec(&remove_activity_reducer::RemoveActivityArgs { activity: activity.clone(), @@ -86,6 +97,11 @@ impl __sdk::Reducer for Reducer { activity: activity.clone(), }) } + Reducer::UpdateUpcoming { upcoming } => { + __sats::bsatn::to_vec(&update_upcoming_reducer::UpdateUpcomingArgs { + upcoming: upcoming.clone(), + }) + } _ => unreachable!(), } } @@ -96,7 +112,7 @@ impl __sdk::Reducer for Reducer { #[doc(hidden)] pub struct DbUpdate { activities: __sdk::TableUpdate, - events: __sdk::TableUpdate, + log_events: __sdk::TableUpdate, profiles: __sdk::TableUpdate, task_part: __sdk::TableUpdate, tasks: __sdk::TableUpdate, @@ -111,9 +127,9 @@ impl TryFrom<__ws::v2::TransactionUpdate> for DbUpdate { "activities" => db_update .activities .append(activities_table::parse_table_update(table_update)?), - "events" => db_update - .events - .append(events_table::parse_table_update(table_update)?), + "log_events" => db_update + .log_events + .append(log_events_table::parse_table_update(table_update)?), "profiles" => db_update .profiles .append(profiles_table::parse_table_update(table_update)?), @@ -152,7 +168,9 @@ impl __sdk::DbUpdate for DbUpdate { diff.activities = cache .apply_diff_to_table::("activities", &self.activities) .with_updates_by_pk(|row| &row.id); - diff.events = cache.apply_diff_to_table::("events", &self.events); + diff.log_events = cache + .apply_diff_to_table::("log_events", &self.log_events) + .with_updates_by_pk(|row| &row.id); diff.profiles = cache .apply_diff_to_table::("profiles", &self.profiles) .with_updates_by_pk(|row| &row.identity); @@ -172,8 +190,8 @@ impl __sdk::DbUpdate for DbUpdate { "activities" => db_update .activities .append(__sdk::parse_row_list_as_inserts(table_rows.rows)?), - "events" => db_update - .events + "log_events" => db_update + .log_events .append(__sdk::parse_row_list_as_inserts(table_rows.rows)?), "profiles" => db_update .profiles @@ -200,8 +218,8 @@ impl __sdk::DbUpdate for DbUpdate { "activities" => db_update .activities .append(__sdk::parse_row_list_as_deletes(table_rows.rows)?), - "events" => db_update - .events + "log_events" => db_update + .log_events .append(__sdk::parse_row_list_as_deletes(table_rows.rows)?), "profiles" => db_update .profiles @@ -228,7 +246,7 @@ impl __sdk::DbUpdate for DbUpdate { #[doc(hidden)] pub struct AppliedDiff<'r> { activities: __sdk::TableAppliedDiff<'r, Activity>, - events: __sdk::TableAppliedDiff<'r, Event>, + log_events: __sdk::TableAppliedDiff<'r, LogEvent>, profiles: __sdk::TableAppliedDiff<'r, Profile>, task_part: __sdk::TableAppliedDiff<'r, TaskPart>, tasks: __sdk::TableAppliedDiff<'r, Task>, @@ -246,7 +264,7 @@ impl<'r> __sdk::AppliedDiff<'r> for AppliedDiff<'r> { callbacks: &mut __sdk::DbCallbacks, ) { callbacks.invoke_table_row_callbacks::("activities", &self.activities, event); - callbacks.invoke_table_row_callbacks::("events", &self.events, event); + callbacks.invoke_table_row_callbacks::("log_events", &self.log_events, event); callbacks.invoke_table_row_callbacks::("profiles", &self.profiles, event); callbacks.invoke_table_row_callbacks::("task_part", &self.task_part, event); callbacks.invoke_table_row_callbacks::("tasks", &self.tasks, event); @@ -911,11 +929,11 @@ impl __sdk::SpacetimeModule for RemoteModule { fn register_tables(client_cache: &mut __sdk::ClientCache) { activities_table::register_table(client_cache); - events_table::register_table(client_cache); + log_events_table::register_table(client_cache); profiles_table::register_table(client_cache); task_part_table::register_table(client_cache); tasks_table::register_table(client_cache); } const ALL_TABLE_NAMES: &'static [&'static str] = - &["activities", "events", "profiles", "task_part", "tasks"]; + &["activities", "log_events", "profiles", "task_part", "tasks"]; } diff --git a/packages/ppc/generated/next_action_reducer.rs b/packages/ppc/generated/next_action_reducer.rs new file mode 100644 index 0000000..2787307 --- /dev/null +++ b/packages/ppc/generated/next_action_reducer.rs @@ -0,0 +1,62 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#![allow(unused, clippy::all)] +use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; + +#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)] +#[sats(crate = __lib)] +pub(super) struct NextActionArgs {} + +impl From for super::Reducer { + fn from(args: NextActionArgs) -> Self { + Self::NextAction + } +} + +impl __sdk::InModule for NextActionArgs { + type Module = super::RemoteModule; +} + +#[allow(non_camel_case_types)] +/// Extension trait for access to the reducer `next_action`. +/// +/// Implemented for [`super::RemoteReducers`]. +pub trait next_action { + /// Request that the remote module invoke the reducer `next_action` to run as soon as possible. + /// + /// This method returns immediately, and errors only if we are unable to send the request. + /// The reducer will run asynchronously in the future, + /// and this method provides no way to listen for its completion status. + /// /// Use [`next_action:next_action_then`] to run a callback after the reducer completes. + fn next_action(&self) -> __sdk::Result<()> { + self.next_action_then(|_, _| {}) + } + + /// Request that the remote module invoke the reducer `next_action` to run as soon as possible, + /// registering `callback` to run when we are notified that the reducer completed. + /// + /// This method returns immediately, and errors only if we are unable to send the request. + /// The reducer will run asynchronously in the future, + /// and its status can be observed with the `callback`. + fn next_action_then( + &self, + + callback: impl FnOnce(&super::ReducerEventContext, Result, __sdk::InternalError>) + + Send + + 'static, + ) -> __sdk::Result<()>; +} + +impl next_action for super::RemoteReducers { + fn next_action_then( + &self, + + callback: impl FnOnce(&super::ReducerEventContext, Result, __sdk::InternalError>) + + Send + + 'static, + ) -> __sdk::Result<()> { + self.imp + .invoke_reducer_with_callback(NextActionArgs {}, callback) + } +} diff --git a/packages/ppc/generated/task_part_table.rs b/packages/ppc/generated/task_part_table.rs index 2799230..a9ecce8 100644 --- a/packages/ppc/generated/task_part_table.rs +++ b/packages/ppc/generated/task_part_table.rs @@ -2,7 +2,7 @@ // WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. #![allow(unused, clippy::all)] -use super::activity_type::Activity; +use super::action_type::Action; use super::task_part_type::TaskPart; use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; diff --git a/packages/ppc/generated/task_part_type.rs b/packages/ppc/generated/task_part_type.rs index 3cd88eb..2111c1a 100644 --- a/packages/ppc/generated/task_part_type.rs +++ b/packages/ppc/generated/task_part_type.rs @@ -4,13 +4,15 @@ #![allow(unused, clippy::all)] use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; -use super::activity_type::Activity; +use super::action_type::Action; #[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)] #[sats(crate = __lib)] pub struct TaskPart { pub identity: __sdk::Identity, - pub current_activity: Activity, + pub start_of_current: __sdk::Timestamp, + pub current: Action, + pub upcoming: Vec, } impl __sdk::InModule for TaskPart { @@ -22,7 +24,9 @@ impl __sdk::InModule for TaskPart { /// Provides typed access to columns for query building. pub struct TaskPartCols { pub identity: __sdk::__query_builder::Col, - pub current_activity: __sdk::__query_builder::Col, + pub start_of_current: __sdk::__query_builder::Col, + pub current: __sdk::__query_builder::Col, + pub upcoming: __sdk::__query_builder::Col>, } impl __sdk::__query_builder::HasCols for TaskPart { @@ -30,7 +34,9 @@ impl __sdk::__query_builder::HasCols for TaskPart { fn cols(table_name: &'static str) -> Self::Cols { TaskPartCols { identity: __sdk::__query_builder::Col::new(table_name, "identity"), - current_activity: __sdk::__query_builder::Col::new(table_name, "current_activity"), + start_of_current: __sdk::__query_builder::Col::new(table_name, "start_of_current"), + current: __sdk::__query_builder::Col::new(table_name, "current"), + upcoming: __sdk::__query_builder::Col::new(table_name, "upcoming"), } } } diff --git a/packages/ppc/generated/update_upcoming_reducer.rs b/packages/ppc/generated/update_upcoming_reducer.rs new file mode 100644 index 0000000..07b3122 --- /dev/null +++ b/packages/ppc/generated/update_upcoming_reducer.rs @@ -0,0 +1,70 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +#![allow(unused, clippy::all)] +use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws}; + +use super::action_type::Action; + +#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)] +#[sats(crate = __lib)] +pub(super) struct UpdateUpcomingArgs { + pub upcoming: Vec, +} + +impl From for super::Reducer { + fn from(args: UpdateUpcomingArgs) -> Self { + Self::UpdateUpcoming { + upcoming: args.upcoming, + } + } +} + +impl __sdk::InModule for UpdateUpcomingArgs { + type Module = super::RemoteModule; +} + +#[allow(non_camel_case_types)] +/// Extension trait for access to the reducer `update_upcoming`. +/// +/// Implemented for [`super::RemoteReducers`]. +pub trait update_upcoming { + /// Request that the remote module invoke the reducer `update_upcoming` to run as soon as possible. + /// + /// This method returns immediately, and errors only if we are unable to send the request. + /// The reducer will run asynchronously in the future, + /// and this method provides no way to listen for its completion status. + /// /// Use [`update_upcoming:update_upcoming_then`] to run a callback after the reducer completes. + fn update_upcoming(&self, upcoming: Vec) -> __sdk::Result<()> { + self.update_upcoming_then(upcoming, |_, _| {}) + } + + /// Request that the remote module invoke the reducer `update_upcoming` to run as soon as possible, + /// registering `callback` to run when we are notified that the reducer completed. + /// + /// This method returns immediately, and errors only if we are unable to send the request. + /// The reducer will run asynchronously in the future, + /// and its status can be observed with the `callback`. + fn update_upcoming_then( + &self, + upcoming: Vec, + + callback: impl FnOnce(&super::ReducerEventContext, Result, __sdk::InternalError>) + + Send + + 'static, + ) -> __sdk::Result<()>; +} + +impl update_upcoming for super::RemoteReducers { + fn update_upcoming_then( + &self, + upcoming: Vec, + + callback: impl FnOnce(&super::ReducerEventContext, Result, __sdk::InternalError>) + + Send + + 'static, + ) -> __sdk::Result<()> { + self.imp + .invoke_reducer_with_callback(UpdateUpcomingArgs { upcoming }, callback) + } +} diff --git a/packages/ppc/platform/os/main.rs b/packages/ppc/platform/os/main.rs index 34e2c74..f9b4854 100644 --- a/packages/ppc/platform/os/main.rs +++ b/packages/ppc/platform/os/main.rs @@ -39,14 +39,28 @@ fn os_main(mize: &mut Mize) -> MizeResult<()> { #[cfg(feature = "server")] ppc::server(mize)?; + let mut cli = mize.get_part_native::("cli")?; + #[cfg(feature = "client")] #[cfg(feature = "desktop")] - cli.subcommand(Command::new("gui"), |_, _| { - ppc::ui::launch_desktop_app(); - Ok(()) - }); + { + cli.subcommand(Command::new("gui"), |_, _| { + ppc::ui::launch_desktop_app(); + Ok(()) + }); + cli.subcommand(Command::new("c2vi-dash"), |_, mut mize| { + // refresh the credentials every 23h + // as this is basically running as a daemon + use ppc::auth::client::ClientAuth; + let mut auth = mize.get_part_native::("auth")?; + auth.refresh()?; + auth.start_refresh_thread()?; + drop(auth); - let mut cli = mize.get_part_native::("cli")?; + ppc::ui::launch_c2vi_dashboard(&mut mize); + Ok(()) + }); + } cli.with_cmd(|_, cmd| { Ok(cmd diff --git a/packages/ppc/platform/os/ui/mod.rs b/packages/ppc/platform/os/ui/mod.rs index 0b8f2ea..6e192e4 100644 --- a/packages/ppc/platform/os/ui/mod.rs +++ b/packages/ppc/platform/os/ui/mod.rs @@ -1,5 +1,18 @@ -// Minimal cross-platform UI component use dioxus::prelude::*; +use mize::Mize; + +use crate::{ + generated::{ + Action, ActivitiesTableAccess, Activity, DbConnection, TaskPart, TaskPartTableAccess, + activitiesQueryTableAccess, next_action, remove_activity, task_partQueryTableAccess, + update_activity, update_upcoming, + }, + spacetime::SpacetimePart, +}; +use spacetimedb_sdk::{ + DbContext, Error, Event, Identity, Status, SubscriptionHandle, Table, TableWithPrimaryKey, + credentials, +}; pub fn hello_world() -> Element { rsx! { @@ -12,6 +25,126 @@ pub fn hello_world() -> Element { } } +pub fn c2vi_dash_main() -> Element { + let mut current = use_signal_sync(|| "".to_string()); + use_effect(move || { + let mut mize = use_context::(); + let mut spacetime = mize.get_part_native::("spacetime").unwrap(); + let con = spacetime.con(); + con.subscription_builder() + .on_applied(move |ctx| { + let data = ctx.db.task_part().identity().find(&ctx.identity()).unwrap(); + current.set(data.current.name.clone()); + }) + .add_query(|q| q.from.task_part()) + .subscribe(); + con.db + .task_part() + .on_update(move |_, old: &TaskPart, new: &TaskPart| { + current.set(new.current.name.clone()); + }); + }); + rsx! { + div { + style: "text-align: center; padding: 2rem; font-size: 50px;", + p { + "{current}" + } + } + } +} + pub fn launch_desktop_app() { dioxus::launch(hello_world); } + +#[cfg(feature = "desktop")] +pub fn launch_c2vi_dashboard(mize: &mut Mize) { + use dioxus::desktop::{Config, WindowBuilder, muda::Menu}; + let mize_clone = mize.clone(); + LaunchBuilder::new() + .with_context_provider(move || Box::new(mize_clone.clone())) + .with_cfg(desktop! { + Config::new().with_window(WindowBuilder::new().with_decorations(false).with_title("PPC")) + }) + .launch(c2vi_dash_main); +} + +use dioxus::prelude::*; + +/* +pub fn use_spacetime_row() -> { + let mut mize = use_context::(); + let mut spacetime = mize.get_part_native::("spacetime").unwrap(); + let con = spacetime.con(); + + let data = use_signal(|| None:: ); + + let a = con.db.task_part(); + let table = con.db. + + use_effect(cx, (), {}); + +} + +pub fn use_spacetime_users() -> Signal> { + let mut mize = use_context::(); + let mut spacetime = mize.get_part_native::("spacetime").unwrap(); + let con = spacetime.con(); + + let users = use_signal(|| Vec::::new()); + + use_effect(cx, (), { + let users = users.clone(); + let conn = ctx.conn.clone(); + + move |_| { + conn.on_connect(move |db_ctx| { + // initial subscription + db_ctx.subscription_builder() + .on_applied({ + let users = users.clone(); + move |ctx| { + let all: Vec<_> = + ctx.db.user().iter().cloned().collect(); + users.set(all); + } + }) + .subscribe(["SELECT * FROM user"]); + + // incremental updates + db_ctx.db.user().on_insert({ + let users = users.clone(); + move |_, row| { + users.with_mut(|v| v.push(row.clone())); + } + }); + + db_ctx.db.user().on_delete({ + let users = users.clone(); + move |_, row| { + users.with_mut(|v| { + v.retain(|u| u.id != row.id); + }); + } + }); + + db_ctx.db.user().on_update({ + let users = users.clone(); + move |_, old, new| { + users.with_mut(|v| { + if let Some(u) = v.iter_mut().find(|u| u.id == old.id) { + *u = new.clone(); + } + }); + } + }); + }); + + async move {} + } + }); + + users +} +*/ diff --git a/packages/ppc/spacetimedb/src/lib.rs b/packages/ppc/spacetimedb/src/lib.rs index 15a605f..f8302a8 100644 --- a/packages/ppc/spacetimedb/src/lib.rs +++ b/packages/ppc/spacetimedb/src/lib.rs @@ -1,5 +1,10 @@ +use std::task; + use log::*; -use spacetimedb::{reducer, table, Identity, ReducerContext, Table, Timestamp}; +use spacetimedb::{ + reducer, table, view, Deserialize, Identity, ReducerContext, Serialize, SpacetimeType, Table, + Timestamp, ViewContext, +}; #[table(accessor = profiles, public)] pub struct Profile { @@ -13,7 +18,9 @@ pub struct Profile { pub struct TaskPart { #[primary_key] identity: Identity, - current_activity: Activity, + start_of_current: Timestamp, + current: Action, + upcoming: Vec, } #[table(accessor = activities, public)] @@ -36,14 +43,26 @@ pub struct Task { parent: Option, } -#[table(accessor = events, public)] -pub struct Event { - start: Timestamp, - end: Timestamp, - activity: Activity, +#[table(accessor = action)] +#[derive(Clone)] +pub struct Action { + name: String, + activity: Option, + task: Option, + start: Option, + end: Option, + duration: Option, } -// TODO.... +#[table(accessor = log_events, public)] +pub struct LogEvent { + #[primary_key] + #[auto_inc] + id: u64, + start: Timestamp, + end: Timestamp, + action: Action, +} #[reducer(init)] pub fn init(_ctx: &ReducerContext) { @@ -106,6 +125,57 @@ pub fn set_activity_name(ctx: &ReducerContext, id: u64, name: String) { } } +#[reducer] +pub fn update_upcoming(ctx: &ReducerContext, upcoming: Vec) { + if ctx.db.task_part().identity().find(ctx.sender()).is_none() { + ctx.db.task_part().insert(TaskPart { + upcoming, + identity: ctx.sender(), + current: Action { + name: "filler".to_string(), + activity: None, + task: None, + start: None, + end: None, + duration: None, + }, + start_of_current: ctx.timestamp, + }); + } else { + ctx.db.task_part().identity().update(TaskPart { + upcoming, + ..ctx.db.task_part().identity().find(&ctx.sender()).unwrap() + }); + } +} + +#[reducer] +pub fn next_action(ctx: &ReducerContext) -> Result<(), String> { + if let Some(mut task_part) = ctx.db.task_part().identity().find(&ctx.sender()) { + if task_part.upcoming.is_empty() { + return Err("No upcoming actions".to_string()); + } + let action = task_part.upcoming.remove(0); + let start_of_old_action = task_part.start_of_current; + ctx.db.task_part().identity().update(TaskPart { + upcoming: task_part.upcoming, + identity: task_part.identity, + current: action.clone(), + start_of_current: ctx.timestamp, + }); + // create log event + ctx.db.log_events().insert(LogEvent { + start: start_of_old_action, + end: ctx.timestamp, + action: task_part.current, + id: 0, + }); + Ok(()) + } else { + Err("Task part data not found for this user".to_string()) + } +} + #[reducer] pub fn update_activity(ctx: &ReducerContext, activity: Activity) { if activity.id == 0 { diff --git a/packages/ppc/timetrack/mod.rs b/packages/ppc/timetrack/mod.rs index e7cd7ab..94f84cd 100644 --- a/packages/ppc/timetrack/mod.rs +++ b/packages/ppc/timetrack/mod.rs @@ -1,6 +1,6 @@ use std::{io::Read, sync::oneshot, thread, time::Duration}; -use clap::{ArgMatches, Command}; +use clap::{Arg, ArgAction, ArgMatches, Command}; use mize::{Mize, MizeError, MizePart, MizePartGuard, MizeResult, mize_err, mize_part}; use spacetimedb_sdk::{ DbContext, Error, Event, Identity, Status, SubscriptionHandle, Table, TableWithPrimaryKey, @@ -9,8 +9,9 @@ use spacetimedb_sdk::{ use crate::{ generated::{ - ActivitiesTableAccess, Activity, DbConnection, activitiesQueryTableAccess, remove_activity, - update_activity, + Action, ActivitiesTableAccess, Activity, DbConnection, TaskPartTableAccess, + activitiesQueryTableAccess, next_action, remove_activity, task_partQueryTableAccess, + update_activity, update_upcoming, }, spacetime::SpacetimePart, }; @@ -24,6 +25,23 @@ pub struct TimeTrack { pub fn timetrack(mize: &mut Mize) -> MizeResult<()> { let mut cli = mize.get_part_native::("cli")?; + cli.subcommand( + Command::new("editActionList").alias("aal").arg( + Arg::new("defaultTemplate") + .short('d') + .action(ArgAction::SetTrue), + ), + command_edit_action_list, + ); + cli.subcommand(Command::new("nextAction").alias("ne"), command_next_action); + cli.subcommand( + Command::new("printCurrentAction").alias("cu"), + command_current_action, + ); + cli.subcommand( + Command::new("listActions").alias("la"), + command_list_actions, + ); cli.subcommand( Command::new("listActivities").alias("lac"), command_list_activities, @@ -43,9 +61,58 @@ impl MizePart for TimeTrack { } } +fn command_next_action(_: &ArgMatches, mut mize: Mize) -> MizeResult<()> { + let mut spacetime = mize.get_part_native::("spacetime")?; + let con = spacetime.con(); + let (wait_tx, waiter_rx) = std::sync::oneshot::channel::<()>(); + con.reducers.next_action_then(|_, _| { + wait_tx.send(()).unwrap(); + })?; + waiter_rx.recv()?; + + Ok(()) +} + +fn command_current_action(_: &ArgMatches, mut mize: Mize) -> MizeResult<()> { + let mut spacetime = mize.get_part_native::("spacetime")?; + let action = get_current_action(&mut mize, spacetime.con())?; + println!("{}", action.name); + Ok(()) +} + +fn get_current_action(mize: &mut Mize, con: &DbConnection) -> MizeResult { + let (wait_tx, wait_rx) = std::sync::oneshot::channel::(); + con.subscription_builder() + .on_applied(|ctx| { + let task_part_data = ctx.db.task_part().identity().find(&ctx.identity()); + if task_part_data.is_none() { + wait_tx + .send(Action { + name: "fillier".to_string(), + activity: None, + task: None, + start: None, + end: None, + duration: None, + }) + .unwrap(); + } else { + wait_tx.send(task_part_data.unwrap().current).unwrap(); + } + }) + .add_query(|q| { + q.from.task_part() + //.r#where(|row| row.identity.eq(con.identity())) + }) + .subscribe(); + let action = wait_rx.recv().unwrap(); + Ok(action) +} + fn command_list_activities(_: &ArgMatches, mut mize: Mize) -> MizeResult<()> { let mut spacetime = mize.get_part_native::("spacetime")?; let activities = get_activities(&mut mize, spacetime.con())?; + for ac in activities.clone() { print!("ac {}: {}", ac.id, ac.name); if !ac.parents_ids.is_empty() { @@ -60,6 +127,121 @@ fn command_list_activities(_: &ArgMatches, mut mize: Mize) -> MizeResult<()> { Ok(()) } +fn command_list_actions(_: &ArgMatches, mut mize: Mize) -> MizeResult<()> { + let mut spacetime = mize.get_part_native::("spacetime")?; + + let actions = get_actions(spacetime.con())?; + + for action in actions { + println!("{}", action.name) + } + + Ok(()) +} + +fn command_edit_action_list(matches: &ArgMatches, mut mize: Mize) -> MizeResult<()> { + let mut spacetime = mize.get_part_native::("spacetime")?; + + // maybe append a template to the action list + if matches.get_flag("defaultTemplate") { + println!("Appending template..."); + return Ok(()); + } + + // get list of actions + let mut actions = get_actions(spacetime.con())?; + + // write to tmp file + let mut tmp_file_content = actions_to_string(&actions)?; + let tmp_file = std::env::temp_dir().join(format!( + "ppc-edit-actions-{}.txt", + chrono::Utc::now().timestamp() + )); + std::fs::write(&tmp_file, tmp_file_content) + .map_err(|e| mize_err!("Failed to write temp file: {}", e))?; + + // open $EDITOR blocking + std::process::Command::new("nvim") + .arg(&tmp_file) + .status() + .map_err(|e| mize_err!("Failed to run nvim: {}", e))?; + + // read file and update db + let new_file_content = std::fs::read_to_string(&tmp_file) + .map_err(|e| mize_err!("Failed to read temp file: {}", e))?; + + actions = actions_from_string(actions, new_file_content)?; + set_actions(actions, spacetime.con())?; + + // delete tmpfile + let _ = std::fs::remove_file(&tmp_file); + + Ok(()) +} + +fn get_actions(con: &DbConnection) -> MizeResult> { + let (exit_tx, exit_rx) = std::sync::oneshot::channel::>(); + con.subscription_builder() + .on_applied(|ctx| { + let task_part_data = ctx.db.task_part().identity().find(&ctx.identity()); + if task_part_data.is_none() { + exit_tx.send(Vec::new()).unwrap(); + } else { + exit_tx.send(task_part_data.unwrap().upcoming).unwrap(); + } + }) + .add_query(|q| { + q.from.task_part() + //.r#where(|row| row.identity.eq(con.identity())) + }) + .subscribe(); + let activities = exit_rx.recv().unwrap(); + Ok(activities) +} + +fn set_actions(actions: Vec, con: &DbConnection) -> MizeResult<()> { + let (wait_tx, waiter_rx) = std::sync::oneshot::channel::<()>(); + con.reducers + .update_upcoming_then(actions, |_, _| wait_tx.send(()).unwrap())?; + waiter_rx.recv().unwrap(); + Ok(()) +} + +fn actions_to_string(actions: &Vec) -> MizeResult { + let mut string = String::new(); + + for action in actions.iter() { + string.push_str(format!("{}\n", action.name).as_str()); + } + + Ok(string) +} + +fn actions_from_string(mut old_actions: Vec, string: String) -> MizeResult> { + let mut new_actions = Vec::new(); + for line in string.lines() { + if line.trim().is_empty() { + continue; + } + + let mut action = Action { + name: line.to_owned(), + activity: None, + task: None, + start: None, + end: None, + duration: None, + }; + parse_action(&mut action); + new_actions.push(action); + } + Ok(new_actions) +} + +fn parse_action(action: &mut Action) { + let parts: Vec<&str> = action.name.split_whitespace().collect(); +} + fn command_edit_activities(_: &ArgMatches, mut mize: Mize) -> MizeResult<()> { let mut spacetime = mize.get_part_native::("spacetime")?;