diff --git a/README.md b/README.md index 98b1b1a1..c896a4f4 100644 --- a/README.md +++ b/README.md @@ -21,17 +21,41 @@ A free, open source server hosting tool for Minecraft and other multiplayers - [ ] Automated macros and tasks 🚧 - [ ] Connecting without port forward 🚧 -![Lodestone Spring 2023 Roadmap](/public/assets/springRoadmap.png) -## [Download](https://github.com/Lodestone-Team/dashboard/releases/latest) +## Installation -You can download the Lodestone client from our [release page](https://github.com/Lodestone-Team/dashboard/releases/latest). +### Windows +You can download Lodestone Desktop for Windows from the [releases page](https://github.com/Lodestone-Team/lodestone/releases) -We also have a [webapp](https://www.lodestone.cc/) in early access for remote management. +### Linux +Download and run [Lodestone CLI](https://github.com/Lodestone-Team/lodestone_cli). -For any troubleshooting, see our [wiki](https://github.com/Lodestone-Team/lodestone/wiki/Known-Issues). +If you would like to use the dashboard: +1. Use a chromium based browser (Chrome, Edge, Brave, etc.) and go to [https://www.lodestone.cc/](https://www.lodestone.cc/) +2. Follow this [guide](https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html?lang=en) to enable mixed content for the site. +3. If you have browser extensions such as HTTPS Everywhere, disable them for the site. + +To see why step 2 and 3 are necessary and some possible solutions, see [here](https://github.com/Lodestone-Team/lodestone/wiki/FAQ#why-do-i-need-to-enable-mixedinsecure-content-and-disable-https-is-this-safe) + +> **Note** +> Lodestone Desktop for Linux is highly experimental and untested. We won't be able to provide support if you decide to use it. + +### MacOS (Intel) +Download and run [Lodestone CLI](https://github.com/Lodestone-Team/lodestone_cli). + +If you would like to use the dashboard: +1. Use a chromium based browser (Chrome, Edge, Brave, etc.) and go to [https://www.lodestone.cc/](https://www.lodestone.cc/) +2. Follow this [guide](https://experienceleague.adobe.com/docs/target/using/experiences/vec/troubleshoot-composer/mixed-content.html?lang=en) to enable mixed content for the site. +3. If you have browser extensions such as HTTPS Everywhere, disable them for the site. + +To see why step 2 and 3 are necessary and some possible solutions, see [here](https://github.com/Lodestone-Team/lodestone/wiki/FAQ#why-do-i-need-to-enable-mixedinsecure-content-and-disable-https-is-this-safe) + +> **Note** +> ARM Macs are not supported yet. See [this issue](https://github.com/Lodestone-Team/lodestone_core/issues/160) for more info. + +> **Note** +> Lodestone Desktop for MacOs is highly experimental and untested. We won't be able to provide support if you decide to use it. -For installing Lodestone Core, check out [here](https://github.com/Lodestone-Team/lodestone_core). ## Safety & Security diff --git a/package-lock.json b/package-lock.json index a4d8cf20..5dcee606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "lodestone", - "version": "0.4.3", + "version": "0.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "lodestone", - "version": "0.4.3", + "version": "0.5.0", "hasInstallScript": true, "dependencies": { "@fortawesome/fontawesome-free": "^6.1.2", diff --git a/package.json b/package.json index c4e9ddba..2a19286f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lodestone", - "version": "0.4.3", + "version": "0.4.4", "private": true, "scripts": { "dev": "next dev -p 3001", diff --git a/pages/index.tsx b/pages/index.tsx index cbbc3cca..fb334118 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -43,6 +43,10 @@ import { SettingsLayout } from 'components/DashboardLayout/SettingsLayout'; import { toast } from 'react-toastify'; import RequireSetup from 'utils/router/RequireSetup'; import InstanceTabs from 'pages/InstanceTabs/InstanceTabs'; +import ProfilePage from 'pages/settings/profile'; +import CoreSettings from 'pages/settings/CoreSettings'; +import UserSettings from 'pages/settings/UserSettings'; + const queryClient = new QueryClient({ defaultOptions: { @@ -62,6 +66,27 @@ const InstanceTabList = [ 'logs', ]; +export const CoreSettingsTabList = [ + { + title: 'General', + path: 'general', + content: , + }, + { + title: 'Users', + path: 'users', + content: , + }, +]; + +export const AccountSettingsTabList = [ + { + title: 'Profile', + path: 'profile', + content: , + }, +]; + export default function App() { const { location, setSearchParam } = useContext(BrowserLocationContext); @@ -300,7 +325,20 @@ export default function App() { } /> }> - } /> + {CoreSettingsTabList.map((tab, i) => ( + + ))} + {AccountSettingsTabList.map((tab, i) => ( + + ))} } /> diff --git a/public/assets/GenericIcon.svg b/public/assets/GenericIcon.svg new file mode 100644 index 00000000..f881f350 --- /dev/null +++ b/public/assets/GenericIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index e92150ae..362e70b1 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -27,12 +27,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - [[package]] name = "aead" version = "0.5.2" @@ -43,18 +37,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "opaque-debug", -] - [[package]] name = "aes" version = "0.8.2" @@ -62,19 +44,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ "cfg-if", - "cipher 0.4.4", + "cipher", "cpufeatures", ] [[package]] name = "aes-gcm" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" dependencies = [ "aead", - "aes 0.8.2", - "cipher 0.4.4", + "aes", + "cipher", "ctr", "ghash", "subtle", @@ -86,7 +68,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c" dependencies = [ - "aes 0.8.2", + "aes", ] [[package]] @@ -100,6 +82,17 @@ dependencies = [ "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 = "0.7.20" @@ -109,6 +102,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -142,6 +144,55 @@ dependencies = [ "winapi", ] +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" + +[[package]] +name = "anstyle-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" version = "1.0.71" @@ -162,7 +213,7 @@ checksum = "db4ce4441f99dbd377ca8a8f57b698c44d0d6e712d8329b5040da5a64aa1ce73" dependencies = [ "base64ct", "blake2", - "password-hash", + "password-hash 0.4.2", ] [[package]] @@ -176,9 +227,6 @@ name = "arrayvec" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" -dependencies = [ - "serde", -] [[package]] name = "ascii" @@ -187,24 +235,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] -name = "ash" -version = "0.37.2+1.3.238" +name = "asn1-rs" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28bf19c1f0a470be5fbf7522a308a05df06610252c5bcf5143e1b23f629a9a03" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "libloading", + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.21", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 1.0.109", ] [[package]] name = "ast_node" -version = "0.8.8" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70151a5226578411132d798aa248df45b30aa34aea2e580628870b4d87be717b" +checksum = "c704e2f6ee1a98223f5a7629a6ef0f3decb3b552ed282889dc957edff98ce1e6" dependencies = [ - "darling 0.13.4", "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "swc_macros_common", "syn 1.0.109", ] @@ -223,15 +300,29 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-compression" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0122885821398cc923ece939e24d1056a2384ee719432397fa9db87230ff11" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-trait" version = "0.1.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -241,7 +332,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" dependencies = [ "atk-sys", - "bitflags", + "bitflags 1.3.2", "glib", "libc", ] @@ -255,7 +346,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -264,7 +355,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e" dependencies = [ - "num-traits 0.2.15", + "num-traits", ] [[package]] @@ -323,20 +414,20 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.7" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb79c228270dcf2426e74864cabc94babb5dbab01a4314e702d2f16540e1591" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" dependencies = [ "async-trait", "axum-core", "base64 0.21.0", - "bitflags", + "bitflags 1.3.2", "bytes", "futures-util", "headers", "http", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.26", "itoa 1.0.6", "matchit", "memchr", @@ -352,9 +443,8 @@ dependencies = [ "sha1", "sync_wrapper", "tokio", - "tokio-tungstenite 0.18.0", + "tokio-tungstenite", "tower", - "tower-http", "tower-layer", "tower-service", ] @@ -381,7 +471,7 @@ dependencies = [ "bytes", "futures-util", "http", - "http-body", + "http-body 0.4.5", "mime", "rustversion", "tower-layer", @@ -395,9 +485,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bb524613be645939e280b7279f7b017f98cf7f5ef084ec374df373530e73277" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -410,13 +500,13 @@ dependencies = [ "bytes", "futures-util", "http", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.26", "pin-project-lite", - "rustls", + "rustls 0.20.8", "rustls-pemfile", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tower-service", ] @@ -441,6 +531,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[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" @@ -505,13 +601,19 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6776fc96284a0bb647b615056fc496d1fe1644a7ab01829818a6d91cae888b84" + [[package]] name = "blake2" version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -520,15 +622,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -576,9 +669,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" dependencies = [ "memchr", "serde", @@ -586,9 +679,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.1" +version = "3.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" +checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" [[package]] name = "bytemuck" @@ -604,9 +697,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bzip2" @@ -641,7 +734,7 @@ version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c76ee391b03d35510d9fa917357c7f1855bd9a6659c95a1b392e33f49b3369bc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "glib", "libc", @@ -656,7 +749,7 @@ checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -675,7 +768,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -693,16 +786,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" -[[package]] -name = "cfb" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" -dependencies = [ - "byteorder", - "uuid 0.8.2", -] - [[package]] name = "cfb" version = "0.7.3" @@ -711,7 +794,7 @@ checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" dependencies = [ "byteorder", "fnv", - "uuid 1.1.2", + "uuid", ] [[package]] @@ -748,7 +831,7 @@ dependencies = [ "iana-time-zone", "js-sys", "num-integer", - "num-traits 0.2.15", + "num-traits", "serde", "time 0.1.45", "wasm-bindgen", @@ -763,30 +846,63 @@ checksum = "cca491388666e04d7248af3f60f0c40cfb0991c72205595d7c396e3510207d1a" [[package]] name = "cipher" -version = "0.3.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "generic-array 0.14.7", + "crypto-common", + "inout", ] [[package]] -name = "cipher" -version = "0.4.4" +name = "clap" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc" dependencies = [ - "crypto-common", - "inout", + "clap_builder", + "clap_derive", + "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990" +dependencies = [ + "anstream", + "anstyle", + "bitflags 1.3.2", + "clap_lex", + "strsim", ] +[[package]] +name = "clap_derive" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "191d9573962933b4027f932c600cd252ce27a8ad5979418fe78e43c07996f27b" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", +] + +[[package]] +name = "clap_lex" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" + [[package]] name = "cloudabi" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -795,7 +911,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "cocoa-foundation", "core-foundation", @@ -811,7 +927,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "block", "core-foundation", "core-graphics-types", @@ -820,16 +936,6 @@ dependencies = [ "objc", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - [[package]] name = "color-eyre" version = "0.6.2" @@ -863,6 +969,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "combine" version = "4.6.6" @@ -874,16 +986,13 @@ dependencies = [ ] [[package]] -name = "console" -version = "0.15.5" +name = "console_static_text" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" +checksum = "f4be93df536dfbcbd39ff7c129635da089901116b88bfc29ec1acb9b56f8ff35" dependencies = [ - "encode_unicode", - "lazy_static", - "libc", "unicode-width", - "windows-sys 0.42.0", + "vte", ] [[package]] @@ -926,7 +1035,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-graphics-types", "foreign-types", @@ -939,7 +1048,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "foreign-types", "libc", @@ -1043,6 +1152,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "crypto-bigint" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -1065,8 +1186,8 @@ dependencies = [ "itoa 0.4.8", "matches", "phf 0.8.0", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "smallvec", "syn 1.0.109", ] @@ -1077,7 +1198,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" dependencies = [ - "quote 1.0.26", + "quote 1.0.27", "syn 1.0.109", ] @@ -1087,7 +1208,7 @@ version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ - "quote 1.0.26", + "quote 1.0.27", "syn 1.0.109", ] @@ -1097,7 +1218,7 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -1127,93 +1248,14 @@ dependencies = [ "zeroize", ] -[[package]] -name = "cxx" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "scratch", - "syn 2.0.15", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "d3d12" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da" -dependencies = [ - "bitflags", - "libloading", - "winapi", -] - -[[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core 0.13.4", - "darling_macro 0.13.4", -] - [[package]] name = "darling" version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0558d22a7b463ed0241e993f76f09f30b126687447751a8638587b864e4b3944" dependencies = [ - "darling_core 0.20.1", - "darling_macro 0.20.1", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", - "strsim", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] @@ -1224,21 +1266,10 @@ checksum = "ab8bfa2e259f8ee1ce5e97824a3c55ec4404a0d772ca7fa96bf19f0752a046eb" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "strsim", - "syn 2.0.15", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core 0.13.4", - "quote 1.0.26", - "syn 1.0.109", + "syn 2.0.16", ] [[package]] @@ -1247,9 +1278,9 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" dependencies = [ - "darling_core 0.20.1", - "quote 1.0.26", - "syn 2.0.15", + "darling_core", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -1259,7 +1290,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" dependencies = [ "cfg-if", - "hashbrown", + "hashbrown 0.12.3", "lock_api", "once_cell", "parking_lot_core 0.9.7", @@ -1267,9 +1298,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-url" @@ -1288,25 +1319,15 @@ dependencies = [ "winapi", ] -[[package]] -name = "deflate" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" -dependencies = [ - "adler32", - "byteorder", -] - [[package]] name = "deno_ast" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e007f9f03be5484596ea6bed86ffdc6357ba9660cb8da20845baf2ce079722" +checksum = "84b4db18773938f4613617d384b6579983c46fbe9962da7390a9fc7525ccbe9c" dependencies = [ "anyhow", "base64 0.13.1", - "data-url", + "deno_media_type", "dprint-swc-ext", "serde", "swc_atoms", @@ -1330,21 +1351,21 @@ dependencies = [ [[package]] name = "deno_broadcast_channel" -version = "0.83.0" +version = "0.99.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eaddf316a5c63eabe962d8304fbd5f9fa6d360cc6972e72ee541b34b5cd2f88" +checksum = "880af0bb4dc1077a31b0a80fc241e06dc9d4c37c85db0226ee2930b5913a32e8" dependencies = [ "async-trait", "deno_core", "tokio", - "uuid 1.1.2", + "uuid", ] [[package]] name = "deno_cache" -version = "0.21.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb8d1a44cb8c8d18eda0b95b1078f274a29089eb6dd21766a9ecf4ad6cbac685" +checksum = "e88ee20b9c5e25be212fece88f261b77b825e1a04daf925511b5979000a2355d" dependencies = [ "async-trait", "deno_core", @@ -1356,18 +1377,18 @@ dependencies = [ [[package]] name = "deno_console" -version = "0.89.0" +version = "0.105.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cda6cf4635c2261951074023288f23756ac6852e7e63a6bd416a88f0e98c52e" +checksum = "1ce6d5caccaac26056182333e915d28b3b5b332b199dd12ab3467590cbda0039" dependencies = [ "deno_core", ] [[package]] name = "deno_core" -version = "0.171.0" +version = "0.187.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc41944f05dfeacfc2610e91f40ddcf246f3aeeac8ae4c26df46bfbf01a3902" +checksum = "922ed10fa6019414f58095894140e77479662833a62c568b023226e8be103e93" dependencies = [ "anyhow", "bytes", @@ -1384,17 +1405,18 @@ dependencies = [ "serde_v8", "smallvec", "sourcemap", + "tokio", "url", "v8", ] [[package]] name = "deno_crypto" -version = "0.103.0" +version = "0.119.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e2a590be03f643d1147e12e8bc2fb04671b9bd68da9c8857d7d0b11a0255c" +checksum = "9603a2705c5cce5995b98b8fecb743c1fa59d4907b50955160d67e3f5ab6c23e" dependencies = [ - "aes 0.8.2", + "aes", "aes-gcm", "aes-kw", "base64 0.13.1", @@ -1405,31 +1427,31 @@ dependencies = [ "curve25519-dalek 2.1.3", "deno_core", "deno_web", - "elliptic-curve", - "num-traits 0.2.15", + "elliptic-curve 0.12.3", + "num-traits", "once_cell", - "p256", - "p384", + "p256 0.11.1", + "p384 0.11.2", "rand 0.8.5", "ring", "rsa", - "sec1", + "sec1 0.3.0", "serde", "serde_bytes", "sha1", "sha2", - "signature", - "spki", + "signature 1.6.4", + "spki 0.6.0", "tokio", - "uuid 1.1.2", + "uuid", "x25519-dalek", ] [[package]] name = "deno_fetch" -version = "0.113.0" +version = "0.129.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c2ec54d6332b454cad9391e8b9c33edce79837ece8ffaca0f08ab957f78590" +checksum = "7badcac1f31ec0b764e499b295d5915cef12a7f5807cd36fef8a94bb61642043" dependencies = [ "bytes", "data-url", @@ -1446,71 +1468,124 @@ dependencies = [ [[package]] name = "deno_ffi" -version = "0.76.0" +version = "0.92.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11cbb59638f05f3d4ffcb107a91491f70ddc86b93759be1f3858ffd4efd45f6" +checksum = "ddb84937bb270001b99ffb86e6294a333cac4eb360c830d62d86ae3238a3d0d9" dependencies = [ "deno_core", "dlopen", "dynasmrt", "libffi", "serde", + "serde-value", + "serde_json", "tokio", "winapi", ] [[package]] -name = "deno_flash" -version = "0.25.0" +name = "deno_fs" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e6067e14bc4d904b53bd7a4f665eaa119ce31bc1bdb3913d41331de84f0a69" +checksum = "efdbb68302d0bc37d9c065bc4b02d0916291d47b3d8b6bae7baeb7a19e637950" dependencies = [ + "async-trait", "deno_core", - "deno_tls", - "deno_websocket", - "http", - "httparse", + "deno_io", + "filetime", + "fs3", "libc", "log", - "mio", - "rustls", - "rustls-pemfile", + "nix", + "rand 0.8.5", "serde", - "socket2", "tokio", + "winapi", ] [[package]] name = "deno_http" -version = "0.84.0" +version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "868bce9321850c1f2689846e8f031144efa5a7ae197d2839013c576c9b849167" +checksum = "b12eefdf1bdd1350b422bc035f3780c342d5f1523e1fdd379be6f3581c9d6c8b" dependencies = [ - "async-compression", + "async-compression 0.3.15", + "async-trait", "base64 0.13.1", "brotli", "bytes", "cache_control", "deno_core", + "deno_net", "deno_websocket", "flate2", "fly-accept-encoding", - "hyper", + "http", + "httparse", + "hyper 0.14.26", + "hyper 1.0.0-rc.3", + "memmem", "mime", + "once_cell", "percent-encoding", "phf 0.10.1", "pin-project", "ring", "serde", + "slab", + "thiserror", "tokio", "tokio-util", ] +[[package]] +name = "deno_io" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06f69acdc21cc39f852a197a79abbcf2979c06f3ce0c857fd630c8237d491b7e" +dependencies = [ + "async-trait", + "deno_core", + "filetime", + "fs3", + "nix", + "once_cell", + "tokio", + "winapi", +] + +[[package]] +name = "deno_kv" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9583c3da0534d3b8c733b9d7a44a47d90d49ef0471fa1d4c72cf1cb8a895dfeb" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.13.1", + "deno_core", + "hex", + "num-bigint", + "rusqlite", + "serde", +] + +[[package]] +name = "deno_media_type" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63772a60d740a41d97fbffb4788fc3779e6df47289e01892c12be38f4a5beded" +dependencies = [ + "data-url", + "serde", + "url", +] + [[package]] name = "deno_napi" -version = "0.19.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42ac68f4f95a5b786d76aacabfb0e0eb1817841159132b6ac72d6a6dba95429" +checksum = "5dd0864e0f777263334adc6ce7e6f4505d1d85f6126c0aa62413dda278ff9785" dependencies = [ "deno_core", "libloading", @@ -1518,13 +1593,14 @@ dependencies = [ [[package]] name = "deno_net" -version = "0.81.0" +version = "0.97.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ed32765651e169918c9bb7f92d03b4b618401e8744d6a6ce6cc0d89ac4bda01" +checksum = "fd75d728723e39a953089d7673b66c077eef4e5831277b13c5b61b1c9cd350ee" dependencies = [ "deno_core", "deno_tls", "log", + "pin-project", "serde", "socket2", "tokio", @@ -1534,39 +1610,102 @@ dependencies = [ [[package]] name = "deno_node" -version = "0.26.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31411684ae279034f4fdd1fb9d0f2207eeaa7a717fdf490c26b00a22775f08d7" +checksum = "00937b98be3869c782d17163bd62dcbbac3eee4025203329d478dfe7591d050c" dependencies = [ + "aes", + "cbc", + "data-encoding", "deno_core", + "deno_fetch", + "deno_fs", + "deno_media_type", + "deno_npm", + "deno_semver", + "digest 0.10.7", + "dsa", + "ecb", + "elliptic-curve 0.13.5", + "hex", + "hkdf", + "idna 0.3.0", + "indexmap", + "lazy-regex", + "libz-sys", + "md-5", + "md4", + "num-bigint", + "num-bigint-dig", + "num-integer", + "num-traits", "once_cell", + "p224", + "p256 0.13.2", + "p384 0.13.0", "path-clean", + "pbkdf2 0.12.1", + "rand 0.8.5", "regex", + "reqwest", + "ring", + "ripemd", + "rsa", + "scrypt", + "secp256k1", "serde", + "sha-1", + "sha2", + "sha3", + "signature 1.6.4", + "tokio", + "typenum", + "x25519-dalek", + "x509-parser", +] + +[[package]] +name = "deno_npm" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "007cdc59079448de7af94510f7e9652bc6f17e9029741b26f3754f86a3cc2dd0" +dependencies = [ + "anyhow", + "async-trait", + "deno_semver", + "futures", + "log", + "monch", + "once_cell", + "serde", + "thiserror", ] [[package]] name = "deno_ops" -version = "0.49.0" +version = "0.65.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4740bc5738ad07dc1f523a232a4079a995fa2ad11efd71e09e8e32bf28f21ee1" +checksum = "47d3fbb72196f1880ff7a2824e4f3e111f6601b78f38e715ae3d3d412d9e0a42" dependencies = [ + "lazy-regex", "once_cell", "pmutil", "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "regex", "syn 1.0.109", ] [[package]] name = "deno_runtime" -version = "0.97.0" +version = "0.113.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29105932da08341683a01a5460ff683c7bcdf23efbaaf6057e75ecd710fb064b" +checksum = "de89e5887fdb801870c82827e579babc9c57129b87d8e348c1b4cde2e355eccb" dependencies = [ "atty", + "console_static_text", + "deno_ast", "deno_broadcast_channel", "deno_cache", "deno_console", @@ -1574,28 +1713,29 @@ dependencies = [ "deno_crypto", "deno_fetch", "deno_ffi", - "deno_flash", + "deno_fs", "deno_http", + "deno_io", + "deno_kv", "deno_napi", "deno_net", "deno_node", "deno_tls", "deno_url", "deno_web", - "deno_webgpu", "deno_webidl", "deno_websocket", "deno_webstorage", "dlopen", "encoding_rs", + "fastwebsockets", "filetime", "fs3", "fwdansi", "http", - "hyper", + "hyper 0.14.26", "libc", "log", - "lzzzz", "netif", "nix", "notify", @@ -1607,20 +1747,32 @@ dependencies = [ "signal-hook-registry", "termcolor", "tokio", - "uuid 1.1.2", + "uuid", "winapi", "winres", ] +[[package]] +name = "deno_semver" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "242c8ad9f4ce614ec0fa2e6b3d834f2662ce024ca78e9ed4c58d812cbfc3e41d" +dependencies = [ + "monch", + "serde", + "thiserror", + "url", +] + [[package]] name = "deno_tls" -version = "0.76.0" +version = "0.92.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b82b9b18941a42be4108f79f14e8b5a29067e27619293d710324e0dd77d5d8" +checksum = "9f63c6cb5a5bd9ed2422b2d21c6e675edbc54a2dd20caa65f187040f3a525951" dependencies = [ "deno_core", "once_cell", - "rustls", + "rustls 0.21.1", "rustls-native-certs", "rustls-pemfile", "serde", @@ -1630,9 +1782,9 @@ dependencies = [ [[package]] name = "deno_url" -version = "0.89.0" +version = "0.105.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1fe82b011d8b2af63c4587551536d951f47ffc3ba2a710e455b383d4f4b06ba" +checksum = "8e3451bf3b98d028a4f61fae2bba1d58aad1ba790cfe0d14a0b11cd17623f1ee" dependencies = [ "deno_core", "serde", @@ -1642,9 +1794,9 @@ dependencies = [ [[package]] name = "deno_web" -version = "0.120.0" +version = "0.136.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7379502a7a333f573949558803e8bfe2e8fba3ef180cdbb4a882951803c87d20" +checksum = "08198c3ae53f5b722907ebde32d340c6f9223fa347689619cb5d500ee9a176bd" dependencies = [ "async-trait", "base64-simd", @@ -1653,52 +1805,42 @@ dependencies = [ "flate2", "serde", "tokio", - "uuid 1.1.2", -] - -[[package]] -name = "deno_webgpu" -version = "0.90.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b430c70badca6edaf058d08dc622d931355726badc180134db49913270bcf2f" -dependencies = [ - "deno_core", - "serde", - "tokio", - "wgpu-core", - "wgpu-types", + "uuid", + "windows-sys 0.48.0", ] [[package]] name = "deno_webidl" -version = "0.89.0" +version = "0.105.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d046c6ac75f22be851219f44824c42927345f51e0ae5fb825e8bf8ea658d8ee8" +checksum = "3d2c11261edf0f1459f6b7dab67db6241af2c74b1e764d117c607aa649aea338" dependencies = [ "deno_core", ] [[package]] name = "deno_websocket" -version = "0.94.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe8ce87cc7da7b4b0575d5686cafbdb306cb33bf04f33ff6e99325c88f44933" +checksum = "1d6e7a73e3a644b356aa15a86a4b3af756c162d344eeeb6661f81d76ec17f836" dependencies = [ + "bytes", "deno_core", + "deno_net", "deno_tls", + "fastwebsockets", "http", - "hyper", + "hyper 0.14.26", "serde", "tokio", - "tokio-rustls", - "tokio-tungstenite 0.16.1", + "tokio-rustls 0.24.0", ] [[package]] name = "deno_webstorage" -version = "0.84.0" +version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b25958fe8143a02c86971890b7fa08a888e6a8a201e4918ea49220c092c361" +checksum = "4e519c28f99b7670f5238e95ff7ad2577df42703f58ffe7dc54c951818560801" dependencies = [ "deno_core", "deno_web", @@ -1713,10 +1855,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", - "pem-rfc7468", + "pem-rfc7468 0.6.0", "zeroize", ] +[[package]] +name = "der" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56acb310e15652100da43d130af8d97b509e95af61aab1c5a7939ef24337ee17" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -1724,8 +1891,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -1741,20 +1908,11 @@ dependencies = [ [[package]] name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", @@ -1787,6 +1945,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", +] + [[package]] name = "dlopen" version = "0.1.8" @@ -1818,12 +1987,12 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dprint-swc-ext" -version = "0.7.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e2dc99247101e0132a17680c5afbba9a7334477b47738dd3431c13f5e2c9a84" +checksum = "3c3359a644cca781aece7d7c16bfa80fb35ac83da4e1014a28600debd1ef2a7e" dependencies = [ "bumpalo", - "num-bigint 0.4.3", + "num-bigint", "rustc-hash", "swc_atoms", "swc_common", @@ -1832,6 +2001,22 @@ dependencies = [ "text_lines", ] +[[package]] +name = "dsa" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5638f6d17447bc0ffc46354949ee366847e83450e2a07895862942085cc9761" +dependencies = [ + "digest 0.10.7", + "num-bigint-dig", + "num-traits", + "pkcs8 0.10.2", + "rfc6979 0.4.0", + "sha2", + "signature 2.1.0", + "zeroize", +] + [[package]] name = "dtoa" version = "0.4.8" @@ -1847,6 +2032,12 @@ dependencies = [ "dtoa", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "dyn-clone" version = "1.0.11" @@ -1859,12 +2050,12 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "byteorder", "lazy_static", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -1879,16 +2070,39 @@ dependencies = [ "memmap2", ] +[[package]] +name = "ecb" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd84ba81a904351ee27bbccb4aa2461e1cca04176a63ab4f8ca087757681a2" +dependencies = [ + "cipher", +] + [[package]] name = "ecdsa" version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" +dependencies = [ + "der 0.7.6", + "digest 0.10.7", + "elliptic-curve 0.13.5", + "rfc6979 0.4.0", + "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -1903,18 +2117,39 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", - "digest 0.10.6", - "ff", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array 0.14.7", + "group 0.12.1", + "hkdf", + "pem-rfc7468 0.6.0", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.7", + "ff 0.13.0", "generic-array 0.14.7", - "group", + "group 0.13.0", "hkdf", - "pem-rfc7468", - "pkcs8", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.2", "subtle", "zeroize", ] @@ -1938,12 +2173,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "encoding_rs" version = "0.8.31" @@ -1960,8 +2189,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -1971,8 +2200,8 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e40a16955681d469ab3da85aaa6b42ff656b3c67b52e1d8d3dd36afe97fd462" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -1983,32 +2212,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2" dependencies = [ "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "enum_kind" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9895954c6ec59d897ed28a64815f2ceb57653fcaaebd317f2edc78b74f5495b6" -dependencies = [ - "pmutil", - "proc-macro2 1.0.56", - "swc_macros_common", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] -[[package]] -name = "enum_primitive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" -dependencies = [ - "num-traits 0.1.43", -] - [[package]] name = "err-derive" version = "0.3.1" @@ -2016,8 +2224,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34a887c8df3ed90498c1c437ce21f211c8e27672921a8ffa293cb8d6d4caa9e" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "rustversion", "syn 1.0.109", "synstructure", @@ -2091,6 +2299,23 @@ dependencies = [ "instant", ] +[[package]] +name = "fastwebsockets" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1925eb5ee48fffa504a9edce24b3b4d43e2809d1cc713a1df2b13a46e661b3c6" +dependencies = [ + "base64 0.21.0", + "cc", + "hyper 0.14.26", + "pin-project", + "rand 0.8.5", + "sha1", + "simdutf8", + "tokio", + "utf-8", +] + [[package]] name = "fdeflate" version = "0.3.0" @@ -2110,6 +2335,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.1.20" @@ -2208,7 +2443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d449976075322384507443937df2f1d5577afbf4282f12a5a66ef29fa3e6307" dependencies = [ "pmutil", - "proc-macro2 1.0.56", + "proc-macro2 1.0.58", "swc_macros_common", "syn 1.0.109", ] @@ -2330,9 +2565,9 @@ version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -2390,7 +2625,7 @@ version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk-pixbuf", "gdk-sys", @@ -2406,7 +2641,7 @@ version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad38dd9cc8b099cceecdf41375bb6d481b1b5a7cd5cd603e10a69a9383f8619a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gdk-pixbuf-sys", "gio", "glib", @@ -2423,7 +2658,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -2440,7 +2675,7 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -2452,7 +2687,7 @@ dependencies = [ "gdk-sys", "glib-sys", "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", "x11", ] @@ -2486,6 +2721,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -2532,7 +2768,7 @@ version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68fdbc90312d462781a395f7a16d96a2b379bb6ef8cd6310a2df272771c4283b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-channel", "futures-core", "futures-io", @@ -2552,7 +2788,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", "winapi", ] @@ -2562,7 +2798,7 @@ version = "0.15.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "futures-channel", "futures-core", "futures-executor", @@ -2586,8 +2822,8 @@ dependencies = [ "heck 0.4.1", "proc-macro-crate", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -2598,7 +2834,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" dependencies = [ "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -2613,25 +2849,13 @@ version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ - "aho-corasick", + "aho-corasick 0.7.20", "bstr", "fnv", "log", "regex", ] -[[package]] -name = "glow" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e007a07a24de5ecae94160f141029e9a347282cfe25d1d58d85d845cf3130f1" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "gobject-sys" version = "0.15.10" @@ -2640,55 +2864,27 @@ checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" dependencies = [ "glib-sys", "libc", - "system-deps 6.0.5", -] - -[[package]] -name = "gpu-alloc" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22beaafc29b38204457ea030f6fb7a84c9e4dd1b86e311ba0542533453d87f62" -dependencies = [ - "bitflags", - "gpu-alloc-types", -] - -[[package]] -name = "gpu-alloc-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5" -dependencies = [ - "bitflags", -] - -[[package]] -name = "gpu-descriptor" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a" -dependencies = [ - "bitflags", - "gpu-descriptor-types", - "hashbrown", + "system-deps 6.1.0", ] [[package]] -name = "gpu-descriptor-types" -version = "0.1.1" +name = "group" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "bitflags", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", ] [[package]] name = "group" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff", + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] @@ -2700,7 +2896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e3004a2d5d6d8b5057d2b57b3712c9529b62e82c77f25c1fecde1fd5c23bd0" dependencies = [ "atk", - "bitflags", + "bitflags 1.3.2", "cairo-rs", "field-offset", "futures-channel", @@ -2731,7 +2927,7 @@ dependencies = [ "gobject-sys", "libc", "pango-sys", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -2743,16 +2939,16 @@ dependencies = [ "anyhow", "proc-macro-crate", "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] [[package]] name = "h2" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" dependencies = [ "bytes", "fnv", @@ -2772,17 +2968,23 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash", + "ahash 0.8.3", ] [[package]] name = "hashlink" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" +checksum = "0761a1b9491c4f2e3d66aa0f62d0fba0af9a0e2852e4d48ea506632a4b56e6aa" dependencies = [ - "hashbrown", + "hashbrown 0.13.2", ] [[package]] @@ -2792,7 +2994,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" dependencies = [ "base64 0.13.1", - "bitflags", + "bitflags 1.3.2", "bytes", "headers-core", "http", @@ -2858,12 +3060,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - [[package]] name = "hkdf" version = "0.12.3" @@ -2879,7 +3075,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -2911,16 +3107,16 @@ dependencies = [ "log", "mac", "markup5ever", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -2938,6 +3134,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951dfc2e32ac02d67c90c0d65bd27009a635dc9b381a2cc7d284ab01e3a0150d" +dependencies = [ + "bytes", + "http", +] + [[package]] name = "http-range" version = "0.1.5" @@ -2974,7 +3180,7 @@ dependencies = [ "futures-util", "h2", "http", - "http-body", + "http-body 0.4.5", "httparse", "httpdate", "itoa 1.0.6", @@ -2986,17 +3192,39 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75264b2003a3913f118d35c586e535293b3e22e41f074930762929d071e092" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body 1.0.0-rc.2", + "httparse", + "httpdate", + "itoa 1.0.6", + "pin-project-lite", + "tokio", + "tracing", + "want", +] + [[package]] name = "hyper-rustls" -version = "0.23.2" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7" dependencies = [ "http", - "hyper", - "rustls", + "hyper 0.14.26", + "rustls 0.21.1", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.0", ] [[package]] @@ -3006,7 +3234,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper", + "hyper 0.14.26", "native-tls", "tokio", "tokio-native-tls", @@ -3028,22 +3256,21 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] name = "ico" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" +checksum = "031530fe562d8c8d71c0635013d6d155bbfe8ba0aa4b4d2d24ce8af6b71047bd" dependencies = [ "byteorder", - "png 0.11.0", + "png", ] [[package]] @@ -3094,10 +3321,11 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.20" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" dependencies = [ + "crossbeam-utils", "globset", "lazy_static", "log", @@ -3118,8 +3346,8 @@ dependencies = [ "bytemuck", "byteorder", "color_quant", - "num-rational 0.4.1", - "num-traits 0.2.15", + "num-rational", + "num-traits", ] [[package]] @@ -3135,47 +3363,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg 1.1.0", - "hashbrown", + "hashbrown 0.12.3", "serde", ] -[[package]] -name = "indicatif" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4" -dependencies = [ - "console", - "lazy_static", - "number_prefix", - "regex", -] - -[[package]] -name = "infer" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" -dependencies = [ - "cfb 0.6.1", -] - [[package]] name = "infer" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" dependencies = [ - "cfb 0.7.3", -] - -[[package]] -name = "inflate" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" -dependencies = [ - "adler32", + "cfb", ] [[package]] @@ -3184,7 +3382,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" dependencies = [ - "bitflags", + "bitflags 1.3.2", "inotify-sys", "libc", ] @@ -3254,11 +3452,23 @@ checksum = "8a7d079e129b77477a49c5c4f1cfe9ce6c2c909ef52520693e8e811a714c7b20" dependencies = [ "Inflector", "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] +[[package]] +name = "is-terminal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +dependencies = [ + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix", + "windows-sys 0.48.0", +] + [[package]] name = "itertools" version = "0.10.5" @@ -3286,7 +3496,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "javascriptcore-rs-sys", ] @@ -3305,9 +3515,9 @@ dependencies = [ [[package]] name = "jni" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" dependencies = [ "cesu8", "combine", @@ -3334,9 +3544,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" dependencies = [ "wasm-bindgen", ] @@ -3379,14 +3589,12 @@ dependencies = [ ] [[package]] -name = "khronos-egl" -version = "4.1.0" +name = "keccak" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ - "libc", - "libloading", - "pkg-config", + "cpufeatures", ] [[package]] @@ -3405,7 +3613,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", ] @@ -3421,6 +3629,29 @@ dependencies = [ "selectors", ] +[[package]] +name = "lazy-regex" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63c423c68ea6814b7da9e88ce585f793c87ddd9e78f646970891769c8235d4" +dependencies = [ + "lazy-regex-proc_macros", + "once_cell", + "regex", +] + +[[package]] +name = "lazy-regex-proc_macros" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8edfc11b8f56ce85e207e62ea21557cfa09bb24a8f6b04ae181b086ff8611c22" +dependencies = [ + "proc-macro2 1.0.58", + "quote 1.0.27", + "regex", + "syn 1.0.109", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -3505,9 +3736,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.143" +version = "0.2.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc207893e85c5d6be840e969b496b53d94cec8be2d501b214f50daa97fa8024" +checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" [[package]] name = "libdbus-sys" @@ -3555,9 +3786,9 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libsqlite3-sys" @@ -3571,21 +3802,24 @@ dependencies = [ ] [[package]] -name = "line-wrap" -version = "0.1.1" +name = "libz-sys" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" +checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" dependencies = [ - "safemem", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "line-wrap" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" dependencies = [ - "cc", + "safemem", ] [[package]] @@ -3596,9 +3830,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "local-ip-address" @@ -3624,7 +3858,7 @@ dependencies = [ [[package]] name = "lodestone-client" -version = "0.4.3" +version = "0.4.4" dependencies = [ "lodestone_core", "portpicker", @@ -3638,8 +3872,8 @@ dependencies = [ [[package]] name = "lodestone_core" -version = "0.4.3" -source = "git+https://github.com/Lodestone-Team/lodestone_core?branch=main#f1e918d87b65f60bd9889a38e3ec00d410684748" +version = "0.4.4" +source = "git+https://github.com/Lodestone-Team/lodestone_core?branch=main#cbd5991820e9f6c5e12a358d5e1ba47ec47d9b64" dependencies = [ "ansi_term", "argon2", @@ -3650,7 +3884,9 @@ dependencies = [ "axum-server", "base64 0.20.0", "chrono", + "clap", "color-eyre", + "dashmap", "deno_ast", "deno_core", "deno_runtime", @@ -3666,10 +3902,10 @@ dependencies = [ "home", "igd", "indexmap", - "indicatif", "jsonwebtoken", "lazy_static", "local-ip-address", + "once_cell", "port_scanner", "rand 0.6.5", "rand_core 0.6.4", @@ -3699,8 +3935,8 @@ dependencies = [ "tracing-error", "tracing-subscriber", "ts-rs", - "unrar", - "uuid 1.1.2", + "url", + "uuid", "walkdir", "whoami", "zip", @@ -3739,15 +3975,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "lzzzz" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8014d1362004776e6a91e4c15a3aa7830d1b6650a075b51a9969ebb6d6af13bc" -dependencies = [ - "cc", -] - [[package]] name = "mac" version = "0.1.1" @@ -3812,10 +4039,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] -name = "matchit" -version = "0.7.0" +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[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 = "md4" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" +checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda" +dependencies = [ + "digest 0.10.7", +] [[package]] name = "memchr" @@ -3832,6 +4077,12 @@ dependencies = [ "libc", ] +[[package]] +name = "memmem" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" + [[package]] name = "memoffset" version = "0.6.5" @@ -3850,20 +4101,6 @@ dependencies = [ "autocfg 1.1.0", ] -[[package]] -name = "metal" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" -dependencies = [ - "bitflags", - "block", - "core-graphics-types", - "foreign-types", - "log", - "objc", -] - [[package]] name = "mime" version = "0.3.17" @@ -3932,6 +4169,12 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "monch" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb73e1dc7d232e1ab47ef27f45fa1d173a0979b370e763a9d0584556011150e0" + [[package]] name = "multer" version = "2.1.0" @@ -3950,27 +4193,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "naga" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eafe22a23b797c9bc227c6c896419b26b5bb88fa903417a3adaed08778850d5" -dependencies = [ - "bit-set", - "bitflags", - "codespan-reporting", - "hexf-parse", - "indexmap", - "log", - "num-traits 0.2.15", - "rustc-hash", - "serde", - "spirv", - "termcolor", - "thiserror", - "unicode-xid 0.2.4", -] - [[package]] name = "native-tls" version = "0.2.11" @@ -3995,7 +4217,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "jni-sys", "ndk-sys", "num_enum", @@ -4036,8 +4258,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c168194d373b1e134786274020dae7fc5513d565ea2ebb9bc9ff17ffb69106d4" dependencies = [ "either", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "serde", "syn 1.0.109", ] @@ -4064,7 +4286,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -4092,7 +4314,7 @@ version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2c66da08abae1c024c01d635253e402341b4060a12e99b31c7594063bf490a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crossbeam-channel", "filetime", "fsevent-sys", @@ -4135,32 +4357,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num" -version = "0.1.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" -dependencies = [ - "num-bigint 0.1.44", - "num-complex", - "num-integer", - "num-iter", - "num-rational 0.1.42", - "num-traits 0.2.15", -] - -[[package]] -name = "num-bigint" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1" -dependencies = [ - "num-integer", - "num-traits 0.2.15", - "rand 0.4.6", - "rustc-serialize", -] - [[package]] name = "num-bigint" version = "0.4.3" @@ -4169,7 +4365,8 @@ checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" dependencies = [ "autocfg 1.1.0", "num-integer", - "num-traits 0.2.15", + "num-traits", + "rand 0.8.5", "serde", ] @@ -4181,25 +4378,16 @@ checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905" dependencies = [ "byteorder", "lazy_static", - "libm 0.2.6", + "libm 0.2.7", "num-integer", "num-iter", - "num-traits 0.2.15", + "num-traits", "rand 0.8.5", + "serde", "smallvec", "zeroize", ] -[[package]] -name = "num-complex" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656" -dependencies = [ - "num-traits 0.2.15", - "rustc-serialize", -] - [[package]] name = "num-integer" version = "0.1.45" @@ -4207,7 +4395,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg 1.1.0", - "num-traits 0.2.15", + "num-traits", ] [[package]] @@ -4218,19 +4406,7 @@ checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg 1.1.0", "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-rational" -version = "0.1.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e" -dependencies = [ - "num-bigint 0.1.44", - "num-integer", - "num-traits 0.2.15", - "rustc-serialize", + "num-traits", ] [[package]] @@ -4241,16 +4417,7 @@ checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg 1.1.0", "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.15", + "num-traits", ] [[package]] @@ -4260,7 +4427,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg 1.1.0", - "libm 0.2.6", + "libm 0.2.7", ] [[package]] @@ -4289,8 +4456,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -4303,12 +4470,6 @@ dependencies = [ "libc", ] -[[package]] -name = "number_prefix" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a" - [[package]] name = "objc" version = "0.2.7" @@ -4357,11 +4518,20 @@ dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" -version = "1.16.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "opaque-debug" @@ -4385,7 +4555,7 @@ version = "0.10.52" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "foreign-types", "libc", @@ -4400,9 +4570,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -4423,6 +4593,15 @@ dependencies = [ "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 = "os_info" version = "3.7.0" @@ -4462,14 +4641,38 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +[[package]] +name = "p224" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30c06436d66652bc2f01ade021592c80a2aad401570a18aa18b82e440d2b9aa1" +dependencies = [ + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", + "primeorder", + "sha2", +] + [[package]] name = "p256" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", + "primeorder", "sha2", ] @@ -4479,8 +4682,20 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2", +] + +[[package]] +name = "p384" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" +dependencies = [ + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", + "primeorder", "sha2", ] @@ -4500,7 +4715,7 @@ version = "0.15.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e4045548659aee5313bde6c582b0d83a627b7904dd20dc2d9ef0895d414e4f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "glib", "libc", "once_cell", @@ -4516,7 +4731,7 @@ dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -4578,6 +4793,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "paste" version = "1.0.12" @@ -4602,12 +4828,22 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac", - "password-hash", + "password-hash 0.4.2", "sha2", ] +[[package]] +name = "pbkdf2" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +dependencies = [ + "digest 0.10.7", + "hmac", +] + [[package]] name = "pem" version = "1.1.1" @@ -4626,6 +4862,15 @@ dependencies = [ "base64ct", ] +[[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.2.0" @@ -4693,8 +4938,8 @@ dependencies = [ "phf_generator 0.8.0", "phf_shared 0.8.0", "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -4707,8 +4952,8 @@ dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -4732,22 +4977,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -4768,9 +5013,9 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" dependencies = [ - "der", - "pkcs8", - "spki", + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", "zeroize", ] @@ -4780,8 +5025,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.6", + "spki 0.7.2", ] [[package]] @@ -4816,30 +5071,18 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] -[[package]] -name = "png" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" -dependencies = [ - "bitflags", - "deflate", - "inflate", - "num-iter", -] - [[package]] name = "png" version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa" dependencies = [ - "bitflags", + "bitflags 1.3.2", "crc32fast", "fdeflate", "flate2", @@ -4885,6 +5128,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "primeorder" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8d3875361e28f7753baefef104386e7aa47642c93023356d97fdef4003bfb5" +dependencies = [ + "elliptic-curve 0.13.5", +] + [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -4902,8 +5154,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", "version_check", ] @@ -4914,8 +5166,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "version_check", ] @@ -4936,18 +5188,21 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8" dependencies = [ "unicode-ident", ] [[package]] -name = "profiling" -version = "1.0.8" +name = "psm" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332cd62e95873ea4f41f3dfd6bbbfc5b52aec892d7e8d534197c4720a0bbbab2" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] [[package]] name = "quick-error" @@ -4984,11 +5239,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" dependencies = [ - "proc-macro2 1.0.56", + "proc-macro2 1.0.58", ] [[package]] @@ -5191,12 +5446,6 @@ dependencies = [ "rand_core 0.3.1", ] -[[package]] -name = "range-alloc" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" - [[package]] name = "raw-window-handle" version = "0.5.2" @@ -5250,7 +5499,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -5259,7 +5508,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -5275,13 +5524,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" dependencies = [ - "aho-corasick", + "aho-corasick 1.0.1", "memchr", - "regex-syntax", + "regex-syntax 0.7.1", ] [[package]] @@ -5290,7 +5539,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", ] [[package]] @@ -5299,6 +5548,12 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +[[package]] +name = "regex-syntax" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" + [[package]] name = "remove_dir_all" version = "0.5.3" @@ -5310,11 +5565,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.17" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ - "async-compression", + "async-compression 0.4.0", "base64 0.21.0", "bytes", "encoding_rs", @@ -5322,8 +5577,8 @@ dependencies = [ "futures-util", "h2", "http", - "http-body", - "hyper", + "http-body 0.4.5", + "hyper 0.14.26", "hyper-rustls", "hyper-tls", "ipnet", @@ -5334,14 +5589,14 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", + "rustls 0.21.1", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.0", "tokio-socks", "tokio-util", "tower-service", @@ -5370,11 +5625,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + [[package]] name = "rfd" version = "0.10.0" @@ -5424,14 +5689,12 @@ dependencies = [ ] [[package]] -name = "ron" -version = "0.8.0" +name = "ripemd" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "base64 0.13.1", - "bitflags", - "serde", + "digest 0.10.7", ] [[package]] @@ -5447,15 +5710,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c" dependencies = [ "byteorder", - "digest 0.10.6", + "digest 0.10.7", "num-bigint-dig", "num-integer", "num-iter", - "num-traits 0.2.15", + "num-traits", "pkcs1", - "pkcs8", + "pkcs8 0.9.0", "rand_core 0.6.4", - "signature", + "signature 1.6.4", "smallvec", "subtle", "zeroize", @@ -5467,7 +5730,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01e213bc3ecb39ac32e81e51ebe31fd888a940515173e3a18a35f8c6e896422a" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -5487,12 +5750,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "rustc-serialize" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" - [[package]] name = "rustc_version" version = "0.2.3" @@ -5511,13 +5768,22 @@ dependencies = [ "semver 1.0.17", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -5537,6 +5803,18 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e" +dependencies = [ + "log", + "ring", + "rustls-webpki", + "sct", +] + [[package]] name = "rustls-native-certs" version = "0.6.2" @@ -5558,6 +5836,16 @@ dependencies = [ "base64 0.21.0", ] +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.12" @@ -5584,6 +5872,15 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + [[package]] name = "same-file" version = "1.0.6" @@ -5625,42 +5922,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] -name = "scratch" -version = "1.0.5" +name = "scrypt" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "password-hash 0.5.0", + "pbkdf2 0.12.1", + "salsa20", + "sha2", +] [[package]] name = "sct" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array 0.14.7", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.6", + "generic-array 0.14.7", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ - "ring", - "untrusted", + "rand 0.8.5", + "secp256k1-sys", ] [[package]] -name = "sec1" -version = "0.3.0" +name = "secp256k1-sys" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" dependencies = [ - "base16ct", - "der", - "generic-array 0.14.7", - "pkcs8", - "subtle", - "zeroize", + "cc", ] [[package]] name = "security-framework" -version = "2.8.2" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -5669,9 +6005,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" dependencies = [ "core-foundation-sys", "libc", @@ -5683,7 +6019,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cssparser", "derive_more", "fxhash", @@ -5723,9 +6059,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.162" +version = "1.0.163" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6" +checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" dependencies = [ "serde_derive", ] @@ -5741,6 +6077,16 @@ dependencies = [ "serde_json", ] +[[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_bytes" version = "0.11.9" @@ -5752,13 +6098,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.162" +version = "1.0.163" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" +checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -5788,16 +6134,16 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] [[package]] name = "serde_spanned" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" +checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d" dependencies = [ "serde", ] @@ -5816,15 +6162,17 @@ dependencies = [ [[package]] name = "serde_v8" -version = "0.82.0" +version = "0.98.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060fd38f18c420e82ab21592ec1f088b39bccb6897b1dda394d63628e22158d" +checksum = "ac09be069e49932c7c1df9b25c9e76ecb235e2127530462885926431c00d05f3" dependencies = [ "bytes", "derive_more", + "num-bigint", "serde", "serde_bytes", "smallvec", + "thiserror", "v8", ] @@ -5850,10 +6198,10 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ - "darling 0.20.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "darling", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -5873,8 +6221,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -5888,19 +6236,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha-1" version = "0.10.0" @@ -5909,7 +6244,7 @@ checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -5920,7 +6255,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -5931,7 +6266,17 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", ] [[package]] @@ -5968,7 +6313,17 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[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 0.6.4", ] @@ -5978,14 +6333,20 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f" +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "simple_asn1" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ - "num-bigint 0.4.3", - "num-traits 0.2.15", + "num-bigint", + "num-traits", "thiserror", "time 0.3.21", ] @@ -6005,21 +6366,23 @@ dependencies = [ "autocfg 1.1.0", ] -[[package]] -name = "slotmap" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" -dependencies = [ - "version_check", -] - [[package]] name = "smallvec" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg 1.1.0", + "static_assertions", + "version_check", +] + [[package]] name = "socket2" version = "0.4.9" @@ -6036,7 +6399,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2b4d76501d8ba387cf0fefbe055c3e0a59891d09f0f995ae4e4b16f6b60f3c0" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gio", "glib", "libc", @@ -6050,7 +6413,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "009ef427103fcb17f802871647a7fa6c60cbb654b4c4e4c0ac60a31c5f6dc9cf" dependencies = [ - "bitflags", + "bitflags 1.3.2", "gio-sys", "glib-sys", "gobject-sys", @@ -6089,23 +6452,23 @@ dependencies = [ ] [[package]] -name = "spirv" -version = "0.2.0+1.5.4" +name = "spki" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ - "bitflags", - "num-traits 0.2.15", + "base64ct", + "der 0.6.1", ] [[package]] name = "spki" -version = "0.6.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ "base64ct", - "der", + "der 0.7.6", ] [[package]] @@ -6133,9 +6496,9 @@ name = "sqlx-core" version = "0.6.2" source = "git+https://github.com/Lodestone-Team/sqlx#072d4d6259db1203dfe341811ea838a6b886f7ae" dependencies = [ - "ahash", + "ahash 0.7.6", "atoi", - "bitflags", + "bitflags 1.3.2", "byteorder", "bytes", "crc", @@ -6160,7 +6523,7 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rustls", + "rustls 0.20.8", "rustls-pemfile", "serde", "serde_json", @@ -6184,8 +6547,8 @@ dependencies = [ "either", "heck 0.4.1", "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "serde_json", "sha2", "sqlx-core", @@ -6201,7 +6564,7 @@ source = "git+https://github.com/Lodestone-Team/sqlx#072d4d6259db1203dfe341811ea dependencies = [ "once_cell", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", ] [[package]] @@ -6210,6 +6573,19 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + [[package]] name = "state" version = "0.5.3" @@ -6247,19 +6623,19 @@ checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" dependencies = [ "phf_generator 0.10.0", "phf_shared 0.10.0", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", ] [[package]] name = "string_enum" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91f42363e5ca94ea6f3faee9e3b5e1a4047535ae323f5c0579385fb2ae95874e" +checksum = "0090512bdfee4b56d82480d66c0fd8a6f53f0fe0f97e075e949b252acdd482e0" dependencies = [ "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "swc_macros_common", "syn 1.0.109", ] @@ -6296,22 +6672,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" dependencies = [ "heck 0.3.3", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "swc_atoms" -version = "0.4.34" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731cf66bd8e11030f056f91f9d8af77f83ec4377ff04d1670778a57d1607402a" +checksum = "593c2f3e4cea60ddc4179ed731cabebe7eacec209d9e76a3bbcff4b2b020e3f5" dependencies = [ "once_cell", "rustc-hash", @@ -6323,18 +6699,18 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.29.29" +version = "0.31.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97e491d31418cd33fea58e9f893316fc04b30e2b5d0e750c066e2ba4907ae54" +checksum = "2b557014d62318e08070c2a3d5eb0278ff73749dd69db53c39a4de4bcd301d6a" dependencies = [ - "ahash", + "ahash 0.7.6", "ast_node", "better_scoped_tls", "cfg-if", "either", "from_variant", "new_debug_unreachable", - "num-bigint 0.4.3", + "num-bigint", "once_cell", "rustc-hash", "serde", @@ -6368,21 +6744,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dadb9998d4f5fc36ef558ed5a092579441579ee8c6fcce84a5228cca9df4004" dependencies = [ "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "swc_macros_common", "syn 1.0.109", ] [[package]] name = "swc_ecma_ast" -version = "0.96.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a887102d5595b557261aa4bde35f3d71906fba674d4b79cd5c59b4155b12ee2d" +checksum = "5206233430a6763e2759da76cfc596a64250793f70cd94cace1f82fdcc4d702c" dependencies = [ - "bitflags", + "bitflags 2.3.1", "is-macro", - "num-bigint 0.4.3", + "num-bigint", "scoped-tls", "serde", "string_enum", @@ -6393,12 +6769,12 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.129.8" +version = "0.138.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f8f20522626a737753381bdf64ee53d568730f9f7e720d35960de97e5ff965" +checksum = "cf45c899625d5132f2993a464a79f2ec7c79854b74fd3c55d1408b76d7d7750c" dependencies = [ "memchr", - "num-bigint 0.4.3", + "num-bigint", "once_cell", "rustc-hash", "serde", @@ -6412,24 +6788,24 @@ dependencies = [ [[package]] name = "swc_ecma_codegen_macros" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0159c99f81f52e48fe692ef7af1b0990b45d3006b14c6629be0b1ffee1b23aea" +checksum = "bf4ee0caee1018808d94ecd09490cb7affd3d504b19aa11c49238f5fc4b54901" dependencies = [ "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "swc_macros_common", "syn 1.0.109", ] [[package]] name = "swc_ecma_loader" -version = "0.41.31" +version = "0.43.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c996baa947150d496c79fbd153d3df834e38d05c779abc4af987aded90e168a2" +checksum = "f1d985c6e7111fef3c0103b0414db0d792cb04b492601c94ccae2d494ffdf764" dependencies = [ - "ahash", + "ahash 0.7.6", "anyhow", "pathdiff", "serde", @@ -6439,16 +6815,17 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.124.5" +version = "0.133.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e75888eabf1ad8a8968e3befc7cd20c10e4721254d3344285bd5c3a42f58dc1" +checksum = "8ce724a8fdc90548d882dec3b0288c0698059ce12a59bbfdeea0384f3d52f009" dependencies = [ "either", - "enum_kind", "lexical", - "num-bigint 0.4.3", + "num-bigint", "serde", "smallvec", + "smartstring", + "stacker", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -6458,12 +6835,13 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.116.5" +version = "0.126.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5a212abba41897332f9ab3af8fe5d1a59f83d69e25eea119c27d9b53876688" +checksum = "3c4236f8b9bea9d3d43cacab34b6e3c925c3f12585382b8f661cb994b987b688" dependencies = [ "better_scoped_tls", - "bitflags", + "bitflags 2.3.1", + "indexmap", "once_cell", "phf 0.10.1", "rustc-hash", @@ -6480,9 +6858,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.105.5" +version = "0.115.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2fd5a8eff1a7f16ec1b3ae50186debf3d3983effed6ed05d4e6db0ed7aadcac" +checksum = "bd5b13763feba98586887a92801603c413897805c70ed82e49e4acc1f90683c2" dependencies = [ "swc_atoms", "swc_common", @@ -6494,24 +6872,25 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_macros" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf907935ec5492256b523ae7935a824d9fdc0368dcadc41375bad0dca91cd8b" +checksum = "984d5ac69b681fc5438f9abf82b0fda34fe04e119bc75f8213b7e01128c7c9a2" dependencies = [ "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "swc_macros_common", "syn 1.0.109", ] [[package]] name = "swc_ecma_transforms_proposal" -version = "0.149.8" +version = "0.160.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6fe11a20c7ced3c6b6149da330b8b4d8912fe02af6923aaac4d4479aa3dd3b6" +checksum = "d21de731e3ff1ea451ac8c377a7130ebf6dbf6ffd18e744c15f86e685e0abd9a" dependencies = [ "either", + "rustc-hash", "serde", "smallvec", "swc_atoms", @@ -6526,18 +6905,17 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.160.9" +version = "0.172.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94e3884668e2e12684e4adf812dbd22d34b17da2d7637b1c9cffe393acad6c2" +checksum = "a0df18263e6c0804a1a08abd29e87af763dce1bec4b500497a0b62c22df07b2d" dependencies = [ - "ahash", + "ahash 0.7.6", "base64 0.13.1", "dashmap", "indexmap", "once_cell", - "regex", "serde", - "sha-1 0.10.0", + "sha-1", "string_enum", "swc_atoms", "swc_common", @@ -6552,9 +6930,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.164.10" +version = "0.176.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a885199b43798b46d8b26b4a986f899436f9f2cb37477eb12a183388a5c213f" +checksum = "d1a3f356bc2b902c13fc1e39bb66c10f350c46bfe93bae5c05402863d94bd307" dependencies = [ "serde", "swc_atoms", @@ -6568,9 +6946,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.107.5" +version = "0.116.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d773cf626c8d3be468a883879cda3727a2f1ea6169ccd0b5b8eb2d7afb5f367b" +checksum = "b462a1b6fc788ee956479adcbb05c282cb142a66a3b016b571fff0538a381196" dependencies = [ "indexmap", "num_cpus", @@ -6586,11 +6964,11 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.82.3" +version = "0.89.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2ee0f4b61d6c426189d0d9da1333705ff3bc4513fb63633ca254595a700f75" +checksum = "ecb23a4a1d77997f54e9b3a4e68d1441e5e8a25ad1a476bbb3b5a620d6562a86" dependencies = [ - "num-bigint 0.4.3", + "num-bigint", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -6605,8 +6983,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c20468634668c2bbab581947bb8c75c97158d5a6959f4ba33df20983b20b4f6" dependencies = [ "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -6617,8 +6995,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e582c3e3c2269238524923781df5be49e011dbe29cf7683a2215d600a562ea6" dependencies = [ "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -6640,8 +7018,8 @@ checksum = "ebeed7eb0f545f48ad30f5aab314e5208b735bcea1d1464f26e20f06db904989" dependencies = [ "Inflector", "pmutil", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "swc_macros_common", "syn 1.0.109", ] @@ -6663,19 +7041,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.15" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "unicode-ident", ] @@ -6691,8 +7069,8 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", "unicode-xid 0.2.4", ] @@ -6727,9 +7105,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.0.5" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fe581ad25d11420b873cf9aedaca0419c2b411487b134d4d21065f3d092055" +checksum = "e5fa6fb9ee296c0dc2df41a656ca7948546d061958115ddb0bcaae43ad0d17d2" dependencies = [ "cfg-expr 0.15.1", "heck 0.4.1", @@ -6740,11 +7118,11 @@ dependencies = [ [[package]] name = "tao" -version = "0.14.0" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43336f5d1793543ba96e2a1e75f3a5c7dcd592743be06a0ab3a190f4fcb4b934" +checksum = "ac8e6399427c8494f9849b58694754d7cc741293348a6836b6c8d2c5aa82d8e6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "cc", "cocoa", @@ -6773,12 +7151,12 @@ dependencies = [ "once_cell", "parking_lot 0.12.1", "paste", - "png 0.17.8", + "png", "raw-window-handle", "scopeguard", "serde", "unicode-segmentation", - "uuid 1.1.2", + "uuid", "windows 0.39.0", "windows-implement", "x11-dl", @@ -6803,9 +7181,9 @@ checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" [[package]] name = "tauri" -version = "1.1.4" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad0833f2a2833808091721ac4d99ed873f9ae48187523b518f666841cb31701" +checksum = "e3a1fe72365a6d860fddf3403934649a5157b2bbb6f0b50dd3a8858cd1a22412" dependencies = [ "anyhow", "attohttpc 0.22.0", @@ -6851,7 +7229,7 @@ dependencies = [ "time 0.3.21", "tokio", "url", - "uuid 1.1.2", + "uuid", "webkit2gtk", "webview2-com", "windows 0.39.0", @@ -6878,18 +7256,18 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb77cf7bfe3d8f886e73a7fa6157587d015c599671180b76595c1aef175ba8" +checksum = "14388d484b6b1b5dc0f6a7d6cc6433b3b230bec85eaa576adcdf3f9fafa49251" dependencies = [ "base64 0.13.1", "brotli", "ico", "json-patch 0.2.7", "plist", - "png 0.17.8", - "proc-macro2 1.0.56", - "quote 1.0.26", + "png", + "proc-macro2 1.0.58", + "quote 1.0.27", "regex", "semver 1.0.17", "serde", @@ -6898,19 +7276,19 @@ dependencies = [ "tauri-utils", "thiserror", "time 0.3.21", - "uuid 1.1.2", + "uuid", "walkdir", ] [[package]] name = "tauri-macros" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f24f481b0b2acfc288ac78755f00ebea53992c7365a165af64cb5ae00806edea" +checksum = "069319e5ecbe653a799b94b0690d9f9bf5d00f7b1d3989aa331c524d4e354075" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", "tauri-codegen", "tauri-utils", @@ -6929,14 +7307,13 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.11.2" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be6283addfc4ccc2bd10ed0d87dcba582bf3f511998047e6a193c13c75cae3c9" +checksum = "dc36898ad4acb6c381878acf903c320a36cf29b68b74f6e791d6045b6557128c" dependencies = [ "gtk", "http", "http-range", - "infer 0.7.0", "rand 0.8.5", "raw-window-handle", "serde", @@ -6944,16 +7321,16 @@ dependencies = [ "tauri-utils", "thiserror", "url", - "uuid 1.1.2", + "uuid", "webview2-com", "windows 0.39.0", ] [[package]] name = "tauri-runtime-wry" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca3f21cc3502edda0df6d0579870ab4d6dbe82c0da1d67e8c129f8f22eb62ce" +checksum = "e2ebc22bc5566ba33310744fadd86709fa591ed163491b165855474523ac1aab" dependencies = [ "cocoa", "gtk", @@ -6963,7 +7340,7 @@ dependencies = [ "tauri-runtime", "tauri-utils", "url", - "uuid 1.1.2", + "uuid", "webkit2gtk", "webview2-com", "windows 0.39.0", @@ -6981,13 +7358,13 @@ dependencies = [ "glob", "heck 0.4.1", "html5ever", - "infer 0.12.0", + "infer", "json-patch 1.0.0", "kuchiki", "memchr", "phf 0.10.1", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "semver 1.0.17", "serde", "serde_json", @@ -7092,9 +7469,9 @@ version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -7177,14 +7554,13 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.24.2" +version = "1.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" +checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" dependencies = [ "autocfg 1.1.0", "bytes", "libc", - "memchr", "mio", "num_cpus", "parking_lot 0.12.1", @@ -7192,18 +7568,18 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] @@ -7222,11 +7598,21 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.8", "tokio", "webpki", ] +[[package]] +name = "tokio-rustls" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5" +dependencies = [ + "rustls 0.21.1", + "tokio", +] + [[package]] name = "tokio-socks" version = "0.5.1" @@ -7250,22 +7636,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e80b39df6afcc12cdf752398ade96a6b9e99c903dfdc36e53ad10b9c366bca72" -dependencies = [ - "futures-util", - "log", - "rustls", - "tokio", - "tokio-rustls", - "tungstenite 0.16.0", - "webpki", - "webpki-roots", -] - [[package]] name = "tokio-tungstenite" version = "0.18.0" @@ -7275,14 +7645,14 @@ dependencies = [ "futures-util", "log", "tokio", - "tungstenite 0.18.0", + "tungstenite", ] [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes", "futures-core", @@ -7315,9 +7685,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" dependencies = [ "serde", ] @@ -7357,12 +7727,12 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", "http", - "http-body", + "http-body 0.4.5", "http-range-header", "httpdate", "mime", @@ -7371,7 +7741,6 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower", "tower-layer", "tower-service", "tracing", @@ -7419,16 +7788,16 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -7561,6 +7930,7 @@ version = "6.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4added4070a4fdf9df03457206cd2e4b12417c8560a2954d91ffcbe60177a56a" dependencies = [ + "indexmap", "thiserror", "ts-rs-macros", ] @@ -7572,33 +7942,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f807fdb3151fee75df7485b901a89624358cd07a67a8fb1a5831bf5a07681ff" dependencies = [ "Inflector", - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", "termcolor", ] -[[package]] -name = "tungstenite" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" -dependencies = [ - "base64 0.13.1", - "byteorder", - "bytes", - "http", - "httparse", - "log", - "rand 0.8.5", - "rustls", - "sha-1 0.9.8", - "thiserror", - "url", - "utf-8", - "webpki", -] - [[package]] name = "tungstenite" version = "0.18.0" @@ -7739,39 +8088,14 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle", ] -[[package]] -name = "unrar" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433cea4f0b7bec88d47becb380887b8786a3cfb1c82e1ef9d32a682ba6801814" -dependencies = [ - "bitflags", - "enum_primitive", - "lazy_static", - "num", - "regex", - "unrar_sys", -] - -[[package]] -name = "unrar_sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0009399408dc0bcc5c8910672544fceceeba18b91f741ff943916e917d982c60" -dependencies = [ - "cc", - "libc", - "winapi", -] - [[package]] name = "untrusted" version = "0.7.1" @@ -7810,16 +8134,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] -name = "uuid" -version = "0.8.2" +name = "utf8parse" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.1.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" +checksum = "345444e32442451b267fc254ae85a209c64be56d2890e601a0c37ff0c3c5ecd2" dependencies = [ "getrandom 0.2.9", "rand 0.8.5", @@ -7829,24 +8153,24 @@ dependencies = [ [[package]] name = "uuid-macro-internal" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d884370cccfad1f913e67c7362f9c00357844bc9f3cfce86faa2241cabd166" +checksum = "3f67b459f42af2e6e1ee213cb9da4dbd022d3320788c3fb3e1b893093f1e45da" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] name = "v8" -version = "0.60.1" +version = "0.71.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fd5b3ed559897ff02c0f62bc0a5f300bfe79bb4c77a50031b8df771701c628" +checksum = "1a4bbfd886a9c2f87170438c0cdb6b1ddbfe80412ab591c83d24c7e48e487313" dependencies = [ - "bitflags", + "bitflags 1.3.2", "fslock", - "lazy_static", + "once_cell", "which", ] @@ -7906,6 +8230,27 @@ dependencies = [ "libc", ] +[[package]] +name = "vte" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aae21c12ad2ec2d168c236f369c38ff332bc1134f7246350dca641437365045" +dependencies = [ + "arrayvec", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2 1.0.58", + "quote 1.0.27", +] + [[package]] name = "walkdir" version = "2.3.3" @@ -7946,9 +8291,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -7956,24 +8301,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.34" +version = "0.4.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" dependencies = [ "cfg-if", "js-sys", @@ -7983,32 +8328,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" dependencies = [ - "quote 1.0.26", + "quote 1.0.27", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" [[package]] name = "wasm-streams" @@ -8025,9 +8370,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" dependencies = [ "js-sys", "wasm-bindgen", @@ -8039,7 +8384,7 @@ version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8f859735e4a452aeb28c6c56a852967a8a76c8eb1cc32dbf931ad28a13d6370" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cairo-rs", "gdk", "gdk-sys", @@ -8064,7 +8409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d76ca6ecc47aeba01ec61e480139dda143796abcae6f83bcddf50d6b5b1dcf3" dependencies = [ "atk-sys", - "bitflags", + "bitflags 1.3.2", "cairo-sys-rs", "gdk-pixbuf-sys", "gdk-sys", @@ -8077,7 +8422,7 @@ dependencies = [ "pango-sys", "pkg-config", "soup2-sys", - "system-deps 6.0.5", + "system-deps 6.1.0", ] [[package]] @@ -8117,8 +8462,8 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaebe196c01691db62e9e4ca52c5ef1e4fd837dcae27dae3ada599b5a8fd05ac" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", + "proc-macro2 1.0.58", + "quote 1.0.27", "syn 1.0.109", ] @@ -8137,81 +8482,6 @@ dependencies = [ "windows-metadata", ] -[[package]] -name = "wgpu-core" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7131408d940e335792645a98f03639573b0480e9e2e7cddbbab74f7c6d9f3fff" -dependencies = [ - "arrayvec", - "bit-vec", - "bitflags", - "codespan-reporting", - "fxhash", - "log", - "naga", - "parking_lot 0.12.1", - "profiling", - "ron", - "serde", - "smallvec", - "thiserror", - "web-sys", - "wgpu-hal", - "wgpu-types", -] - -[[package]] -name = "wgpu-hal" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdcf61a283adc744bb5453dd88ea91f3f86d5ca6b027661c6c73c7734ae0288b" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set", - "bitflags", - "block", - "core-graphics-types", - "d3d12", - "foreign-types", - "fxhash", - "glow", - "gpu-alloc", - "gpu-descriptor", - "js-sys", - "khronos-egl", - "libc", - "libloading", - "log", - "metal", - "naga", - "objc", - "parking_lot 0.12.1", - "profiling", - "range-alloc", - "raw-window-handle", - "smallvec", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types", - "winapi", -] - -[[package]] -name = "wgpu-types" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32444e121b0bd00cb02c0de32fde457a9491bd44e03e7a5db6df9b1da2f6f110" -dependencies = [ - "bitflags", - "js-sys", - "serde", - "web-sys", -] - [[package]] name = "which" version = "4.4.0" @@ -8590,15 +8860,16 @@ dependencies = [ [[package]] name = "wry" -version = "0.21.1" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5c1352b4266fdf92c63479d2f58ab4cd29dc4e78fbc1b62011ed1227926945" +checksum = "4c1ad8e2424f554cc5bdebe8aa374ef5b433feff817aebabca0389961fc7ef98" dependencies = [ "base64 0.13.1", "block", "cocoa", "core-graphics", "crossbeam-channel", + "dunce", "gdk", "gio", "glib", @@ -8614,6 +8885,7 @@ dependencies = [ "serde", "serde_json", "sha2", + "soup2", "tao", "thiserror", "url", @@ -8636,12 +8908,12 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.20.1" +version = "2.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" dependencies = [ - "lazy_static", "libc", + "once_cell", "pkg-config", ] @@ -8657,6 +8929,23 @@ dependencies = [ "zeroize", ] +[[package]] +name = "x509-parser" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab0c2f54ae1d92f4fcb99c0b7ccf0b1e3451cbd395e5f115ccbdbcb18d4f634" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time 0.3.21", +] + [[package]] name = "xattr" version = "0.2.3" @@ -8668,9 +8957,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "699d0104bcdd7e7af6d093d6c6e2d0c479b8a129ee0d1023b31d2e0c71bfdda2" +checksum = "1690519550bfa95525229b9ca2350c63043a4857b3b0013811b2ccf4a2420b01" [[package]] name = "xmltree" @@ -8696,18 +8985,18 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", + "proc-macro2 1.0.58", + "quote 1.0.27", + "syn 2.0.16", ] [[package]] name = "zip" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e92305c174683d78035cbf1b70e18db6329cc0f1b9cae0a52ca90bf5bfe7125" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes 0.7.5", + "aes", "byteorder", "bzip2", "constant_time_eq", @@ -8715,7 +9004,7 @@ dependencies = [ "crossbeam-utils", "flate2", "hmac", - "pbkdf2", + "pbkdf2 0.11.0", "sha1", "time 0.3.21", "zstd", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 01bbcb42..a17eb627 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lodestone-client" -version = "0.4.3" +version = "0.4.4" description = "Lodestone's Desktop Client" authors = ["Lodestone-Team"] license = "" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index e16d071b..a92c56b9 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -9,7 +9,7 @@ }, "package": { "productName": "Lodestone", - "version": "0.4.3" + "version": "0.4.4" }, "tauri": { "allowlist": { diff --git a/src/bindings/ConfigurableManifest.ts b/src/bindings/ConfigurableManifest.ts new file mode 100644 index 00000000..5e733096 --- /dev/null +++ b/src/bindings/ConfigurableManifest.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { SectionManifest } from "./SectionManifest"; + +export interface ConfigurableManifest { instance_name: string, instance_description: string | null, auto_start: boolean, restart_on_crash: boolean, setting_sections: Record, } \ No newline at end of file diff --git a/src/bindings/ConfigurableValue.ts b/src/bindings/ConfigurableValue.ts new file mode 100644 index 00000000..eae90338 --- /dev/null +++ b/src/bindings/ConfigurableValue.ts @@ -0,0 +1,3 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export type ConfigurableValue = { type: "String", value: string } | { type: "Integer", value: number } | { type: "UnsignedInteger", value: number } | { type: "Float", value: number } | { type: "Boolean", value: boolean } | { type: "Enum", value: string }; \ No newline at end of file diff --git a/src/bindings/ConfigurableValueType.ts b/src/bindings/ConfigurableValueType.ts new file mode 100644 index 00000000..fa2e5b05 --- /dev/null +++ b/src/bindings/ConfigurableValueType.ts @@ -0,0 +1,3 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export type ConfigurableValueType = { type: "String", regex: string | null, } | { type: "Integer", min: number | null, max: number | null, } | { type: "UnsignedInteger", min: number | null, max: number | null, } | { type: "Float", min: number | null, max: number | null, } | { type: "Boolean" } | { type: "Enum", options: Array, }; \ No newline at end of file diff --git a/src/bindings/ExitStatus.ts b/src/bindings/ExitStatus.ts new file mode 100644 index 00000000..94c9d8f4 --- /dev/null +++ b/src/bindings/ExitStatus.ts @@ -0,0 +1,3 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export type ExitStatus = { type: "Success", time: bigint, } | { type: "Killed", time: bigint, } | { type: "Error", time: bigint, error_msg: string, }; \ No newline at end of file diff --git a/src/bindings/Game.ts b/src/bindings/Game.ts new file mode 100644 index 00000000..834facdb --- /dev/null +++ b/src/bindings/Game.ts @@ -0,0 +1,7 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { GameType } from './GameType'; +import type { MinecraftVariant } from './MinecraftVariant'; + +export type Game = + | { type: 'MinecraftJava'; variant: MinecraftVariant } + | { type: 'Generic'; game_name: GameType; game_display_name: string }; diff --git a/src/bindings/GameType.ts b/src/bindings/GameType.ts new file mode 100644 index 00000000..4b72de51 --- /dev/null +++ b/src/bindings/GameType.ts @@ -0,0 +1,3 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export type GameType = 'MinecraftJava' | 'Generic'; diff --git a/src/bindings/HandlerGameType.ts b/src/bindings/HandlerGameType.ts index 36beb9e7..2907d7b0 100644 --- a/src/bindings/HandlerGameType.ts +++ b/src/bindings/HandlerGameType.ts @@ -1,3 +1,3 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. -export type HandlerGameType = "MinecraftJavaVanilla" | "MinecraftFabric" | "MinecraftForge" | "MinecraftPaper"; \ No newline at end of file +export type HandlerGameType = "MinecraftJavaVanilla" | "MinecraftFabric" | "MinecraftForge" | "MinecraftPaper"; diff --git a/src/bindings/HistoryEntry.ts b/src/bindings/HistoryEntry.ts new file mode 100644 index 00000000..26a60170 --- /dev/null +++ b/src/bindings/HistoryEntry.ts @@ -0,0 +1,5 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { ExitStatus } from "./ExitStatus"; +import type { TaskEntry } from "./TaskEntry"; + +export interface HistoryEntry { task: TaskEntry, exit_status: ExitStatus, } \ No newline at end of file diff --git a/src/bindings/InstanceInfo.ts b/src/bindings/InstanceInfo.ts index bbb2b3d7..9c4dc19e 100644 --- a/src/bindings/InstanceInfo.ts +++ b/src/bindings/InstanceInfo.ts @@ -1,17 +1,15 @@ // This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { Game } from './Game'; import type { InstanceState } from './InstanceState'; import type { InstanceUuid } from './InstanceUuid'; import type { Player } from './Player'; -export type GameType = Record -export type Games = "MinecraftJava"; -export type GameVariants = "Vanilla" | "Forge" | "Fabric" | "Paper"; - export interface InstanceInfo { uuid: InstanceUuid; name: string; - game_type: GameType; + game_type: Game; description: string; + version: string; port: number; creation_time: bigint; path: string; diff --git a/src/bindings/MacroEntry.ts b/src/bindings/MacroEntry.ts new file mode 100644 index 00000000..29f010ca --- /dev/null +++ b/src/bindings/MacroEntry.ts @@ -0,0 +1,3 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export interface MacroEntry { name: string, last_run: bigint | null, path: string, } \ No newline at end of file diff --git a/src/bindings/MacroPID.ts b/src/bindings/MacroPID.ts new file mode 100644 index 00000000..2affa0af --- /dev/null +++ b/src/bindings/MacroPID.ts @@ -0,0 +1,3 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export type MacroPID = number; \ No newline at end of file diff --git a/src/bindings/ManifestValue.ts b/src/bindings/ManifestValue.ts new file mode 100644 index 00000000..04a4619c --- /dev/null +++ b/src/bindings/ManifestValue.ts @@ -0,0 +1,8 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { SectionManifestValue } from './SectionManifestValue'; + +export interface ManifestValue { + auto_start: boolean; + restart_on_crash: boolean; + setting_sections: Record; +} diff --git a/src/bindings/MinecraftVariant.ts b/src/bindings/MinecraftVariant.ts new file mode 100644 index 00000000..e0e8a9fd --- /dev/null +++ b/src/bindings/MinecraftVariant.ts @@ -0,0 +1,9 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. + +export type MinecraftVariant = + | { type: 'Vanilla' } + | { type: 'Forge' } + | { type: 'Fabric' } + | { type: 'Paper' } + | { type: 'Spigot' } + | { type: 'Other'; name: string }; diff --git a/src/bindings/SectionManifest.ts b/src/bindings/SectionManifest.ts new file mode 100644 index 00000000..d6626fa2 --- /dev/null +++ b/src/bindings/SectionManifest.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { SettingManifest } from "./SettingManifest"; + +export interface SectionManifest { section_id: string, name: string, description: string, settings: Record, } \ No newline at end of file diff --git a/src/bindings/SectionManifestValue.ts b/src/bindings/SectionManifestValue.ts new file mode 100644 index 00000000..787bad76 --- /dev/null +++ b/src/bindings/SectionManifestValue.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { SettingManifestValue } from "./SettingManifestValue"; + +export interface SectionManifestValue { settings: Record, } \ No newline at end of file diff --git a/src/bindings/SettingManifest.ts b/src/bindings/SettingManifest.ts new file mode 100644 index 00000000..81eddc03 --- /dev/null +++ b/src/bindings/SettingManifest.ts @@ -0,0 +1,5 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { ConfigurableValue } from "./ConfigurableValue"; +import type { ConfigurableValueType } from "./ConfigurableValueType"; + +export interface SettingManifest { setting_id: string, name: string, description: string, value: ConfigurableValue | null, value_type: ConfigurableValueType, default_value: ConfigurableValue | null, is_secret: boolean, is_required: boolean, is_mutable: boolean, } \ No newline at end of file diff --git a/src/bindings/SettingManifestValue.ts b/src/bindings/SettingManifestValue.ts new file mode 100644 index 00000000..13b8de37 --- /dev/null +++ b/src/bindings/SettingManifestValue.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { ConfigurableValue } from "./ConfigurableValue"; + +export interface SettingManifestValue { value: ConfigurableValue | null, } \ No newline at end of file diff --git a/src/bindings/SetupManifest.ts b/src/bindings/SetupManifest.ts new file mode 100644 index 00000000..7f801555 --- /dev/null +++ b/src/bindings/SetupManifest.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { SectionManifest } from "./SectionManifest"; + +export interface SetupManifest { setting_sections: Record, } \ No newline at end of file diff --git a/src/bindings/SetupValue.ts b/src/bindings/SetupValue.ts new file mode 100644 index 00000000..f9960e80 --- /dev/null +++ b/src/bindings/SetupValue.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { SectionManifestValue } from "./SectionManifestValue"; + +export interface SetupValue { name: string, description: string | null, auto_start: boolean, restart_on_crash: boolean, setting_sections: Record, } \ No newline at end of file diff --git a/src/bindings/TaskEntry.ts b/src/bindings/TaskEntry.ts new file mode 100644 index 00000000..26c911f4 --- /dev/null +++ b/src/bindings/TaskEntry.ts @@ -0,0 +1,4 @@ +// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. +import type { MacroPID } from "./MacroPID"; + +export interface TaskEntry { name: string, creation_time: bigint, pid: MacroPID, } \ No newline at end of file diff --git a/src/components/Atoms/Button.tsx b/src/components/Atoms/Button.tsx index 701ae411..10196f62 100644 --- a/src/components/Atoms/Button.tsx +++ b/src/components/Atoms/Button.tsx @@ -126,7 +126,6 @@ const Button = forwardRef( {label} - {iconRight && ( )} diff --git a/src/components/Atoms/Config/InputBox.tsx b/src/components/Atoms/Config/InputBox.tsx index f6919e04..a25bd46e 100644 --- a/src/components/Atoms/Config/InputBox.tsx +++ b/src/components/Atoms/Config/InputBox.tsx @@ -145,6 +145,8 @@ export default function InputBox({ const submitError = await catchAsyncToString(onSubmitProp(trimmed)); setError(submitError); setIsLoading(false); + setTypeModified(type); + setTouched(false); }; const onReset = (e: React.FormEvent) => { @@ -168,12 +170,15 @@ export default function InputBox({ let icons = []; - if (touched) { + if (typeModified !== 'password' && touched) { icons.push( formRef.current?.requestSubmit()} + onClick={() => { + formRef.current?.requestSubmit(); + setTypeModified('password'); + }} key="save" /> ); @@ -191,11 +196,12 @@ export default function InputBox({ + onClick={() => { typeModified === 'password' ? setTypeModified('text') - : setTypeModified('password') - } + : setTypeModified('password'); + formRef.current?.reset(); + }} key="reveal password" /> ); @@ -249,7 +255,7 @@ export default function InputBox({ { setValue(value.trim()); }} - disabled={disabled} + disabled={typeModified === 'password' ? true : disabled} type={typeModified} autoComplete={DISABLE_AUTOFILL} /> diff --git a/src/components/Atoms/Form/InputField.tsx b/src/components/Atoms/Form/InputField.tsx index 16ae1bcf..fa34cfbf 100644 --- a/src/components/Atoms/Form/InputField.tsx +++ b/src/components/Atoms/Form/InputField.tsx @@ -1,6 +1,8 @@ import React from 'react'; import { FieldHookConfig, useField } from 'formik'; import { DISABLE_AUTOFILL } from 'utils/util'; +import { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; export type InputFieldProps = FieldHookConfig & { label?: string; @@ -15,6 +17,8 @@ export default function InputField(props: InputFieldProps) { const [field, meta] = useField(props); const isError = meta.touched && meta.error && true; const errorText = isError ? meta.error : ''; + + const [typeModified, setTypeModified] = React.useState(type || 'text'); return (
)} + {type === 'password' && ( +
+
+ { + typeModified === 'password' + ? setTypeModified('text') + : setTypeModified('password'); + }} + key="reveal password" + /> +
+
+ )}
= (args) => ( ); export const MinecraftVanilla = Template.bind({}); MinecraftVanilla.args = { - game_type: { MinecraftJava: { variant: 'Vanilla' } }, + game_type: { type: 'MinecraftJava', variant: { type: 'Vanilla' } }, }; diff --git a/src/components/Atoms/GameIcon.tsx b/src/components/Atoms/GameIcon.tsx index 7a49c743..8c2fcc9b 100644 --- a/src/components/Atoms/GameIcon.tsx +++ b/src/components/Atoms/GameIcon.tsx @@ -1,36 +1,29 @@ -import { GameType, Games, GameVariants } from 'bindings/InstanceInfo'; import Tooltip from 'rc-tooltip'; -import { gameIcons, spanMap } from 'data/GameTypeMappings'; -const unknown_icon = '/assets/minecraft-missing-texture.svg'; +import { Game } from 'bindings/Game'; +import { + game_to_game_icon, + game_to_game_title, +} from 'data/GameTypeMappings'; export default function GameIcon({ game_type, className = 'h-8 w-8 rounded-sm', }: { - game_type: GameType; + game_type: Game; className?: string; }) { - let icon = unknown_icon; - let span = ''; - const game = Object.keys(game_type)[0] as Games; - const variant = game_type[game]['variant'] as GameVariants; - - if (game in gameIcons) { - if (variant in gameIcons[game]) { - icon = gameIcons[game][variant]; - span = spanMap[game][variant]; - } - } + const game_title = game_to_game_title(game_type); + const icon = game_to_game_icon(game_type); return ( {span}} + overlay={{game_title}} placement="bottom" trigger={['hover']} mouseEnterDelay={0.2} > - {variant} + {game_title} ); } diff --git a/src/components/Atoms/ResizePanel.tsx b/src/components/Atoms/ResizePanel.tsx index 09e0c4c5..4cc57c8b 100644 --- a/src/components/Atoms/ResizePanel.tsx +++ b/src/components/Atoms/ResizePanel.tsx @@ -114,6 +114,15 @@ const ResizePanel = forwardRef( // initialSize is intentionally left out of the dependency array }, [isHorizontal]); + useEffect(() => { + if (size > maxSize && maxSize > minSizeProps) { + setSize(maxSize); + } + if (size < minSizeProps) { + setSize(minSizeProps); + } + }, [maxSize, minSizeProps, setSize, size]); + const handleDrag = (e: DraggableEvent, ui: DraggableData) => { const factor = direction === 'e' || direction === 's' ? -1 : 1; diff --git a/src/components/ButtonMenu.tsx b/src/components/ButtonMenu.tsx new file mode 100644 index 00000000..11f562d6 --- /dev/null +++ b/src/components/ButtonMenu.tsx @@ -0,0 +1,62 @@ +import Button from './Atoms/Button'; +import { TableRow } from './Table'; +import { Menu } from '@headlessui/react'; + +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { IconDefinition } from '@fortawesome/free-solid-svg-icons'; +import { faEllipsisVertical } from '@fortawesome/free-solid-svg-icons'; + +import clsx from 'clsx'; + +interface MenuItemProperties { + className?: string; + label: string; + icon: IconDefinition; + variant?: 'contained' | 'text'; + intention?: 'none' | 'info' | 'danger' | 'primary'; + disabled: boolean; + onClick: (row: TableRow) => void; +} + +export interface ButtonMenuConfig { + tableRows: TableRow[]; + menuItems: MenuItemProperties[]; + buttonIcon?: IconDefinition; +} + +interface ButtonMenuProps extends ButtonMenuConfig { + rowIndex: number; +} + +export default function ButtonMenu({ tableRows, rowIndex, menuItems, buttonIcon = faEllipsisVertical }: ButtonMenuProps) { + return ( + + + +
+ {menuItems.map((menuItem, index) => ( + +
+
+
+ ); +} diff --git a/src/components/DashboardLayout/DashboardLayout.tsx b/src/components/DashboardLayout/DashboardLayout.tsx index 2289253e..18f754ac 100644 --- a/src/components/DashboardLayout/DashboardLayout.tsx +++ b/src/components/DashboardLayout/DashboardLayout.tsx @@ -27,10 +27,11 @@ export default function DashboardLayout() { const [showLocalSetupPrompt, setShowLocalSetupPrompt] = useState(false); const { data: coreInfo, isLoading: coreInfoLoading } = useCoreInfo(); const { data: localCoreInfo } = useLocalCoreInfo(); - const [showMajorVersionModal, setShowMajorVersionModal] = useState(false); + const [showVersionMismatchModal, setShowVersionMismatchModal] = + useState(false); const [showCoreErrorModal, setShowCoreErrorModal] = useState(false); const dashboardVersion = packageinfo.version; - + // open the error modal is coreConnectionStatus is error for more than 3 seconds useEffect(() => { if (coreConnectionStatus === 'error') { @@ -38,17 +39,18 @@ export default function DashboardLayout() { setShowCoreErrorModal(true); }, 3000); return () => clearTimeout(timeout); - }else{ + } else { setShowCoreErrorModal(false); } }, [coreConnectionStatus]); const versionMismatchModal = !coreInfoLoading && ( setShowMajorVersionModal(false)} + isOpen={showVersionMismatchModal} + onClose={() => setShowVersionMismatchModal(false)} + closeButtonText={'I understand, continue without updating'} >
Core Version: @@ -58,8 +60,16 @@ export default function DashboardLayout() { {dashboardVersion}

- Your dashboard and core have a major version mismatch! Please consider - updating to stay up to date with our latest changes. +

Your dashboard and core is incompatible!

+ This can cause unexpected behavior. Please update your core to the latest + version. Visit{' '} + + the wiki + {' '} + for more information.
); @@ -84,16 +94,27 @@ export default function DashboardLayout() { if (valid(clientVersion) && valid(dashboardVersion)) { if (eq(clientVersion, dashboardVersion)) return; if (major(clientVersion) !== major(dashboardVersion)) - setShowMajorVersionModal(true); + setShowVersionMismatchModal(true); else if (minor(clientVersion) !== minor(dashboardVersion)) - toast.warn( - `There is a minor version mismatch! Core: ${clientVersion}, Dashboard: ${dashboardVersion}`, - { toastId: 'minorVersionMismatch' } - ); + // toast.warn( + // `There is a minor version mismatch! Core: ${clientVersion}, Dashboard: ${dashboardVersion}`, + // { toastId: 'minorVersionMismatch' } + // ); + setShowVersionMismatchModal(true); + else if ( + major(clientVersion) === 0 && + minor(clientVersion) === 4 && + patch(clientVersion) < 4 + ) + setShowVersionMismatchModal(true); else if (patch(clientVersion) !== patch(dashboardVersion)) toast.warn( - `There is a patch version mismatch! Core: ${clientVersion}, Dashboard: ${dashboardVersion}`, - { toastId: 'patchVersionMismatch' } + `Version mismatch! Is your core out of date? Core: ${clientVersion}, Dashboard: ${dashboardVersion}`, + { + toastId: 'patchVersionMismatch', + autoClose: 10000, + position: 'top-center', + } ); } }, [coreInfo?.version]); diff --git a/src/components/DashboardLayout/SelectedInstanceInfo.tsx b/src/components/DashboardLayout/SelectedInstanceInfo.tsx index 1194b792..ecb4ad2d 100644 --- a/src/components/DashboardLayout/SelectedInstanceInfo.tsx +++ b/src/components/DashboardLayout/SelectedInstanceInfo.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useMemo } from 'react'; import { RadioGroup } from '@headlessui/react'; import { InstanceContext } from 'data/InstanceContext'; import { useContext, useEffect } from 'react'; @@ -6,9 +6,9 @@ import useAnalyticsEventTracker from 'utils/hooks'; import clsx from 'clsx'; import { BrowserLocationContext } from 'data/BrowserLocationContext'; import InstanceCard from 'components/InstanceCard'; -import { InstanceTabListMap } from '../../data/GameTypeMappings'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faExpand } from '@fortawesome/free-solid-svg-icons'; +import { tabs } from 'pages/InstanceTabs/InstanceTabs'; export const SelectedInstanceInfo = ({ className = '', @@ -25,7 +25,7 @@ export const SelectedInstanceInfo = ({ const gaEventTracker = useAnalyticsEventTracker('Instance List'); const { setPathname } = useContext(BrowserLocationContext); - const [setActive, setActiveTab] = useState(location.pathname.split('/')[2]); + const setActive = useMemo(() => location.pathname.split('/')[2], [location.pathname]); useEffect(() => { if (!isReady) return; @@ -37,9 +37,6 @@ export const SelectedInstanceInfo = ({ ); }, [isReady, instances]); - useEffect(() => { - setActiveTab(location.pathname.split('/')[2]); - }, [location.pathname]); const uuid = selectedInstance?.uuid; if (!selectedInstance || !uuid) { @@ -74,40 +71,38 @@ export const SelectedInstanceInfo = ({ {selectedInstance && - InstanceTabListMap[Object.keys(selectedInstance.game_type)[0]].map( - (tab) => ( - ( + + - - ) - )} + {tab.icon} +
+
{tab.title}
+ + + ))} {children} ); diff --git a/src/components/DashboardLayout/SettingsLayout.tsx b/src/components/DashboardLayout/SettingsLayout.tsx index 44e71ae0..50a89975 100644 --- a/src/components/DashboardLayout/SettingsLayout.tsx +++ b/src/components/DashboardLayout/SettingsLayout.tsx @@ -18,20 +18,20 @@ export const SettingsLayout = () => { const [leftNavSize, setLeftNavSize] = useLocalStorage('leftNavSize', 220); /* Start userList */ const [queryUid, setQueryUid] = useQueryParam('user', ''); - const [selectedUser, setSelectedUser] = useState( - undefined + const [selectedUser, setSelectedUser] = useState( + null ); const userList = canManageUsers ? dataUserList : undefined; useEffect(() => { if (queryUid && userList && queryUid in userList) { setSelectedUser(userList[queryUid]); - } else setSelectedUser(undefined); + } else setSelectedUser(null); }, [userList, queryUid]); - function selectUser(user?: PublicUser) { + function selectUser(user: PublicUser | null) { console.log('selectUser', user); - if (user === undefined) { - setSelectedUser(undefined); + if (user === null) { + setSelectedUser(null); setQueryUid(''); } else { setSelectedUser(user); diff --git a/src/components/DashboardLayout/SettingsLeftNav.tsx b/src/components/DashboardLayout/SettingsLeftNav.tsx index a6c2ee2b..114c87dd 100644 --- a/src/components/DashboardLayout/SettingsLeftNav.tsx +++ b/src/components/DashboardLayout/SettingsLeftNav.tsx @@ -1,51 +1,122 @@ -import { useContext } from 'react'; +import { useContext, useMemo } from 'react'; import Button from 'components/Atoms/Button'; -import { faXmark } from '@fortawesome/free-solid-svg-icons'; +import { faXmark, faServer, faRightToBracket, faUser } from '@fortawesome/free-solid-svg-icons'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { BrowserLocationContext } from 'data/BrowserLocationContext'; import { RadioGroup } from '@headlessui/react'; import { SettingsContext } from 'data/SettingsContext'; import Avatar from 'components/Atoms/Avatar'; import clsx from 'clsx'; import { useUid } from 'data/UserInfo'; +import { AccountSettingsTabList, CoreSettingsTabList } from '../../../pages'; + + + export default function SettingsLeftNav({ className }: { className?: string }) { const { setPathname, setSearchParam } = useContext(BrowserLocationContext); - const { userList, selectedUser, selectUser, tabIndex } = - useContext(SettingsContext); + const { userList, selectedUser, selectUser} = + useContext(SettingsContext); + const setActive = useMemo(() => location.pathname.split('/')[2], [location.pathname]); const uid = useUid(); + return (
- {selectedUser ? ( - + + + + + CORE + + {CoreSettingsTabList.map((setting) => ( + + + + ))} + + + ACCOUNT + + {AccountSettingsTabList.map((setting) => ( + + + + ))} + + + {(
); diff --git a/src/components/ErrorGraphic.tsx b/src/components/ErrorGraphic.tsx index 508b0c32..a615f1f5 100644 --- a/src/components/ErrorGraphic.tsx +++ b/src/components/ErrorGraphic.tsx @@ -22,7 +22,7 @@ export default function ErrorGraphic({ return (
@@ -35,7 +35,7 @@ export default function ErrorGraphic({

{message2 && (

{message2}

diff --git a/src/components/FileViewer/CreateFolderForm.tsx b/src/components/FileViewer/CreateFolderForm.tsx index bf05026a..4482c490 100644 --- a/src/components/FileViewer/CreateFolderForm.tsx +++ b/src/components/FileViewer/CreateFolderForm.tsx @@ -59,7 +59,7 @@ export default function CreateFolderForm({ size : 0, creation_time: Date.now() / 1000, modification_time: Date.now() / 1000, - file_type: 'File' as FileType, + file_type: 'Directory' as FileType, }, ].sort(fileSorter) diff --git a/src/components/FileViewer/FileList.tsx b/src/components/FileViewer/FileList.tsx index 6c3d9599..cfe63ba3 100644 --- a/src/components/FileViewer/FileList.tsx +++ b/src/components/FileViewer/FileList.tsx @@ -30,7 +30,6 @@ const iconMap: { [key: string]: string } = { json: '/icons/json.svg', mcmeta: '/icons/json.svg', zip: '/icons/zip.svg', - rar: '/icons/zip.svg', gz: '/icons/zip.svg', tar: '/icons/zip.svg', jar: '/icons/jar.svg', diff --git a/src/components/FileViewer/FileViewer.tsx b/src/components/FileViewer/FileViewer.tsx index 0e433e64..fc6b3765 100644 --- a/src/components/FileViewer/FileViewer.tsx +++ b/src/components/FileViewer/FileViewer.tsx @@ -38,7 +38,7 @@ import { zipInstanceFiles, } from 'utils/apis'; import Button from 'components/Atoms/Button'; -import { useLocalStorage } from 'usehooks-ts'; +import { useElementSize, useLocalStorage } from 'usehooks-ts'; import ResizePanel from 'components/Atoms/ResizePanel'; import { Dialog, Menu, Transition } from '@headlessui/react'; import { useUserAuthorized } from 'data/UserInfo'; @@ -77,11 +77,10 @@ export default function FileViewer() { const [clipboard, setClipboard] = useState([]); const [clipboardAction, setClipboardAction] = useState<'copy' | 'cut'>('cut'); const [fileContent, setFileContent] = useState(''); - const boundingDivRef = useRef(null); - const [boundingDivDimensions, setBoundingDivDimensions] = useState({ - height: 0, - width: 0, - }); + const [ + boundingDivRef, + { height: boundingDivHeight, width: boundingDivWidth }, + ] = useElementSize(); const tickFile = (file: ClientFile, ticked: boolean) => { if (ticked) { @@ -91,15 +90,6 @@ export default function FileViewer() { } }; - useEffect(() => { - if (boundingDivRef.current !== null) { - setBoundingDivDimensions({ - height: boundingDivRef.current.offsetHeight, - width: boundingDivRef.current.offsetWidth, - }); - } - }, [boundingDivRef]); - const atTopLevel = path === '.'; let directorySeparator = '\\'; // assume only linux paths contain / @@ -359,6 +349,7 @@ export default function FileViewer() {
{ e.preventDefault(); @@ -655,7 +646,7 @@ export default function FileViewer() { > (null); const isAtBottom = listRef.current @@ -93,7 +95,7 @@ export default function GameConsole() { consoleStatusColor = 'text-red-200'; } // overwrites - if (instance.state !== 'Running') { + if (instance.state === 'Stopped') { consoleStatusMessage = `Instance is ${instance.state.toLowerCase()}`; consoleStatusColor = 'text-gray-500'; } @@ -101,7 +103,7 @@ export default function GameConsole() { let consoleInputMessage = ''; if (!canAccessConsole || consoleStatus === 'no-permission') consoleInputMessage = 'No permission'; - else if (instance.state !== 'Running') + else if (instance.state === 'Stopped') consoleInputMessage = `Instance is ${instance.state.toLowerCase()}`; else if (consoleStatus === 'closed') consoleInputMessage = 'Console is closed'; @@ -109,18 +111,16 @@ export default function GameConsole() { const handleKeyDown = (event: React.KeyboardEvent) => { if (event.key === 'ArrowUp') { setCommandNav((prev) => { - prev = Math.max(prev - 1, 0) + prev = Math.max(prev - 1, 0); setCommand(commandHistory[prev]); - return prev + return prev; }); - } else if (event.key === 'ArrowDown') { setCommandNav((prev) => { - prev = Math.min(prev + 1, commandHistory.length - 1) + prev = Math.min(prev + 1, commandHistory.length - 1); setCommand(commandHistory[prev]); - return prev + return prev; }); - } else { setCommandNav(commandHistory.length); } @@ -179,7 +179,7 @@ export default function GameConsole() { e.preventDefault(); sendCommand(command); appendCommandHistory(command); - setCommandNav(prev => prev + 1); + setCommandNav((prev) => prev + 1); setCommand(''); }} > diff --git a/src/components/Instance/Create/FieldFromManifest.tsx b/src/components/Instance/Create/FieldFromManifest.tsx index 196ee87f..5625a5aa 100644 --- a/src/components/Instance/Create/FieldFromManifest.tsx +++ b/src/components/Instance/Create/FieldFromManifest.tsx @@ -2,7 +2,7 @@ import { toast } from 'react-toastify'; import FormComboField from './SetupFormFields/FormComboField'; import FormInputField from './SetupFormFields/FormInputField'; import FormRadioField from './SetupFormFields/FormRadioField'; -import { SettingManifest } from './form'; +import { SettingManifest } from 'bindings/SettingManifest'; export const FieldFromManifest = ({ setting, diff --git a/src/components/Instance/Create/FormFromManifest.tsx b/src/components/Instance/Create/FormFromManifest.tsx index 088bf0ee..08f8477b 100644 --- a/src/components/Instance/Create/FormFromManifest.tsx +++ b/src/components/Instance/Create/FormFromManifest.tsx @@ -1,32 +1,41 @@ -import FormInputField from './SetupFormFields/FormInputField'; -import FormRadioField from './SetupFormFields/FormRadioField'; -import FormComboField from './SetupFormFields/FormComboField'; -import { SectionManifest, SettingManifest } from './form'; -import { toast } from 'react-toastify'; import { FieldFromManifest } from './FieldFromManifest'; +import { SetupManifest } from 'bindings/SetupManifest'; export const FormFromManifest = ({ - section, + name, + description, + manifest, children, }: { - section: SectionManifest; + name: string; + description: string; + manifest: SetupManifest; children: React.ReactNode; }) => { - console.log("section", section) return ( <>
- {section.name} + {name}
-
- {section.description} +
+ {description}
{children} -
- {Object.keys(section['settings']).map((field: string, i: number) => ( - - ))} -
+ {Object.values(manifest['setting_sections']).map( + (section, i: number) => ( +
+ {Object.keys(section['settings']).map((field: string) => ( + + ))} +
+ ) + )} ); }; diff --git a/src/components/Instance/Create/GameTypeSelectForm.tsx b/src/components/Instance/Create/GameTypeSelectForm.tsx index c9f7e130..96967663 100644 --- a/src/components/Instance/Create/GameTypeSelectForm.tsx +++ b/src/components/Instance/Create/GameTypeSelectForm.tsx @@ -1,25 +1,32 @@ -import { HandlerGameType } from 'bindings/HandlerGameType'; import clsx from 'clsx'; import Spinner from 'components/DashboardLayout/Spinner'; import { InstanceGameTypes } from 'data/InstanceGameTypes'; import SelectGameCard from './SelectGameCard'; -import { gameTypeInfoFromHandlerType } from 'data/GameTypeMappings'; +import { + game_to_description, + game_to_game_title, + HandlerGameType_to_Game, +} from 'data/GameTypeMappings'; +import SelectGenericGameCard from './SelectGenericGameCard'; +import { GameInstanceContext } from 'data/GameInstanceContext'; +import { useContext } from 'react'; export default function GameTypeSelectForm({ - gameType, - setGameType, + manifestLoading, + manifestError, className, }: { - gameType: HandlerGameType; - setGameType: (gameType: HandlerGameType) => void; + manifestLoading: boolean; + manifestError: boolean; className?: string; }) { - const { data: game_types, isLoading, error } = InstanceGameTypes(); + const { gameType: selectedGameType, setGameType } = + useContext(GameInstanceContext); + const { data: game_types, isLoading } = InstanceGameTypes(); if (!game_types || isLoading) { return ; } - return ( -
+

Select a game

@@ -27,23 +34,37 @@ export default function GameTypeSelectForm({ What will your instance be used for?

- {game_types.map((game) => { - const { title, description, game_type } = - gameTypeInfoFromHandlerType[game]; + {/* setGameType('Generic')} + manifestLoading={manifestLoading} + errorText={manifestError ? 'Error fetching the instance' : ''} + /> */} + {game_types.map((game_type) => { + const game = HandlerGameType_to_Game[game_type]; return ( - <> - setGameType(game)} - /> - + setGameType(game_type)} + /> ); })}
diff --git a/src/components/Instance/Create/SelectGameCard.tsx b/src/components/Instance/Create/SelectGameCard.tsx index 6c7cedfd..1355f9c9 100644 --- a/src/components/Instance/Create/SelectGameCard.tsx +++ b/src/components/Instance/Create/SelectGameCard.tsx @@ -1,7 +1,7 @@ import GameIcon from 'components/Atoms/GameIcon'; import React from 'react'; import clsx from 'clsx'; -import { GameType } from 'bindings/InstanceInfo'; +import { Game } from 'bindings/Game'; const SelectGameCard = ({ title, description, @@ -11,7 +11,7 @@ const SelectGameCard = ({ }: { title: string; description: string; - game_type: GameType; + game_type: Game; className?: string; onClick?: (event: React.MouseEvent) => void; }) => { @@ -19,13 +19,13 @@ const SelectGameCard = ({ +
+
+ +
+ {title} +
+
+
+ {description} +
+
+ { + if (selectedGameType !== 'Generic') setGameType('Generic'); + setUrl(e.target.value); + setGenericFetchReady(false); + setUrlValid(false); + }} + name={'Url'} + placeholder={'Enter URL'} + disabled={ + buttonStatus === 'Loaded!' || buttonStatus === 'Fetching...' + } + onKeyDown={handleKeyPress} + /> +
+ {urlErrorText && selectedGameType === 'Generic' && ( +
+ {urlErrorText || 'Unknown error'} +
+ )} +
+ ); +}; + +export default SelectGenericGameCard; diff --git a/src/components/Instance/Create/form.ts b/src/components/Instance/Create/form.ts index 3d78ecf3..cb93c723 100644 --- a/src/components/Instance/Create/form.ts +++ b/src/components/Instance/Create/form.ts @@ -1,35 +1,69 @@ +import { ConfigurableValue } from 'bindings/ConfigurableValue'; +import { SectionManifest } from 'bindings/SectionManifest'; +import { SettingManifest } from 'bindings/SettingManifest'; +import { SetupManifest } from 'bindings/SetupManifest'; import * as yup from 'yup'; export const formId = 'minecraftCreateNewInstanceForm'; -export const instanceSettingPageObject: SectionManifest = { - section_id: 'instance_settings', - name: 'Instance Settings', - description: 'Instance configurations for your server.', +export const basicSettingsPageObject: SectionManifest = { + section_id: 'basic_settings', + name: 'Basic Settings', + description: 'Basic settings for your server.', settings: { - auto_start: { - setting_id: 'auto_start', - name: 'Auto Start', - description: 'The instance will start automatically when the application starts', + name: { + setting_id: 'name', + name: 'Name', + description: 'The name of the instance', value: { - type: 'Boolean', - value: false, + type: 'String', + value: '', }, value_type: { - type: 'Boolean', + type: 'String', + regex: null, }, default_value: { - type: 'Boolean', - value: false, + type: 'String', + value: 'My Server', }, is_secret: false, is_required: true, is_mutable: true, }, - restart_on_crash: { - setting_id: 'restart_on_crash', - name: 'Restart on Crash', - description: 'The instance will restart automatically if it crashes', + description: { + setting_id: 'description', + name: 'Description', + description: 'The description of the instance', + value: { + type: 'String', + value: '', + }, + value_type: { + type: 'String', + regex: null, + }, + default_value: { + type: 'String', + value: '', + }, + is_secret: false, + is_required: false, + is_mutable: true, + }, + }, +}; + +export const autoSettingPageObject: SectionManifest = { + section_id: 'auto_settings', + name: 'Auto Settings', + description: 'Auto settings for your server.', + settings: { + auto_start: { + setting_id: 'auto_start', + name: 'Auto Start', + description: + 'The instance will start automatically when the application starts', value: { type: 'Boolean', value: false, @@ -45,10 +79,10 @@ export const instanceSettingPageObject: SectionManifest = { is_required: true, is_mutable: true, }, - start_on_connection: { - setting_id: 'start_on_connection', - name: 'Start on Connection', - description: 'The instance will start automatically when you connect to the server', + restart_on_crash: { + setting_id: 'restart_on_crash', + name: 'Restart on Crash', + description: 'The instance will restart automatically if it crashes', value: { type: 'Boolean', value: false, @@ -67,10 +101,10 @@ export const instanceSettingPageObject: SectionManifest = { }, }; -export const generateValidationSchema = (instanceManifest: ConfigurableManifest) => { - const validationSchema: any[] = [] - const setting_sections = instanceManifest["setting_sections"] - setting_sections["instance_settings"] = instanceSettingPageObject +export const generateValidationSchema = (instanceManifest: SetupManifest) => { + const validationSchema: any[] = []; + const setting_sections = instanceManifest['setting_sections']; + validationSchema.push(yup.object().shape({})) //for select game type const generateYupObject = (setting: SettingManifest) => { const settingType = setting.value_type.type @@ -98,44 +132,78 @@ export const generateValidationSchema = (instanceManifest: ConfigurableManifest) throw Error("Invalid Setting Type"); } } + const instanceSettingsValidationSchemaSection: Record = {}; Object.keys(setting_sections).forEach((sectionId: string) => { - const validationSchemaSection: Record = {} - const settings = setting_sections[sectionId]["settings"]; + const settings = setting_sections[sectionId]['settings']; Object.keys(settings).forEach((settingId: string) => { - const setting = settings[settingId] - validationSchemaSection[setting.setting_id] = yup.object().shape({ value: generateYupObject(setting) }) + const setting = settings[settingId]; + instanceSettingsValidationSchemaSection[setting.setting_id] = yup + .object() + .shape({ value: generateYupObject(setting) }); }); - validationSchema.push(yup.object().shape(validationSchemaSection)) - }) - return validationSchema -} + }); + const basicSettingsValidationSchemaSection: Record = {}; + Object.keys(basicSettingsPageObject['settings']).forEach( + (settingId: string) => { + const setting = basicSettingsPageObject['settings'][settingId]; + basicSettingsValidationSchemaSection[setting.setting_id] = yup + .object() + .shape({ value: generateYupObject(setting) }); + } + ); -export const generateInitialValues = (settingSections: Record) => { - const initialValues: Record = {}; + const autoSettingsValidationSchemaSection: Record = {}; + Object.keys(autoSettingPageObject['settings']).forEach( + (settingId: string) => { + const setting = autoSettingPageObject['settings'][settingId]; + autoSettingsValidationSchemaSection[setting.setting_id] = yup + .object() + .shape({ value: generateYupObject(setting) }); + } + ); + + validationSchema.push( + yup.object().shape(basicSettingsValidationSchemaSection) + ); + validationSchema.push( + yup.object().shape(instanceSettingsValidationSchemaSection) + ); + validationSchema.push( + yup.object().shape(autoSettingsValidationSchemaSection) + ); + return validationSchema; +}; - Object.keys(settingSections).forEach((sectionId: string) => { - const setting = settingSections[sectionId]["settings"]; +export const generateInitialValues = ( + settingSections: Record +) => { + const initialValues: Record = {}; + const copySettingSections = { ...settingSections }; //don't modify original + copySettingSections['basic_settings'] = basicSettingsPageObject; + copySettingSections['auto_settings'] = autoSettingPageObject; + const getInitialValue = (sectionId: string) => { + const setting = copySettingSections[sectionId]['settings']; Object.keys(setting).forEach((settingId: string) => { const settingValue = setting[settingId]; - initialValues[settingId] = settingValue.default_value ?? settingValue.value; + initialValues[settingId] = + settingValue.default_value ?? settingValue.value; if (initialValues[settingId] === null) { - if (settingValue.value_type.type === "Boolean") initialValues[settingId] = { type: "Boolean", value: false }; - else if (settingValue.value_type.type === "Integer") initialValues[settingId] = { type: "Integer", value: 0 }; - else if (settingValue.value_type.type === "UnsignedInteger") initialValues[settingId] = { type: "UnsignedInteger", value: 0 }; - else if (settingValue.value_type.type === "Float") initialValues[settingId] = { type: "Float", value: 0 }; - else if (settingValue.value_type.type === "String") initialValues[settingId] = { type: "String", value: "" }; + if (settingValue.value_type.type === 'Boolean') + initialValues[settingId] = { type: 'Boolean', value: false }; + else if (settingValue.value_type.type === 'Integer') + initialValues[settingId] = { type: 'Integer', value: 0 }; + else if (settingValue.value_type.type === 'UnsignedInteger') + initialValues[settingId] = { type: 'UnsignedInteger', value: 0 }; + else if (settingValue.value_type.type === 'Float') + initialValues[settingId] = { type: 'Float', value: 0 }; + else if (settingValue.value_type.type === 'String') + initialValues[settingId] = { type: 'String', value: '' }; } - }) - }) - return initialValues -} - -export interface ConfigurableManifest { auto_start: boolean, restart_on_crash: boolean, start_on_connection: boolean, setting_sections: Record, } -export interface ManifestValue { auto_start: boolean, restart_on_crash: boolean, start_on_connection: boolean, setting_sections: Record, } -export interface SectionManifest { section_id: string, name: string, description: string, settings: Record, } -export interface SectionManifestValue { settings: Record, } -export interface SettingManifest { setting_id: string, name: string, description: string, value: ConfigurableValue | null, value_type: ConfigurableValueType, default_value: ConfigurableValue | null, is_secret: boolean, is_required: boolean, is_mutable: boolean, } -export interface SettingManifestValue { value: ConfigurableValue | null, } -export type ConfigurableValueType = { type: "String", regex: string | null, } | { type: "Integer", min: number | null, max: number | null, } | { type: "UnsignedInteger", min: number | null, max: number | null, } | { type: "Float", min: number | null, max: number | null, } | { type: "Boolean" } | { type: "Enum", options: Array, }; -export type ConfigurableValue = { type: "String", value: string } | { type: "Integer", value: number } | { type: "UnsignedInteger", value: number } | { type: "Float", value: number } | { type: "Boolean", value: boolean } | { type: "Enum", value: string }; \ No newline at end of file + }); + }; + Object.keys(copySettingSections).forEach((sectionId: string) => { + getInitialValue(sectionId); + }); + return initialValues; +}; diff --git a/src/components/Instance/InstanceCreateForm.tsx b/src/components/Instance/InstanceCreateForm.tsx index ab593dfb..73b34ade 100644 --- a/src/components/Instance/InstanceCreateForm.tsx +++ b/src/components/Instance/InstanceCreateForm.tsx @@ -5,90 +5,162 @@ import { useEffectOnce } from 'usehooks-ts'; import useAnalyticsEventTracker from 'utils/hooks'; import { axiosWrapper, catchAsyncToString } from 'utils/util'; import { - ConfigurableValue, + autoSettingPageObject, + basicSettingsPageObject, formId, - ManifestValue, - ConfigurableManifest, - SectionManifestValue, } from './Create/form'; import { generateValidationSchema, generateInitialValues } from './Create/form'; import { FormFromManifest } from './Create/FormFromManifest'; import GameTypeSelectForm from './Create/GameTypeSelectForm'; -import { SetupInstanceManifest } from 'data/InstanceGameTypes'; +import { + SetupGenericInstanceManifest, + SetupInstanceManifest, +} from 'data/InstanceGameTypes'; import { HandlerGameType } from 'bindings/HandlerGameType'; import Spinner from 'components/DashboardLayout/Spinner'; import WarningAlert from 'components/Atoms/WarningAlert'; import clsx from 'clsx'; +import * as yup from 'yup'; +import { GameInstanceContext } from 'data/GameInstanceContext'; +import { ConfigurableValue } from 'bindings/ConfigurableValue'; +import { SetupManifest } from 'bindings/SetupManifest'; +import { SetupValue } from 'bindings/SetupValue'; +import { SectionManifestValue } from 'bindings/SectionManifestValue'; +import { toast } from 'react-toastify'; + +export type GenericHandlerGameType = 'Generic' | HandlerGameType; +export type FormPage = { + name: string; + description: string; + page: SetupManifest; +}; -export default function CreateGameInstance({ +export default function InstanceCreateForm({ onComplete, }: { onComplete: () => void; }) { const [activeStep, setActiveStep] = useState(0); - const [gameType, setGameType] = useState( - 'MinecraftJavaVanilla' + const [gameType, setGameType] = useState('Generic'); + const [genericFetchReady, setGenericFetchReady] = useState(false); //if the button has been pressed to fetch the manifest -> enables the query + const [urlValid, setUrlValid] = useState(false); //if the query returned a valid manifest + const [url, setUrl] = useState(''); //the url the user enters + const [setupManifest, setSetupManifest] = useState( + null ); + const { - data: setupManifest, + data: setup_manifest, isLoading, error, - } = SetupInstanceManifest(gameType); + } = gameType === 'Generic' + ? SetupGenericInstanceManifest(gameType, url, genericFetchReady) + : SetupInstanceManifest(gameType as HandlerGameType); const gaEventTracker = useAnalyticsEventTracker('Create Instance'); const formikRef = useRef>>(null); + const formPages = useMemo(() => { + if (!setupManifest) + return [ + { + name: 'Basic Settings', + description: 'Basic settings for your server.', + page: { setting_sections: { section_1: basicSettingsPageObject } }, + }, + ]; + + return [ + { + name: 'Basic Settings', + description: 'Basic settings for your server.', + page: { setting_sections: { section_1: basicSettingsPageObject } }, + }, + { + name: 'Instance Settings', + description: 'Configure your server.', + page: setupManifest, + }, + { + name: 'Auto Settings', + description: 'Automatically configure your server.', + page: { setting_sections: { section_1: autoSettingPageObject } }, + }, + ]; + }, [setupManifest]); + useEffectOnce(() => { gaEventTracker('Create Instance Start'); }); - const initialValue: Record | null = useMemo( - () => - setupManifest - ? generateInitialValues(setupManifest.setting_sections) - : null, - [setupManifest] - ); - const validationSchema = useMemo( - () => (setupManifest ? generateValidationSchema(setupManifest) : null), - [setupManifest] - ); - if (!setupManifest) return ; - if (!initialValue) return ; - if (!validationSchema) return ; + useEffect(() => { + if (gameType !== 'Generic') { + setGenericFetchReady(false); + setUrlValid(false); + } + if (!isLoading && !error) { + if (gameType === 'Generic' && genericFetchReady) setUrlValid(true); //value fetched with no errors (this is to cover the initial case when nothing has been fetched yet) + setInitialValues( + generateInitialValues(setup_manifest['setting_sections']) + ); + setValidationSchema(generateValidationSchema(setup_manifest)); + setSetupManifest(setup_manifest); + } + }, [gameType, isLoading, setup_manifest, error, genericFetchReady]); + + + + const [initialValues, setInitialValues] = useState< + Record + >({}); + const [validationSchema, setValidationSchema] = useState([ + yup.object().shape({}), + ]); + + // if (setupManifest === null && activeStep !== 0) return ; const currentValidationSchema = validationSchema[activeStep]; - const sectionNames = [ + const sections = [ 'Select Game', - Object.keys(setupManifest.setting_sections).map( - (sectionId) => setupManifest.setting_sections[sectionId].name - ), - ].flat(); - const formReady = activeStep === sectionNames.length - 1; - const createInstance = async (value: ManifestValue) => { - await axiosWrapper({ - method: 'post', - url: `/instance/create/${gameType}`, - headers: { 'Content-Type': 'application/json' }, - data: JSON.stringify(value), - }); + 'Basic Settings', + 'Instance Settings', + 'Auto Settings', + ]; + const formReady = activeStep === sections.length - 1; + const createInstance = async (value: SetupValue) => { + try { + if (gameType === 'Generic') { + await axiosWrapper({ + method: 'post', + url: `/instance/create_generic`, + headers: { 'Content-Type': 'application/json' }, + data: JSON.stringify({ url: url, setup_value: value }), + }); + } else { + await axiosWrapper({ + method: 'post', + url: `/instance/create/${gameType}`, + headers: { 'Content-Type': 'application/json' }, + data: JSON.stringify(value), + }); + } + } catch (e) { + toast.error('Error creating instance: ' + e); + } }; async function submitForm( values: Record, actions: FormikHelpers> ) { - const sectionValues: Record = {}; - for (let i = 1; i < sectionNames.length - 1; i++) { - const structure = getSectionValidationStructure(values, i); - sectionValues[structure[1]] = structure[0]; - } + const sectionValues = parseValues(values); - const parsedValues: ManifestValue = { + const parsedValues: SetupValue = { + name: values.name?.value as string, + description: values.description?.value as string, auto_start: values.auto_start?.value as boolean, restart_on_crash: values.restart_on_crash?.value as boolean, - start_on_connection: values.start_on_connection?.value as boolean, setting_sections: sectionValues, }; @@ -99,42 +171,26 @@ export default function CreateGameInstance({ onComplete(); } - function getSectionValidationStructure( - values: Record, - step: number - ): [SectionManifestValue, string] { - if (!setupManifest || step == 0) return [{ settings: {} }, '']; - const sectionKeys = Object.keys(setupManifest.setting_sections); - const settingKeys = Object.keys( - setupManifest.setting_sections[sectionKeys[step - 1]]['settings'] - ); - const sectionValidation: SectionManifestValue = { settings: {} }; - for (const key of settingKeys) { - sectionValidation['settings'][key] = { value: values[key] }; + function parseValues( + values: Record + ): Record { + if (!setup_manifest) return {}; + const sectionKeys = Object.keys(setup_manifest['setting_sections']); + + const sectionValues: Record = {}; + + for (const sectionKey of sectionKeys) { + const sectionValue: SectionManifestValue = { settings: {} }; + const settingKeys = Object.keys( + setup_manifest['setting_sections'][sectionKey]['settings'] + ); + for (const key of settingKeys) { + sectionValue['settings'][key] = { value: values[key] }; + } + sectionValues[sectionKey] = sectionValue; } - return [sectionValidation, sectionKeys[step - 1]]; - } - /** - * @returns: Error message if there is error, empty string otherwise - */ - async function validateSection( - values: Record, - step: number - ) { - const structure = getSectionValidationStructure(values, step); - if (!structure[1]) return; //if string is empty - const sectionValidation = structure[0]; - const sectionKey = structure[1]; - - return catchAsyncToString( - axiosWrapper({ - method: 'put', - url: `/setup_manifest/${gameType}/${sectionKey}`, - headers: { 'Content-Type': 'application/json' }, - data: JSON.stringify(sectionValidation), - }) - ); + return sectionValues; } async function handleSubmit( @@ -144,89 +200,103 @@ export default function CreateGameInstance({ if (formReady) { submitForm(values, actions); } else { - const errorMessage = await validateSection(values, activeStep); - if (errorMessage) { - actions.setStatus({ error: errorMessage }); - } else { - actions.setStatus(null); + if (setup_manifest) { + if (activeStep === 0) actions.setValues(initialValues); setActiveStep(activeStep + 1); - actions.setTouched({}); } + actions.setTouched({}); actions.setSubmitting(false); } } function handleBack() { + if(activeStep === 1) { + setGenericFetchReady(false); + setUrlValid(false); + setUrl(''); + } setActiveStep(activeStep - 1); } - console.log('setupManifest.setting_sections', setupManifest.setting_sections); - return ( - - {({ isSubmitting, status }) => ( -
-
- {sectionNames.map((section, i) => ( -
- {section} -
- ))} -
-
- {activeStep == 0 ? ( - - ) : ( - - {status && ( - -

- Please ensure your fields are filled out correctly -
- {status.error} -

-
- )} -
- )} -
- {activeStep !== 0 ? ( -
-
- - )} - + + )} + + ); } diff --git a/src/components/Instance/InstanceOverview.tsx b/src/components/Instance/InstanceOverview.tsx index cd7447d2..68d1542f 100644 --- a/src/components/Instance/InstanceOverview.tsx +++ b/src/components/Instance/InstanceOverview.tsx @@ -1,15 +1,12 @@ -import { Tab } from '@headlessui/react'; import ClipboardTextfield from 'components/ClipboardTextfield'; -import DashboardCard from 'components/DashboardCard'; import Label from 'components/Atoms/Label'; import { updateInstance } from 'data/InstanceList'; import { LodestoneContext } from 'data/LodestoneContext'; -import { useContext, useEffect, useState } from 'react'; +import { useContext } from 'react'; import { axiosPutSingleValue, stateToLabelColor } from 'utils/util'; import EditableTextfield from 'components/EditableTextfield'; import { useQueryClient } from '@tanstack/react-query'; import InstancePerformanceCard from 'components/Instance/InstancePerformanceCard'; -import FileViewer from 'components/FileViewer/FileViewer'; import { InstanceContext } from 'data/InstanceContext'; import GameIcon from 'components/Atoms/GameIcon'; import { useGlobalSettings } from 'data/GlobalSettings'; @@ -26,7 +23,6 @@ const InstanceOverview = () => { const domain = (globalSettings?.domain ?? address) || 'localhost'; const queryClient = useQueryClient(); const uuid = instance?.uuid; - const [selectedTabIndex, setSelectedTabIndex] = useState(0); if (!instance || !uuid) { return ( @@ -90,6 +86,9 @@ const InstanceOverview = () => { + diff --git a/src/components/Instance/InstanceSettingsCreate/SettingObject.ts b/src/components/Instance/InstanceSettingsCreate/SettingObject.ts index 1ecb5a29..f48d1967 100644 --- a/src/components/Instance/InstanceSettingsCreate/SettingObject.ts +++ b/src/components/Instance/InstanceSettingsCreate/SettingObject.ts @@ -1,9 +1,7 @@ -import { - ConfigurableValueType, - ConfigurableValue, - SectionManifest, - ConfigurableManifest, -} from '../Create/form'; +import { ConfigurableManifest } from 'bindings/ConfigurableManifest'; +import { ConfigurableValue } from 'bindings/ConfigurableValue'; +import { ConfigurableValueType } from 'bindings/ConfigurableValueType'; +import { SectionManifest } from 'bindings/SectionManifest'; export type SectionFieldObject = { section_id: string; @@ -13,14 +11,14 @@ export type SectionFieldObject = { }; export type SettingFieldObject = { - name: string; - type: 'toggle' | 'number' | 'text' | 'dropdown' | 'password'; - options?: string[]; - description?: string; - value: ConfigurableValue | null; - min?: number | null; - max?: number | null; - is_mutable: boolean; + name: string; + type: 'toggle' | 'number' | 'text' | 'dropdown' | 'password'; + options?: string[]; + description?: string; + value: ConfigurableValue | null; + min?: number | null; + max?: number | null; + is_mutable: boolean; }; export const generateSectionDataObject = (settingSection: SectionManifest) => { @@ -57,7 +55,11 @@ export const generateSectionDataObject = (settingSection: SectionManifest) => { }; if (setting.value_type.type === 'Enum') settingsObject[settingKey].options = setting.value_type.options; - if (setting.value_type.type === 'UnsignedInteger' || setting.value_type.type === 'Integer' || setting.value_type.type === 'Float'){ + if ( + setting.value_type.type === 'UnsignedInteger' || + setting.value_type.type === 'Integer' || + setting.value_type.type === 'Float' + ) { settingsObject[settingKey].min = setting.value_type.min; settingsObject[settingKey].max = setting.value_type.max; } @@ -73,12 +75,11 @@ export const generateSectionDataObject = (settingSection: SectionManifest) => { return sectionDataObject; }; - export const iterateSections = (manifest: ConfigurableManifest) => { - const fieldSections:SectionFieldObject[] = [] - Object.keys(manifest["setting_sections"]).forEach((sectionKey) => { - const section = manifest["setting_sections"][sectionKey]; + const fieldSections: SectionFieldObject[] = []; + Object.keys(manifest['setting_sections']).forEach((sectionKey) => { + const section = manifest['setting_sections'][sectionKey]; fieldSections.push(generateSectionDataObject(section)); - }) - return fieldSections -} \ No newline at end of file + }); + return fieldSections; +}; diff --git a/src/components/InstanceCard.stories.tsx b/src/components/InstanceCard.stories.tsx index 46fe822a..3e7e7b60 100644 --- a/src/components/InstanceCard.stories.tsx +++ b/src/components/InstanceCard.stories.tsx @@ -64,7 +64,7 @@ export const Default = Template.bind({}); Default.args = { uuid: '1', name: 'Test Instance', - game_type: { MinecraftJava: { variant: 'Vanilla' } }, + game_type: { type: 'MinecraftJava', variant: { type: 'Vanilla' } }, state: 'Running', player_count: 1, max_player_count: 12, @@ -76,7 +76,7 @@ export const InvestigatingCrash = Template.bind({}); InvestigatingCrash.args = { uuid: '2', name: 'Crashed Instance', - game_type: { MinecraftJava: { variant: 'Vanilla' } }, + game_type: { type: 'MinecraftJava', variant: { type: 'Vanilla' } }, state: 'Error', player_count: 0, max_player_count: 12, diff --git a/src/components/InstanceCard.tsx b/src/components/InstanceCard.tsx index 7d009ba9..7413d254 100644 --- a/src/components/InstanceCard.tsx +++ b/src/components/InstanceCard.tsx @@ -1,4 +1,5 @@ import { + axiosWrapper, capitalizeFirstLetter, errorToString, stateToLabelColor, @@ -27,6 +28,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Menu, Transition } from '@headlessui/react'; import Avatar from 'boring-avatars'; import Button from './Atoms/Button'; +import { PortStatus } from 'bindings/PortStatus'; // // for the css style of the double border when focused // const stateToBorderMap: { [key in InstanceState]: string[] } = { @@ -101,14 +103,16 @@ export default function InstanceCard({ const stateToMenuInfo = () => { switch (state) { case 'Starting': - return [{ label: 'Kill', icon: faPlug, onClick: buttonOnClick }]; + return [{ label: 'Kill', icon: faPlug, onClick: powerButtonOnClick }]; case 'Stopping': - return [{ label: 'Kill', icon: faPlug, onClick: buttonOnClick }]; + return [{ label: 'Kill', icon: faPlug, onClick: powerButtonOnClick }]; case 'Stopped': - return [{ label: 'Start', icon: faPowerOff, onClick: buttonOnClick }]; + return [ + { label: 'Start', icon: faPowerOff, onClick: powerButtonOnClick }, + ]; case 'Running': return [ - { label: 'Stop', icon: faPowerOff, onClick: buttonOnClick }, + { label: 'Stop', icon: faPowerOff, onClick: powerButtonOnClick }, { label: 'Restart', icon: faArrowRotateBackward, @@ -150,7 +154,7 @@ export default function InstanceCard({ }); }; - const buttonOnClick = (e: React.MouseEvent) => { + const powerButtonOnClick = async (e: React.MouseEvent) => { e.stopPropagation(); if (loading) return; @@ -162,6 +166,7 @@ export default function InstanceCard({ gaEventTracker('Started Instance'); } + axios .put(`/instance/${uuid}${stateToApiEndpointMap[state]}`) .then((response) => { diff --git a/src/components/InstanceLoadingCard.stories.tsx b/src/components/InstanceLoadingCard.stories.tsx index 74abd4c7..77fac69e 100644 --- a/src/components/InstanceLoadingCard.stories.tsx +++ b/src/components/InstanceLoadingCard.stories.tsx @@ -17,7 +17,12 @@ Default.args = { uuid: 'bruh moment', name: 'My Minecraft Server', port: 25565, - game_type: { MinecraftJava: { variant: 'Vanilla' } }, + game_type: { + type: 'MinecraftJava', + variant: { + type: 'Vanilla', + }, + }, focus: false, progress_percent: 0.5, progress_title: 'Setting up...', diff --git a/src/components/InstanceLoadingCard.tsx b/src/components/InstanceLoadingCard.tsx index 4d8ca403..150fe527 100644 --- a/src/components/InstanceLoadingCard.tsx +++ b/src/components/InstanceLoadingCard.tsx @@ -5,7 +5,7 @@ import LoadingStatusIcon from './Atoms/LoadingStatusIcon'; import { EventLevel } from 'bindings/EventLevel'; import { OngoingState } from 'data/NotificationContext'; import ProgressBar from './Atoms/ProgressBar'; -import { GameType } from 'bindings/InstanceInfo'; +import { Game } from 'bindings/Game'; const NotificationLevelToBgColorClass = ( level: EventLevel, @@ -45,7 +45,7 @@ export default function InstanceLoadingCard({ uuid: string; name: string; port: number; - game_type: GameType; + game_type: Game; focus?: boolean; progress_percent?: number; progress_title: string; diff --git a/src/components/SettingField.tsx b/src/components/SettingField.tsx index 7bdf1169..7f801bc1 100644 --- a/src/components/SettingField.tsx +++ b/src/components/SettingField.tsx @@ -7,7 +7,7 @@ import { useState } from 'react'; import { useIsomorphicLayoutEffect } from 'usehooks-ts'; import { useUserAuthorized } from 'data/UserInfo'; import ToggleBox from './Atoms/Config/ToggleBox'; -import { ConfigurableValue } from './Instance/Create/form'; +import { ConfigurableValue } from 'bindings/ConfigurableValue'; import { AxiosError } from 'axios'; import { toast } from 'react-toastify'; import { SettingFieldObject } from './Instance/InstanceSettingsCreate/SettingObject'; diff --git a/src/components/Settings/ChangeSelfPasswordForm.tsx b/src/components/Settings/ChangeSelfPasswordForm.tsx index 692bfa33..9824c0f3 100644 --- a/src/components/Settings/ChangeSelfPasswordForm.tsx +++ b/src/components/Settings/ChangeSelfPasswordForm.tsx @@ -67,31 +67,36 @@ export const ChangeSelfPasswordForm = ({
{status && (

{status.error}

)} - - - -
-
)} diff --git a/src/components/Table.stories.tsx b/src/components/Table.stories.tsx new file mode 100644 index 00000000..85212f82 --- /dev/null +++ b/src/components/Table.stories.tsx @@ -0,0 +1,68 @@ +import React from 'react'; + +import {ComponentStory, ComponentMeta} from '@storybook/react'; +import {Table, TableColumn, TableRow} from "./Table"; +import {cn} from "../utils/util"; + +const mockTableColumns: TableColumn[] = [ + {field: "name", headerName: "TASK NAME", className: "font-mono text-white"}, + {field: "start", headerName: "CREATED"}, + {field: "finish", headerName: "FINISHED"}, + {field: "pId", headerName: "PROCESS ID"}, +] + +const mockTableRows: TableRow[] = [ + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, + {name: "Hello.js", start: "Jan 4 2023, 09:37", finish: "Jan 4 2023, 09:37", pId: 1234567890}, +] + +export default { + title: 'library/Table', + component: Table, +} as ComponentMeta; + +const Template: ComponentStory = (args) => + ( + + ) +const TemplateDiv: ComponentStory = (args) => + ( +
+
+ + ) + +export const Primary = Template.bind({}); +export const Minimal = Template.bind({}); +export const Clip = TemplateDiv.bind({}); + + +Primary.args = { + columns: mockTableColumns, + rows: mockTableRows.slice(0, 5), + className: "w-[600px]", +} +Minimal.args = { + columns: mockTableColumns, + rows: mockTableRows.slice(0, 5), + className: "w-full", +} +Clip.args = { + columns: mockTableColumns, + rows: mockTableRows, + className: "w-96 h-96", +} \ No newline at end of file diff --git a/src/components/Table.tsx b/src/components/Table.tsx new file mode 100644 index 00000000..2c0818c0 --- /dev/null +++ b/src/components/Table.tsx @@ -0,0 +1,79 @@ +import ButtonMenu from './ButtonMenu'; +import { ButtonMenuConfig } from './ButtonMenu'; + +import clsx from "clsx"; + +export interface TableColumn { + field: string; + headerName: string; + element?: (rows: TableRow[], rowIndex: number) => React.ReactElement; + className?: string; +} + +export interface TableRow { + [key: string]: React.ReactNode; +} + +interface TableProps { + rows: TableRow[]; + columns: TableColumn[]; + alignment?: 'even' | 'left'; + menuOptions?: ButtonMenuConfig; + className?: string; +} + +export function Table({rows, columns, alignment = 'even', menuOptions, className}: TableProps) { + + // If menuOptions is truthy, add an extra column for the menu buttons + // Add a unique index for each ButtonMenu created to control respective rows + // If alignment === 'left', add 'w-full' to className of last column + const modifiedColumns = menuOptions + ? [...columns, { + field: 'menu', + headerName: '', + element: (rows: TableRow[], rowIndex: number) => ( + + ), + className: `text-end ${alignment === 'left' ? 'w-full' : ''}`, + }] + : alignment == 'left' + ? columns.map((column, index, array) => + index === array.length - 1 ? { ...column, className: 'w-full' } : column + ) + : columns; + + // Code currently uses arbitrary values for min and max width when alignment is set to left + return ( +
+ + + {modifiedColumns.map((column, cIndex) => ( + + ))} + + + + {rows.map((row, indexRow) => ( + + {modifiedColumns.map((column, indexColumn) => ( + + ))} + + ))} + +
+ {column.headerName} +
+ {column.element ? column.element(rows, indexRow) : row[column.field]} +
+ ); +} diff --git a/src/components/UserBox.stories.tsx b/src/components/UserBox.stories.tsx new file mode 100644 index 00000000..97dce387 --- /dev/null +++ b/src/components/UserBox.stories.tsx @@ -0,0 +1,47 @@ +import React from 'react'; + +import { ComponentStory, ComponentMeta } from '@storybook/react'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import UserBox from './UserBox'; + +export default { + title: 'library/UserBox', + component: UserBox, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ( + + + +); + +export const Primary = Template.bind({}); + +Primary.args = { + user: { + uid: '123', + username: 'John Doe', + is_owner: true, + is_admin: true, + permissions: { + can_view_instance: [], + can_start_instance: [], + can_stop_instance: [], + can_access_instance_console: [], + can_access_instance_setting: [], + can_read_instance_resource: [], + can_write_instance_resource: [], + can_access_instance_macro: [], + can_read_instance_file: [], + can_write_instance_file: [], + can_create_instance: false, + can_delete_instance: false, + can_read_global_file: false, + can_write_global_file: false, + can_manage_permission: false, + }, + }, + onClick: () => { + console.log('clicked'); + }, +}; diff --git a/src/components/UserBox.tsx b/src/components/UserBox.tsx index e4236bf9..7a42bcc9 100644 --- a/src/components/UserBox.tsx +++ b/src/components/UserBox.tsx @@ -40,12 +40,10 @@ export default function UserBox({ return (
-

+

{user.username} {/* this text is bigger then the one in inputbox on purpose */}

diff --git a/src/components/UserMenu.tsx b/src/components/UserMenu.tsx index 5148c325..1bb39526 100644 --- a/src/components/UserMenu.tsx +++ b/src/components/UserMenu.tsx @@ -120,7 +120,7 @@ const UserMenu = () => { icon={faCog} onClick={() => { localStorage.setItem('lastVisitedRoute', location.pathname); - setPathname('/settings'); + setPathname('/settings/general'); }} />
diff --git a/src/data/ConsoleStream.ts b/src/data/ConsoleStream.ts index 528a4792..36c123f1 100644 --- a/src/data/ConsoleStream.ts +++ b/src/data/ConsoleStream.ts @@ -75,7 +75,7 @@ const toConsoleEvent = (event: ClientEvent): ConsoleEvent => { */ export const useConsoleStream = (uuid: string) => { const { core, token } = useContext(LodestoneContext); - const { address, port, apiVersion } = core; + const { address, port, apiVersion, protocol } = core; const [consoleLog, setConsoleLog] = useState([]); const [status, setStatusInner] = useState('loading'); //callbacks should use statusRef.current instead of status const statusRef = useRef('loading'); @@ -118,7 +118,7 @@ export const useConsoleStream = (uuid: string) => { try { const websocket = new WebSocket( - `ws://${address}:${ + `${protocol === 'https' ? 'wss' : 'ws'}://${address}:${ port ?? LODESTONE_PORT }/api/${apiVersion}/instance/${uuid}/console/stream?token=Bearer ${token}` ); diff --git a/src/data/EventStream.ts b/src/data/EventStream.ts index f1998573..ce461e78 100644 --- a/src/data/EventStream.ts +++ b/src/data/EventStream.ts @@ -400,10 +400,11 @@ export const useEventStream = () => { if (!token) return; const connectWebsocket = () => { - const wsAddress = `ws://${core.address}:${core.port ?? LODESTONE_PORT - }/api/${core.apiVersion}/events/all/stream?filter=${JSON.stringify( - eventQuery - )}`; + const wsAddress = `${core.protocol === 'https' ? 'wss' : 'ws'}://${core.address}:${ + core.port ?? LODESTONE_PORT + }/api/${core.apiVersion}/events/all/stream?filter=${JSON.stringify( + eventQuery + )}`; if (wsRef.current) wsRef.current.close(); diff --git a/src/data/GameInstanceContext.tsx b/src/data/GameInstanceContext.tsx new file mode 100644 index 00000000..e5e2968c --- /dev/null +++ b/src/data/GameInstanceContext.tsx @@ -0,0 +1,32 @@ +import { GenericHandlerGameType } from 'components/Instance/InstanceCreateForm'; +import { createContext } from 'react'; + +type GameInstanceContextValue = { + gameType: GenericHandlerGameType; + setGameType: (gameType: GenericHandlerGameType) => void; + urlValid: boolean; + setUrlValid: (value: boolean) => void; + url: string; + setUrl: (value: string) => void; + genericFetchReady: boolean; + setGenericFetchReady: (value: boolean) => void; +}; + +export const GameInstanceContext = createContext({ + gameType: 'Generic', + setGameType: () => { + throw new Error('CreateGameInstanceContext not initialized'); + }, + urlValid: false, + setUrlValid: () => { + throw new Error('CreateGameInstanceContext not initialized'); + }, + url: '', + setUrl: () => { + throw new Error('CreateGameInstanceContext not initialized'); + }, + genericFetchReady: false, + setGenericFetchReady: () => { + throw new Error('CreateGameInstanceContext not initialized'); + }, +}); diff --git a/src/data/GameTypeMappings.tsx b/src/data/GameTypeMappings.tsx index 10cd29b0..24d5bfe5 100644 --- a/src/data/GameTypeMappings.tsx +++ b/src/data/GameTypeMappings.tsx @@ -4,6 +4,9 @@ import FileViewer from 'components/FileViewer'; import DashboardCard from 'components/DashboardCard'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import InstanceOverview from 'components/Instance/InstanceOverview'; +import { match, otherwise } from 'variant'; + +const unknown_icon = '/assets/minecraft-missing-texture.svg'; import { faChartLine, @@ -14,6 +17,7 @@ import { faServer, } from '@fortawesome/free-solid-svg-icons'; import { HandlerGameType } from 'bindings/HandlerGameType'; +import { Game } from 'bindings/Game'; type InstanceTab = { title: string; @@ -24,125 +28,78 @@ type InstanceTab = { content: JSX.Element; }; -export const gameIcons: { [key: string]: { [key: string]: string } } = { - MinecraftJava: { - Vanilla: '/assets/minecraft-vanilla.png', - Fabric: '/assets/minecraft-fabric.png', - Forge: '/assets/minecraft-forge.png', - Paper: '/assets/minecraft-paper.png', - }, -}; +export const game_to_game_icon = (game: Game) => + match(game, { + MinecraftJava: ({ variant }) => + match( + variant, + otherwise( + { + Vanilla: () => '/assets/minecraft-vanilla.png', + Fabric: () => '/assets/minecraft-fabric.png', + Forge: () => '/assets/minecraft-forge.png', + Paper: () => '/assets/minecraft-paper.png', + }, + () => unknown_icon + ) + ), + Generic: () => '/assets/GenericIcon.svg', + }); + +export const game_to_game_title = (game: Game) => + match(game, { + MinecraftJava: ({ variant }) => + match(variant, { + Vanilla: () => 'Minecraft', + Forge: () => 'Forge (Minecraft)', + Fabric: () => 'Fabric (Minecraft)', + Paper: () => 'Paper (Minecraft)', + Spigot: () => 'Spigot (Minecraft)', + Other: ({ name }) => `${name} (Minecraft)`, + }), + Generic: ({ game_name }) => `${game_name} (Generic)`, + }); + +export const game_to_description = (game: Game) => + match(game, { + MinecraftJava: ({ variant }) => + match(variant, { + Vanilla: () => 'Standard vanilla Minecraft server from Mojang.', + Forge: () => + 'Modding framework that allows you to install mods and customize your Minecraft experience.', + Fabric: () => 'Lightweight modding toolchain for Minecraft.', + Paper: () => + 'High-performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.', + Spigot: () => + 'Modified Minecraft server software that supports plugins, offering enhanced performance and customization options.', + Other: ({ name }) => `Unknown Minecraft variant: ${name}`, + }), + Generic: ({ game_name }) => `Unknown game: ${game_name}`, + }); -export const gameTypeInfoFromHandlerType: Record = { +export const HandlerGameType_to_Game: Record = { MinecraftJavaVanilla: { - title: 'Minecraft', - description: 'Standard vanilla Minecraft server from Mojang.', - game_type: { MinecraftJava: { variant: 'Vanilla' } }, + type: 'MinecraftJava', + variant: { + type: 'Vanilla', + }, }, MinecraftFabric: { - title: 'Fabric (Minecraft)', - description: 'Lightweight modding toolchain for Minecraft.', - game_type: { MinecraftJava: { variant: 'Fabric' } }, + type: 'MinecraftJava', + variant: { + type: 'Fabric', + }, }, MinecraftForge: { - title: 'Forge (Minecraft)', - description: - 'Modding framework that allows you to install mods and customize your Minecraft experience.', - game_type: { MinecraftJava: { variant: 'Forge' } }, + type: 'MinecraftJava', + variant: { + type: 'Forge', + }, }, MinecraftPaper: { - title: 'Paper (Minecraft)', - description: 'High-performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.', - game_type: { MinecraftJava: { variant: 'Paper' } }, - }, -}; - -export const spanMap: { [key: string]: { [key: string]: string } } = { - MinecraftJava: { - Vanilla: 'Minecraft Vanilla', - Fabric: 'Minecraft Fabric', - Forge: 'Minecraft Forge', - Paper: 'Minecraft Paper', - }, -}; - -export const InstanceTabListMap: Record = { - MinecraftJava: [ - { - title: 'Overview', - displayTitle: null, - path: 'overview', - width: 'max-w-4xl', - icon: , - content: , - }, - { - title: 'Settings', - displayTitle: 'Settings', - path: 'settings', - width: 'max-w-2xl', - icon: , - content: ( -
- -
- ), - }, - { - title: 'Console', - displayTitle: 'Console', - path: 'console', - width: 'max-w-6xl', - icon: , - content: , + type: 'MinecraftJava', + variant: { + type: 'Paper', }, - { - title: 'Files', - displayTitle: 'Files', - path: 'files', - width: 'max-w-6xl', - icon: , - content: , - }, - { - title: 'Tasks', - displayTitle: 'Tasks', - path: 'tasks', - width: 'max-w-4xl', - icon: , - content: ( - - placeholder -

- Coming soon to a dashboard near you! -

-
- ), - }, - { - title: 'Event Logs', - displayTitle: 'Event Logs', - path: 'logs', - width: 'max-w-4xl', - icon: , - content: ( - - placeholder -

- Coming soon to a dashboard near you! -

-
- ), - }, - ], + }, }; diff --git a/src/data/InstanceGameTypes.ts b/src/data/InstanceGameTypes.ts index 074e4793..2f4b9f5c 100644 --- a/src/data/InstanceGameTypes.ts +++ b/src/data/InstanceGameTypes.ts @@ -1,18 +1,40 @@ import { HandlerGameType } from 'bindings/HandlerGameType'; import { useQuery } from '@tanstack/react-query'; import axios, { AxiosError } from 'axios'; -import { ConfigurableManifest } from 'components/Instance/Create/form'; - +import { SetupManifest } from 'bindings/SetupManifest'; +import { GenericHandlerGameType } from 'components/Instance/InstanceCreateForm'; export const InstanceGameTypes = () => - useQuery(['games'], () => - axios.get('/games').then((res) => res.data) - ); + useQuery(['games'], async () => { + const response = await axios.get('/games'); + return response.data; + }); -export const SetupInstanceManifest = (game_type: HandlerGameType) => - useQuery( +export const SetupInstanceManifest = (game_type: HandlerGameType) => { + return useQuery( ['setup_manifest', game_type], - () => - axios - .get(`/setup_manifest/${game_type}`) - .then((res) => res.data) + async () => { + const response = await axios.get( + `/setup_manifest/${game_type}` + ); + return response.data; + } + ); +}; + +export const SetupGenericInstanceManifest = ( + game_type: GenericHandlerGameType, + generic_instance_url: string, + url_is_ready: boolean +) => { + return useQuery( + ['generic_setup_manifest', game_type], + async () => { + const response = await axios.put( + `/generic_setup_manifest`, + { url: generic_instance_url } + ); + return response.data; + }, + { enabled: url_is_ready, cacheTime: 0, retry: false } ); +}; diff --git a/src/data/InstanceManifest.ts b/src/data/InstanceManifest.ts index c0d58a80..78c00729 100644 --- a/src/data/InstanceManifest.ts +++ b/src/data/InstanceManifest.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; import axios, { AxiosError } from 'axios'; -import { ConfigurableManifest } from 'components/Instance/Create/form'; +import { ConfigurableManifest } from 'bindings/ConfigurableManifest'; export const useInstanceManifest = (uuid: string) => { return useQuery( diff --git a/src/data/PerformanceStream.ts b/src/data/PerformanceStream.ts index ed4c8250..5875be54 100644 --- a/src/data/PerformanceStream.ts +++ b/src/data/PerformanceStream.ts @@ -27,7 +27,7 @@ export const usePerformanceStream = (uuid: string) => { const [latency_s, setLatency_s] = useState(0); const [counter, setCounter] = useState(-1); const { core } = useContext(LodestoneContext); - const { address, port, apiVersion } = core; + const { address, port, apiVersion, protocol } = core; useInterval(() => { setLatency_s((Date.now() - lastPing) / 1000); @@ -36,7 +36,7 @@ export const usePerformanceStream = (uuid: string) => { useEffect(() => { try { const websocket = new WebSocket( - `ws://${address}:${ + `${protocol === 'https' ? 'wss' : 'ws'}://${address}:${ port ?? LODESTONE_PORT }/api/${apiVersion}/monitor/${uuid}` ); diff --git a/src/data/SettingsContext.ts b/src/data/SettingsContext.ts index 1ad9df36..fbf2d7a5 100644 --- a/src/data/SettingsContext.ts +++ b/src/data/SettingsContext.ts @@ -3,8 +3,8 @@ import { PublicUser } from '../bindings/PublicUser'; interface SettingsContextType { userList: { [uuid: string]: PublicUser }; - selectedUser?: PublicUser; - selectUser: (user?: PublicUser) => void; + selectedUser?: PublicUser | null; + selectUser: (user: PublicUser|null) => void; tabIndex: number; setTabIndex: (index: number) => void; } diff --git a/src/globals.css b/src/globals.css index 4bd7ea47..fbad658e 100644 --- a/src/globals.css +++ b/src/globals.css @@ -151,6 +151,30 @@ main { .gutter-both-stable { scrollbar-gutter: both-edges stable; } + + .generic-gametype-hover{ + border: double 2px transparent; + border-radius: 0.375rem; + background-image: linear-gradient(#2B2D32, #2B2D32), radial-gradient(circle at top right, #2AF588, #334675); + background-origin: border-box; + background-clip: padding-box, border-box; + } + + .generic-gametype-selected { + border: double 2px transparent; + border-radius: 0.375rem; + background-image: linear-gradient(#303338, #303338), radial-gradient(circle at top right, #2AF588, #334675); + background-origin: border-box; + background-clip: padding-box, border-box; + } + + .generic-gametype-unselected{ + border: double 2px transparent; + border-radius: 0.375rem; + background-image: linear-gradient( #2B2D32, #2B2D32), radial-gradient(circle at top right, #2B2D32, #2B2D32); + background-origin: border-box; + background-clip: padding-box, border-box; + } } /* Some libraries don't like class name */ @@ -274,3 +298,7 @@ main { .Toastify--animate { animation-duration: 0.1s !important; } + +::-ms-reveal { + display: none; +} \ No newline at end of file diff --git a/src/pages/InstanceTabs/InstanceTabs.tsx b/src/pages/InstanceTabs/InstanceTabs.tsx index a6502b8d..dbb1fbb8 100644 --- a/src/pages/InstanceTabs/InstanceTabs.tsx +++ b/src/pages/InstanceTabs/InstanceTabs.tsx @@ -2,12 +2,103 @@ import { useContext, useEffect, useState } from 'react'; import { InstanceContext } from 'data/InstanceContext'; import { useDocumentTitle } from 'usehooks-ts'; import { useLocation } from 'react-router-dom'; -import { InstanceTabListMap, spanMap } from '../../data/GameTypeMappings'; import Label from 'components/Atoms/Label'; import { cn, stateToLabelColor } from 'utils/util'; import Spinner from 'components/DashboardLayout/Spinner'; import { CommandHistoryContextProvider } from 'data/CommandHistoryContext'; -import { Games } from 'bindings/InstanceInfo'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import InstanceOverview from 'components/Instance/InstanceOverview'; +import { + faChartLine, + faCodeCompare, + faCog, + faFolder, + faInbox, + faServer, +} from '@fortawesome/free-solid-svg-icons'; +import GameConsole from 'components/GameConsole'; +import FileViewer from 'components/FileViewer'; +import DashboardCard from 'components/DashboardCard'; +import { InstanceSettingCard } from 'components/Instance'; + +export const tabs = [ + { + title: 'Overview', + displayTitle: null, + path: 'overview', + width: 'max-w-4xl', + icon: , + content: , + }, + { + title: 'Settings', + displayTitle: 'Settings', + path: 'settings', + width: 'max-w-2xl', + icon: , + content: ( +
+ +
+ ), + }, + { + title: 'Console', + displayTitle: 'Console', + path: 'console', + width: 'max-w-6xl', + icon: , + content: , + }, + { + title: 'Files', + displayTitle: 'Files', + path: 'files', + width: 'max-w-6xl', + icon: , + content: , + }, + { + title: 'Tasks', + displayTitle: 'Tasks', + path: 'tasks', + width: 'max-w-4xl', + icon: , + content: ( + + placeholder +

+ Coming soon to a dashboard near you! +

+
+ ), + }, + { + title: 'Event Logs', + displayTitle: 'Event Logs', + path: 'logs', + width: 'max-w-4xl', + icon: , + content: ( + + placeholder +

+ Coming soon to a dashboard near you! +

+
+ ), + }, +]; const InstanceTabs = () => { useDocumentTitle('Dashboard - Lodestone'); @@ -47,26 +138,6 @@ const InstanceTabs = () => { ); } } - const game = Object.keys(instance.game_type)[0] as Games; - const variant = instance.game_type[game]['variant']; - const tabs = InstanceTabListMap[game]; - - if (!tabs) { - return ( -
-
-
-

- Unknown game type {spanMap[game][variant]} -

-
-
-
- ); - } const tab = tabs.find((tab) => tab.path === path); if (!tab) { @@ -78,7 +149,7 @@ const InstanceTabs = () => {

- Unknown tab {path} + {path} not found

diff --git a/src/pages/login/CoreConnect.tsx b/src/pages/login/CoreConnect.tsx index 446a46f8..86a14090 100644 --- a/src/pages/login/CoreConnect.tsx +++ b/src/pages/login/CoreConnect.tsx @@ -72,19 +72,7 @@ const CoreConnect = () => {

Add a new core

-

- You may need to adjust your network and browser settings.{' '} - - Learn more. - -

-
- +

You may need to adjust your network and browser settings.{' '} {

+
+ { const { core_name } = coreInfo ?? {}; const tauri = useTauri(); const socket = `${address}:${port}`; + const keyPrefilled = !!(tauri && setupKey); const gaEventTracker = useAnalyticsEventTracker('Core Setup Page'); useEffectOnce(() => { @@ -114,11 +115,12 @@ const CoreSetupNew = () => {

{core_name} ({socket})

-

- {tauri && setupKey - ? "Setup key is automatically filled in because you're using the desktop app" - : 'Check the console output of the core to find the "First time setup key"'} -

+ {keyPrefilled ? null : ( +

+ Check the console output of the core to find the "First time + setup key" +

+ )}
{
{ useDocumentTitle('Core Settings - Lodestone'); const { tabIndex, setTabIndex, selectUser } = useContext(SettingsContext); @@ -33,7 +33,7 @@ const SettingsPage = () => { onChange={(i) => { setTabIndex(i); if (i !== 1) { - selectUser(undefined); + selectUser(null); } }} > diff --git a/src/components/Settings/CoreSettings.tsx b/src/pages/settings/CoreSettings.tsx similarity index 96% rename from src/components/Settings/CoreSettings.tsx rename to src/pages/settings/CoreSettings.tsx index ef594735..96877f9d 100644 --- a/src/components/Settings/CoreSettings.tsx +++ b/src/pages/settings/CoreSettings.tsx @@ -212,14 +212,16 @@ export const CoreSettings = () => { closeButtonText="Cancel" type={'info'} > - Are you sure you want to turn off safe mode? This will allow all you to + Are you sure you want to turn off safe mode? This will allow you to give users other than yourself the ability to run potentially dangerous - commands. Make sure you trust all users you give these permissions to + commands. Make sure you trust all the users you give these permissions to. {openPortModal} -
-
-

Core Settings

+
+
+
+

General Settings

+

These settings are for the core itself. They are not specific to any user diff --git a/src/components/Settings/UserSettings.tsx b/src/pages/settings/UserSettings.tsx similarity index 95% rename from src/components/Settings/UserSettings.tsx rename to src/pages/settings/UserSettings.tsx index 44421311..cf128748 100644 --- a/src/components/Settings/UserSettings.tsx +++ b/src/pages/settings/UserSettings.tsx @@ -16,7 +16,7 @@ import { useUid, useUserInfo } from 'data/UserInfo'; import { Fragment, useContext, useState } from 'react'; import { toast } from 'react-toastify'; import { changeUserPermissions } from 'utils/apis'; -import CreateUserForm from './CreateUserForm'; +import CreateUserForm from '../../components/Settings/CreateUserForm'; const NormalPermissions: { permission: keyof UserPermission; @@ -328,6 +328,11 @@ export const UserSettings = () => {

+
+
+
+

User Settings

+
{UserBoxes} {UserPermissions(NormalPermissions, false)} {selectedUser && ( @@ -335,7 +340,7 @@ export const UserSettings = () => {
-
+
Unsafe Settings
@@ -350,6 +355,8 @@ export const UserSettings = () => {
)} +
+
{/* TODO: your own section */} ); diff --git a/src/pages/settings/profile.tsx b/src/pages/settings/profile.tsx new file mode 100644 index 00000000..dae51b91 --- /dev/null +++ b/src/pages/settings/profile.tsx @@ -0,0 +1,127 @@ +import { Dialog, Transition } from '@headlessui/react'; +import { Fragment, useContext, useEffect, useState } from 'react'; +import { useDocumentTitle } from 'usehooks-ts'; +import { UserState } from 'components/UserMenu'; +import { LodestoneContext } from 'data/LodestoneContext'; +import { useUid, useUserInfo } from 'data/UserInfo'; +import InputBox from 'components/Atoms/Config/InputBox'; +import Spinner from 'components/DashboardLayout/Spinner'; +import { axiosPutSingleValue } from 'utils/util'; +import Button from 'components/Atoms/Button'; +import ChangeSelfPasswordForm from 'components/Settings/ChangeSelfPasswordForm'; +import { toast } from 'react-toastify'; + +const ProfilePage = () => { + useDocumentTitle('Profile - Lodestone'); + const { token } = useContext(LodestoneContext); + const uid = useUid(); + const { isLoading, isError, data: user } = useUserInfo(); + const [userState, setUserState] = useState('logged-out'); + + const [username, setUsername] = useState( + userState === 'logged-in' && user ? `${user.username}` : 'Guest' + ); + const [showChangePassword, setShowChangePassword] = useState(false); + const [stopLoading, setStopLoading] = useState(false); + + useEffect(() => { + if (!token) { + setUserState('logged-out'); + } else if (isLoading) { + setUserState('loading'); + return; + } else if (isError) { + setUserState('logged-out'); + return; + } else { + setUserState('logged-in'); + setUsername(user.username); + } + }, [token, isLoading, isError, user]); + + useEffect(() => { + //give time for user to load + setTimeout(() => { + setStopLoading(true); + }, 5000); + }, []); + + if (stopLoading && userState !== 'logged-in') + toast.warn("You're not logged in! Please log in to access this page."); + + if (isLoading && !stopLoading) { + return ; + } + + return ( + // used to possibly center the content +
+ + setShowChangePassword(false)} + className="relative z-10" + > +
+
+
+ +
+ Change Password +
+ setShowChangePassword(false)} + onCancel={() => setShowChangePassword(false)} + /> +
+
+
+
+
+
+
+

Profile

+

+ Profile preferences for {username} +

+
+ +
+ { + await axiosPutSingleValue(`/user/${uid}/rename`, value); + setUsername(value); + }} + disabled={userState !== 'logged-in' || !user} + /> +
+ +
+ Password and Authentication +
+
+
+
+
+ ); +}; + +export default ProfilePage; diff --git a/src/utils/apis.ts b/src/utils/apis.ts index 3eb9403c..e296bd49 100644 --- a/src/utils/apis.ts +++ b/src/utils/apis.ts @@ -2,6 +2,7 @@ import { QueryClient } from '@tanstack/react-query'; import axios from 'axios'; import { ClientError } from 'bindings/ClientError'; import { ClientFile } from 'bindings/ClientFile'; +import { MacroEntry } from 'bindings/MacroEntry'; import { LoginReply } from 'bindings/LoginReply'; import { UserPermission } from 'bindings/UserPermission'; import { Base64 } from 'js-base64'; @@ -18,6 +19,8 @@ import { import { UnzipOption } from 'bindings/UnzipOptions'; import { CopyInstanceFileRequest } from 'bindings/CopyInstanceFileRequest'; import { ZipRequest } from 'bindings/ZipRequest'; +import { TaskEntry } from 'bindings/TaskEntry'; +import { HistoryEntry } from 'bindings/HistoryEntry'; /*********************** * Start Files API @@ -77,7 +80,7 @@ export const deleteInstanceFile = async ( toast.error(error); return; } else { - toast.success(`Deleted ${file.name}`); + toast.success(`Deleted file: ${file.name}`); } const fileListKey = ['instance', uuid, 'fileList', directory]; @@ -104,6 +107,8 @@ export const deleteInstanceDirectory = async ( if (error) { toast.error(error); return; + } else { + toast.success(`Deleted directory: ${directory}`); } const fileListKey = ['instance', uuid, 'fileList', parentDirectory]; const fileList = queryClient.getQueryData(fileListKey); @@ -274,7 +279,7 @@ export const zipInstanceFiles = async ( return; } else { - toast.info(`Zipping ${zipRequest.target_relative_paths.length} files...`); + toast.info(`Zipping ${zipRequest.target_relative_paths.length} item${zipRequest.target_relative_paths.length > 1 ? 's' : ''}...`); } } @@ -421,3 +426,54 @@ export const openPort = async (port: number) => { }) ); }; + +/*********************** + * Start Tasks/Macro API + ***********************/ + +export const getTasks = async (uuid: string,) => { + const taskList = await axiosWrapper({ + method: 'get', + url: `/instance/${uuid}/task/list`, + }); + + return taskList; +}; + +export const getMacros = async (uuid: string,) => { + const macroList = await axiosWrapper({ + method: 'get', + url: `/instance/${uuid}/macro/list`, + }); + + return macroList; +}; + +export const getInstanceHistory = async (uuid: string,) => { + const historyList = await axiosWrapper({ + method: 'get', + url: `/instance/${uuid}/history/list`, + }); + + return historyList; +}; + +export const createTask = async ( + queryClient: QueryClient, + uuid: string, + macro_name: string, + args: string[], +) => { + queryClient.invalidateQueries(['instance', uuid, 'taskList']); + return await catchAsyncToString( + axiosWrapper({ + method: 'put', + url: `/instance/${uuid}/macro/run/${macro_name}`, + data: args, + }) + ); +}; + +/*********************** + * End Tasks/Macro API + ***********************/ \ No newline at end of file diff --git a/src/utils/util.ts b/src/utils/util.ts index 0ad04f26..62b2b405 100644 --- a/src/utils/util.ts +++ b/src/utils/util.ts @@ -49,7 +49,7 @@ export const myTwMerge = extendTailwindMerge({ }, }); -export const supportedZip = ["rar", "zip", "gz", "tgz"]; +export const supportedZip = ["zip", "gz", "tgz"]; export const capitalizeFirstLetter = (string: string) => { return string.charAt(0).toUpperCase() + string.slice(1); @@ -417,7 +417,7 @@ export function isLocalCore(core: CoreConnectionInfo) { } export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(...inputs)); + return myTwMerge(clsx(...inputs)); } // detect if we are in a browser that supports negative lookbehind