diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index b0de924..0000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,3 +0,0 @@ -[target.x86_64-unknown-linux-gnu] -linker = "/usr/bin/clang" -rustflags = ["-C", "link-arg=--ld-path=/usr/bin/mold"] diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index 0ebad81..0000000 --- a/.drone.yml +++ /dev/null @@ -1,3 +0,0 @@ -kind: template -load: drone-template.yaml -name: como diff --git a/.gitignore b/.gitignore deleted file mode 100644 index a6283bb..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/target -.cuddle/ -node_modules/ -.env diff --git a/.releaserc.yml b/.releaserc.yml deleted file mode 100644 index e4da63d..0000000 --- a/.releaserc.yml +++ /dev/null @@ -1,8 +0,0 @@ -branches: - - "main" - -plugins: - - "@semantic-release/commit-analyzer" - - "@semantic-release/release-notes-generator" - - "@semantic-release/changelog" - - "@semantic-release/git" diff --git a/Cargo.lock b/Cargo.lock index 8d6632e..6b2b316 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,5518 +3,5 @@ version = 3 [[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addr2line" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array", -] - -[[package]] -name = "aes" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" -dependencies = [ - "cfg-if 1.0.0", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anstream" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" - -[[package]] -name = "anstyle-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "anstyle-wincon" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" -dependencies = [ - "anstyle", - "windows-sys 0.48.0", -] - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "argon2" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2e554a8638bdc1e4eae9984845306cc95f8a9208ba8d49c3859fd958b46774d" -dependencies = [ - "base64ct", - "blake2", - "cpufeatures", - "password-hash", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "ascii" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" - -[[package]] -name = "ascii_utils" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a" - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", -] - -[[package]] -name = "async-executor" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand 1.9.0", - "futures-lite", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] - -[[package]] -name = "async-graphql" -version = "5.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35ef8f9be23ee30fe1eb1cf175c689bc33517c6c6d0fd0669dade611e5ced7f" -dependencies = [ - "async-graphql-derive", - "async-graphql-parser", - "async-graphql-value", - "async-stream", - "async-trait", - "base64 0.13.1", - "bytes", - "fast_chemail", - "fnv", - "futures-util", - "handlebars", - "http", - "indexmap 1.9.3", - "mime", - "multer", - "num-traits", - "once_cell", - "pin-project-lite", - "regex", - "serde", - "serde_json", - "serde_urlencoded", - "static_assertions", - "tempfile", - "thiserror", - "uuid", -] - -[[package]] -name = "async-graphql-axum" -version = "5.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777d02b4b35c1eb15bb63391f45b4622206fe1199940fa8b4b6136904fae035c" -dependencies = [ - "async-graphql", - "async-trait", - "axum", - "bytes", - "futures-util", - "http-body", - "serde_json", - "tokio-util", - "tower-service", -] - -[[package]] -name = "async-graphql-derive" -version = "5.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a0f6ceed3640b4825424da70a5107e79d48d9b2bc6318dfc666b2fc4777f8c4" -dependencies = [ - "Inflector", - "async-graphql-parser", - "darling 0.14.4", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", - "thiserror", -] - -[[package]] -name = "async-graphql-parser" -version = "5.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc308cd3bc611ee86c9cf19182d2b5ee583da40761970e41207f088be3db18f" -dependencies = [ - "async-graphql-value", - "pest", - "serde", - "serde_json", -] - -[[package]] -name = "async-graphql-value" -version = "5.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d461325bfb04058070712296601dfe5e5bd6cdff84780a0a8c569ffb15c87eb3" -dependencies = [ - "bytes", - "indexmap 1.9.3", - "serde", - "serde_json", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock", - "autocfg", - "cfg-if 1.0.0", - "concurrent-queue", - "futures-lite", - "log", - "parking", - "polling", - "rustix 0.37.23", - "slab", - "socket2 0.4.9", - "waker-fn", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-native-tls" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9e7a929bd34c68a82d58a4de7f86fffdaf97fb2af850162a7bb19dd7269b33" -dependencies = [ - "async-std", - "native-tls", - "thiserror", - "url", -] - -[[package]] -name = "async-process" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" -dependencies = [ - "async-io", - "async-lock", - "autocfg", - "blocking", - "cfg-if 1.0.0", - "event-listener", - "futures-lite", - "rustix 0.37.23", - "signal-hook", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-recursion" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "async-session" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07da4ce523b4e2ebaaf330746761df23a465b951a83d84bbce4233dabedae630" -dependencies = [ - "anyhow", - "async-lock", - "async-trait", - "base64 0.13.1", - "bincode", - "blake3", - "chrono", - "hmac 0.11.0", - "log", - "rand", - "serde", - "serde_json", - "sha2 0.9.9", -] - -[[package]] -name = "async-sqlx-session" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ee17fe642044cab8b0b11d07dae6e9cb7114e5e61b7cb4a322c603e7ed961a" -dependencies = [ - "async-session", - "sqlx 0.5.13", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "async-process", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "async-task" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" - -[[package]] -name = "async-trait" -version = "0.1.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "atoi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" -dependencies = [ - "num-traits", -] - -[[package]] -name = "atoi" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" -dependencies = [ - "num-traits", -] - -[[package]] -name = "atomic-waker" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" - -[[package]] -name = "attribute-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c94f43ede6f25dab1dea046bff84d85dea61bd49aba7a9011ad66c0d449077b" -dependencies = [ - "attribute-derive-macro", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "attribute-derive-macro" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b409e2b2d2dc206d2c0ad3575a93f001ae21a1593e2d0c69b69c308e63f3b422" -dependencies = [ - "collection_literals", - "interpolator", - "manyhow", - "proc-macro-utils", - "proc-macro2", - "quote", - "quote-use", - "syn 2.0.29", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core", - "axum-macros", - "base64 0.21.2", - "bitflags 1.3.2", - "bytes", - "futures-util", - "headers", - "http", - "http-body", - "hyper", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sha1", - "sync_wrapper", - "tokio", - "tokio-tungstenite", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-extra" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a93e433be9382c737320af3924f7d5fc6f89c155cf2bf88949d8f5126fab283f" -dependencies = [ - "axum", - "axum-core", - "bytes", - "cookie", - "futures-util", - "http", - "http-body", - "mime", - "pin-project-lite", - "serde", - "tokio", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-macros" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdca6a10ecad987bda04e95606ef85a5417dcaac1a78455242d72e031e2b6b62" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "axum-sessions" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714cad544cd87d8da821cda715bb9aaa5d4d1adbdb64c549b18138e3cbf93c44" -dependencies = [ - "async-session", - "axum", - "axum-extra", - "futures", - "http-body", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "backtrace" -version = "0.3.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" - -[[package]] -name = "base64-compat" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d4d2746f89841e49230dd26917df1876050f95abafafbe34f47cb534b88d7" -dependencies = [ - "byteorder", -] - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake3" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if 0.1.10", - "constant_time_eq", - "crypto-mac 0.8.0", - "digest 0.9.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" -dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand 1.9.0", - "futures-lite", - "log", -] - -[[package]] -name = "bumpalo" -version = "3.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -dependencies = [ - "serde", -] - -[[package]] -name = "cached" -version = "0.45.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eb5776f28a149524d1d8623035760b4454ec881e8cf3838fa8d7e1b11254b3" -dependencies = [ - "cached_proc_macro", - "cached_proc_macro_types", - "hashbrown 0.13.2", - "instant", - "once_cell", - "thiserror", -] - -[[package]] -name = "cached_proc_macro" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8245dd5f576a41c3b76247b54c15b0e43139ceeb4f732033e15be7c005176" -dependencies = [ - "darling 0.14.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "cached_proc_macro_types" +name = "como" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" - -[[package]] -name = "camino" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" - -[[package]] -name = "cc" -version = "1.0.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01" -dependencies = [ - "libc", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "time 0.1.45", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "ciborium" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" - -[[package]] -name = "ciborium-ll" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clap" -version = "4.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" -dependencies = [ - "clap_builder", - "clap_derive", - "once_cell", -] - -[[package]] -name = "clap_builder" -version = "4.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "clap_lex" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" - -[[package]] -name = "collection_literals" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186dce98367766de751c42c4f03970fc60fc012296e706ccbb9d5df9b6c1e271" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "colored" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" -dependencies = [ - "is-terminal", - "lazy_static", - "windows-sys 0.48.0", -] - -[[package]] -name = "combine" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" -dependencies = [ - "ascii", - "byteorder", - "either", - "memchr", - "unreachable", -] - -[[package]] -name = "common_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6d59c71e7dc3af60f0af9db32364d96a16e9310f3f5db2b55ed642162dd35" - -[[package]] -name = "como_api" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-graphql", - "async-graphql-axum", - "async-sqlx-session", - "async-trait", - "axum", - "axum-extra", - "axum-sessions", - "como_auth", - "como_core", - "como_domain", - "como_gql", - "como_infrastructure", - "oauth2", - "openidconnect", - "serde", - "serde_json", - "sqlx 0.6.3", - "tokio", - "tower", - "tower-http 0.4.3", - "tracing", - "uuid", - "zitadel", -] - -[[package]] -name = "como_auth" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-sqlx-session", - "async-trait", - "axum", - "axum-extra", - "axum-sessions", - "clap", - "oauth2", - "openidconnect", - "pretty_assertions", - "sealed_test", - "serde", - "sqlx 0.6.3", - "tokio", - "tower", - "tower-http 0.4.3", - "tracing", - "uuid", - "zitadel", -] - -[[package]] -name = "como_bin" -version = "0.1.0" -dependencies = [ - "anyhow", - "axum", - "clap", - "como_api", - "como_core", - "como_domain", - "como_gql", - "como_infrastructure", - "dotenv", - "serde_json", - "tokio", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "como_core" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "como_domain", -] - -[[package]] -name = "como_domain" -version = "0.1.0" -dependencies = [ - "async-graphql", - "serde", - "serde_json", - "uuid", -] - -[[package]] -name = "como_gql" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-graphql", - "async-trait", - "como_core", - "como_domain", - "como_infrastructure", - "uuid", -] - -[[package]] -name = "como_infrastructure" -version = "0.1.0" -dependencies = [ - "anyhow", - "argon2", - "async-sqlx-session", - "async-trait", - "axum", - "chrono", - "clap", - "como_auth", - "como_core", - "como_domain", - "rand_core", - "serde_json", - "sqlx 0.6.3", - "tokio", - "tracing", - "uuid", -] - -[[package]] -name = "como_web" -version = "0.1.0" -dependencies = [ - "anyhow", - "axum", - "cfg-if 1.0.0", - "chrono", - "console_error_panic_hook", - "console_log", - "graphql_client", - "lazy_static", - "leptos", - "leptos_axum", - "leptos_dom", - "leptos_meta", - "leptos_router", - "log", - "reqwasm", - "serde", - "serde_json", - "simple_logger", - "thiserror", - "tokio", - "tower", - "tower-http 0.3.5", - "tracing", - "tracing-subscriber", - "uuid", - "wasm-bindgen", -] - -[[package]] -name = "concurrent-queue" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "config" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7" -dependencies = [ - "async-trait", - "lazy_static", - "nom", - "pathdiff", - "serde", - "toml", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen", -] - -[[package]] -name = "console_log" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" -dependencies = [ - "log", - "web-sys", -] - -[[package]] -name = "const-oid" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" - -[[package]] -name = "const_format" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "cookie" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" -dependencies = [ - "aes-gcm", - "base64 0.21.2", - "hmac 0.12.1", - "percent-encoding", - "rand", - "sha2 0.10.7", - "subtle", - "time 0.3.26", - "version_check", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "cpufeatures" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" -dependencies = [ - "crc-catalog 1.1.1", -] - -[[package]] -name = "crc" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" -dependencies = [ - "crc-catalog 2.2.0", -] - -[[package]] -name = "crc-catalog" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" - -[[package]] -name = "crc-catalog" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" - -[[package]] -name = "crossbeam-queue" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crypto-bigint" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "rand_core", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array", - "subtle", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "custom_error" -version = "1.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f8a51dd197fa6ba5b4dc98a990a43cc13693c23eb0089ebb0fcc1f04152bca6" - -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", -] - -[[package]] -name = "darling" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" -dependencies = [ - "darling_core 0.20.3", - "darling_macro 0.20.3", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.29", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core 0.14.4", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" -dependencies = [ - "darling_core 0.20.3", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "data-encoding" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" - -[[package]] -name = "der" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929" -dependencies = [ - "serde", -] - -[[package]] -name = "derive-where" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146398d62142a0f35248a608f17edf0dde57338354966d6e41d0eb2d16980ccb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "drain_filter_polyfill" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" - -[[package]] -name = "dyn-clone" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" - -[[package]] -name = "ecdsa" -version = "0.16.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" -dependencies = [ - "serde", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "hkdf", - "pem-rfc7468", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "fast_chemail" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" -dependencies = [ - "ascii_utils", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-intrusive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot 0.11.2", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "ghash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" -dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" - -[[package]] -name = "gloo-net" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2899cb1a13be9020b010967adc6b2a8a343b6f1428b90238c9d53ca24decc6db" -dependencies = [ - "futures-channel", - "futures-core", - "futures-sink", - "gloo-utils", - "js-sys", - "pin-project", - "serde", - "serde_json", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "gloo-net" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" -dependencies = [ - "futures-channel", - "futures-core", - "futures-sink", - "gloo-utils", - "js-sys", - "pin-project", - "serde", - "serde_json", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "gloo-utils" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" -dependencies = [ - "js-sys", - "serde", - "serde_json", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "graphql-introspection-query" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" -dependencies = [ - "serde", -] - -[[package]] -name = "graphql-parser" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" -dependencies = [ - "combine", - "thiserror", -] - -[[package]] -name = "graphql_client" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cdf7b487d864c2939b23902291a5041bc4a84418268f25fda1c8d4e15ad8fa" -dependencies = [ - "graphql_query_derive", - "reqwest", - "serde", - "serde_json", -] - -[[package]] -name = "graphql_client_codegen" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40f793251171991c4eb75bd84bc640afa8b68ff6907bc89d3b712a22f700506" -dependencies = [ - "graphql-introspection-query", - "graphql-parser", - "heck", - "lazy_static", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "graphql_query_derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00bda454f3d313f909298f626115092d348bc231025699f557b27e248475f48c" -dependencies = [ - "graphql_client_codegen", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 1.9.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "half" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" - -[[package]] -name = "handlebars" -version = "4.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" -dependencies = [ - "log", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.6", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.6", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" -dependencies = [ - "ahash 0.8.3", - "allocator-api2", -] - -[[package]] -name = "hashlink" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" -dependencies = [ - "hashbrown 0.11.2", -] - -[[package]] -name = "hashlink" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312f66718a2d7789ffef4f4b7b213138ed9f1eb3aa1d0d82fc99f88fb3ffd26f" -dependencies = [ - "hashbrown 0.14.0", -] - -[[package]] -name = "headers" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" -dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", - "bytes", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hkdf" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" -dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.1", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "html-escape" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" -dependencies = [ - "utf8-width", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.9", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" -dependencies = [ - "futures-util", - "http", - "hyper", - "rustls 0.21.6", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" -dependencies = [ - "equivalent", - "hashbrown 0.14.0", - "serde", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "interpolator" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8" - -[[package]] -name = "inventory" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1be380c410bf0595e94992a648ea89db4dd3f3354ba54af206fd2a68cf5ac8e" - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" - -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi", - "rustix 0.38.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.2", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin 0.5.2", -] - -[[package]] -name = "leptos" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2df7b113c4c1f416d306bc4cd52a04dec1c68ed734e4a1de2f70c30b828a6a5d" -dependencies = [ - "cfg-if 1.0.0", - "leptos_config", - "leptos_dom", - "leptos_macro", - "leptos_reactive", - "leptos_server", - "server_fn", - "tracing", - "typed-builder", - "typed-builder-macro", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "leptos_axum" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca9a6b39783fe0b9bd693614246399f44e1243ad85390041fd5a12270591cd9" -dependencies = [ - "axum", - "cfg-if 1.0.0", - "futures", - "http", - "hyper", - "leptos", - "leptos_integration_utils", - "leptos_meta", - "leptos_router", - "once_cell", - "parking_lot 0.12.1", - "serde_json", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "leptos_config" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601e61b5acfc2dd65400ea0897593543f4a1faaf9694b194f5e2747deba76b8c" -dependencies = [ - "config", - "regex", - "serde", - "thiserror", - "typed-builder", -] - -[[package]] -name = "leptos_dom" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e00a9a3b7b150c9aebb1dfdd1cb7c2ffb33a7a9075dcb891b3e214b645172e" -dependencies = [ - "async-recursion", - "cfg-if 1.0.0", - "drain_filter_polyfill", - "futures", - "getrandom", - "html-escape", - "indexmap 2.0.0", - "itertools 0.10.5", - "js-sys", - "leptos_reactive", - "once_cell", - "pad-adapter", - "paste", - "rustc-hash", - "serde", - "serde_json", - "server_fn", - "smallvec", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_hot_reload" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d02f51077512f548cc3274fa422d38155b1cf6c87ab908b5797cfcd5ddd6f3f1" -dependencies = [ - "anyhow", - "camino", - "indexmap 2.0.0", - "parking_lot 0.12.1", - "proc-macro2", - "quote", - "rstml", - "serde", - "syn 2.0.29", - "walkdir", -] - -[[package]] -name = "leptos_integration_utils" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4aea05d1c0ed9e928b63b08cde9dabd8c35e9179e90ce21d6b5df2463ff59d" -dependencies = [ - "futures", - "leptos", - "leptos_config", - "leptos_hot_reload", - "leptos_meta", - "tracing", -] - -[[package]] -name = "leptos_macro" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a15891cd424d9c9f3062a6fd1e4472cd3435359841c678fb6bc6eb87f19cf0" -dependencies = [ - "attribute-derive", - "cfg-if 1.0.0", - "convert_case", - "html-escape", - "itertools 0.11.0", - "leptos_hot_reload", - "prettyplease", - "proc-macro-error", - "proc-macro2", - "quote", - "rstml", - "server_fn_macro", - "syn 2.0.29", - "tracing", - "uuid", -] - -[[package]] -name = "leptos_meta" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0df56e3f78629049a969180fd44d4788c48e2633c789ba6a0da8f5d7e1c309" -dependencies = [ - "cfg-if 1.0.0", - "indexmap 2.0.0", - "leptos", - "tracing", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "leptos_reactive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b669db2e4c2c2435b77d534b41578ec986f012c21e1c2d3ef1042b5ab688f65" -dependencies = [ - "base64 0.21.2", - "cfg-if 1.0.0", - "futures", - "indexmap 2.0.0", - "js-sys", - "pin-project", - "rustc-hash", - "self_cell", - "serde", - "serde-wasm-bindgen", - "serde_json", - "slotmap", - "thiserror", - "tokio", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_router" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a46de957a50e428c95f4fc924251743a5bac3279967fce331157848eb8cf85a2" -dependencies = [ - "cached", - "cfg-if 1.0.0", - "common_macros", - "gloo-net 0.2.6", - "js-sys", - "lazy_static", - "leptos", - "leptos_integration_utils", - "leptos_meta", - "linear-map", - "lru", - "once_cell", - "percent-encoding", - "regex", - "serde", - "serde_json", - "serde_qs", - "thiserror", - "tracing", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_server" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c79b6c9c11b93e33d7f9976a45f03f78845c940f902ca4b9477db8a527dc14" -dependencies = [ - "inventory", - "lazy_static", - "leptos_macro", - "leptos_reactive", - "serde", - "server_fn", - "thiserror", - "tracing", -] - -[[package]] -name = "libc" -version = "0.2.147" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" - -[[package]] -name = "libm" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" - -[[package]] -name = "linear-map" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" -dependencies = [ - "serde", - "serde_test", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" - -[[package]] -name = "lock_api" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -dependencies = [ - "value-bag", -] - -[[package]] -name = "lru" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" -dependencies = [ - "hashbrown 0.14.0", -] - -[[package]] -name = "manyhow" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516b76546495d933baa165075b95c0a15e8f7ef75e53f56b19b7144d80fd52bd" -dependencies = [ - "manyhow-macros", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "manyhow-macros" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba072c0eadade3160232e70893311f1f8903974488096e2eb8e48caba2f0cf1" -dependencies = [ - "proc-macro-utils", - "proc-macro2", - "quote", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef" - -[[package]] -name = "md-5" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - -[[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.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "multer" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http", - "httparse", - "log", - "memchr", - "mime", - "spin 0.9.8", - "version_check", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[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 = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-bigint" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" -dependencies = [ - "byteorder", - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "oauth2" -version = "4.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a6e2a2b13a56ebeabba9142f911745be6456163fd6c3d361274ebcd891a80c" -dependencies = [ - "base64 0.13.1", - "chrono", - "getrandom", - "http", - "rand", - "reqwest", - "serde", - "serde_json", - "serde_path_to_error", - "sha2 0.10.7", - "thiserror", - "url", -] - -[[package]] -name = "object" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openidconnect" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03335ade401352b354b017e7597ddb40040091da445b031bf659e597e032b1fc" -dependencies = [ - "base64 0.13.1", - "chrono", - "dyn-clone", - "hmac 0.12.1", - "http", - "itertools 0.10.5", - "log", - "oauth2", - "p256", - "p384", - "rand", - "rsa", - "serde", - "serde-value", - "serde_derive", - "serde_json", - "serde_path_to_error", - "serde_plain", - "serde_with", - "sha2 0.10.7", - "subtle", - "thiserror", - "url", -] - -[[package]] -name = "openssl" -version = "0.10.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e" -dependencies = [ - "bitflags 1.3.2", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "ordered-float" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" -dependencies = [ - "num-traits", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2 0.10.7", -] - -[[package]] -name = "p384" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2 0.10.7", -] - -[[package]] -name = "pad-adapter" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d80efc4b6721e8be2a10a5df21a30fa0b470f1539e53d8b4e6e75faf938b63" - -[[package]] -name = "parking" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.8", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.3.5", - "smallvec", - "windows-targets", -] - -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pest" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "pest_meta" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" -dependencies = [ - "once_cell", - "pest", - "sha2 0.10.7", -] - -[[package]] -name = "pin-project" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if 1.0.0", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polyval" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "pretty_assertions" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" -dependencies = [ - "diff", - "yansi 0.5.1", -] - -[[package]] -name = "prettyplease" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" -dependencies = [ - "proc-macro2", - "syn 2.0.29", -] - -[[package]] -name = "primeorder" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f59e109e2f795a5070e69578c4dc101068139f74616778025ae1011d4cd41a8" -dependencies = [ - "proc-macro2", - "quote", - "smallvec", -] - -[[package]] -name = "proc-macro2" -version = "1.0.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proc-macro2-diagnostics" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", - "version_check", - "yansi 1.0.0-rc.1", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "quote-use" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b5abe3fe82fdeeb93f44d66a7b444dedf2e4827defb0a8e69c437b2de2ef94" -dependencies = [ - "quote", - "quote-use-macros", - "syn 2.0.29", -] - -[[package]] -name = "quote-use-macros" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ea44c7e20f16017a76a245bb42188517e13d16dcb1aa18044bc406cdc3f4af" -dependencies = [ - "derive-where", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "regex" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.3.6", - "regex-syntax 0.7.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.7.4", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" - -[[package]] -name = "reqwasm" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b89870d729c501fa7a68c43bf4d938bbb3a8c156d333d90faa0e8b3e3212fb" -dependencies = [ - "gloo-net 0.1.0", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" -dependencies = [ - "base64 0.21.2", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.6", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "rsa" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab43bb47d23c1a631b4b680199a45255dce26fa9ab2fa902581f624ff13e6a8" -dependencies = [ - "byteorder", - "const-oid", - "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-iter", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core", - "signature", - "spki", - "subtle", - "zeroize", -] - -[[package]] -name = "rstml" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe542870b8f59dd45ad11d382e5339c9a1047cde059be136a7016095bbdefa77" -dependencies = [ - "proc-macro2", - "proc-macro2-diagnostics", - "quote", - "syn 2.0.29", - "syn_derive", - "thiserror", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" -dependencies = [ - "bitflags 2.4.0", - "errno", - "libc", - "linux-raw-sys 0.4.5", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustls" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" -dependencies = [ - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls" -version = "0.21.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" -dependencies = [ - "log", - "ring", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" -dependencies = [ - "base64 0.21.2", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "rusty-forkfork" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ce85af4dfa2fb0c0143121ab5e424c71ea693867357c9159b8777b59984c218" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sealed_test" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a608d94641cc17fe203b102db2ae86d47a236630192f0244ddbbbb0044c0272" -dependencies = [ - "fs_extra", - "rusty-forkfork", - "sealed_test_derive", - "tempfile", -] - -[[package]] -name = "sealed_test_derive" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b672e005ae58fef5da619d90b9f1c5b44b061890f4a371b3c96257a8a15e697" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "self_cell" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6" - -[[package]] -name = "serde" -version = "1.0.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde", -] - -[[package]] -name = "serde-wasm-bindgen" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" -dependencies = [ - "js-sys", - "serde", - "wasm-bindgen", -] - -[[package]] -name = "serde_derive" -version = "1.0.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "serde_json" -version = "1.0.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" -dependencies = [ - "itoa", - "serde", -] - -[[package]] -name = "serde_plain" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6018081315db179d0ce57b1fe4b62a12a0028c9cf9bbef868c9cf477b3c34ae" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_qs" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" -dependencies = [ - "percent-encoding", - "serde", - "thiserror", -] - -[[package]] -name = "serde_test" -version = "1.0.176" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2f49ace1498612d14f7e0b8245519584db8299541dfe31a06374a828d620ab" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" -dependencies = [ - "base64 0.21.2", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.0.0", - "serde", - "serde_json", - "serde_with_macros", - "time 0.3.26", -] - -[[package]] -name = "serde_with_macros" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" -dependencies = [ - "darling 0.20.3", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "server_fn" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0fe0ff97b5d8bc4097265a372ed1e38c54355d680c7e2298025fb5d5fc4896" -dependencies = [ - "ciborium", - "const_format", - "gloo-net 0.2.6", - "inventory", - "js-sys", - "lazy_static", - "once_cell", - "proc-macro2", - "quote", - "reqwest", - "serde", - "serde_json", - "serde_qs", - "server_fn_macro_default", - "syn 2.0.29", - "thiserror", - "xxhash-rust", -] - -[[package]] -name = "server_fn_macro" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49da76920fedc5ed480b35713aac633b2be5e505b91d4ccb75ce8ac6d166b321" -dependencies = [ - "const_format", - "proc-macro-error", - "proc-macro2", - "quote", - "serde", - "syn 2.0.29", - "xxhash-rust", -] - -[[package]] -name = "server_fn_macro_default" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55d29b811163792be818c26e36c73a6eaae0e41d115f8004b86ab9cf3d8cb2d6" -dependencies = [ - "server_fn_macro", - "syn 2.0.29", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" -dependencies = [ - "digest 0.10.7", - "rand_core", -] - -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time 0.3.26", -] - -[[package]] -name = "simple_logger" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2230cd5c29b815c9b699fb610b49a5ed65588f3509d9f0108be3a885da629333" -dependencies = [ - "colored", - "log", - "time 0.3.26", - "windows-sys 0.42.0", -] - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slotmap" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "serde", - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlformat" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" -dependencies = [ - "itertools 0.10.5", - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlformat" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c12bc9199d1db8234678b7051747c07f517cdcf019262d1847b94ec8b1aee3e" -dependencies = [ - "itertools 0.10.5", - "nom", - "unicode_categories", -] - -[[package]] -name = "sqlx" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b" -dependencies = [ - "sqlx-core 0.5.13", - "sqlx-macros 0.5.13", -] - -[[package]] -name = "sqlx" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8de3b03a925878ed54a954f621e64bf55a3c1bd29652d0d1a17830405350188" -dependencies = [ - "sqlx-core 0.6.3", - "sqlx-macros 0.6.3", -] - -[[package]] -name = "sqlx-core" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5" -dependencies = [ - "ahash 0.7.6", - "atoi 0.4.0", - "base64 0.13.1", - "bitflags 1.3.2", - "byteorder", - "bytes", - "chrono", - "crc 2.1.0", - "crossbeam-queue", - "dirs", - "either", - "event-listener", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-util", - "hashlink 0.7.0", - "hex", - "hkdf", - "hmac 0.12.1", - "indexmap 1.9.3", - "itoa", - "libc", - "log", - "md-5", - "memchr", - "once_cell", - "paste", - "percent-encoding", - "rand", - "serde", - "serde_json", - "sha-1", - "sha2 0.10.7", - "smallvec", - "sqlformat 0.1.8", - "sqlx-rt 0.5.13", - "stringprep", - "thiserror", - "url", - "whoami", -] - -[[package]] -name = "sqlx-core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa8241483a83a3f33aa5fff7e7d9def398ff9990b2752b6c6112b83c6d246029" -dependencies = [ - "ahash 0.7.6", - "atoi 1.0.0", - "base64 0.13.1", - "bitflags 1.3.2", - "byteorder", - "bytes", - "chrono", - "crc 3.0.1", - "crossbeam-queue", - "dirs", - "dotenvy", - "either", - "event-listener", - "futures-channel", - "futures-core", - "futures-intrusive", - "futures-util", - "hashlink 0.8.3", - "hex", - "hkdf", - "hmac 0.12.1", - "indexmap 1.9.3", - "itoa", - "libc", - "log", - "md-5", - "memchr", - "once_cell", - "paste", - "percent-encoding", - "rand", - "rustls 0.20.8", - "rustls-pemfile", - "serde", - "serde_json", - "sha1", - "sha2 0.10.7", - "smallvec", - "sqlformat 0.2.1", - "sqlx-rt 0.6.3", - "stringprep", - "thiserror", - "time 0.3.26", - "tokio-stream", - "url", - "uuid", - "webpki-roots", - "whoami", -] - -[[package]] -name = "sqlx-macros" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1" -dependencies = [ - "dotenv", - "either", - "heck", - "once_cell", - "proc-macro2", - "quote", - "serde_json", - "sha2 0.10.7", - "sqlx-core 0.5.13", - "sqlx-rt 0.5.13", - "syn 1.0.109", - "url", -] - -[[package]] -name = "sqlx-macros" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9966e64ae989e7e575b19d7265cb79d7fc3cbbdf179835cb0d716f294c2049c9" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2 0.10.7", - "sqlx-core 0.6.3", - "sqlx-rt 0.6.3", - "syn 1.0.109", - "url", -] - -[[package]] -name = "sqlx-rt" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" -dependencies = [ - "async-native-tls", - "async-std", - "native-tls", -] - -[[package]] -name = "sqlx-rt" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "804d3f245f894e61b1e6263c84b23ca675d96753b5abfd5cc8597d86806e8024" -dependencies = [ - "once_cell", - "tokio", - "tokio-rustls 0.23.4", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stringprep" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3737bde7edce97102e0e2b15365bf7a20bfdb5f60f4f9e8d7004258a51a8da" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "tempfile" -version = "3.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" -dependencies = [ - "cfg-if 1.0.0", - "fastrand 2.0.0", - "redox_syscall 0.3.5", - "rustix 0.38.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "thiserror" -version = "1.0.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.47" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a79d09ac6b08c1ab3906a2f7cc2e81a0e27c7ae89c63812df75e52bef0751e07" -dependencies = [ - "deranged", - "itoa", - "libc", - "num_threads", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" - -[[package]] -name = "time-macros" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c65469ed6b3a4809d987a41eb1dc918e9bc1d92211cbad7ae82931846f7451" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.5.3", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.8", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.6", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dbec703c26b00d74844519606ef15d09a7d6857860f84ad223dec002ddea2" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "futures-util", - "hashbrown 0.12.3", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" - -[[package]] -name = "toml_edit" -version = "0.19.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" -dependencies = [ - "indexmap 2.0.0", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" -dependencies = [ - "bitflags 1.3.2", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "httpdate", - "mime", - "mime_guess", - "percent-encoding", - "pin-project-lite", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ae70283aba8d2a8b411c695c437fe25b8b5e44e23e780662002fc72fb47a82" -dependencies = [ - "bitflags 2.4.0", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if 1.0.0", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "tracing-core" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "typed-builder" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16" -dependencies = [ - "typed-builder-macro", -] - -[[package]] -name = "typed-builder-macro" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -dependencies = [ - "void", -] - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "url" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8-width" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "uuid" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" -dependencies = [ - "getrandom", - "rand", - "serde", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "value-bag" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" -dependencies = [ - "cfg-if 1.0.0", - "serde", - "serde_json", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.29", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - -[[package]] -name = "whoami" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" -dependencies = [ - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "winnow" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "xxhash-rust" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b" - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "yansi" -version = "1.0.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" - -[[package]] -name = "zeroize" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" - -[[package]] -name = "zitadel" -version = "3.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99fd2ca4aef910ce0fa3412c328a9584911a9c7490ae59901faca51071a96ca" -dependencies = [ - "axum", - "axum-extra", - "base64-compat", - "custom_error", - "jsonwebtoken", - "openidconnect", - "reqwest", - "serde", - "serde_json", - "serde_urlencoded", - "time 0.3.26", -] diff --git a/Cargo.toml b/Cargo.toml index 9adbf7c..8b7cd6a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,53 +1,2 @@ [workspace] -members = [ - "crates/*", - "ci" -] -resolver = "2" - -[workspace.dependencies] -como_bin = { path = "./crates/como_bin/" } -como_core = { path = "./crates/como_core/" } -como_domain = { path = "./crates/como_domain/" } -como_infrastructure = { path = "./crates/como_infrastructure/" } -como_gql = { path = "./crates/como_gql/" } -como_api = { path = "./crates/como_api/" } -como_auth = { path = "./crates/como_auth/" } - -async-trait = "0.1.68" -async-graphql = { version = "5.0.9", features = ["uuid"] } -async-graphql-axum = "5.0.9" - -axum = { version = "0.6.18", features = ["headers", "macros"] } -axum-extra = { version = "0.7.4", features = ["cookie", "cookie-private"] } -axum-sessions = { version = "0.5.0" } -async-sqlx-session = { version = "0.4.0", features = ["pg"] } - -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0.68" - -sqlx = { version = "0.6.2", features = [ - "runtime-tokio-rustls", - "postgres", - "migrate", - "uuid", - "offline", - "time", - "chrono", -] } -chrono = { version = "0.4.26", features = ["serde"] } - -tokio = { version = "1.28.2", features = ["full"] } - -uuid = { version = "1.3.3", features = ["v4", "fast-rng", "serde"] } -anyhow = "1.0.71" -dotenv = "0.15.0" -tracing = "0.1.37" -tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } -clap = { version = "4.3.0", features = ["derive", "env"] } - -argon2 = { version = "0.5.0" } -rand_core = { version = "0.6.4" } - -pretty_assertions = "1.4.0" -sealed_test = "1.0.0" +members = [ "crates/*" ] diff --git a/README.md b/README.md index bc11a26..a130ea5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,76 @@ -# Cibus Backend +# Omnia -Some text +`Omnia` is a tool to provide a common platform for everything. It is a tool +build to support note-taking, handling personal relationships, project +development, todos, research, up-keep of external work, and much more. + +This may seem like a large list of tasks, and it is. However, Omnia is designed +to be opinionated, and provide a minimalistic approach to each of the above. +Omnia is not a general purpose tool, text editing tool, it is designed to fit +into your existing toolstack, with its opinionated project structure, and +workflow. + +Alternatives to this tool: + +- Notion: with second brain templates etc. +- Obsidian: with zen garden templates etc. + +Omnia is a commandline tool, which functions using a terminal ui, or pure cli +commands. Called `interactive` for the former, and `prompt` for the latter. It +is designed to work with your favorite EDITOR, to keep the scope of this project +reasonable, `Omnia` doesn't try to bundle with an editor. Instead it will +respect your `OMNIA_EDITOR`, or `EDITOR` environment variables, and launch the +files using those. + +## How to use `Omnia` + +To launch the fully interactive view, simply type `omnia` in your shell of +choice. This will boot up the TUI, press `?` for help and it will show a brief, +menu as well as the most common keybinds. + +Following each command will be shown separately, these will be available in the +UI as well, just follow along in the menu, or use the command key `:` to open +the command palette. + +### Commands + +In Omnia everything is designed to use Markdown files, even the templates are +markdown files, though with some special syntax to make prompting easier. This +also means that you can open your local ~/omnia directory using your favorite +editor, as everything is just markdown files. + +Projects are the cornerstone of how Omnia functions. Every navigation item is a +project, be they todo lists, research items, external sites etc. Projects can be +nested, and projects can contain pages. External apps can be configured as a +project, and will need a certain interface to be functional. + +This means that when you type a command: + +`omnia --help`, each subcommand will be a project, some keywords are reserved: +(todo, inbox, project, etc.), each project decides which commands are available, +and this is fully customizeable, through our plugin system. Though note that we +ship the default view with a set of preconfigured plugins: + +- todo +- inbox +- projects +- areas + +Typing each of the commands above will open the fully interactive tui: +`omnia todo`. Todo has a set of commands available to it: `omnia todo create` as +an example. This will open the prompt view, which will interactive ask the user +to fill out a form. These questions will also be available using commandline +flags as well. + +### Views + +Some of the projects are built as views, this may be a list of recent +notifications on github, apis of interest, metrics and whatnot. + +## Remote first + +Omnia will sync remote first in nearly all cases. The only exception is in +progress forms and whatnot. This is to keep complexity down, as well as making +sure Omnia is as easily crossplatform as possible. You should be able to use +`Omnia` from all your terminal capable devices. This sprung out of my own need +for having my notes available everywhere, without having conflicts. diff --git a/crates/como/.gitignore b/crates/como/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/crates/como/.gitignore @@ -0,0 +1 @@ +/target diff --git a/ci/Cargo.toml b/crates/como/Cargo.toml similarity index 91% rename from ci/Cargo.toml rename to crates/como/Cargo.toml index 98e1871..caa6fb4 100644 --- a/ci/Cargo.toml +++ b/crates/como/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "ci" +name = "como" version = "0.1.0" edition = "2021" diff --git a/ci/src/main.rs b/crates/como/src/main.rs similarity index 100% rename from ci/src/main.rs rename to crates/como/src/main.rs diff --git a/crates/como_api/Cargo.toml b/crates/como_api/Cargo.toml deleted file mode 100644 index 591a74f..0000000 --- a/crates/como_api/Cargo.toml +++ /dev/null @@ -1,34 +0,0 @@ -[package] -name = "como_api" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -como_gql.workspace = true -como_core.workspace = true -como_domain.workspace = true -como_infrastructure.workspace = true -como_auth.workspace = true - -async-trait.workspace = true -async-graphql.workspace = true -async-graphql-axum.workspace = true -axum.workspace = true -axum-extra.workspace = true -axum-sessions.workspace = true -serde.workspace = true -serde_json.workspace = true -tokio.workspace = true -uuid.workspace = true -sqlx.workspace = true -anyhow.workspace = true -tracing.workspace = true -async-sqlx-session.workspace = true - -zitadel = { version = "3.3.1", features = ["axum"] } -tower = "0.4.13" -tower-http = { version = "0.4.0", features = ["cors", "trace"] } -oauth2 = "4.4.0" -openidconnect = "3.0.0" diff --git a/crates/como_api/src/controllers/auth.rs b/crates/como_api/src/controllers/auth.rs deleted file mode 100644 index 5ac1744..0000000 --- a/crates/como_api/src/controllers/auth.rs +++ /dev/null @@ -1,160 +0,0 @@ -use std::fmt::Display; - -use crate::router::AppState; - -use axum::extract::{FromRef, FromRequestParts, Query, State}; - -use axum::headers::authorization::Basic; -use axum::headers::{Authorization, Cookie}; -use axum::http::request::Parts; -use axum::http::StatusCode; - -use axum::response::{ErrorResponse, IntoResponse, Redirect}; -use axum::routing::get; -use axum::{async_trait, Json, RequestPartsExt, Router, TypedHeader}; - -use como_domain::users::User; -use como_infrastructure::register::ServiceRegister; - -use serde::Deserialize; -use serde_json::json; - -#[derive(Debug, Deserialize)] -pub struct ZitadelAuthParams { - #[allow(dead_code)] - return_url: Option, -} - -trait AnyhowExtensions -where - E: Display, -{ - fn into_response(self) -> Result; -} -impl AnyhowExtensions for anyhow::Result -where - E: Display, -{ - fn into_response(self) -> Result { - match self { - Ok(o) => Ok(o), - Err(e) => { - tracing::error!("failed with anyhow error: {}", e); - Err(ErrorResponse::from(( - StatusCode::INTERNAL_SERVER_ERROR, - Json(json!({ - "status": "something", - })), - ))) - } - } - } -} - -pub async fn zitadel_auth( - State(services): State, -) -> Result { - let url = services.auth_service.login().await.into_response()?; - - Ok(Redirect::to(&url.to_string())) -} - -#[derive(Debug, Deserialize)] -#[allow(dead_code)] -pub struct AuthRequest { - code: String, - state: String, -} - -pub async fn login_authorized( - Query(query): Query, - State(services): State, -) -> Result { - let (headers, url) = services - .auth_service - .login_authorized(&query.code, &query.state) - .await - .into_response()?; - - Ok((headers, Redirect::to(url.as_str()))) -} - -pub struct AuthController; - -impl AuthController { - pub async fn new_router( - _service_register: ServiceRegister, - app_state: AppState, - ) -> anyhow::Result { - Ok(Router::new() - .route("/zitadel", get(zitadel_auth)) - .route("/authorized", get(login_authorized)) - .with_state(app_state)) - } -} - -pub struct UserFromSession { - pub user: User, -} - -pub static COOKIE_NAME: &str = "SESSION"; - -#[async_trait] -impl FromRequestParts for UserFromSession -where - ServiceRegister: FromRef, - S: Send + Sync, -{ - type Rejection = (StatusCode, &'static str); - - async fn from_request_parts(parts: &mut Parts, state: &S) -> Result { - let services = ServiceRegister::from_ref(state); - - let cookie: Option> = parts.extract().await.unwrap(); - let session_cookie = cookie.as_ref().and_then(|cookie| cookie.get(COOKIE_NAME)); - if let None = session_cookie { - let basic: Option>> = parts.extract().await.unwrap(); - - if let Some(basic) = basic { - let token = services - .auth_service - .login_token(basic.username(), basic.password()) - .await - .into_response() - .map_err(|_| { - ( - StatusCode::INTERNAL_SERVER_ERROR, - "could not get token from basic", - ) - })?; - - return Ok(UserFromSession { - user: User { id: token }, - }); - } - - return Err(anyhow::anyhow!("No session was found")) - .into_response() - .map_err(|_| (StatusCode::INTERNAL_SERVER_ERROR, "did not find a cookie"))?; - } - - let session_cookie = session_cookie.unwrap(); - - // continue to decode the session cookie - let user = services - .auth_service - .get_user_from_session(session_cookie) - .await - .into_response() - .map_err(|_| { - ( - StatusCode::INTERNAL_SERVER_ERROR, - "failed to decode session cookie", - ) - })?; - - Ok(UserFromSession { - user: User { id: user.id }, - }) - } -} diff --git a/crates/como_api/src/controllers/graphql.rs b/crates/como_api/src/controllers/graphql.rs deleted file mode 100644 index 0057354..0000000 --- a/crates/como_api/src/controllers/graphql.rs +++ /dev/null @@ -1,48 +0,0 @@ -use super::auth::UserFromSession; -use crate::router::AppState; - -use async_graphql::http::{playground_source, GraphQLPlaygroundConfig}; -use async_graphql::{EmptySubscription, Schema}; -use async_graphql_axum::{GraphQLRequest, GraphQLResponse}; -use axum::response::Html; -use axum::{http::StatusCode, response::IntoResponse, routing::get, Extension, Router}; - -use como_domain::user::ContextUserExt; -use como_domain::Context; -use como_gql::graphql::{ComoSchema, MutationRoot, QueryRoot}; -use como_infrastructure::register::ServiceRegister; -use tower::ServiceBuilder; - -pub struct GraphQLController; - -impl GraphQLController { - pub fn new_router(service_register: ServiceRegister, state: AppState) -> Router { - let schema = Schema::build(QueryRoot, MutationRoot, EmptySubscription) - .data(service_register) - .finish(); - - Router::new() - .route("/", get(graphql_playground).post(graphql_handler)) - .layer(ServiceBuilder::new().layer(Extension(schema))) - .with_state(state) - } -} - -pub async fn graphql_handler( - user: UserFromSession, - schema: Extension, - req: GraphQLRequest, -) -> Result { - let req = req.into_inner(); - let req = req.data(user.user.clone()); - - let context = Context::new(); - let context = context.set_user_id(user.user.id.clone()); - let req = req.data(context); - - Ok(schema.execute(req).await.into()) -} - -pub async fn graphql_playground() -> impl IntoResponse { - Html(playground_source(GraphQLPlaygroundConfig::new("/graphql"))) -} diff --git a/crates/como_api/src/controllers/mod.rs b/crates/como_api/src/controllers/mod.rs deleted file mode 100644 index e292702..0000000 --- a/crates/como_api/src/controllers/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod auth; -pub mod graphql; diff --git a/crates/como_api/src/lib.rs b/crates/como_api/src/lib.rs deleted file mode 100644 index 48fca3c..0000000 --- a/crates/como_api/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -mod controllers; -pub mod router; -pub mod zitadel; diff --git a/crates/como_api/src/router.rs b/crates/como_api/src/router.rs deleted file mode 100644 index 1c9693b..0000000 --- a/crates/como_api/src/router.rs +++ /dev/null @@ -1,73 +0,0 @@ -use std::env; - -use anyhow::Context; -use axum::extract::FromRef; -use axum::http::{HeaderValue, Method}; -use axum::Router; -use como_infrastructure::register::ServiceRegister; -use tower::ServiceBuilder; -use tower_http::{cors::CorsLayer, trace::TraceLayer}; - -use crate::controllers::auth::AuthController; -use crate::controllers::graphql::GraphQLController; - -pub struct Api; - -impl Api { - pub async fn new( - port: u32, - cors_origin: &str, - service_register: ServiceRegister, - ) -> anyhow::Result<()> { - let app_state = AppState { - service_register: service_register.clone(), - }; - - let router = Router::new() - .nest( - "/auth", - AuthController::new_router(service_register.clone(), app_state.clone()).await?, - ) - .nest( - "/graphql", - GraphQLController::new_router(service_register.clone(), app_state.clone()), - ) - .layer( - ServiceBuilder::new() - .layer(TraceLayer::new_for_http()) - .layer( - CorsLayer::new() - .allow_origin( - cors_origin - .parse::() - .context("could not parse cors origin as header")?, - ) - .allow_headers([axum::http::header::CONTENT_TYPE]) - .allow_methods([Method::GET, Method::POST, Method::OPTIONS]) - .allow_credentials(true), - ), - ); - - let host = env::var("HOST").unwrap_or("0.0.0.0".to_string()); - - tracing::info!("running on: {host}:{}", port); - - axum::Server::bind(&format!("{host}:{}", port).parse().unwrap()) - .serve(router.into_make_service()) - .await - .context("error while starting API")?; - - Ok(()) - } -} - -#[derive(Clone)] -pub struct AppState { - service_register: ServiceRegister, -} - -impl FromRef for ServiceRegister { - fn from_ref(input: &AppState) -> Self { - input.service_register.clone() - } -} diff --git a/crates/como_api/src/zitadel/client.rs b/crates/como_api/src/zitadel/client.rs deleted file mode 100644 index 857ee9c..0000000 --- a/crates/como_api/src/zitadel/client.rs +++ /dev/null @@ -1,67 +0,0 @@ -use async_trait::async_trait; -use oauth2::{basic::BasicClient, AuthUrl, ClientId, ClientSecret, RedirectUrl, TokenUrl}; -use std::{env, ops::Deref, sync::Arc}; - -#[async_trait] -pub trait OAuthClient { - async fn get_token(&self) -> anyhow::Result<()>; -} - -pub struct OAuth(Arc); - -impl OAuth { - pub fn new_zitadel() -> Self { - Self(Arc::new(ZitadelOAuthClient { - client: oauth_client(), - })) - } - pub fn new_noop() -> Self { - Self(Arc::new(NoopOAuthClient {})) - } -} - -impl Deref for OAuth { - type Target = Arc; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -pub struct NoopOAuthClient; - -#[async_trait] -impl OAuthClient for NoopOAuthClient { - async fn get_token(&self) -> anyhow::Result<()> { - Ok(()) - } -} - -pub struct ZitadelOAuthClient { - client: BasicClient, -} - -#[async_trait] -impl OAuthClient for ZitadelOAuthClient { - async fn get_token(&self) -> anyhow::Result<()> { - Ok(()) - } -} - -fn oauth_client() -> BasicClient { - let client_id = env::var("CLIENT_ID").expect("Missing CLIENT_ID!"); - let client_secret = env::var("CLIENT_SECRET").expect("Missing CLIENT_SECRET!"); - let redirect_url = env::var("REDIRECT_URL").expect("missing REDIRECT_URL"); - - let auth_url = env::var("AUTH_URL").expect("missing AUTH_URL"); - - let token_url = env::var("TOKEN_URL").expect("missing TOKEN_URL"); - - BasicClient::new( - ClientId::new(client_id), - Some(ClientSecret::new(client_secret)), - AuthUrl::new(auth_url).unwrap(), - Some(TokenUrl::new(token_url).unwrap()), - ) - .set_redirect_uri(RedirectUrl::new(redirect_url).unwrap()) -} diff --git a/crates/como_api/src/zitadel/mod.rs b/crates/como_api/src/zitadel/mod.rs deleted file mode 100644 index 8b13789..0000000 --- a/crates/como_api/src/zitadel/mod.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/crates/como_auth/Cargo.toml b/crates/como_auth/Cargo.toml deleted file mode 100644 index e28d61b..0000000 --- a/crates/como_auth/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "como_auth" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -clap.workspace = true -async-trait.workspace = true -axum.workspace = true -axum-extra.workspace = true -axum-sessions.workspace = true -serde.workspace = true -uuid.workspace = true -sqlx.workspace = true -anyhow.workspace = true -tracing.workspace = true -async-sqlx-session.workspace = true - -zitadel = { version = "3.3.1", features = ["axum"] } -tower = "0.4.13" -tower-http = { version = "0.4.0", features = ["cors", "trace"] } -oauth2 = "4.4.0" -openidconnect = "3.0.0" - -[dev-dependencies] -tokio.workspace = true -pretty_assertions.workspace = true -sealed_test.workspace = true diff --git a/crates/como_auth/src/auth.rs b/crates/como_auth/src/auth.rs deleted file mode 100644 index 70bbca7..0000000 --- a/crates/como_auth/src/auth.rs +++ /dev/null @@ -1,128 +0,0 @@ -use std::{ops::Deref, sync::Arc}; - -use anyhow::Context; -use async_trait::async_trait; -use axum::http::{header::SET_COOKIE, HeaderMap}; -use oauth2::url::Url; - -use crate::{ - introspection::IntrospectionService, - oauth::{OAuth, ZitadelConfig}, - session::{SessionService, User}, - AuthClap, AuthEngine, -}; - -#[async_trait] -pub trait Auth { - async fn login(&self) -> anyhow::Result; - async fn login_token(&self, user: &str, password: &str) -> anyhow::Result; - async fn login_authorized(&self, code: &str, state: &str) -> anyhow::Result<(HeaderMap, Url)>; - async fn get_user_from_session(&self, cookie: &str) -> anyhow::Result; -} - -#[derive(Clone)] -pub struct AuthService(Arc); - -impl AuthService { - pub async fn new(config: &AuthClap, session: SessionService) -> anyhow::Result { - match config.engine { - AuthEngine::Noop => Ok(Self::new_noop()), - AuthEngine::Zitadel => { - let oauth: OAuth = ZitadelConfig::try_from(config.zitadel.clone())?.into(); - let introspection: IntrospectionService = - IntrospectionService::new_zitadel(config).await?; - - Ok(Self::new_zitadel(oauth, introspection, session)) - } - } - } - - pub fn new_zitadel( - oauth: OAuth, - introspection: IntrospectionService, - session: SessionService, - ) -> Self { - Self(Arc::new(ZitadelAuthService { - oauth, - introspection, - session, - })) - } - - pub fn new_noop() -> Self { - Self(Arc::new(NoopAuthService {})) - } -} - -impl Deref for AuthService { - type Target = Arc; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -pub struct ZitadelAuthService { - oauth: OAuth, - introspection: IntrospectionService, - session: SessionService, -} -pub static COOKIE_NAME: &str = "SESSION"; - -#[async_trait] -impl Auth for ZitadelAuthService { - async fn login(&self) -> anyhow::Result { - let authorize_url = self.oauth.authorize_url().await?; - - Ok(authorize_url) - } - async fn login_authorized(&self, code: &str, _state: &str) -> anyhow::Result<(HeaderMap, Url)> { - let token = self.oauth.exchange(code).await?; - let user_id = self.introspection.get_id_token(token.as_str()).await?; - let cookie_value = self.session.insert_user("user", user_id.as_str()).await?; - - let cookie = format!("{}={}; SameSite=Lax; Path=/", COOKIE_NAME, cookie_value); - - let mut headers = HeaderMap::new(); - headers.insert(SET_COOKIE, cookie.parse().unwrap()); - - Ok(( - headers, - Url::parse("http://localhost:3000/dash/home") - .context("failed to parse login_authorized zitadel return url")?, - )) - } - async fn login_token(&self, _user: &str, password: &str) -> anyhow::Result { - self.introspection.get_id_token(password).await - } - async fn get_user_from_session(&self, cookie: &str) -> anyhow::Result { - match self.session.get_user(cookie).await? { - Some(u) => Ok(User { id: u }), - None => Err(anyhow::anyhow!("failed to find user")), - } - } -} - -pub struct NoopAuthService {} - -#[async_trait] -impl Auth for NoopAuthService { - async fn login(&self) -> anyhow::Result { - todo!() - } - async fn login_authorized( - &self, - _code: &str, - _state: &str, - ) -> anyhow::Result<(HeaderMap, Url)> { - todo!() - } - - async fn login_token(&self, _user: &str, _password: &str) -> anyhow::Result { - todo!() - } - - async fn get_user_from_session(&self, _cookie: &str) -> anyhow::Result { - todo!() - } -} diff --git a/crates/como_auth/src/introspection.rs b/crates/como_auth/src/introspection.rs deleted file mode 100644 index 05b1635..0000000 --- a/crates/como_auth/src/introspection.rs +++ /dev/null @@ -1,159 +0,0 @@ -use std::{ops::Deref, sync::Arc}; - -use async_trait::async_trait; -use axum::extract::FromRef; -use oauth2::TokenIntrospectionResponse; -use openidconnect::IntrospectionUrl; -use zitadel::{ - axum::introspection::IntrospectionStateBuilderError, - credentials::Application, - oidc::{ - discovery::discover, - introspection::{introspect, AuthorityAuthentication}, - }, -}; - -use crate::AuthClap; - -#[async_trait] -pub trait Introspection { - async fn get_user(&self) -> anyhow::Result<()>; - async fn get_id_token(&self, token: &str) -> anyhow::Result; -} - -pub struct IntrospectionService(Arc); -impl IntrospectionService { - pub async fn new_zitadel(config: &AuthClap) -> anyhow::Result { - let res = IntrospectionStateBuilder::new(&config.zitadel.authority_url.clone().unwrap()) - .with_basic_auth( - &config.zitadel.client_id.clone().unwrap(), - &config.zitadel.client_secret.clone().unwrap(), - ) - .build() - .await?; - - Ok(IntrospectionService(Arc::new(ZitadelIntrospection::new( - res, - )))) - } -} - -impl Deref for IntrospectionService { - type Target = Arc; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -pub struct ZitadelIntrospection { - state: IntrospectionState, -} - -impl ZitadelIntrospection { - pub fn new(state: IntrospectionState) -> Self { - Self { state } - } -} - -#[async_trait] -impl Introspection for ZitadelIntrospection { - async fn get_user(&self) -> anyhow::Result<()> { - Ok(()) - } - async fn get_id_token(&self, token: &str) -> anyhow::Result { - let config = &self.state.config; - let res = introspect( - &config.introspection_uri, - &config.authority, - &config.authentication, - token, - ) - .await?; - - Ok(res - .sub() - .ok_or(anyhow::anyhow!("could not find a userid (sub) in token"))? - .to_string()) - } -} - -#[derive(Clone, Debug)] -pub struct IntrospectionState { - pub(crate) config: IntrospectionConfig, -} - -/// Configuration that must be inject into the axum application state. Used by the -/// [IntrospectionStateBuilder](super::IntrospectionStateBuilder). This struct is also used to create the [IntrospectionState](IntrospectionState) -#[derive(Debug, Clone)] -pub struct IntrospectionConfig { - pub authority: String, - pub authentication: AuthorityAuthentication, - pub introspection_uri: IntrospectionUrl, -} - -impl FromRef for IntrospectionConfig { - fn from_ref(input: &IntrospectionState) -> Self { - input.config.clone() - } -} - -pub struct IntrospectionStateBuilder { - authority: String, - authentication: Option, -} - -/// Builder for [IntrospectionConfig] -impl IntrospectionStateBuilder { - pub fn new(authority: &str) -> Self { - Self { - authority: authority.to_string(), - authentication: None, - } - } - - pub fn with_basic_auth( - &mut self, - client_id: &str, - client_secret: &str, - ) -> &mut IntrospectionStateBuilder { - self.authentication = Some(AuthorityAuthentication::Basic { - client_id: client_id.to_string(), - client_secret: client_secret.to_string(), - }); - - self - } - - #[allow(dead_code)] - pub fn with_jwt_profile(&mut self, application: Application) -> &mut IntrospectionStateBuilder { - self.authentication = Some(AuthorityAuthentication::JWTProfile { application }); - - self - } - - pub async fn build(&mut self) -> Result { - let authentication = self - .authentication - .clone() - .ok_or(IntrospectionStateBuilderError::NoAuthSchema)?; - - let metadata = discover(&self.authority) - .await - .map_err(|source| IntrospectionStateBuilderError::Discovery { source })?; - - let introspection_uri = metadata - .additional_metadata() - .introspection_endpoint - .clone() - .ok_or(IntrospectionStateBuilderError::NoIntrospectionUrl)?; - - Ok(IntrospectionState { - config: IntrospectionConfig { - authority: self.authority.clone(), - introspection_uri: introspection_uri, - authentication: authentication, - }, - }) - } -} diff --git a/crates/como_auth/src/lib.rs b/crates/como_auth/src/lib.rs deleted file mode 100644 index 9812190..0000000 --- a/crates/como_auth/src/lib.rs +++ /dev/null @@ -1,242 +0,0 @@ -use oauth::{OAuth, ZitadelConfig}; -use serde::{Deserialize, Serialize}; - -mod auth; -mod introspection; -mod oauth; -mod session; - -pub use auth::{Auth, AuthService}; -use session::SessionClap; -pub use session::SessionService; - -#[derive(clap::ValueEnum, Clone, PartialEq, Eq, Debug)] -pub enum AuthEngine { - Noop, - Zitadel, -} - -#[derive(clap::ValueEnum, Clone, PartialEq, Eq, Debug)] -pub enum SessionBackend { - InMemory, - Postgresql, -} - -#[derive(clap::Args, Clone, PartialEq, Eq, Debug)] -pub struct AuthClap { - #[arg( - env = "AUTH_ENGINE", - long = "auth-engine", - requires_ifs = [ - ( "zitadel", "ZitadelClap" ) - ], - default_value = "noop" ) - ] - pub engine: AuthEngine, - - #[arg( - env = "SESSION_BACKEND", - long = "session-backend", - requires_ifs = [ - ( "postgresql", "PostgresqlSessionClap" ) - ], - default_value = "in-memory" ) - ] - pub session_backend: SessionBackend, - - #[clap(flatten)] - pub zitadel: ZitadelClap, - - #[clap(flatten)] - pub session: SessionClap, -} - -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] -pub struct AuthConfigFile { - zitadel: Option, -} - -#[derive(clap::Args, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] -#[group(requires_all = ["auth_url", "client_id", "client_secret", "redirect_url", "token_url", "authority_url"])] -pub struct ZitadelClap { - #[arg(env = "ZITADEL_AUTH_URL", long = "zitadel-auth-url")] - pub auth_url: Option, - - #[arg(env = "ZITADEL_CLIENT_ID", long = "zitadel-client-id")] - pub client_id: Option, - - #[arg(env = "ZITADEL_CLIENT_SECRET", long = "zitadel-client-secret")] - pub client_secret: Option, - - #[arg(env = "ZITADEL_REDIRECT_URL", long = "zitadel-redirect-url")] - pub redirect_url: Option, - - #[arg(env = "ZITADEL_AUTHORITY_URL", long = "zitadel-authority-url")] - pub authority_url: Option, - - #[arg(env = "ZITADEL_TOKEN_URL", long = "zitadel-token-url")] - pub token_url: Option, -} - -impl TryFrom for OAuth { - type Error = anyhow::Error; - - fn try_from(value: AuthClap) -> Result { - match value.engine { - AuthEngine::Noop => Ok(OAuth::new_noop()), - AuthEngine::Zitadel => Ok(OAuth::from(ZitadelConfig::try_from(value.zitadel)?)), - } - } -} - -impl AuthClap { - pub fn merge(&mut self, config: AuthConfigFile) -> &mut Self { - if let Some(zitadel) = config.zitadel { - if let Some(auth_url) = zitadel.auth_url { - if let Some(_) = self.zitadel.auth_url { - _ = self.zitadel.auth_url.replace(auth_url); - } - } - if let Some(client_id) = zitadel.client_id { - if let Some(_) = self.zitadel.client_id { - _ = self.zitadel.client_id.replace(client_id); - } - } - if let Some(client_secret) = zitadel.client_secret { - if let Some(_) = self.zitadel.client_secret { - _ = self.zitadel.client_secret.replace(client_secret); - } - } - if let Some(redirect_url) = zitadel.redirect_url { - if let Some(_) = self.zitadel.redirect_url { - _ = self.zitadel.redirect_url.replace(redirect_url); - } - } - if let Some(authority_url) = zitadel.authority_url { - if let Some(_) = self.zitadel.authority_url { - _ = self.zitadel.authority_url.replace(authority_url); - } - } - if let Some(token_url) = zitadel.token_url { - if let Some(_) = self.zitadel.token_url { - _ = self.zitadel.token_url.replace(token_url); - } - } - } - - self - } -} - -#[cfg(test)] -mod test { - use crate::{ - session::{PostgresqlSessionClap, SessionClap}, - AuthClap, AuthEngine, SessionBackend, ZitadelClap, - }; - use clap::Parser; - use pretty_assertions::assert_eq; - - #[derive(Parser)] - #[command(author, version, about, long_about = None)] - pub struct Cli { - #[command(subcommand)] - command: Commands, - } - - #[derive(clap::Subcommand, Clone, Debug, Eq, PartialEq)] - pub enum Commands { - One { - #[clap(flatten)] - options: AuthClap, - }, - } - - #[test] - fn test_command_parse_as_default_noop() { - let cli: Cli = Cli::parse_from(&["base", "one"]); - - assert_eq!( - cli.command, - Commands::One { - options: AuthClap { - engine: AuthEngine::Noop, - zitadel: ZitadelClap { - auth_url: None, - client_id: None, - client_secret: None, - redirect_url: None, - token_url: None, - authority_url: None, - }, - session_backend: SessionBackend::InMemory, - session: SessionClap { - postgresql: PostgresqlSessionClap { conn: None } - } - } - } - ); - } - - #[test] - fn test_command_parse_as_noop() { - let cli: Cli = Cli::parse_from(&["base", "one", "--auth-engine", "noop"]); - - assert_eq!( - cli.command, - Commands::One { - options: AuthClap { - engine: AuthEngine::Noop, - zitadel: ZitadelClap { - auth_url: None, - client_id: None, - client_secret: None, - redirect_url: None, - token_url: None, - authority_url: None, - }, - session_backend: crate::SessionBackend::InMemory, - session: crate::SessionClap { - postgresql: PostgresqlSessionClap { conn: None } - } - } - } - ); - } - - #[test] - fn test_command_parse_as_zitadel() { - let cli: Cli = Cli::parse_from(&[ - "base", - "one", - "--auth-engine=zitadel", - "--zitadel-client-id=something", - "--zitadel-client-secret=something", - "--zitadel-auth-url=https://something", - "--zitadel-redirect-url=https://something", - "--zitadel-token-url=https://something", - "--zitadel-authority-url=https://something", - ]); - - assert_eq!( - cli.command, - Commands::One { - options: AuthClap { - engine: AuthEngine::Zitadel, - zitadel: ZitadelClap { - auth_url: Some("https://something".into()), - client_id: Some("something".into()), - client_secret: Some("something".into()), - redirect_url: Some("https://something".into()), - token_url: Some("https://something".into()), - authority_url: Some("https://something".into()), - }, - session_backend: crate::SessionBackend::InMemory, - session: crate::SessionClap { - postgresql: PostgresqlSessionClap { conn: None } - } - }, - } - ); - } -} diff --git a/crates/como_auth/src/oauth.rs b/crates/como_auth/src/oauth.rs deleted file mode 100644 index a393caf..0000000 --- a/crates/como_auth/src/oauth.rs +++ /dev/null @@ -1,288 +0,0 @@ -use async_trait::async_trait; -use oauth2::reqwest::async_http_client; -use oauth2::url::Url; -use oauth2::{basic::BasicClient, AuthUrl, ClientId, ClientSecret, RedirectUrl, TokenUrl}; -use oauth2::{AuthorizationCode, CsrfToken, Scope, TokenResponse}; -use std::ops::Deref; -use std::sync::Arc; - -use crate::ZitadelClap; - -#[async_trait] -pub trait OAuthClient { - async fn get_token(&self) -> anyhow::Result<()>; - async fn authorize_url(&self) -> anyhow::Result; - async fn exchange(&self, code: &str) -> anyhow::Result; -} - -pub struct OAuth(Arc); - -impl OAuth { - pub fn new_zitadel(config: ZitadelConfig) -> Self { - Self(Arc::new(ZitadelOAuthClient::from(config))) - } - pub fn new_noop() -> Self { - Self(Arc::new(NoopOAuthClient {})) - } -} - -impl Deref for OAuth { - type Target = Arc; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl From for OAuth { - fn from(value: ZitadelConfig) -> Self { - Self::new_zitadel(value) - } -} - -// -- Noop -#[derive(clap::Args, Clone)] -pub struct NoopOAuthClient; -#[async_trait] -impl OAuthClient for NoopOAuthClient { - async fn get_token(&self) -> anyhow::Result<()> { - Ok(()) - } - async fn authorize_url(&self) -> anyhow::Result { - Ok(Url::parse("http://localhost:3000/auth/zitadel").unwrap()) - } - - async fn exchange(&self, _code: &str) -> anyhow::Result { - Ok(String::new()) - } -} - -// -- Zitadel - -#[derive(Clone)] -pub struct ZitadelConfig { - auth_url: String, - client_id: String, - client_secret: String, - redirect_url: String, - token_url: String, - authority_url: String, -} - -pub struct ZitadelOAuthClient { - client: BasicClient, -} - -impl ZitadelOAuthClient { - pub fn new( - client_id: impl Into, - client_secret: impl Into, - redirect_url: impl Into, - auth_url: impl Into, - token_url: impl Into, - authority_url: impl Into, - ) -> Self { - Self { - client: Self::oauth_client(ZitadelConfig { - client_id: client_id.into(), - client_secret: client_secret.into(), - redirect_url: redirect_url.into(), - auth_url: auth_url.into(), - token_url: token_url.into(), - authority_url: authority_url.into(), - }), - } - } - - fn oauth_client(config: ZitadelConfig) -> BasicClient { - BasicClient::new( - ClientId::new(config.client_id), - Some(ClientSecret::new(config.client_secret)), - AuthUrl::new(config.auth_url).unwrap(), - Some(TokenUrl::new(config.token_url).unwrap()), - ) - .set_redirect_uri(RedirectUrl::new(config.redirect_url).unwrap()) - } -} - -impl From for ZitadelOAuthClient { - fn from(value: ZitadelConfig) -> Self { - Self::new( - value.client_id, - value.client_secret, - value.redirect_url, - value.auth_url, - value.token_url, - value.authority_url, - ) - } -} - -impl TryFrom for ZitadelConfig { - type Error = anyhow::Error; - - fn try_from(value: ZitadelClap) -> Result { - Ok(Self { - auth_url: value - .auth_url - .ok_or(anyhow::anyhow!("auth_url was not set"))?, - client_id: value - .client_id - .ok_or(anyhow::anyhow!("client_id was not set"))?, - client_secret: value - .client_secret - .ok_or(anyhow::anyhow!("client_secret was not set"))?, - redirect_url: value - .redirect_url - .ok_or(anyhow::anyhow!("redirect_url was not set"))?, - token_url: value - .token_url - .ok_or(anyhow::anyhow!("token_url was not set"))?, - authority_url: value - .authority_url - .ok_or(anyhow::anyhow!("authority_url was not set"))?, - }) - } -} - -#[async_trait] -impl OAuthClient for ZitadelOAuthClient { - async fn get_token(&self) -> anyhow::Result<()> { - Ok(()) - } - async fn authorize_url(&self) -> anyhow::Result { - let (auth_url, _csrf_token) = self - .client - .authorize_url(CsrfToken::new_random) - .add_scope(Scope::new("identify".to_string())) - .add_scope(Scope::new("openid".to_string())) - .url(); - - Ok(auth_url) - } - - async fn exchange(&self, code: &str) -> anyhow::Result { - let token = self - .client - .exchange_code(AuthorizationCode::new(code.to_string())) - .request_async(async_http_client) - .await?; - - Ok(token.access_token().secret().clone()) - } -} - -#[cfg(test)] -mod tests { - use crate::ZitadelClap; - use clap::Parser; - use sealed_test::prelude::*; - - #[derive(Parser)] - #[command(author, version, about, long_about = None)] - pub struct Cli { - #[clap(flatten)] - options: ZitadelClap, - } - - #[derive(Parser, Debug)] - #[command(author, version, about, long_about = None)] - pub struct CliSubCommand { - #[command(subcommand)] - command: Commands, - } - - #[derive(clap::Subcommand, Clone, Debug, Eq, PartialEq)] - pub enum Commands { - One { - #[clap(flatten)] - options: ZitadelClap, - }, - } - - #[tokio::test] - async fn test_parse_clap_zitadel() { - let cli: Cli = Cli::parse_from(&[ - "base", - "--zitadel-client-id=something", - "--zitadel-client-secret=something", - "--zitadel-auth-url=https://something", - "--zitadel-redirect-url=https://something", - "--zitadel-token-url=https://something", - "--zitadel-authority-url=https://something", - ]); - println!("{:?}", cli.options); - - pretty_assertions::assert_eq!( - cli.options, - ZitadelClap { - auth_url: Some("https://something".into()), - client_id: Some("something".into()), - client_secret: Some("something".into()), - redirect_url: Some("https://something".into()), - token_url: Some("https://something".into()), - authority_url: Some("https://something".into()), - } - ); - } - - #[test] - fn test_parse_clap_zitadel_fails_require_all() { - let cli = CliSubCommand::try_parse_from(&[ - "base", - "one", - // "--zitadel-client-id=something", // We want to trigger missing variable - "--zitadel-client-secret=something", - "--zitadel-auth-url=https://something", - "--zitadel-redirect-url=https://something", - "--zitadel-token-url=https://something", - "--zitadel-authority-url=https://something", - ]); - - pretty_assertions::assert_eq!(cli.is_err(), true); - } - - #[sealed_test] - fn test_parse_clap_env_zitadel() { - std::env::set_var("ZITADEL_CLIENT_ID", "something"); - std::env::set_var("ZITADEL_CLIENT_SECRET", "something"); - std::env::set_var("ZITADEL_AUTH_URL", "https://something"); - std::env::set_var("ZITADEL_REDIRECT_URL", "https://something"); - std::env::set_var("ZITADEL_TOKEN_URL", "https://something"); - std::env::set_var("ZITADEL_AUTHORITY_URL", "https://something"); - - let cli = CliSubCommand::parse_from(&["base", "one"]); - - pretty_assertions::assert_eq!( - cli.command, - Commands::One { - options: ZitadelClap { - auth_url: Some("https://something".into()), - client_id: Some("something".into()), - client_secret: Some("something".into()), - redirect_url: Some("https://something".into()), - token_url: Some("https://something".into()), - authority_url: Some("https://something".into()), - } - } - ); - } - #[test] - fn test_parse_clap_defaults_to_noop() { - let cli = CliSubCommand::parse_from(&["base", "one"]); - - pretty_assertions::assert_eq!( - cli.command, - Commands::One { - options: ZitadelClap { - auth_url: None, - client_id: None, - client_secret: None, - redirect_url: None, - token_url: None, - authority_url: None, - }, - } - ); - } -} diff --git a/crates/como_auth/src/session.rs b/crates/como_auth/src/session.rs deleted file mode 100644 index 596a1d9..0000000 --- a/crates/como_auth/src/session.rs +++ /dev/null @@ -1,120 +0,0 @@ -use std::{ops::Deref, sync::Arc}; - -use async_sqlx_session::PostgresSessionStore; -use async_trait::async_trait; -use axum_sessions::async_session::{Session as AxumSession, SessionStore as AxumSessionStore}; -use serde::{Deserialize, Serialize}; - -use crate::{AuthClap, SessionBackend}; - -#[derive(clap::Args, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] -pub struct SessionClap { - #[clap(flatten)] - pub postgresql: PostgresqlSessionClap, -} - -#[derive(clap::Args, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] -pub struct PostgresqlSessionClap { - #[arg(env = "SESSION_POSTGRES_CONN", long = "session-postgres-conn")] - pub conn: Option, -} - -#[async_trait] -pub trait Session { - async fn insert_user(&self, id: &str, user_id: &str) -> anyhow::Result; - async fn get_user(&self, cookie: &str) -> anyhow::Result>; -} - -pub struct SessionService(Arc); -impl SessionService { - pub async fn new(config: &AuthClap) -> anyhow::Result { - match config.session_backend { - SessionBackend::InMemory => Ok(Self(Arc::new(InMemorySessionService {}))), - SessionBackend::Postgresql => { - let postgres_session = PostgresSessionStore::new( - config - .session - .postgresql - .conn - .as_ref() - .expect("SESSION_POSTGRES_CONN to be set"), - ) - .await?; - - Ok(Self(Arc::new(PostgresSessionService { - store: postgres_session, - }))) - } - } - } -} - -impl Deref for SessionService { - type Target = Arc; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -pub struct PostgresSessionService { - store: PostgresSessionStore, -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct User { - pub id: String, -} - -#[async_trait] -impl Session for PostgresSessionService { - async fn insert_user(&self, _id: &str, user_id: &str) -> anyhow::Result { - let mut session = AxumSession::new(); - session.insert( - "user", - User { - id: user_id.to_string(), - }, - )?; - - let cookie = self - .store - .store_session(session) - .await? - .ok_or(anyhow::anyhow!("failed to store session"))?; - - Ok(cookie) - } - async fn get_user(&self, cookie: &str) -> anyhow::Result> { - if let Some(session) = self.store.load_session(cookie.to_string()).await.unwrap() { - if let Some(user) = session.get::("user") { - tracing::debug!( - "UserFromSession: session decoded success, user_id={:?}", - user.id - ); - Ok(Some(user.id)) - } else { - Ok(None) - } - } else { - tracing::debug!( - "UserIdFromSession: err session not exists in store, {}", - cookie - ); - Err(anyhow::anyhow!("No session found for cookie")) - } - } -} - -pub struct InMemorySessionService {} - -#[async_trait] -impl Session for InMemorySessionService { - async fn insert_user(&self, _id: &str, _user_id: &str) -> anyhow::Result { - todo!() - } - - async fn get_user(&self, _cookie: &str) -> anyhow::Result> { - todo!() - } -} diff --git a/crates/como_bin/Cargo.toml b/crates/como_bin/Cargo.toml deleted file mode 100644 index 6c9b62e..0000000 --- a/crates/como_bin/Cargo.toml +++ /dev/null @@ -1,23 +0,0 @@ -[package] -name = "como_bin" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -como_gql.workspace = true -como_core.workspace = true -como_domain.workspace = true -como_infrastructure.workspace = true -como_api.workspace = true - - -axum.workspace = true -serde_json.workspace = true -tokio.workspace = true -anyhow.workspace = true -dotenv.workspace = true -tracing.workspace = true -tracing-subscriber.workspace = true -clap.workspace = true diff --git a/crates/como_bin/src/error.rs b/crates/como_bin/src/error.rs deleted file mode 100644 index f5f37e6..0000000 --- a/crates/como_bin/src/error.rs +++ /dev/null @@ -1,22 +0,0 @@ -use axum::{http::StatusCode, response::IntoResponse, Json}; -use serde_json::json; - -#[allow(dead_code)] -#[derive(Debug)] -pub enum AppError { - WrongCredentials, - InternalServerError, -} - -impl IntoResponse for AppError { - fn into_response(self) -> axum::response::Response { - let (status, err_msg) = match self { - Self::WrongCredentials => (StatusCode::BAD_REQUEST, "invalid credentials"), - Self::InternalServerError => ( - StatusCode::INTERNAL_SERVER_ERROR, - "something went wrong with your request", - ), - }; - (status, Json(json!({ "error": err_msg }))).into_response() - } -} diff --git a/crates/como_bin/src/main.rs b/crates/como_bin/src/main.rs deleted file mode 100644 index 469932a..0000000 --- a/crates/como_bin/src/main.rs +++ /dev/null @@ -1,41 +0,0 @@ -use std::sync::Arc; - -mod error; - -use clap::Parser; - -use anyhow::Context; - -use como_api::router::Api; -use como_infrastructure::{ - configs::AppConfig, database::ConnectionPoolManager, register::ServiceRegister, -}; - -use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; - -#[tokio::main] -async fn main() -> anyhow::Result<()> { - tracing::info!("Loading dotenv"); - dotenv::dotenv()?; - - let config = Arc::new(AppConfig::parse()); - - tracing_subscriber::registry() - .with(tracing_subscriber::EnvFilter::new(&config.rust_log)) - .with(tracing_subscriber::fmt::layer()) - .init(); - - let pool = ConnectionPoolManager::new_pool(&config.database_url, true).await?; - - let service_register = ServiceRegister::new(pool, config.clone()).await?; - - Api::new( - config.api_port, - &config.cors_origin, - service_register.clone(), - ) - .await - .context("could not initialize API")?; - - Ok(()) -} diff --git a/crates/como_core/Cargo.toml b/crates/como_core/Cargo.toml deleted file mode 100644 index 2d51d77..0000000 --- a/crates/como_core/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "como_core" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -como_domain.workspace = true - -async-trait.workspace = true -anyhow.workspace = true diff --git a/crates/como_core/report.json b/crates/como_core/report.json deleted file mode 100644 index a0ea548..0000000 --- a/crates/como_core/report.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version": 0, - "root_name": "Workspace", - "workspace_crates": {} -} \ No newline at end of file diff --git a/crates/como_core/src/items/mod.rs b/crates/como_core/src/items/mod.rs deleted file mode 100644 index 3dc518c..0000000 --- a/crates/como_core/src/items/mod.rs +++ /dev/null @@ -1,31 +0,0 @@ -use std::sync::Arc; - -use async_trait::async_trait; -use como_domain::{ - item::{ - queries::{GetItemQuery, GetItemsQuery}, - requests::{CreateItemDto, UpdateItemDto}, - responses::CreatedItemDto, - ItemDto, - }, - Context, -}; - -pub type DynItemService = Arc; - -#[async_trait] -pub trait ItemService { - async fn add_item( - &self, - context: &Context, - item: CreateItemDto, - ) -> anyhow::Result; - async fn get_item(&self, context: &Context, query: GetItemQuery) -> anyhow::Result; - async fn get_items( - &self, - context: &Context, - query: GetItemsQuery, - ) -> anyhow::Result>; - - async fn update_item(&self, context: &Context, item: UpdateItemDto) -> anyhow::Result; -} diff --git a/crates/como_core/src/lib.rs b/crates/como_core/src/lib.rs deleted file mode 100644 index e6c9402..0000000 --- a/crates/como_core/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod items; -pub mod projects; -pub mod users; diff --git a/crates/como_core/src/projects/mod.rs b/crates/como_core/src/projects/mod.rs deleted file mode 100644 index ecdba1c..0000000 --- a/crates/como_core/src/projects/mod.rs +++ /dev/null @@ -1,24 +0,0 @@ -use std::sync::Arc; - -use async_trait::async_trait; -use como_domain::{ - projects::{mutation::CreateProjectMutation, queries::GetProjectQuery, ProjectDto}, - Context, -}; - -pub type DynProjectService = Arc; - -#[async_trait] -pub trait ProjectService { - async fn get_project( - &self, - context: &Context, - query: GetProjectQuery, - ) -> anyhow::Result; - async fn get_projects(&self, context: &Context) -> anyhow::Result>; - async fn create_project( - &self, - context: &Context, - name: CreateProjectMutation, - ) -> anyhow::Result; -} diff --git a/crates/como_core/src/users/mod.rs b/crates/como_core/src/users/mod.rs deleted file mode 100644 index 4e18cc1..0000000 --- a/crates/como_core/src/users/mod.rs +++ /dev/null @@ -1,22 +0,0 @@ -use std::sync::Arc; - -use async_trait::async_trait; -use como_domain::Context; - -pub type DynUserService = Arc; - -#[async_trait] -pub trait UserService { - async fn add_user( - &self, - context: &Context, - username: String, - password: String, - ) -> anyhow::Result; - async fn validate_user( - &self, - context: &Context, - username: String, - password: String, - ) -> anyhow::Result>; -} diff --git a/crates/como_domain/Cargo.toml b/crates/como_domain/Cargo.toml deleted file mode 100644 index ede6ca8..0000000 --- a/crates/como_domain/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "como_domain" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -async-graphql.workspace = true -serde.workspace = true -serde_json.workspace = true -uuid.workspace = true diff --git a/crates/como_domain/src/common/mod.rs b/crates/como_domain/src/common/mod.rs deleted file mode 100644 index 9d3280d..0000000 --- a/crates/como_domain/src/common/mod.rs +++ /dev/null @@ -1,37 +0,0 @@ -pub mod user; - -use std::collections::BTreeMap; - -#[derive(Debug, Clone)] -pub struct Context { - values: BTreeMap, -} - -impl Context { - pub fn new() -> Self { - Self { - values: Default::default(), - } - } - - pub fn with_value(&self, key: impl Into, value: impl Into) -> Self { - let mut values = self.values.clone(); - - let _ = values.insert(key.into(), value.into()); - - Self { values } - } - - pub fn with_value_mut( - &mut self, - key: impl Into, - value: impl Into, - ) -> &mut Self { - self.values.insert(key.into(), value.into()); - self - } - - pub fn get(&self, key: impl AsRef) -> Option<&str> { - self.values.get(key.as_ref()).map(|s| s.as_str()) - } -} diff --git a/crates/como_domain/src/common/user.rs b/crates/como_domain/src/common/user.rs deleted file mode 100644 index f0e9556..0000000 --- a/crates/como_domain/src/common/user.rs +++ /dev/null @@ -1,23 +0,0 @@ -use crate::Context; - -pub trait ContextUserExt { - fn set_user_id(&self, user_id: impl Into) -> Context; - fn set_user_id_mut(&mut self, user_id: impl Into) -> &mut Context; - fn get_user_id(&self) -> Option; -} - -const USER_ID_KEY: &str = "user_id"; - -impl ContextUserExt for Context { - fn set_user_id(&self, user_id: impl Into) -> Context { - self.with_value(USER_ID_KEY, user_id) - } - - fn set_user_id_mut(&mut self, user_id: impl Into) -> &mut Context { - self.with_value_mut(USER_ID_KEY, user_id) - } - - fn get_user_id(&self) -> Option { - self.get(USER_ID_KEY).map(|s| s.to_string()) - } -} diff --git a/crates/como_domain/src/item/mod.rs b/crates/como_domain/src/item/mod.rs deleted file mode 100644 index 2d2a64b..0000000 --- a/crates/como_domain/src/item/mod.rs +++ /dev/null @@ -1,24 +0,0 @@ -pub mod queries; -pub mod requests; -pub mod responses; - -use async_graphql::{Enum, InputObject}; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq, Enum, Copy)] -pub enum ItemState { - Created, - Done, - Archived, - Deleted, -} - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct ItemDto { - pub id: Uuid, - pub title: String, - pub description: Option, - pub state: ItemState, - pub project_id: Uuid, -} diff --git a/crates/como_domain/src/item/queries.rs b/crates/como_domain/src/item/queries.rs deleted file mode 100644 index 1293480..0000000 --- a/crates/como_domain/src/item/queries.rs +++ /dev/null @@ -1,13 +0,0 @@ -use async_graphql::InputObject; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct GetItemQuery { - pub item_id: Uuid, -} - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct GetItemsQuery { - pub project_id: Uuid, -} diff --git a/crates/como_domain/src/item/requests.rs b/crates/como_domain/src/item/requests.rs deleted file mode 100644 index b1c731c..0000000 --- a/crates/como_domain/src/item/requests.rs +++ /dev/null @@ -1,21 +0,0 @@ -use async_graphql::InputObject; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -use super::ItemState; - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct CreateItemDto { - pub title: String, - pub description: Option, - pub project_id: Uuid, -} - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct UpdateItemDto { - pub id: Uuid, - pub title: Option, - pub description: Option, - pub state: Option, - pub project_id: Option, -} diff --git a/crates/como_domain/src/item/responses.rs b/crates/como_domain/src/item/responses.rs deleted file mode 100644 index 65f45a5..0000000 --- a/crates/como_domain/src/item/responses.rs +++ /dev/null @@ -1,3 +0,0 @@ -use super::ItemDto; - -pub type CreatedItemDto = ItemDto; diff --git a/crates/como_domain/src/lib.rs b/crates/como_domain/src/lib.rs deleted file mode 100644 index 03a8d0c..0000000 --- a/crates/como_domain/src/lib.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub mod common; -pub mod item; -pub mod projects; -pub mod users; - -pub use common::*; diff --git a/crates/como_domain/src/projects/mod.rs b/crates/como_domain/src/projects/mod.rs deleted file mode 100644 index c648179..0000000 --- a/crates/como_domain/src/projects/mod.rs +++ /dev/null @@ -1,17 +0,0 @@ -pub mod mutation; -pub mod queries; -pub mod requests; -pub mod responses; - -use async_graphql::{InputObject, SimpleObject}; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject, SimpleObject)] -pub struct ProjectDto { - pub id: Uuid, - pub name: String, - pub description: Option, - - pub user_id: String, -} diff --git a/crates/como_domain/src/projects/mutation.rs b/crates/como_domain/src/projects/mutation.rs deleted file mode 100644 index 65256fa..0000000 --- a/crates/como_domain/src/projects/mutation.rs +++ /dev/null @@ -1,8 +0,0 @@ -use async_graphql::InputObject; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct CreateProjectMutation { - pub name: String, - pub description: Option, -} diff --git a/crates/como_domain/src/projects/queries.rs b/crates/como_domain/src/projects/queries.rs deleted file mode 100644 index 90dc866..0000000 --- a/crates/como_domain/src/projects/queries.rs +++ /dev/null @@ -1,8 +0,0 @@ -use async_graphql::InputObject; -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, InputObject)] -pub struct GetProjectQuery { - pub project_id: Uuid, -} diff --git a/crates/como_domain/src/projects/requests.rs b/crates/como_domain/src/projects/requests.rs deleted file mode 100644 index 9e414b7..0000000 --- a/crates/como_domain/src/projects/requests.rs +++ /dev/null @@ -1,6 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize)] -pub struct CreateProjectDto { - pub name: String, -} diff --git a/crates/como_domain/src/projects/responses.rs b/crates/como_domain/src/projects/responses.rs deleted file mode 100644 index f12d9ff..0000000 --- a/crates/como_domain/src/projects/responses.rs +++ /dev/null @@ -1,3 +0,0 @@ -use super::ProjectDto; - -pub type CreatedProjectDto = ProjectDto; diff --git a/crates/como_domain/src/users/mod.rs b/crates/como_domain/src/users/mod.rs deleted file mode 100644 index c28c374..0000000 --- a/crates/como_domain/src/users/mod.rs +++ /dev/null @@ -1,17 +0,0 @@ -pub mod requests; -pub mod responses; - -use serde::{Deserialize, Serialize}; -use uuid::Uuid; - -#[derive(Serialize, Deserialize, Debug)] -pub struct UserDto { - pub id: Uuid, - pub username: String, - pub email: String, -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct User { - pub id: String, -} diff --git a/crates/como_domain/src/users/requests.rs b/crates/como_domain/src/users/requests.rs deleted file mode 100644 index 435df25..0000000 --- a/crates/como_domain/src/users/requests.rs +++ /dev/null @@ -1,8 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize)] -pub struct CreateUserDto { - pub username: String, - pub email: String, - pub password: String, -} diff --git a/crates/como_domain/src/users/responses.rs b/crates/como_domain/src/users/responses.rs deleted file mode 100644 index 025ad92..0000000 --- a/crates/como_domain/src/users/responses.rs +++ /dev/null @@ -1,3 +0,0 @@ -use super::UserDto; - -pub type UserCreatedDto = UserDto; diff --git a/crates/como_gql/Cargo.toml b/crates/como_gql/Cargo.toml deleted file mode 100644 index 1c1318b..0000000 --- a/crates/como_gql/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "como_gql" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -como_core.workspace = true -como_domain.workspace = true -como_infrastructure.workspace = true - -anyhow.workspace = true -async-trait.workspace = true -async-graphql.workspace = true -uuid.workspace = true diff --git a/crates/como_gql/src/graphql.rs b/crates/como_gql/src/graphql.rs deleted file mode 100644 index 7ac35a1..0000000 --- a/crates/como_gql/src/graphql.rs +++ /dev/null @@ -1,94 +0,0 @@ -use crate::common::*; -use crate::items::{CreatedItem, Item}; -use crate::projects::Project; -use async_graphql::{Context, EmptySubscription, Object, Schema}; -use como_domain::item::queries::{GetItemQuery, GetItemsQuery}; -use como_domain::item::requests::{CreateItemDto, UpdateItemDto}; -use como_domain::projects::mutation::CreateProjectMutation; -use como_domain::projects::queries::GetProjectQuery; -use como_domain::projects::ProjectDto; - -pub type ComoSchema = Schema; - -pub struct MutationRoot; - -#[Object] -impl MutationRoot { - async fn create_item( - &self, - ctx: &Context<'_>, - item: CreateItemDto, - ) -> anyhow::Result { - let created_item = item_service(ctx) - .add_item(get_domain_context(ctx), item) - .await?; - - Ok(CreatedItem { - id: created_item.id, - }) - } - - async fn create_project( - &self, - ctx: &Context<'_>, - request: CreateProjectMutation, - ) -> anyhow::Result { - let project = project_service(ctx) - .create_project(get_domain_context(ctx), request) - .await?; - - Ok(project) - } - - async fn update_item(&self, ctx: &Context<'_>, item: UpdateItemDto) -> anyhow::Result { - let updated_item = item_service(ctx) - .update_item(get_domain_context(ctx), item) - .await?; - - Ok(updated_item.into()) - } -} - -pub struct QueryRoot; - -#[Object] -impl QueryRoot { - async fn get_item(&self, ctx: &Context<'_>, query: GetItemQuery) -> anyhow::Result { - let item = item_service(ctx) - .get_item(get_domain_context(ctx), query) - .await?; - - Ok(Item::from(item)) - } - - async fn get_items( - &self, - ctx: &Context<'_>, - query: GetItemsQuery, - ) -> anyhow::Result> { - let items = item_service(ctx) - .get_items(get_domain_context(ctx), query) - .await?; - - Ok(items.iter().map(|i| Item::from(i.clone())).collect()) - } - - // Projects - async fn get_project( - &self, - ctx: &Context<'_>, - query: GetProjectQuery, - ) -> anyhow::Result { - project_service(ctx) - .get_project(get_domain_context(ctx), query) - .await - .map(|p| p.into()) - } - - async fn get_projects(&self, ctx: &Context<'_>) -> anyhow::Result> { - project_service(ctx) - .get_projects(get_domain_context(ctx)) - .await - .map(|p| p.into_iter().map(|p| p.into()).collect()) - } -} diff --git a/crates/como_gql/src/items.rs b/crates/como_gql/src/items.rs deleted file mode 100644 index b71cdc9..0000000 --- a/crates/como_gql/src/items.rs +++ /dev/null @@ -1,80 +0,0 @@ -use crate::common::*; -use async_graphql::{Context, Object}; -use como_domain::{ - item::{queries::GetItemQuery, ItemDto, ItemState}, - projects::queries::GetProjectQuery, -}; -use uuid::Uuid; - -use crate::projects::Project; - -pub struct CreatedItem { - pub id: Uuid, -} - -#[Object] -impl CreatedItem { - pub async fn item(&self, ctx: &Context<'_>) -> anyhow::Result { - let item = item_service(ctx) - .get_item(get_domain_context(ctx), GetItemQuery { item_id: self.id }) - .await?; - - Ok(item.into()) - } -} - -pub struct Item { - pub id: Uuid, - pub title: String, - pub description: Option, - pub state: ItemState, - pub project_id: Uuid, -} - -#[Object] -impl Item { - pub async fn id(&self, _ctx: &Context<'_>) -> anyhow::Result { - return Ok(self.id); - } - - pub async fn title(&self, _ctx: &Context<'_>) -> anyhow::Result { - return Ok(self.title.clone()); - } - - pub async fn description(&self, _ctx: &Context<'_>) -> anyhow::Result> { - return Ok(self.description.clone()); - } - - pub async fn state(&self, _ctx: &Context<'_>) -> anyhow::Result { - return Ok(self.state); - } - - pub async fn project(&self, ctx: &Context<'_>) -> anyhow::Result { - let project = project_service(ctx) - .get_project( - get_domain_context(ctx), - GetProjectQuery { - project_id: self.project_id, - }, - ) - .await?; - - Ok(project.into()) - } - - pub async fn project_id(&self, _ctx: &Context<'_>) -> anyhow::Result { - return Ok(self.project_id); - } -} - -impl From for Item { - fn from(dto: ItemDto) -> Self { - Self { - id: dto.id, - title: dto.title, - description: dto.description, - state: dto.state, - project_id: dto.project_id, - } - } -} diff --git a/crates/como_gql/src/lib.rs b/crates/como_gql/src/lib.rs deleted file mode 100644 index b36a626..0000000 --- a/crates/como_gql/src/lib.rs +++ /dev/null @@ -1,33 +0,0 @@ -pub mod graphql; -mod items; -mod projects; - -pub mod common { - use async_graphql::Context; - use como_core::items::DynItemService; - use como_core::projects::DynProjectService; - use como_infrastructure::register::ServiceRegister; - - #[inline(always)] - pub(crate) fn get_domain_context<'a>(ctx: &Context<'a>) -> &'a como_domain::Context { - ctx.data_unchecked::() - } - - #[allow(dead_code)] - #[inline(always)] - pub(crate) fn get_service_register<'a>(ctx: &Context<'a>) -> &'a ServiceRegister { - ctx.data_unchecked::() - } - - #[inline(always)] - pub(crate) fn project_service<'a>(ctx: &Context<'a>) -> DynProjectService { - ctx.data_unchecked::() - .project_service - .clone() - } - - #[inline(always)] - pub(crate) fn item_service<'a>(ctx: &Context<'a>) -> DynItemService { - ctx.data_unchecked::().item_service.clone() - } -} diff --git a/crates/como_gql/src/projects.rs b/crates/como_gql/src/projects.rs deleted file mode 100644 index 424895b..0000000 --- a/crates/como_gql/src/projects.rs +++ /dev/null @@ -1,48 +0,0 @@ -use crate::common::*; -use async_graphql::{Context, Object}; -use como_domain::projects::ProjectDto; - -use uuid::Uuid; - -use crate::items::Item; - -pub struct Project { - pub id: Uuid, - pub name: String, -} - -#[Object] -impl Project { - async fn id(&self) -> &Uuid { - &self.id - } - - async fn name(&self) -> &String { - &self.name - } - - async fn items(&self, ctx: &Context<'_>) -> anyhow::Result> { - let items = item_service(ctx) - .get_items( - get_domain_context(ctx), - como_domain::item::queries::GetItemsQuery { - project_id: self.id, - }, - ) - .await? - .iter() - .map(|i| Item::from(i.clone())) - .collect::>(); - - Ok(items) - } -} - -impl From for Project { - fn from(dto: ProjectDto) -> Self { - Self { - id: dto.id, - name: dto.name, - } - } -} diff --git a/crates/como_infrastructure/Cargo.toml b/crates/como_infrastructure/Cargo.toml deleted file mode 100644 index a0ddc0b..0000000 --- a/crates/como_infrastructure/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "como_infrastructure" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -como_core.workspace = true -como_domain.workspace = true -como_auth.workspace = true - -axum.workspace = true -async-trait.workspace = true -uuid.workspace = true -anyhow.workspace = true -sqlx.workspace = true -chrono.workspace = true -serde_json.workspace = true - -async-sqlx-session.workspace = true - -tokio.workspace = true -clap.workspace = true -tracing.workspace = true -argon2.workspace = true -rand_core.workspace = true diff --git a/crates/como_infrastructure/build.rs b/crates/como_infrastructure/build.rs deleted file mode 100644 index 0fb3776..0000000 --- a/crates/como_infrastructure/build.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn main() { - println!("cargo:rustc-env=SQLX_OFFLINE_DIR='./.sqlx'"); - // When building in docs.rs, we want to set SQLX_OFFLINE mode to true - if std::env::var_os("DOCS_RS").is_some() { - println!("cargo:rustc-env=SQLX_OFFLINE=true"); - } else if std::env::var_os("DOCKER_BUILD").is_some() { - println!("cargo:rustc-env=SQLX_OFFLINE=true"); - } -} diff --git a/crates/como_infrastructure/migrations/20220808220223_initial_migration.sql b/crates/como_infrastructure/migrations/20220808220223_initial_migration.sql deleted file mode 100644 index 73fa09f..0000000 --- a/crates/como_infrastructure/migrations/20220808220223_initial_migration.sql +++ /dev/null @@ -1,8 +0,0 @@ --- Add migration script here -CREATE TABLE IF NOT EXISTS users ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - username varchar not null, - password_hash varchar not null -); - -CREATE unique index users_username_idx on users(username) diff --git a/crates/como_infrastructure/migrations/20230528154039_with-project.sql b/crates/como_infrastructure/migrations/20230528154039_with-project.sql deleted file mode 100644 index 7322c6f..0000000 --- a/crates/como_infrastructure/migrations/20230528154039_with-project.sql +++ /dev/null @@ -1,10 +0,0 @@ --- Add migration script here - -CREATE TABLE IF NOT EXISTS projects ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - name varchar not null, - description varchar default null, - user_id varchar not null, - created_at timestamp not null, - updated_at timestamp not null -); diff --git a/crates/como_infrastructure/migrations/20230603152353_items.sql b/crates/como_infrastructure/migrations/20230603152353_items.sql deleted file mode 100644 index a5568be..0000000 --- a/crates/como_infrastructure/migrations/20230603152353_items.sql +++ /dev/null @@ -1,17 +0,0 @@ --- Add migration script here - -create table if not exists items ( - id UUID PRIMARY KEY DEFAULT gen_random_uuid(), - title varchar not null, - description varchar default null, - state integer not null, - user_id varchar not null, - project_id UUID not null, - created_at timestamp not null, - updated_at timestamp not null, - CONSTRAINT fk_project - FOREIGN KEY(project_id) - REFERENCES projects(id) - ON DELETE CASCADE -) - diff --git a/crates/como_infrastructure/migrations/20230604084033_alter_state_string.sql b/crates/como_infrastructure/migrations/20230604084033_alter_state_string.sql deleted file mode 100644 index 8d3e85a..0000000 --- a/crates/como_infrastructure/migrations/20230604084033_alter_state_string.sql +++ /dev/null @@ -1,4 +0,0 @@ --- Add migration script here - -ALTER TABLE items ALTER COLUMN state TYPE varchar(255); - diff --git a/crates/como_infrastructure/sqlx-data.json b/crates/como_infrastructure/sqlx-data.json deleted file mode 100644 index 72c98b7..0000000 --- a/crates/como_infrastructure/sqlx-data.json +++ /dev/null @@ -1,346 +0,0 @@ -{ - "db": "PostgreSQL", - "05d0a7901f0481d7443f125655df26eeacd63f2b023723a0c09c662617e0baf5": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "title", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "description", - "ordinal": 2, - "type_info": "Varchar" - }, - { - "name": "state", - "ordinal": 3, - "type_info": "Varchar" - }, - { - "name": "project_id", - "ordinal": 4, - "type_info": "Uuid" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - } - }, - "query": "\n SELECT id, title, description, state, project_id\n FROM items\n WHERE id = $1 AND user_id = $2\n " - }, - "3b4484c5ccfd4dcb887c4e978fe6e45d4c9ecc2a73909be207dced79ddf17d87": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - } - ], - "nullable": [ - false - ], - "parameters": { - "Left": [ - "Varchar", - "Varchar" - ] - } - }, - "query": "\n INSERT INTO users (username, password_hash) \n VALUES ( $1, $2 ) \n RETURNING id\n " - }, - "4ec32ebd0ee991cec625d9de51de0d3e0ddfc8afda0568327fa9c818bde08e1f": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - } - ], - "nullable": [ - false - ], - "parameters": { - "Left": [ - "Uuid", - "Varchar", - "Varchar", - "Varchar", - "Timestamp", - "Timestamp" - ] - } - }, - "query": "\n INSERT INTO projects (id, name, description, user_id, created_at, updated_at)\n VALUES ($1, $2, $3, $4, $5, $6)\n RETURNING id\n " - }, - "7901e81b1f1f08f0c7e72a967a8116efb62f40d99f80900f1e56cd13ad4f6bb2": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "title", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "description", - "ordinal": 2, - "type_info": "Varchar" - }, - { - "name": "state", - "ordinal": 3, - "type_info": "Varchar" - }, - { - "name": "project_id", - "ordinal": 4, - "type_info": "Uuid" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Left": [ - "Uuid", - "Varchar", - "Varchar", - "Varchar", - "Uuid", - "Varchar" - ] - } - }, - "query": "\n INSERT INTO items (id, title, description, state, project_id, user_id, created_at, updated_at)\n VALUES ($1, $2, $3, $4, $5, $6, now(), now())\n RETURNING id, title, description, state, project_id\n " - }, - "a188dc748025cf3311820d16002b111a75f571d18f44f54b730ac14e9b2e10ea": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "name", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "description", - "ordinal": 2, - "type_info": "Varchar" - }, - { - "name": "user_id", - "ordinal": 3, - "type_info": "Varchar" - } - ], - "nullable": [ - false, - false, - true, - false - ], - "parameters": { - "Left": [ - "Uuid", - "Text" - ] - } - }, - "query": "\n SELECT id, name, description, user_id\n FROM projects\n WHERE id = $1 and user_id = $2\n " - }, - "b930a7123d22d543e4d8ed70a1bc10477362127969ceca9653e445f26670003a": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "name", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "description", - "ordinal": 2, - "type_info": "Varchar" - }, - { - "name": "user_id", - "ordinal": 3, - "type_info": "Varchar" - } - ], - "nullable": [ - false, - false, - true, - false - ], - "parameters": { - "Left": [ - "Text" - ] - } - }, - "query": "\n SELECT id, name, description, user_id\n FROM projects\n WHERE user_id = $1\n LIMIT 500\n " - }, - "bacf3c8a2f302d50991483fa36a06965c3536c2ef3837c19c6e6361eff312848": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "title", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "description", - "ordinal": 2, - "type_info": "Varchar" - }, - { - "name": "state", - "ordinal": 3, - "type_info": "Varchar" - }, - { - "name": "project_id", - "ordinal": 4, - "type_info": "Uuid" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Left": [ - "Varchar", - "Varchar", - "Varchar", - "Uuid", - "Uuid", - "Text" - ] - } - }, - "query": "\n UPDATE items\n SET \n title = COALESCE($1, title), \n description = COALESCE($2, description), \n state = COALESCE($3, state), \n project_id = COALESCE($4, project_id), \n updated_at = now()\n WHERE id = $5 AND user_id = $6\n RETURNING id, title, description, state, project_id\n " - }, - "bd2407ffb9637afcff3ffe1101e7c1920b8cf0be423ab0313d14acc9c76e0f93": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "title", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "description", - "ordinal": 2, - "type_info": "Varchar" - }, - { - "name": "state", - "ordinal": 3, - "type_info": "Varchar" - }, - { - "name": "project_id", - "ordinal": 4, - "type_info": "Uuid" - } - ], - "nullable": [ - false, - false, - true, - false, - false - ], - "parameters": { - "Left": [ - "Text", - "Uuid" - ] - } - }, - "query": "\n SELECT id, title, description, state, project_id\n FROM items\n WHERE user_id = $1 and project_id = $2\n LIMIT 500\n " - }, - "d3f222cf6c3d9816705426fdbed3b13cb575bb432eb1f33676c0b414e67aecaf": { - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Uuid" - }, - { - "name": "username", - "ordinal": 1, - "type_info": "Varchar" - }, - { - "name": "password_hash", - "ordinal": 2, - "type_info": "Varchar" - } - ], - "nullable": [ - false, - false, - false - ], - "parameters": { - "Left": [ - "Text" - ] - } - }, - "query": "\n SELECT * from users\n where username=$1\n " - } -} \ No newline at end of file diff --git a/crates/como_infrastructure/src/configs/mod.rs b/crates/como_infrastructure/src/configs/mod.rs deleted file mode 100644 index 620c779..0000000 --- a/crates/como_infrastructure/src/configs/mod.rs +++ /dev/null @@ -1,29 +0,0 @@ -use clap::ValueEnum; -use como_auth::AuthClap; - -#[derive(clap::Parser)] -pub struct AppConfig { - #[clap(long, env)] - pub database_url: String, - #[clap(long, env, default_value = "postgres")] - pub database_type: DatabaseType, - #[clap(long, env)] - pub rust_log: String, - #[clap(long, env, default_value = "3001")] - pub api_port: u32, - #[clap(long, env, default_value = "true")] - pub run_migrations: bool, - #[clap(long, env, default_value = "false")] - pub seed: bool, - #[clap(long, env)] - pub cors_origin: String, - - #[clap(flatten)] - pub auth: AuthClap, -} - -#[derive(Clone, Debug, ValueEnum)] -pub enum DatabaseType { - Postgres, - InMemory, -} diff --git a/crates/como_infrastructure/src/database/mod.rs b/crates/como_infrastructure/src/database/mod.rs deleted file mode 100644 index 0f4c699..0000000 --- a/crates/como_infrastructure/src/database/mod.rs +++ /dev/null @@ -1,33 +0,0 @@ -use anyhow::Context; -use sqlx::{postgres::PgPoolOptions, Pool, Postgres}; -use tracing::log::info; - -pub type ConnectionPool = Pool; - -pub struct ConnectionPoolManager; - -impl ConnectionPoolManager { - pub async fn new_pool( - connection_string: &str, - run_migrations: bool, - ) -> anyhow::Result { - info!("initializing the database connection pool"); - let pool = PgPoolOptions::new() - .max_connections(5) - .connect(connection_string) - .await - .context("error while initializing the database connection pool")?; - - if run_migrations { - info!("migrations enabled"); - info!("migrating database"); - - sqlx::migrate!() - .run(&pool) - .await - .context("error while running database migrations")?; - } - - Ok(pool) - } -} diff --git a/crates/como_infrastructure/src/lib.rs b/crates/como_infrastructure/src/lib.rs deleted file mode 100644 index 57c08eb..0000000 --- a/crates/como_infrastructure/src/lib.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod configs; -pub mod database; -pub mod register; -pub mod repositories; -pub mod services; diff --git a/crates/como_infrastructure/src/register.rs b/crates/como_infrastructure/src/register.rs deleted file mode 100644 index 7aa68e1..0000000 --- a/crates/como_infrastructure/src/register.rs +++ /dev/null @@ -1,74 +0,0 @@ -use std::sync::Arc; - -use async_sqlx_session::PostgresSessionStore; -use como_auth::{AuthService, SessionService}; -use como_core::{items::DynItemService, projects::DynProjectService, users::DynUserService}; -use tracing::log::info; - -use crate::{ - configs::{AppConfig, DatabaseType}, - database::ConnectionPool, - services::{ - item_service::{DefaultItemService, MemoryItemService}, - project_service::{DefaultProjectService, MemoryProjectService}, - user_service::DefaultUserService, - }, -}; - -#[derive(Clone)] -pub struct ServiceRegister { - pub item_service: DynItemService, - pub project_service: DynProjectService, - pub user_service: DynUserService, - pub session_store: PostgresSessionStore, - pub auth_service: AuthService, -} - -impl ServiceRegister { - pub async fn new(pool: ConnectionPool, config: Arc) -> anyhow::Result { - info!("creating services"); - - let session = SessionService::new(&config.auth).await?; - let auth = AuthService::new(&config.auth, session).await?; - - let s = match config.database_type { - DatabaseType::Postgres => { - let item_service = - Arc::new(DefaultItemService::new(pool.clone())) as DynItemService; - let project_service = - Arc::new(DefaultProjectService::new(pool.clone())) as DynProjectService; - let user_service = - Arc::new(DefaultUserService::new(pool.clone())) as DynUserService; - let store = PostgresSessionStore::new(&config.database_url).await?; - store.migrate().await?; - - Self { - item_service, - user_service, - project_service, - session_store: store, - auth_service: auth, - } - } - DatabaseType::InMemory => { - let item_service = Arc::new(MemoryItemService::new()) as DynItemService; - let project_service = Arc::new(MemoryProjectService::new()) as DynProjectService; - let user_service = - Arc::new(DefaultUserService::new(pool.clone())) as DynUserService; - let store = PostgresSessionStore::new(&config.database_url).await?; - store.migrate().await?; - - Self { - item_service, - user_service, - project_service, - session_store: store, - auth_service: auth, - } - } - }; - info!("services created succesfully"); - - Ok(s) - } -} diff --git a/crates/como_infrastructure/src/repositories/mod.rs b/crates/como_infrastructure/src/repositories/mod.rs deleted file mode 100644 index 8b13789..0000000 --- a/crates/como_infrastructure/src/repositories/mod.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/crates/como_infrastructure/src/services/item_service.rs b/crates/como_infrastructure/src/services/item_service.rs deleted file mode 100644 index 0b5e683..0000000 --- a/crates/como_infrastructure/src/services/item_service.rs +++ /dev/null @@ -1,221 +0,0 @@ -use crate::database::ConnectionPool; -use async_trait::async_trait; -use como_core::items::ItemService; -use como_domain::{ - item::{ - queries::{GetItemQuery, GetItemsQuery}, - requests::{CreateItemDto, UpdateItemDto}, - responses::CreatedItemDto, - ItemDto, - }, - user::ContextUserExt, - Context, -}; -use std::{ - collections::HashMap, - sync::{Arc, Mutex}, -}; -use uuid::Uuid; - -pub struct DefaultItemService { - pool: ConnectionPool, -} - -impl DefaultItemService { - pub fn new(connection_pool: ConnectionPool) -> Self { - Self { - pool: connection_pool, - } - } -} - -#[async_trait] -impl ItemService for DefaultItemService { - async fn add_item( - &self, - context: &Context, - item: CreateItemDto, - ) -> anyhow::Result { - let state = serde_json::to_string(&como_domain::item::ItemState::Created {})?; - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let rec = sqlx::query!( - r#" - INSERT INTO items (id, title, description, state, project_id, user_id, created_at, updated_at) - VALUES ($1, $2, $3, $4, $5, $6, now(), now()) - RETURNING id, title, description, state, project_id - "#, - Uuid::new_v4(), - item.title, - item.description, - state, - item.project_id, - user_id, - ) - .fetch_one(&self.pool) - .await?; - - Ok(CreatedItemDto { - id: rec.id, - title: rec.title, - description: rec.description, - state: como_domain::item::ItemState::Created {}, - project_id: rec.project_id, - }) - } - - async fn get_item(&self, context: &Context, query: GetItemQuery) -> anyhow::Result { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let rec = sqlx::query!( - r#" - SELECT id, title, description, state, project_id - FROM items - WHERE id = $1 AND user_id = $2 - "#, - query.item_id, - user_id, - ) - .fetch_one(&self.pool) - .await?; - - Ok(ItemDto { - id: rec.id, - title: rec.title, - description: rec.description, - state: serde_json::from_str(&rec.state)?, - project_id: rec.project_id, - }) - } - - async fn get_items( - &self, - context: &Context, - query: GetItemsQuery, - ) -> anyhow::Result> { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let recs = sqlx::query!( - r#" - SELECT id, title, description, state, project_id - FROM items - WHERE user_id = $1 and project_id = $2 - LIMIT 500 - "#, - user_id, - query.project_id, - ) - .fetch_all(&self.pool) - .await?; - - Ok(recs - .into_iter() - .map(|rec| ItemDto { - id: rec.id, - title: rec.title, - description: rec.description, - state: serde_json::from_str(&rec.state).unwrap(), - project_id: rec.project_id, - }) - .collect()) - } - - async fn update_item(&self, context: &Context, item: UpdateItemDto) -> anyhow::Result { - let state = item.state.map(|s| serde_json::to_string(&s)).transpose()?; - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let rec = sqlx::query!( - r#" - UPDATE items - SET - title = COALESCE($1, title), - description = COALESCE($2, description), - state = COALESCE($3, state), - project_id = COALESCE($4, project_id), - updated_at = now() - WHERE id = $5 AND user_id = $6 - RETURNING id, title, description, state, project_id - "#, - item.title, - item.description, - state, - item.project_id, - item.id, - user_id, - ) - .fetch_one(&self.pool) - .await?; - - Ok(ItemDto { - id: rec.id, - title: rec.title, - description: rec.description, - state: serde_json::from_str(&rec.state)?, - project_id: rec.project_id, - }) - } -} - -pub struct MemoryItemService { - item_store: Arc>>, -} - -impl MemoryItemService { - pub fn new() -> Self { - Self { - item_store: Arc::new(Mutex::new(HashMap::new())), - } - } -} - -#[async_trait] -impl ItemService for MemoryItemService { - async fn add_item( - &self, - _context: &Context, - create_item: CreateItemDto, - ) -> anyhow::Result { - if let Ok(mut item_store) = self.item_store.lock() { - let item = ItemDto { - id: Uuid::new_v4(), - title: create_item.title, - description: create_item.description, - state: como_domain::item::ItemState::Created, - project_id: create_item.project_id, - }; - - item_store.insert(item.id.to_string(), item.clone()); - - return Ok(item); - } else { - Err(anyhow::anyhow!("could not unlock item_store")) - } - } - - async fn get_item(&self, _context: &Context, query: GetItemQuery) -> anyhow::Result { - if let Ok(item_store) = self.item_store.lock() { - let item = item_store - .get(&query.item_id.to_string()) - .ok_or(anyhow::anyhow!("could not find item"))?; - return Ok(item.clone()); - } else { - Err(anyhow::anyhow!("could not unlock item_store")) - } - } - - async fn get_items( - &self, - _context: &Context, - _query: GetItemsQuery, - ) -> anyhow::Result> { - todo!() - } - - async fn update_item( - &self, - _context: &Context, - _item: UpdateItemDto, - ) -> anyhow::Result { - todo!() - } -} diff --git a/crates/como_infrastructure/src/services/mod.rs b/crates/como_infrastructure/src/services/mod.rs deleted file mode 100644 index 4e60f07..0000000 --- a/crates/como_infrastructure/src/services/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod item_service; -pub mod project_service; -pub mod user_service; diff --git a/crates/como_infrastructure/src/services/project_service.rs b/crates/como_infrastructure/src/services/project_service.rs deleted file mode 100644 index c8442bd..0000000 --- a/crates/como_infrastructure/src/services/project_service.rs +++ /dev/null @@ -1,167 +0,0 @@ -use std::{collections::HashMap, sync::Arc}; - -use axum::async_trait; -use como_core::projects::ProjectService; -use como_domain::{ - projects::{mutation::CreateProjectMutation, queries::GetProjectQuery, ProjectDto}, - user::ContextUserExt, - Context, -}; -use tokio::sync::Mutex; - -use crate::database::ConnectionPool; - -pub struct DefaultProjectService { - pool: ConnectionPool, -} - -impl DefaultProjectService { - pub fn new(connection_pool: ConnectionPool) -> Self { - Self { - pool: connection_pool, - } - } -} - -#[async_trait] -impl ProjectService for DefaultProjectService { - async fn get_project( - &self, - context: &Context, - query: GetProjectQuery, - ) -> anyhow::Result { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let rec = sqlx::query!( - r#" - SELECT id, name, description, user_id - FROM projects - WHERE id = $1 and user_id = $2 - "#, - query.project_id, - &user_id - ) - .fetch_one(&self.pool) - .await?; - - Ok(ProjectDto { - id: rec.id, - name: rec.name, - description: rec.description, - user_id: rec.user_id, - }) - } - async fn get_projects(&self, context: &Context) -> anyhow::Result> { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let recs = sqlx::query!( - r#" - SELECT id, name, description, user_id - FROM projects - WHERE user_id = $1 - LIMIT 500 - "#, - &user_id - ) - .fetch_all(&self.pool) - .await?; - - Ok(recs - .into_iter() - .map(|rec| ProjectDto { - id: rec.id, - name: rec.name, - description: rec.description, - user_id: rec.user_id, - }) - .collect::<_>()) - } - async fn create_project( - &self, - context: &Context, - request: CreateProjectMutation, - ) -> anyhow::Result { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let rec = sqlx::query!( - r#" - INSERT INTO projects (id, name, description, user_id, created_at, updated_at) - VALUES ($1, $2, $3, $4, $5, $6) - RETURNING id - "#, - uuid::Uuid::new_v4(), - request.name, - request.description, - &user_id, - chrono::Utc::now().naive_utc(), - chrono::Utc::now().naive_utc(), - ) - .fetch_one(&self.pool) - .await?; - - Ok(ProjectDto { - id: rec.id, - name: request.name, - description: request.description, - user_id: user_id.clone(), - }) - } -} - -pub struct MemoryProjectService { - project_store: Arc>>, -} - -impl MemoryProjectService { - pub fn new() -> Self { - Self { - project_store: Arc::new(Mutex::new(HashMap::new())), - } - } -} - -#[async_trait] -impl ProjectService for MemoryProjectService { - async fn get_project( - &self, - _context: &Context, - query: GetProjectQuery, - ) -> anyhow::Result { - let ps = self.project_store.lock().await; - Ok(ps - .get(&query.project_id.to_string()) - .ok_or(anyhow::anyhow!("could not find project"))? - .clone()) - } - async fn get_projects(&self, context: &Context) -> anyhow::Result> { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - Ok(self - .project_store - .lock() - .await - .values() - .filter(|p| p.user_id == user_id) - .cloned() - .collect::<_>()) - } - - async fn create_project( - &self, - context: &Context, - mutation: CreateProjectMutation, - ) -> anyhow::Result { - let user_id = context.get_user_id().ok_or(anyhow::anyhow!("no user id"))?; - - let mut ps = self.project_store.lock().await; - let project = ProjectDto { - id: uuid::Uuid::new_v4(), - name: mutation.name, - description: None, - user_id, - }; - - ps.insert(project.id.to_string(), project.clone()); - Ok(project) - } -} diff --git a/crates/como_infrastructure/src/services/user_service.rs b/crates/como_infrastructure/src/services/user_service.rs deleted file mode 100644 index 20f3c79..0000000 --- a/crates/como_infrastructure/src/services/user_service.rs +++ /dev/null @@ -1,95 +0,0 @@ -use argon2::{password_hash::SaltString, Argon2, PasswordHash, PasswordHasher, PasswordVerifier}; -use axum::async_trait; -use como_core::users::UserService; -use como_domain::Context; -use rand_core::OsRng; - -use crate::database::ConnectionPool; - -pub struct DefaultUserService { - pool: ConnectionPool, -} - -impl DefaultUserService { - pub fn new(pool: ConnectionPool) -> Self { - Self { pool } - } - - fn hash_password(&self, _context: &Context, password: String) -> anyhow::Result { - let salt = SaltString::generate(&mut OsRng); - let argon2 = Argon2::default(); - - let password_hash = argon2 - .hash_password(password.as_bytes(), &salt) - .map_err(|e| anyhow::anyhow!(e))? - .to_string(); - - Ok(password_hash) - } - - fn validate_password( - &self, - _context: &Context, - password: String, - hashed_password: String, - ) -> anyhow::Result { - let argon2 = Argon2::default(); - - let parsed_hash = PasswordHash::new(&hashed_password).map_err(|e| anyhow::anyhow!(e))?; - match argon2.verify_password(password.as_bytes(), &parsed_hash) { - Ok(..) => Ok(true), - Err(..) => Ok(false), - } - } -} - -#[async_trait] -impl UserService for DefaultUserService { - async fn add_user( - &self, - context: &Context, - username: String, - password: String, - ) -> anyhow::Result { - let hashed_password = self.hash_password(context, password)?; - - let rec = sqlx::query!( - r#" - INSERT INTO users (username, password_hash) - VALUES ( $1, $2 ) - RETURNING id - "#, - username, - hashed_password - ) - .fetch_one(&self.pool) - .await?; - - Ok(rec.id.to_string()) - } - - async fn validate_user( - &self, - context: &Context, - username: String, - password: String, - ) -> anyhow::Result> { - let rec = sqlx::query!( - r#" - SELECT * from users - where username=$1 - "#, - username, - ) - .fetch_optional(&self.pool) - .await?; - - match rec { - Some(user) => match self.validate_password(context, password, user.password_hash)? { - true => Ok(Some(user.id.to_string())), - false => Ok(None), - }, - None => Ok(None), - } - } -} diff --git a/crates/como_web/.gitignore b/crates/como_web/.gitignore deleted file mode 100644 index 760834d..0000000 --- a/crates/como_web/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -# Generated by Cargo -# will have compiled files and executables -/target/ -pkg - -# These are backup files generated by rustfmt -**/*.rs.bk - -# node e2e test tools and outputs -node_modules/ -test-results/ -end2end/playwright-report/ -playwright/.cache/ -.cuddle/ diff --git a/crates/como_web/Cargo.lock b/crates/como_web/Cargo.lock deleted file mode 100644 index 31dff4e..0000000 --- a/crates/como_web/Cargo.lock +++ /dev/null @@ -1,2980 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "ascii" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" - -[[package]] -name = "async-recursion" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "async-trait" -version = "0.1.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "attribute-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c94f43ede6f25dab1dea046bff84d85dea61bd49aba7a9011ad66c0d449077b" -dependencies = [ - "attribute-derive-macro", - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "attribute-derive-macro" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b409e2b2d2dc206d2c0ad3575a93f001ae21a1593e2d0c69b69c308e63f3b422" -dependencies = [ - "collection_literals", - "interpolator", - "manyhow", - "proc-macro-utils", - "proc-macro2", - "quote", - "quote-use", - "syn 2.0.38", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core", - "axum-macros", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http", - "http-body", - "hyper", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-macros" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdca6a10ecad987bda04e95606ef85a5417dcaac1a78455242d72e031e2b6b62" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "bumpalo" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" - -[[package]] -name = "cached" -version = "0.45.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eb5776f28a149524d1d8623035760b4454ec881e8cf3838fa8d7e1b11254b3" -dependencies = [ - "cached_proc_macro", - "cached_proc_macro_types", - "hashbrown 0.13.2", - "instant", - "once_cell", - "thiserror", -] - -[[package]] -name = "cached_proc_macro" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8245dd5f576a41c3b76247b54c15b0e43139ceeb4f732033e15be7c005176" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "cached_proc_macro_types" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" - -[[package]] -name = "camino" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets", -] - -[[package]] -name = "ciborium" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" - -[[package]] -name = "ciborium-ll" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "collection_literals" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186dce98367766de751c42c4f03970fc60fc012296e706ccbb9d5df9b6c1e271" - -[[package]] -name = "colored" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" -dependencies = [ - "is-terminal", - "lazy_static", - "windows-sys 0.48.0", -] - -[[package]] -name = "combine" -version = "3.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" -dependencies = [ - "ascii", - "byteorder", - "either", - "memchr", - "unreachable", -] - -[[package]] -name = "common_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6d59c71e7dc3af60f0af9db32364d96a16e9310f3f5db2b55ed642162dd35" - -[[package]] -name = "como_web" -version = "0.1.0" -dependencies = [ - "anyhow", - "axum", - "cfg-if", - "chrono", - "console_error_panic_hook", - "console_log", - "graphql_client", - "lazy_static", - "leptos", - "leptos_axum", - "leptos_dom", - "leptos_meta", - "leptos_router", - "log", - "reqwasm", - "serde", - "serde_json", - "simple_logger", - "thiserror", - "tokio", - "tower", - "tower-http", - "tracing", - "tracing-subscriber", - "uuid", - "wasm-bindgen", -] - -[[package]] -name = "config" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d379af7f68bfc21714c6c7dea883544201741d2ce8274bb12fa54f89507f52a7" -dependencies = [ - "async-trait", - "lazy_static", - "nom", - "pathdiff", - "serde", - "toml", -] - -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - -[[package]] -name = "console_log" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" -dependencies = [ - "log", - "web-sys", -] - -[[package]] -name = "const_format" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "deranged" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derive-where" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146398d62142a0f35248a608f17edf0dde57338354966d6e41d0eb2d16980ccb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "drain_filter_polyfill" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "669a445ee724c5c69b1b06fe0b63e70a1c84bc9bb7d9696cd4f4e3ec45050408" - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "encoding_rs" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "gimli" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" - -[[package]] -name = "gloo-net" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2899cb1a13be9020b010967adc6b2a8a343b6f1428b90238c9d53ca24decc6db" -dependencies = [ - "futures-channel", - "futures-core", - "futures-sink", - "gloo-utils", - "js-sys", - "pin-project", - "serde", - "serde_json", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "gloo-net" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" -dependencies = [ - "futures-channel", - "futures-core", - "futures-sink", - "gloo-utils", - "js-sys", - "pin-project", - "serde", - "serde_json", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "gloo-utils" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" -dependencies = [ - "js-sys", - "serde", - "serde_json", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "graphql-introspection-query" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2a4732cf5140bd6c082434494f785a19cfb566ab07d1382c3671f5812fed6d" -dependencies = [ - "serde", -] - -[[package]] -name = "graphql-parser" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" -dependencies = [ - "combine", - "thiserror", -] - -[[package]] -name = "graphql_client" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cdf7b487d864c2939b23902291a5041bc4a84418268f25fda1c8d4e15ad8fa" -dependencies = [ - "graphql_query_derive", - "reqwest", - "serde", - "serde_json", -] - -[[package]] -name = "graphql_client_codegen" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40f793251171991c4eb75bd84bc640afa8b68ff6907bc89d3b712a22f700506" -dependencies = [ - "graphql-introspection-query", - "graphql-parser", - "heck", - "lazy_static", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "graphql_query_derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00bda454f3d313f909298f626115092d348bc231025699f557b27e248475f48c" -dependencies = [ - "graphql_client_codegen", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "h2" -version = "0.3.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 1.9.3", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "half" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.6", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - -[[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" -dependencies = [ - "ahash 0.8.3", - "allocator-api2", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "html-escape" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1ad449764d627e22bfd7cd5e8868264fc9236e07c752972b4080cd351cb476" -dependencies = [ - "utf8-width", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.10", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" -dependencies = [ - "equivalent", - "hashbrown 0.14.2", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "interpolator" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71dd52191aae121e8611f1e8dc3e324dd0dd1dee1e6dd91d10ee07a3cfb4d9d8" - -[[package]] -name = "inventory" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1be380c410bf0595e94992a648ea89db4dd3f3354ba54af206fd2a68cf5ac8e" - -[[package]] -name = "ipnet" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" - -[[package]] -name = "is-terminal" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" -dependencies = [ - "hermit-abi", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "js-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "leptos" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2df7b113c4c1f416d306bc4cd52a04dec1c68ed734e4a1de2f70c30b828a6a5d" -dependencies = [ - "cfg-if", - "leptos_config", - "leptos_dom", - "leptos_macro", - "leptos_reactive", - "leptos_server", - "server_fn", - "tracing", - "typed-builder", - "typed-builder-macro", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "leptos_axum" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca9a6b39783fe0b9bd693614246399f44e1243ad85390041fd5a12270591cd9" -dependencies = [ - "axum", - "cfg-if", - "futures", - "http", - "hyper", - "leptos", - "leptos_integration_utils", - "leptos_meta", - "leptos_router", - "once_cell", - "parking_lot", - "serde_json", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "leptos_config" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601e61b5acfc2dd65400ea0897593543f4a1faaf9694b194f5e2747deba76b8c" -dependencies = [ - "config", - "regex", - "serde", - "thiserror", - "typed-builder", -] - -[[package]] -name = "leptos_dom" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e00a9a3b7b150c9aebb1dfdd1cb7c2ffb33a7a9075dcb891b3e214b645172e" -dependencies = [ - "async-recursion", - "cfg-if", - "drain_filter_polyfill", - "futures", - "getrandom", - "html-escape", - "indexmap 2.0.2", - "itertools 0.10.5", - "js-sys", - "leptos_reactive", - "once_cell", - "pad-adapter", - "paste", - "rustc-hash", - "serde", - "serde_json", - "server_fn", - "smallvec", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_hot_reload" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d02f51077512f548cc3274fa422d38155b1cf6c87ab908b5797cfcd5ddd6f3f1" -dependencies = [ - "anyhow", - "camino", - "indexmap 2.0.2", - "parking_lot", - "proc-macro2", - "quote", - "rstml", - "serde", - "syn 2.0.38", - "walkdir", -] - -[[package]] -name = "leptos_integration_utils" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4aea05d1c0ed9e928b63b08cde9dabd8c35e9179e90ce21d6b5df2463ff59d" -dependencies = [ - "futures", - "leptos", - "leptos_config", - "leptos_hot_reload", - "leptos_meta", - "tracing", -] - -[[package]] -name = "leptos_macro" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a15891cd424d9c9f3062a6fd1e4472cd3435359841c678fb6bc6eb87f19cf0" -dependencies = [ - "attribute-derive", - "cfg-if", - "convert_case", - "html-escape", - "itertools 0.11.0", - "leptos_hot_reload", - "prettyplease", - "proc-macro-error", - "proc-macro2", - "quote", - "rstml", - "server_fn_macro", - "syn 2.0.38", - "tracing", - "uuid", -] - -[[package]] -name = "leptos_meta" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0df56e3f78629049a969180fd44d4788c48e2633c789ba6a0da8f5d7e1c309" -dependencies = [ - "cfg-if", - "indexmap 2.0.2", - "leptos", - "tracing", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "leptos_reactive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b669db2e4c2c2435b77d534b41578ec986f012c21e1c2d3ef1042b5ab688f65" -dependencies = [ - "base64", - "cfg-if", - "futures", - "indexmap 2.0.2", - "js-sys", - "pin-project", - "rustc-hash", - "self_cell", - "serde", - "serde-wasm-bindgen", - "serde_json", - "slotmap", - "thiserror", - "tokio", - "tracing", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_router" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a46de957a50e428c95f4fc924251743a5bac3279967fce331157848eb8cf85a2" -dependencies = [ - "cached", - "cfg-if", - "common_macros", - "gloo-net 0.2.6", - "js-sys", - "lazy_static", - "leptos", - "leptos_integration_utils", - "leptos_meta", - "linear-map", - "lru", - "once_cell", - "percent-encoding", - "regex", - "serde", - "serde_json", - "serde_qs", - "thiserror", - "tracing", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "leptos_server" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c79b6c9c11b93e33d7f9976a45f03f78845c940f902ca4b9477db8a527dc14" -dependencies = [ - "inventory", - "lazy_static", - "leptos_macro", - "leptos_reactive", - "serde", - "server_fn", - "thiserror", - "tracing", -] - -[[package]] -name = "libc" -version = "0.2.149" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" - -[[package]] -name = "linear-map" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" -dependencies = [ - "serde", - "serde_test", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" - -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "lru" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" -dependencies = [ - "hashbrown 0.14.2", -] - -[[package]] -name = "manyhow" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516b76546495d933baa165075b95c0a15e8f7ef75e53f56b19b7144d80fd52bd" -dependencies = [ - "manyhow-macros", - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "manyhow-macros" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba072c0eadade3160232e70893311f1f8903974488096e2eb8e48caba2f0cf1" -dependencies = [ - "proc-macro-utils", - "proc-macro2", - "quote", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - -[[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.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.48.0", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[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 = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "object" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "openssl" -version = "0.10.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" -dependencies = [ - "bitflags 2.4.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "pad-adapter" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d80efc4b6721e8be2a10a5df21a30fa0b470f1539e53d8b4e6e75faf938b63" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.4.1", - "smallvec", - "windows-targets", -] - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pin-project" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "prettyplease" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" -dependencies = [ - "proc-macro2", - "syn 2.0.38", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f59e109e2f795a5070e69578c4dc101068139f74616778025ae1011d4cd41a8" -dependencies = [ - "proc-macro2", - "quote", - "smallvec", -] - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proc-macro2-diagnostics" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", - "version_check", - "yansi", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "quote-use" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b5abe3fe82fdeeb93f44d66a7b444dedf2e4827defb0a8e69c437b2de2ef94" -dependencies = [ - "quote", - "quote-use-macros", - "syn 2.0.38", -] - -[[package]] -name = "quote-use-macros" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ea44c7e20f16017a76a245bb42188517e13d16dcb1aa18044bc406cdc3f4af" -dependencies = [ - "derive-where", - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "regex" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.3", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "reqwasm" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b89870d729c501fa7a68c43bf4d938bbb3a8c156d333d90faa0e8b3e3212fb" -dependencies = [ - "gloo-net 0.1.0", -] - -[[package]] -name = "reqwest" -version = "0.11.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - -[[package]] -name = "rstml" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe542870b8f59dd45ad11d382e5339c9a1047cde059be136a7016095bbdefa77" -dependencies = [ - "proc-macro2", - "proc-macro2-diagnostics", - "quote", - "syn 2.0.38", - "syn_derive", - "thiserror", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustix" -version = "0.38.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ce50cb2e16c2903e30d1cbccfd8387a74b9d4c938b6a4c5ec6cc7556f7a8a0" -dependencies = [ - "bitflags 2.4.1", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "2.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "self_cell" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6" - -[[package]] -name = "serde" -version = "1.0.189" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-wasm-bindgen" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" -dependencies = [ - "js-sys", - "serde", - "wasm-bindgen", -] - -[[package]] -name = "serde_derive" -version = "1.0.189" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "serde_json" -version = "1.0.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" -dependencies = [ - "itoa", - "serde", -] - -[[package]] -name = "serde_qs" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" -dependencies = [ - "percent-encoding", - "serde", - "thiserror", -] - -[[package]] -name = "serde_test" -version = "1.0.176" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2f49ace1498612d14f7e0b8245519584db8299541dfe31a06374a828d620ab" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "server_fn" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0fe0ff97b5d8bc4097265a372ed1e38c54355d680c7e2298025fb5d5fc4896" -dependencies = [ - "ciborium", - "const_format", - "gloo-net 0.2.6", - "inventory", - "js-sys", - "lazy_static", - "once_cell", - "proc-macro2", - "quote", - "reqwest", - "serde", - "serde_json", - "serde_qs", - "server_fn_macro_default", - "syn 2.0.38", - "thiserror", - "xxhash-rust", -] - -[[package]] -name = "server_fn_macro" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49da76920fedc5ed480b35713aac633b2be5e505b91d4ccb75ce8ac6d166b321" -dependencies = [ - "const_format", - "proc-macro-error", - "proc-macro2", - "quote", - "serde", - "syn 2.0.38", - "xxhash-rust", -] - -[[package]] -name = "server_fn_macro_default" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55d29b811163792be818c26e36c73a6eaae0e41d115f8004b86ab9cf3d8cb2d6" -dependencies = [ - "server_fn_macro", - "syn 2.0.38", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "simple_logger" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2230cd5c29b815c9b699fb610b49a5ed65588f3509d9f0108be3a885da629333" -dependencies = [ - "colored", - "log", - "time", - "windows-sys 0.42.0", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slotmap" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "serde", - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tempfile" -version = "3.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys 0.48.0", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" -dependencies = [ - "deranged", - "itoa", - "libc", - "num_threads", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.5.5", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-macros" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "futures-util", - "hashbrown 0.12.3", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" -dependencies = [ - "bitflags 1.3.2", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "httpdate", - "mime", - "mime_guess", - "percent-encoding", - "pin-project-lite", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "typed-builder" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34085c17941e36627a879208083e25d357243812c30e7d7387c3b954f30ade16" -dependencies = [ - "typed-builder-macro", -] - -[[package]] -name = "typed-builder-macro" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", -] - -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -dependencies = [ - "void", -] - -[[package]] -name = "url" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf8-width" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1" - -[[package]] -name = "uuid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" -dependencies = [ - "getrandom", - "serde", - "wasm-bindgen", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" -dependencies = [ - "cfg-if", - "serde", - "serde_json", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.38", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.87" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" - -[[package]] -name = "web-sys" -version = "0.3.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "xxhash-rust" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b" - -[[package]] -name = "yansi" -version = "1.0.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" diff --git a/crates/como_web/Cargo.toml b/crates/como_web/Cargo.toml deleted file mode 100644 index fe69787..0000000 --- a/crates/como_web/Cargo.toml +++ /dev/null @@ -1,108 +0,0 @@ -[package] -name = "como_web" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = ["cdylib", "rlib"] - -[dependencies] -console_error_panic_hook = "0.1" -console_log = "0.2" -cfg-if = "1" -lazy_static = "1" -leptos = { version = "*", features = ["serde"] } -leptos_dom = { version = "*" } -leptos_meta = { version = "*" } -leptos_axum = { version = "*", optional = true } -leptos_router = { version = "*" } -log = "0.4" -simple_logger = "4" -thiserror = "1" -axum = { version = "0.6.1", optional = true } -tower = { version = "0.4.13", optional = true } -tower-http = { version = "0.3.4", features = ["fs"], optional = true } -tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"], optional = true } -wasm-bindgen = "0.2" -tracing-subscriber = { version = "0.3.16", optional = true, features = [ - "env-filter", -] } -tracing = { version = "0.1.37", features = ["log"], optional = true } -anyhow = { version = "1.0.71" } - -serde = { workspace = true } -chrono = { workspace = true } -uuid = { workspace = true, features = ["v4", "wasm-bindgen", "js", "serde"] } -graphql_client = { version = "0.13.0", features = ["reqwest"] } -reqwasm = "0.5.0" -serde_json = "1.0.96" - -[features] -hydrate = ["leptos/hydrate", "leptos_meta/hydrate", "leptos_router/hydrate"] -ssr = [ - "dep:axum", - "dep:tower", - "dep:tower-http", - "dep:tokio", - "leptos/ssr", - "leptos_meta/ssr", - "leptos_router/ssr", - "leptos_dom/ssr", - "dep:leptos_axum", - "dep:tracing-subscriber", - "dep:tracing", -] - -[package.metadata.cargo-all-features] -denylist = ["axum", "tower", "tower-http", "tokio", "sqlx", "leptos_axum"] -skip_feature_sets = [["ssr", "hydrate"]] - -[package.metadata.leptos] -# The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name -output-name = "como_web" -# The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup. -site-root = "target/site" -# The site-root relative folder where all compiled output (JS, WASM and CSS) is written -# Defaults to pkg -site-pkg-dir = "pkg" -# [Optional] The source CSS file. If it ends with .sass or .scss then it will be compiled by dart-sass into CSS. The CSS is optimized by Lightning CSS before being written to //app.css -style-file = "style/output.css" -# Assets source dir. All files found here will be copied and synchronized to site-root. -# The assets-dir cannot have a sub directory with the same name/path as site-pkg-dir. -# -# Optional. Env: LEPTOS_ASSETS_DIR. -assets-dir = "assets" -# The IP and port (ex: 127.0.0.1:3000) where the server serves the content. Use it in your server setup. -site-addr = "127.0.0.1:3000" -# The port to use for automatic reload monitoring -reload-port = 3002 -# [Optional] Command to use when running end2end tests. It will run in the end2end dir. -# [Windows] for non-WSL use "npx.cmd playwright test" -# This binary name can be checked in Powershell with Get-Command npx -end2end-cmd = "npx playwright test" -end2end-dir = "end2end" -# The browserlist query used for optimizing the CSS. -browserquery = "defaults" -# Set by cargo-leptos watch when building with that tool. Controls whether autoreload JS will be included in the head -watch = false -# The environment Leptos will run in, usually either "DEV" or "PROD" -env = "DEV" -# The features to use when compiling the bin target -# -# Optional. Can be over-ridden with the command line parameter --bin-features -bin-features = ["ssr"] - -# If the --no-default-features flag should be used when compiling the bin target -# -# Optional. Defaults to false. -bin-default-features = false - -# The features to use when compiling the lib target -# -# Optional. Can be over-ridden with the command line parameter --lib-features -lib-features = ["hydrate"] - -# If the --no-default-features flag should be used when compiling the lib target -# -# Optional. Defaults to false. -lib-default-features = false diff --git a/crates/como_web/README.md b/crates/como_web/README.md deleted file mode 100644 index dcf1beb..0000000 --- a/crates/como_web/README.md +++ /dev/null @@ -1,67 +0,0 @@ - - - Leptos Logo - - -# Leptos Starter Template - -This is a template for use with the [Leptos](https://github.com/leptos-rs/leptos) web framework and the [cargo-leptos](https://github.com/akesson/cargo-leptos) tool. - -## Creating your template repo - -If you don't have `cargo-leptos` installed you can install it with - -`cargo install cargo-leptos` - -Then run - -`cargo leptos new --git leptos-rs/start` - -to generate a new project template. - -`cd {projectname}` - -to go to your newly created project. - -Of course you should explore around the project structure, but the best place to start with your application code is in `src/app.rs`. - -## Running your project - -`cargo leptos watch` - -## Installing Additional Tools - -By default, `cargo-leptos` uses `nightly` Rust, `cargo-generate`, and `sass`. If you run into any trouble, you may need to install one or more of these tools. - -1. `rustup toolchain install nightly --allow-downgrade` - make sure you have Rust nightly -2. `rustup target add wasm32-unknown-unknown` - add the ability to compile Rust to WebAssembly -3. `cargo install cargo-generate` - install `cargo-generate` binary (should be installed automatically in future) -4. `npm install -g sass` - install `dart-sass` (should be optional in future) - -## Executing a Server on a Remote Machine Without the Toolchain -After running a `cargo leptos build --release` the minimum files needed are: - -1. The server binary located in `target/server/release` -2. The `site` directory and all files within located in `target/site` - -Copy these files to your remote server. The directory structure should be: -```text -como_web -site/ -``` -Set the following enviornment variables (updating for your project as needed): -```text -LEPTOS_OUTPUT_NAME="como_web" -LEPTOS_SITE_ROOT="site" -LEPTOS_SITE_PKG_DIR="pkg" -LEPTOS_SITE_ADDR="127.0.0.1:3000" -LEPTOS_RELOAD_PORT="3001" -``` -Finally, run the server binary. - -## Notes about SSG and Trunk: -Although it is not recommended, you can also run your project without server integration using the feature `csr` and `trunk serve`: - -`trunk serve --open --features csr` - -This may be useful for integrating external tools which require a static site, e.g. `tauri`. \ No newline at end of file diff --git a/crates/como_web/assets/favicon.ico b/crates/como_web/assets/favicon.ico deleted file mode 100644 index 2ba8527..0000000 Binary files a/crates/como_web/assets/favicon.ico and /dev/null differ diff --git a/crates/como_web/cuddle.yaml b/crates/como_web/cuddle.yaml deleted file mode 100644 index 39b6d26..0000000 --- a/crates/como_web/cuddle.yaml +++ /dev/null @@ -1,27 +0,0 @@ -yaml-language-server: $schema=https://git.front.kjuulh.io/kjuulh/cuddle/raw/branch/main/schemas/base.json - -base: "git@git.front.kjuulh.io:kjuulh/cuddle-rust-plan.git" - -vars: - service: "como-web" - deployments: "git@git.front.kjuulh.io:como/deployments.git" - -scripts: - render_como_templates: - type: shell - local_up: - type: shell - local_down: - type: shell - "tailwind:watch": - type: "shell" - "tailwind:build": - type: "shell" - "leptos:dev": - type: "shell" - "dev": - type: "shell" - "nodev": - type: "shell" - "refresh:schema": - type: "shell" diff --git a/crates/como_web/end2end/package-lock.json b/crates/como_web/end2end/package-lock.json deleted file mode 100644 index f12af44..0000000 --- a/crates/como_web/end2end/package-lock.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "end2end", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "end2end", - "version": "1.0.0", - "license": "ISC", - "devDependencies": { - "@playwright/test": "^1.28.0" - } - }, - "node_modules/@playwright/test": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.28.0.tgz", - "integrity": "sha512-vrHs5DFTPwYox5SGKq/7TDn/S4q6RA1zArd7uhO6EyP9hj3XgZBBM12ktMbnDQNxh/fL1IUKsTNLxihmsU38lQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "playwright-core": "1.28.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "dev": true - }, - "node_modules/playwright-core": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.28.0.tgz", - "integrity": "sha512-nJLknd28kPBiCNTbqpu6Wmkrh63OEqJSFw9xOfL9qxfNwody7h6/L3O2dZoWQ6Oxcm0VOHjWmGiCUGkc0X3VZA==", - "dev": true, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - } - }, - "dependencies": { - "@playwright/test": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.28.0.tgz", - "integrity": "sha512-vrHs5DFTPwYox5SGKq/7TDn/S4q6RA1zArd7uhO6EyP9hj3XgZBBM12ktMbnDQNxh/fL1IUKsTNLxihmsU38lQ==", - "dev": true, - "requires": { - "@types/node": "*", - "playwright-core": "1.28.0" - } - }, - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "dev": true - }, - "playwright-core": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.28.0.tgz", - "integrity": "sha512-nJLknd28kPBiCNTbqpu6Wmkrh63OEqJSFw9xOfL9qxfNwody7h6/L3O2dZoWQ6Oxcm0VOHjWmGiCUGkc0X3VZA==", - "dev": true - } - } -} diff --git a/crates/como_web/end2end/package.json b/crates/como_web/end2end/package.json deleted file mode 100644 index ed78585..0000000 --- a/crates/como_web/end2end/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "end2end", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": {}, - "keywords": [], - "author": "", - "license": "ISC", - "devDependencies": { - "@playwright/test": "^1.28.0" - } -} diff --git a/crates/como_web/end2end/playwright.config.ts b/crates/como_web/end2end/playwright.config.ts deleted file mode 100644 index e9891c0..0000000 --- a/crates/como_web/end2end/playwright.config.ts +++ /dev/null @@ -1,107 +0,0 @@ -import type { PlaywrightTestConfig } from "@playwright/test"; -import { devices } from "@playwright/test"; - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -const config: PlaywrightTestConfig = { - testDir: "./tests", - /* Maximum time one test can run for. */ - timeout: 30 * 1000, - expect: { - /** - * Maximum time expect() should wait for the condition to be met. - * For example in `await expect(locator).toHaveText();` - */ - timeout: 5000, - }, - /* Run tests in files in parallel */ - fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: "html", - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ - actionTimeout: 0, - /* Base URL to use in actions like `await page.goto('/')`. */ - // baseURL: 'http://localhost:3000', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: "on-first-retry", - }, - - /* Configure projects for major browsers */ - projects: [ - { - name: "chromium", - use: { - ...devices["Desktop Chrome"], - }, - }, - - { - name: "firefox", - use: { - ...devices["Desktop Firefox"], - }, - }, - - { - name: "webkit", - use: { - ...devices["Desktop Safari"], - }, - }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { - // ...devices['Pixel 5'], - // }, - // }, - // { - // name: 'Mobile Safari', - // use: { - // ...devices['iPhone 12'], - // }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { - // channel: 'msedge', - // }, - // }, - // { - // name: 'Google Chrome', - // use: { - // channel: 'chrome', - // }, - // }, - ], - - /* Folder for test artifacts such as screenshots, videos, traces, etc. */ - // outputDir: 'test-results/', - - /* Run your local dev server before starting the tests */ - // webServer: { - // command: 'npm run start', - // port: 3000, - // }, -}; - -export default config; diff --git a/crates/como_web/end2end/tests/example.spec.ts b/crates/como_web/end2end/tests/example.spec.ts deleted file mode 100644 index a461f35..0000000 --- a/crates/como_web/end2end/tests/example.spec.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { test, expect } from "@playwright/test"; - -test("homepage has title and links to intro page", async ({ page }) => { - await page.goto("http://localhost:3000/"); - - await expect(page).toHaveTitle("Welcome to Leptos"); - - await expect(page.locator("h1")).toHaveText("Welcome to Leptos!"); -}); diff --git a/crates/como_web/input.css b/crates/como_web/input.css deleted file mode 100644 index 29276d5..0000000 --- a/crates/como_web/input.css +++ /dev/null @@ -1,26 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -html, body { - scroll-behavior: smooth; - min-height: 100%; - - @apply bg-gray-100 dark:bg-gray-900 text-gray-900 dark:text-gray-100; -} - -.feature-case { - @apply m-8 border-blue-700 border-2 rounded-lg p-4; -} - -.dashboard-list-item { - @apply flex flex-col justify-center hover:dark:bg-blue-900 cursor-pointer select-none px-4 py-2 border-y border-y-gray-800; -} - -.dashboard-list-project { - @apply dark:bg-gray-800 hover:dark:bg-blue-900 text-gray-300; -} - -.dashboard-item { - @apply pl-6 -} diff --git a/crates/como_web/leptosfmt.toml b/crates/como_web/leptosfmt.toml deleted file mode 100644 index 2c9d1d4..0000000 --- a/crates/como_web/leptosfmt.toml +++ /dev/null @@ -1,3 +0,0 @@ -max_width = 100 -tab_spaces = 4 -attr_value_brace_style = "WhenRequired" # "Always", "AlwaysUnlessLit", "WhenRequired" or "Preserve" diff --git a/crates/como_web/rust-toolchain.toml b/crates/como_web/rust-toolchain.toml deleted file mode 100644 index e9743fb..0000000 --- a/crates/como_web/rust-toolchain.toml +++ /dev/null @@ -1,3 +0,0 @@ - -[toolchain] -channel = "nightly" diff --git a/crates/como_web/scripts/dev.sh b/crates/como_web/scripts/dev.sh deleted file mode 100755 index b064459..0000000 --- a/crates/como_web/scripts/dev.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -zellij run -- sh -c "cuddle x leptos:dev" - -zellij run -- sh -c "cuddle x tailwind:watch" - diff --git a/crates/como_web/scripts/leptos:dev.sh b/crates/como_web/scripts/leptos:dev.sh deleted file mode 100755 index 1f7442f..0000000 --- a/crates/como_web/scripts/leptos:dev.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -cargo leptos watch diff --git a/crates/como_web/scripts/nodev.sh b/crates/como_web/scripts/nodev.sh deleted file mode 100755 index 0e997d7..0000000 --- a/crates/como_web/scripts/nodev.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -tmux kill-window -t dev || true diff --git a/crates/como_web/scripts/refresh:schema.sh b/crates/como_web/scripts/refresh:schema.sh deleted file mode 100755 index 25a757e..0000000 --- a/crates/como_web/scripts/refresh:schema.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -graphql-client introspect-schema \ - http://localhost:3001/graphql \ - --header "Authorization: Basic $COMO_GATEWAY_PAT" \ - --output src/api/graphql/schema/schema.json - -graphql-client generate \ - --schema-path src/api/graphql/schema/schema.json \ - src/features/navbar_projects/graphql/queries.graphql \ - --output-directory src/features/navbar_projects/gen \ - --custom-scalars-module='crate::common::graphql' \ - --variables-derives='Clone,Debug' \ - --response-derives='Clone,Debug' - -graphql-client generate \ - --schema-path src/api/graphql/schema/schema.json \ - src/features/dashboard_list_view/graphql/queries.graphql \ - --output-directory src/features/dashboard_list_view/gen \ - --custom-scalars-module='crate::common::graphql' \ - --variables-derives='Clone,Debug' \ - --response-derives='Clone,Debug' diff --git a/crates/como_web/scripts/tailwind:build.sh b/crates/como_web/scripts/tailwind:build.sh deleted file mode 100755 index e63744d..0000000 --- a/crates/como_web/scripts/tailwind:build.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -npx tailwindcss -i ./input.css -o ./style/output.css diff --git a/crates/como_web/scripts/tailwind:watch.sh b/crates/como_web/scripts/tailwind:watch.sh deleted file mode 100755 index 08d278a..0000000 --- a/crates/como_web/scripts/tailwind:watch.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -npx tailwindcss -i ./input.css -o ./style/output.css --watch diff --git a/crates/como_web/src/api/graphql/schema/schema.json b/crates/como_web/src/api/graphql/schema/schema.json deleted file mode 100644 index 3d8dad3..0000000 --- a/crates/como_web/src/api/graphql/schema/schema.json +++ /dev/null @@ -1,1738 +0,0 @@ -{ - "data": { - "__schema": { - "directives": [ - { - "args": [ - { - "defaultValue": null, - "description": "Included when true.", - "name": "if", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - } - ], - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "name": "include" - }, - { - "args": [ - { - "defaultValue": null, - "description": "Skipped when true.", - "name": "if", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - } - ], - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "locations": [ - "FIELD", - "FRAGMENT_SPREAD", - "INLINE_FRAGMENT" - ], - "name": "skip" - } - ], - "mutationType": { - "name": "MutationRoot" - }, - "queryType": { - "name": "QueryRoot" - }, - "subscriptionType": null, - "types": [ - { - "description": "The `Boolean` scalar type represents `true` or `false`.", - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "Boolean", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "description": null, - "name": "title", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "defaultValue": null, - "description": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": null, - "description": null, - "name": "projectId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "CreateItemDto", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "description": null, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "defaultValue": null, - "description": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "CreateProjectMutation", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "item", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Item", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "CreatedItem", - "possibleTypes": null - }, - { - "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "Float", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "description": null, - "name": "itemId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "GetItemQuery", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "description": null, - "name": "projectId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "GetItemsQuery", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "description": null, - "name": "projectId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "GetProjectQuery", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "ID", - "possibleTypes": null - }, - { - "description": "The `Int` scalar type represents non-fractional whole numeric values.", - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "Int", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "title", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "state", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ItemState", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "project", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "projectId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "Item", - "possibleTypes": null - }, - { - "description": null, - "enumValues": [ - { - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "CREATED" - }, - { - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "DONE" - }, - { - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "ARCHIVED" - }, - { - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "DELETED" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "ItemState", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": [ - { - "args": [ - { - "defaultValue": null, - "description": null, - "name": "item", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateItemDto", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "createItem", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedItem", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": null, - "description": null, - "name": "request", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateProjectMutation", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "createProject", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectDto", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": null, - "description": null, - "name": "item", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateItemDto", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "updateItem", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Item", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "MutationRoot", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "items", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Item", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "Project", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "userId", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "ProjectDto", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": [ - { - "args": [ - { - "defaultValue": null, - "description": null, - "name": "query", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GetItemQuery", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "getItem", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Item", - "ofType": null - } - } - }, - { - "args": [ - { - "defaultValue": null, - "description": null, - "name": "query", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GetItemsQuery", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "getItems", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Item", - "ofType": null - } - } - } - } - }, - { - "args": [ - { - "defaultValue": null, - "description": null, - "name": "query", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "GetProjectQuery", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "getProject", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "getProjects", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "QueryRoot", - "possibleTypes": null - }, - { - "description": "The `String` scalar type represents textual data, represented as UTF-8\ncharacter sequences. The String type is most often used by GraphQL to\nrepresent free-form human-readable text.", - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "String", - "possibleTypes": null - }, - { - "description": "A UUID is a unique 128-bit number, stored as 16 octets. UUIDs are parsed as\nStrings within GraphQL. UUIDs are used to assign unique identifiers to\nentities without requiring a central allocating authority.\n\n# References\n\n* [Wikipedia: Universally Unique Identifier](http://en.wikipedia.org/wiki/Universally_unique_identifier)\n* [RFC4122: A Universally Unique IDentifier (UUID) URN Namespace](http://tools.ietf.org/html/rfc4122)", - "enumValues": null, - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "SCALAR", - "name": "UUID", - "possibleTypes": null - }, - { - "description": null, - "enumValues": null, - "fields": null, - "inputFields": [ - { - "defaultValue": null, - "description": null, - "name": "id", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - }, - { - "defaultValue": null, - "description": null, - "name": "title", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": null, - "description": null, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "defaultValue": null, - "description": null, - "name": "state", - "type": { - "kind": "ENUM", - "name": "ItemState", - "ofType": null - } - }, - { - "defaultValue": null, - "description": null, - "name": "projectId", - "type": { - "kind": "SCALAR", - "name": "UUID", - "ofType": null - } - } - ], - "interfaces": null, - "kind": "INPUT_OBJECT", - "name": "UpdateItemDto", - "possibleTypes": null - }, - { - "description": "A Directive provides a way to describe alternate runtime execution and type\nvalidation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution\nbehavior in ways field arguments will not suffice, such as conditionally\nincluding or skipping a field. Directives provide this by describing\nadditional information to the executor.", - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "locations", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "args", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "isRepeatable", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "__Directive", - "possibleTypes": null - }, - { - "description": "A Directive can be adjacent to many parts of the GraphQL language, a\n__DirectiveLocation describes one such possible adjacencies.", - "enumValues": [ - { - "deprecationReason": null, - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "name": "QUERY" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "name": "MUTATION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "name": "SUBSCRIPTION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a field.", - "isDeprecated": false, - "name": "FIELD" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "name": "FRAGMENT_DEFINITION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "name": "FRAGMENT_SPREAD" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "name": "INLINE_FRAGMENT" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a variable definition.", - "isDeprecated": false, - "name": "VARIABLE_DEFINITION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "name": "SCHEMA" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "name": "SCALAR" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "name": "OBJECT" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "name": "FIELD_DEFINITION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "name": "ARGUMENT_DEFINITION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "name": "INTERFACE" - }, - { - "deprecationReason": null, - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "name": "UNION" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "name": "ENUM" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "name": "ENUM_VALUE" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "name": "INPUT_OBJECT" - }, - { - "deprecationReason": null, - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "name": "INPUT_FIELD_DEFINITION" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "__DirectiveLocation", - "possibleTypes": null - }, - { - "description": "One possible value for a given Enum. Enum values are unique values, not a\nplaceholder for a string or numeric value. However an Enum value is returned\nin a JSON response as a string.", - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "isDeprecated", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "deprecationReason", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "__EnumValue", - "possibleTypes": null - }, - { - "description": "Object and Interface types are described by a list of Fields, each of which\nhas a name, potentially a list of arguments, and a return type.", - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "args", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "type", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "isDeprecated", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "deprecationReason", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "__Field", - "possibleTypes": null - }, - { - "description": "Arguments provided to Fields or Directives and the input fields of an\nInputObject are represented as Input Values which describe their type and\noptionally a default value.", - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "type", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "defaultValue", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "__InputValue", - "possibleTypes": null - }, - { - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes\nall available types and directives on the server, as well as the entry\npoints for query, mutation, and subscription operations.", - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": "A list of all types supported by this server.", - "isDeprecated": false, - "name": "types", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": "The type that query operations will be rooted at.", - "isDeprecated": false, - "name": "queryType", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": "If this server supports mutation, the type that mutation operations will\nbe rooted at.", - "isDeprecated": false, - "name": "mutationType", - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": "If this server support subscription, the type that subscription\noperations will be rooted at.", - "isDeprecated": false, - "name": "subscriptionType", - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": "A list of all directives supported by this server.", - "isDeprecated": false, - "name": "directives", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "__Schema", - "possibleTypes": null - }, - { - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds\nof types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about\nthat type. Scalar types provide no information beyond a name and\ndescription, while Enum types provide their values. Object and Interface\ntypes provide the fields they describe. Abstract types, Union and Interface,\nprovide the Object types possible at runtime. List and NonNull types compose\nother types.", - "enumValues": null, - "fields": [ - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "kind", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "description", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [ - { - "defaultValue": "false", - "description": null, - "name": "includeDeprecated", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "fields", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "interfaces", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "possibleTypes", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - { - "args": [ - { - "defaultValue": "false", - "description": null, - "name": "includeDeprecated", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - } - ], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "enumValues", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "inputFields", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "ofType", - "type": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "specifiedByURL", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - { - "args": [], - "deprecationReason": null, - "description": null, - "isDeprecated": false, - "name": "isOneOf", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - } - ], - "inputFields": null, - "interfaces": [], - "kind": "OBJECT", - "name": "__Type", - "possibleTypes": null - }, - { - "description": "An enum describing what kind of type a given `__Type` is.", - "enumValues": [ - { - "deprecationReason": null, - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "name": "SCALAR" - }, - { - "deprecationReason": null, - "description": "Indicates this type is an object. `fields` and `interfaces` are valid\nfields.", - "isDeprecated": false, - "name": "OBJECT" - }, - { - "deprecationReason": null, - "description": "Indicates this type is an interface. `fields` and `possibleTypes` are\nvalid fields.", - "isDeprecated": false, - "name": "INTERFACE" - }, - { - "deprecationReason": null, - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "name": "UNION" - }, - { - "deprecationReason": null, - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "name": "ENUM" - }, - { - "deprecationReason": null, - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "name": "INPUT_OBJECT" - }, - { - "deprecationReason": null, - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "name": "LIST" - }, - { - "deprecationReason": null, - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "name": "NON_NULL" - } - ], - "fields": null, - "inputFields": null, - "interfaces": null, - "kind": "ENUM", - "name": "__TypeKind", - "possibleTypes": null - } - ] - } - } -} \ No newline at end of file diff --git a/crates/como_web/src/api/mod.rs b/crates/como_web/src/api/mod.rs deleted file mode 100644 index 387919b..0000000 --- a/crates/como_web/src/api/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -#[cfg(feature = "ssr")] -pub fn register() {} diff --git a/crates/como_web/src/app.rs b/crates/como_web/src/app.rs deleted file mode 100644 index 5665d0f..0000000 --- a/crates/como_web/src/app.rs +++ /dev/null @@ -1,55 +0,0 @@ -use leptos::*; -use leptos_meta::*; -use leptos_router::*; - -use crate::common::layout::DashboardLayout; -use crate::routes::dash::home::DashHomePage; -use crate::routes::features_view::FeaturesView; -use crate::routes::home::HomePage; - -#[component] -pub fn App() -> impl IntoView { - // Provides context that manages stylesheets, titles, meta tags, etc. - provide_meta_context(); - - view! { - - -
- - } - } - /> - } - } - > - } - } - /> - } - } - /> - - } - } - /> - -
-
- } -} diff --git a/crates/como_web/src/common.rs b/crates/como_web/src/common.rs deleted file mode 100644 index 3dea3b8..0000000 --- a/crates/como_web/src/common.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod layout; -pub mod graphql; diff --git a/crates/como_web/src/common/graphql/mod.rs b/crates/como_web/src/common/graphql/mod.rs deleted file mode 100644 index bfce685..0000000 --- a/crates/como_web/src/common/graphql/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub type UUID = uuid::Uuid; diff --git a/crates/como_web/src/common/layout.rs b/crates/como_web/src/common/layout.rs deleted file mode 100644 index 6ca0d56..0000000 --- a/crates/como_web/src/common/layout.rs +++ /dev/null @@ -1,49 +0,0 @@ -use leptos::*; -use leptos_router::*; - -use crate::features::command_line::CommandLine; -use crate::features::navbar_projects::NavbarProjects; - -#[component] -pub fn DashNav() -> impl IntoView { - view! { - - } -} - -#[component] -pub fn DashboardLayout() -> impl IntoView { - view! { -
- -
- - - -
-
- } -} diff --git a/crates/como_web/src/fallback.rs b/crates/como_web/src/fallback.rs deleted file mode 100644 index 99403cd..0000000 --- a/crates/como_web/src/fallback.rs +++ /dev/null @@ -1,43 +0,0 @@ -use cfg_if::cfg_if; - -cfg_if! { if #[cfg(feature = "ssr")] { - use axum::{ - body::{boxed, Body, BoxBody}, - extract::State, - response::IntoResponse, - http::{Request, Response, StatusCode, Uri}, - }; - use axum::response::Response as AxumResponse; - use tower::ServiceExt; - use tower_http::services::ServeDir; - use leptos::{LeptosOptions, view}; - use crate::app::App; - - pub async fn file_and_error_handler(uri: Uri, State(options): State, req: Request) -> AxumResponse { - let root = options.site_root.clone(); - let res = get_static_file(uri.clone(), &root).await.unwrap(); - - if res.status() == StatusCode::OK { - res.into_response() - } else{ - let handler = leptos_axum::render_app_to_stream( - options.to_owned(), - move || view!{ } - ); - handler(req).await.into_response() - } - } - - async fn get_static_file(uri: Uri, root: &str) -> Result, (StatusCode, String)> { - let req = Request::builder().uri(uri.clone()).body(Body::empty()).unwrap(); - // `ServeDir` implements `tower::Service` so we can call it with `tower::ServiceExt::oneshot` - // This path is relative to the cargo root - match ServeDir::new(root).oneshot(req).await { - Ok(res) => Ok(res.map(boxed)), - Err(err) => Err(( - StatusCode::INTERNAL_SERVER_ERROR, - format!("Something went wrong: {err}"), - )), - } - } -}} diff --git a/crates/como_web/src/features.rs b/crates/como_web/src/features.rs deleted file mode 100644 index 86156bf..0000000 --- a/crates/como_web/src/features.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod command_line; -pub mod dashboard_list_view; -pub mod navbar_projects; diff --git a/crates/como_web/src/features/command_line/mod.rs b/crates/como_web/src/features/command_line/mod.rs deleted file mode 100644 index fe67f28..0000000 --- a/crates/como_web/src/features/command_line/mod.rs +++ /dev/null @@ -1,56 +0,0 @@ -use leptos::*; - -#[derive(Clone, Debug)] -pub struct CommandLineState { - hidden: bool, -} - -#[component] -pub fn CommandLineModalView() -> impl IntoView { - view! {
"modal"
} -} - -#[component] -pub fn CommandLineModal() -> impl IntoView { - let state = - use_context::>().expect("command line state must be provided"); - - let (hidden, _) = create_slice(state, |state| state.hidden, |state, n| state.hidden = n); - - view! { - {move || { - if !hidden.get() { - view! { } - } else { - view! { }.into_view() - } - }} - } -} - -#[component] -pub fn CommandLine(children: Children) -> impl IntoView { - let state = create_rw_signal(CommandLineState { hidden: true }); - provide_context(state); - let (hidden, set_hidden) = - create_slice(state, |state| state.hidden, |state, n| state.hidden = n); - - leptos_dom::helpers::window_event_listener(ev::keypress, move |event| { - if event.ctrl_key() { - match event.code().as_str() { - "KeyK" => { - set_hidden.set(!hidden.get()); - //log!("toggle command") - } - _ => {} - } - } - }); - - view! { -
-
{children()}
- -
- } -} diff --git a/crates/como_web/src/features/dashboard_list_view.rs b/crates/como_web/src/features/dashboard_list_view.rs deleted file mode 100644 index a81d0f1..0000000 --- a/crates/como_web/src/features/dashboard_list_view.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod dashboard_list_view; -pub mod gen; - -pub use dashboard_list_view::*; diff --git a/crates/como_web/src/features/dashboard_list_view/dashboard_list_view.rs b/crates/como_web/src/features/dashboard_list_view/dashboard_list_view.rs deleted file mode 100644 index b73f35d..0000000 --- a/crates/como_web/src/features/dashboard_list_view/dashboard_list_view.rs +++ /dev/null @@ -1,93 +0,0 @@ -use graphql_client::{GraphQLQuery, Response}; -use leptos::*; - -use crate::features::dashboard_list_view::gen::queries::get_projects_list_view::GetProjectsListViewGetProjectsItems; - -use super::gen::queries::get_projects_list_view::{ - GetProjectsListViewGetProjects, ResponseData, Variables, -}; -use super::gen::queries::GetProjectsListView; - -pub async fn get_projects_list() -> anyhow::Result> { - let request_body = GetProjectsListView::build_query(Variables {}); - let payload = serde_json::to_string(&request_body)?; - let res = reqwasm::http::Request::post("http://localhost:3001/graphql") - .credentials(reqwasm::http::RequestCredentials::Include) - .body(payload) - .send() - .await?; - let response_body: Response = res.json().await?; - Ok(response_body - .data - .ok_or(anyhow::anyhow!("failed to get projects list"))? - .get_projects) -} - -#[component] -pub fn DashboardItemView(item: GetProjectsListViewGetProjectsItems) -> impl IntoView { - view! {
{item.title}
} -} - -#[component] -pub fn DashboardProjectItemView(project: GetProjectsListViewGetProjects) -> impl IntoView { - view! { - - } -} - -#[component] -pub fn DashboardListView( - projects: Resource<(), Vec>, -) -> impl IntoView { - let projects_view = move || { - projects.with(|projects| { - if projects.is_none() { - return Vec::new(); - } - let projects = projects.as_ref().unwrap(); - - if projects.is_empty() { - return vec![view! {
"No projects"
}.into_any()]; - } - - projects - .into_iter() - .filter(|project| !project.items.is_empty()) - .map(|project| { - view! { -
- - {&project - .items - .clone() - .into_iter() - .map(|item| { - view! { } - }) - .collect::>() - .into_view()} -
- } - .into_any() - }) - .collect::>() - }) - }; - - view! {
{projects_view}
} -} - -#[component] -pub fn DashboardList() -> impl IntoView { - let projects = create_local_resource(|| (), |_| async { get_projects_list().await.unwrap() }); - - view! { } -} diff --git a/crates/como_web/src/features/dashboard_list_view/gen/mod.rs b/crates/como_web/src/features/dashboard_list_view/gen/mod.rs deleted file mode 100644 index 84c032e..0000000 --- a/crates/como_web/src/features/dashboard_list_view/gen/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod queries; diff --git a/crates/como_web/src/features/dashboard_list_view/gen/queries.rs b/crates/como_web/src/features/dashboard_list_view/gen/queries.rs deleted file mode 100644 index a93c5f6..0000000 --- a/crates/como_web/src/features/dashboard_list_view/gen/queries.rs +++ /dev/null @@ -1,81 +0,0 @@ -#![allow(clippy::all, warnings)] -pub struct GetProjectsListView; -pub mod get_projects_list_view { - #![allow(dead_code)] - use std::result::Result; - pub const OPERATION_NAME: &str = "GetProjectsListView"; - pub const QUERY : & str = "query GetProjectsListView {\n getProjects {\n id\n name\n\n items {\n id\n title\n description\n state\n }\n }\n}\n" ; - use super::*; - use serde::{Deserialize, Serialize}; - #[allow(dead_code)] - type Boolean = bool; - #[allow(dead_code)] - type Float = f64; - #[allow(dead_code)] - type Int = i64; - #[allow(dead_code)] - type ID = String; - type UUID = crate::common::graphql::UUID; - #[derive(Clone, Debug)] - pub enum ItemState { - CREATED, - DONE, - ARCHIVED, - DELETED, - Other(String), - } - impl ::serde::Serialize for ItemState { - fn serialize(&self, ser: S) -> Result { - ser.serialize_str(match *self { - ItemState::CREATED => "CREATED", - ItemState::DONE => "DONE", - ItemState::ARCHIVED => "ARCHIVED", - ItemState::DELETED => "DELETED", - ItemState::Other(ref s) => &s, - }) - } - } - impl<'de> ::serde::Deserialize<'de> for ItemState { - fn deserialize>(deserializer: D) -> Result { - let s: String = ::serde::Deserialize::deserialize(deserializer)?; - match s.as_str() { - "CREATED" => Ok(ItemState::CREATED), - "DONE" => Ok(ItemState::DONE), - "ARCHIVED" => Ok(ItemState::ARCHIVED), - "DELETED" => Ok(ItemState::DELETED), - _ => Ok(ItemState::Other(s)), - } - } - } - #[derive(Serialize, Clone, Debug)] - pub struct Variables; - #[derive(Deserialize, Clone, Debug)] - pub struct ResponseData { - #[serde(rename = "getProjects")] - pub get_projects: Vec, - } - #[derive(Deserialize, Clone, Debug)] - pub struct GetProjectsListViewGetProjects { - pub id: UUID, - pub name: String, - pub items: Vec, - } - #[derive(Deserialize, Clone, Debug)] - pub struct GetProjectsListViewGetProjectsItems { - pub id: UUID, - pub title: String, - pub description: Option, - pub state: ItemState, - } -} -impl graphql_client::GraphQLQuery for GetProjectsListView { - type Variables = get_projects_list_view::Variables; - type ResponseData = get_projects_list_view::ResponseData; - fn build_query(variables: Self::Variables) -> ::graphql_client::QueryBody { - graphql_client::QueryBody { - variables, - query: get_projects_list_view::QUERY, - operation_name: get_projects_list_view::OPERATION_NAME, - } - } -} diff --git a/crates/como_web/src/features/dashboard_list_view/graphql/queries.graphql b/crates/como_web/src/features/dashboard_list_view/graphql/queries.graphql deleted file mode 100644 index de53cfc..0000000 --- a/crates/como_web/src/features/dashboard_list_view/graphql/queries.graphql +++ /dev/null @@ -1,13 +0,0 @@ -query GetProjectsListView { - getProjects { - id - name - - items { - id - title - description - state - } - } -} diff --git a/crates/como_web/src/features/navbar_projects.rs b/crates/como_web/src/features/navbar_projects.rs deleted file mode 100644 index 1f6bf39..0000000 --- a/crates/como_web/src/features/navbar_projects.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod gen; -pub mod navbar_projects; - -pub use navbar_projects::*; diff --git a/crates/como_web/src/features/navbar_projects/gen/mod.rs b/crates/como_web/src/features/navbar_projects/gen/mod.rs deleted file mode 100644 index 84c032e..0000000 --- a/crates/como_web/src/features/navbar_projects/gen/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod queries; diff --git a/crates/como_web/src/features/navbar_projects/gen/queries.rs b/crates/como_web/src/features/navbar_projects/gen/queries.rs deleted file mode 100644 index b905c91..0000000 --- a/crates/como_web/src/features/navbar_projects/gen/queries.rs +++ /dev/null @@ -1,43 +0,0 @@ -#![allow(clippy::all, warnings)] -pub struct GetProjectsListView; -pub mod get_projects_list_view { - #![allow(dead_code)] - use std::result::Result; - pub const OPERATION_NAME: &str = "GetProjectsListView"; - pub const QUERY: &str = - "query GetProjectsListView {\n getProjects {\n id\n name\n }\n}\n"; - use super::*; - use serde::{Deserialize, Serialize}; - #[allow(dead_code)] - type Boolean = bool; - #[allow(dead_code)] - type Float = f64; - #[allow(dead_code)] - type Int = i64; - #[allow(dead_code)] - type ID = String; - type UUID = crate::common::graphql::UUID; - #[derive(Serialize, Clone, Debug)] - pub struct Variables; - #[derive(Deserialize, Clone, Debug)] - pub struct ResponseData { - #[serde(rename = "getProjects")] - pub get_projects: Vec, - } - #[derive(Deserialize, Clone, Debug)] - pub struct GetProjectsListViewGetProjects { - pub id: UUID, - pub name: String, - } -} -impl graphql_client::GraphQLQuery for GetProjectsListView { - type Variables = get_projects_list_view::Variables; - type ResponseData = get_projects_list_view::ResponseData; - fn build_query(variables: Self::Variables) -> ::graphql_client::QueryBody { - graphql_client::QueryBody { - variables, - query: get_projects_list_view::QUERY, - operation_name: get_projects_list_view::OPERATION_NAME, - } - } -} diff --git a/crates/como_web/src/features/navbar_projects/graphql/queries.graphql b/crates/como_web/src/features/navbar_projects/graphql/queries.graphql deleted file mode 100644 index 9217250..0000000 --- a/crates/como_web/src/features/navbar_projects/graphql/queries.graphql +++ /dev/null @@ -1,6 +0,0 @@ -query GetProjectsListView { - getProjects { - id - name - } -} diff --git a/crates/como_web/src/features/navbar_projects/navbar_projects.rs b/crates/como_web/src/features/navbar_projects/navbar_projects.rs deleted file mode 100644 index dcdd752..0000000 --- a/crates/como_web/src/features/navbar_projects/navbar_projects.rs +++ /dev/null @@ -1,69 +0,0 @@ -use graphql_client::{GraphQLQuery, Response}; -use leptos::*; - -use crate::features::navbar_projects::gen::queries::get_projects_list_view::{ - ResponseData, Variables, -}; -use crate::features::navbar_projects::gen::queries::GetProjectsListView; - -use super::gen::queries::get_projects_list_view::GetProjectsListViewGetProjects; - -pub async fn get_projects_list() -> anyhow::Result> { - let request_body = GetProjectsListView::build_query(Variables {}); - let payload = serde_json::to_string(&request_body)?; - let res = reqwasm::http::Request::post("http://localhost:3001/graphql") - .credentials(reqwasm::http::RequestCredentials::Include) - .body(payload) - .send() - .await?; - let response_body: Response = res.json().await?; - Ok(response_body - .data - .ok_or(anyhow::anyhow!("failed to get projects list"))? - .get_projects) -} - -#[component] -pub fn NavbarProjectsView( - projects: Resource<(), Vec>, -) -> impl IntoView { - let projects_view = move || { - projects.with(|projects| { - if projects.is_none() { - return Vec::new() - } - let projects = projects.as_ref().unwrap(); - - - if projects.is_empty() { - return vec![view! {
"No projects"
}.into_any()]; - } - - projects - .into_iter() - .map(|project| { - view! { - - - - -
- {&project.name} -
-
- }.into_any() - }) - .collect::>() - }) - }; - - view! {
{projects_view}
} -} - -#[component] -pub fn NavbarProjects() -> impl IntoView { - let projects = - create_local_resource(|| (), |_| async { get_projects_list().await.unwrap() }); - - view! { } -} diff --git a/crates/como_web/src/lib.rs b/crates/como_web/src/lib.rs deleted file mode 100644 index 6d8a83f..0000000 --- a/crates/como_web/src/lib.rs +++ /dev/null @@ -1,27 +0,0 @@ -pub mod api; -pub mod app; -pub mod common; -pub mod fallback; -pub mod features; -pub mod routes; - -use cfg_if::cfg_if; - -cfg_if! { -if #[cfg(feature = "hydrate")] { - - use wasm_bindgen::prelude::wasm_bindgen; - - #[wasm_bindgen] - pub fn hydrate() { - use app::*; - use leptos::*; - - console_error_panic_hook::set_once(); - - leptos::mount_to_body(move || { - view! { } - }); - } -} -} diff --git a/crates/como_web/src/main.rs b/crates/como_web/src/main.rs deleted file mode 100644 index b9860bc..0000000 --- a/crates/como_web/src/main.rs +++ /dev/null @@ -1,45 +0,0 @@ -#[cfg(feature = "ssr")] -#[tokio::main] -async fn main() { - use axum::{extract::Extension, routing::post, Router}; - use como_web::app::*; - use como_web::fallback::file_and_error_handler; - use leptos::*; - use leptos_axum::{generate_route_list, LeptosRoutes}; - use std::sync::Arc; - use tracing_subscriber::EnvFilter; - - std::env::set_var("COMO_GATEWAY_URL", "https://api.como.i.kjuulh.io/graphql"); - tracing_subscriber::fmt() - .with_env_filter(EnvFilter::from_default_env()) - .init(); - - let conf = get_configuration(None).await.unwrap(); - let addr = conf.leptos_options.site_addr; - let leptos_options = conf.leptos_options; - // Generate the list of routes in your Leptos App - let routes = generate_route_list(App); - - como_web::api::register(); - - let app = Router::new() - .route("/api/*fn_name", post(leptos_axum::handle_server_fns)) - .leptos_routes(&leptos_options.clone(), routes, || view! { }) - .fallback(file_and_error_handler) - .with_state(leptos_options); - - // run our app with hyper - // `axum::Server` is a re-export of `hyper::Server` - // log!("listening on http://{}", &addr); - axum::Server::bind(&addr) - .serve(app.into_make_service()) - .await - .unwrap(); -} - -#[cfg(not(feature = "ssr"))] -pub fn main() { - // no client-side main function - // unless we want this to work with e.g., Trunk for pure client-side testing - // see lib.rs for hydration function instead -} diff --git a/crates/como_web/src/routes.rs b/crates/como_web/src/routes.rs deleted file mode 100644 index a91ac7a..0000000 --- a/crates/como_web/src/routes.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod dash; -pub mod features_view; -pub mod home; diff --git a/crates/como_web/src/routes/dash.rs b/crates/como_web/src/routes/dash.rs deleted file mode 100644 index 9b86bcf..0000000 --- a/crates/como_web/src/routes/dash.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod home; diff --git a/crates/como_web/src/routes/dash/home.rs b/crates/como_web/src/routes/dash/home.rs deleted file mode 100644 index ff5d515..0000000 --- a/crates/como_web/src/routes/dash/home.rs +++ /dev/null @@ -1,12 +0,0 @@ -use leptos::*; - -use crate::features::dashboard_list_view::DashboardList; - -#[component] -pub fn DashHomePage() -> impl IntoView { - view! { -
- -
- } -} diff --git a/crates/como_web/src/routes/features_view.rs b/crates/como_web/src/routes/features_view.rs deleted file mode 100644 index 366e59f..0000000 --- a/crates/como_web/src/routes/features_view.rs +++ /dev/null @@ -1,43 +0,0 @@ -use leptos::*; -use uuid::Uuid; - -use crate::features::navbar_projects::gen::queries::get_projects_list_view::GetProjectsListViewGetProjects; -use crate::features::navbar_projects::NavbarProjectsView; - -#[component] -pub fn FeaturesView() -> impl IntoView { - let projects = create_local_resource( - || (), - |_| async { - vec![ - GetProjectsListViewGetProjects { - id: Uuid::new_v4(), - name: "some-name".to_string(), - }, - GetProjectsListViewGetProjects { - id: Uuid::new_v4(), - name: "some-other-name".to_string(), - }, - ] - }, - ); - - let emptyProjects: Resource<(), Vec> = - create_local_resource(|| (), |_| async { Vec::new() }); - - view! { -
-
-

"NavbarProjects"

-

"Projects"

-
- -
-

"no projects"

-
- -
-
-
- } -} diff --git a/crates/como_web/src/routes/home.rs b/crates/como_web/src/routes/home.rs deleted file mode 100644 index bed1147..0000000 --- a/crates/como_web/src/routes/home.rs +++ /dev/null @@ -1,27 +0,0 @@ -use leptos::*; - -#[component] -pub fn Navbar() -> impl IntoView { - view! { -
-
-
"Como - Todo"
-
- -
- } -} - -#[component] -pub fn HomePage() -> impl IntoView { - view! { - -

"Welcome to Leptos!"

- } -} diff --git a/crates/como_web/style/output.css b/crates/como_web/style/output.css deleted file mode 100644 index 1de02bc..0000000 --- a/crates/como_web/style/output.css +++ /dev/null @@ -1,804 +0,0 @@ -/* -! tailwindcss v3.3.3 | MIT License | https://tailwindcss.com -*/ - -/* -1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) -2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) -*/ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: #e5e7eb; - /* 2 */ -} - -::before, -::after { - --tw-content: ''; -} - -/* -1. Use a consistent sensible line-height in all browsers. -2. Prevent adjustments of font size after orientation changes in iOS. -3. Use a more readable tab size. -4. Use the user's configured `sans` font-family by default. -5. Use the user's configured `sans` font-feature-settings by default. -6. Use the user's configured `sans` font-variation-settings by default. -*/ - -html { - line-height: 1.5; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -moz-tab-size: 4; - /* 3 */ - -o-tab-size: 4; - tab-size: 4; - /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 4 */ - font-feature-settings: normal; - /* 5 */ - font-variation-settings: normal; - /* 6 */ -} - -/* -1. Remove the margin in all browsers. -2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. -*/ - -body { - margin: 0; - /* 1 */ - line-height: inherit; - /* 2 */ -} - -/* -1. Add the correct height in Firefox. -2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) -3. Ensure horizontal rules are visible by default. -*/ - -hr { - height: 0; - /* 1 */ - color: inherit; - /* 2 */ - border-top-width: 1px; - /* 3 */ -} - -/* -Add the correct text decoration in Chrome, Edge, and Safari. -*/ - -abbr:where([title]) { - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -/* -Remove the default font size and weight for headings. -*/ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/* -Reset links to optimize for opt-in styling instead of opt-out. -*/ - -a { - color: inherit; - text-decoration: inherit; -} - -/* -Add the correct font weight in Edge and Safari. -*/ - -b, -strong { - font-weight: bolder; -} - -/* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. -*/ - -code, -kbd, -samp, -pre { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* -Add the correct font size in all browsers. -*/ - -small { - font-size: 80%; -} - -/* -Prevent `sub` and `sup` elements from affecting the line height in all browsers. -*/ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* -1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) -2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) -3. Remove gaps between table borders by default. -*/ - -table { - text-indent: 0; - /* 1 */ - border-color: inherit; - /* 2 */ - border-collapse: collapse; - /* 3 */ -} - -/* -1. Change the font styles in all browsers. -2. Remove the margin in Firefox and Safari. -3. Remove default padding in all browsers. -*/ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-feature-settings: inherit; - /* 1 */ - font-variation-settings: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - font-weight: inherit; - /* 1 */ - line-height: inherit; - /* 1 */ - color: inherit; - /* 1 */ - margin: 0; - /* 2 */ - padding: 0; - /* 3 */ -} - -/* -Remove the inheritance of text transform in Edge and Firefox. -*/ - -button, -select { - text-transform: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Remove default button styles. -*/ - -button, -[type='button'], -[type='reset'], -[type='submit'] { - -webkit-appearance: button; - /* 1 */ - background-color: transparent; - /* 2 */ - background-image: none; - /* 2 */ -} - -/* -Use the modern Firefox focus style for all focusable elements. -*/ - -:-moz-focusring { - outline: auto; -} - -/* -Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) -*/ - -:-moz-ui-invalid { - box-shadow: none; -} - -/* -Add the correct vertical alignment in Chrome and Firefox. -*/ - -progress { - vertical-align: baseline; -} - -/* -Correct the cursor style of increment and decrement buttons in Safari. -*/ - -::-webkit-inner-spin-button, -::-webkit-outer-spin-button { - height: auto; -} - -/* -1. Correct the odd appearance in Chrome and Safari. -2. Correct the outline style in Safari. -*/ - -[type='search'] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/* -Remove the inner padding in Chrome and Safari on macOS. -*/ - -::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* -1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to `inherit` in Safari. -*/ - -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* -Add the correct display in Chrome and Safari. -*/ - -summary { - display: list-item; -} - -/* -Removes the default spacing and border for appropriate elements. -*/ - -blockquote, -dl, -dd, -h1, -h2, -h3, -h4, -h5, -h6, -hr, -figure, -p, -pre { - margin: 0; -} - -fieldset { - margin: 0; - padding: 0; -} - -legend { - padding: 0; -} - -ol, -ul, -menu { - list-style: none; - margin: 0; - padding: 0; -} - -/* -Reset default styling for dialogs. -*/ - -dialog { - padding: 0; -} - -/* -Prevent resizing textareas horizontally by default. -*/ - -textarea { - resize: vertical; -} - -/* -1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) -2. Set the default placeholder color to the user's configured gray 400 color. -*/ - -input::-moz-placeholder, textarea::-moz-placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -input::placeholder, -textarea::placeholder { - opacity: 1; - /* 1 */ - color: #9ca3af; - /* 2 */ -} - -/* -Set the default cursor for buttons. -*/ - -button, -[role="button"] { - cursor: pointer; -} - -/* -Make sure disabled buttons don't get the pointer cursor. -*/ - -:disabled { - cursor: default; -} - -/* -1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) -2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) - This can trigger a poorly considered lint error in some tools but is included by design. -*/ - -img, -svg, -video, -canvas, -audio, -iframe, -embed, -object { - display: block; - /* 1 */ - vertical-align: middle; - /* 2 */ -} - -/* -Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) -*/ - -img, -video { - max-width: 100%; - height: auto; -} - -/* Make elements with the HTML hidden attribute stay hidden by default */ - -[hidden] { - display: none; -} - -*, ::before, ::after { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -::backdrop { - --tw-border-spacing-x: 0; - --tw-border-spacing-y: 0; - --tw-translate-x: 0; - --tw-translate-y: 0; - --tw-rotate: 0; - --tw-skew-x: 0; - --tw-skew-y: 0; - --tw-scale-x: 1; - --tw-scale-y: 1; - --tw-pan-x: ; - --tw-pan-y: ; - --tw-pinch-zoom: ; - --tw-scroll-snap-strictness: proximity; - --tw-gradient-from-position: ; - --tw-gradient-via-position: ; - --tw-gradient-to-position: ; - --tw-ordinal: ; - --tw-slashed-zero: ; - --tw-numeric-figure: ; - --tw-numeric-spacing: ; - --tw-numeric-fraction: ; - --tw-ring-inset: ; - --tw-ring-offset-width: 0px; - --tw-ring-offset-color: #fff; - --tw-ring-color: rgb(59 130 246 / 0.5); - --tw-ring-offset-shadow: 0 0 #0000; - --tw-ring-shadow: 0 0 #0000; - --tw-shadow: 0 0 #0000; - --tw-shadow-colored: 0 0 #0000; - --tw-blur: ; - --tw-brightness: ; - --tw-contrast: ; - --tw-grayscale: ; - --tw-hue-rotate: ; - --tw-invert: ; - --tw-saturate: ; - --tw-sepia: ; - --tw-drop-shadow: ; - --tw-backdrop-blur: ; - --tw-backdrop-brightness: ; - --tw-backdrop-contrast: ; - --tw-backdrop-grayscale: ; - --tw-backdrop-hue-rotate: ; - --tw-backdrop-invert: ; - --tw-backdrop-opacity: ; - --tw-backdrop-saturate: ; - --tw-backdrop-sepia: ; -} - -.relative { - position: relative; -} - -.sticky { - position: sticky; -} - -.top-0 { - top: 0px; -} - -.mb-0 { - margin-bottom: 0px; -} - -.mb-0\.5 { - margin-bottom: 0.125rem; -} - -.flex { - display: flex; -} - -.\!hidden { - display: none !important; -} - -.hidden { - display: none; -} - -.h-screen { - height: 100vh; -} - -.min-w-\[200px\] { - min-width: 200px; -} - -.flex-grow { - flex-grow: 1; -} - -.cursor-pointer { - cursor: pointer; -} - -.select-none { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.flex-row { - flex-direction: row; -} - -.items-center { - align-items: center; -} - -.justify-between { - justify-content: space-between; -} - -.space-x-2 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(0.5rem * var(--tw-space-x-reverse)); - margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-x-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-x-reverse: 0; - margin-right: calc(1rem * var(--tw-space-x-reverse)); - margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); -} - -.space-y-1 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); -} - -.space-y-4 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1rem * var(--tw-space-y-reverse)); -} - -.space-y-5 > :not([hidden]) ~ :not([hidden]) { - --tw-space-y-reverse: 0; - margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); - margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); -} - -.rounded-md { - border-radius: 0.375rem; -} - -.bg-gray-800 { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); -} - -.p-0 { - padding: 0px; -} - -.p-0\.5 { - padding: 0.125rem; -} - -.p-2 { - padding: 0.5rem; -} - -.p-4 { - padding: 1rem; -} - -.px-0 { - padding-left: 0px; - padding-right: 0px; -} - -.px-0\.5 { - padding-left: 0.125rem; - padding-right: 0.125rem; -} - -.px-2 { - padding-left: 0.5rem; - padding-right: 0.5rem; -} - -.pl-2 { - padding-left: 0.5rem; -} - -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} - -.text-sm { - font-size: 0.875rem; - line-height: 1.25rem; -} - -.text-xl { - font-size: 1.25rem; - line-height: 1.75rem; -} - -.font-bold { - font-weight: 700; -} - -.text-gray-50 { - --tw-text-opacity: 1; - color: rgb(249 250 251 / var(--tw-text-opacity)); -} - -.text-red-50 { - --tw-text-opacity: 1; - color: rgb(254 242 242 / var(--tw-text-opacity)); -} - -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} - -.filter { - filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); -} - -html, body { - scroll-behavior: smooth; - min-height: 100%; - --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); -} - -@media (prefers-color-scheme: dark) { - html, body { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); - --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); - } -} - -.feature-case { - margin: 2rem; - border-radius: 0.5rem; - border-width: 2px; - --tw-border-opacity: 1; - border-color: rgb(29 78 216 / var(--tw-border-opacity)); - padding: 1rem; -} - -.dashboard-list-item { - display: flex; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - flex-direction: column; - justify-content: center; - border-top-width: 1px; - border-bottom-width: 1px; - --tw-border-opacity: 1; - border-top-color: rgb(31 41 55 / var(--tw-border-opacity)); - border-bottom-color: rgb(31 41 55 / var(--tw-border-opacity)); - padding-left: 1rem; - padding-right: 1rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -@media (prefers-color-scheme: dark) { - .dashboard-list-item:hover { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); - } -} - -.dashboard-list-project { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); -} - -@media (prefers-color-scheme: dark) { - .dashboard-list-project { - --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); - } - - .dashboard-list-project:hover { - --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); - } -} - -.dashboard-item { - padding-left: 1.5rem; -} - -@media (prefers-color-scheme: dark) { - .dark\:text-gray-300 { - --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); - } - - .dark\:text-gray-500 { - --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); - } - - .hover\:dark\:bg-blue-700:hover { - --tw-bg-opacity: 1; - background-color: rgb(29 78 216 / var(--tw-bg-opacity)); - } -} diff --git a/crates/como_web/tailwind.config.js b/crates/como_web/tailwind.config.js deleted file mode 100644 index ad0b797..0000000 --- a/crates/como_web/tailwind.config.js +++ /dev/null @@ -1,11 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - darkMode: 'media', - content: { - files: ["*.html", "./src/**/*.rs"], - }, - theme: { - extend: {} - }, - plugins: [] -} diff --git a/cuddle.yaml b/cuddle.yaml deleted file mode 100644 index 6948aae..0000000 --- a/cuddle.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# yaml-language-server: $schema=https://git.front.kjuulh.io/kjuulh/cuddle/raw/branch/main/schemas/base.json - -base: "git@git.front.kjuulh.io:kjuulh/cuddle-rust-plan.git" - -vars: - service: "como-backend" - deployments: "git@git.front.kjuulh.io:kjuulh/como-deployments.git" - bin_name: como_bin - -scripts: - ci: - type: shell - render_como_templates: - type: shell - local_up: - type: shell - local_down: - type: shell - run_como: - type: shell - migrate_como: - type: shell - new_migration: - type: shell - args: - name: - type: "env" - key: "name" - "sqlx:prepare": - type: shell - - "deploy": - type: shell diff --git a/renovate.json b/renovate.json deleted file mode 100644 index 7190a60..0000000 --- a/renovate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json" -} diff --git a/scripts/ci.sh b/scripts/ci.sh deleted file mode 100755 index 6a84247..0000000 --- a/scripts/ci.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -set -e - -echo "setting up ssh" -cuddle x setup_ssh - -cuddle x start_deployment -cuddle x render_templates -cuddle x render_como_templates -cuddle x build_release -cuddle x push_release -cuddle x deploy_release diff --git a/scripts/deploy.sh b/scripts/deploy.sh deleted file mode 100755 index 5db114f..0000000 --- a/scripts/deploy.sh +++ /dev/null @@ -1,8 +0,0 @@ -export $(cat .env | xargs) - -cuddle x start_deployment -cuddle x render_templates -cuddle x render_como_templates -cuddle x build_release -cuddle x push_release -cuddle x deploy_release diff --git a/scripts/local_down.sh b/scripts/local_down.sh deleted file mode 100755 index cbb90a3..0000000 --- a/scripts/local_down.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -set -e - -cuddle render_template --template-file $TMP/docker-compose.local_up.yml.tmpl --dest $TMP/docker-compose.local_up.yml - -docker compose -f $TMP/docker-compose.local_up.yml down -v diff --git a/scripts/local_up.sh b/scripts/local_up.sh deleted file mode 100755 index ab4369e..0000000 --- a/scripts/local_up.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -set -e - -cuddle render_template --template-file $TMP/docker-compose.local_up.yml.tmpl --dest $TMP/docker-compose.local_up.yml - -docker compose -f $TMP/docker-compose.local_up.yml up -d --remove-orphans --build diff --git a/scripts/migrate_como.sh b/scripts/migrate_como.sh deleted file mode 100755 index 1c4b17a..0000000 --- a/scripts/migrate_como.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -export $(cat .env | xargs) - -cargo sqlx migrate run --source como_infrastructure/migrations --database-url=$DATABASE_URL - diff --git a/scripts/new_migration.sh b/scripts/new_migration.sh deleted file mode 100755 index 26acf15..0000000 --- a/scripts/new_migration.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -export $(cat .env | xargs) - -cargo sqlx migrate add --source como_infrastructure/migrations $name diff --git a/scripts/render_como_templates.sh b/scripts/render_como_templates.sh deleted file mode 100755 index 47073ee..0000000 --- a/scripts/render_como_templates.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -deploymentrepo="$TMP/deployments" - -CUDDLE_FETCH_POLICY=never cuddle render_template \ - --template-file "$TMP/.env.example.tmpl" \ - --dest "$deploymentrepo/$SERVICE/env.example" - diff --git a/scripts/run_como.sh b/scripts/run_como.sh deleted file mode 100755 index d6881a0..0000000 --- a/scripts/run_como.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -e - -(cd crates/como_bin; cargo watch -x run) diff --git a/scripts/sqlx:prepare.sh b/scripts/sqlx:prepare.sh deleted file mode 100755 index e97612a..0000000 --- a/scripts/sqlx:prepare.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -export $(cat .env | xargs) - -cd como_infrastructure || return - -cargo sqlx prepare -- --all-targets --all-features diff --git a/target/.rustc_info.json b/target/.rustc_info.json new file mode 100644 index 0000000..797d661 --- /dev/null +++ b/target/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":5695641769580745861,"outputs":{"15729799797837862367":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/kjuulh/.rustup/toolchains/nightly-2023-11-09-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\noverflow_checks\npanic=\"unwind\"\nproc_macro\nrelocation_model=\"pic\"\ntarget_abi=\"\"\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_equal_alignment=\"16\"\ntarget_has_atomic_equal_alignment=\"32\"\ntarget_has_atomic_equal_alignment=\"64\"\ntarget_has_atomic_equal_alignment=\"8\"\ntarget_has_atomic_equal_alignment=\"ptr\"\ntarget_has_atomic_load_store\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.75.0-nightly (fdaaaf9f9 2023-11-08)\nbinary: rustc\ncommit-hash: fdaaaf9f923281ab98b865259aa40fbf93d72c7a\ncommit-date: 2023-11-08\nhost: x86_64-unknown-linux-gnu\nrelease: 1.75.0-nightly\nLLVM version: 17.0.4\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/target/CACHEDIR.TAG b/target/CACHEDIR.TAG new file mode 100644 index 0000000..20d7c31 --- /dev/null +++ b/target/CACHEDIR.TAG @@ -0,0 +1,3 @@ +Signature: 8a477f597d28d172789f06886806bc55 +# This file is a cache directory tag created by cargo. +# For information about cache directory tags see https://bford.info/cachedir/ diff --git a/crates/como_infrastructure/.sqlx/.gitkeep b/target/debug/.cargo-lock similarity index 100% rename from crates/como_infrastructure/.sqlx/.gitkeep rename to target/debug/.cargo-lock diff --git a/target/debug/.fingerprint/como-160e529e646a6a2f/bin-como b/target/debug/.fingerprint/como-160e529e646a6a2f/bin-como new file mode 100644 index 0000000..c88c04c --- /dev/null +++ b/target/debug/.fingerprint/como-160e529e646a6a2f/bin-como @@ -0,0 +1 @@ +2d021273cf49b2e8 \ No newline at end of file diff --git a/target/debug/.fingerprint/como-160e529e646a6a2f/bin-como.json b/target/debug/.fingerprint/como-160e529e646a6a2f/bin-como.json new file mode 100644 index 0000000..22e3606 --- /dev/null +++ b/target/debug/.fingerprint/como-160e529e646a6a2f/bin-como.json @@ -0,0 +1 @@ +{"rustc":14807947581270927895,"features":"[]","target":17408934091481611008,"profile":11597332650809196192,"path":877780224425946902,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/como-160e529e646a6a2f/dep-bin-como"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0} \ No newline at end of file diff --git a/target/debug/.fingerprint/como-160e529e646a6a2f/dep-bin-como b/target/debug/.fingerprint/como-160e529e646a6a2f/dep-bin-como new file mode 100644 index 0000000..5fdf103 Binary files /dev/null and b/target/debug/.fingerprint/como-160e529e646a6a2f/dep-bin-como differ diff --git a/target/debug/.fingerprint/como-160e529e646a6a2f/invoked.timestamp b/target/debug/.fingerprint/como-160e529e646a6a2f/invoked.timestamp new file mode 100644 index 0000000..e00328d --- /dev/null +++ b/target/debug/.fingerprint/como-160e529e646a6a2f/invoked.timestamp @@ -0,0 +1 @@ +This file has an mtime of when this was started. \ No newline at end of file diff --git a/target/debug/como b/target/debug/como new file mode 100755 index 0000000..aadf2b5 Binary files /dev/null and b/target/debug/como differ diff --git a/target/debug/como.d b/target/debug/como.d new file mode 100644 index 0000000..7e68f12 --- /dev/null +++ b/target/debug/como.d @@ -0,0 +1 @@ +/home/kjuulh/git/git.front.kjuulh.io/kjuulh/como/target/debug/como: /home/kjuulh/git/git.front.kjuulh.io/kjuulh/como/crates/como/src/main.rs diff --git a/target/debug/deps/como-160e529e646a6a2f b/target/debug/deps/como-160e529e646a6a2f new file mode 100755 index 0000000..aadf2b5 Binary files /dev/null and b/target/debug/deps/como-160e529e646a6a2f differ diff --git a/target/debug/deps/como-160e529e646a6a2f.d b/target/debug/deps/como-160e529e646a6a2f.d new file mode 100644 index 0000000..d825344 --- /dev/null +++ b/target/debug/deps/como-160e529e646a6a2f.d @@ -0,0 +1,5 @@ +/home/kjuulh/git/git.front.kjuulh.io/kjuulh/como/target/debug/deps/como-160e529e646a6a2f: crates/como/src/main.rs + +/home/kjuulh/git/git.front.kjuulh.io/kjuulh/como/target/debug/deps/como-160e529e646a6a2f.d: crates/como/src/main.rs + +crates/como/src/main.rs: diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/1o2j028qa0i63by0.o b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/1o2j028qa0i63by0.o new file mode 100644 index 0000000..bbe8f9c Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/1o2j028qa0i63by0.o differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/2mlf92kv997jbws3.o b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/2mlf92kv997jbws3.o new file mode 100644 index 0000000..ea5e87e Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/2mlf92kv997jbws3.o differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/347vqehpzevzv7mx.o b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/347vqehpzevzv7mx.o new file mode 100644 index 0000000..e9adfd5 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/347vqehpzevzv7mx.o differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/39zu95n6skrf3o90.o b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/39zu95n6skrf3o90.o new file mode 100644 index 0000000..434fdf6 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/39zu95n6skrf3o90.o differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/4kc10vdyxb6lb89b.o b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/4kc10vdyxb6lb89b.o new file mode 100644 index 0000000..57811e4 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/4kc10vdyxb6lb89b.o differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/8qw953szi9sma7o.o b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/8qw953szi9sma7o.o new file mode 100644 index 0000000..5e21175 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/8qw953szi9sma7o.o differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/dep-graph.bin b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/dep-graph.bin new file mode 100644 index 0000000..0b18929 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/dep-graph.bin differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/query-cache.bin b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/query-cache.bin new file mode 100644 index 0000000..3f1c955 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/query-cache.bin differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/work-products.bin b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/work-products.bin new file mode 100644 index 0000000..c81c4c1 Binary files /dev/null and b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf-bczt84muwbvv2j5mdnp0hqpdw/work-products.bin differ diff --git a/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf.lock b/target/debug/incremental/como-1dbw5nl5tpj3k/s-gre2mh33a7-hd4slf.lock new file mode 100644 index 0000000..e69de29 diff --git a/templates/.env.example.tmpl b/templates/.env.example.tmpl deleted file mode 100644 index 0021ecf..0000000 --- a/templates/.env.example.tmpl +++ /dev/null @@ -1,4 +0,0 @@ -POSTGRES_DB=como -POSTGRES_USER=como -POSTGRES_PASSWORD=somenotverysecurepassword -DATABASE_URL="postgres://como:somenotverysecurepassword@localhost:5432/como" diff --git a/templates/docker-compose.local_up.dockerignore b/templates/docker-compose.local_up.dockerignore deleted file mode 100644 index 53f730a..0000000 --- a/templates/docker-compose.local_up.dockerignore +++ /dev/null @@ -1,7 +0,0 @@ -target/ -.git/ -.cuddle/ -scripts/ -cuddle.yaml -local.sh -README.md diff --git a/templates/docker-compose.local_up.yml.tmpl b/templates/docker-compose.local_up.yml.tmpl deleted file mode 100644 index b5dc024..0000000 --- a/templates/docker-compose.local_up.yml.tmpl +++ /dev/null @@ -1,17 +0,0 @@ -version: '3.7' - -services: - db: - build: - context: . - dockerfile: local_up.Dockerfile - restart: always - environment: - - POSTGRES_PASSWORD=somenotverysecurepassword - ports: - - 5432:5432 - volumes: - - pgdata:/var/lib/postgresql/data - -volumes: - pgdata: diff --git a/templates/init-user-db.sh b/templates/init-user-db.sh deleted file mode 100644 index 8ee663b..0000000 --- a/templates/init-user-db.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!bin/bash -set -e - -psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL - CREATE USER como WITH PASSWORD 'somenotverysecurepassword'; - CREATE DATABASE como; - GRANT ALL PRIVILEGES ON DATABASE como TO como; -EOSQL diff --git a/templates/local_up.Dockerfile b/templates/local_up.Dockerfile deleted file mode 100644 index c6f6be7..0000000 --- a/templates/local_up.Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM postgres:14-alpine - -COPY *.sh /docker-entrypoint-initdb.d/